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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/Document.h ('k') | Source/core/dom/Element.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/Document.cpp
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
index fc70d14a59351ddd55664b363a1ab122e26b7481..c52e8c4d3d776a373c1a6e92aaa0af0c743af902 100644
--- a/Source/core/dom/Document.cpp
+++ b/Source/core/dom/Document.cpp
@@ -1387,6 +1387,30 @@ void Document::unregisterVisibilityObserver(DocumentVisibilityObserver* observer
m_visibilityObservers.remove(observer);
}
+bool Document::hasStyleObserver()
+{
+ return !m_styleObservers.isEmpty();
+}
+
+void Document::notifyStyleObservers(const Element* element, const ComputedStyle* oldStyle, const ComputedStyle* newStyle)
+{
+ // TODO(majidvp): make a snapshot of observers to avoid them being changed while we iterate
+ for (StyleObserver* observer : m_styleObservers)
+ observer->onStyleChanged(element, oldStyle, newStyle);
+}
+
+void Document::registerStyleObserver(StyleObserver* observer)
+{
+ ASSERT(!m_styleObservers.contains(observer));
+ m_styleObservers.add(observer);
+}
+
+void Document::unregisterStyleObserver(StyleObserver* observer)
+{
+ ASSERT(m_styleObservers.contains(observer));
+ m_styleObservers.remove(observer);
+}
+
String Document::nodeName() const
{
return "#document";
« 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