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

Side by Side Diff: sky/engine/core/dom/Document.cpp

Issue 1148253003: Add LayoutRoot (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Updated Created 5 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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 , m_loadEventDelayCount(0) 246 , m_loadEventDelayCount(0)
247 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) 247 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired)
248 , m_didSetReferrerPolicy(false) 248 , m_didSetReferrerPolicy(false)
249 , m_referrerPolicy(ReferrerPolicyDefault) 249 , m_referrerPolicy(ReferrerPolicyDefault)
250 , m_elementRegistry(initializer.elementRegistry()) 250 , m_elementRegistry(initializer.elementRegistry())
251 , m_elementDataCacheClearTimer(this, &Document::elementDataCacheClearTimerFi red) 251 , m_elementDataCacheClearTimer(this, &Document::elementDataCacheClearTimerFi red)
252 , m_timeline(AnimationTimeline::create(this)) 252 , m_timeline(AnimationTimeline::create(this))
253 , m_templateDocumentHost(nullptr) 253 , m_templateDocumentHost(nullptr)
254 , m_hasViewportUnits(false) 254 , m_hasViewportUnits(false)
255 , m_styleRecalcElementCounter(0) 255 , m_styleRecalcElementCounter(0)
256 , m_frameView(nullptr)
256 { 257 {
257 setClient(this); 258 setClient(this);
258 259
259 if (!m_elementRegistry) 260 if (!m_elementRegistry)
260 m_elementRegistry = CustomElementRegistry::Create(); 261 m_elementRegistry = CustomElementRegistry::Create();
261 262
262 m_fetcher = ResourceFetcher::create(this); 263 m_fetcher = ResourceFetcher::create(this);
263 264
264 // We depend on the url getting immediately set in subframes, but we 265 // We depend on the url getting immediately set in subframes, but we
265 // also depend on the url NOT getting immediately set in opened windows. 266 // also depend on the url NOT getting immediately set in opened windows.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 #ifndef NDEBUG 326 #ifndef NDEBUG
326 liveDocumentSet().remove(this); 327 liveDocumentSet().remove(this);
327 #endif 328 #endif
328 #endif 329 #endif
329 330
330 setClient(0); 331 setClient(0);
331 332
332 InspectorCounters::decrementCounter(InspectorCounters::DocumentCounter); 333 InspectorCounters::decrementCounter(InspectorCounters::DocumentCounter);
333 } 334 }
334 335
335 PassRefPtr<Document> Document::create(Document& document)
336 {
337 DocumentInit init = DocumentInit::fromContext(document.contextDocument())
338 .withElementRegistry(document.elementRegistry());
339 return adoptRef(new Document(init));
340 }
341
342 #if !ENABLE(OILPAN) 336 #if !ENABLE(OILPAN)
343 void Document::dispose() 337 void Document::dispose()
344 { 338 {
345 ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); 339 ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun);
346 340
347 // We must make sure not to be retaining any of our children through 341 // We must make sure not to be retaining any of our children through
348 // these extra pointers or we will create a reference cycle. 342 // these extra pointers or we will create a reference cycle.
349 m_focusedElement = nullptr; 343 m_focusedElement = nullptr;
350 m_hoverNode = nullptr; 344 m_hoverNode = nullptr;
351 m_activeHoverElement = nullptr; 345 m_activeHoverElement = nullptr;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 PassRefPtr<Element> Document::createElement(const AtomicString& name, ExceptionS tate& exceptionState) 402 PassRefPtr<Element> Document::createElement(const AtomicString& name, ExceptionS tate& exceptionState)
409 { 403 {
410 if (!isValidName(name)) { 404 if (!isValidName(name)) {
411 exceptionState.ThrowDOMException(InvalidCharacterError, "The tag name pr ovided ('" + name + "') is not a valid name."); 405 exceptionState.ThrowDOMException(InvalidCharacterError, "The tag name pr ovided ('" + name + "') is not a valid name.");
412 return nullptr; 406 return nullptr;
413 } 407 }
414 408
415 return HTMLElementFactory::createElement(name, *this, false); 409 return HTMLElementFactory::createElement(name, *this, false);
416 } 410 }
417 411
412 PassRefPtr<Text> Document::createText(const String& text)
413 {
414 return Text::create(*this, text);
415 }
416
418 void Document::registerElement(const AtomicString& name, PassRefPtr<DartValue> t ype, ExceptionState& es) 417 void Document::registerElement(const AtomicString& name, PassRefPtr<DartValue> t ype, ExceptionState& es)
419 { 418 {
420 m_elementRegistry->RegisterElement(name, type); 419 m_elementRegistry->RegisterElement(name, type);
421 } 420 }
422 421
423 void Document::setImportsController(HTMLImportsController* controller) 422 void Document::setImportsController(HTMLImportsController* controller)
424 { 423 {
425 ASSERT(!m_importsController || !controller); 424 ASSERT(!m_importsController || !controller);
426 m_importsController = controller; 425 m_importsController = controller;
427 } 426 }
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 { 821 {
823 return DOCUMENT_NODE; 822 return DOCUMENT_NODE;
824 } 823 }
825 824
826 void Document::setStateForNewFormElements(const Vector<String>& stateVector) 825 void Document::setStateForNewFormElements(const Vector<String>& stateVector)
827 { 826 {
828 } 827 }
829 828
830 FrameView* Document::view() const 829 FrameView* Document::view() const
831 { 830 {
831 if (m_frameView)
832 return m_frameView;
832 return m_frame ? m_frame->view() : 0; 833 return m_frame ? m_frame->view() : 0;
833 } 834 }
834 835
835 Page* Document::page() const 836 Page* Document::page() const
836 { 837 {
837 return m_frame ? m_frame->page() : 0; 838 return m_frame ? m_frame->page() : 0;
838 } 839 }
839 840
840 FrameHost* Document::frameHost() const 841 FrameHost* Document::frameHost() const
841 { 842 {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 898
898 scheduleVisualUpdate(); 899 scheduleVisualUpdate();
899 900
900 // TODO(esprehn): We should either rename this state, or change the other 901 // TODO(esprehn): We should either rename this state, or change the other
901 // users of scheduleVisualUpdate() so they don't expect different states. 902 // users of scheduleVisualUpdate() so they don't expect different states.
902 m_lifecycle.ensureStateAtMost(DocumentLifecycle::VisualUpdatePending); 903 m_lifecycle.ensureStateAtMost(DocumentLifecycle::VisualUpdatePending);
903 } 904 }
904 905
905 void Document::scheduleVisualUpdate() 906 void Document::scheduleVisualUpdate()
906 { 907 {
907 page()->animator().scheduleVisualUpdate(); 908 if (page())
909 page()->animator().scheduleVisualUpdate();
908 } 910 }
909 911
910 void Document::updateDistributionIfNeeded() 912 void Document::updateDistributionIfNeeded()
911 { 913 {
912 ScriptForbiddenScope forbidScript; 914 ScriptForbiddenScope forbidScript;
913 915
914 if (!childNeedsDistributionRecalc()) 916 if (!childNeedsDistributionRecalc())
915 return; 917 return;
916 TRACE_EVENT0("blink", "Document::updateDistributionIfNeeded"); 918 TRACE_EVENT0("blink", "Document::updateDistributionIfNeeded");
917 recalcDistribution(); 919 recalcDistribution();
(...skipping 1307 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 using namespace blink; 2227 using namespace blink;
2226 void showLiveDocumentInstances() 2228 void showLiveDocumentInstances()
2227 { 2229 {
2228 WeakDocumentSet& set = liveDocumentSet(); 2230 WeakDocumentSet& set = liveDocumentSet();
2229 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 2231 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
2230 for (WeakDocumentSet::const_iterator it = set.begin(); it != set.end(); ++it ) { 2232 for (WeakDocumentSet::const_iterator it = set.begin(); it != set.end(); ++it ) {
2231 fprintf(stderr, "- Document %p URL: %s\n", *it, (*it)->url().string().ut f8().data()); 2233 fprintf(stderr, "- Document %p URL: %s\n", *it, (*it)->url().string().ut f8().data());
2232 } 2234 }
2233 } 2235 }
2234 #endif 2236 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698