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 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1139 if (!implementation()->hasFeature("XML", String())) { | 1139 if (!implementation()->hasFeature("XML", String())) { |
1140 exceptionState.throwDOMException(NotSupportedError, "This document does
not support XML."); | 1140 exceptionState.throwDOMException(NotSupportedError, "This document does
not support XML."); |
1141 return; | 1141 return; |
1142 } | 1142 } |
1143 | 1143 |
1144 m_xmlStandalone = standalone ? Standalone : NotStandalone; | 1144 m_xmlStandalone = standalone ? Standalone : NotStandalone; |
1145 } | 1145 } |
1146 | 1146 |
1147 KURL Document::baseURI() const | 1147 KURL Document::baseURI() const |
1148 { | 1148 { |
1149 return baseURL(); | 1149 return m_baseURL; |
1150 } | 1150 } |
1151 | 1151 |
1152 void Document::setContent(const String& content) | 1152 void Document::setContent(const String& content) |
1153 { | 1153 { |
1154 open(); | 1154 open(); |
1155 // FIXME: This should probably use insert(), but that's (intentionally) | 1155 // FIXME: This should probably use insert(), but that's (intentionally) |
1156 // not implemented for the XML parser as it's normally synonymous with | 1156 // not implemented for the XML parser as it's normally synonymous with |
1157 // document.write(). append() will end up yielding, but close() will | 1157 // document.write(). append() will end up yielding, but close() will |
1158 // pump the tokenizer syncrhonously and finish the parse. | 1158 // pump the tokenizer syncrhonously and finish the parse. |
1159 m_parser->pinToMainThread(); | 1159 m_parser->pinToMainThread(); |
(...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2585 if (newURL == m_url) | 2585 if (newURL == m_url) |
2586 return; | 2586 return; |
2587 | 2587 |
2588 m_url = newURL; | 2588 m_url = newURL; |
2589 updateBaseURL(); | 2589 updateBaseURL(); |
2590 contextFeatures()->urlDidChange(this); | 2590 contextFeatures()->urlDidChange(this); |
2591 } | 2591 } |
2592 | 2592 |
2593 void Document::updateBaseURL() | 2593 void Document::updateBaseURL() |
2594 { | 2594 { |
2595 KURL oldBaseURL = baseURL(); | 2595 KURL oldBaseURL = m_baseURL; |
2596 // DOM 3 Core: When the Document supports the feature "HTML" [DOM Level 2 HT
ML], the base URI is computed using | 2596 // DOM 3 Core: When the Document supports the feature "HTML" [DOM Level 2 HT
ML], the base URI is computed using |
2597 // first the value of the href attribute of the HTML BASE element if any, an
d the value of the documentURI attribute | 2597 // first the value of the href attribute of the HTML BASE element if any, an
d the value of the documentURI attribute |
2598 // from the Document interface otherwise (which we store, preparsed, in m_ur
l). | 2598 // from the Document interface otherwise (which we store, preparsed, in m_ur
l). |
2599 if (!m_baseElementURL.isEmpty()) | 2599 if (!m_baseElementURL.isEmpty()) |
2600 setBaseURL(m_baseElementURL); | 2600 m_baseURL = m_baseElementURL; |
2601 else if (!m_baseURLOverride.isEmpty()) | 2601 else if (!m_baseURLOverride.isEmpty()) |
2602 setBaseURL(m_baseURLOverride); | 2602 m_baseURL = m_baseURLOverride; |
2603 else | 2603 else |
2604 setBaseURL(m_url); | 2604 m_baseURL = m_url; |
2605 | 2605 |
2606 selectorQueryCache().invalidate(); | 2606 selectorQueryCache().invalidate(); |
2607 | 2607 |
2608 if (!baseURL().isValid()) | 2608 if (!m_baseURL.isValid()) |
2609 setBaseURL(KURL()); | 2609 m_baseURL = KURL(); |
2610 | 2610 |
2611 if (m_elemSheet) { | 2611 if (m_elemSheet) { |
2612 // Element sheet is silly. It never contains anything. | 2612 // Element sheet is silly. It never contains anything. |
2613 ASSERT(!m_elemSheet->contents()->ruleCount()); | 2613 ASSERT(!m_elemSheet->contents()->ruleCount()); |
2614 bool usesRemUnits = m_elemSheet->contents()->usesRemUnits(); | 2614 bool usesRemUnits = m_elemSheet->contents()->usesRemUnits(); |
2615 m_elemSheet = CSSStyleSheet::createInline(this, baseURL()); | 2615 m_elemSheet = CSSStyleSheet::createInline(this, m_baseURL); |
2616 // FIXME: So we are not really the parser. The right fix is to eliminate
the element sheet completely. | 2616 // FIXME: So we are not really the parser. The right fix is to eliminate
the element sheet completely. |
2617 m_elemSheet->contents()->parserSetUsesRemUnits(usesRemUnits); | 2617 m_elemSheet->contents()->parserSetUsesRemUnits(usesRemUnits); |
2618 } | 2618 } |
2619 | 2619 |
2620 if (!equalIgnoringFragmentIdentifier(oldBaseURL, baseURL())) { | 2620 if (!equalIgnoringFragmentIdentifier(oldBaseURL, m_baseURL)) { |
2621 // Base URL change changes any relative visited links. | 2621 // Base URL change changes any relative visited links. |
2622 // FIXME: There are other URLs in the tree that would need to be re-eval
uated on dynamic base URL change. Style should be invalidated too. | 2622 // FIXME: There are other URLs in the tree that would need to be re-eval
uated on dynamic base URL change. Style should be invalidated too. |
2623 for (Element* element = ElementTraversal::firstWithin(*this); element; e
lement = ElementTraversal::next(*element)) { | 2623 for (Element* element = ElementTraversal::firstWithin(*this); element; e
lement = ElementTraversal::next(*element)) { |
2624 if (element->hasTagName(aTag)) | 2624 if (element->hasTagName(aTag)) |
2625 toHTMLAnchorElement(element)->invalidateCachedVisitedLinkHash(); | 2625 toHTMLAnchorElement(element)->invalidateCachedVisitedLinkHash(); |
2626 } | 2626 } |
2627 } | 2627 } |
2628 } | 2628 } |
2629 | 2629 |
2630 void Document::setBaseURLOverride(const KURL& url) | 2630 void Document::setBaseURLOverride(const KURL& url) |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2783 if (!haveStylesheetsAndImportsLoaded()) | 2783 if (!haveStylesheetsAndImportsLoaded()) |
2784 return; | 2784 return; |
2785 if (ScriptableDocumentParser* parser = scriptableDocumentParser()) | 2785 if (ScriptableDocumentParser* parser = scriptableDocumentParser()) |
2786 parser->executeScriptsWaitingForResources(); | 2786 parser->executeScriptsWaitingForResources(); |
2787 } | 2787 } |
2788 | 2788 |
2789 | 2789 |
2790 CSSStyleSheet* Document::elementSheet() | 2790 CSSStyleSheet* Document::elementSheet() |
2791 { | 2791 { |
2792 if (!m_elemSheet) | 2792 if (!m_elemSheet) |
2793 m_elemSheet = CSSStyleSheet::createInline(this, baseURL()); | 2793 m_elemSheet = CSSStyleSheet::createInline(this, m_baseURL); |
2794 return m_elemSheet.get(); | 2794 return m_elemSheet.get(); |
2795 } | 2795 } |
2796 | 2796 |
2797 void Document::processHttpEquiv(const AtomicString& equiv, const AtomicString& c
ontent) | 2797 void Document::processHttpEquiv(const AtomicString& equiv, const AtomicString& c
ontent) |
2798 { | 2798 { |
2799 ASSERT(!equiv.isNull() && !content.isNull()); | 2799 ASSERT(!equiv.isNull() && !content.isNull()); |
2800 | 2800 |
2801 if (equalIgnoringCase(equiv, "default-style")) | 2801 if (equalIgnoringCase(equiv, "default-style")) |
2802 processHttpEquivDefaultStyle(content); | 2802 processHttpEquivDefaultStyle(content); |
2803 else if (equalIgnoringCase(equiv, "refresh")) | 2803 else if (equalIgnoringCase(equiv, "refresh")) |
(...skipping 2444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5248 } | 5248 } |
5249 | 5249 |
5250 FastTextAutosizer* Document::fastTextAutosizer() | 5250 FastTextAutosizer* Document::fastTextAutosizer() |
5251 { | 5251 { |
5252 if (!m_fastTextAutosizer && RuntimeEnabledFeatures::fastTextAutosizingEnable
d()) | 5252 if (!m_fastTextAutosizer && RuntimeEnabledFeatures::fastTextAutosizingEnable
d()) |
5253 m_fastTextAutosizer = FastTextAutosizer::create(this); | 5253 m_fastTextAutosizer = FastTextAutosizer::create(this); |
5254 return m_fastTextAutosizer.get(); | 5254 return m_fastTextAutosizer.get(); |
5255 } | 5255 } |
5256 | 5256 |
5257 } // namespace WebCore | 5257 } // namespace WebCore |
OLD | NEW |