Layout Test inspector/debugger/dom-breakpoints.html fails on chromium linux debug...
authoradamk@chromium.org <adamk@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Dec 2011 20:03:50 +0000 (20:03 +0000)
committeradamk@chromium.org <adamk@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Dec 2011 20:03:50 +0000 (20:03 +0000)
commit46a26f701270ef7973260c816be3b7e4ecb6a15b
treee7f9b0f33337064ed3178608553a32592a6dd4e6
parent5d48da38e095d38dd662f77015e5d95279aa9b1a
Layout Test inspector/debugger/dom-breakpoints.html fails on chromium linux debug with ENABLE(MUTATION_OBSERVERS)
https://bugs.webkit.org/show_bug.cgi?id=73919

Reviewed by Ojan Vafai.

Source/WebCore:

Use StyleAttributeMutationScope to manage DOM breakpoints for style property changes.

Instead of calling InspectorInstrumentation::didInvalidateStyleAttr()
directly in setNeedsStyleRecalc, set a bool in the current
StyleAttributeMutationScope, and delay the call until the scope's
counter runs down to zero. This keeps the inspector JS from re-entering
CSSMutableStyleDeclaration until all StyleAttributeMutationScope work is done.

Also fix a small bug in StyleAttributeMutationScope, where
s_shouldDeliver wasn't getting reset properly to false.

* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):

LayoutTests:

Added test that no-op style mutations don't create MutationRecords.

* fast/mutation/observe-attributes-expected.txt:
* fast/mutation/observe-attributes.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@102264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/mutation/observe-attributes-expected.txt
LayoutTests/fast/mutation/observe-attributes.html
Source/WebCore/ChangeLog
Source/WebCore/css/CSSMutableStyleDeclaration.cpp