aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/servoparser
diff options
context:
space:
mode:
authorNikhil Shagrithaya <nikhilshagri@gmail.com>2017-06-17 13:35:55 +0530
committerNikhil Shagrithaya <nikhilshagri@gmail.com>2017-06-17 13:35:55 +0530
commitad649bb7e3a893072f35167b2af1b1e43d5cfc25 (patch)
treeaa7e43af2f787bcd107e7d1b313cc7ff97f36cb1 /components/script/dom/servoparser
parent161ff15d54f1cf7746f37c1075a63273f374eab7 (diff)
downloadservo-ad649bb7e3a893072f35167b2af1b1e43d5cfc25.tar.gz
servo-ad649bb7e3a893072f35167b2af1b1e43d5cfc25.zip
Added preference to enable/disable async html tokenizer
Diffstat (limited to 'components/script/dom/servoparser')
-rw-r--r--components/script/dom/servoparser/mod.rs16
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));
}