WebKit-https.git
13 months agoUnreviewed, rolling out r249721.
ysuzuki@apple.com [Wed, 11 Sep 2019 00:17:03 +0000 (00:17 +0000)]
Unreviewed, rolling out r249721.
https://bugs.webkit.org/show_bug.cgi?id=201667

Discovering existing bug (Requested by yusukesuzuki on
#webkit).

Reverted changeset:

"[JSC] 32bit bitwide operation with all-one (-1) is wrong in
B3"
https://bugs.webkit.org/show_bug.cgi?id=201634
https://trac.webkit.org/changeset/249721

Patch by Commit Queue <commit-queue@webkit.org> on 2019-09-10

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249743 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoLayout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch...
ryanhaddad@apple.com [Wed, 11 Sep 2019 00:02:30 +0000 (00:02 +0000)]
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=201665

Unreviewed test gardening.

This test was unskipped as part of r249716, but it is still frequently failing.

* TestExpectations: Skip the test again.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249741 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[JSC] CodeBlock::calleeSaveRegisters should not see half-baked JITData
ysuzuki@apple.com [Tue, 10 Sep 2019 23:18:11 +0000 (23:18 +0000)]
[JSC] CodeBlock::calleeSaveRegisters should not see half-baked JITData
https://bugs.webkit.org/show_bug.cgi?id=201664
<rdar://problem/52126927>

Reviewed by Tadeu Zagallo.

We are hitting the crash accessing invalid-pointer as CodeBlock::calleeSaveRegisters result.
This is because concurrent Baseline JIT compiler can access m_jitData without taking a lock through CodeBlock::calleeSaveRegisters.
Since m_jitData can be initialized in the main thread while calling CodeBlock::calleeSaveRegisters from concurrent Baseline JIT compiler thread,
we can see half-baked JITData structure which holds garbage pointers.

But we do not want to make CodeBlock::calleeSaveRegisters() call with CodeBlock::m_lock due to several reasons.

1. This function is very primitive one and it is called from various AssemblyHelpers functions and other code-generation functions. Some of these functions are
   called while taking this exact same lock, so dead-lock can happen.
2. JITData::m_calleeSaveRegisters is filled only for DFG and FTL CodeBlock. And DFG and FTL code accesses these field after initializing properly. For Baseline JIT
   compiler case, only thing we should do is that JITData should say m_calleeSaveRegisters is nullptr and it won't be filled for this CodeBlock.

Instead of guarding CodeBlock::calleeSaveRegisters() function with CodeBlock::m_lock, this patch inserts WTF::storeStoreFence when filling m_jitData. This ensures that
JITData::m_calleeSaveRegisters is initialized with nullptr when this JITData pointer is exposed to concurrent Baseline JIT compiler thread.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::ensureJITDataSlow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAdd SPI to save a PDF from the contents of a WKWebView.
beidson@apple.com [Tue, 10 Sep 2019 23:12:49 +0000 (23:12 +0000)]
Add SPI to save a PDF from the contents of a WKWebView.
<rdar://problem/48955900> and https://bugs.webkit.org/show_bug.cgi?id=195765

Reviewed by Tim Horton.

Source/WebCore:

Covered by API tests.

* page/FrameView.cpp:
(WebCore::FrameView::paintContents): Don't paint the debug color outside of the FrameRect.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setURLForRect):

* rendering/PaintPhase.h: Add "AnnotateLinks" option to always gather and annotation links.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::hasOutlineAnnotation const): Also return true when the PaintOptions include "AnnotateLinks"

Source/WebKit:

This is refactoring a combination of "snapshotFirstPage" PDF printing code and the
"takeSnapshot" API code to capture the on-screen visible page to a PDF at full fidelity.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::drawToPDFCallback):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _wk_pageCountForPrintFormatter:]):

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::drawToPDFCallback): Move to cross platform WebPageProxy.

* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::pdfSnapshotAtSize):

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::pdfSnapshotAtSize): Instead of assuming 1 page capped at 200 inches,
  paginate every 200 inches.
(WebKit::WebPage::drawToPDF):
(WebKit::paintSnapshotAtSize): Deleted.
(WebKit::WebPage::pdfSnapshotAtSize): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

-Add an "Export to PDF..." menu option to MiniBrowser.
-Add API tests for the API itself.

* MiniBrowser/MiniBrowser.entitlements:

* MiniBrowser/mac/BrowserWindowController.h:
* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController forceRepaint:]):
(-[BrowserWindowController saveAsPDF:]):

* MiniBrowser/mac/MainMenu.xib:

* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController validateMenuItem:]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController saveAsPDF:]):

* TestWebKitAPI/Configurations/Base.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm: Added.
(TestWebKitAPI::TEST):
* TestWebKitAPI/cocoa/TestPDFDocument.h: Added.
* TestWebKitAPI/cocoa/TestPDFDocument.mm: Added.
(TestWebKitAPI::toCGRect):
(TestWebKitAPI::toPlatformPoint):
(TestWebKitAPI::TestPDFAnnotation::TestPDFAnnotation):
(TestWebKitAPI::TestPDFAnnotation::isLink const):
(TestWebKitAPI::TestPDFAnnotation::bounds const):
(TestWebKitAPI::TestPDFAnnotation::linkURL const):
(TestWebKitAPI::TestPDFPage::create):
(TestWebKitAPI::TestPDFPage::TestPDFPage):
(TestWebKitAPI::TestPDFPage::annotations):
(TestWebKitAPI::TestPDFPage::characterCount const):
(TestWebKitAPI::TestPDFPage::text const):
(TestWebKitAPI::TestPDFPage::rectForCharacterAtIndex const):
(TestWebKitAPI::TestPDFPage::characterIndexAtPoint const):
(TestWebKitAPI::TestPDFPage::bounds const):
(TestWebKitAPI::TestPDFPage::colorAtPoint const):
(TestWebKitAPI::TestPDFDocument::createFromData):
(TestWebKitAPI::TestPDFDocument::TestPDFDocument):
(TestWebKitAPI::TestPDFDocument::pageCount const):
(TestWebKitAPI::TestPDFDocument::page):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove SSL-based TLSDeprecation.mm contents
krollin@apple.com [Tue, 10 Sep 2019 22:48:29 +0000 (22:48 +0000)]
Remove SSL-based TLSDeprecation.mm contents
https://bugs.webkit.org/show_bug.cgi?id=201657
<rdar://problem/55237678>

Reviewed by Alex Christensen.

This file does not build on watchOS due to references to SSL
facilities. Conditionalize out the contents on HAVE_SSL.

* TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249738 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoREGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-credential-create-success...
jiewen_tan@apple.com [Tue, 10 Sep 2019 22:28:32 +0000 (22:28 +0000)]
REGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-credential-create-success-u2f.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=201620
<rdar://problem/51524958>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing tests.

* Modules/webauthn/fido/U2fResponseConverter.cpp:
(fido::WebCore::createAttestedCredentialDataFromU2fRegisterResponse):
Change the way how the aaguid is initialized to see if that fixes the issue.

LayoutTests:

* http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
Remove the timeout value given those tests should never time out.
* platform/mac-wk2/TestExpectations:
Change the test expectation to Pass.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249737 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[JSC] ResultType implementation is wrong for bit ops, and ends up making ArithDiv...
ysuzuki@apple.com [Tue, 10 Sep 2019 22:07:08 +0000 (22:07 +0000)]
[JSC] ResultType implementation is wrong for bit ops, and ends up making ArithDiv take the DFG Int32 fast path even if Baseline constantly produces Double result
https://bugs.webkit.org/show_bug.cgi?id=198253

Reviewed by Mark Lam.

ResultType of bitwise operation needs to include TypeMaybeNumber. TypeInt32 is something like a flag indicating the number looks like a int32.
When it is specified, TypeMaybeNumber must exist too. This issue compiles op_div in JetStream2/async-fs slow-path. And eventually DFG first mis-compiles
it with Int32 ArithDiv while that div always produces double. And unnecessary OSR exit happens.

In this patch, we add TypeMaybeNumber to bigIntOrInt32Type correctly.

* parser/ResultType.h:
(JSC::ResultType::bigIntOrInt32Type):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, rebaseline imported/w3c/web-platform-tests/css/cssom/interfaces.html...
ryanhaddad@apple.com [Tue, 10 Sep 2019 22:03:14 +0000 (22:03 +0000)]
Unreviewed, rebaseline imported/w3c/web-platform-tests/css/cssom/interfaces.html after r249672.

Unreviewed test gardening.

* web-platform-tests/css/cssom/interfaces-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAttempt to make this test not flakey.
simon.fraser@apple.com [Tue, 10 Sep 2019 21:59:48 +0000 (21:59 +0000)]
Attempt to make this test not flakey.
https://bugs.webkit.org/show_bug.cgi?id=201482

* legacy-animation-engine/compositing/transitions/add-remove-transition.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAdd missing origin check for Service-Worker-Allowed header
cdumez@apple.com [Tue, 10 Sep 2019 21:43:41 +0000 (21:43 +0000)]
Add missing origin check for Service-Worker-Allowed header
https://bugs.webkit.org/show_bug.cgi?id=201653

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

* web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https-expected.txt:

Source/WebCore:

Add missing origin check for Service-Worker-Allowed header:
- https://w3c.github.io/ServiceWorker/#update-algorithm (step 15. 2.)

* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::didReceiveResponse):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249733 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoREGRESSION (r249460): LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html...
commit-queue@webkit.org [Tue, 10 Sep 2019 20:37:01 +0000 (20:37 +0000)]
REGRESSION (r249460): LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html is Failing
https://bugs.webkit.org/show_bug.cgi?id=201478

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-10
Reviewed by Simon Fraser.

-- Revert r249460 which changed drawGreenAndBlueCheckerboardInSoftware().
-- Remove the orientation bit from webgpu/resources/blue-checkered.png
   so drawing it is not affected by r249364.

* webgpu/js/webgpu-functions.js:
(drawGreenAndBlueCheckerboardInSoftware):
* webgpu/resources/blue-checkered.png:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRe-sync web-platform-tests IDL interfaces from upstream
cdumez@apple.com [Tue, 10 Sep 2019 20:14:46 +0000 (20:14 +0000)]
Re-sync web-platform-tests IDL interfaces from upstream
https://bugs.webkit.org/show_bug.cgi?id=201630

Reviewed by Alex Christensen.

Re-sync web-platform-tests IDL interfaces from upstream 603a271948a7162.

* web-platform-tests/interfaces/BackgroundSync.idl: Added.
* web-platform-tests/interfaces/CSP.idl: Added.
* web-platform-tests/interfaces/CSS-Parser-API.idl: Added.
* web-platform-tests/interfaces/DOM-Parsing.idl:
* web-platform-tests/interfaces/FileAPI.idl:
* web-platform-tests/interfaces/IndexedDB.idl:
* web-platform-tests/interfaces/InputDeviceCapabilities.idl: Added.
* web-platform-tests/interfaces/META.yml: Added.
* web-platform-tests/interfaces/README.md: Added.
* web-platform-tests/interfaces/SRI.idl: Added.
* web-platform-tests/interfaces/WebCryptoAPI.idl:
* web-platform-tests/interfaces/accelerometer.idl:
* web-platform-tests/interfaces/ambient-light.idl:
* web-platform-tests/interfaces/animation-worklet.idl: Added.
* web-platform-tests/interfaces/appmanifest.idl: Added.
* web-platform-tests/interfaces/audio-output.idl: Added.
* web-platform-tests/interfaces/background-fetch.idl:
* web-platform-tests/interfaces/battery-status.idl: Added.
* web-platform-tests/interfaces/beacon.idl: Added.
* web-platform-tests/interfaces/clipboard-apis.idl:
* web-platform-tests/interfaces/compat.idl: Added.
* web-platform-tests/interfaces/console.idl:
* web-platform-tests/interfaces/cookie-store.idl:
* web-platform-tests/interfaces/cors-rfc1918.idl: Added.
* web-platform-tests/interfaces/csp-embedded-enforcement.idl: Added.
* web-platform-tests/interfaces/css-animations.idl: Added.
* web-platform-tests/interfaces/css-conditional.idl: Added.
* web-platform-tests/interfaces/css-counter-styles.idl: Added.
* web-platform-tests/interfaces/css-device-adapt.idl: Added.
* web-platform-tests/interfaces/css-font-loading.idl: Added.
* web-platform-tests/interfaces/css-fonts.idl: Added.
* web-platform-tests/interfaces/css-images.idl: Added.
* web-platform-tests/interfaces/css-layout-api.idl: Added.
* web-platform-tests/interfaces/css-masking.idl: Added.
* web-platform-tests/interfaces/css-paint-api.idl: Added.
* web-platform-tests/interfaces/css-regions.idl: Added.
* web-platform-tests/interfaces/css-transitions.idl: Added.
* web-platform-tests/interfaces/css-typed-om.idl:
* web-platform-tests/interfaces/element-timing.idl: Added.
* web-platform-tests/interfaces/encoding.idl:
* web-platform-tests/interfaces/encrypted-media.idl:
* web-platform-tests/interfaces/entries-api.idl:
* web-platform-tests/interfaces/event-timing.idl: Added.
* web-platform-tests/interfaces/feature-policy.idl: Added.
* web-platform-tests/interfaces/fetch.idl:
* web-platform-tests/interfaces/filter-effects.idl: Added.
* web-platform-tests/interfaces/font-metrics-api.idl: Added.
* web-platform-tests/interfaces/fullscreen.idl:
* web-platform-tests/interfaces/gamepad.idl:
* web-platform-tests/interfaces/generic-sensor.idl: Added.
* web-platform-tests/interfaces/geolocation-API.idl: Added.
* web-platform-tests/interfaces/geolocation-sensor.idl:
* web-platform-tests/interfaces/geometry.idl:
* web-platform-tests/interfaces/gyroscope.idl:
* web-platform-tests/interfaces/hr-time.idl:
* web-platform-tests/interfaces/html-media-capture.idl: Added.
* web-platform-tests/interfaces/image-capture.idl: Added.
* web-platform-tests/interfaces/input-events.idl: Added.
* web-platform-tests/interfaces/intersection-observer.idl:
* web-platform-tests/interfaces/keyboard-lock.idl: Added.
* web-platform-tests/interfaces/keyboard-map.idl: Added.
* web-platform-tests/interfaces/largest-contentful-paint.idl: Added.
* web-platform-tests/interfaces/layout-instability.idl: Added.
* web-platform-tests/interfaces/longtasks.idl: Added.
* web-platform-tests/interfaces/magnetometer.idl:
* web-platform-tests/interfaces/media-capabilities.idl: Added.
* web-platform-tests/interfaces/media-playback-quality.idl: Added.
* web-platform-tests/interfaces/media-source.idl: Added.
* web-platform-tests/interfaces/mediacapture-depth.idl: Added.
* web-platform-tests/interfaces/mediacapture-fromelement.idl: Added.
* web-platform-tests/interfaces/mediasession.idl: Added.
* web-platform-tests/interfaces/mediastream-recording.idl: Added.
* web-platform-tests/interfaces/mst-content-hint.idl: Added.
* web-platform-tests/interfaces/navigation-timing.idl: Added.
* web-platform-tests/interfaces/netinfo.idl: Added.
* web-platform-tests/interfaces/notifications.idl: Added.
* web-platform-tests/interfaces/orientation-event.idl: Added.
* web-platform-tests/interfaces/orientation-sensor.idl:
* web-platform-tests/interfaces/page-visibility.idl: Added.
* web-platform-tests/interfaces/paint-timing.idl: Added.
* web-platform-tests/interfaces/payment-handler.idl:
* web-platform-tests/interfaces/payment-method-basic-card.idl: Added.
* web-platform-tests/interfaces/payment-request.idl:
* web-platform-tests/interfaces/permissions.idl: Added.
* web-platform-tests/interfaces/picture-in-picture.idl: Added.
* web-platform-tests/interfaces/pointerevents-extension.idl: Added.
* web-platform-tests/interfaces/pointerevents.idl: Added.
* web-platform-tests/interfaces/pointerlock.idl: Added.
* web-platform-tests/interfaces/presentation-api.idl: Added.
* web-platform-tests/interfaces/proximity.idl:
* web-platform-tests/interfaces/push-api.idl: Added.
* web-platform-tests/interfaces/remote-playback.idl: Added.
* web-platform-tests/interfaces/reporting.idl: Added.
* web-platform-tests/interfaces/requestidlecallback.idl: Added.
* web-platform-tests/interfaces/resize-observer.idl: Added.
* web-platform-tests/interfaces/screen-capture.idl: Added.
* web-platform-tests/interfaces/screen-orientation.idl:
* web-platform-tests/interfaces/scroll-animations.idl: Added.
* web-platform-tests/interfaces/secure-contexts.idl: Added.
* web-platform-tests/interfaces/selection-api.idl:
* web-platform-tests/interfaces/server-timing.idl: Added.
* web-platform-tests/interfaces/shape-detection-api.idl: Added.
* web-platform-tests/interfaces/speech-api.idl: Added.
* web-platform-tests/interfaces/storage.idl:
* web-platform-tests/interfaces/touch-events.idl: Added.
* web-platform-tests/interfaces/trusted-types.tentative.idl: Added.
* web-platform-tests/interfaces/uievents.idl:
* web-platform-tests/interfaces/url.idl:
* web-platform-tests/interfaces/user-timing.idl: Added.
* web-platform-tests/interfaces/vibration.idl: Added.
* web-platform-tests/interfaces/wai-aria.idl: Added.
* web-platform-tests/interfaces/wake-lock.idl:
* web-platform-tests/interfaces/wasm-js-api.idl: Added.
* web-platform-tests/interfaces/wasm-web-api.idl: Added.
* web-platform-tests/interfaces/web-animations.idl: Added.
* web-platform-tests/interfaces/web-bluetooth.idl: Added.
* web-platform-tests/interfaces/web-nfc.idl:
* web-platform-tests/interfaces/web-share.idl:
* web-platform-tests/interfaces/webaudio.idl: Added.
* web-platform-tests/interfaces/webauthn.idl:
* web-platform-tests/interfaces/webdriver.idl: Added.
* web-platform-tests/interfaces/webgl1.idl: Added.
* web-platform-tests/interfaces/webgl2.idl: Added.
* web-platform-tests/interfaces/webidl.idl:
* web-platform-tests/interfaces/webmidi.idl: Added.
* web-platform-tests/interfaces/webrtc-dscp.idl: Added.
* web-platform-tests/interfaces/webrtc-stats.idl: Added.
* web-platform-tests/interfaces/webusb.idl:
* web-platform-tests/interfaces/webvtt.idl: Added.
* web-platform-tests/interfaces/webxr.idl:
* web-platform-tests/interfaces/worklets.idl: Added.
* web-platform-tests/interfaces/xhr.idl:
* web-platform-tests/interfaces/xslt.tentative.idl: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoSMIL animations of SVG <view> element have no effect
commit-queue@webkit.org [Tue, 10 Sep 2019 19:57:21 +0000 (19:57 +0000)]
SMIL animations of SVG <view> element have no effect
https://bugs.webkit.org/show_bug.cgi?id=201536

