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

Unified Diff: Source/core/dom/Element.cpp

Issue 143983007: Remove PostAttachCallbacks and replace with something more specialized (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update Created 6 years, 9 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
Index: Source/core/dom/Element.cpp
diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp
index 427e71f2a91143e25960e045203ba924461d1321..cf0229c9325faffb0842d5926766bdd8d56a4b13 100644
--- a/Source/core/dom/Element.cpp
+++ b/Source/core/dom/Element.cpp
@@ -57,7 +57,6 @@
#include "core/dom/MutationRecord.h"
#include "core/dom/NamedNodeMap.h"
#include "core/dom/NodeRenderStyle.h"
-#include "core/dom/PostAttachCallbacks.h"
#include "core/dom/PresentationAttributeStyle.h"
#include "core/dom/PseudoElement.h"
#include "core/dom/RenderTreeBuilder.h"
@@ -1469,6 +1468,8 @@ void Element::detach(const AttachContext& context)
RenderWidget::UpdateSuspendScope suspendWidgetHierarchyUpdates;
cancelFocusAppearanceUpdate();
removeCallbackSelectors();
+ if (needsLayerUpdate())
+ document().unscheduleLayerUpdate(*this);
if (hasRareData()) {
ElementRareData* data = elementRareData();
data->clearPseudoElements();
@@ -1636,7 +1637,7 @@ StyleRecalcChange Element::recalcOwnStyle(StyleRecalcChange change)
updateCallbackSelectors(oldStyle.get(), newStyle.get());
if (RenderObject* renderer = this->renderer()) {
- if (localChange != NoChange || pseudoStyleCacheIsInvalid(oldStyle.get(), newStyle.get()) || shouldNotifyRendererWithIdenticalStyles()) {
+ if (localChange != NoChange || pseudoStyleCacheIsInvalid(oldStyle.get(), newStyle.get()) || needsLayerUpdate()) {
renderer->setStyle(newStyle.get());
} else {
// Although no change occurred, we use the new style so that the cousin style sharing code won't get
@@ -3030,19 +3031,9 @@ PassRefPtr<HTMLCollection> Element::ensureCachedHTMLCollection(CollectionType ty
return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(*this, type);
}
-static void scheduleLayerUpdateCallback(Node* node)
-{
- // Notify the renderer even is the styles are identical since it may need to
- // create or destroy a RenderLayer.
- node->setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRenderer);
-}
-
void Element::scheduleLayerUpdate()
{
- if (document().inStyleRecalc())
- PostAttachCallbacks::queueCallback(scheduleLayerUpdateCallback, this);
- else
- scheduleLayerUpdateCallback(this);
+ document().scheduleLayerUpdate(*this);
}
HTMLCollection* Element::cachedHTMLCollection(CollectionType type)

Powered by Google App Engine
This is Rietveld 408576698