WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-183479-20180309171054.patch (text/plain), 5.15 KB, created by
Ali Juma
on 2018-03-09 14:10:55 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Ali Juma
Created:
2018-03-09 14:10:55 PST
Size:
5.15 KB
patch
obsolete
>Subversion Revision: 229483 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 1f445a7caf0dc493b17b23b539af06c5b7db7218..120e77e77eb6c7f625ca5ff28fc5f7bb5323ca67 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,21 @@ >+2018-03-09 Ali Juma <ajuma@chromium.org> >+ >+ http/tests/workers/service/service-worker-download.https.html times out with async policy delegates >+ https://bugs.webkit.org/show_bug.cgi?id=183479 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Check the value of ServiceWorkerFetchClient::m_isCheckingResponse on the main thread. This is set to >+ true on the main thread, so must also be read on the main thread to avoid races. Otherwise, it's >+ possible for ServiceWorkerFetchClient::didReceiveData to proceed rather than early-out even when >+ we're still waiting for the response completion handler, if the main thread hasn't yet executed >+ the function that's dispatched to it in ServiceWorkerFetchClient::didReceiveResponse. >+ >+ * WebProcess/Storage/ServiceWorkerClientFetch.cpp: >+ (WebKit::ServiceWorkerClientFetch::didReceiveData): >+ (WebKit::ServiceWorkerClientFetch::didFinish): >+ (WebKit::ServiceWorkerClientFetch::didFail): >+ > 2018-03-09 Brent Fulgham <bfulgham@apple.com> > > Remove cookie API access from WebContent Process >diff --git a/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp b/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >index 2808f87827ac1dc5334537e037704e8b045d9215..00ad25c510ad89939f4c97536b64ef152a78e755 100644 >--- a/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >+++ b/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >@@ -163,10 +163,9 @@ void ServiceWorkerClientFetch::didReceiveData(const IPC::DataReference& dataRefe > m_encodedDataLength += encodedDataLength; > } > >- if (m_isCheckingResponse) >- return; >- > callOnMainThread([this, protectedThis = makeRef(*this)] { >+ if (m_isCheckingResponse) >+ return; > if (!m_loader) > return; > >@@ -184,10 +183,9 @@ void ServiceWorkerClientFetch::didFinish() > { > m_didFinish = true; > >- if (m_isCheckingResponse) >- return; >- > callOnMainThread([this, protectedThis = makeRef(*this)] { >+ if (m_isCheckingResponse) >+ return; > if (!m_loader) > return; > >@@ -216,10 +214,9 @@ void ServiceWorkerClientFetch::didFail() > { > m_didFail = true; > >- if (m_isCheckingResponse) >- return; >- > callOnMainThread([this, protectedThis = makeRef(*this)] { >+ if (m_isCheckingResponse) >+ return; > if (!m_loader) > return; > >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index daf357c8a12eb253fb9d3c6df4f63585e7d08c65..a1f2c9ab5916316cbb48c0ecb962e080a87218e8 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2018-03-09 Ali Juma <ajuma@chromium.org> >+ >+ http/tests/workers/service/service-worker-download.https.html times out with async policy delegates >+ https://bugs.webkit.org/show_bug.cgi?id=183479 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add layout test coverage. >+ >+ * http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt: Added. >+ * http/tests/workers/service/service-worker-download-async-delegates.https.html: Added. >+ > 2018-03-09 Youenn Fablet <youenn@apple.com> > > ServiceWorker should respect IDB and DOMCache partitioning >diff --git a/LayoutTests/http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt b/LayoutTests/http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..814299cef117796455a7ccd91ba2bfb59b8bbb56 >--- /dev/null >+++ b/LayoutTests/http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt >@@ -0,0 +1,4 @@ >+Download started. >+Downloading URL with suggested filename "download-binary.php" >+Download completed. >+ >diff --git a/LayoutTests/http/tests/workers/service/service-worker-download-async-delegates.https.html b/LayoutTests/http/tests/workers/service/service-worker-download-async-delegates.https.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0393eb95dd02387b8a85919f319426d39e0e64cf >--- /dev/null >+++ b/LayoutTests/http/tests/workers/service/service-worker-download-async-delegates.https.html >@@ -0,0 +1,24 @@ >+<html> >+<head> >+<script src="resources/sw-test-pre.js"></script> >+</head> >+<body> >+<script> >+if (window.testRunner) { >+ testRunner.dumpAsText(); >+ testRunner.setShouldLogDownloadCallbacks(true); >+ testRunner.waitUntilDownloadFinished(); >+ testRunner.setShouldDownloadUndisplayableMIMETypes(true); >+ if (testRunner.setShouldDecideResponsePolicyAfterDelay) >+ testRunner.setShouldDecideResponsePolicyAfterDelay(true); >+} >+ >+async function doTest() >+{ >+ await interceptedFrame("resources/service-worker-download-worker.js", "/workers/service/resources/"); >+ window.location = "/workers/service/resources/download-binary.php"; >+} >+doTest(); >+</script> >+</body> >+</html>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 183479
:
335460
|
335478
|
335593
|
335597
|
335598
|
335602
|
335621