Patch by Nikolas Zimmermann <zimmermann@kde.org> on 2019-09-10
Reviewed by Rob Buis.

Added a new layout test to verify that navigating to different anchors within the same
external SVG does not cause reloads. Instead scrollToAnchor() is used which causes an
in-place navigation in the same document. The new test verifies that the SVGSVGElement
is preserved when navigating between anchors, which indicates that no new document was
created. Verify that the SVGViewSpec API works as intended, across navigations.

* svg/dom/SVGViewSpec-multiple-views-expected.txt: Added.
* svg/dom/SVGViewSpec-multiple-views.html: Added.
* svg/dom/resources/multiple-view-elements.svg: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoIndexedDB: cache prepared SQLiteStatement in SQLiteIDBCursor
sihui_liu@apple.com [Tue, 10 Sep 2019 19:42:30 +0000 (19:42 +0000)]
IndexedDB: cache prepared SQLiteStatement in SQLiteIDBCursor
https://bugs.webkit.org/show_bug.cgi?id=201548

Reviewed by Alex Christensen.

This should be a performance improvement as we don't compile the same SQLiteStatement everytime it is used.

No new tests, no behavior change.

* Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
* Modules/indexeddb/server/SQLiteIDBCursor.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, re-skip service worker test that was unskipped in r249716.
cdumez@apple.com [Tue, 10 Sep 2019 19:07:21 +0000 (19:07 +0000)]
Unreviewed, re-skip service worker test that was unskipped in r249716.

This test is still flaky.

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, rolling out r249724.
cdumez@apple.com [Tue, 10 Sep 2019 18:43:28 +0000 (18:43 +0000)]
Unreviewed, rolling out r249724.

Patch included a lot more changes than intended

Reverted changeset:

"Unreviewed, re-skip service worker test that was unskipped in
r249716."
https://trac.webkit.org/changeset/249724

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, re-skip service worker test that was unskipped in r249716.
cdumez@apple.com [Tue, 10 Sep 2019 18:18:15 +0000 (18:18 +0000)]
Unreviewed, re-skip service worker test that was unskipped in r249716.

This test is still flaky.

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249724 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoHangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValues...
cdumez@apple.com [Tue, 10 Sep 2019 18:14:15 +0000 (18:14 +0000)]
Hangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValuesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=201644
<rdar://problem/54942761>

Reviewed by Geoffrey Garen.

Mark the StorageManagerSet::GetValues sync IPC from the WebContent process to the Network
process with a UnboundedSynchronousIPCScope so that it will process critical sync IPC
from the UIProcess (such as WebPage::GetPositionInformation) while waiting for a reply.

* WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::loadValuesIfNeeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRTCPeerConnection can only be instantiated in documents
youenn@apple.com [Tue, 10 Sep 2019 17:41:32 +0000 (17:41 +0000)]
RTCPeerConnection can only be instantiated in documents
https://bugs.webkit.org/show_bug.cgi?id=201639

Reviewed by Alex Christensen.

Make it clear that RTCDataChannel expects Document since peer connections
and data channels can only be instantiated in document environments.
We keep one downcast in RTCPeerConnection constructor due to a limitation
in binding generator for JS built-ins.
No change of behavior.

* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::certificatesFromConfiguration):
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore::RTCPeerConnection::document):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::channelEvent):
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249722 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
ysuzuki@apple.com [Tue, 10 Sep 2019 17:07:24 +0000 (17:07 +0000)]
[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
https://bugs.webkit.org/show_bug.cgi?id=201634

Reviewed by Mark Lam.

Accidentally, the B3::Value is ConstInt32(-1), `value->isInt(std::numeric_limits<uint32_t>::max())` returns `false`!
For example, in BitAnd strength reduction,

    1034             // Turn this: BitAnd(value, all-ones)
    1035             // Into this: value.
    1036             if ((m_value->type() == Int64 && m_value->child(1)->isInt(std::numeric_limits<uint64_t>::max()))
    1037                 || (m_value->type() == Int32 && m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()))) {
    1038                 replaceWithIdentity(m_value->child(0));
    1039                 break;
    1040             }

We use `m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max())`. However, Value::isInt is,

    262 inline bool Value::isInt(int64_t value) const
    263 {
    264     return hasInt() && asInt() == value;
    265 }

So, UINT32_MAX is expanded to int64_t, but it is not -1 since UINT32_MAX can be representable in int64_t. And Value::asInt implementation is,

    257 inline int64_t Value::asInt() const
    258 {
    259     return hasInt32() ? asInt32() : asInt64();
    260 }

So, we perform `static_cast<int64_t>(-1) == static_cast<int64_t>(UINT32_MAX)`. This is false, but this comparison is not what we want!
We should use `isInt32` and `isInt64` for bit patterns (like, operands for Bitwise opcodes).

We also fix the following optimization.

    // Turn this: BitAnd(Op(value, constant1), constant2)
    //     where !(constant1 & constant2)
    //       and Op is BitOr or BitXor
    // into this: BitAnd(value, constant2)

Since we stop further optimization when we match `if (m_value->child(1)->hasInt())`, the following optimization is never taken.

    // Turn this: BitAnd(BitXor(x, allOnes), c)
    // Into this: BitXor(BitOr(x, ~c), allOnes)

We add 32bit version of B3 tests for these optimizations.

* b3/B3LowerToAir.cpp:
* b3/B3ReduceStrength.cpp:
* b3/testb3.h:
* b3/testb3_2.cpp:
(testBitAndNotNot32):
(testBitAndNotImm):
(testBitAndNotImm32):
(testBitOrAndAndArgs32):
(testBitOrAndSameArgs32):
(testBitOrNotNot32):
(testBitOrNotImm32):
(addBitTests):
* b3/testb3_3.cpp:
(testBitXorAndAndArgs32):
(testBitXorAndSameArgs32):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove a leftover reference to the StorageProcess
david_quesada@apple.com [Tue, 10 Sep 2019 16:56:46 +0000 (16:56 +0000)]
Remove a leftover reference to the StorageProcess
https://bugs.webkit.org/show_bug.cgi?id=192759

Reviewed by Alex Christensen.

* WebKit.xcodeproj/project.pbxproj:
    Remove com.apple.WebKit.Storage.sb as an input file to the "Copy iOS Sandbox Profiles
    for Manual Sandboxing" build phase. The file no longer exists.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRe-sync workers web platform tests from upstream
cdumez@apple.com [Tue, 10 Sep 2019 16:42:27 +0000 (16:42 +0000)]
Re-sync workers web platform tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201629

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync workers web platform tests from upstream 603a271948a7162.

