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 | |
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')
-rw-r--r-- | components/script/dom/document.rs | 37 | ||||
-rw-r--r-- | components/script/dom/webidls/Document.webidl | 1 |
2 files changed, 36 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 diff --git a/components/script/dom/webidls/Document.webidl b/components/script/dom/webidls/Document.webidl index ba76e60e8de..4925119a849 100644 --- a/components/script/dom/webidls/Document.webidl +++ b/components/script/dom/webidls/Document.webidl @@ -20,6 +20,7 @@ interface Document : Node { readonly attribute DOMString documentURI; readonly attribute DOMString compatMode; readonly attribute DOMString characterSet; + readonly attribute DOMString charset; // legacy alias of .characterSet readonly attribute DOMString inputEncoding; // legacy alias of .characterSet [Constant] readonly attribute DOMString contentType; |