Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. |
| 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) |
| 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
| 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
| (...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 529 // generally keep at least one reference to an Element which would in turn | 529 // generally keep at least one reference to an Element which would in turn |
| 530 // has a reference to the Document. If you hit this ASSERT, then that | 530 // has a reference to the Document. If you hit this ASSERT, then that |
| 531 // assumption is wrong. DocumentParser::detach() should ensure that even | 531 // assumption is wrong. DocumentParser::detach() should ensure that even |
| 532 // if the DocumentParser outlives the Document it won't cause badness. | 532 // if the DocumentParser outlives the Document it won't cause badness. |
| 533 ASSERT(!m_parser || m_parser->refCount() == 1); | 533 ASSERT(!m_parser || m_parser->refCount() == 1); |
| 534 detachParser(); | 534 detachParser(); |
| 535 | 535 |
| 536 if (this == topDocument()) | 536 if (this == topDocument()) |
| 537 clearAXObjectCache(); | 537 clearAXObjectCache(); |
| 538 | 538 |
| 539 m_decoder = 0; | 539 setDecoder(PassRefPtr<TextResourceDecoder>()); |
| 540 | 540 |
| 541 if (m_styleSheetList) | 541 if (m_styleSheetList) |
| 542 m_styleSheetList->detachFromDocument(); | 542 m_styleSheetList->detachFromDocument(); |
| 543 | 543 |
| 544 if (m_import) { | 544 if (m_import) { |
| 545 m_import->wasDetachedFromDocument(); | 545 m_import->wasDetachedFromDocument(); |
| 546 m_import = 0; | 546 m_import = 0; |
| 547 } | 547 } |
| 548 | 548 |
| 549 m_styleSheetCollection.clear(); | 549 m_styleSheetCollection.clear(); |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1097 case Complete: | 1097 case Complete: |
| 1098 if (!m_documentTiming.domComplete) | 1098 if (!m_documentTiming.domComplete) |
| 1099 m_documentTiming.domComplete = monotonicallyIncreasingTime(); | 1099 m_documentTiming.domComplete = monotonicallyIncreasingTime(); |
| 1100 break; | 1100 break; |
| 1101 } | 1101 } |
| 1102 | 1102 |
| 1103 m_readyState = readyState; | 1103 m_readyState = readyState; |
| 1104 dispatchEvent(Event::create(eventNames().readystatechangeEvent, false, false )); | 1104 dispatchEvent(Event::create(eventNames().readystatechangeEvent, false, false )); |
| 1105 } | 1105 } |
| 1106 | 1106 |
| 1107 String Document::encoding() const | 1107 String Document::encodingName() const |
| 1108 { | 1108 { |
| 1109 // TextEncoding::domName() returns a char*, no need to allocate a new | 1109 // TextEncoding::domName() returns a char*, no need to allocate a new |
| 1110 // String for it each time. | 1110 // String for it each time. |
| 1111 // FIXME: We should fix TextEncoding to speak AtomicString anyway. | 1111 // FIXME: We should fix TextEncoding to speak AtomicString anyway. |
| 1112 if (TextResourceDecoder* d = decoder()) | 1112 return AtomicString(m_encoding.domName()); |
|
abarth-chromium
2013/08/23 21:58:01
This used to be able to return the null string. D
| |
| 1113 return AtomicString(d->encoding().domName()); | |
| 1114 return String(); | |
| 1115 } | 1113 } |
| 1116 | 1114 |
| 1117 String Document::defaultCharset() const | 1115 String Document::defaultCharset() const |
| 1118 { | 1116 { |
| 1119 if (Settings* settings = this->settings()) | 1117 if (Settings* settings = this->settings()) |
| 1120 return settings->defaultTextEncodingName(); | 1118 return settings->defaultTextEncodingName(); |
| 1121 return String(); | 1119 return String(); |
| 1122 } | 1120 } |
| 1123 | 1121 |
| 1124 void Document::setCharset(const String& charset) | 1122 void Document::setCharset(const String& charset) |
| 1125 { | 1123 { |
| 1126 if (!decoder()) | 1124 if (!decoder()) |
| 1127 return; | 1125 return; |
| 1128 decoder()->setEncoding(charset, TextResourceDecoder::UserChosenEncoding); | 1126 decoder()->setEncoding(charset, TextResourceDecoder::UserChosenEncoding); |
| 1127 m_encoding = m_decoder->encoding(); | |
| 1129 } | 1128 } |
| 1130 | 1129 |
| 1131 void Document::setContentLanguage(const String& language) | 1130 void Document::setContentLanguage(const String& language) |
| 1132 { | 1131 { |
| 1133 if (m_contentLanguage == language) | 1132 if (m_contentLanguage == language) |
| 1134 return; | 1133 return; |
| 1135 m_contentLanguage = language; | 1134 m_contentLanguage = language; |
| 1136 | 1135 |
| 1137 // Document's style depends on the content language. | 1136 // Document's style depends on the content language. |
| 1138 setNeedsStyleRecalc(); | 1137 setNeedsStyleRecalc(); |
| (...skipping 2793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3932 } | 3931 } |
| 3933 | 3932 |
| 3934 if (qualifiedName.is8Bit()) | 3933 if (qualifiedName.is8Bit()) |
| 3935 return parseQualifiedNameInternal(qualifiedName, qualifiedName.character s8(), length, prefix, localName, es); | 3934 return parseQualifiedNameInternal(qualifiedName, qualifiedName.character s8(), length, prefix, localName, es); |
| 3936 return parseQualifiedNameInternal(qualifiedName, qualifiedName.characters16( ), length, prefix, localName, es); | 3935 return parseQualifiedNameInternal(qualifiedName, qualifiedName.characters16( ), length, prefix, localName, es); |
| 3937 } | 3936 } |
| 3938 | 3937 |
| 3939 void Document::setDecoder(PassRefPtr<TextResourceDecoder> decoder) | 3938 void Document::setDecoder(PassRefPtr<TextResourceDecoder> decoder) |
| 3940 { | 3939 { |
| 3941 m_decoder = decoder; | 3940 m_decoder = decoder; |
| 3941 setEncoding(m_decoder ? m_decoder->encoding() : WTF::TextEncoding()); | |
| 3942 } | |
| 3943 | |
| 3944 void Document::setEncoding(const WTF::TextEncoding& encoding) | |
| 3945 { | |
| 3946 m_encoding = encoding; | |
| 3942 } | 3947 } |
| 3943 | 3948 |
| 3944 KURL Document::completeURL(const String& url, const KURL& baseURLOverride) const | 3949 KURL Document::completeURL(const String& url, const KURL& baseURLOverride) const |
| 3945 { | 3950 { |
| 3946 // Always return a null URL when passed a null string. | 3951 // Always return a null URL when passed a null string. |
| 3947 // FIXME: Should we change the KURL constructor to have this behavior? | 3952 // FIXME: Should we change the KURL constructor to have this behavior? |
| 3948 // See also [CSS]StyleSheet::completeURL(const String&) | 3953 // See also [CSS]StyleSheet::completeURL(const String&) |
| 3949 if (url.isNull()) | 3954 if (url.isNull()) |
| 3950 return KURL(); | 3955 return KURL(); |
| 3951 const KURL& baseURL = ((baseURLOverride.isEmpty() || baseURLOverride == blan kURL()) && parentDocument()) ? parentDocument()->baseURL() : baseURLOverride; | 3956 const KURL& baseURL = ((baseURLOverride.isEmpty() || baseURLOverride == blan kURL()) && parentDocument()) ? parentDocument()->baseURL() : baseURLOverride; |
| (...skipping 1290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5242 { | 5247 { |
| 5243 return DocumentLifecycleNotifier::create(this); | 5248 return DocumentLifecycleNotifier::create(this); |
| 5244 } | 5249 } |
| 5245 | 5250 |
| 5246 DocumentLifecycleNotifier* Document::lifecycleNotifier() | 5251 DocumentLifecycleNotifier* Document::lifecycleNotifier() |
| 5247 { | 5252 { |
| 5248 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec ycleNotifier()); | 5253 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec ycleNotifier()); |
| 5249 } | 5254 } |
| 5250 | 5255 |
| 5251 } // namespace WebCore | 5256 } // namespace WebCore |
| OLD | NEW |