* web-platform-tests/workers/META.yml: Added.
* web-platform-tests/workers/OWNERS: Removed.
* web-platform-tests/workers/README.md:
* web-platform-tests/workers/SharedWorker-constructor-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-constructor.html: Added.
* web-platform-tests/workers/SharedWorker-detach-frame-in-error-event-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-detach-frame-in-error-event.html: Added.
* web-platform-tests/workers/SharedWorker-exception-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-exception-propagation-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-exception-propagation.html: Added.
* web-platform-tests/workers/SharedWorker-exception.html: Added.
* web-platform-tests/workers/SharedWorker-script-error-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-script-error.html: Added.
* web-platform-tests/workers/SharedWorker-simple-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-simple.html: Added.
* web-platform-tests/workers/SharedWorkerPerformanceNow-expected.txt: Added.
* web-platform-tests/workers/SharedWorkerPerformanceNow.html: Added.
* web-platform-tests/workers/SharedWorker_dataUrl-expected.txt: Added.
* web-platform-tests/workers/SharedWorker_dataUrl.html: Added.
* web-platform-tests/workers/Worker-call.worker-expected.txt: Added.
* web-platform-tests/workers/Worker-call.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/Worker-call.worker.js: Added.
(test):
* web-platform-tests/workers/Worker-messageport-expected.txt: Added.
* web-platform-tests/workers/Worker-messageport.html: Added.
* web-platform-tests/workers/Worker-multi-port-expected.txt: Added.
* web-platform-tests/workers/Worker-multi-port.html: Added.
* web-platform-tests/workers/Worker-nested-importScripts-error-expected.txt: Added.
* web-platform-tests/workers/Worker-nested-importScripts-error.html: Added.
* web-platform-tests/workers/Worker-simultaneous-errors-expected.txt: Added.
* web-platform-tests/workers/Worker-simultaneous-errors.html: Added.
* web-platform-tests/workers/Worker-structure-message-expected.txt: Added.
* web-platform-tests/workers/Worker-structure-message.html: Added.
* web-platform-tests/workers/Worker-terminate-forever-expected.txt: Added.
* web-platform-tests/workers/Worker-terminate-forever.html: Added.
* web-platform-tests/workers/Worker-termination-with-port-messages-expected.txt: Added.
* web-platform-tests/workers/Worker-termination-with-port-messages.html: Added.
* web-platform-tests/workers/Worker-timeout-cancel-order-expected.txt: Added.
* web-platform-tests/workers/Worker-timeout-cancel-order.html: Added.
* web-platform-tests/workers/Worker-timeout-decreasing-order-expected.txt: Added.
* web-platform-tests/workers/Worker-timeout-decreasing-order.html: Added.
* web-platform-tests/workers/Worker-timeout-increasing-order-expected.txt: Added.
* web-platform-tests/workers/Worker-timeout-increasing-order.html: Added.
* web-platform-tests/workers/WorkerGlobalScope-close-expected.txt: Added.
* web-platform-tests/workers/WorkerGlobalScope-close.html: Added.
* web-platform-tests/workers/WorkerGlobalScope_close-expected.txt: Removed.
* web-platform-tests/workers/WorkerGlobalScope_close.htm: Removed.
* web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker-expected.txt: Added.
* web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.js: Added.
* web-platform-tests/workers/WorkerLocation-origin.sub.window.js: Removed.
* web-platform-tests/workers/WorkerPerformanceNow-expected.txt: Added.
* web-platform-tests/workers/WorkerPerformanceNow.html: Added.
* web-platform-tests/workers/Worker_cross_origin_security_err.htm:
* web-platform-tests/workers/baseurl/alpha/import-in-moduleworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/import-in-moduleworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/importScripts.html.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker.html: Added.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-worker.html: Added.
* web-platform-tests/workers/baseurl/alpha/sharedworker-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/sharedworker-in-worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/sharedworker.html.
* web-platform-tests/workers/baseurl/alpha/w3c-import.log:
* web-platform-tests/workers/baseurl/alpha/worker-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/worker-in-worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/worker.html.
* web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/xhr.html.
* web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker.html: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-worker.html: Added.
* web-platform-tests/workers/baseurl/beta/import.py: Added.
(main):
* web-platform-tests/workers/baseurl/beta/script.js:
* web-platform-tests/workers/baseurl/beta/w3c-import.log:
* web-platform-tests/workers/baseurl/beta/xhr-worker.py: Added.
(main):
* web-platform-tests/workers/baseurl/gamma/import.js: Added.
* web-platform-tests/workers/baseurl/gamma/importScripts.js:
(test):
* web-platform-tests/workers/baseurl/gamma/script-module.js: Added.
* web-platform-tests/workers/baseurl/gamma/script.js:
* web-platform-tests/workers/baseurl/gamma/w3c-import.log:
* web-platform-tests/workers/baseurl/gamma/xhr-worker.js: Added.
* web-platform-tests/workers/constructors/SharedWorker/connect-event.html:
* web-platform-tests/workers/constructors/SharedWorker/connect-event.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/dummy-name.html:
* web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker.html:
* web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker.js: Added.
* web-platform-tests/workers/constructors/SharedWorker/empty-name.html:
* web-platform-tests/workers/constructors/SharedWorker/empty.js: Added.
* web-platform-tests/workers/constructors/SharedWorker/global-members.html:
* web-platform-tests/workers/constructors/SharedWorker/global-members.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/interface-objects.html:
* web-platform-tests/workers/constructors/SharedWorker/interface-objects.js: Added.
(handleCall):
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/name.html:
* web-platform-tests/workers/constructors/SharedWorker/name.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/port-onmessage.html:
* web-platform-tests/workers/constructors/SharedWorker/port-onmessage.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/port-properties.html:
* web-platform-tests/workers/constructors/SharedWorker/port-readonly.html:
* web-platform-tests/workers/constructors/SharedWorker/same-origin.html:
* web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.html:
* web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.html.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/w3c-import.log:
* web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror-expected.txt:
* web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror.html:
* web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror.js: Added.
* web-platform-tests/workers/constructors/Worker/Worker-constructor-expected.txt: Added.
* web-platform-tests/workers/constructors/Worker/Worker-constructor.html: Added.
* web-platform-tests/workers/constructors/Worker/no-arguments-ctor-expected.txt: Removed.
* web-platform-tests/workers/constructors/Worker/no-arguments-ctor.html: Removed.
* web-platform-tests/workers/constructors/Worker/resolve-empty-string-expected.txt: Removed.
* web-platform-tests/workers/constructors/Worker/resolve-empty-string.html: Removed.
* web-platform-tests/workers/constructors/Worker/same-origin.html:
* web-platform-tests/workers/constructors/Worker/sample_worker/w3c-import.log:
* web-platform-tests/workers/constructors/Worker/terminate.html:
* web-platform-tests/workers/constructors/Worker/terminate.js: Added.
(f):
* web-platform-tests/workers/constructors/Worker/unresolvable-url-expected.txt: Removed.
* web-platform-tests/workers/constructors/Worker/unresolvable-url.html: Removed.
* web-platform-tests/workers/constructors/Worker/w3c-import.log:
* web-platform-tests/workers/dedicated-worker-from-blob-url.window-expected.txt: Added.
* web-platform-tests/workers/dedicated-worker-from-blob-url.window.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/dedicated-worker-from-blob-url.window.js: Added.
(message_from_port):
* web-platform-tests/workers/examples/fetch_tests_from_worker-expected.txt: Added.
* web-platform-tests/workers/examples/fetch_tests_from_worker.html: Added.
* web-platform-tests/workers/examples/fetch_tests_from_worker.js: Added.
(test):
* web-platform-tests/workers/examples/general.worker-expected.txt: Added.
* web-platform-tests/workers/examples/general.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/examples/general.worker.js: Added.
(test):
* web-platform-tests/workers/examples/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/w3c-import.log.
* web-platform-tests/workers/interfaces.worker-expected.txt: Removed.
* web-platform-tests/workers/interfaces.worker.js: Removed.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary-expected.txt: Added.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-expected.txt:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.js: Added.
(catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.js: Added.
(catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.js: Added.
(catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.js: Added.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.js: Added.
(i.catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/w3c-import.log:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/w3c-import.log:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting.html:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting.js: Added.
(switch):
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting.html:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting.js: Added.
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/w3c-import.log:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect.html:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect.js: Added.
(catch):
(try.self.onconnect.handleEvent):
(f):
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/sending-messages.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/sending-messages.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.js: Added.
(interval1.setInterval):
(interval2.setInterval):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.js: Added.
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/members.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/members.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-expected.txt:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module-expected.txt: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.html.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker.html: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/returns-same-object.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/returns-same-object.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/setting-members.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/setting-members.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror-expected.txt:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.js: Added.
(onerror):
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/handled.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/handled.js: Added.
(onerror):
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/not-handled.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/not-handled.js: Added.
(onerror):
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.js: Added.
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/self.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/self.js: Added.
(check):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.js: Added.
(setTimeout):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/002.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/002.js: Added.
(t.setTimeout):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/003.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/003.js: Added.
(setInterval):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/004.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/004.js: Added.
(t.setInterval):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005-expected.txt: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.html.
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005.js: Added.
(t.setInterval):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/003.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/003.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/005.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/005.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/007.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/007.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/008.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/008.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/009.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/009.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/010.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/010.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/011.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/011.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/012.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/012.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/1.headers: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/null.headers: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/undefined.headers: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/002.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/002.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/003.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/003.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/004.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/004.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/005.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/005.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/006.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/006.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/007.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/007.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/language.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/language.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/w3c-import.log:
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.js: Added.
(import_blob_url_test):
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-csp-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-csp.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.js: Added.
(import_data_url_test):
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-failure-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-failure.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-meta-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-meta.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-referrer-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-referrer.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import.any-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import.any.js: Added.
(import_test):
* web-platform-tests/workers/modules/dedicated-worker-import.any.worker-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-options-credentials-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-credentials.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-credentials.html.headers: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-type-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-type.html: Added.
* web-platform-tests/workers/modules/resources/credentials.py: Added.
(main):
* web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-given-url-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/empty-worker.js: Added.
* web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/export-on-dynamic-import-script.js: Added.
* web-platform-tests/workers/modules/resources/export-on-dynamic-import-script.js.headers: Added.
* web-platform-tests/workers/modules/resources/export-on-load-script.js: Added.
* web-platform-tests/workers/modules/resources/export-on-load-script.js.headers: Added.
* web-platform-tests/workers/modules/resources/export-on-static-import-script.js: Added.
* web-platform-tests/workers/modules/resources/export-on-static-import-script.js.headers: Added.
* web-platform-tests/workers/modules/resources/import-meta-url-worker.js: Added.
* web-platform-tests/workers/modules/resources/import-scripts-worker.js: Added.
(catch):
* web-platform-tests/workers/modules/resources/import-test-cases.js: Added.
* web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/nested-static-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/new-worker-window.html: Added.
* web-platform-tests/workers/modules/resources/post-message-on-load-worker.js: Added.
* web-platform-tests/workers/modules/resources/referrer-checker.py: Added.
(main):
* web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-non-existent-script-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/static-import-same-origin-credentials-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/w3c-import.log: Added.
* web-platform-tests/workers/modules/w3c-import.log: Added.
* web-platform-tests/workers/name-property-expected.txt:
* web-platform-tests/workers/name-property.html:
* web-platform-tests/workers/nested_worker.worker.js:
(async_test):
* web-platform-tests/workers/nested_worker_close_from_parent_worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_close_from_parent_worker.html: Added.
* web-platform-tests/workers/nested_worker_close_self.worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_close_self.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/nested_worker_close_self.worker.js: Added.
(async_test):
* web-platform-tests/workers/nested_worker_importScripts.worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_importScripts.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/nested_worker_importScripts.worker.js: Added.
(async_test):
* web-platform-tests/workers/nested_worker_sync_xhr.worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_sync_xhr.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/nested_worker_sync_xhr.worker.js: Added.
(async_test):
* web-platform-tests/workers/nested_worker_terminate_from_document-expected.txt: Added.
* web-platform-tests/workers/nested_worker_terminate_from_document.html: Added.
* web-platform-tests/workers/non-automated/navigator-onLine.html:
* web-platform-tests/workers/non-automated/navigator-onLine.js: Added.
(string_appeared_here.in.self.onmessage):
(else.e.ports.0.onmessage):
(else.onconnect):
* web-platform-tests/workers/non-automated/w3c-import.log:
* web-platform-tests/workers/opaque-origin.html:
* web-platform-tests/workers/semantics/encodings/001.html:
* web-platform-tests/workers/semantics/encodings/001.html.headers: Removed.
* web-platform-tests/workers/semantics/encodings/001.js: Added.
* web-platform-tests/workers/semantics/encodings/001.js.headers: Added.
* web-platform-tests/workers/semantics/encodings/002.html:
* web-platform-tests/workers/semantics/encodings/002.html.headers: Removed.
* web-platform-tests/workers/semantics/encodings/002.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/encodings/002.js.headers: Added.
* web-platform-tests/workers/semantics/encodings/003.html:
* web-platform-tests/workers/semantics/encodings/003.js: Added.
* web-platform-tests/workers/semantics/encodings/004.html:
* web-platform-tests/workers/semantics/encodings/004.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/encodings/w3c-import.log:
* web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
* web-platform-tests/workers/semantics/interface-objects/001.worker.js:
* web-platform-tests/workers/semantics/interface-objects/002.worker-expected.txt:
* web-platform-tests/workers/semantics/interface-objects/002.worker.js:
* web-platform-tests/workers/semantics/interface-objects/003.html:
* web-platform-tests/workers/semantics/interface-objects/003.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/003.html.
(onconnect):
* web-platform-tests/workers/semantics/interface-objects/004.html:
* web-platform-tests/workers/semantics/interface-objects/004.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/004.html.
(onconnect):
* web-platform-tests/workers/semantics/interface-objects/w3c-import.log:
* web-platform-tests/workers/semantics/multiple-workers/001.html:
* web-platform-tests/workers/semantics/multiple-workers/001.js: Added.
(string_appeared_here.in.self.onmessage):
(else.e.ports.0.onmessage):
(else.onconnect):
* web-platform-tests/workers/semantics/multiple-workers/002.html:
* web-platform-tests/workers/semantics/multiple-workers/002.js: Added.
* web-platform-tests/workers/semantics/multiple-workers/003.html:
* web-platform-tests/workers/semantics/multiple-workers/003.js: Added.
(location.hash.string_appeared_here.w2.onmessage):
(else.w3.onmessage):
(else):
* web-platform-tests/workers/semantics/multiple-workers/004-expected.txt:
* web-platform-tests/workers/semantics/multiple-workers/004.html:
* web-platform-tests/workers/semantics/multiple-workers/005.html:
* web-platform-tests/workers/semantics/multiple-workers/006.html:
* web-platform-tests/workers/semantics/multiple-workers/007.html:
* web-platform-tests/workers/semantics/multiple-workers/008-1.html:
* web-platform-tests/workers/semantics/multiple-workers/008.html:
* web-platform-tests/workers/semantics/multiple-workers/008.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/multiple-workers/w3c-import.log:
* web-platform-tests/workers/semantics/navigation/001-1.html:
* web-platform-tests/workers/semantics/navigation/001-1.js: Added.
(setInterval):
* web-platform-tests/workers/semantics/navigation/w3c-import.log:
* web-platform-tests/workers/semantics/reporting-errors/001.html:
* web-platform-tests/workers/semantics/reporting-errors/001.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/reporting-errors/001.html.
(onerror):
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/002.html:
* web-platform-tests/workers/semantics/reporting-errors/002.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/reporting-errors/002.html.
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/003.html:
* web-platform-tests/workers/semantics/reporting-errors/003.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/004-1.html:
* web-platform-tests/workers/semantics/reporting-errors/004.html:
* web-platform-tests/workers/semantics/reporting-errors/004.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/w3c-import.log:
* web-platform-tests/workers/semantics/run-a-worker/001.html:
* web-platform-tests/workers/semantics/run-a-worker/001.js: Added.
* web-platform-tests/workers/semantics/run-a-worker/002.html:
* web-platform-tests/workers/semantics/run-a-worker/002.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/run-a-worker/003.html:
* web-platform-tests/workers/semantics/run-a-worker/w3c-import.log:
* web-platform-tests/workers/semantics/structured-clone/w3c-import.log:
* web-platform-tests/workers/semantics/xhr/001.html:
* web-platform-tests/workers/semantics/xhr/001.js: Added.
(xhr.onreadystatechange):
* web-platform-tests/workers/semantics/xhr/002.html:
* web-platform-tests/workers/semantics/xhr/002.js: Added.
* web-platform-tests/workers/semantics/xhr/003.html:
* web-platform-tests/workers/semantics/xhr/003.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/xhr/003.html.
(xhr.onreadystatechange):
(onconnect):
* web-platform-tests/workers/semantics/xhr/004.html:
* web-platform-tests/workers/semantics/xhr/004.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/xhr/support/w3c-import.log:
* web-platform-tests/workers/semantics/xhr/w3c-import.log:
* web-platform-tests/workers/shared-worker-from-blob-url.window-expected.txt: Added.
* web-platform-tests/workers/shared-worker-from-blob-url.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/shared-worker-from-blob-url.window.js: Added.
(message_from_port):
* web-platform-tests/workers/support/SharedWorker-common.js: Added.
(generateError):
(event.ports.0.onmessage):
(onconnect):
(handleMessage):
* web-platform-tests/workers/support/SharedWorker-create-common.js: Added.
(createWorker.worker.port.onmessage):
(createWorker.worker.postMessage):
(createWorker):
* web-platform-tests/workers/support/SharedWorker-script-error.js: Added.
(event.ports.0.onmessage):
(onconnect):
(else.onerror):
(handleMessage):
* web-platform-tests/workers/support/Worker-common.js: Added.
(onmessage):
* web-platform-tests/workers/support/Worker-create-common.js: Added.
(createWorker):
* web-platform-tests/workers/support/Worker-messageport.js: Added.
(onmessage):
(pingBack):
* web-platform-tests/workers/support/Worker-run-forever.js: Added.
* web-platform-tests/workers/support/Worker-structure-message.js: Added.
(self.onmessage):
* web-platform-tests/workers/support/Worker-termination-with-port-messages.js: Added.
(echo):
(onmessage):
* web-platform-tests/workers/support/Worker-thread-multi-port.js: Added.
(onmessage):
(testPassed):
(testFailed):
* web-platform-tests/workers/support/Worker-timeout-cancel-order.js: Added.
(t1.setTimeout):
(setTimeout):
* web-platform-tests/workers/support/Worker-timeout-decreasing-order.js: Added.
(setTimeout):
* web-platform-tests/workers/support/Worker-timeout-increasing-order.js: Added.
(setTimeout):
* web-platform-tests/workers/support/WorkerGlobalScope-close.js: Added.
(else.messagePort.onmessage):
(onmessage):
* web-platform-tests/workers/support/WorkerSendingPerformanceNow.js: Added.
(calcResponse):
(self.onmessage):
(port.onmessage):
* web-platform-tests/workers/support/iframe_sw_dataUrl.html: Added.
* web-platform-tests/workers/support/importScripts-1.js: Added.
* web-platform-tests/workers/support/importScripts-2.js: Added.
* web-platform-tests/workers/support/importScripts-3.js: Added.
* web-platform-tests/workers/support/imported_script.py: Added.
(main):
* web-platform-tests/workers/support/invalidScript.js: Added.
* web-platform-tests/workers/support/name.js:
(test):
* web-platform-tests/workers/support/parent_of_nested_worker.js: Added.
(try.worker.onmessage):
(catch):
* web-platform-tests/workers/support/sync_xhr.js: Added.
(catch):
* web-platform-tests/workers/support/sync_xhr_target.xml: Added.
* web-platform-tests/workers/support/throw-on-message-Worker.js: Added.
(self.onerror):
(self.onmessage):
* web-platform-tests/workers/support/w3c-import.log:
* web-platform-tests/workers/w3c-import.log:
* web-platform-tests/workers/worker-performance.worker-expected.txt:

LayoutTests:

* TestExpectations:
* tests-options.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove MediaStreamPrivate::scheduleDeferredTask
youenn@apple.com [Tue, 10 Sep 2019 16:06:51 +0000 (16:06 +0000)]
Remove MediaStreamPrivate::scheduleDeferredTask
https://bugs.webkit.org/show_bug.cgi?id=200975
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

* web-platform-tests/mediacapture-streams/MediaStream-finished-add.https-expected.txt:

Source/WebCore:

Reviewed by Eric Carlson.

All calls to scheduleDeferredTask are done on the main thread.
This was initially done to trigger less reconfiguration.
But this makes the implementation significantly more complex.

For instance, we have to wait for the document to update its media state
and send it to UIProcess before calling the allow completion handler.

Covered by existing tests.

* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream):
Make sure to update the document media state once the tracks have been added, similarly to the other constructor.
This ensures the document media state is computed with the new MediaStreamTrack.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::isMediaStreamCorrectlyStarted):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::stop):
(WebCore::UserMediaRequest::mediaStreamDidFail):
* Modules/mediastream/UserMediaRequest.h:
* page/MediaProducer.h:
(WebCore::MediaProducer::isCapturing):
Make sure to include getDisplayMedia as part of capture check.
* platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::trackMutedChanged):
(WebCore::MediaStreamPrivate::trackEnabledChanged):
(WebCore::MediaStreamPrivate::trackStarted):
(WebCore::MediaStreamPrivate::trackEnded):
* platform/mediastream/MediaStreamPrivate.h:

LayoutTests:

<rdar://problem/55113418>

Reviewed by Eric Carlson.

* fast/mediastream/media-stream-track-source-failure.html:
page mediaState may be updated synchronously.
Get it just before failing a capture track to verify that the state is being updated after the track is stopped.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, unskip / rebaseline a few service worker tests
cdumez@apple.com [Tue, 10 Sep 2019 15:42:23 +0000 (15:42 +0000)]
Unreviewed, unskip / rebaseline a few service worker tests
https://bugs.webkit.org/show_bug.cgi?id=201626

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt:
* web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-cache.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https-expected.txt:
* web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
* web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/multipart-image.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
* web-platform-tests/service-workers/service-worker/respond-with-body-accessed-response.https-expected.txt:
* web-platform-tests/service-workers/service-worker/sandboxed-iframe-fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update-not-allowed.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-in-sandboxed-iframe-by-csp-fetch-event.https-expected.txt:

LayoutTests:

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAudio sometimes fail to capture in WebRTC
youenn@apple.com [Tue, 10 Sep 2019 15:27:41 +0000 (15:27 +0000)]
Audio sometimes fail to capture in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=180748
<rdar://problem/36032346>

Reviewed by Eric Carlson.

In some cases, Safari is not receiving unsuspend notifications.
In that case, the capture unit might stay in suspend state forever.
To work around that, we force to unsuspend whenever there is a new capture happening.
This will make it so that reloading the page will unsuspend the page.

Manually tested by triggering Siri, starting to use the microphone and quickly going back to a capturing page.

* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::provideSpeakerData):
When suspension happens, the buffer size might change.
Since this is only an issue if there are some references data, we now do not fail the capture when there
is no reference data.
(WebCore::CoreAudioSharedUnit::resume):
(WebCore::CoreAudioSharedUnit::prepareForNewCapture):
Make sure to start with a clean slate by setting suspend state to false for the shared unit.
And failing all previous sources in case we are going back from suspension.
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioCaptureSourceFactory::audioCaptureDeviceManager):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[GTK][WPE] Fixes for non-unified builds after r249022
aperez@igalia.com [Tue, 10 Sep 2019 15:10:56 +0000 (15:10 +0000)]
[GTK][WPE] Fixes for non-unified builds after r249022
https://bugs.webkit.org/show_bug.cgi?id=201610

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests needed.

* fileapi/NetworkSendQueue.h: Add missing inclusion of wtf/WeakPtr.h; add the namespace to WTF::WeakPtr
which is needed because there is no "using" clause.
* inspector/InspectorInstrumentation.cpp: Add missing inclusion of the PageDOMDebuggerAgent.h header.
* inspector/agents/WebDebuggerAgent.cpp: Add missing inclusion of the ScriptExecutionContext.h header.
* inspector/agents/page/PageDOMDebuggerAgent.cpp: Add missing inclusion of the InstrumentingAgents.h header.

Source/WebKit:

* NetworkProcess/NetworkCORSPreflightChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header.
* NetworkProcess/NetworkLoadChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoEnsure tests for legacy features are in LayoutTests/mathml
commit-queue@webkit.org [Tue, 10 Sep 2019 14:45:41 +0000 (14:45 +0000)]
Ensure tests for legacy features are in LayoutTests/mathml
https://bugs.webkit.org/show_bug.cgi?id=201604

Patch by Frederic Wang <fwang@igalia.com> on 2019-09-10
Reviewed by Rob Buis.

This patch copies MathML WPT tests verifying legacy support for features removed from MathML
Core. These tests will be overriden or removed in a future WPT synchronization, so we need
to keep local copies to check these legacy features when the "MathML Core" option is
disabled.

* TestExpectations: Copy expectation.
* mathml/non-core/frac-linethickness-001-expected.html: Added.
* mathml/non-core/frac-linethickness-001.html: Added.
* mathml/non-core/frac-linethickness-002-expected.html: Added.
* mathml/non-core/frac-linethickness-002.html: Added.
* mathml/non-core/frac-numalign-denomalign-001-expected.html: Added.
* mathml/non-core/frac-numalign-denomalign-001.html: Added.
* mathml/non-core/lengths-1-expected.html: Added.
* mathml/non-core/lengths-1.html: Added.
* mathml/non-core/lengths-2-expected.html: Added.
* mathml/non-core/lengths-2.html: Added.
* mathml/non-core/lengths-3-expected.txt: Added.
* mathml/non-core/lengths-3.html: Added.
* platform/gtk/TestExpectations: Copy expectation.
* platform/win/TestExpectations: Add failure expectations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUserMediaProcessManager is revoking sandbox extensions too aggressively
youenn@apple.com [Tue, 10 Sep 2019 13:52:37 +0000 (13:52 +0000)]
UserMediaProcessManager is revoking sandbox extensions too aggressively
https://bugs.webkit.org/show_bug.cgi?id=201638

