Changeset 244269 in webkit


Ignore:
Timestamp:
Apr 15, 2019 10:27:40 AM (5 years ago)
Author:
Devin Rousso
Message:

Web Inspector: DOMDebugger: "Attribute Modified" breakpoints pause after the modification occurs for the style attribute
https://bugs.webkit.org/show_bug.cgi?id=196556
<rdar://problem/49570681>

Reviewed by Timothy Hatcher.

Source/WebCore:

Test: inspector/dom-debugger/attribute-modified-style.html

  • css/PropertySetCSSStyleDeclaration.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::StyleAttributeMutationScope::~StyleAttributeMutationScope):
(WebCore::InlineCSSStyleDeclaration::willMutate): Added.

  • dom/StyledElement.cpp:

(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::inlineStyleChanged):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willInvalidateStyleAttr): Added.
(WebCore::InspectorInstrumentation::didInvalidateStyleAttr):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willInvalidateStyleAttrImpl): Added.
(WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl):

  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::didInvalidateStyleAttr):

  • inspector/agents/InspectorDOMDebuggerAgent.h:
  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::willInvalidateStyleAttr): Added.
(WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): Deleted.

LayoutTests:

  • inspector/dom-debugger/attribute-modified-style.html: Added.
  • inspector/dom-debugger/attribute-modified-style-expected.txt: Added.
