Changeset 225644 in webkit


Ignore:
Timestamp:
Dec 7, 2017 1:46:11 PM (6 years ago)
Author:
commit-queue@webkit.org
Message:

Activate IDB and WebSockets in service workers
https://bugs.webkit.org/show_bug.cgi?id=180534

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-07
Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt:

Source/WebCore:

Tests: http/tests/workers/service/serviceworker-idb.https.html

http/tests/workers/service/serviceworker-websocket.https.html

Using the dummy document used for loading to also fuel IDB and WebSocket.

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::idbConnectionProxy):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

LayoutTests:

  • http/tests/workers/service/resources/serviceworker-idb-worker.js: Added.
  • http/tests/workers/service/resources/serviceworker-websocket-worker.js: Added.
  • http/tests/workers/service/serviceworker-idb.https-expected.txt: Added.
  • http/tests/workers/service/serviceworker-idb.https.html: Added.
  • http/tests/workers/service/serviceworker-websocket.https-expected.txt: Added.
  • http/tests/workers/service/serviceworker-websocket.https.html: Added.
Location:
trunk
Files:
6 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r225642 r225644  
     12017-12-07  Youenn Fablet  <youenn@apple.com>
     2
     3        Activate IDB and WebSockets in service workers
     4        https://bugs.webkit.org/show_bug.cgi?id=180534
     5
     6        Reviewed by Brady Eidson.
     7
     8        * http/tests/workers/service/resources/serviceworker-idb-worker.js: Added.
     9        * http/tests/workers/service/resources/serviceworker-websocket-worker.js: Added.
     10        * http/tests/workers/service/serviceworker-idb.https-expected.txt: Added.
     11        * http/tests/workers/service/serviceworker-idb.https.html: Added.
     12        * http/tests/workers/service/serviceworker-websocket.https-expected.txt: Added.
     13        * http/tests/workers/service/serviceworker-websocket.https.html: Added.
     14
    1152017-12-07  Jer Noble  <jer.noble@apple.com>
    216
  • trunk/LayoutTests/TestExpectations

    r225630 r225644  
    162162imported/w3c/web-platform-tests/service-workers/service-worker/update-after-oneday.https.html [ Skip ]
    163163imported/w3c/web-platform-tests/service-workers/service-worker/update-recovery.https.html [ Skip ]
    164 imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https.html [ Skip ]
    165164imported/w3c/web-platform-tests/service-workers/service-worker/client-navigate.https.html [ Skip ]
    166165
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r225626 r225644  
     12017-12-07  Youenn Fablet  <youenn@apple.com>
     2
     3        Activate IDB and WebSockets in service workers
     4        https://bugs.webkit.org/show_bug.cgi?id=180534
     5
     6        Reviewed by Brady Eidson.
     7
     8        * web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt:
     9
    1102017-12-07  Ms2ger  <Ms2ger@igalia.com>
    211
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt

    r224730 r225644  
    11
    2 Harness Error (TIMEOUT), message = null
     2FAIL Verify WebSockets can be created in a Service Worker assert_equals: expected "PASS" but got "FAIL: Got an error event"
    33
    4 TIMEOUT Verify WebSockets can be created in a Service Worker Test timed out
    5 
  • trunk/Source/WebCore/ChangeLog

    r225643 r225644  
     12017-12-07  Youenn Fablet  <youenn@apple.com>
     2
     3        Activate IDB and WebSockets in service workers
     4        https://bugs.webkit.org/show_bug.cgi?id=180534
     5
     6        Reviewed by Brady Eidson.
     7
     8        Tests: http/tests/workers/service/serviceworker-idb.https.html
     9               http/tests/workers/service/serviceworker-websocket.https.html
     10
     11        Using the dummy document used for loading to also fuel IDB and WebSocket.
     12
     13        * workers/service/context/ServiceWorkerThread.cpp:
     14        (WebCore::ServiceWorkerThread::ServiceWorkerThread):
     15        * workers/service/context/ServiceWorkerThread.h:
     16        * workers/service/context/ServiceWorkerThreadProxy.cpp:
     17        (WebCore::idbConnectionProxy):
     18        (WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
     19
    1202017-12-07  Matt Lewis  <jlewis3@apple.com>
    221
  • trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp

    r225462 r225644  
    6868// FIXME: Use a valid WorkerReportingProxy
    6969// FIXME: Use a valid WorkerObjectProxy
    70 // FIXME: Use a valid IDBConnection
    71 // FIXME: Use a valid SocketProvider
    7270// FIXME: Use a valid user agent
    7371// FIXME: Use a valid isOnline flag
    7472// FIXME: Use valid runtime flags
    7573
    76 ServiceWorkerThread::ServiceWorkerThread(const ServiceWorkerContextData& data, PAL::SessionID, WorkerLoaderProxy& loaderProxy, WorkerDebuggerProxy& debuggerProxy)
    77     : WorkerThread(data.scriptURL, "serviceworker:" + Inspector::IdentifiersFactory::createIdentifier(), ASCIILiteral("WorkerUserAgent"), /* isOnline */ false, data.script, loaderProxy, debuggerProxy, DummyServiceWorkerThreadProxy::shared(), WorkerThreadStartMode::Normal, ContentSecurityPolicyResponseHeaders { }, false, SecurityOrigin::create(data.scriptURL).get(), MonotonicTime::now(), nullptr, nullptr, JSC::RuntimeFlags::createAllEnabled(), SessionID::defaultSessionID())
     74ServiceWorkerThread::ServiceWorkerThread(const ServiceWorkerContextData& data, PAL::SessionID, WorkerLoaderProxy& loaderProxy, WorkerDebuggerProxy& debuggerProxy, IDBClient::IDBConnectionProxy* idbConnectionProxy, SocketProvider* socketProvider)
     75    : WorkerThread(data.scriptURL, "serviceworker:" + Inspector::IdentifiersFactory::createIdentifier(), ASCIILiteral("WorkerUserAgent"), /* isOnline */ false, data.script, loaderProxy, debuggerProxy, DummyServiceWorkerThreadProxy::shared(), WorkerThreadStartMode::Normal, ContentSecurityPolicyResponseHeaders { }, false, SecurityOrigin::create(data.scriptURL).get(), MonotonicTime::now(), idbConnectionProxy, socketProvider, JSC::RuntimeFlags::createAllEnabled(), SessionID::defaultSessionID())
    7876    , m_data(data.isolatedCopy())
    7977    , m_workerObjectProxy(DummyServiceWorkerThreadProxy::shared())
  • trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.h

    r225462 r225644  
    7474
    7575private:
    76     WEBCORE_EXPORT ServiceWorkerThread(const ServiceWorkerContextData&, PAL::SessionID, WorkerLoaderProxy&, WorkerDebuggerProxy&);
     76    WEBCORE_EXPORT ServiceWorkerThread(const ServiceWorkerContextData&, PAL::SessionID, WorkerLoaderProxy&, WorkerDebuggerProxy&, IDBClient::IDBConnectionProxy*, SocketProvider*);
    7777
    7878    ServiceWorkerContextData m_data;
  • trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp

    r224801 r225644  
    4848}
    4949
     50static inline IDBClient::IDBConnectionProxy* idbConnectionProxy(Document& document)
     51{
     52#if ENABLE(INDEXED_DATABASE)
     53    return document.idbConnectionProxy();
     54#else
     55    return nullptr;
     56#endif
     57}
     58
    5059ServiceWorkerThreadProxy::ServiceWorkerThreadProxy(PageConfiguration&& pageConfiguration, const ServiceWorkerContextData& data, PAL::SessionID sessionID, CacheStorageProvider& cacheStorageProvider)
    5160    : m_page(createPageForServiceWorker(WTFMove(pageConfiguration), data.scriptURL))
    5261    , m_document(*m_page->mainFrame().document())
    53     , m_serviceWorkerThread(ServiceWorkerThread::create(data, sessionID, *this, *this))
     62    , m_serviceWorkerThread(ServiceWorkerThread::create(data, sessionID, *this, *this, idbConnectionProxy(m_document), m_document->socketProvider()))
    5463    , m_cacheStorageProvider(cacheStorageProvider)
    5564    , m_sessionID(sessionID)
Note: See TracChangeset for help on using the changeset viewer.