Reviewed by Eric Carlson.

Sandbox revocation was sometimes happening when a page is being closed while another page from the same process is starting capture.
In that case, revocation might happen while it should not.
To prevent this, we do not revoke sandbox extensions if there are pending captures for a page of the process.
Whenever a page does not have any pending capture, sandbox extensions may be revoked.

Covered by OnDeviceChangeCrash API test in debug mode.

* UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
* UIProcess/UserMediaPermissionRequestManagerProxy.h:
(WebKit::UserMediaPermissionRequestManagerProxy::hasPendingCapture const):
* UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::revokeSandboxExtensionsIfNeeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249712 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, remove myself from watchlists
mcatanzaro@igalia.com [Tue, 10 Sep 2019 12:47:07 +0000 (12:47 +0000)]
Unreviewed, remove myself from watchlists

* Scripts/webkitpy/common/config/watchlist:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249711 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAdd support to RTCDataChannel.send(Blob)
youenn@apple.com [Tue, 10 Sep 2019 12:04:45 +0000 (12:04 +0000)]
Add support to RTCDataChannel.send(Blob)
https://bugs.webkit.org/show_bug.cgi?id=201377

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/RTCDataChannel-send-blob-order-expected.txt: Added.
* web-platform-tests/webrtc/RTCDataChannel-send-blob-order.html: Added.
* web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:

Source/WebCore:

Make use of NetworkSendQueue to enqueue and send properly messages.
Test: imported/w3c/web-platform-tests/webrtc/RTCDataChannel-send-blob-order.html

* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::createMessageQueue):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::send):
(WebCore::RTCDataChannel::close):
* Modules/mediastream/RTCDataChannel.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoOption + arrow moves caret past whitespace on iOS
rniwa@webkit.org [Tue, 10 Sep 2019 10:53:59 +0000 (10:53 +0000)]
Option + arrow moves caret past whitespace on iOS
https://bugs.webkit.org/show_bug.cgi?id=201575

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by findNextWordFromIndex on iOS behaving differently from macOS and UIKit by skipping
trailing whitespace after a word when moving forward and not skipping leading whitespace when moving backward.

This patch introduces a new mode (StopAfterWord) of findNextWordFromIndex in iOS that better matches
the behavior of findNextWordFromIndex on macOS and UIKit, and use it in various modify* functions of
FrameSelection when the selection update is triggered by user.

The legacy mode (LegacyStopBeforeWord) is used in all other call sites as well as when modify* functions
are invoked from author scripts.

Test: editing/selection/ios/move-by-word-with-keyboard.html

* editing/FrameSelection.cpp:
(WebCore::nextWordWhitespaceModeInIOS): Added. A helper to convert EUserTriggered to NextWordModeInIOS.
(WebCore::FrameSelection::nextWordPositionForPlatform):
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingForward):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modifyMovingBackward):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::updateAppearance):
* editing/FrameSelection.h:
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::isWordStartMatch const):
* editing/VisibleUnits.cpp:
(WebCore::previousWordPositionBoundary):
(WebCore::previousWordPosition):
(WebCore::nextWordPositionBoundary):
(WebCore::nextWordPosition):
* editing/VisibleUnits.h:
* platform/text/TextBoundaries.cpp:
(WebCore::findNextWordFromIndex):
* platform/text/TextBoundaries.h:
* platform/text/mac/TextBoundaries.mm:
(WebCore::findNextWordFromIndex): Added a new mode.

LayoutTests:

Added a new test for moving caret by word granularity on iOS.

* editing/selection/ios/move-by-word-with-keyboard-expected.txt: Added.
* editing/selection/ios/move-by-word-with-keyboard.html: Added.
* editing/selection/ios/select-non-editable-text-using-keyboard-expected.txt: Rebaselined.
* editing/selection/ios/select-non-editable-text-using-keyboard.html: Updated the expected
selection string due to the behavior change. Also fixed a bug that some test cases were
not waiting for a secondary selectionchange event that happens after an extra selection
update with character granularity introduced in r247524.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[WebAssembly] Use StreamingParser in existing Wasm::BBQPlan
ysuzuki@apple.com [Tue, 10 Sep 2019 09:42:15 +0000 (09:42 +0000)]
[WebAssembly] Use StreamingParser in existing Wasm::BBQPlan
https://bugs.webkit.org/show_bug.cgi?id=189043

Reviewed by Keith Miller.

JSTests:

The offset performing the validation becomes a bit different.
The offset 0 is nice since it is the starting offset of the Module header signature compared to the offset 8.

* wasm/js-api/version.js:

Source/JavaScriptCore:

This patch integrates Wasm::StreamingParser into the existing Wasm::BBQPlan.
And remove Wasm::ModuleParser. This patch paves the way to implementing Wasm streaming features by
using Wasm::StreamingParser.

Currently, we are not using streaming feature of StreamingParser. In a subsequent patch, we will
create a mechanism to pipe a chunk of data to streaming parser to enable WebAssembly.compileStreaming
and instantiateStreaming.

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* tools/JSDollarVM.cpp:
(JSC::WasmStreamingParser::WasmStreamingParser):
* wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::parseAndCompileAir):
* wasm/WasmAirIRGenerator.h:
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile): Use FunctionData, it is good since it is more strongly typed.
* wasm/WasmB3IRGenerator.h:
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::BBQPlan):
(JSC::Wasm::BBQPlan::didReceiveFunctionData): Add a callback, which invokes validation.
(JSC::Wasm::BBQPlan::parseAndValidateModule): Use StreamingParser instead of old ModuleParser.
(JSC::Wasm::BBQPlan::compileFunctions):
(JSC::Wasm::BBQPlan::complete):
* wasm/WasmBBQPlan.h:
* wasm/WasmModuleParser.cpp: Removed.
* wasm/WasmModuleParser.h: Removed.
* wasm/WasmOMGForOSREntryPlan.cpp:
(JSC::Wasm::OMGForOSREntryPlan::work):
* wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::fail): Make fail function callable multiple times. The first error will be used.
* wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseCode): Since the Code section is specially handled in StreamingParser, this code is never used.
* wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::StreamingParser):
(JSC::Wasm::StreamingParser::parseCodeSectionSize):
(JSC::Wasm::StreamingParser::parseFunctionPayload):
(JSC::Wasm::StreamingParser::parseSectionPayload):
(JSC::Wasm::StreamingParser::finalize): Call client's callbacks at appropriate timings.
* wasm/WasmStreamingParser.h:
(JSC::Wasm::StreamingParserClient::didReceiveSectionData):
(JSC::Wasm::StreamingParserClient::didReceiveFunctionData):
(JSC::Wasm::StreamingParserClient::didFinishParsing): Add StreamingParserClient,
which has 3 callbacks right now. StreamingParser gets this client and call these callbacks
at appropriate timings.
* wasm/WasmValidate.cpp:
(JSC::Wasm::validateFunction):
* wasm/WasmValidate.h: Use FunctionData, it is good since it is more strongly typed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249708 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[JSC] CodeBlock::m_constantRegisters should be guarded by ConcurrentJSLock when Vecto...
ysuzuki@apple.com [Tue, 10 Sep 2019 05:03:13 +0000 (05:03 +0000)]
[JSC] CodeBlock::m_constantRegisters should be guarded by ConcurrentJSLock when Vector reallocate memory
https://bugs.webkit.org/show_bug.cgi?id=201622

Reviewed by Mark Lam.

CodeBlock::visitChildren takes ConcurrentJSLock while iterating m_constantRegisters, some of the places reallocate
this Vector without taking a lock. If a Vector memory is reallocated while iterating it in concurrent collector,
the concurrent collector can see a garbage. This patch guards m_constantRegisters reallocation with ConcurrentJSLock.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::addConstant):
(JSC::CodeBlock::addConstantLazily):
* dfg/DFGDesiredWatchpoints.cpp:
(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
(JSC::DFG::SymbolTableAdaptor::add):
(JSC::DFG::FunctionExecutableAdaptor::add):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::registerFrozenValues):
* dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalizeCommon):
* dfg/DFGLazyJSValue.cpp:
(JSC::DFG::LazyJSValue::emit const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249706 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRebase API test after r249675
achristensen@apple.com [Tue, 10 Sep 2019 04:51:02 +0000 (04:51 +0000)]
Rebase API test after r249675
https://bugs.webkit.org/show_bug.cgi?id=201596

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
We removed the restriction on WebsitePolicies with non-default persistent sessions.
We needed to change the expectations of the test that exercised that code path.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoFix iOS API tests after r249684
achristensen@apple.com [Tue, 10 Sep 2019 04:30:39 +0000 (04:30 +0000)]
Fix iOS API tests after r249684
https://bugs.webkit.org/show_bug.cgi?id=201573

* TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::getWebSocketEventWebKitLegacy):
(TestWebKitAPI::TEST):
The web thread still exists :(
That makes iOS immediate failure results more like WK2, which is fine.
The point is that the connection fails somehow and the server sees a TLS failure, which the test verifies.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249704 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[iOS] We sometimes attempt to use a terminated prewarmed WebContent process
cdumez@apple.com [Tue, 10 Sep 2019 04:24:23 +0000 (04:24 +0000)]
[iOS] We sometimes attempt to use a terminated prewarmed WebContent process
https://bugs.webkit.org/show_bug.cgi?id=201614
<rdar://problem/54714507>

Reviewed by Geoffrey Garen.

On iOS, it is possible for our processes to get terminated (e.g. jetsammed) while the UIProcess
is suspended. Upon resuming, it takes a little while for the UIProcess to get the notification
that the mac connection to its child process has been severed and the UIProcess may try to use
it for a load. This is especially problematic for prewarmed process because the client will end
up showing a crash banner and reloading when we could have used a new process rather the prewarmed
one if we had known it was dead.

This patch makes 2 improvements:
1. It makes AuxiliaryProcessProxy::state() return Terminated if we still have a connection but
   the PID is not the PID of a running process. I also added a check in tryTakePrewarmedProcess()
   to not use the prewarmed process if it state() is Terminated.
2. When the UIProcess is about to get suspended, have the process pools terminate their non-critical
   processes (i.e. prewarmed + the ones used for PageCache). This makes WebKit friendlier with
   other apps on the system when suspended with regards to memory. Also, it makes it less likely
   useful WebContent processes will get jetsammed.

* UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::state const):
(WebKit::AuxiliaryProcessProxy::isRunningProcessPID):
* UIProcess/AuxiliaryProcessProxy.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::applicationIsAboutToSuspend):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
* UIProcess/WebProcessPool.h:
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249703 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoREGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple...
cdumez@apple.com [Tue, 10 Sep 2019 04:06:42 +0000 (04:06 +0000)]
REGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html is frequently timing out on iOS EWS bots
https://bugs.webkit.org/show_bug.cgi?id=201550

Reviewed by Alex Christensen.

Source/WebCore:

* loader/ResourceLoadObserver.h:
(WebCore::ResourceLoadObserver::hasStatistics const):

Source/WebKit:

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleResourceLoadStatisticsNotifyObserver):
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:

Tools:

Update testRunner.statisticsNotifyObserver() to return a boolean indicating if it did
anything or not.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::statisticsNotifyObserver):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsNotifyObserver):
* WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Update test to do checks on a timer if its call to testRunner.statisticsNotifyObserver() is a no-op
due to having no statistics to send to the network process.

* http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249702 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoTap and hold on Facebook sometimes creates a tall empty selection.
timothy@apple.com [Tue, 10 Sep 2019 03:50:04 +0000 (03:50 +0000)]
Tap and hold on Facebook sometimes creates a tall empty selection.
https://bugs.webkit.org/show_bug.cgi?id=201618
rdar://53630145

Reviewed by Megan Gardner.

Source/WebCore:

API Test: SelectionTests.ByWordAtEndOfDocument

* editing/VisibleUnits.cpp:
(WebCore::wordRangeFromPosition):
Remove special case code for the possibility of an empty paragraph and at the end
of the document. This is no longer needed and was causing a large selection to be
created on Facebook due to large areas of non-selectable content on the page.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/ios/SelectionByWord.mm: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249701 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[EWS] Watchlist doesn't work sometimes
aakash_jain@apple.com [Tue, 10 Sep 2019 02:12:10 +0000 (02:12 +0000)]
[EWS] Watchlist doesn't work sometimes
https://bugs.webkit.org/show_bug.cgi?id=201433

Reviewed by Michael Catanzaro.

* Scripts/webkitpy/common/config/watchlist: Updated the email addresses to the one associated with
corresponding Bugzilla accounts.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249687 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agogetComputedStyle for line-height: normal should return the keyword instead of a length
jh718.park@samsung.com [Tue, 10 Sep 2019 01:57:23 +0000 (01:57 +0000)]
getComputedStyle for line-height: normal should return the keyword instead of a length
https://bugs.webkit.org/show_bug.cgi?id=201296

LayoutTests/imported/w3c:

Reviewed by Ryosuke Niwa.

Per https://github.com/w3c/csswg-drafts/issues/3749,
Gecko and Blink has this behavior already.

This patch makes WebKit has the same behavior with them.

* web-platform-tests/css/css-inline/parsing/line-height-computed-expected.txt: Added.
* web-platform-tests/css/css-inline/parsing/line-height-computed.html: Added.
* web-platform-tests/css/cssom/getComputedStyle-line-height-expected.txt: Added.
* web-platform-tests/css/cssom/getComputedStyle-line-height.html: Added.
* web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-line-height-expected.html: Added.
* web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-line-height.html: Added.

Source/WebCore:

Reviewed by Ryosuke Niwa.

Per https://github.com/w3c/csswg-drafts/issues/3749,
Gecko and Blink has this behavior already.

This patch makes WebKit has the same behavior with them.

Tests: imported/w3c/web-platform-tests/css/css-inline/parsing/line-height-computed.html
       imported/w3c/web-platform-tests/css/cssom/getComputedStyle-line-height.html
       imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-line-height.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::lineHeightFromStyle):

LayoutTests:

Reviewed by Ryosuke Niwa.

Per https://github.com/w3c/csswg-drafts/issues/3749,
Gecko and Blink has this behavior already.

This patch makes WebKit has the same behavior with them.

* css3/calc/line-height-expected.txt:
* fast/css/font-calculated-value-expected.txt:
* fast/css/font-calculated-value.html:
* fast/css/font-shorthand-from-longhands-expected.txt:
* fast/css/font-shorthand-from-longhands.html:
* fast/css/font-shorthand-line-height-expected.txt:
* fast/css/font-shorthand-line-height.html:
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-font-expected.txt:
* fast/css/getComputedStyle/computed-style-font.html:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/ruby/ruby-line-height-expected.txt:
* fast/ruby/ruby-line-height.html:
* fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt:
* fast/text-autosizing/ios/idempotentmode/line-height-boosting.html:
* fast/text-autosizing/ios/line-height-text-autosizing-expected.txt:
* fast/text-autosizing/ios/line-height-text-autosizing.html:
* media/track/track-cue-rendering-on-resize-expected.txt:
* media/track/track-cue-rendering-on-resize.html:
* platform/gtk/fast/css/css2-system-fonts-expected.txt:
* platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
* platform/ios/TestExpectations:
* platform/ios/css3/calc/line-height-expected.txt:
* platform/ios/fast/css/css2-system-fonts-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/ios/svg/css/getComputedStyle-basic-expected.txt:
* platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
* platform/mac/fast/css/css2-system-fonts-expected.txt:
* platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/mac/fast/text-autosizing/ios/line-height-text-autosizing-expected.txt:
* platform/mac/svg/css/getComputedStyle-basic-expected.txt:
* platform/wincairo/css3/calc/line-height-expected.txt:
* platform/wincairo/fast/css/css2-system-fonts-expected.txt:
* platform/wpe/fast/css/css2-system-fonts-expected.txt:
* platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/wpe/svg/css/getComputedStyle-basic-expected.txt:
* svg/css/getComputedStyle-basic-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[WebGPU] Upload Babylon.js, WSL compile, and MotionMark links to demo page
justin_fan@apple.com [Tue, 10 Sep 2019 01:39:57 +0000 (01:39 +0000)]
[WebGPU] Upload Babylon.js, WSL compile, and MotionMark links to demo page
https://bugs.webkit.org/show_bug.cgi?id=201621

Reviewed by Dean Jackson.

Add new demos to the WebGPU demo collection.
Ensure error alerts/divs display properly if WebGPU is not enabled.

* demos/webgpu/babylon/oneHelmetWebGPU.html:
* demos/webgpu/babylon/oneSphereWebGPU.html:
* demos/webgpu/compute-blur.html:
* demos/webgpu/compute-boids-compile.html:
* demos/webgpu/compute-boids.html:
* demos/webgpu/hello-cube.html:
* demos/webgpu/hello-triangle.html:
* demos/webgpu/index.html:
* demos/webgpu/resources/babylon-helmet.png: Added.
* demos/webgpu/resources/babylon-sphere.png: Added.
* demos/webgpu/resources/motionmark.jpeg: Added.
* demos/webgpu/resources/webkit-logo.png: Added.
* demos/webgpu/scripts/compute-boids-compile.js:
* demos/webgpu/textured-cube.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249685 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoDisable TLS 1.0 and 1.1 in WebSockets
achristensen@apple.com [Tue, 10 Sep 2019 01:39:18 +0000 (01:39 +0000)]
Disable TLS 1.0 and 1.1 in WebSockets
https://bugs.webkit.org/show_bug.cgi?id=201573

