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: http://svn.webkit.org/repository/webkit/trunk@102264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5 files changed