Location:
trunk
Files:
2 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r244267 r244269  
     12019-04-15  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: DOMDebugger: "Attribute Modified" breakpoints pause after the modification occurs for the style attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=196556
     5        <rdar://problem/49570681>
     6
     7        Reviewed by Timothy Hatcher.
     8
     9        * inspector/dom-debugger/attribute-modified-style.html: Added.
     10        * inspector/dom-debugger/attribute-modified-style-expected.txt: Added.
     11
    1122019-04-15  Devin Rousso  <drousso@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r244267 r244269  
     12019-04-15  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: DOMDebugger: "Attribute Modified" breakpoints pause after the modification occurs for the style attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=196556
     5        <rdar://problem/49570681>
     6
     7        Reviewed by Timothy Hatcher.
     8
     9        Test: inspector/dom-debugger/attribute-modified-style.html
     10
     11        * css/PropertySetCSSStyleDeclaration.h:
     12        * css/PropertySetCSSStyleDeclaration.cpp:
     13        (WebCore::StyleAttributeMutationScope::~StyleAttributeMutationScope):
     14        (WebCore::InlineCSSStyleDeclaration::willMutate): Added.
     15
     16        * dom/StyledElement.cpp:
     17        (WebCore::StyledElement::styleAttributeChanged):
     18        (WebCore::StyledElement::inlineStyleChanged):
     19
     20        * inspector/InspectorInstrumentation.h:
     21        (WebCore::InspectorInstrumentation::willInvalidateStyleAttr): Added.
     22        (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
     23        * inspector/InspectorInstrumentation.cpp:
     24        (WebCore::InspectorInstrumentation::willInvalidateStyleAttrImpl): Added.
     25        (WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl):
     26
     27        * inspector/agents/InspectorDOMAgent.h:
     28        * inspector/agents/InspectorDOMAgent.cpp:
     29        (WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
     30
     31        * inspector/agents/InspectorDOMDebuggerAgent.h:
     32        * inspector/agents/InspectorDOMDebuggerAgent.cpp:
     33        (WebCore::InspectorDOMDebuggerAgent::willInvalidateStyleAttr): Added.
     34        (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): Deleted.
     35
    1362019-04-15  Devin Rousso  <drousso@apple.com>
    237
  • trunk/Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp

    r243887 r244269  
    105105        s_currentDecl = nullptr;
    106106        s_shouldNotifyInspector = false;
    107         if (localCopyStyleDecl->parentElement())
    108             InspectorInstrumentation::didInvalidateStyleAttr(localCopyStyleDecl->parentElement()->document(), *localCopyStyleDecl->parentElement());
     107
     108        if (auto* parentElement = localCopyStyleDecl->parentElement())
     109            InspectorInstrumentation::didInvalidateStyleAttr(*parentElement);
    109110    }
    110111
     
    422423}
    423424
     425bool InlineCSSStyleDeclaration::willMutate()
     426{
     427    if (m_parentElement)
     428        InspectorInstrumentation::willInvalidateStyleAttr(*m_parentElement);
     429    return true;
     430}
     431
    424432void InlineCSSStyleDeclaration::didMutate(MutationType type)
    425433{
  • trunk/Source/WebCore/css/PropertySetCSSStyleDeclaration.h

    r243887 r244269  
    135135    void clearParentElement() final { m_parentElement = nullptr; }
    136136
     137    bool willMutate() final WARN_UNUSED_RETURN;
    137138    void didMutate(MutationType) final;
    138139    CSSParserContext cssParserContext() const final;
  • trunk/Source/WebCore/dom/StyledElement.cpp

    r243239 r244269  
    207207
    208208    invalidateStyle();
    209     InspectorInstrumentation::didInvalidateStyleAttr(document(), *this);
     209    InspectorInstrumentation::didInvalidateStyleAttr(*this);
    210210}
    211211
     
    232232{
    233233    invalidateStyleAttribute();
    234     InspectorInstrumentation::didInvalidateStyleAttr(document(), *this);
     234    InspectorInstrumentation::didInvalidateStyleAttr(*this);
    235235}
    236236   
  • trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp

    r243663 r244269  
    189189}
    190190
    191 void InspectorInstrumentation::didInvalidateStyleAttrImpl(InstrumentingAgents& instrumentingAgents, Node& node)
    192 {
    193     if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
    194         domAgent->didInvalidateStyleAttr(node);
    195     if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
    196         domDebuggerAgent->didInvalidateStyleAttr(node);
     191void InspectorInstrumentation::willInvalidateStyleAttrImpl(InstrumentingAgents& instrumentingAgents, Element& element)
     192{
     193    if (auto* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
     194        domDebuggerAgent->willInvalidateStyleAttr(element);
     195}
     196
     197void InspectorInstrumentation::didInvalidateStyleAttrImpl(InstrumentingAgents& instrumentingAgents, Element& element)
     198{
     199    if (auto* domAgent = instrumentingAgents.inspectorDOMAgent())
     200        domAgent->didInvalidateStyleAttr(element);
    197201}
    198202
  • trunk/Source/WebCore/inspector/InspectorInstrumentation.h

    r243663 r244269  
    116116    static void didRemoveDOMAttr(Document&, Element&, const AtomicString& name);
    117117    static void characterDataModified(Document&, CharacterData&);
    118     static void didInvalidateStyleAttr(Document&, Node&);
     118    static void willInvalidateStyleAttr(Element&);
     119    static void didInvalidateStyleAttr(Element&);
    119120    static void documentDetached(Document&);
    120121    static void frameWindowDiscarded(Frame&, DOMWindow*);
     
    309310    static void didRemoveDOMAttrImpl(InstrumentingAgents&, Element&, const AtomicString& name);
    310311    static void characterDataModifiedImpl(InstrumentingAgents&, CharacterData&);
    311     static void didInvalidateStyleAttrImpl(InstrumentingAgents&, Node&);
     312    static void willInvalidateStyleAttrImpl(InstrumentingAgents&, Element&);
     313    static void didInvalidateStyleAttrImpl(InstrumentingAgents&, Element&);
    312314    static void documentDetachedImpl(InstrumentingAgents&, Document&);
    313315    static void frameWindowDiscardedImpl(InstrumentingAgents&, DOMWindow*);
     
    553555}
    554556
    555 inline void InspectorInstrumentation::didInvalidateStyleAttr(Document& document, Node& node)
    556 {
    557     FAST_RETURN_IF_NO_FRONTENDS(void());
    558     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForDocument(document))
    559         didInvalidateStyleAttrImpl(*instrumentingAgents, node);
     557inline void InspectorInstrumentation::willInvalidateStyleAttr(Element& element)
     558{
     559    FAST_RETURN_IF_NO_FRONTENDS(void());
     560    if (auto* instrumentingAgents = instrumentingAgentsForDocument(element.document()))
     561        willInvalidateStyleAttrImpl(*instrumentingAgents, element);
     562}
     563
     564inline void InspectorInstrumentation::didInvalidateStyleAttr(Element& element)
     565{
     566    FAST_RETURN_IF_NO_FRONTENDS(void());
     567    if (auto* instrumentingAgents = instrumentingAgentsForDocument(element.document()))
     568        didInvalidateStyleAttrImpl(*instrumentingAgents, element);
    560569}
    561570
  • trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp

    r244267 r244269  
    23122312}
    23132313
    2314 void InspectorDOMAgent::didInvalidateStyleAttr(Node& node)
    2315 {
    2316     int id = m_documentNodeToIdMap.get(&node);
     2314void InspectorDOMAgent::didInvalidateStyleAttr(Element& element)
     2315{
     2316    int id = m_documentNodeToIdMap.get(&element);
    23172317    if (!id)
    23182318        return;
     
    23202320    if (!m_revalidateStyleAttrTask)
    23212321        m_revalidateStyleAttrTask = std::make_unique<RevalidateStyleAttributeTask>(this);
    2322     m_revalidateStyleAttrTask->scheduleFor(downcast<Element>(&node));
     2322    m_revalidateStyleAttrTask->scheduleFor(&element);
    23232323}
    23242324
  • trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.h

    r244267 r244269  
    147147    void didRemoveDOMAttr(Element&, const AtomicString& name);
    148148    void characterDataModified(CharacterData&);
    149     void didInvalidateStyleAttr(Node&);
     149    void didInvalidateStyleAttr(Element&);
    150150    void didPushShadowRoot(Element& host, ShadowRoot&);
    151151    void willPopShadowRoot(Element& host, ShadowRoot&);
  • trunk/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp

    r243719 r244269  
    171171}
    172172
    173 void InspectorDOMDebuggerAgent::didInvalidateStyleAttr(Node& node)
    174 {
    175     if (!m_debuggerAgent->breakpointsActive())
    176         return;
    177 
    178     if (hasBreakpoint(&node, AttributeModified)) {
     173void InspectorDOMDebuggerAgent::willInvalidateStyleAttr(Element& element)
     174{
     175    if (!m_debuggerAgent->breakpointsActive())
     176        return;
     177
     178    if (hasBreakpoint(&element, AttributeModified)) {
    179179        Ref<JSON::Object> eventData = JSON::Object::create();
    180         descriptionForDOMEvent(node, AttributeModified, false, eventData.get());
     180        descriptionForDOMEvent(element, AttributeModified, false, eventData.get());
    181181        m_debuggerAgent->breakProgram(Inspector::DebuggerFrontendDispatcher::Reason::DOM, WTFMove(eventData));
    182182    }
  • trunk/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.h

    r243273 r244269  
    7070    // InspectorInstrumentation
    7171    void willInsertDOMNode(Node& parent);
    72     void didInvalidateStyleAttr(Node&);
     72    void willInvalidateStyleAttr(Element&);
    7373    void didInsertDOMNode(Node&);
    7474    void willRemoveDOMNode(Node&);
Note: See TracChangeset for help on using the changeset viewer.