Reviewed by Youenn Fablet.

Source/WebCore:

This expands on what I started in r249019 when I disabled legacy TLS for our use of NSURLSession.
Since our WebSocket implementation uses a different network interface, disable legacy TLS for them, too.
I use the same temporary default to re-enable legacy TLS.  I also add a unit test for both WebSockets and NSURLSession use.

* platform/network/cf/SocketStreamHandleImpl.h:
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::Function<bool):
(WebCore::SocketStreamHandleImpl::setLegacyTLSEnabledCheck):
(WebCore::SocketStreamHandleImpl::createStreams):

Source/WebCore/PAL:

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _allowAnyTLSCertificateForWebSocketTesting]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Source/WebKitLegacy/mac:

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):

Tools:

* TestWebKitAPI/SourcesCocoa.txt:
* TestWebKitAPI/TCPServer.cpp:
(sk_CRYPTO_BUFFER_num):
(sk_CRYPTO_BUFFER_value):
(TestWebKitAPI::deleter<CRYPTO_BUFFER>::operator()):
(TestWebKitAPI::TCPServer::TCPServer):
(TestWebKitAPI::TCPServer::listenForConnections):
(TestWebKitAPI::deleter<X509>::operator()): Deleted.
(TestWebKitAPI::deleter<uint8_t::operator()): Deleted.
* TestWebKitAPI/TCPServer.h:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: Added.
(-[WebSocketDelegate waitForMessage]):
(-[WebSocketDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):
* TestWebKitAPI/cocoa/TestNavigationDelegate.h:
* TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
(-[TestNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestNavigationDelegate waitForDidFailProvisionalNavigation]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249684 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[Win][MiniBrowser] WebKitLegacyBrowserWindow is leaked by circular references
Hironori.Fujii@sony.com [Tue, 10 Sep 2019 01:31:06 +0000 (01:31 +0000)]
[Win][MiniBrowser] WebKitLegacyBrowserWindow is leaked by circular references
https://bugs.webkit.org/show_bug.cgi?id=201600

Reviewed by Brent Fulgham.

There were some circular references between
WebKitLegacyBrowserWindow and its delegation classes. For
example, WebKitLegacyBrowserWindow has a reference of
WebDownloadDelegate, and WebDownloadDelegate shares the ref
counter with WebKitLegacyBrowserWindow.

WebNotificationObserver was leaked because it wasn't unregistered
from the default notification center by using
IWebNotificationCenter::removeObserver.

If a new legacy window was created by mouse right click a link,
WebView was released twice because
PrintWebUIDelegate::createWebViewWithRequest didn't AddRef the
WebView.

This change does:
1. Make delegation classes have own ref-counter to avoid circular references
2. Do removeObserver notification observers
3. AddRef WebView in PrintWebUIDelegate::createWebViewWithRequest

* MiniBrowser/win/AccessibilityDelegate.cpp:
(AccessibilityDelegate::AddRef):
(AccessibilityDelegate::Release):
* MiniBrowser/win/AccessibilityDelegate.h: Added m_refCount.
* MiniBrowser/win/MiniBrowserWebHost.cpp:
(MiniBrowserWebHost::QueryInterface):
(MiniBrowserWebHost::AddRef):
(MiniBrowserWebHost::Release):
* MiniBrowser/win/MiniBrowserWebHost.h: Added m_refCount.
* MiniBrowser/win/PrintWebUIDelegate.cpp:
(PrintWebUIDelegate::createWebViewWithRequest): Do AddRef for the returned IWebView.
(PrintWebUIDelegate::AddRef):
(PrintWebUIDelegate::Release):
* MiniBrowser/win/PrintWebUIDelegate.h: Added m_refCount.
* MiniBrowser/win/ResourceLoadDelegate.cpp:
(ResourceLoadDelegate::AddRef):
(ResourceLoadDelegate::Release):
* MiniBrowser/win/ResourceLoadDelegate.h: Added m_refCount.
* MiniBrowser/win/WebDownloadDelegate.cpp:
(WebDownloadDelegate::AddRef):
(WebDownloadDelegate::Release):
* MiniBrowser/win/WebDownloadDelegate.h: Added m_refCount.
* MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
(WebKitLegacyBrowserWindow::~WebKitLegacyBrowserWindow): Do removeObserver notification observers.
(WebKitLegacyBrowserWindow::init):
(WebKitLegacyBrowserWindow::setUIDelegate):
(WebKitLegacyBrowserWindow::setAccessibilityDelegate):
(WebKitLegacyBrowserWindow::setResourceLoadDelegate):
(WebKitLegacyBrowserWindow::setDownloadDelegate):
(WebKitLegacyBrowserWindow::AddRef): Deleted.
(WebKitLegacyBrowserWindow::Release): Deleted.
(WebKitLegacyBrowserWindow::setFrameLoadDelegate): Deleted.
(WebKitLegacyBrowserWindow::setFrameLoadDelegatePrivate): Deleted.
* MiniBrowser/win/WebKitLegacyBrowserWindow.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249683 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[Win][WebKitLegacy] WebKitDLL.h(53,37): warning: 'gClassNameCount' has C-linkage...
Hironori.Fujii@sony.com [Tue, 10 Sep 2019 01:28:57 +0000 (01:28 +0000)]
[Win][WebKitLegacy] WebKitDLL.h(53,37): warning: 'gClassNameCount' has C-linkage specified, but returns user-defined type 'HashCountedSet<WTF::String> &' which is incompatible with C [-Wreturn-type-c-linkage]
https://bugs.webkit.org/show_bug.cgi?id=201601

Reviewed by Ross Kirsling.

Fixed a clang-cl warning. Names which aren't dllexport-ed don't
need to be in a extern "C" scope because they aren't exported to
other DLLs.

* WebKitDLL.h: Moved some variables and gClassNameCount() out of extern "C" scope.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249682 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoClarify some macCatalyst feature flags
timothy_horton@apple.com [Tue, 10 Sep 2019 01:01:45 +0000 (01:01 +0000)]
Clarify some macCatalyst feature flags
https://bugs.webkit.org/show_bug.cgi?id=201619
<rdar://problem/54615618>

Reviewed by Megan Gardner.

Source/WebKit:

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _showShareSheet:inRect:completionHandler:]):
We prefer specific flags over platform checks.

Source/WTF:

* wtf/Platform.h:
We prefer specific flags over platform checks.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249681 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed test gardening, update test expectations for rdar://problem/51229282.
ryanhaddad@apple.com [Tue, 10 Sep 2019 00:45:50 +0000 (00:45 +0000)]
Unreviewed test gardening, update test expectations for rdar://problem/51229282.

* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249680 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed test gardening, update test expectations for rdar://problem/51766135.
ryanhaddad@apple.com [Tue, 10 Sep 2019 00:38:17 +0000 (00:38 +0000)]
Unreviewed test gardening, update test expectations for rdar://problem/51766135.

* platform/ios/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249679 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoREGRESSION(r236540-r236595): ASSERTION FAILED: !frameView || !frameView->isPainting...
ryanhaddad@apple.com [Tue, 10 Sep 2019 00:32:53 +0000 (00:32 +0000)]
REGRESSION(r236540-r236595): ASSERTION FAILED: !frameView || !frameView->isPainting() on plugins/window-open.html
https://bugs.webkit.org/show_bug.cgi?id=199089

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations: Skip the test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249678 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[Air] highOrderAdjacents in AbstractColoringAllocator::conservativeHeuristic should...
rmorisset@apple.com [Tue, 10 Sep 2019 00:23:50 +0000 (00:23 +0000)]
[Air] highOrderAdjacents in AbstractColoringAllocator::conservativeHeuristic should be some kind of array
https://bugs.webkit.org/show_bug.cgi?id=197305

Reviewed by Keith Miller.

Currently it is a HashSet, but it only ever holds at most registerCount() items. And linear search tends to be faster on such a small collection than hashing + searching in a HashSet.
Further benefits include avoiding the allocation of the HashSet, not actually adding the nodes adjacent to V (since there are no duplicates in the adjacency lists).

This patch also contains a trivial optimization: if the remaining number of nodes to consider + the number of highOrderAdjacents already seen is smaller than registerCount() we can return true directly.
Apart from that, the patch got some trivial cleanup of GraphColoringRegisterAllocation::allocateOnBank() (that for example was only logging the number of iterations for FP registers, and not the more interesting number for GP registers).

The time spent in the register allocator throughout JetStream2 on this MacBook Pro moves from 3767 / 3710 / 3785 ms to 3551 / 3454 / 3503 ms.
So about a 6% speedup for that phase, and between 1 and 1.5% speedup for FTL/OMG compilation overall.

No new tests as there is no intended change to the code being generated, and this was already tested by running testb3 + JetStream2.

* b3/air/AirAllocateRegistersByGraphColoring.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249677 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoStop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAtt...
cdumez@apple.com [Mon, 9 Sep 2019 23:35:12 +0000 (23:35 +0000)]
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html
https://bugs.webkit.org/show_bug.cgi?id=201596

Reviewed by Alex Christensen.

Source/WebKit:

Allow WKFramePolicyListenerUseWithPolicies() C API to switch to a persistent non-default session.
This is important since WebKitTestRunner is not using the default session anymore and I need to
be able to switch it back to its normal session after going to an ephemeral one.

* UIProcess/API/C/WKFramePolicyListener.cpp:
(useWithPolicies):

Tools:

Add new testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() / testRunner.setShouldSwapToDefaultSessionOnNextNavigation()
test functions to support dynamic switching between ephemeral and default/persistent session in layout tests. The new methods
do the right thing for WebKit2 and truly switch session, unlike setPrivateBrowsingEnabled_DEPRECATED() which was merely making
the WebCore::Document think it changed session.

* DumpRenderTree/TestRunner.cpp:
(setShouldSwapToEphemeralSessionOnNextNavigationCallback):
(setShouldSwapToDefaultSessionOnNextNavigationCallback):
(TestRunner::staticFunctions):
(TestRunner::willNavigate):
* DumpRenderTree/TestRunner.h:
(TestRunner::setShouldSwapToEphemeralSessionOnNextNavigation):
(TestRunner::setShouldSwapToDefaultSessionOnNextNavigation):
* DumpRenderTree/mac/FrameLoadDelegate.mm:
(-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]):
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setShouldSwapToEphemeralSessionOnNextNavigation):
(WTR::TestRunner::setShouldSwapToDefaultSessionOnNextNavigation):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::decidePolicyForNavigationAction):
* WebKitTestRunner/TestController.h:
(WTR::TestController::setShouldSwapToEphemeralSessionOnNextNavigation):
(WTR::TestController::setShouldSwapToDefaultSessionOnNextNavigation):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Update layout test to use testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() &
testRunner.setShouldSwapToDefaultSessionOnNextNavigation() instead of the legacy
testRunner.setPrivateBrowsingEnabled_DEPRECATED(). The test needed some extra steps to
navigate whenever we switch session but it is a lot more realistic and is really switching
session on WebKit2. The testRunner.setPrivateBrowsingEnabled_DEPRECATED() was not truly
switching session, just making the document think it did.

* http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249675 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoResync service workers WPT tests from upstream
cdumez@apple.com [Mon, 9 Sep 2019 23:14:44 +0000 (23:14 +0000)]
Resync service workers WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201589

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync service workers WPT tests from upstream 820f0f86047e6e26401e.

* web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https-expected.txt:
* web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https.html:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html:
* web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html:
* web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html:
* web-platform-tests/service-workers/service-worker/activation-after-registration.https.html:
* web-platform-tests/service-workers/service-worker/activation.https-expected.txt:
* web-platform-tests/service-workers/service-worker/activation.https.html:
* web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html:
* web-platform-tests/service-workers/service-worker/claim-fetch-with-appcache.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/claim-fetch-with-appcache.https.html: Removed.
* web-platform-tests/service-workers/service-worker/claim-fetch.https.html:
* web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html:
* web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html:
* web-platform-tests/service-workers/service-worker/claim-using-registration.https.html:
* web-platform-tests/service-workers/service-worker/claim-worker-fetch.https-expected.txt:
* web-platform-tests/service-workers/service-worker/claim-worker-fetch.https.html:
* web-platform-tests/service-workers/service-worker/client-id.https.html:
* web-platform-tests/service-workers/service-worker/clients-get-client-types.https.html:
* web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https.html: Removed.
* web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-get.https.html:
* web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html:
* web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https.html:
* web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html:
* web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html:
* web-platform-tests/service-workers/service-worker/clients-matchall.https.html:
* web-platform-tests/service-workers/service-worker/controller-on-disconnect.https.html:
* web-platform-tests/service-workers/service-worker/controller-on-load.https.html:
* web-platform-tests/service-workers/service-worker/controller-on-reload.https.html:
* web-platform-tests/service-workers/service-worker/data-transfer-files.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/data-transfer-files.https.html: Removed.
* web-platform-tests/service-workers/service-worker/detached-context.https-expected.txt:
* web-platform-tests/service-workers/service-worker/detached-context.https.html:
* web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:
* web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https.html:
* web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html:
* web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https.html: Removed.
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-double-write.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-double-write.https.html: Removed.
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-cache.https.html:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https.html:
* web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html:
* web-platform-tests/service-workers/service-worker/fetch-csp.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html:
* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event.https.html:
* web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html:
* web-platform-tests/service-workers/service-worker/fetch-header-visibility.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-css-images.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr-sync.https.html:
* web-platform-tests/service-workers/service-worker/fetch-response-xhr.https.html:
* web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html:
* web-platform-tests/service-workers/service-worker/getregistration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/getregistration.https.html:
* web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/import-module-scripts.https.html: Removed.
* web-platform-tests/service-workers/service-worker/import-scripts-mime-types.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/import-scripts-mime-types.https.html: Removed.
* web-platform-tests/service-workers/service-worker/import-scripts-resource-map.https-expected.txt:
* web-platform-tests/service-workers/service-worker/import-scripts-resource-map.https.html:
* web-platform-tests/service-workers/service-worker/interfaces-window.https.html:
* web-platform-tests/service-workers/service-worker/invalid-blobtype.https.html:
* web-platform-tests/service-workers/service-worker/invalid-header.https.html:
* web-platform-tests/service-workers/service-worker/iso-latin1-header.https.html:
* web-platform-tests/service-workers/service-worker/multiple-update.https.html:
* web-platform-tests/service-workers/service-worker/navigation-redirect.https.html:
* web-platform-tests/service-workers/service-worker/onactivate-script-error.https.html:
* web-platform-tests/service-workers/service-worker/performance-timeline.https.html:
* web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https.html:
* web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html: Removed.
* web-platform-tests/service-workers/service-worker/postmessage-to-client.https.html:
* web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:
* web-platform-tests/service-workers/service-worker/postmessage.https.html:
* web-platform-tests/service-workers/service-worker/ready.https.html:
* web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
* web-platform-tests/service-workers/service-worker/redirected-response.https.html:
* web-platform-tests/service-workers/service-worker/referer.https.html:
* web-platform-tests/service-workers/service-worker/register-default-scope.https.html:
* web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html:
* web-platform-tests/service-workers/service-worker/registration-end-to-end.https.html:
* web-platform-tests/service-workers/service-worker/registration-events.https.html:
* web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-mime-types.https.html:
* web-platform-tests/service-workers/service-worker/registration-schedule-job.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/registration-schedule-job.https.html: Removed.
* web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https.html:
* web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html:
* web-platform-tests/service-workers/service-worker/resource-timing.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.sub.https.html.
* web-platform-tests/service-workers/service-worker/resource-timing.sub.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-ping-frame.py:
* web-platform-tests/service-workers/service-worker/resources/appcache-ordering.manifest:
* web-platform-tests/service-workers/service-worker/resources/claim-worker.js:
* web-platform-tests/service-workers/service-worker/resources/classic-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/clients-get-cross-origin-frame.html:
* web-platform-tests/service-workers/service-worker/resources/clients-get-resultingClientId-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/clients-get-worker.js:
(self.onmessage):
* web-platform-tests/service-workers/service-worker/resources/enable-client-message-queue.html: Removed.
* web-platform-tests/service-workers/service-worker/resources/extendable-event-async-waituntil.js:
(switch):
(event.request.url.indexOf):
(else.event.request.url.indexOf):
* web-platform-tests/service-workers/service-worker/resources/fetch-canvas-tainting-double-write-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html:
* web-platform-tests/service-workers/service-worker/resources/fetch-event-async-respond-with-worker.js:
(setTimeout):
* web-platform-tests/service-workers/service-worker/resources/fetch-event-network-fallback-worker.js:
* web-platform-tests/service-workers/service-worker/resources/fetch-event-test-worker.js:
* web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-iframe.html:
* web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-worker.js:
(self.onmessage):
(url.indexOf):
(else.url.indexOf):
* web-platform-tests/service-workers/service-worker/resources/get-resultingClientId-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/import-relative.xsl: Removed.
* web-platform-tests/service-workers/service-worker/resources/import-scripts-diff-resource-map-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/import-scripts-get.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/import-scripts-mime-types-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/imported-classic-script.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/imported-module-script.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/message-vs-microtask.html: Removed.
* web-platform-tests/service-workers/service-worker/resources/module-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-other-origin.html:
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py:
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py:
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py:
* web-platform-tests/service-workers/service-worker/resources/nested-iframe-parent.html: Removed.
* web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js:
(promise_test.):
(promise_test):
* web-platform-tests/service-workers/service-worker/resources/postmessage-echo-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/redirect-worker.js:
(event.waitUntil.Promise.all.waitUntilPromiseList.then):
(then):
(waitUntilPromise.caches.open.cacheName.then):
(event.respondWith.waitUntilPromise.then):
* web-platform-tests/service-workers/service-worker/resources/registration-tests-mime-types.js:
(registration_tests_mime_types):
* web-platform-tests/service-workers/service-worker/resources/registration-tests-scope.js:
(registration_tests_scope):
* web-platform-tests/service-workers/service-worker/resources/registration-tests-security-error.js:
(registration_tests_security_error):
* web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html:
* web-platform-tests/service-workers/service-worker/resources/service-worker-csp-worker.py:
* web-platform-tests/service-workers/service-worker/resources/service-worker-header.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/skip-waiting-installed-worker.js:
(event.waitUntil.self.skipWaiting.then):
* web-platform-tests/service-workers/service-worker/resources/stalling-service-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js:
(wait_for_update):
(async.wait_for_activation_on_dummy_scope):
* web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/trickle.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/update-during-installation-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/update-during-installation-worker.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/update-fetch-worker.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/update-missing-import-scripts-imported-worker.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/update-missing-import-scripts-main-worker.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/update-registration-with-type.py: Removed.
* web-platform-tests/service-workers/service-worker/resources/w3c-import.log:
* web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html:
* web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js:
(self.onfetch):
* web-platform-tests/service-workers/service-worker/resources/worker-testharness.js:
(create_temporary_cache):
* web-platform-tests/service-workers/service-worker/resources/xhr-iframe.html: Removed.
* web-platform-tests/service-workers/service-worker/resources/xhr-response-url-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/xsl-base-url-iframe.xml: Removed.
* web-platform-tests/service-workers/service-worker/resources/xsl-base-url-worker.js: Removed.
* web-platform-tests/service-workers/service-worker/resources/xslt-pass.xsl: Removed.
* web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-header.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-header.https.html:
* web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html:
* web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html:
* web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt:
* web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html:
* web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html:
* web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html:
* web-platform-tests/service-workers/service-worker/skip-waiting.https.html:
* web-platform-tests/service-workers/service-worker/state.https.html:
* web-platform-tests/service-workers/service-worker/synced-state.https.html:
* web-platform-tests/service-workers/service-worker/uncontrolled-page.https.html:
* web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https.html:
* web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-then-register.https.html:
* web-platform-tests/service-workers/service-worker/update-after-navigation-redirect.https.html:
* web-platform-tests/service-workers/service-worker/update-after-oneday.https.html:
* web-platform-tests/service-workers/service-worker/update-bytecheck.https.html:
* web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https.html: Removed.
* web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html: Removed.
* web-platform-tests/service-workers/service-worker/update-not-allowed.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/update-not-allowed.https.html: Removed.
* web-platform-tests/service-workers/service-worker/update-on-navigation.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/update-on-navigation.https.html: Removed.
* web-platform-tests/service-workers/service-worker/update-recovery.https.html:
* web-platform-tests/service-workers/service-worker/update-registration-with-type.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/update-registration-with-type.https.html: Removed.
* web-platform-tests/service-workers/service-worker/w3c-import.log:
* web-platform-tests/service-workers/service-worker/websocket.https-expected.txt:
* web-platform-tests/service-workers/service-worker/websocket.https.html:
* web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html:
* web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-interception.https.html:
* web-platform-tests/service-workers/service-worker/xhr-response-url.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/xhr-response-url.https.html: Removed.
* web-platform-tests/service-workers/service-worker/xsl-base-url.https-expected.txt: Removed.
* web-platform-tests/service-workers/service-worker/xsl-base-url.https.html: Removed.

