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

Side by Side Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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 unified diff | Download patch
OLDNEW
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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 #include "public/platform/WebScheduler.h" 231 #include "public/platform/WebScheduler.h"
232 #include "wtf/CurrentTime.h" 232 #include "wtf/CurrentTime.h"
233 #include "wtf/DateMath.h" 233 #include "wtf/DateMath.h"
234 #include "wtf/Functional.h" 234 #include "wtf/Functional.h"
235 #include "wtf/HashFunctions.h" 235 #include "wtf/HashFunctions.h"
236 #include "wtf/PtrUtil.h" 236 #include "wtf/PtrUtil.h"
237 #include "wtf/StdLibExtras.h" 237 #include "wtf/StdLibExtras.h"
238 #include "wtf/TemporaryChange.h" 238 #include "wtf/TemporaryChange.h"
239 #include "wtf/text/StringBuffer.h" 239 #include "wtf/text/StringBuffer.h"
240 #include "wtf/text/TextEncodingRegistry.h" 240 #include "wtf/text/TextEncodingRegistry.h"
241 #include <memory>
241 242
242 using namespace WTF; 243 using namespace WTF;
243 using namespace Unicode; 244 using namespace Unicode;
244 245
245 #ifndef NDEBUG 246 #ifndef NDEBUG
246 using WeakDocumentSet = blink::PersistentHeapHashSet<blink::WeakMember<blink::Do cument>>; 247 using WeakDocumentSet = blink::PersistentHeapHashSet<blink::WeakMember<blink::Do cument>>;
247 static WeakDocumentSet& liveDocumentSet(); 248 static WeakDocumentSet& liveDocumentSet();
248 #endif 249 #endif
249 250
250 namespace blink { 251 namespace blink {
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 DCHECK(!parentTreeScope()); 514 DCHECK(!parentTreeScope());
514 // If a top document with a cache, verify that it was comprehensively 515 // If a top document with a cache, verify that it was comprehensively
515 // cleared during detach. 516 // cleared during detach.
516 DCHECK(!m_axObjectCache); 517 DCHECK(!m_axObjectCache);
517 InstanceCounters::decrementCounter(InstanceCounters::DocumentCounter); 518 InstanceCounters::decrementCounter(InstanceCounters::DocumentCounter);
518 } 519 }
519 520
520 SelectorQueryCache& Document::selectorQueryCache() 521 SelectorQueryCache& Document::selectorQueryCache()
521 { 522 {
522 if (!m_selectorQueryCache) 523 if (!m_selectorQueryCache)
523 m_selectorQueryCache = adoptPtr(new SelectorQueryCache()); 524 m_selectorQueryCache = wrapUnique(new SelectorQueryCache());
524 return *m_selectorQueryCache; 525 return *m_selectorQueryCache;
525 } 526 }
526 527
527 MediaQueryMatcher& Document::mediaQueryMatcher() 528 MediaQueryMatcher& Document::mediaQueryMatcher()
528 { 529 {
529 if (!m_mediaQueryMatcher) 530 if (!m_mediaQueryMatcher)
530 m_mediaQueryMatcher = MediaQueryMatcher::create(*this); 531 m_mediaQueryMatcher = MediaQueryMatcher::create(*this);
531 return *m_mediaQueryMatcher; 532 return *m_mediaQueryMatcher;
532 } 533 }
533 534
(...skipping 2346 matching lines...) Expand 10 before | Expand all | Expand 10 after
2880 DOMTimerCoordinator* Document::timers() 2881 DOMTimerCoordinator* Document::timers()
2881 { 2882 {
2882 return &m_timers; 2883 return &m_timers;
2883 } 2884 }
2884 2885
2885 EventTarget* Document::errorEventTarget() 2886 EventTarget* Document::errorEventTarget()
2886 { 2887 {
2887 return domWindow(); 2888 return domWindow();
2888 } 2889 }
2889 2890
2890 void Document::logExceptionToConsole(const String& errorMessage, PassOwnPtr<Sour ceLocation> location) 2891 void Document::logExceptionToConsole(const String& errorMessage, std::unique_ptr <SourceLocation> location)
2891 { 2892 {
2892 ConsoleMessage* consoleMessage = ConsoleMessage::create(JSMessageSource, Err orMessageLevel, errorMessage, std::move(location)); 2893 ConsoleMessage* consoleMessage = ConsoleMessage::create(JSMessageSource, Err orMessageLevel, errorMessage, std::move(location));
2893 addConsoleMessage(consoleMessage); 2894 addConsoleMessage(consoleMessage);
2894 } 2895 }
2895 2896
2896 void Document::setURL(const KURL& url) 2897 void Document::setURL(const KURL& url)
2897 { 2898 {
2898 const KURL& newURL = url.isEmpty() ? blankURL() : url; 2899 const KURL& newURL = url.isEmpty() ? blankURL() : url;
2899 if (newURL == m_url) 2900 if (newURL == m_url)
2900 return; 2901 return;
(...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after
3933 3934
3934 Document::EventFactorySet& Document::eventFactories() 3935 Document::EventFactorySet& Document::eventFactories()
3935 { 3936 {
3936 DEFINE_STATIC_LOCAL(EventFactorySet, s_eventFactory, ()); 3937 DEFINE_STATIC_LOCAL(EventFactorySet, s_eventFactory, ());
3937 return s_eventFactory; 3938 return s_eventFactory;
3938 } 3939 }
3939 3940
3940 const OriginAccessEntry& Document::accessEntryFromURL() 3941 const OriginAccessEntry& Document::accessEntryFromURL()
3941 { 3942 {
3942 if (!m_accessEntryFromURL) { 3943 if (!m_accessEntryFromURL) {
3943 m_accessEntryFromURL = adoptPtr(new OriginAccessEntry(url().protocol(), url().host(), OriginAccessEntry::AllowRegisterableDomains)); 3944 m_accessEntryFromURL = wrapUnique(new OriginAccessEntry(url().protocol() , url().host(), OriginAccessEntry::AllowRegisterableDomains));
3944 } 3945 }
3945 return *m_accessEntryFromURL; 3946 return *m_accessEntryFromURL;
3946 } 3947 }
3947 3948
3948 void Document::registerEventFactory(PassOwnPtr<EventFactoryBase> eventFactory) 3949 void Document::registerEventFactory(std::unique_ptr<EventFactoryBase> eventFacto ry)
3949 { 3950 {
3950 DCHECK(!eventFactories().contains(eventFactory.get())); 3951 DCHECK(!eventFactories().contains(eventFactory.get()));
3951 eventFactories().add(std::move(eventFactory)); 3952 eventFactories().add(std::move(eventFactory));
3952 } 3953 }
3953 3954
3954 Event* Document::createEvent(ExecutionContext* executionContext, const String& e ventType, ExceptionState& exceptionState) 3955 Event* Document::createEvent(ExecutionContext* executionContext, const String& e ventType, ExceptionState& exceptionState)
3955 { 3956 {
3956 Event* event = nullptr; 3957 Event* event = nullptr;
3957 for (const auto& factory : eventFactories()) { 3958 for (const auto& factory : eventFactories()) {
3958 event = factory->create(executionContext, eventType); 3959 event = factory->create(executionContext, eventType);
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
4370 // the <title> element. This function detects that situation and re-decodes the 4371 // the <title> element. This function detects that situation and re-decodes the
4371 // document's title so that the user doesn't see an incorrectly decoded titl e 4372 // document's title so that the user doesn't see an incorrectly decoded titl e
4372 // in the title bar. 4373 // in the title bar.
4373 if (m_titleElement 4374 if (m_titleElement
4374 && encoding() != newData.encoding() 4375 && encoding() != newData.encoding()
4375 && !ElementTraversal::firstWithin(*m_titleElement) 4376 && !ElementTraversal::firstWithin(*m_titleElement)
4376 && encoding() == Latin1Encoding() 4377 && encoding() == Latin1Encoding()
4377 && m_titleElement->textContent().containsOnlyLatin1()) { 4378 && m_titleElement->textContent().containsOnlyLatin1()) {
4378 4379
4379 CString originalBytes = m_titleElement->textContent().latin1(); 4380 CString originalBytes = m_titleElement->textContent().latin1();
4380 OwnPtr<TextCodec> codec = newTextCodec(newData.encoding()); 4381 std::unique_ptr<TextCodec> codec = newTextCodec(newData.encoding());
4381 String correctlyDecodedTitle = codec->decode(originalBytes.data(), origi nalBytes.length(), DataEOF); 4382 String correctlyDecodedTitle = codec->decode(originalBytes.data(), origi nalBytes.length(), DataEOF);
4382 m_titleElement->setTextContent(correctlyDecodedTitle); 4383 m_titleElement->setTextContent(correctlyDecodedTitle);
4383 } 4384 }
4384 4385
4385 DCHECK(newData.encoding().isValid()); 4386 DCHECK(newData.encoding().isValid());
4386 m_encodingData = newData; 4387 m_encodingData = newData;
4387 4388
4388 // FIXME: Should be removed as part of https://code.google.com/p/chromium/is sues/detail?id=319643 4389 // FIXME: Should be removed as part of https://code.google.com/p/chromium/is sues/detail?id=319643
4389 bool shouldUseVisualOrdering = m_encodingData.encoding().usesVisualOrdering( ); 4390 bool shouldUseVisualOrdering = m_encodingData.encoding().usesVisualOrdering( );
4390 if (shouldUseVisualOrdering != m_visuallyOrdered) { 4391 if (shouldUseVisualOrdering != m_visuallyOrdered) {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
4586 DCHECK(isHTMLScriptElement(newCurrentScript) || isSVGScriptElement(newCurren tScript)); 4587 DCHECK(isHTMLScriptElement(newCurrentScript) || isSVGScriptElement(newCurren tScript));
4587 m_currentScriptStack.append(newCurrentScript); 4588 m_currentScriptStack.append(newCurrentScript);
4588 } 4589 }
4589 4590
4590 void Document::popCurrentScript() 4591 void Document::popCurrentScript()
4591 { 4592 {
4592 DCHECK(!m_currentScriptStack.isEmpty()); 4593 DCHECK(!m_currentScriptStack.isEmpty());
4593 m_currentScriptStack.removeLast(); 4594 m_currentScriptStack.removeLast();
4594 } 4595 }
4595 4596
4596 void Document::setTransformSource(PassOwnPtr<TransformSource> source) 4597 void Document::setTransformSource(std::unique_ptr<TransformSource> source)
4597 { 4598 {
4598 m_transformSource = std::move(source); 4599 m_transformSource = std::move(source);
4599 } 4600 }
4600 4601
4601 String Document::designMode() const 4602 String Document::designMode() const
4602 { 4603 {
4603 return inDesignMode() ? "on" : "off"; 4604 return inDesignMode() ? "on" : "off";
4604 } 4605 }
4605 4606
4606 void Document::setDesignMode(const String& value) 4607 void Document::setDesignMode(const String& value)
(...skipping 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after
6017 } 6018 }
6018 6019
6019 void showLiveDocumentInstances() 6020 void showLiveDocumentInstances()
6020 { 6021 {
6021 WeakDocumentSet& set = liveDocumentSet(); 6022 WeakDocumentSet& set = liveDocumentSet();
6022 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 6023 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
6023 for (Document* document : set) 6024 for (Document* document : set)
6024 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().get String().utf8().data()); 6025 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().get String().utf8().data());
6025 } 6026 }
6026 #endif 6027 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Document.h ('k') | third_party/WebKit/Source/core/dom/DocumentParser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698