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

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

Issue 1323243002: WIP - Rough draft of style observation in style of apply hooks. Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « Source/core/dom/Document.h ('k') | Source/core/dom/Element.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1369 matching lines...) Expand 10 before | Expand all | Expand 10 after
1380 ASSERT(!m_visibilityObservers.contains(observer)); 1380 ASSERT(!m_visibilityObservers.contains(observer));
1381 m_visibilityObservers.add(observer); 1381 m_visibilityObservers.add(observer);
1382 } 1382 }
1383 1383
1384 void Document::unregisterVisibilityObserver(DocumentVisibilityObserver* observer ) 1384 void Document::unregisterVisibilityObserver(DocumentVisibilityObserver* observer )
1385 { 1385 {
1386 ASSERT(m_visibilityObservers.contains(observer)); 1386 ASSERT(m_visibilityObservers.contains(observer));
1387 m_visibilityObservers.remove(observer); 1387 m_visibilityObservers.remove(observer);
1388 } 1388 }
1389 1389
1390 bool Document::hasStyleObserver()
1391 {
1392 return !m_styleObservers.isEmpty();
1393 }
1394
1395 void Document::notifyStyleObservers(const Element* element, const ComputedStyle* oldStyle, const ComputedStyle* newStyle)
1396 {
1397 // TODO(majidvp): make a snapshot of observers to avoid them being changed w hile we iterate
1398 for (StyleObserver* observer : m_styleObservers)
1399 observer->onStyleChanged(element, oldStyle, newStyle);
1400 }
1401
1402 void Document::registerStyleObserver(StyleObserver* observer)
1403 {
1404 ASSERT(!m_styleObservers.contains(observer));
1405 m_styleObservers.add(observer);
1406 }
1407
1408 void Document::unregisterStyleObserver(StyleObserver* observer)
1409 {
1410 ASSERT(m_styleObservers.contains(observer));
1411 m_styleObservers.remove(observer);
1412 }
1413
1390 String Document::nodeName() const 1414 String Document::nodeName() const
1391 { 1415 {
1392 return "#document"; 1416 return "#document";
1393 } 1417 }
1394 1418
1395 Node::NodeType Document::nodeType() const 1419 Node::NodeType Document::nodeType() const
1396 { 1420 {
1397 return DOCUMENT_NODE; 1421 return DOCUMENT_NODE;
1398 } 1422 }
1399 1423
(...skipping 4293 matching lines...) Expand 10 before | Expand all | Expand 10 after
5693 #ifndef NDEBUG 5717 #ifndef NDEBUG
5694 using namespace blink; 5718 using namespace blink;
5695 void showLiveDocumentInstances() 5719 void showLiveDocumentInstances()
5696 { 5720 {
5697 Document::WeakDocumentSet& set = Document::liveDocumentSet(); 5721 Document::WeakDocumentSet& set = Document::liveDocumentSet();
5698 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 5722 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
5699 for (Document* document : set) 5723 for (Document* document : set)
5700 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str ing().utf8().data()); 5724 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str ing().utf8().data());
5701 } 5725 }
5702 #endif 5726 #endif
OLDNEW
« no previous file with comments | « Source/core/dom/Document.h ('k') | Source/core/dom/Element.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698