LayoutTests:

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249672 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoDeprecate unused SPI to preconnect to a server
achristensen@apple.com [Mon, 9 Sep 2019 22:45:45 +0000 (22:45 +0000)]
Deprecate unused SPI to preconnect to a server
https://bugs.webkit.org/show_bug.cgi?id=201558

Reviewed by Youenn Fablet.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/API/C/WKContext.cpp:
(WKContextPreconnectToServer):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _preconnectToServer:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::preconnectToServer): Deleted.
* UIProcess/WebProcessPool.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249671 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRevert to pre-r243144 scavenging behavior for macOS
msaboff@apple.com [Mon, 9 Sep 2019 22:38:40 +0000 (22:38 +0000)]
Revert to pre-r243144 scavenging behavior for macOS
https://bugs.webkit.org/show_bug.cgi?id=201555

Reviewed by Saam Barati.

The change in r243144 regressed internal power metrics for some Mac models.

* bmalloc/Heap.cpp:
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeToHighWatermark):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):
* bmalloc/Heap.h:
* bmalloc/IsoDirectory.h:
* bmalloc/IsoDirectoryInlines.h:
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::scavengeToHighWatermark):
* bmalloc/IsoHeapImpl.h:
* bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
* bmalloc/LargeMap.cpp:
(bmalloc::LargeMap::add):
* bmalloc/LargeRange.h:
(bmalloc::LargeRange::LargeRange):
(bmalloc::merge):
* bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::timeSinceLastPartialScavenge):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::partialScavenge):
(bmalloc::Scavenger::threadRunLoop):
* bmalloc/Scavenger.h:
* bmalloc/SmallPage.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249670 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed Windows build fix.
pvollan@apple.com [Mon, 9 Sep 2019 22:17:49 +0000 (22:17 +0000)]
Unreviewed Windows build fix.

* WebProcess/WebPage/WebPage.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[JSC] Use metadata table to iterate specific bytecode metadata instead of propertyAcc...
ysuzuki@apple.com [Mon, 9 Sep 2019 21:38:17 +0000 (21:38 +0000)]
[JSC] Use metadata table to iterate specific bytecode metadata instead of propertyAccessInstructions vector
https://bugs.webkit.org/show_bug.cgi?id=201613

Reviewed by Mark Lam.

We do not need to maintain propertyAccessInstructions vector to access metadata tied to a specific bytecode opcode
since we have MetadataTable::forEach<Op> feature. This removes propertyAccessInstructions entirely, and fixes the
issue that `op_create_promise` missed propertyAccessInstructions registration (a name "propertyAccessInstructions" is
misleading, it is like "instructions-requires-llint-finalize").

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::applyModification):
(JSC::UnlinkedCodeBlock::shrinkToFit):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::addPropertyAccessInstruction): Deleted.
(JSC::UnlinkedCodeBlock::numberOfPropertyAccessInstructions const): Deleted.
(JSC::UnlinkedCodeBlock::propertyAccessInstructions const): Deleted.
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitDirectGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitCreateThis):
(JSC::BytecodeGenerator::emitToThis):
* runtime/CachedTypes.cpp:
(JSC::CachedCodeBlock<CodeBlockType>::decode const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249668 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoEWS testtube emoji doesn't exist on macOS Mojave
aakash_jain@apple.com [Mon, 9 Sep 2019 21:20:59 +0000 (21:20 +0000)]
EWS testtube emoji doesn't exist on macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=201532

Reviewed by Simon Fraser.

* BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Change the emoji to microscope emoji.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAdd Babylon demos
jonlee@apple.com [Mon, 9 Sep 2019 21:15:19 +0000 (21:15 +0000)]
Add Babylon demos
https://bugs.webkit.org/show_bug.cgi?id=201611

Rubber-stamped by Justin Fan.

* demos/webgpu/babylon/LICENSE: Added.
* demos/webgpu/babylon/babylonWebGpu.max.js: Added.
* demos/webgpu/babylon/logo.svg: Added.
* demos/webgpu/babylon/oneHelmetWebGPU.html: Added.
* demos/webgpu/babylon/oneHelmetWebGPUGLSLShaders.js: Added.
* demos/webgpu/babylon/oneHelmetWebGPUWSLShaders.js: Added.
* demos/webgpu/babylon/oneSphereWebGPU.html: Added.
* demos/webgpu/babylon/oneSphereWebGPUGLSLShaders.js: Added.
* demos/webgpu/babylon/oneSphereWebGPUWSLShaders.js: Added.
* demos/webgpu/babylon/vertexShaderGLSL1.glsl: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249666 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAdd boids time test
jonlee@apple.com [Mon, 9 Sep 2019 21:07:14 +0000 (21:07 +0000)]
Add boids time test
https://bugs.webkit.org/show_bug.cgi?id=201612

Rubber-stamped by Justin Fan.

* demos/webgpu/compute-boids-compile.html: Added.
* demos/webgpu/scripts/compute-boids-compile.js: Added.
* demos/webgpu/scripts/compute-boids-utils.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249665 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed follow up to r249630. We need padding for ADDRESS32 CPUs to allow replaceW...
sbarati@apple.com [Mon, 9 Sep 2019 20:54:46 +0000 (20:54 +0000)]
Unreviewed follow up to r249630. We need padding for ADDRESS32 CPUs to allow replaceWith to work on the intended types.

* Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249664 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[EWS] API testers can go in an infinite RETRY loop when there is build failure in...
aakash_jain@apple.com [Mon, 9 Sep 2019 20:36:13 +0000 (20:36 +0000)]
[EWS] API testers can go in an infinite RETRY loop when there is build failure in trunk
https://bugs.webkit.org/show_bug.cgi?id=201607

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(AnalyzeAPITestsResults.analyzeResults): Do not RETRY when clean_tree_results are missing.
(AnalyzeAPITestsResults.analyzeResults.getAPITestFailures): Gracefully handle None result.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249663 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoOSR entry into wasm misses some contexts
keith_miller@apple.com [Mon, 9 Sep 2019 20:32:56 +0000 (20:32 +0000)]
OSR entry into wasm misses some contexts
https://bugs.webkit.org/show_bug.cgi?id=201569

Reviewed by Yusuke Suzuki.

JSTests:

Add a new harness and wast and the generated wasm file for
testing. The idea long term is to make it easy to test by creating
a C file and converting it to a wast then modify that to produce a
test.

* wasm.yaml:
* wasm/wast-tests/harness.js: Added.
(async.runWasmFile):
* wasm/wast-tests/osr-entry-inner-loop-branch-above-no-consts.wasm: Added.
* wasm/wast-tests/osr-entry-inner-loop-branch-above-no-consts.wast: Added.
* wasm/wast-tests/osr-entry-inner-loop-branch-above.wasm: Added.
* wasm/wast-tests/osr-entry-inner-loop-branch-above.wast: Added.
* wasm/wast-tests/osr-entry-inner-loop.wasm: Added.
* wasm/wast-tests/osr-entry-inner-loop.wast: Added.
* wasm/wast-tests/osr-entry-multiple-enclosed-contexts.wasm: Added.
* wasm/wast-tests/osr-entry-multiple-enclosed-contexts.wast: Added.

Source/JavaScriptCore:

This patch fixes an issue where we could fail to capture some of
our contexts when OSR entering into wasm code. Before we would
only capture the state of the block immediately surrounding the
entrance loop block header. We actually need to capture all
enclosed stacks.

Additionally, we don't need to use variables for all the captured
values. We can use a Phi and insert an upsilon just below the
captured value.

* interpreter/CallFrame.h:
* jsc.cpp:
(GlobalObject::finishCreation):
(functionCallerIsOMGCompiled):
* wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::createStack):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::dumpExpressionStack):
(JSC::Wasm::B3IRGenerator::dump):
(JSC::Wasm::B3IRGenerator::Stack::Stack): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::append): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::takeLast): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::last): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::size const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::isEmpty const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::convertToExpressionList): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::at const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::variableAt const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::shrink): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::swap): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::dump const): Deleted.
* wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::controlStack):

Tools:

Add new test harness mode for tests created from wast files.

* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249661 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoVersioning.
alancoon@apple.com [Mon, 9 Sep 2019 20:29:32 +0000 (20:29 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249659 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUpload triangles tests for 3D suite in MotionMark
jonlee@apple.com [Mon, 9 Sep 2019 19:30:50 +0000 (19:30 +0000)]
Upload triangles tests for 3D suite in MotionMark
https://bugs.webkit.org/show_bug.cgi?id=201606

Reviewed by Simon Fraser.

PerformanceTests:

* MotionMark/resources/debug-runner/motionmark.css:
* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/3d/resources/webgl.js:
* MotionMark/tests/3d/resources/webgpu.js: Added.
* MotionMark/tests/3d/triangles-webgl.html: Renamed from Websites/browserbench.org/MotionMark1.1/tests/3d/webgl.html.
* MotionMark/tests/3d/triangles-webgpu.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.

Websites/browserbench.org:

* MotionMark1.1/resources/debug-runner/tests.js:
* MotionMark1.1/tests/3d/resources/webgl.js:
* MotionMark1.1/tests/3d/resources/webgpu.js: Added.
* MotionMark1.1/tests/3d/triangles-webgl.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.
* MotionMark1.1/tests/3d/triangles-webgpu.html: Renamed from PerformanceTests/MotionMark/tests/3d/webgl.html.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249657 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoLayout Test http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https...
jiewen_tan@apple.com [Mon, 9 Sep 2019 19:16:16 +0000 (19:16 +0000)]
Layout Test http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=198810

Reviewed by Dewei Zhu.

* http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:
Removed the timeout value given these tests should report the exception immediately.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249656 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoWeb Inspector: Dark Mode: Overview Timeline View has jarring white box-shadows in...
joepeck@webkit.org [Mon, 9 Sep 2019 19:02:10 +0000 (19:02 +0000)]
Web Inspector: Dark Mode: Overview Timeline View has jarring white box-shadows in dark mode
https://bugs.webkit.org/show_bug.cgi?id=201442
<rdar://problem/54999794>

Reviewed by Devin Rousso.

* UserInterface/Views/DataGrid.css:
(.data-grid:not(.variable-height-rows) table.data):
(.data-grid:not(.variable-height-rows) table.data.even-first-zebra-stripe):
(.data-grid.variable-height-rows.even-first-zebra-stripe table.data tr:nth-child(odd)):
(.data-grid.variable-height-rows.even-first-zebra-stripe table.data tr:nth-child(even)):
(.data-grid:not(.variable-height-rows) table.data.odd-first-zebra-stripe): Deleted.
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(odd)): Deleted.
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(even)): Deleted.
* UserInterface/Views/DataGrid.js:
(WI.DataGrid.prototype.updateVisibleRows):
* UserInterface/Views/Table.css:
(.table > .data-container > .data-list):
(.table > .data-container > .data-list.even-first-zebra-stripe):
(.table > .data-container > .data-list.odd-first-zebra-stripe): Deleted.
* UserInterface/Views/Table.js:
In the gradients "even" was mistakenly first. Fix these so that "odd" is first and the
unusual case would be having "even" first. This allows us to line up with `nth-of-type(even)`.

* UserInterface/Views/Main.css:
(:root):
(@media (prefers-color-scheme: dark)):
Flip even and odd so we maintain the same styles for gradients.

* UserInterface/Views/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid tr):
(.timeline-view.overview > .data-grid tr:nth-child(even)):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(@media (prefers-color-scheme: dark)):
(WI.Table.prototype._updateVisibleRows):
* UserInterface/Views/Variables.css:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249655 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[LFC][TFC] Introduce cell spacing.
zalan@apple.com [Mon, 9 Sep 2019 19:01:28 +0000 (19:01 +0000)]
[LFC][TFC] Introduce cell spacing.
https://bugs.webkit.org/show_bug.cgi?id=201605
<rdar://problem/55184009>

Reviewed by Antti Koivisto.

This patch adds support for horizontal and vertical cell spacing (border-spacing). Now LFC matches table geometry for simple table content with multiple columns and rows.

* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const): Now we can use the generic, check the inflow content logic for table height.
* layout/LayoutUnits.h:
(WebCore::Layout::HorizontalEdges::width const):
(WebCore::Layout::VerticalEdges::height const):
* layout/Verification.cpp:
(WebCore::Layout::verifyAndOutputSubtree):
* layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layout):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::positionTableCells):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computedTableWidth):
(WebCore::Layout::TableFormattingContext::useAsContentLogicalWidth):
* layout/tableformatting/TableFormattingContext.h:
* layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::tableCellHeightAndMargin const):
* layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::widthConstraints const):
(WebCore::Layout::TableGrid::ColumnsContext::useAsLogicalWidth): Deleted.
* layout/tableformatting/TableGrid.h:
(WebCore::Layout::TableGrid::setHorizontalSpacing):
(WebCore::Layout::TableGrid::horizontalSpacing const):
(WebCore::Layout::TableGrid::setVerticalSpacing):
(WebCore::Layout::TableGrid::verticalSpacing const):
(WebCore::Layout::TableGrid::ColumnsContext::logicalWidth const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249654 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove all selection view animations before dumping results
dbates@webkit.org [Mon, 9 Sep 2019 18:56:47 +0000 (18:56 +0000)]
Remove all selection view animations before dumping results
https://bugs.webkit.org/show_bug.cgi?id=199241

Reviewed by Wenson Hsieh.

On iOS the selection UI uses a few animations, including fading in the grabbers. We have many
historical tests that were written for Mac and expect Mac's lack of animations that we run on
iOS and are flaky. Let's try to remove all selection view animations before dumping results and
see if this makes tests on iOS less flaky. A future enhancement to this is to expose a uiController
API for a test to remove selection animations at any time during the run.

* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::notifyDone):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249653 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agorun-webkit-tests: Report results archive to results.webkit.org
jbedard@apple.com [Mon, 9 Sep 2019 18:29:12 +0000 (18:29 +0000)]
run-webkit-tests: Report results archive to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=201321

