Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Unified Diff: Source/core/dom/Document.cpp

Issue 22909053: Store the Document's encoding on the Document (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/Document.cpp
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
index 9dfe1b6aff51b606a7eef0ba47b3a8d2309763d5..93b036cc92d24640730ccf72803e5317819c2a52 100644
--- a/Source/core/dom/Document.cpp
+++ b/Source/core/dom/Document.cpp
@@ -536,7 +536,7 @@ Document::~Document()
if (this == topDocument())
clearAXObjectCache();
- m_decoder = 0;
+ setDecoder(PassRefPtr<TextResourceDecoder>());
if (m_styleSheetList)
m_styleSheetList->detachFromDocument();
@@ -1104,14 +1104,12 @@ void Document::setReadyState(ReadyState readyState)
dispatchEvent(Event::create(eventNames().readystatechangeEvent, false, false));
}
-String Document::encoding() const
+String Document::encodingName() const
{
// TextEncoding::domName() returns a char*, no need to allocate a new
// String for it each time.
// FIXME: We should fix TextEncoding to speak AtomicString anyway.
- if (TextResourceDecoder* d = decoder())
- return AtomicString(d->encoding().domName());
- return String();
+ return AtomicString(m_encoding.domName());
abarth-chromium 2013/08/23 21:58:01 This used to be able to return the null string. D
}
String Document::defaultCharset() const
@@ -1126,6 +1124,7 @@ void Document::setCharset(const String& charset)
if (!decoder())
return;
decoder()->setEncoding(charset, TextResourceDecoder::UserChosenEncoding);
+ m_encoding = m_decoder->encoding();
}
void Document::setContentLanguage(const String& language)
@@ -3939,6 +3938,12 @@ bool Document::parseQualifiedName(const String& qualifiedName, String& prefix, S
void Document::setDecoder(PassRefPtr<TextResourceDecoder> decoder)
{
m_decoder = decoder;
+ setEncoding(m_decoder ? m_decoder->encoding() : WTF::TextEncoding());
+}
+
+void Document::setEncoding(const WTF::TextEncoding& encoding)
+{
+ m_encoding = encoding;
}
KURL Document::completeURL(const String& url, const KURL& baseURLOverride) const

Powered by Google App Engine
This is Rietveld 408576698