WebKit Bugzilla
Attachment 340699 Details for
Bug 157068
: imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html is crashing on debug builds
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-157068-20180518083341.patch (text/plain), 4.60 KB, created by
youenn fablet
on 2018-05-18 08:34:01 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-05-18 08:34:01 PDT
Size:
4.60 KB
patch
obsolete
>Subversion Revision: 231917 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 5dfcdc5b0d6f63ff7e27126c9fa553d72b4832c2..15e21c700ae85e2201059ff1e9e9f54241b15598 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2018-05-17 Youenn Fablet <youenn@apple.com> >+ >+ imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html is crashing on debug builds >+ https://bugs.webkit.org/show_bug.cgi?id=157068 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Make sure Worker is not collectable when importScripts is being run. >+ Use a counter to handle the case of importScripts calls triggered by importScripts calls. >+ Decrement the counter after an even loop iteration to handle the case of importScripts being called one after the other. >+ >+ Covered by unflaked test. >+ >+ * workers/DedicatedWorkerGlobalScope.cpp: >+ (WebCore::DedicatedWorkerGlobalScope::importScripts): >+ * workers/DedicatedWorkerGlobalScope.h: >+ (isType): >+ > 2018-05-17 Youenn Fablet <youenn@apple.com> > > HTTP Header values validation is too strict >diff --git a/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp b/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp >index 21ddedb3d03a5cd152048742454016fc8e8202e1..0de0696f3afff2fd68381d774e460226a3a99d23 100644 >--- a/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp >+++ b/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp >@@ -79,8 +79,16 @@ ExceptionOr<void> DedicatedWorkerGlobalScope::postMessage(JSC::ExecState& state, > > ExceptionOr<void> DedicatedWorkerGlobalScope::importScripts(const Vector<String>& urls) > { >+ if (!m_importScriptCount++) >+ thread().workerObjectProxy().reportPendingActivity(true); >+ > auto result = Base::importScripts(urls); >- thread().workerObjectProxy().reportPendingActivity(hasPendingActivity()); >+ >+ thread().runLoop().postTaskForMode([](auto& context) { >+ auto& scope = downcast<DedicatedWorkerGlobalScope>(context); >+ if (!--scope.m_importScriptCount) >+ scope.thread().workerObjectProxy().reportPendingActivity(scope.hasPendingActivity()); >+ }, WorkerRunLoop::defaultMode()); > return result; > } > >diff --git a/Source/WebCore/workers/DedicatedWorkerGlobalScope.h b/Source/WebCore/workers/DedicatedWorkerGlobalScope.h >index 521ba408a12e7fdbea3fc32f0af6ee0c3502008a..305a0ea199076c3afda9b7260995c7c6e552d11b 100644 >--- a/Source/WebCore/workers/DedicatedWorkerGlobalScope.h >+++ b/Source/WebCore/workers/DedicatedWorkerGlobalScope.h >@@ -63,6 +63,17 @@ private: > bool isDedicatedWorkerGlobalScope() const final { return true; } > ExceptionOr<void> importScripts(const Vector<String>& urls) final; > EventTargetInterface eventTargetInterface() const final; >+ >+ uint64_t m_importScriptCount { 0 }; > }; > > } // namespace WebCore >+ >+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::DedicatedWorkerGlobalScope) >+ static bool isType(const WebCore::ScriptExecutionContext& context) >+ { >+ if (!is<WebCore::WorkerGlobalScope>(context)) >+ return false; >+ return downcast<WebCore::WorkerGlobalScope>(context).isDedicatedWorkerGlobalScope(); >+ } >+SPECIALIZE_TYPE_TRAITS_END() >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7ef27e76ad35a02c1a4d82f9407944976315129c..376da3caf5c3e3c9297a1ecc612cafc968d012c0 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,12 @@ >+2018-05-17 Youenn Fablet <youenn@apple.com> >+ >+ imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html is crashing on debug builds >+ https://bugs.webkit.org/show_bug.cgi?id=157068 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestExpectations: >+ > 2018-05-17 Youenn Fablet <youenn@apple.com> > > HTTP Header values validation is too strict >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index e6545f154f1fabc400c439d4ec5db504f73dda1e..9a5a5dee8871f82266f12747871e81d9c0548bd4 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -1857,8 +1857,6 @@ webkit.org/b/183848 imported/mozilla/css-animations/test_keyframeeffect-getkeyfr > > webkit.org/b/177440 imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_null.tentative.html [ Pass Failure ] > >-webkit.org/b/157068 [ Debug ] imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html [ Pass Crash ] >- > # Application Manifest tests > webkit.org/b/153152 http/tests/security/contentSecurityPolicy/manifest-src-allowed.html [ Skip ] > webkit.org/b/153152 http/tests/security/contentSecurityPolicy/manifest-src-blocked.html [ Skip ]
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 157068
:
329570
|
330374
|
330379
|
330399
|
330402
|
330403
|
330406
|
330410
|
330412
|
340181
|
340188
|
340699
|
340701
|
344632
|
344676