Reviewed by Aakash Jain.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.run): After all tests are finish, upload the results archive for each
configuration.
* Scripts/webkitpy/results/upload.py:
(Upload):
(Upload.__init__): Automatically define timestamp.
(Upload.upload_archive): Upload an archive associated with the test run.
* Scripts/webkitpy/results/upload_unittest.py:
(UploadTest.test_buildbot):
(UploadTest):
(UploadTest.test_archive_upload):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, rolling out r249574.
ryanhaddad@apple.com [Mon, 9 Sep 2019 17:52:15 +0000 (17:52 +0000)]
Unreviewed, rolling out r249574.

Caused fast/mediastream/media-stream-track-source-failure.html
to become flaky.

Reverted changeset:

"Remove MediaStreamPrivate::scheduleDeferredTask"
https://bugs.webkit.org/show_bug.cgi?id=200975
https://trac.webkit.org/changeset/249574

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249651 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[JSC] Promise resolve/reject functions should be created more efficiently
ysuzuki@apple.com [Mon, 9 Sep 2019 17:52:07 +0000 (17:52 +0000)]
[JSC] Promise resolve/reject functions should be created more efficiently
https://bugs.webkit.org/show_bug.cgi?id=201488

Reviewed by Mark Lam.

JSTests:

* microbenchmarks/promise-creation-many.js: Added.
(executor):

Source/JavaScriptCore:

While r246553 fixed an important issue, it makes anonymous-builtin-function creation costly since it enforces FunctionRareData allocations.
Unfortunately, anonymous-builtin-function function can be created frequently since this type of function is used
for `resolve` and `reject` arguments of Promise's executor (e.g. `new Promise((resolve, reject) => ...)`'s resolve and reject).
Since we are now always creating FunctionRareData for these functions, this additional allocation makes promise creation slower.

In this patch, we use `isAnonymousBuiltinFunction` information for `hasReifiedName` correctly. And we propagate `isAnonymousBuiltinFunction` information
to FunctionRareData to initialize `m_hasReifiedName` correctly. Then we can avoid unnecessary FunctionRareData allocation, which makes
anonymous-builtin-function creation faster.

We can ensure that this patch does not revert r246553's fix by running JSTests/stress/builtin-private-function-name.js test.
The simple microbenchmark shows 1.7x improvement.

                                      ToT                     Patched

    promise-creation-many       45.6701+-0.1488     ^     26.8663+-1.8336        ^ definitely 1.6999x faster

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
* runtime/FunctionRareData.cpp:
(JSC::FunctionRareData::create):
(JSC::FunctionRareData::FunctionRareData):
* runtime/FunctionRareData.h:
* runtime/JSFunction.cpp:
(JSC::JSFunction::finishCreation):
(JSC::JSFunction::allocateRareData):
(JSC::JSFunction::allocateAndInitializeRareData):
* runtime/JSFunctionInlines.h:
(JSC::JSFunction::hasReifiedName const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[macOS] Pid is sometimes invalid when creating sandbox extensions by pid.
pvollan@apple.com [Mon, 9 Sep 2019 17:44:33 +0000 (17:44 +0000)]
[macOS] Pid is sometimes invalid when creating sandbox extensions by pid.
https://bugs.webkit.org/show_bug.cgi?id=201543
<rdar://problem/54733465>

Reviewed by Brent Fulgham.

There is a race condition when starting a load of a local file, where the WebContent process has not finished
launching yet, and its pid is not available. When we try to create a sandbox extension by using the pid of the
WebContent process, it is not available in the cases where the WebContent process has just launched and has not
finished launching yet. This patch creates a new dummy Web page message, 'LoadRequestWaitingForPID', which will
be sent instead of a normal 'LoadRequest' message, and only when the WebContent process has not finished
launching. When the WebContent process has finished launching, and we are about to actually send the pending
messages, we can detect that a 'LoadRequestWaitingForPID' has been appended for sending, and replace it with a
normal 'LoadReqest' message where we have created the sandbox extension issue with a valid pid. The message
'LoadRequestWaitingForPID' is never intended to reach the WebContent process, it is just there to replace with
a normal 'LoadRequest' message with a new sandbox extension. In the implementation of the message handler on
the WebContent process side, we assert that the method is never called. This patch makes sure the ordering of
the Web page messages are the same, even when we modify the message.

* UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fileLoadRequest):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249649 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoStop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers...
cdumez@apple.com [Mon, 9 Sep 2019 17:18:25 +0000 (17:18 +0000)]
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers/service/basic-register.html
https://bugs.webkit.org/show_bug.cgi?id=201590

Reviewed by Youenn Fablet.

Tools:

Add a new API test to check that if the default session registers a service worker, the
hasServiceWorkerRegistration flag is still false in an ephemeral session.

* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

LayoutTests:

Split the layout test in 2 to test both the default and the ephemeral session without relying on the
testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.

* http/tests/workers/service/basic-register-expected.txt:
* http/tests/workers/service/basic-register-private-expected.txt: Copied from LayoutTests/http/tests/workers/service/basic-register-expected.txt.
* http/tests/workers/service/basic-register-private.html: Added.
* http/tests/workers/service/resources/basic-register.js:
(async.test):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249648 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove ServiceWorkerProcessProxy
youenn@apple.com [Mon, 9 Sep 2019 17:02:14 +0000 (17:02 +0000)]
Remove ServiceWorkerProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=201506

Reviewed by Chris Dumez.

Instead of using a specific ServiceWorkerProcessProxy, move the logic directly in WebProcessProxy.
This will allow us in the future to run a service worker in a process that already runs a web page,
thus saving the need to spin off a new process.

This patch adds a new WebProcessProxy::createForServiceWorkers method instead of creating a
ServiceWorkerProcessProxy. The behavior is then similar: a process running a service worker cannot run a page.

* Sources.txt:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):
* UIProcess/BackgroundProcessResponsivenessTimer.cpp:
(WebKit::BackgroundProcessResponsivenessTimer::shouldBeActive const):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
* UIProcess/ServiceWorkerProcessProxy.cpp: Removed.
* UIProcess/ServiceWorkerProcessProxy.h: Removed.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateServiceWorkerUserAgent):
(WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers):
(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::isServiceWorkerPageID const):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createForServiceWorkers):
(WebKit::WebProcessProxy::getLaunchOptions):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::canBeAddedToWebProcessCache const):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::didExceedCPULimit):
(WebKit::WebProcessProxy::establishServiceWorkerContext):
(WebKit::WebProcessProxy::setServiceWorkerUserAgent):
(WebKit::WebProcessProxy::updateServiceWorkerPreferencesStore):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::isRunningServiceWorkers const):
(WebKit::WebProcessProxy::hasServiceWorkerPageProxy):
* UIProcess/glib/WebProcessPoolGLib.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebKit.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249647 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoresults.webkit.org: mobile-sidebar-control should override button
jbedard@apple.com [Mon, 9 Sep 2019 15:35:48 +0000 (15:35 +0000)]
results.webkit.org: mobile-sidebar-control should override button
https://bugs.webkit.org/show_bug.cgi?id=201566

Rubber-stamped by Aakash Jain.

* resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:
(@media screen and (min-width: 600px)):
(.mobile-sidebar-control):
(.mobile-sidebar-control.display):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249646 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[GTK][WPE] Remove attributes deprecated from MathML3
commit-queue@webkit.org [Mon, 9 Sep 2019 15:21:15 +0000 (15:21 +0000)]
[GTK][WPE] Remove attributes deprecated from MathML3
https://bugs.webkit.org/show_bug.cgi?id=197492

Patch by Rob Buis <rbuis@igalia.com> on 2019-09-09
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Import relevant WPT test.

* web-platform-tests/mathml/relations/css-styling/attribute-mapping-001-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html: Added.

Source/WebCore:

Remove some MathML3 deprecated attributes:
https://github.com/mathml-refresh/mathml/issues/5#issuecomment-475506856

This change also maps the dir attribute to direction for MathML Core.

Test: imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html

* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::collectStyleForPresentationAttribute):

LayoutTests:

Disable the MathML Core flag for tests assuming MathML3 behavior.

* mathml/presentation/attributes-background-color-expected.html:
* mathml/presentation/attributes-background-color.html:
* mathml/presentation/attributes-mathvariant.html:
* mathml/presentation/direction-overall.html:
* mathml/presentation/mstyle-css-attributes.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249645 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed JSC test gardening.
zandobersek@gmail.com [Mon, 9 Sep 2019 12:58:49 +0000 (12:58 +0000)]
Unreviewed JSC test gardening.

* stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js:
This test allocates a 2GB string before it goes out and tests
out-of-memory exception when appending other strings to it. As such,
skip the test on memory-limited platforms.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249644 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed. Bump GTK version numbers
carlosgc@webkit.org [Mon, 9 Sep 2019 09:44:55 +0000 (09:44 +0000)]
Unreviewed. Bump GTK version numbers

* Source/cmake/OptionsGTK.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249643 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUse WebProcess processIdentifier to identify IDB connections between WebProcess and...
youenn@apple.com [Mon, 9 Sep 2019 09:08:39 +0000 (09:08 +0000)]
Use WebProcess processIdentifier to identify IDB connections between WebProcess and NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=201419

Reviewed by Alex Christensen.

We change from an identifier generated by NetworkProcess to WebProcess identifier.
A WebProcess identifier is unique globally and is stable even in case of NetworkProcess crash.
This removes the need for a sync IPC and makes things more easy to handle in case of NetworkProcess crash.

* NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames):
* NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
* NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::identifier const):
(WebKit::WebIDBConnectionToServer::coreConnectionToServer):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::idbConnectionToServerForSession):
* WebProcess/Network/NetworkProcessConnection.h:
(WebKit::NetworkProcessConnection::existingIDBConnectionToServer const):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249640 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoMove checkProcessLocalPortForActivity from provider to registry
youenn@apple.com [Mon, 9 Sep 2019 08:50:50 +0000 (08:50 +0000)]
Move checkProcessLocalPortForActivity from provider to registry
https://bugs.webkit.org/show_bug.cgi?id=201400

Reviewed by Alex Christensen.

Source/WebCore:

Update the registry to take a callback that is used to implement checkProcessLocalPortForActivity.
This allows WK1 and WK2 to have their own implementation.

Make the call to checkProcessLocalPortForActivity directly on the registry.
Remove unneeded worker checkProcessLocalPortForActivity method.
No change of behavior.

* dom/messageports/MessagePortChannel.cpp:
(WebCore::MessagePortChannel::checkRemotePortForActivity):
* dom/messageports/MessagePortChannelProvider.h:
* dom/messageports/MessagePortChannelProviderImpl.cpp:
(WebCore::createMessagePortChannelRegistry):
(WebCore::MessagePortChannelProviderImpl::MessagePortChannelProviderImpl):
(WebCore::MessagePortChannelProviderImpl::checkProcessLocalPortForActivity): Deleted.
* dom/messageports/MessagePortChannelProviderImpl.h:
* dom/messageports/MessagePortChannelRegistry.cpp:
(WebCore::MessagePortChannelRegistry::MessagePortChannelRegistry):
(WebCore::MessagePortChannelRegistry::checkProcessLocalPortForActivity):
* dom/messageports/MessagePortChannelRegistry.h:
(WebCore::MessagePortChannelRegistry::provider): Deleted.
* dom/messageports/WorkerMessagePortChannelProvider.cpp:
(WebCore::WorkerMessagePortChannelProvider::checkProcessLocalPortForActivity): Deleted.
* dom/messageports/WorkerMessagePortChannelProvider.h:

Source/WebKit:

Implement registry callback at NetworkProcess level.
Remove NetworkMessagePortChannelProvider since only a registry is now needed.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
* NetworkProcess/NetworkMessagePortChannelProvider.cpp: Removed.
* NetworkProcess/NetworkMessagePortChannelProvider.h: Removed.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::createMessagePortChannelRegistry):
(WebKit::m_messagePortChannelRegistry):
(WebKit::m_messagePortChannelProvider): Deleted.
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::messagePortChannelRegistry):
* Sources.txt:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
(WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): Deleted.
* WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249637 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUpdated German translation
aperez@igalia.com [Mon, 9 Sep 2019 08:37:07 +0000 (08:37 +0000)]
Updated German translation
https://bugs.webkit.org/show_bug.cgi?id=201582

Patch by Christian Kirbach <Christian.Kirbach@googlemail.com> on 2019-09-07
Rubber-stamped by Adrian Perez de Castro.

* de.po:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249634 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[l10n] [pt_BR] Updated Brazilian Portuguese translation
carlosgc@webkit.org [Mon, 9 Sep 2019 08:29:28 +0000 (08:29 +0000)]
[l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=201592

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2019-09-09
Rubber-stamped by Carlos Garcia Campos.

* pt_BR.po:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249633 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove some unused constants in VersionChecks.h
david_quesada@apple.com [Mon, 9 Sep 2019 06:41:17 +0000 (06:41 +0000)]
Remove some unused constants in VersionChecks.h
https://bugs.webkit.org/show_bug.cgi?id=201599

Reviewed by Youenn Fablet.

* UIProcess/Cocoa/VersionChecks.h:
    Remove two macros that are unused as of r244512.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249632 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[macCatalyst] The last typed character in password fields shouldn't be echoed
wenson_hsieh@apple.com [Mon, 9 Sep 2019 04:04:08 +0000 (04:04 +0000)]
[macCatalyst] The last typed character in password fields shouldn't be echoed
https://bugs.webkit.org/show_bug.cgi?id=201595
<rdar://problem/55166367>

Reviewed by Tim Horton.

Disable password echoing on macCatalyst, to better match behavior on macOS.

* Shared/WebPreferencesDefaultValues.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249631 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[WHLSL] Add back a version of the property resolver
sbarati@apple.com [Mon, 9 Sep 2019 03:23:30 +0000 (03:23 +0000)]
[WHLSL] Add back a version of the property resolver
https://bugs.webkit.org/show_bug.cgi?id=201251

Reviewed by Robin Morisset.

Source/WebCore:

This patch adds back the property resolver to aid in how we emit metal code.
The goal of the new property resolver phase is to allow two things:
1. For property access expressions, metal codegen should be allowed to evaluate
the base, and if it's an index expression, the index, as many times as needed.
So this patch ensures that if Metal evaluates such things, effects aren't performed
more than once.

2. For ReadModifyWrite expressions, metal codegen should be able to evaluate the
leftValueExpression as many times as it'd like without performing the effects of
leftValueExpression more than once.

Here are a couple examples of this transformation:
`a()[b()]` -> `(temp1 = a(), temp2 = b(), temp1[temp2])`
`(*a())[b()] += 42;` -> `(temp1 = &*a(), temp2 = b(), (*temp1)[temp2] += 42)`

The interesting rules break down like:
- When the base is an lvalue, we take its address and replace the old base
with a dereference of the new pointer variable.
- When the base is an rvalue, we evaluate it and store it in a temporary
variable, and switch the base to be a reference of that variable.
- All indices are evaluated before the property access instruction and
replaced with a reference to the temporary variable.

Test: webgpu/whlsl/property-evaluation-order.html

* Modules/webgpu/WHLSL/AST/WHLSLExpression.cpp:
(WebCore::WHLSL::AST::Expression::mayBeEffectful const):
* Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
* Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:
* Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:
* Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
* Modules/webgpu/WHLSL/WHLSLHighZombieFinder.cpp:
(WebCore::WHLSL::findHighZombies):
* Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
(WebCore::WHLSL::PropertyResolver::handleLeftHandSideBase):
(WebCore::WHLSL::PropertyResolver::handlePropertyAccess):
(WebCore::WHLSL::resolveProperties):

LayoutTests:

* webgpu/whlsl/property-evaluation-order-expected.txt: Added.
* webgpu/whlsl/property-evaluation-order.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249630 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoAdd support for postMessage buffering between the service worker and window
cdumez@apple.com [Sun, 8 Sep 2019 06:10:28 +0000 (06:10 +0000)]
Add support for postMessage buffering between the service worker and window
https://bugs.webkit.org/show_bug.cgi?id=201169

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

* web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt:

Source/WebCore:

As per the Service Worker specification, a service worker client's message
queue is initially disabled and only gets enabled after:
- The DOMContentLoaded event has been fired
or
- The client sets the navigator.serviceWorker.onmessage event handler
or
- navigator.serviceWorker.startMessages() is called

While the message queue is disabled, messages posted by the service worker
to the client simply get queued and only get processed once the queue gets
enabled.

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::finishedParsing):
Call startMessages() on the ServiceWorkerContainer once the DOMContentLoaded event has
been fired.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ensureServiceWorkerContainer):
* dom/ScriptExecutionContext.h:
* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
Fix a bug where a service worker would not be able to post a message to a client until
that client has accessed navigator.serviceWorker (since the ServiceWorkerContainer is
lazy initialized). To address the issue, we now initialize the ServiceWorkerContainer
when a message is received from the service worker. Previously, messages were just
getting dropped.

* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
When the ServiceWorkerContainer is constructed, suspend its message queue if its context
document is still parsing.

(WebCore::ServiceWorkerContainer::startMessages):
Resume the message queue when startMessages() is called.

(WebCore::ServiceWorkerContainer::postMessage):
Enqueue the event instead of firing it right away.

(WebCore::ServiceWorkerContainer::addEventListener):
if navigator.serviceWorker.onmessage event handler gets set by the JavaScript, call
startMessages().

* workers/service/ServiceWorkerContainer.h:

LayoutTests:

* TestExpectations:
Unskip test that is no longer timing out.

* resources/testharnessreport.js:
(self.testRunner.add_completion_callback):
Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
testRunner.notifyDone() does not work in case of load error or when the load
does not finish. The WPT test was timing out because the load does not finish for
testing purposes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoREGRESSION(r248533): Unable to use WTF::RefCounted when building in a debug configura...
david_quesada@apple.com [Sun, 8 Sep 2019 05:57:17 +0000 (05:57 +0000)]
REGRESSION(r248533): Unable to use WTF::RefCounted when building in a debug configuration against a non-debug WebKit
https://bugs.webkit.org/show_bug.cgi?id=201585
rdar://problem/55153369

Reviewed by Chris Dumez.

Export WTF::RefCountedBase::areThreadingChecksEnabledGlobally regardless of whether or not assertions
are enabled for the WTF being built. This allows WebKit-based projects to use RefCounted for their own
objects in a debug configuration without requiring a debug build of WebKit.

* wtf/RefCounted.cpp:
* wtf/RefCounted.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249628 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[Service Workers] Drop support for registration resurrection
cdumez@apple.com [Sun, 8 Sep 2019 05:42:51 +0000 (05:42 +0000)]
[Service Workers] Drop support for registration resurrection
https://bugs.webkit.org/show_bug.cgi?id=201584

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync a couple of outdated WPT tests from upstream 820f0f86047e6e.

* web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https.html:
* web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-then-register.https.html:

Source/WebCore:

Drop support for registration resurrection (Unregistering then quickly re-registering would resurrect
the original registration instead of creating a new one). This behavior is no longer in the
specification (No more "isUninstalling" flag on the registration, and the registration is removed
from the "scope to registration map" right away upon unregistering).

This resurrection behavior was causing a lot of flakiness in the tests so it is likely we will be able
to unskip some tests. This is also what was causing the flakiness that caused Bug 201169 to be rolled
out.

No new tests, updated existing tests.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::activeWorkerFromRegistrationID):
(WebCore::SWServer::getRegistration):
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::getRegistrations):
(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::terminatePreinstallationWorker):
(WebCore::SWServer::didFinishActivation):
(WebCore::SWServer::claim):
(WebCore::SWServer::addClientServiceWorkerRegistration):
(WebCore::SWServer::removeClientServiceWorkerRegistration):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorker):
(WebCore::SWServer::doRegistrationMatching):
(WebCore::SWServer::registrationFromServiceWorkerIdentifier):
(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::removeFromScopeToRegistrationMap):
(WebCore::SWServer::performGetOriginsWithRegistrationsCallbacks):
* workers/service/server/SWServer.h:
* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::runRegisterJob):
(WebCore::SWServerJobQueue::runUnregisterJob):
(WebCore::SWServerJobQueue::runUpdateJob):
* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::clear):
(WebCore::SWServerRegistration::handleClientUnload):
(WebCore::SWServerRegistration::isUnregistered const):
* workers/service/server/SWServerRegistration.h:
(WebCore::SWServerRegistration::scopeURLWithoutFragment const):
* workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
(WebCore::m_scriptResourceMap):
(WebCore::SWServerWorker::contextData const):
(WebCore::SWServerWorker::skipWaiting):
(WebCore::SWServerWorker::setHasPendingEvents):
(WebCore::SWServerWorker::setState):
(WebCore::SWServerWorker::registration const):
* workers/service/server/SWServerWorker.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249627 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an...
cdumez@apple.com [Sun, 8 Sep 2019 05:26:51 +0000 (05:26 +0000)]
Rewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an API test
https://bugs.webkit.org/show_bug.cgi?id=201574

Reviewed by Alex Christensen.

Source/WebKit:

Update Service Workers so that they obey the "secureContextChecksEnabled" preference.
This was needed to allow my service worker to access self.caches in my API test.

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):

Tools:

Rewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an API test so that
we truly test private browsing. testRunner.setPrivateBrowsingEnabled_DEPRECATED() is a hack which
does not work well for WK2.

* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

LayoutTests:

Drop legacy test which was replaced by an API test.

* http/tests/workers/service/serviceworker-private-browsing-worker.js: Removed.
* http/tests/workers/service/serviceworker-private-browsing.https-expected.txt: Removed.
* http/tests/workers/service/serviceworker-private-browsing.https.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRewrite storage/domstorage/localstorage/private-browsing-affects-storage.html as...
cdumez@apple.com [Sun, 8 Sep 2019 05:11:48 +0000 (05:11 +0000)]
Rewrite storage/domstorage/localstorage/private-browsing-affects-storage.html as an API test
https://bugs.webkit.org/show_bug.cgi?id=201547

Reviewed by Alex Christensen.

Tools:

Rewrite storage/domstorage/localstorage/private-browsing-affects-storage.html as an API test so
it can use a true ephemeral session instead of the testRunner.setPrivateBrowsingEnabled_DEPRECATED()
hack.

* TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:
(-[LocalStorageNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[LocalStorageNavigationDelegate webView:didFinishNavigation:]):
(TEST):

LayoutTests:

Drop outdated test.

* storage/domstorage/localstorage/private-browsing-affects-storage.html: Removed.
* storage/domstorage/localstorage/resources/private-browsing-1.html: Removed.
* storage/domstorage/localstorage/resources/private-browsing-2.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249625 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoMarking up a note on iOS results in a PDF with no contents
timothy_horton@apple.com [Sun, 8 Sep 2019 04:17:46 +0000 (04:17 +0000)]
Marking up a note on iOS results in a PDF with no contents
https://bugs.webkit.org/show_bug.cgi?id=201530
<rdar://problem/53686019>

Unreviewed follow-up.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _waitForDrawToPDFCallback]):
Remove an ASSERT_NOT_REACHED that fires if the synchronous wait for printing
times out. This is a totally legitimite situation that can occur if the process
crashes; there's no need for an assert there.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249624 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoNull check m_client in NetworkDataTask::didReceiveResponse
achristensen@apple.com [Sun, 8 Sep 2019 03:58:26 +0000 (03:58 +0000)]
Null check m_client in NetworkDataTask::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=201587
<rdar://problem/54743444>

Reviewed by Chris Dumez.

clearClient can be called at any time.  We null check it everyhere else we use it,
and we are seeing crashes at this call site.  Let's not crash.

* NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::didReceiveResponse):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249623 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove WebsiteDataStore::legacyDefaultDataStoreConfiguration
achristensen@apple.com [Sun, 8 Sep 2019 02:29:11 +0000 (02:29 +0000)]
Remove WebsiteDataStore::legacyDefaultDataStoreConfiguration
https://bugs.webkit.org/show_bug.cgi?id=200054

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Its last needed use was removed in rdar://problem/47030981
This changes WKContextConfigurationCreateWithLegacyOptions to be equal to WKContextConfigurationCreate,
but it has no remaining clients so it is only being retained for binary compabibility.
This also changes WKContextCreateWithInjectedBundlePath and WKContextCreate to be equal to WKContextCreateWithConfiguration,
and after rdar://problem/47030981 there are no meaningful clients of those functions, also.
There is one existing client of WKContextCreateWithInjectedBundlePath in rdar://problem/50323967 but our current implementation
is compatible enough for them because it uses their injected bundle still.

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
(API::ProcessPoolConfiguration::createWithLegacyOptions): Deleted.
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::createLegacy): Deleted.
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration): Deleted.
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextCreate):
(WKContextCreateWithInjectedBundlePath):
(WKContextGetWebsiteDataStore):
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCreate):
(WKContextConfigurationCreateWithLegacyOptions):
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted.
* UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup initWithInjectedBundleURL:]):
* UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted.
* UIProcess/API/win/APIWebsiteDataStoreWin.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted.
* UIProcess/WebInspectorUtilities.cpp:
(WebKit::inspectorProcessPool):
* UIProcess/WebProcessPool.cpp:
(WebKit::m_webProcessCache):
(WebKit::legacyWebsiteDataStoreConfiguration): Deleted.
* UIProcess/WebProcessPool.h:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
This test relied on the default data store having been instantiated.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249622 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months ago[Follow up fix] Harden protection of the Gigacage Config parameters.
mark.lam@apple.com [Sun, 8 Sep 2019 01:19:08 +0000 (01:19 +0000)]
[Follow up fix] Harden protection of the Gigacage Config parameters.
https://bugs.webkit.org/show_bug.cgi?id=201570
<rdar://problem/55134229>

Reviewed by Saam Barati.

The previously landed hardening measures is failing the assertion in
forbidDisablingPrimitiveGigacage() when a replacement heap (e.g. gmalloc) is
used.

1. forbidDisablingPrimitiveGigacage() should just ensureGigacage() so that we
   know that the Gigacage is properly configured (whether enabled or disabled).
2. Strengthen the assertion in forbidDisablingPrimitiveGigacage() to ensure that
   we have already determined if the Gigacage should be enabled.

* bmalloc/Gigacage.cpp:
(Gigacage::forbidDisablingPrimitiveGigacage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249621 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoFix Windows build
achristensen@apple.com [Sat, 7 Sep 2019 22:56:32 +0000 (22:56 +0000)]
Fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=201517

* WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249620 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove calls to WKContextGetWebsiteDataStore missed in r249614
achristensen@apple.com [Sat, 7 Sep 2019 22:54:22 +0000 (22:54 +0000)]
Remove calls to WKContextGetWebsiteDataStore missed in r249614
https://bugs.webkit.org/show_bug.cgi?id=200050

Source/WebKit:

It turns out I didn't need to introduce another way of clearing all cookies between tests.
I just needed to make the call to WKHTTPCookieStoreDeleteAllCookies use the right WebsiteDataStore.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::clearCachedCredentials):
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::clearCredentials):
(WebKit::NetworkSession::clearCookies): Deleted.
* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::clearCookies): Deleted.

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::invoke):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249619 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoFix Windows build.
achristensen@apple.com [Sat, 7 Sep 2019 22:45:13 +0000 (22:45 +0000)]
Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=200050

* PlatformWin.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249618 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoFix Windows build.
achristensen@apple.com [Sat, 7 Sep 2019 22:26:36 +0000 (22:26 +0000)]
Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=201517

* WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249617 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoRemove invalid assertion added in r249614
achristensen@apple.com [Sat, 7 Sep 2019 21:45:48 +0000 (21:45 +0000)]
Remove invalid assertion added in r249614
https://bugs.webkit.org/show_bug.cgi?id=200050

* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cocoaResetStateToConsistentValues):
Something is instantiating the default data store, which is no problem right now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoUnreviewed, rolling out r249353.
ryanhaddad@apple.com [Sat, 7 Sep 2019 20:20:51 +0000 (20:20 +0000)]
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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249615 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 months agoDeprecate WKContextGetWebsiteDataStore
achristensen@apple.com [Sat, 7 Sep 2019 16:04:00 +0000 (16:04 +0000)]
Deprecate WKContextGetWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=200050

Reviewed by Geoff Garen.

Source/WebCore:

* platform/network/CacheValidation.cpp:
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):
* platform/network/CacheValidation.h:
Replace a few NetworkStorageSession& with NetworkStorageSession*
so I can replace defaultStorageSession with the correct NetworkStorageSession in NetworkCache.cpp.

Source/WebKit:

The last use of it was removed in rdar://problem/47030981
In order to remove its use in WebKitTestRunner, I needed to make WKWebsiteDataStoreConfigurationRef
to replace the WKContextConfigurationRef members that should've been associated with the WebsiteDataStore the whole time.
There is one use of WKContextGetWebsiteDataStore in TestWebKitAPI still I'll investigate later.

* Shared/API/c/WKBase.h:
* Sources.txt:
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::create):
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetApplicationCacheManager):
(WKContextGetKeyValueStorageManager):
(WKContextGetResourceCacheManager):
* UIProcess/API/C/WKContext.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCopyDiskCacheDirectory):
(WKContextConfigurationSetDiskCacheDirectory):
(WKContextConfigurationCopyApplicationCacheDirectory):
(WKContextConfigurationSetApplicationCacheDirectory):
(WKContextConfigurationCopyIndexedDBDatabaseDirectory):
(WKContextConfigurationSetIndexedDBDatabaseDirectory):
(WKContextConfigurationCopyLocalStorageDirectory):
(WKContextConfigurationSetLocalStorageDirectory):
(WKContextConfigurationCopyWebSQLDatabaseDirectory):
(WKContextConfigurationSetWebSQLDatabaseDirectory):
(WKContextConfigurationCopyMediaKeysStorageDirectory):
(WKContextConfigurationSetMediaKeysStorageDirectory):
(WKContextConfigurationCopyResourceLoadStatisticsDirectory):
(WKContextConfigurationSetResourceLoadStatisticsDirectory):
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: Added.
(WKWebsiteDataStoreConfigurationGetTypeID):
(WKWebsiteDataStoreConfigurationCreate):
(WKWebsiteDataStoreConfigurationCopyApplicationCacheDirectory):
(WKWebsiteDataStoreConfigurationSetApplicationCacheDirectory):
(WKWebsiteDataStoreConfigurationCopyNetworkCacheDirectory):
(WKWebsiteDataStoreConfigurationSetNetworkCacheDirectory):
(WKWebsiteDataStoreConfigurationCopyIndexedDBDatabaseDirectory):
(WKWebsiteDataStoreConfigurationSetIndexedDBDatabaseDirectory):
(WKWebsiteDataStoreConfigurationCopyLocalStorageDirectory):
(WKWebsiteDataStoreConfigurationSetLocalStorageDirectory):
(WKWebsiteDataStoreConfigurationCopyWebSQLDatabaseDirectory):
(WKWebsiteDataStoreConfigurationSetWebSQLDatabaseDirectory):
(WKWebsiteDataStoreConfigurationCopyMediaKeysStorageDirectory):
(WKWebsiteDataStoreConfigurationSetMediaKeysStorageDirectory):
(WKWebsiteDataStoreConfigurationCopyResourceLoadStatisticsDirectory):
(WKWebsiteDataStoreConfigurationSetResourceLoadStatisticsDirectory):
* UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: Added.
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreCreateWithConfiguration):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* WebKit.xcodeproj/project.pbxproj:

Tools:

* MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::updateProxySettings):
* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::generateContextConfiguration const):
(WTR::TestController::websiteDataStore):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::platformAdjustContext):
(WTR::TestController::clearServiceWorkerRegistrations):
(WTR::TestController::clearDOMCache):
(WTR::TestController::clearDOMCaches):
(WTR::TestController::ClearIndexedDatabases):
(WTR::TestController::hasDOMCache):
(WTR::TestController::domCacheSize):
(WTR::TestController::setStatisticsDebugMode):
(WTR::TestController::setStatisticsPrevalentResourceForDebugMode):
(WTR::TestController::setStatisticsLastSeen):
(WTR::TestController::setStatisticsPrevalentResource):
(WTR::TestController::setStatisticsVeryPrevalentResource):
(WTR::TestController::dumpResourceLoadStatistics):
(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::isStatisticsVeryPrevalentResource):
(WTR::TestController::isStatisticsRegisteredAsSubresourceUnder):
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
(WTR::TestController::setStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectFrom):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectTo):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectFrom):
(WTR::TestController::setStatisticsCrossSiteLoadWithLinkDecoration):
(WTR::TestController::setStatisticsTimeToLiveUserInteraction):
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsUpdateCookieBlocking):
(WTR::TestController::statisticsSubmitTelemetry):
(WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestController::setStatisticsIsRunningTest):
(WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WTR::TestController::setStatisticsGrandfatheringTime):
(WTR::TestController::setStatisticsMaxStatisticsEntries):
(WTR::TestController::setStatisticsPruneEntriesDownTo):
(WTR::TestController::statisticsClearInMemoryAndPersistentStore):
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
(WTR::TestController::statisticsDeleteCookiesForHost):
(WTR::TestController::isStatisticsHasLocalStorage):
(WTR::TestController::setStatisticsCacheMaxAgeCap):
(WTR::TestController::statisticsResetToConsistentState):
(WTR::TestController::setWebAuthenticationMockConfiguration):
(WTR::TestController::clearAdClickAttributionsThroughWebsiteDataRemoval):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):

LayoutTests:

Rebase some accessibility tests that were printing the SessionID since we're using SessionID 2 for testing now.

* accessibility/mac/document-attributes-expected.txt:
* platform/mac/accessibility/parent-delete-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249614 268f45cc-cd09-0410-ab3c-d52691b4dbfc