diff options
Diffstat (limited to 'components/script/dom/servoparser')
-rw-r--r-- | components/script/dom/servoparser/mod.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs index 3be0484dc7c..6d6edb6d7a8 100644 --- a/components/script/dom/servoparser/mod.rs +++ b/components/script/dom/servoparser/mod.rs @@ -43,6 +43,7 @@ use profile_traits::time::{TimerMetadata, TimerMetadataFrameType}; use profile_traits::time::{TimerMetadataReflowType, ProfilerCategory, profile}; use script_thread::ScriptThread; use script_traits::DocumentActivity; +use servo_config::prefs::PREFS; use servo_config::resource_files::read_resource_file; use servo_url::ServoUrl; use std::ascii::AsciiExt; @@ -103,10 +104,17 @@ enum LastChunkState { impl ServoParser { pub fn parse_html_document(document: &Document, input: DOMString, url: ServoUrl) { - let parser = ServoParser::new(document, - Tokenizer::Html(self::html::Tokenizer::new(document, url, None)), - LastChunkState::NotReceived, - ParserKind::Normal); + let parser = if PREFS.get("dom.servoparser.async_html_tokenizer.enabled").as_boolean().unwrap() { + ServoParser::new(document, + Tokenizer::AsyncHtml(self::async_html::Tokenizer::new(document, url, None)), + LastChunkState::NotReceived, + ParserKind::Normal) + } else { + ServoParser::new(document, + Tokenizer::Html(self::html::Tokenizer::new(document, url, None)), + LastChunkState::NotReceived, + ParserKind::Normal) + }; parser.parse_string_chunk(String::from(input)); } |