diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-12-21 22:05:02 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-12-21 22:05:02 +0530 |
commit | df087cc6cf4d97c5cc93befec922b38b56e6def7 (patch) | |
tree | 6b1f2e85c35367cf2cc901dd2fdcc86f0267451f /components/script/dom/document.rs | |
parent | a8783ad184ab6167803af44f4abf16754c410c2a (diff) | |
parent | c559270b83a446e2059c6a8ae39dc3f2734cfc54 (diff) | |
download | servo-df087cc6cf4d97c5cc93befec922b38b56e6def7.tar.gz servo-df087cc6cf4d97c5cc93befec922b38b56e6def7.zip |
Auto merge of #9036 - KiChjang:document-charset, r=Ms2ger
Implement Document charset
Rebase of #7966.
Fixes #7718.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9036)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r-- | components/script/dom/document.rs | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 79b3dd41f85..b2033a2a92e 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -379,7 +379,35 @@ impl Document { } pub fn set_encoding_name(&self, name: DOMString) { - *self.encoding_name.borrow_mut() = name; + *self.encoding_name.borrow_mut() = DOMString::from( + match name.as_ref() { + "utf-8" => "UTF-8", + "ibm866" => "IBM866", + "iso-8859-2" => "ISO-8859-2", + "iso-8859-3" => "ISO-8859-3", + "iso-8859-4" => "ISO-8859-4", + "iso-8859-5" => "ISO-8859-5", + "iso-8859-6" => "ISO-8859-6", + "iso-8859-7" => "ISO-8859-7", + "iso-8859-8" => "ISO-8859-8", + "iso-8859-8-i" => "ISO-8859-8-I", + "iso-8859-10" => "ISO-8859-10", + "iso-8859-13" => "ISO-8859-13", + "iso-8859-14" => "ISO-8859-14", + "iso-8859-15" => "ISO-8859-15", + "iso-8859-16" => "ISO-8859-16", + "koi8-r" => "KOI8-R", + "koi8-u" => "KOI8-U", + "gbk" => "GBK", + "big5" => "Big5", + "euc-jp" => "EUC-JP", + "iso-2022-jp" => "ISO-2022-JP", + "shift_jis" => "Shift_JIS", + "euc-kr" => "EUC-KR", + "utf-16be" => "UTF-16BE", + "utf-16le" => "UTF-16LE", + _ => &*name + }); } pub fn content_changed(&self, node: &Node, damage: NodeDamage) { @@ -1719,9 +1747,14 @@ impl DocumentMethods for Document { self.encoding_name.borrow().clone() } + // https://dom.spec.whatwg.org/#dom-document-charset + fn Charset(&self) -> DOMString { + self.CharacterSet() + } + // https://dom.spec.whatwg.org/#dom-document-inputencoding fn InputEncoding(&self) -> DOMString { - self.encoding_name.borrow().clone() + self.CharacterSet() } // https://dom.spec.whatwg.org/#dom-document-content_type |