Changeset 249615 in webkit


Ignore:
Timestamp:
Sep 7, 2019 1:20:51 PM (5 years ago)
Author:
Ryan Haddad
Message:

Unreviewed, rolling out r249353.

The test for this change is a flaky failure.

Reverted changeset:

"Add support for postMessage buffering between the service
worker and window"
https://bugs.webkit.org/show_bug.cgi?id=201169
https://trac.webkit.org/changeset/249353

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r249614 r249615  
     12019-09-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r249353.
     4
     5        The test for this change is a flaky failure.
     6
     7        Reverted changeset:
     8
     9        "Add support for postMessage buffering between the service
     10        worker and window"
     11        https://bugs.webkit.org/show_bug.cgi?id=201169
     12        https://trac.webkit.org/changeset/249353
     13
    1142019-09-07  Alex Christensen  <achristensen@webkit.org>
    215
  • trunk/LayoutTests/TestExpectations

    r249517 r249615  
    210210imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html [ Skip ]
    211211imported/w3c/web-platform-tests/service-workers/service-worker/multipart-image.https.html [ Skip ]
     212imported/w3c/web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html [ Skip ]
    212213imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html [ Skip ]
    213214imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html [ Skip ]
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r249574 r249615  
     12019-09-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r249353.
     4
     5        The test for this change is a flaky failure.
     6
     7        Reverted changeset:
     8
     9        "Add support for postMessage buffering between the service
     10        worker and window"
     11        https://bugs.webkit.org/show_bug.cgi?id=201169
     12        https://trac.webkit.org/changeset/249353
     13
    1142019-09-06  Youenn Fablet  <youenn@apple.com>
    215
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt

    r249353 r249615  
    11
    2 PASS Messages from ServiceWorker to Client only received after DOMContentLoaded event.
    3 PASS Messages from ServiceWorker to Client only received after calling startMessages().
    4 PASS Messages from ServiceWorker to Client only received after setting onmessage.
    5 PASS Microtasks run before dispatching messages after calling startMessages().
    6 PASS Microtasks run before dispatching messages after setting onmessage.
     2Harness Error (TIMEOUT), message = null
    73
     4TIMEOUT Messages from ServiceWorker to Client only received after DOMContentLoaded event. Test timed out
     5NOTRUN Messages from ServiceWorker to Client only received after calling startMessages().
     6NOTRUN Messages from ServiceWorker to Client only received after setting onmessage.
     7NOTRUN Microtasks run before dispatching messages after calling startMessages().
     8NOTRUN Microtasks run before dispatching messages after setting onmessage.
     9
  • trunk/LayoutTests/platform/mac-wk1/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt

    r249353 r249615  
     1CONSOLE MESSAGE: line 21: TypeError: null is not an object (evaluating 'errorFrame.contentDocument.querySelector("#error-url").click')
    12
    23
  • trunk/LayoutTests/platform/win/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt

    r249353 r249615  
     1CONSOLE MESSAGE: line 21: TypeError: null is not an object (evaluating 'errorFrame.contentDocument.querySelector("#error-url").click')
    12
    23
  • trunk/LayoutTests/resources/testharnessreport.js

    r249353 r249615  
    9999        // from the page and therefore reduce the output.
    100100        setTimeout(function () {
    101             testRunner.forceImmediateCompletion();
     101            testRunner.notifyDone();
    102102        }, 0);
    103103    });
  • trunk/Source/WebCore/ChangeLog

    r249614 r249615  
     12019-09-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r249353.
     4
     5        The test for this change is a flaky failure.
     6
     7        Reverted changeset:
     8
     9        "Add support for postMessage buffering between the service
     10        worker and window"
     11        https://bugs.webkit.org/show_bug.cgi?id=201169
     12        https://trac.webkit.org/changeset/249353
     13
    1142019-09-07  Alex Christensen  <achristensen@webkit.org>
    215
  • trunk/Source/WebCore/dom/Document.cpp

    r249378 r249615  
    194194#include "SelectorQuery.h"
    195195#include "ServiceWorkerClientData.h"
    196 #include "ServiceWorkerContainer.h"
    197196#include "ServiceWorkerProvider.h"
    198197#include "Settings.h"
     
    57105709    // Parser should have picked up all speculative preloads by now
    57115710    m_cachedResourceLoader->clearPreloads(CachedResourceLoader::ClearPreloadsMode::ClearSpeculativePreloads);
    5712 
    5713 #if ENABLE(SERVICE_WORKER)
    5714     if (RuntimeEnabledFeatures::sharedFeatures().serviceWorkerEnabled()) {
    5715         // Stop queuing service worker client messages now that the DOMContentLoaded event has been fired.
    5716         if (auto* serviceWorkerContainer = this->serviceWorkerContainer())
    5717             serviceWorkerContainer->startMessages();
    5718     }
    5719 #endif
    57205711}
    57215712
  • trunk/Source/WebCore/dom/ScriptExecutionContext.cpp

    r249353 r249615  
    613613}
    614614
    615 ServiceWorkerContainer* ScriptExecutionContext::ensureServiceWorkerContainer()
    616 {
    617     NavigatorBase* navigator = nullptr;
    618     if (is<Document>(*this)) {
    619         if (auto* window = downcast<Document>(*this).domWindow())
    620             navigator = &window->navigator();
    621     } else
    622         navigator = &downcast<WorkerGlobalScope>(*this).navigator();
    623        
    624     return navigator ? &navigator->serviceWorker() : nullptr;
    625 }
    626 
    627615bool ScriptExecutionContext::postTaskTo(const DocumentOrWorkerIdentifier& contextIdentifier, WTF::Function<void(ScriptExecutionContext&)>&& task)
    628616{
  • trunk/Source/WebCore/dom/ScriptExecutionContext.h

    r249353 r249615  
    256256
    257257    ServiceWorkerContainer* serviceWorkerContainer();
    258     ServiceWorkerContainer* ensureServiceWorkerContainer();
    259258
    260259    WEBCORE_EXPORT static bool postTaskTo(const DocumentOrWorkerIdentifier&, WTF::Function<void(ScriptExecutionContext&)>&&);
  • trunk/Source/WebCore/workers/service/SWClientConnection.cpp

    r249526 r249615  
    124124        return;
    125125
    126     if (auto* container = destinationDocument->ensureServiceWorkerContainer())
    127         container->postMessage(WTFMove(message), WTFMove(sourceData), WTFMove(sourceOrigin));
     126    destinationDocument->postTask([message = WTFMove(message), sourceData = WTFMove(sourceData), sourceOrigin = WTFMove(sourceOrigin)](auto& context) mutable {
     127        if (auto* container = context.serviceWorkerContainer())
     128            container->postMessage(WTFMove(message), WTFMove(sourceData), WTFMove(sourceOrigin));
     129    });
    128130}
    129131
  • trunk/Source/WebCore/workers/service/ServiceWorkerContainer.cpp

    r249526 r249615  
    7171    : ActiveDOMObject(context)
    7272    , m_navigator(navigator)
    73     , m_messageQueue(*this)
    7473{
    7574    suspendIfNeeded();
    76    
    77     // We should queue messages until the DOMContentLoaded event has fired or startMessages() has been called.
    78     if (is<Document>(context) && downcast<Document>(*context).parsing())
    79         m_messageQueue.suspend();
    8075}
    8176
     
    316311void ServiceWorkerContainer::startMessages()
    317312{
    318     m_messageQueue.resume();
    319313}
    320314
     
    414408
    415409    auto messageEvent = MessageEvent::create(MessagePort::entanglePorts(context, WTFMove(message.transferredPorts)), message.message.releaseNonNull(), sourceOrigin, { }, WTFMove(source));
    416    
    417     m_messageQueue.enqueueEvent(WTFMove(messageEvent));
     410    dispatchEvent(messageEvent);
    418411}
    419412
     
    523516{
    524517    return !hasPendingActivity();
    525 }
    526 
    527 void ServiceWorkerContainer::suspend(ReasonForSuspension)
    528 {
    529     m_messageQueue.suspend();
    530 }
    531 
    532 void ServiceWorkerContainer::resume()
    533 {
    534     m_messageQueue.resume();
    535518}
    536519
     
    586569    removeAllEventListeners();
    587570    m_readyPromise = nullptr;
    588     m_messageQueue.close();
    589571    auto jobMap = WTFMove(m_jobMap);
    590572    for (auto& ongoingJob : jobMap.values()) {
     
    631613}
    632614
    633 bool ServiceWorkerContainer::addEventListener(const AtomString& eventType, Ref<EventListener>&& eventListener, const AddEventListenerOptions& options)
    634 {
    635     // Setting the onmessage EventHandler attribute on the ServiceWorkerContainer should start the messages
    636     // automatically.
    637     if (eventListener->isAttribute() && eventType == eventNames().messageEvent)
    638         startMessages();
    639 
    640     return EventTargetWithInlineData::addEventListener(eventType, WTFMove(eventListener), options);
    641 }
    642 
    643615} // namespace WebCore
    644616
  • trunk/Source/WebCore/workers/service/ServiceWorkerContainer.h

    r249526 r249615  
    3131#include "DOMPromiseProxy.h"
    3232#include "EventTarget.h"
    33 #include "GenericEventQueue.h"
    3433#include "SWClientConnection.h"
    3534#include "SWServer.h"
     
    9291
    9392private:
    94     bool addEventListener(const AtomString& eventType, Ref<EventListener>&&, const AddEventListenerOptions& = { }) final;
    95 
    9693    void scheduleJob(std::unique_ptr<ServiceWorkerJob>&&);
    9794
     
    110107    SWClientConnection& ensureSWClientConnection();
    111108
    112     // ActiveDOMObject.
    113109    const char* activeDOMObjectName() const final;
    114110    bool canSuspendForDocumentSuspension() const final;
    115     void suspend(ReasonForSuspension) final;
    116     void resume() final;
    117    
    118111    ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); }
    119112    EventTargetInterface eventTargetInterface() const final { return ServiceWorkerContainerEventTargetInterfaceType; }
     
    145138    uint64_t m_lastOngoingSettledRegistrationIdentifier { 0 };
    146139    HashMap<uint64_t, ServiceWorkerRegistrationKey> m_ongoingSettledRegistrations;
    147     GenericEventQueue m_messageQueue;
    148140
    149141};
  • trunk/Tools/ChangeLog

    r249614 r249615  
     12019-09-07  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r249353.
     4
     5        The test for this change is a flaky failure.
     6
     7        Reverted changeset:
     8
     9        "Add support for postMessage buffering between the service
     10        worker and window"
     11        https://bugs.webkit.org/show_bug.cgi?id=201169
     12        https://trac.webkit.org/changeset/249353
     13
    1142019-09-07  Alex Christensen  <achristensen@webkit.org>
    215
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r249571 r249615  
    17261726#endif
    17271727
    1728     if (done)
    1729         return;
    1730 
    17311728    updateDisplay();
    17321729
Note: See TracChangeset for help on using the changeset viewer.