mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Changed DOMString usages to string in MediaFragmentParser
This commit is contained in:
parent
adefd2cdfc
commit
598d343854
2 changed files with 15 additions and 30 deletions
|
@ -1526,13 +1526,13 @@ impl HTMLMediaElement {
|
||||||
if let Some(servo_url) = self.resource_url.borrow().as_ref() {
|
if let Some(servo_url) = self.resource_url.borrow().as_ref() {
|
||||||
let fragment = MediaFragmentParser::from(servo_url);
|
let fragment = MediaFragmentParser::from(servo_url);
|
||||||
if let Some(id) = fragment.id() {
|
if let Some(id) = fragment.id() {
|
||||||
if audio_track.id() == id {
|
if audio_track.id() == DOMString::from(id) {
|
||||||
self.AudioTracks()
|
self.AudioTracks()
|
||||||
.set_enabled(self.AudioTracks().len() - 1, true);
|
.set_enabled(self.AudioTracks().len() - 1, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if fragment.tracks().contains(&audio_track.kind()) {
|
if fragment.tracks().contains(&audio_track.kind().into()) {
|
||||||
self.AudioTracks()
|
self.AudioTracks()
|
||||||
.set_enabled(self.AudioTracks().len() - 1, true);
|
.set_enabled(self.AudioTracks().len() - 1, true);
|
||||||
}
|
}
|
||||||
|
@ -1582,10 +1582,10 @@ impl HTMLMediaElement {
|
||||||
if let Some(servo_url) = self.resource_url.borrow().as_ref() {
|
if let Some(servo_url) = self.resource_url.borrow().as_ref() {
|
||||||
let fragment = MediaFragmentParser::from(servo_url);
|
let fragment = MediaFragmentParser::from(servo_url);
|
||||||
if let Some(id) = fragment.id() {
|
if let Some(id) = fragment.id() {
|
||||||
if track.id() == id {
|
if track.id() == DOMString::from(id) {
|
||||||
self.VideoTracks().set_selected(0, true);
|
self.VideoTracks().set_selected(0, true);
|
||||||
}
|
}
|
||||||
} else if fragment.tracks().contains(&track.kind()) {
|
} else if fragment.tracks().contains(&track.kind().into()) {
|
||||||
self.VideoTracks().set_selected(0, true);
|
self.VideoTracks().set_selected(0, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
use crate::dom::bindings::str::DOMString;
|
|
||||||
use chrono::NaiveDateTime;
|
use chrono::NaiveDateTime;
|
||||||
use servo_url::ServoUrl;
|
use servo_url::ServoUrl;
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
|
@ -39,19 +38,19 @@ pub struct SpatialClipping {
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default, PartialEq)]
|
#[derive(Clone, Debug, Default, PartialEq)]
|
||||||
pub struct MediaFragmentParser {
|
pub struct MediaFragmentParser {
|
||||||
id: Option<DOMString>,
|
id: Option<String>,
|
||||||
tracks: Vec<DOMString>,
|
tracks: Vec<String>,
|
||||||
spatial: Option<SpatialClipping>,
|
spatial: Option<SpatialClipping>,
|
||||||
start: Option<f64>,
|
start: Option<f64>,
|
||||||
end: Option<f64>,
|
end: Option<f64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MediaFragmentParser {
|
impl MediaFragmentParser {
|
||||||
pub fn id(&self) -> Option<DOMString> {
|
pub fn id(&self) -> Option<String> {
|
||||||
self.id.clone()
|
self.id.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn tracks(&self) -> &Vec<DOMString> {
|
pub fn tracks(&self) -> &Vec<String> {
|
||||||
self.tracks.as_ref()
|
self.tracks.as_ref()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,8 +79,8 @@ impl MediaFragmentParser {
|
||||||
parser.spatial = Some(spatial);
|
parser.spatial = Some(spatial);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
b"id" => parser.id = Some(DOMString::from(value.as_ref())),
|
b"id" => parser.id = Some(value.to_string()),
|
||||||
b"track" => parser.tracks.push(DOMString::from(value.as_ref())),
|
b"track" => parser.tracks.push(value.to_string()),
|
||||||
_ => {},
|
_ => {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,39 +218,25 @@ fn decode_octets(bytes: &[u8]) -> Vec<(Cow<str>, Cow<str>)> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse a full URL or a relative URL without a base retaining the query and/or fragment.
|
// Parse a full URL or a relative URL without a base retaining the query and/or fragment.
|
||||||
fn split_url(s: &str) -> (DOMString, DOMString) {
|
fn split_url(s: &str) -> (&str, &str) {
|
||||||
if s.contains('?') || s.contains('#') {
|
if s.contains('?') || s.contains('#') {
|
||||||
let mut query = DOMString::new();
|
|
||||||
let mut fragment = DOMString::new();
|
|
||||||
|
|
||||||
for (index, byte) in s.bytes().enumerate() {
|
for (index, byte) in s.bytes().enumerate() {
|
||||||
if byte == b'?' {
|
if byte == b'?' {
|
||||||
let mut found = false;
|
|
||||||
let partial = &s[index + 1..];
|
let partial = &s[index + 1..];
|
||||||
for (i, byte) in partial.bytes().enumerate() {
|
for (i, byte) in partial.bytes().enumerate() {
|
||||||
if byte == b'#' {
|
if byte == b'#' {
|
||||||
found = true;
|
return (&partial[..i], &partial[i + 1..]);
|
||||||
query.push_str(&partial[..i]);
|
|
||||||
fragment.push_str(&partial[i + 1..]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if found {
|
return (partial, "");
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
query.push_str(partial);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if byte == b'#' {
|
if byte == b'#' {
|
||||||
fragment.push_str(&s[index + 1..]);
|
return ("", &s[index + 1..]);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(query, fragment)
|
|
||||||
} else {
|
|
||||||
(DOMString::new(), DOMString::from(s))
|
|
||||||
}
|
}
|
||||||
|
("", s)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_byte_number(byte: u8) -> bool {
|
fn is_byte_number(byte: u8) -> bool {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue