Changeset 220342 in webkit


Ignore:
Timestamp:
Aug 7, 2017 9:44:12 AM (7 years ago)
Author:
Ryan Haddad
Message:

Unreviewed, rolling out r220299.

This change caused LayoutTest inspector/dom-debugger/dom-
breakpoints.html to fail.

Reverted changeset:

"Web Inspector: capture async stack trace when workers/main
context posts a message"
https://bugs.webkit.org/show_bug.cgi?id=167084
http://trac.webkit.org/changeset/220299

Location:
trunk
Files:
1 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r220332 r220342  
     12017-08-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r220299.
     4
     5        This change caused LayoutTest inspector/dom-debugger/dom-
     6        breakpoints.html to fail.
     7
     8        Reverted changeset:
     9
     10        "Web Inspector: capture async stack trace when workers/main
     11        context posts a message"
     12        https://bugs.webkit.org/show_bug.cgi?id=167084
     13        http://trac.webkit.org/changeset/220299
     14
    1152017-08-07  Ms2ger  <Ms2ger@igalia.com>
    216
  • trunk/LayoutTests/inspector/debugger/async-stack-trace-expected.txt

    r220299 r220342  
    1 CONSOLE MESSAGE: line 55: Unable to post message to http://example.com. Recipient has origin .
    2 
    31Tests for async stack traces.
    4 
    52
    63
     
    80775: [F] testAddEventListener
    81786: [P] Global Code
    82 
    83 -- Running test case: CheckAsyncStackTrace.PostMessage
    84 PAUSE #1
    85 CALL STACK:
    86 0: [F] pauseThenFinishTest
    87 1: [F] postMessageFired
    88 ASYNC CALL STACK:
    89 2: --- postMessage ---
    90 3: [F] messageReceived
    91 4: --- postMessage ---
    92 5: [F] testPostMessage
    93 6: [P] Global Code
    94 
    95 -- Running test case: ShouldNotPauseForFailedPostMessage
    96 PASS: Should not pause for failed post message.
    9779-- Running test setup.
    9880Save DebuggerManager.asyncStackTraceDepth
  • trunk/LayoutTests/inspector/debugger/async-stack-trace.html

    r220299 r220342  
    5151}
    5252
    53 function testPostMessage(targetOrigin = "*") {
    54     let childFrame = document.getElementById("postMessageTestFrame");
    55     childFrame.contentWindow.postMessage("<message>", targetOrigin);
    56 
    57     window.addEventListener("message", function postMessageFired() {
    58         window.removeEventListener("message", postMessageFired);
    59         pauseThenFinishTest();
    60     });
    61 }
    62 
    63 function testFailPostMessage() {
    64     testPostMessage("http://example.com");
    65     setTimeout(() => {
    66         TestPage.dispatchEventToFrontend("AfterTestFunction");
    67     }, 0);
    68 }
    69 
    7053function recursiveCallThenTest(testFunction, depth) {
    7154    if (depth) {
     
    9780            test(resolve, reject) {
    9881                let pauseCount = 0;
    99                 function debuggerPaused() {
     82                function handlePaused() {
    10083                    InspectorTest.log(`PAUSE #${++pauseCount}`);
    10184                    logActiveStackTrace();
     
    10386                }
    10487
    105                 WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, debuggerPaused);
     88                WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, handlePaused);
    10689
    107                 InspectorTest.awaitEvent("AfterTestFunction")
    108                 .then(() => {
    109                     WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, debuggerPaused);
     90                InspectorTest.singleFireEventListener("AfterTestFunction", () => {
     91                    WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, handlePaused);
    11092                    resolve();
    11193                });
     
    122104    addSimpleTestCase("ReferenceCounting", "testReferenceCounting()");
    123105    addSimpleTestCase("AddEventListener", "testAddEventListener()");
    124     addSimpleTestCase("PostMessage", "testPostMessage()");
    125 
    126     suite.addTestCase({
    127         name: "ShouldNotPauseForFailedPostMessage",
    128         test(resolve, reject) {
    129             function debuggerPaused() {
    130                 WI.debuggerManager.resume();
    131                 InspectorTest.fail("Should not pause.");
    132                 reject();
    133             }
    134 
    135             WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, debuggerPaused);
    136 
    137             InspectorTest.awaitEvent("AfterTestFunction")
    138             .then(() => {
    139                 WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, debuggerPaused);
    140                 InspectorTest.pass("Should not pause for failed post message.");
    141                 resolve();
    142             });
    143 
    144             InspectorTest.evaluateInPage("testFailPostMessage()");
    145         }
    146     });
    147106
    148107    function setup(resolve) {
     
    232191<body onload="runTest()">
    233192<p>Tests for async stack traces.</p>
    234 <iframe id="postMessageTestFrame" src="resources/postMessage-echo.html"></iframe>
    235193</body>
    236194</html>
  • trunk/LayoutTests/inspector/dom-debugger/dom-breakpoints.html

    r220299 r220342  
    3535
    3636        resolve();
     37    }
     38
     39    function awaitEvaluateInPage(expression) {
     40        return new Promise((resolve, reject) => {
     41            InspectorTest.log("Wait for evaluate in page to return.");
     42            InspectorTest.evaluateInPage(expression, (error) => {
     43                if (error)
     44                    reject(error);
     45
     46                resolve();
     47            });
     48        });
    3749    }
    3850
  • trunk/Source/JavaScriptCore/ChangeLog

    r220336 r220342  
     12017-08-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r220299.
     4
     5        This change caused LayoutTest inspector/dom-debugger/dom-
     6        breakpoints.html to fail.
     7
     8        Reverted changeset:
     9
     10        "Web Inspector: capture async stack trace when workers/main
     11        context posts a message"
     12        https://bugs.webkit.org/show_bug.cgi?id=167084
     13        http://trac.webkit.org/changeset/220299
     14
    1152017-08-07  Brian Burg  <bburg@apple.com>
    216
  • trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h

    r220299 r220342  
    9595        DOMTimer,
    9696        EventListener,
    97         PostMessage,
    9897        RequestAnimationFrame,
    9998    };
  • trunk/Source/WebCore/ChangeLog

    r220337 r220342  
     12017-08-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r220299.
     4
     5        This change caused LayoutTest inspector/dom-debugger/dom-
     6        breakpoints.html to fail.
     7
     8        Reverted changeset:
     9
     10        "Web Inspector: capture async stack trace when workers/main
     11        context posts a message"
     12        https://bugs.webkit.org/show_bug.cgi?id=167084
     13        http://trac.webkit.org/changeset/220299
     14
    1152017-08-07  Brian Burg  <bburg@apple.com>
    216
  • trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp

    r220299 r220342  
    364364}
    365365
    366 void InspectorInstrumentation::didPostMessageImpl(InstrumentingAgents& instrumentingAgents, const TimerBase& timer, JSC::ExecState& state)
    367 {
    368     if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
    369         pageDebuggerAgent->didPostMessage(timer, state);
    370 }
    371 
    372 void InspectorInstrumentation::didFailPostMessageImpl(InstrumentingAgents& instrumentingAgents, const TimerBase& timer)
    373 {
    374     if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
    375         pageDebuggerAgent->didFailPostMessage(timer);
    376 }
    377 
    378 void InspectorInstrumentation::willDispatchPostMessageImpl(InstrumentingAgents& instrumentingAgents, const TimerBase& timer)
    379 {
    380     if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
    381         pageDebuggerAgent->willDispatchPostMessage(timer);
    382 }
    383 
    384 void InspectorInstrumentation::didDispatchPostMessageImpl(InstrumentingAgents& instrumentingAgents, const TimerBase& timer)
    385 {
    386     if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
    387         pageDebuggerAgent->didDispatchPostMessage(timer);
    388 }
    389 
    390366InspectorInstrumentationCookie InspectorInstrumentation::willCallFunctionImpl(InstrumentingAgents& instrumentingAgents, const String& scriptName, int scriptLine, ScriptExecutionContext* context)
    391367{
  • trunk/Source/WebCore/inspector/InspectorInstrumentation.h

    r220299 r220342  
    8686class SecurityOrigin;
    8787class ShadowRoot;
    88 class TimerBase;
    8988class URL;
    9089#if ENABLE(WEBGL)
     
    137136    static void didInstallTimer(ScriptExecutionContext&, int timerId, Seconds timeout, bool singleShot);
    138137    static void didRemoveTimer(ScriptExecutionContext&, int timerId);
    139 
    140     static void didPostMessage(Frame&, TimerBase&, JSC::ExecState&);
    141     static void didFailPostMessage(Frame&, TimerBase&);
    142     static void willDispatchPostMessage(Frame&, TimerBase&);
    143     static void didDispatchPostMessage(Frame&, TimerBase&);
    144138
    145139    static InspectorInstrumentationCookie willCallFunction(ScriptExecutionContext*, const String& scriptName, int scriptLine);
     
    308302    static void didInstallTimerImpl(InstrumentingAgents&, int timerId, Seconds timeout, bool singleShot, ScriptExecutionContext&);
    309303    static void didRemoveTimerImpl(InstrumentingAgents&, int timerId, ScriptExecutionContext&);
    310 
    311     static void didPostMessageImpl(InstrumentingAgents&, const TimerBase&, JSC::ExecState&);
    312     static void didFailPostMessageImpl(InstrumentingAgents&, const TimerBase&);
    313     static void willDispatchPostMessageImpl(InstrumentingAgents&, const TimerBase&);
    314     static void didDispatchPostMessageImpl(InstrumentingAgents&, const TimerBase&);
    315304
    316305    static InspectorInstrumentationCookie willCallFunctionImpl(InstrumentingAgents&, const String& scriptName, int scriptLine, ScriptExecutionContext*);
     
    681670}
    682671
    683 inline void InspectorInstrumentation::didPostMessage(Frame& frame, TimerBase& timer, JSC::ExecState& state)
    684 {
    685     FAST_RETURN_IF_NO_FRONTENDS(void());
    686     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForFrame(frame))
    687         didPostMessageImpl(*instrumentingAgents, timer, state);
    688 }
    689 
    690 inline void InspectorInstrumentation::didFailPostMessage(Frame& frame, TimerBase& timer)
    691 {
    692     FAST_RETURN_IF_NO_FRONTENDS(void());
    693     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForFrame(frame))
    694         didFailPostMessageImpl(*instrumentingAgents, timer);
    695 }
    696 
    697 inline void InspectorInstrumentation::willDispatchPostMessage(Frame& frame, TimerBase& timer)
    698 {
    699     FAST_RETURN_IF_NO_FRONTENDS(void());
    700     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForFrame(frame))
    701         willDispatchPostMessageImpl(*instrumentingAgents, timer);
    702 }
    703 
    704 inline void InspectorInstrumentation::didDispatchPostMessage(Frame& frame, TimerBase& timer)
    705 {
    706     FAST_RETURN_IF_NO_FRONTENDS(void());
    707     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForFrame(frame))
    708         didDispatchPostMessageImpl(*instrumentingAgents, timer);
    709 }
    710 
    711672inline InspectorInstrumentationCookie InspectorInstrumentation::willCallFunction(ScriptExecutionContext* context, const String& scriptName, int scriptLine)
    712673{
  • trunk/Source/WebCore/inspector/PageDebuggerAgent.cpp

    r220299 r220342  
    4646#include "ScriptExecutionContext.h"
    4747#include "ScriptState.h"
    48 #include "Timer.h"
    4948#include <inspector/InjectedScript.h>
    5049#include <inspector/InjectedScriptManager.h>
     
    101100{
    102101    m_registeredEventListeners.clear();
    103     m_postMessageTimers.clear();
    104102    m_nextEventListenerIdentifier = 1;
    105     m_nextPostMessageIdentifier = 1;
    106103}
    107104
     
    231228}
    232229
    233 void PageDebuggerAgent::didPostMessage(const TimerBase& timer, JSC::ExecState& state)
    234 {
    235     if (!breakpointsActive())
    236         return;
    237 
    238     if (m_postMessageTimers.contains(&timer)) {
    239         ASSERT_NOT_REACHED();
    240         return;
    241     }
    242 
    243     int postMessageIdentifier = m_nextPostMessageIdentifier++;
    244     m_postMessageTimers.set(&timer, postMessageIdentifier);
    245 
    246     didScheduleAsyncCall(&state, InspectorDebuggerAgent::AsyncCallType::PostMessage, postMessageIdentifier, true);
    247 }
    248 
    249 void PageDebuggerAgent::didFailPostMessage(const TimerBase& timer)
    250 {
    251     auto it = m_postMessageTimers.find(&timer);
    252     if (it == m_postMessageTimers.end())
    253         return;
    254 
    255     didCancelAsyncCall(InspectorDebuggerAgent::AsyncCallType::PostMessage, it->value);
    256 
    257     m_postMessageTimers.remove(it);
    258 }
    259 
    260 void PageDebuggerAgent::willDispatchPostMessage(const TimerBase& timer)
    261 {
    262     auto it = m_postMessageTimers.find(&timer);
    263     if (it == m_postMessageTimers.end())
    264         return;
    265 
    266     willDispatchAsyncCall(InspectorDebuggerAgent::AsyncCallType::PostMessage, it->value);
    267 }
    268 
    269 void PageDebuggerAgent::didDispatchPostMessage(const TimerBase& timer)
    270 {
    271     auto it = m_postMessageTimers.find(&timer);
    272     if (it == m_postMessageTimers.end())
    273         return;
    274 
    275     didDispatchAsyncCall();
    276 
    277     m_postMessageTimers.remove(it);
    278 }
    279 
    280230} // namespace WebCore
  • trunk/Source/WebCore/inspector/PageDebuggerAgent.h

    r220299 r220342  
    4343class Page;
    4444class RegisteredEventListener;
    45 class TimerBase;
    4645
    4746class PageDebuggerAgent final : public WebDebuggerAgent {
     
    6564    void willRemoveEventListener(EventTarget&, const AtomicString& eventType, EventListener&, bool capture);
    6665    void willHandleEvent(const RegisteredEventListener&);
    67 
    68     void didPostMessage(const TimerBase&, JSC::ExecState&);
    69     void didFailPostMessage(const TimerBase&);
    70     void willDispatchPostMessage(const TimerBase&);
    71     void didDispatchPostMessage(const TimerBase&);
    7266
    7367protected:
     
    9488
    9589    HashMap<const RegisteredEventListener*, int> m_registeredEventListeners;
    96     HashMap<const TimerBase*, int> m_postMessageTimers;
    9790    int m_nextEventListenerIdentifier { 1 };
    98     int m_nextPostMessageIdentifier { 1 };
    9991};
    10092
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r220299 r220342  
    957957    timer->startOneShot(0_s);
    958958
    959     InspectorInstrumentation::didPostMessage(*m_frame, *timer, state);
    960 
    961959    return { };
    962960}
     
    977975                    pageConsole->addMessage(MessageSource::Security, MessageLevel::Error, message);
    978976            }
    979 
    980             InspectorInstrumentation::didFailPostMessage(*m_frame, timer);
    981977            return;
    982978        }
    983979    }
    984980
    985     InspectorInstrumentation::willDispatchPostMessage(*m_frame, timer);
    986 
    987981    dispatchEvent(timer.event(*document()));
    988 
    989     InspectorInstrumentation::didDispatchPostMessage(*m_frame, timer);
    990982}
    991983
Note: See TracChangeset for help on using the changeset viewer.