aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-12-21 22:05:02 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-12-21 22:05:02 +0530
commitdf087cc6cf4d97c5cc93befec922b38b56e6def7 (patch)
tree6b1f2e85c35367cf2cc901dd2fdcc86f0267451f /components/script
parenta8783ad184ab6167803af44f4abf16754c410c2a (diff)
parentc559270b83a446e2059c6a8ae39dc3f2734cfc54 (diff)
downloadservo-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.rs37
-rw-r--r--components/script/dom/webidls/Document.webidl1
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;