WebKit-https.git
22 months agoSW "Hello world".
beidson@apple.com [Fri, 13 Oct 2017 06:44:47 +0000 (06:44 +0000)]
SW "Hello world".
https://bugs.webkit.org/show_bug.cgi?id=178187

Reviewed by Andy Estes.

Source/WebCore:

No new tests (Covered by changes to existing tests).

With this patch, SW scripts are actually compiled and run inside a ServiceWorkerGlobalScope environment
in the SW context process.

* WebCore.xcodeproj/project.pbxproj:

* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):

* dom/EventTargetFactory.in:

* workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::isServiceWorkerGlobalScope const):

* workers/service/ServiceWorkerContextData.cpp: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp.
(WebCore::ServiceWorkerContextData::isolatedCopy const):
* workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

* workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
(WebCore::ServiceWorkerGlobalScope::~ServiceWorkerGlobalScope):
(WebCore::ServiceWorkerGlobalScope::registration):
(WebCore::ServiceWorkerGlobalScope::eventTargetInterface const):
* workers/service/ServiceWorkerGlobalScope.h:
(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::serverConnectionIdentifier const):

* workers/service/context/SWContextManager.cpp: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp.
(WebCore::SWContextManager::singleton):
(WebCore::SWContextManager::SWContextManager):
(WebCore::SWContextManager::startServiceWorkerContext):
* workers/service/context/SWContextManager.h: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.h.

* workers/service/context/ServiceWorkerThread.cpp: Added.
(WebCore::ServiceWorkerThreadProxy::sharedDummyProxy):
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::m_workerObjectProxy):
(WebCore::ServiceWorkerThread::~ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
(WebCore::ServiceWorkerThread::runEventLoop):
* workers/service/context/ServiceWorkerThread.h: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.h.
(WebCore::ServiceWorkerThread::create):
(WebCore::ServiceWorkerThread::workerObjectProxy const):

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::createWorker):

Source/WebKit:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::startServiceWorkerContext):

LayoutTests:

* http/tests/workers/service/basic-register-exceptions-expected.txt:
* http/tests/workers/service/basic-register-expected.txt:
* http/tests/workers/service/registration-task-queue-scheduling-1-expected.txt:

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

22 months agoWebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetC...
utatane.tea@gmail.com [Fri, 13 Oct 2017 02:13:20 +0000 (02:13 +0000)]
WebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetCallData
https://bugs.webkit.org/show_bug.cgi?id=178210

Reviewed by Saam Barati.

JSTests:

* wasm/function-tests/trap-from-start-async.js:
(async.StartTrapsAsync):
* wasm/function-tests/trap-from-start.js:
(StartTraps):
* wasm/js-api/web-assembly-function.js:
(assert.eq.Object.getPrototypeOf):
* wasm/js-api/wrapper-function.js:
(return.new.WebAssembly.Module):
(assert.throws.makeInstance): Deleted.
(assert.throws.Bar): Deleted.
(assert.throws): Deleted.

Source/JavaScriptCore:

In Wasm, we have two JS functions exposed to users: WebAssemblyFunction and WebAssemblyWrapperFunction.
The former is an exported wasm function and the latter is an imported & exported function. Since they
have [[Call]], they should be categorized into "function" in typeof operation.

However, these functions do not implement our function protocol correctly. They inherit JSFunction.
But JSType of WebAssemblyFunction is WebAssemblyFunctionType, and one of WebAssemblyWrapperFunction is
ObjectType. Since both do not have TypeOfShouldCallGetCallData, they return "object" when performing
typeof operation.

In this patch, we address the above issue by the following 2 fixes.

1. We add TypeOfShouldCallGetCallData to WebAssemblyFunction. This is the same way how we implement
InternalFunction. Since WebAssemblyFunction requires WebAssemblyFunctionType for fast checking in Wasm
implementation, we cannot make this JSFunctionType.

2. On the other hand, WebAssemblyWrapperFunction does not require a specific JSType. So this patch
changes JSType of WebAssemblyWrapperFunction to JSFunctionType. JSFunctionType can be usable for derived
classes of JSFunction (e.g. JSCustomGetterSetterFunction).

* wasm/js/WebAssemblyFunction.h:
(JSC::WebAssemblyFunction::signatureIndex const): Deleted.
(JSC::WebAssemblyFunction::wasmEntrypointLoadLocation const): Deleted.
(JSC::WebAssemblyFunction::callableFunction const): Deleted.
(JSC::WebAssemblyFunction::jsEntrypoint): Deleted.
(JSC::WebAssemblyFunction::offsetOfWasmEntrypointLoadLocation): Deleted.
* wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::createStructure):
* wasm/js/WebAssemblyWrapperFunction.h:
(JSC::WebAssemblyWrapperFunction::signatureIndex const): Deleted.
(JSC::WebAssemblyWrapperFunction::wasmEntrypointLoadLocation const): Deleted.
(JSC::WebAssemblyWrapperFunction::callableFunction const): Deleted.
(JSC::WebAssemblyWrapperFunction::function): Deleted.

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

22 months agoimport-w3c-tests modifies test sources and sometimes causes them to fail
cdumez@apple.com [Fri, 13 Oct 2017 02:04:33 +0000 (02:04 +0000)]
import-w3c-tests modifies test sources and sometimes causes them to fail
https://bugs.webkit.org/show_bug.cgi?id=178234

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Resync tests now that they no longer get re-written by the importer.
Most changes are about casing and spacing.

Also note that some tests are now passing and that they have been rebaselined.

* web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html:
* web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html:
* web-platform-tests/IndexedDB/close-in-upgradeneeded.html:
* web-platform-tests/IndexedDB/cursor-overloads.htm:
* web-platform-tests/IndexedDB/idbkeyrange_incorrect.htm:
* web-platform-tests/IndexedDB/key_invalid.htm:
* web-platform-tests/IndexedDB/key_valid.html:
* web-platform-tests/IndexedDB/keyorder.htm:
* web-platform-tests/IndexedDB/keypath.htm:
* web-platform-tests/IndexedDB/keypath_invalid.htm:
* web-platform-tests/IndexedDB/string-list-ordering.htm:
* web-platform-tests/WebIDL/current-realm.html:
* web-platform-tests/css/css-display-3/display-contents-before-after-001.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-before-after-001.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-none.html:
* web-platform-tests/css/css-display-3/display-contents-flex-002-expected.html:
* web-platform-tests/css/css-display-3/display-contents-flex-002.html:
* web-platform-tests/css/css-display-3/display-contents-flex-003-expected.html:
* web-platform-tests/css/css-display-3/display-contents-flex-003.html:
* web-platform-tests/css/css-display-3/display-contents-inline-flex-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-inline-flex-001.html:
* web-platform-tests/css/css-display-3/display-contents-list-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-list-001.html:
* web-platform-tests/css/css-display-3/display-contents-multicol-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-multicol-001.html:
* web-platform-tests/css/css-display-3/display-contents-table-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-table-001.html:
* web-platform-tests/css/css-display-3/display-contents-table-002-expected.html:
* web-platform-tests/css/css-display-3/display-contents-table-002.html:
* web-platform-tests/css/css-display-3/display-flow-root-001-expected.html:
* web-platform-tests/css/css-display-3/display-flow-root-001.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit-expected.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit-with-percentage-expected.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit-with-percentage.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit.html:
* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-021.html:
* web-platform-tests/css/css-grid-1/grid-layout-properties.html:
* web-platform-tests/css/css-grid-1/grid-model/display-grid-expected.html:
* web-platform-tests/css/css-grid-1/grid-model/display-grid.html:
* web-platform-tests/css/css-grid-1/grid-model/display-inline-grid-expected.html:
* web-platform-tests/css/css-grid-1/grid-model/display-inline-grid.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-display-grid-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-display-inline-grid-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-float-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-inline-float-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-inline-vertical-align-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-support-display-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-vertical-align-001.html:
* web-platform-tests/css/css-grid-1/test-plan/index.html:
* web-platform-tests/css/css-pseudo-4/marker-color-expected.html:
* web-platform-tests/css/css-pseudo-4/marker-color.html:
* web-platform-tests/css/css-pseudo-4/marker-font-properties.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-circle-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-ellipse-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-ellipse-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-ellipse-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-inset-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-inset-002.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-001.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-002.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-003.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-004.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-005.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-006.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-007.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-008.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-010.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-011.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-012.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-013.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-014.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-015.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-016.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-017.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-018.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-019.html:
* web-platform-tests/css/css-shapes-1/test-plan/index.html:
* web-platform-tests/css/css-ui-3/cursor-image-001.html:
* web-platform-tests/css/css-ui-3/cursor-image-002.html:
* web-platform-tests/css/css-ui-3/cursor-image-003.html:
* web-platform-tests/css/css-ui-3/cursor-image-004.html:
* web-platform-tests/css/css-ui-3/cursor-image-005-nfs.html:
* web-platform-tests/css/css-ui-3/cursor-image-005.html:
* web-platform-tests/css/css-ui-3/cursor-image-009.html:
* web-platform-tests/css/css-ui-3/cursor-image-012.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-012.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-013.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-027.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-028.html:
* web-platform-tests/css/css-ui-3/resize-015.html:
* web-platform-tests/css/css-ui-3/resize-018.html:
* web-platform-tests/css/css-ui-3/support/cursors/woolly-64.svg:
* web-platform-tests/css/css-ui-3/support/cursors/woolly.svg:
* web-platform-tests/css/css-ui-3/text-overflow-002-expected.html:
* web-platform-tests/css/css-ui-3/text-overflow-004-expected.html:
* web-platform-tests/css/css-ui-3/text-overflow-008.html:
* web-platform-tests/css/css-ui-3/text-overflow-011.html:
* web-platform-tests/css/css-ui-3/text-overflow-012.html:
* web-platform-tests/css/css-ui-3/text-overflow-013.html:
* web-platform-tests/css/css-ui-3/text-overflow-022.html:
* web-platform-tests/css/css-ui-3/text-overflow-023.html:
* web-platform-tests/cssom-view/elementFromPoint.html:
* web-platform-tests/cssom-view/elementsFromPoint.html:
* web-platform-tests/cssom-view/interfaces.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001-expected.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002-expected.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002.html:
* web-platform-tests/cssom/cssom-fontfacerule-constructors.html:
* web-platform-tests/cssom/cssstyledeclaration-csstext.html:
* web-platform-tests/cssom/cssstyledeclaration-mutability.html:
* web-platform-tests/cssom/interfaces.html:
* web-platform-tests/cssom/medialist-interfaces-002.html:
* web-platform-tests/cssom/style-sheet-interfaces-002.html:
* web-platform-tests/cssom/ttwf-cssom-document-extension.html:
* web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html:
* web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html:
* web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
* web-platform-tests/dom/nodes/Document-adoptNode.html:
* web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
* web-platform-tests/dom/nodes/Document-constructor-svg.svg:
* web-platform-tests/dom/nodes/Document-constructor-xml.xml:
* web-platform-tests/dom/nodes/Document-constructor.html:
* web-platform-tests/dom/nodes/Document-doctype.html:
* web-platform-tests/dom/nodes/Document-getElementById.html:
* web-platform-tests/dom/nodes/Element-matches.html:
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html:
* web-platform-tests/dom/nodes/MutationObserver-characterData-expected.txt:
* web-platform-tests/dom/nodes/MutationObserver-characterData.html:
* web-platform-tests/dom/nodes/Node-compareDocumentPosition.html:
* web-platform-tests/dom/nodes/Node-contains.html:
* web-platform-tests/dom/nodes/Node-lookupPrefix.xhtml:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.html:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.xht:
* web-platform-tests/dom/nodes/getElementsByClassName-14.htm:
* web-platform-tests/dom/nodes/getElementsByClassName-28.htm:
* web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html:
* web-platform-tests/dom/traversal/TreeWalker-basic.html:
* web-platform-tests/dom/traversal/TreeWalker-currentNode.html:
* web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject.html:
* web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html:
* web-platform-tests/dom/traversal/TreeWalker-traversal-reject.html:
* web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most.html:
* web-platform-tests/dom/traversal/TreeWalker-traversal-skip.html:
* web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree.html:
* web-platform-tests/encrypted-media/clearkey-check-initdata-type.html:
* web-platform-tests/encrypted-media/clearkey-events-session-closed-event.html:
* web-platform-tests/encrypted-media/clearkey-events.html:
* web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.html:
* web-platform-tests/encrypted-media/clearkey-invalid-license.html:
* web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html:
* web-platform-tests/encrypted-media/clearkey-keystatuses.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.html:
* web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html:
* web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html:
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html:
* web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.html:
* web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.html:
* web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html:
* web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.html:
* web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.html:
* web-platform-tests/encrypted-media/drm-check-initdata-type.html:
* web-platform-tests/encrypted-media/drm-events-session-closed-event.html:
* web-platform-tests/encrypted-media/drm-events.html:
* web-platform-tests/encrypted-media/drm-expiration.html:
* web-platform-tests/encrypted-media/drm-generate-request-disallowed-input.html:
* web-platform-tests/encrypted-media/drm-invalid-license.html:
* web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.html:
* web-platform-tests/encrypted-media/drm-keystatuses.html:
* web-platform-tests/encrypted-media/drm-mp4-onencrypted.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license-events.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary.html:
* web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html:
* web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.html:
* web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html:
* web-platform-tests/encrypted-media/drm-mp4-unique-origin.html:
* web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.html:
* web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html:
* web-platform-tests/encrypted-media/drm-temporary-license-type.html:
* web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-usage-record.html:
* web-platform-tests/encrypted-media/resources/retrieve-persistent-usage-record.html:
* web-platform-tests/eventsource/dedicated-worker/eventsource-close.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-onmesage.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-onopen.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-prototype.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-url.htm:
* web-platform-tests/eventsource/eventsource-constructor-document-domain.htm:
* web-platform-tests/eventsource/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/eventsource-onmessage-trusted.htm:
* web-platform-tests/eventsource/eventsource-prototype.htm:
* web-platform-tests/eventsource/format-leading-space.htm:
* web-platform-tests/eventsource/format-mime-bogus.htm:
* web-platform-tests/eventsource/format-mime-valid-bogus.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-close.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-url-bogus.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-eventtarget.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-onmesage.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-onopen.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-prototype.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-url.htm:
* web-platform-tests/fetch/api/request/multi-globals/url-parsing.html:
* web-platform-tests/fetch/api/resources/basic.html:
* web-platform-tests/fetch/api/response/multi-globals/url-parsing.html:
* web-platform-tests/fetch/api/response/response-trailer.html:
* web-platform-tests/fetch/nosniff/stylesheet.html:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/unset_context_name.html:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/012.html:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-form-submit.html:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/001.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/002.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/003.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/004.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/005.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/006.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/007.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/forward-triggers-hashchange.html:
* web-platform-tests/html/browsers/history/the-history-interface/008.html:
* web-platform-tests/html/browsers/history/the-location-interface/cross_origin_joined_frame.sub.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html:
* web-platform-tests/html/browsers/history/the-location-interface/same_origin_frame.html:
* web-platform-tests/html/browsers/offline/resources/html/clock.html:
* web-platform-tests/html/browsers/origin/cross-origin-objects/frame.html:
* web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_null.tentative.html:
* web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_srcdoc.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-innerheight-innerwidth.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-screenx-screeny.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-top-left.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-width-height.html:
* web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-001.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-002.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-003.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-004.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-005.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-006.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-007.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-008.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-009.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-010.html:
* web-platform-tests/html/dom/interfaces.html:
* web-platform-tests/html/dom/self-origin.sub.html:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/the-lang-attribute-012.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/user-interface/muted.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.canvas.readonly.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.canvas.reference.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.exists.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.shared.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.unique.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.exists.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.extend.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.prototype.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.replace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.arguments.missing.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.casesensitive.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.emptystring.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.badname.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.badsuffix.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.nullsuffix.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.unicode.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/fallback.basic.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/fallback.multiple.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/fallback.nested.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.colour.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.2dstate.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.clip.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.different.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.gradient.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.path.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.pattern.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.same.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.transform.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.dataURI.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.default.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.idl.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.idl.set.zero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.decimal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.em.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.empty.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.exp.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.hex.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.junk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.minus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.octal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.onlyspace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.percent.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.plus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.space.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.trailingjunk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.zero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.reflect.setcontent.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.reflect.setidl.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.reflect.setidlzero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.removed.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.decimal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.em.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.empty.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.exp.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.hex.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.junk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.minus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.octal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.onlyspace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.percent.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.plus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.space.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.trailingjunk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.zero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.style.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.1.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.2.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.3.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.bogustype.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.default.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.alpha.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.primarycolours.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.quality.basic.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.quality.notnumber.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.quality.outsiderange.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpg.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.lowercase.ascii.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.lowercase.unicode.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.nocontext.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.png.complexcolours.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.png.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.png.primarycolours.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.unrecognised.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.zeroheight.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.zerosize.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.zerowidth.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.delete.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.exists.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.extend.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.name.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.prototype.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.replace.html:
* web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/adoption.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/non-active-document.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set.html:
* web-platform-tests/html/semantics/forms/form-control-infrastructure/form.html:
* web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter.html:
* web-platform-tests/html/semantics/forms/the-form-element/form-nameditem.html:
* web-platform-tests/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html:
* web-platform-tests/html/semantics/interactive-elements/the-details-element/details.html:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-iframe.sub.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/load-error-events-1.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/load-error-events-2.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-01.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-02.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-type-and-language-empty.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-type-and-language-with-params.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/checked.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/enabled.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly.html:
* web-platform-tests/html/semantics/tabular-data/processing-model-1/span-limits.html:
* web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.text-getter-01.html:
* web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.text-setter-01.html:
* web-platform-tests/html/semantics/text-level-semantics/the-time-element/001.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-001.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-007.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-009.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-016.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-018.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-030.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-034.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-037.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-038.html:
* web-platform-tests/html/syntax/parsing/Element.getElementsByTagName-foreign-02.html:
* web-platform-tests/html/syntax/parsing/math-parse03.html:
* web-platform-tests/html/syntax/parsing/named-character-references.html:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
* web-platform-tests/html/webappapis/atob/base64.html:
* web-platform-tests/html/webappapis/scripting/events/eventhandler-cancellation.html:
* web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-body-onerror.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error.html:
* web-platform-tests/media-source/mediasource-activesourcebuffers.html:
* web-platform-tests/media-source/mediasource-addsourcebuffer.html:
* web-platform-tests/media-source/mediasource-append-buffer.html:
* web-platform-tests/media-source/mediasource-appendbuffer-quota-exceeded.html:
* web-platform-tests/media-source/mediasource-appendwindow.html:
* web-platform-tests/media-source/mediasource-attach-stops-delaying-load-event.html:
* web-platform-tests/media-source/mediasource-avtracks.html:
* web-platform-tests/media-source/mediasource-buffered.html:
* web-platform-tests/media-source/mediasource-closed.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-a-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-av-audio-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-av-video-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-v-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-v-framerate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize.html:
* web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-av-audio-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-av-framesize.html:
* web-platform-tests/media-source/mediasource-config-change-webm-av-video-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-v-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-v-framerate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html:
* web-platform-tests/media-source/mediasource-detach.html:
* web-platform-tests/media-source/mediasource-duration-boundaryconditions.html:
* web-platform-tests/media-source/mediasource-duration.html:
* web-platform-tests/media-source/mediasource-endofstream-invaliderror.html:
* web-platform-tests/media-source/mediasource-errors.html:
* web-platform-tests/media-source/mediasource-getvideoplaybackquality.html:
* web-platform-tests/media-source/mediasource-is-type-supported.html:
* web-platform-tests/media-source/mediasource-liveseekable.html:
* web-platform-tests/media-source/mediasource-multiple-attach.html:
* web-platform-tests/media-source/mediasource-play-then-seek-back.html:
* web-platform-tests/media-source/mediasource-play.html:
* web-platform-tests/media-source/mediasource-preload.html:
* web-platform-tests/media-source/mediasource-redundant-seek.html:
* web-platform-tests/media-source/mediasource-remove.html:
* web-platform-tests/media-source/mediasource-removesourcebuffer.html:
* web-platform-tests/media-source/mediasource-seek-beyond-duration.html:
* web-platform-tests/media-source/mediasource-seek-during-pending-seek.html:
* web-platform-tests/media-source/mediasource-seekable.html:
* web-platform-tests/media-source/mediasource-sequencemode-append-buffer.html:
* web-platform-tests/media-source/mediasource-sourcebuffer-mode.html:
* web-platform-tests/media-source/mediasource-sourcebuffer-trackdefaults.html:
* web-platform-tests/media-source/mediasource-sourcebufferlist.html:
* web-platform-tests/media-source/mediasource-timestamp-offset.html:
* web-platform-tests/media-source/mediasource-trackdefault.html:
* web-platform-tests/media-source/mediasource-trackdefaultlist.html:
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html:
* web-platform-tests/resource-timing/resource-timing.html:
* web-platform-tests/resource-timing/resources/resource_timing_test0.xml:
* web-platform-tests/resources/test/tests/iframe-consolidate-errors.html:
* web-platform-tests/resources/test/tests/iframe-consolidate-tests.html:
* web-platform-tests/resources/test/tests/iframe-msg.html:
* web-platform-tests/service-workers/service-worker/fetch-response-taint.https.html:
* web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https.html:
* web-platform-tests/service-workers/service-worker/multiple-update.https.html:
* web-platform-tests/service-workers/service-worker/resources/appcache-ordering.is-appcached.html:
* web-platform-tests/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html:
* web-platform-tests/service-workers/service-worker/update-after-oneday.https.html:
* web-platform-tests/service-workers/stub-3.1-service-worker-obj.html:
* web-platform-tests/service-workers/stub-3.1.1-service-worker-scope.html:
* web-platform-tests/service-workers/stub-3.1.2-service-worker-url.html:
* web-platform-tests/service-workers/stub-3.1.3-service-worker-state.html:
* web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change.html:
* web-platform-tests/service-workers/stub-3.2-navigator-service-worker.html:
* web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing.html:
* web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange.html:
* web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage.html:
* web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror.html:
* web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting.html:
* web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active.html:
* web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller.html:
* web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready.html:
* web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll.html:
* web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register.html:
* web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister.html:
* web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound.html:
* web-platform-tests/service-workers/stub-4.1-service-worker-global-scope.html:
* web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches.html:
* web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients.html:
* web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope.html:
* web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch.html:
* web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update.html:
* web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister.html:
* web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage.html:
* web-platform-tests/service-workers/stub-4.2-client.html:
* web-platform-tests/service-workers/stub-4.3-service-worker-clients.html:
* web-platform-tests/service-workers/stub-4.3.1-get-serviced-method.html:
* web-platform-tests/service-workers/stub-4.3.2-reloadall-method.html:
* web-platform-tests/service-workers/stub-4.5-response-objects.html:
* web-platform-tests/service-workers/stub-4.5.2-response.html:
* web-platform-tests/service-workers/stub-4.5.4-opaque-response.html:
* web-platform-tests/service-workers/stub-4.6-cache-objects.html:
* web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes.html:
* web-platform-tests/service-workers/stub-4.6.3-cache-storage.html:
* web-platform-tests/service-workers/stub-4.7.1-install-phase-event.html:
* web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method.html:
* web-platform-tests/service-workers/stub-4.7.2-install-event.html:
* web-platform-tests/service-workers/stub-4.7.2.1-install-event-section.html:
* web-platform-tests/service-workers/stub-4.7.2.2-replace-method.html:
* web-platform-tests/service-workers/stub-4.7.3-activate-event.html:
* web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section.html:
* web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method.html:
* web-platform-tests/service-workers/stub-4.7.4.3-default-method.html:
* web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute.html:
* web-platform-tests/service-workers/stub-5.1-origin-relativity.html:
* web-platform-tests/service-workers/stub-5.2-cross-origin-resources.html:
* web-platform-tests/shadow-dom/leaktests/get-elements.html:
* web-platform-tests/tools/pywebsocket/src/example/arraybuffer_benchmark.html:
* web-platform-tests/tools/pywebsocket/src/example/benchmark.html:
* web-platform-tests/tools/pywebsocket/src/example/console.html:
* web-platform-tests/tools/pywebsocket/src/example/eventsource.html:
* web-platform-tests/tools/pywebsocket/src/example/xhr_benchmark.html:
* web-platform-tests/tools/pywebsocket/src/example/xhr_event_logger.html:
* web-platform-tests/url/a-element-origin-xhtml.xhtml:
* web-platform-tests/url/a-element-origin.html:
* web-platform-tests/url/a-element-xhtml.xhtml:
* web-platform-tests/url/a-element.html:
* web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html:
* web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates.html:
* web-platform-tests/webrtc/RTCPeerConnection-idl.html:
* web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor.html:
* web-platform-tests/webrtc/datachannel-emptystring.html:
* web-platform-tests/webrtc/datachannel-idlharness.html:
* web-platform-tests/webrtc/getstats.html:
* web-platform-tests/webrtc/no-media-call.html:
* web-platform-tests/webrtc/promises-call.html:
* web-platform-tests/webrtc/simplecall.html:

Tools:

Update import-w3c-tests to stop rewriting tests as this is causing some tests
to fail unexpectedly.

* Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.import_tests):

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

22 months agoUse asynchronous ResourceHandleClient calls for WebKit1
achristensen@apple.com [Fri, 13 Oct 2017 01:55:24 +0000 (01:55 +0000)]
Use asynchronous ResourceHandleClient calls for WebKit1
https://bugs.webkit.org/show_bug.cgi?id=160677

Reviewed by Brady Eidson.

Source/WebCore:

Covered by existing tests.

* PlatformAppleWin.cmake:
* PlatformMac.cmake:
* WebCore.xcodeproj/project.pbxproj:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestAsync):
(WebCore::ResourceLoader::didReceiveResponseAsync):
(WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
* loader/ResourceLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveResponseAsync):
(WebCore::ApplicationCacheGroup::willSendRequestAsync):
(WebCore::ApplicationCacheGroup::canAuthenticateAgainstProtectionSpaceAsync):
(WebCore::ApplicationCacheGroup::didReceiveResponse): Deleted.
* loader/appcache/ApplicationCacheGroup.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::continueDidReceiveResponse):
(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):
* platform/network/PingHandle.h:
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::didReceiveResponse):
(WebCore::ResourceHandle::usesAsyncCallbacks): Deleted.
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::~ResourceHandleClient):
(WebCore::ResourceHandleClient::willSendRequest): Deleted.
(WebCore::ResourceHandleClient::willSendRequestAsync): Deleted.
(WebCore::ResourceHandleClient::didReceiveResponseAsync): Deleted.
(WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandleClient::didReceiveResponse): Deleted.
(WebCore::ResourceHandleClient::usesAsyncCallbacks): Deleted.
(WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpace): Deleted.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::willSendRequestAsync):
(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpaceAsync):
(WebCore::SynchronousLoaderClient::didReceiveResponseAsync):
(WebCore::SynchronousLoaderClient::didFinishLoading):
(WebCore::SynchronousLoaderClient::didFail):
(WebCore::SynchronousLoaderClient::willSendRequest): Deleted.
(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpace): Deleted.
(WebCore::SynchronousLoaderClient::didReceiveResponse): Deleted.
* platform/network/SynchronousLoaderClient.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::ResourceHandleCFURLConnectionDelegateWithOperationQueue):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::releaseHandle):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp: Removed.
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h: Removed.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::schedule):
(WebCore::ResourceHandle::makeDelegate):
(WebCore::ResourceHandle::delegate):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillCacheResponse):
(WebCore::ResourceHandle::shouldUseCredentialStorage): Deleted.
* platform/network/mac/WebCoreResourceHandleAsDelegate.h: Removed.
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Removed.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didFailWithError:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::createPingHandle):

LayoutTests:

* TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/wk2/TestExpectations:

http/tests/cache/iframe-304-crash.html used to deterministically record its didFinishLoading callback,
but only for WK1.  It was marked as flaky for all WK2 ports.  It is now flaky in WK1 because the order
of the testRunner.notifyDone call and the didFinishLoading logging is no longer deterministic with
asynchronous loading, but the test still verifies that there is no crash.

http/tests/security/cross-origin-modal-dialog-base.html does navigation during showModalDialog, which
probably should've never worked in WK1 and never worked in WK2.  WK1 behavior now matches WK2 behavior.
I'm not aware of any complaints about no navigation working during showModalDialog in WK2 and I imagine
nobody will be regressed by this change, but if we do find such a problem, creative use of MessageQueues
like we do with sync xhr in WK1 now could theoretically fix the problem, but we are trying to get
rid of showModalDialog anyway.  The test was written to verify that the SecurityOrigin doesn't fall back
to the wrong origin, and it certainly doesn't now.

These tests dump load delegate call order, which are less deterministic now but the tests still behave correctly.
http/tests/svg/svg-use-external.html
http/tests/loading/text-content-type-with-binary-extension.html
http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html

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

22 months agoRemove unnecessary includes in WebKit
achristensen@apple.com [Fri, 13 Oct 2017 01:10:13 +0000 (01:10 +0000)]
Remove unnecessary includes in WebKit
https://bugs.webkit.org/show_bug.cgi?id=178235

Reviewed by Tim Horton.

* Platform/IPC/ArgumentCoders.h:
* WebProcess/WebProcess.cpp:
* WebProcess/WebStorage/StorageAreaImpl.h:

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

22 months agoIncrement ContentRuleListStore::CurrentContentRuleListFileVersion
achristensen@apple.com [Fri, 13 Oct 2017 01:04:35 +0000 (01:04 +0000)]
Increment ContentRuleListStore::CurrentContentRuleListFileVersion
https://bugs.webkit.org/show_bug.cgi?id=178246
<rdar://problem/34890057>

Reviewed by Tim Horton.

* UIProcess/API/APIContentRuleListStore.h:
Things are crashing.  Something isn't binary reverse compatible.
Probably something related to r222602.
This is why we have a version number to update.

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

22 months agoWeb Inspector: Switch Clear navigation item back to the Trash icon (Console, Timeline...
commit-queue@webkit.org [Fri, 13 Oct 2017 00:47:51 +0000 (00:47 +0000)]
Web Inspector: Switch Clear navigation item back to the Trash icon (Console, Timelines, Network)
https://bugs.webkit.org/show_bug.cgi?id=178244
<rdar://problem/34966525>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-12
Reviewed by Brian Burg.

* UserInterface/Images/NavigationItemClear.svg: Removed.
* UserInterface/Images/gtk/NavigationItemClear.svg: Removed.
* UserInterface/Views/LogContentView.js:
(WI.LogContentView):
* UserInterface/Views/NetworkGridContentView.js:
(WI.NetworkGridContentView):
* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
* UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView):
Many users found the new Clear icon confusing. Revert to the Trash icon.

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

22 months agoExpose some of WKView's WebViewImpl accessors through WKWebViewPrivate
achristensen@apple.com [Fri, 13 Oct 2017 00:41:45 +0000 (00:41 +0000)]
Expose some of WKView's WebViewImpl accessors through WKWebViewPrivate
https://bugs.webkit.org/show_bug.cgi?id=178240
<rdar://problem/34962720>

Reviewed by Tim Horton.

Also renamed createFullScreenWindow to fullScreenWindow to reflect the fact that it returns
an autoreleased NSWindow so we don't make the same naming mistake in the WKWebView SPI.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _dismissContentRelativeChildWindows]):
(-[WKWebView _setFrame:andScrollBy:]):
(-[WKWebView _setTotalHeightOfBanners:]):
(-[WKWebView _totalHeightOfBanners]):
(-[WKWebView _beginDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChangesSync]):
(-[WKWebView _gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setCustomSwipeViews:]):
(-[WKWebView _setCustomSwipeViewsTopContentInset:]):
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]):
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView _fullScreenWindow]):
(-[WKWebView _disableFrameSizeUpdates]):
(-[WKWebView _enableFrameSizeUpdates]):
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _underlayColor]):
(-[WKWebView _setUnderlayColor:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView createFullScreenWindow]):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::fullScreenWindowController):
(WebKit::WebViewImpl::fullScreenWindow):
(WebKit::WebViewImpl::createFullScreenWindow): Deleted.

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

22 months agoAdd Expected, HashMap, HashSet, and SHA1 to wtf/Forward.h
achristensen@apple.com [Fri, 13 Oct 2017 00:39:55 +0000 (00:39 +0000)]
Add Expected, HashMap, HashSet, and SHA1 to wtf/Forward.h
https://bugs.webkit.org/show_bug.cgi?id=178243

Reviewed by Tim Horton.

* wtf/Forward.h:
* wtf/HashMap.h:
Move default parameters to Forward.h like we did with Vector.
* wtf/HashSet.h:
Also fix indentation.

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

22 months agoLayout Test http/tests/cache-storage/cache-clearing.https.html is failing
commit-queue@webkit.org [Fri, 13 Oct 2017 00:36:07 +0000 (00:36 +0000)]
Layout Test http/tests/cache-storage/cache-clearing.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=178200

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-12
Reviewed by Chris Dumez.

Source/WebKit:

Deleting only the per-origin folders inside the CacheStorage engine root folder.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::clearAllCaches):
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllFetchCaches):
(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

Making clearDOMCache wait for removal completion to exit.
This removes the risk to interact with the cache while deleting it which will end up be racy in tests.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::clearDOMCache):
* WebKitTestRunner/TestController.cpp:
(WTR::ClearDOMCacheCallbackContext::ClearDOMCacheCallbackContext):
(WTR::clearDOMCacheCallback):
(WTR::TestController::clearDOMCache):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Splitting cache-clearing.https.html in two sub tests and marking them as Pass/Timeout for the moment.

* platform/win/TestExpectations: Skipping cache/sw tests.
* TestExpectations:
* http/tests/cache-storage/cache-clearing.https.html: Removed.
* http/tests/cache-storage/cache-clearing-all.https-expected.txt: Added.
* http/tests/cache-storage/cache-clearing-all.https.html: Added.
* http/tests/cache-storage/cache-clearing-origin.https-expected.txt: Added.
* http/tests/cache-storage/cache-clearing-origin.https.html: Added.

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

22 months ago[Mac] Add support for MouseEvent.buttons
cdumez@apple.com [Fri, 13 Oct 2017 00:24:21 +0000 (00:24 +0000)]
[Mac] Add support for MouseEvent.buttons
https://bugs.webkit.org/show_bug.cgi?id=178214

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

* web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:

Source/WebCore:

Add support for MouseEvent.buttons on Mac as per:
- https://www.w3.org/TR/uievents/#ref-for-dom-mouseevent-buttons-1

This is supported by Firefox and Chrome already.

No new tests, rebaselined existing test.

* dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
* dom/MouseEvent.h:
(WebCore::MouseEvent::buttons const):
* dom/MouseEvent.idl:
* dom/MouseEventInit.h:
* dom/MouseEventInit.idl:
* dom/SimulatedClick.cpp:
* dom/WheelEvent.cpp:
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent):
* platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::buttons const):
* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::currentlyPressedMouseButtons):
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):

Source/WebKit:

* Shared/WebEvent.h:
(WebKit::WebMouseEvent::buttons const):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode const):
(WebKit::WebMouseEvent::decode):
* Shared/mac/WebEventFactory.mm:
(WebKit::currentlyPressedMouseButtons):
(WebKit::WebEventFactory::createWebMouseEvent):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::showContextMenuAtPoint):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::createWebEvent const):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):

Source/WebKitLegacy/mac:

* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

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

22 months agoAdd API to clean CacheStorage data
commit-queue@webkit.org [Fri, 13 Oct 2017 00:19:48 +0000 (00:19 +0000)]
Add API to clean CacheStorage data
https://bugs.webkit.org/show_bug.cgi?id=178034

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-12

* Shared/WebsiteData/WebsiteDataType.h: fixing the DOMCache value.

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

22 months ago[WinCairo] add WebProcess files for wincairo webkit
commit-queue@webkit.org [Thu, 12 Oct 2017 22:36:55 +0000 (22:36 +0000)]
[WinCairo] add WebProcess files for wincairo webkit
https://bugs.webkit.org/show_bug.cgi?id=178024

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-10-12
Reviewed by Alex Christensen.

* PlatformWin.cmake:
* WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Added.
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
(WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
* WebProcess/InjectedBundle/win/InjectedBundleWin.cpp: Added.
(WebKit::InjectedBundle::initialize):
(WebKit::InjectedBundle::setBundleParameter):
(WebKit::InjectedBundle::setBundleParameters):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
* WebProcess/Plugins/Netscape/win/PluginProxyWin.cpp: Added.
(WebKit::PluginProxy::needsBackingStore const):
* WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp: Added.
(WebKit::WebContextMenuClient::lookUpInDictionary):
(WebKit::WebContextMenuClient::isSpeaking):
(WebKit::WebContextMenuClient::speak):
(WebKit::WebContextMenuClient::stopSpeaking):
* WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.cpp: Added.
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
(WebKit::WebFrameNetworkingContext::WebFrameNetworkingContext):
(WebKit::WebFrameNetworkingContext::storageSession const):
(WebKit::WebFrameNetworkingContext::webFrameLoaderClient const):
(WebKit::WebFrameNetworkingContext::blockedError const):
* WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.h: Added.
(WebKit::WebFrameNetworkingContext::create):
* WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Added.
(WebKit::WebPopupMenu::setUpPlatformData):
* WebProcess/WebPage/win/WebInspectorUIWin.cpp: Added.
(WebKit::WebInspectorUI::canSave):
(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):
* WebProcess/WebPage/win/WebPageWin.cpp: Added.
(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformDetach):
(WebKit::WebPage::platformEditorState const):
(WebKit::WebPage::platformPreferencesDidChange):
(WebKit::WebPage::performDefaultBehaviorForKeyEvent):
(WebKit::WebPage::platformHasLocalDataForURL):
(WebKit::WebPage::cachedResponseMIMETypeForURL):
(WebKit::WebPage::platformCanHandleRequest):
(WebKit::WebPage::cachedSuggestedFilenameForURL):
(WebKit::WebPage::cachedResponseDataForURL):
(WebKit::WebPage::platformUserAgent const):
(WebKit::WebPage::interpretKeyEvent):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureWebToStorageProcessConnection):
* WebProcess/win/WebProcessWin.cpp: Added.
(loadResourceIntoBuffer):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformTerminate):
(WebKit::WebProcess::platformSetCacheModel):

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

22 months ago[iOS] Fix -Wunused-lambda-capture warnings in WebCore/WebKit with new clang compiler
ddkilzer@apple.com [Thu, 12 Oct 2017 21:44:05 +0000 (21:44 +0000)]
[iOS] Fix -Wunused-lambda-capture warnings in WebCore/WebKit with new clang compiler
<https://webkit.org/b/178226>

Reviewed by Chris Fleizach.

Source/WebCore:

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
- Remove unused lambda variable 'self'.

Source/WebKit:

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:withFlags:]):
- Remove unused lambda variable 'touch' which was also passed as
  an argument.
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
- Remove unused lambda variable 'gestureState' which was also
  passed as an argument.
(-[WKContentView _simulateLongPressActionAtLocation:]):
- Remove unused lambda variable 'location'.

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

22 months agoMark more InlineBox member functions as const
dbates@webkit.org [Thu, 12 Oct 2017 21:38:04 +0000 (21:38 +0000)]
Mark more InlineBox member functions as const
https://bugs.webkit.org/show_bug.cgi?id=178217

Reviewed by Andy Estes.

* rendering/InlineBox.cpp:
(WebCore::InlineBox::locationIncludingFlipping const): Mark as const. Also fix some style
nits while I am here.
(WebCore::InlineBox::flipForWritingMode const): Mark as const.
(WebCore::InlineBox::locationIncludingFlipping): Deleted.
(WebCore::InlineBox::flipForWritingMode): Deleted.
* rendering/InlineBox.h:

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

22 months agoTeach InlineTextBox::clampOffset() about combined text and hyphenation
dbates@webkit.org [Thu, 12 Oct 2017 21:31:36 +0000 (21:31 +0000)]
Teach InlineTextBox::clampOffset() about combined text and hyphenation
https://bugs.webkit.org/show_bug.cgi?id=178032

Reviewed by Zalan Bujtas.

Treat combined text and the last character of a word halve plus hyphen as single units.

With regards to combined text, ideally we would allow arbitrary selection inside combined
text. Currently we do not support selection of combined text. To simplify the process of
adding support for selecting combined text we treat combined text as a single unit. Once
we are confident that we correctly implemented such support we can re-evaluate allowing
arbitrary selection of combined text.

With regards to treating the last character of a word halve plus hyphen as a single unit.
This patch extends the targeted fix made for document markers in r223013 to all code that
makes use of clamped offsets as a result the selection rect for inline boxes more accurately
reflect the rectangle(s) that make up the painted selection. This is a step towards reconciling
the difference between the computation of the rectangle that represents an arbitrary
selection and the code that paints the active selection as part of <https://bugs.webkit.org/show_bug.cgi?id=138913>.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect const): Compute text run, including combined text
or hyphens due to line wrapping now that specified start and end positions are clamped with
respect to combined text and hyphens (computed earlier in this function). Only measure the
text represented by the selection if the start position > 0 or the end position is not equal
to the length of the run.
(WebCore::InlineTextBox::paint): Remove unnecessary code to fix up the selection start and
end positions based on the truncation offset as this is done by clampedOffset(), called by
selectionStartEnd().
(WebCore::InlineTextBox::clampedOffset const): Modified to adjust the clamped offset with
respect to truncation as well as treat combined text or a trailing word halve plus hyphen
as single units. Assert that we are not fully truncated because it does not make sense to
be computing the clamped offset in such a situation since nothing should be painted.
(WebCore::InlineTextBox::selectionStartEnd const): Modified to compute the end of an inside
selection using clampedOffset() to account for truncation, combined text or a hyphen. We
already are using clampedOffset() when computing the start and end position for all other
selection states.
(WebCore::InlineTextBox::paintSelection): Compute text run, including combined text
or hyphens due to line wrapping now that specified start and end positions are clamped with
respect to combined text and hyphens (computed earlier in this function). Remove unnecessary
code to adjust selection end point with respect to truncation, combined text, or an added
hyphen now that selectionStartEnd() takes care of this (via clampedOffset()).
(WebCore::InlineTextBox::paintTextSubrangeBackground): Compute text run, including combined
text or hyphens due to line wrapping now that specified start and end positions are clamped
with respect to combined text and hyphens (computed earlier in this function).
(WebCore::InlineTextBox::paintDocumentMarker): Compute text run, including combined text now
that specified start and end positions are clamped with respect to combined text (computed earlier in this function).
Also remove unnecessary code to adjust end offset of the marker with respect to truncation
and length of the text run as clampedOffset() now does this for us.

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

22 months agoAdd CompletionHandler and HashCountedSet to wtf/Forward.h
achristensen@apple.com [Thu, 12 Oct 2017 21:29:29 +0000 (21:29 +0000)]
Add CompletionHandler and HashCountedSet to wtf/Forward.h
https://bugs.webkit.org/show_bug.cgi?id=178231

Reviewed by Tim Horton.

* wtf/Forward.h:
* wtf/HashCountedSet.h:

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

22 months agoMark some xhtml tests as failing on Windows.
pvollan@apple.com [Thu, 12 Oct 2017 21:16:59 +0000 (21:16 +0000)]
Mark some xhtml tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178230

Unreviewed test gardening.

* platform/win/TestExpectations:

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

22 months agoDon't assert if mix-blend-mode is set to a non-separable blend mode on a composited...
simon.fraser@apple.com [Thu, 12 Oct 2017 21:12:36 +0000 (21:12 +0000)]
Don't assert if mix-blend-mode is set to a non-separable blend mode on a composited layer
https://bugs.webkit.org/show_bug.cgi?id=178196
rdar://problem/34942337

Reviewed by Dan Bates.

Source/WebCore:

Core Animation doesn't support non-separable blend modes (hue, saturation, color, luminosity)
on layers, but don't assert if we try to use them.

Test: compositing/filters/blend-mode-saturation.html

* platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(PlatformCAFilters::setBlendingFiltersOnLayer):

LayoutTests:

* compositing/filters/blend-mode-saturation-expected.txt: Added.
* compositing/filters/blend-mode-saturation.html: Added.

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

22 months agoResourceLoadObserver::logFrameNavigation() should use redirectResponse.url()
wilander@apple.com [Thu, 12 Oct 2017 20:13:00 +0000 (20:13 +0000)]
ResourceLoadObserver::logFrameNavigation() should use redirectResponse.url()
https://bugs.webkit.org/show_bug.cgi?id=175257
<rdar://problem/33359866>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch was joint work between Michael Specter and John Wilander.

Tests: http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
    Now sends redirectResponse.url() to WebCore::ResourceLoadObserver::logFrameNavigation().
* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::logFrameNavigation):
    Now receives the redirect response URL from WebCore::DocumentLoader().
(WebCore::ResourceLoadObserver::nonNullOwnerURL const):
    New function to traverse the frame chain upward and find the first non-null URL.
* loader/ResourceLoadObserver.h:

Source/WebKit:

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsSubFrameUnder:topFrameHost:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsRedirectingTo:hostRedirectedTo:completionHandler:]):
    Test infrastructure.
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo):
    Test infrastructure.
* UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
    Not implemented.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
    Not implemented.
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
    Implemented platform-specific.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
    Implemented platform-specific.

LayoutTests:

* TestExpectations:
    Marked new directory as [ Skip ] since these are WK2-only.
* http/tests/resourceLoadStatistics: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/resources: Added.
* http/tests/resourceLoadStatistics/resources/iframe-report-back-loaded.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/resources/redirect.php: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* platform/gtk/TestExpectations:
    Marked new directory as [ Skip ].
* platform/wk2/TestExpectations:
    Marked new directory as [ Pass ].
* platform/wpe/TestExpectations:
    Marked new directory as [ Skip ].

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

22 months agoMarked imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation...
jlewis3@apple.com [Thu, 12 Oct 2017 20:01:35 +0000 (20:01 +0000)]
Marked imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=177547

Unreviewed test gardening.

* platform/ios/TestExpectations:

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

22 months ago[Win64] JSC compile error.
pvollan@apple.com [Thu, 12 Oct 2017 19:24:02 +0000 (19:24 +0000)]
[Win64] JSC compile error.
https://bugs.webkit.org/show_bug.cgi?id=178213

Reviewed by Alex Christensen.

Add static cast from int64 to uintptr_t.

* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):

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

22 months ago[iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS...
aestes@apple.com [Thu, 12 Oct 2017 19:12:04 +0000 (19:12 +0000)]
[iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices
https://bugs.webkit.org/show_bug.cgi?id=178181
<rdar://problem/33660282>

Reviewed by Dan Bernstein.

Source/WebKit:

* Configurations/BaseTarget.xcconfig:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::serviceName):
* WebKit.xcodeproj/project.pbxproj:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::databaseProcessName):

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

22 months agoEmit SPIR-V from WSL compiler (Part 1)
mmaxfield@apple.com [Thu, 12 Oct 2017 18:45:04 +0000 (18:45 +0000)]
Emit SPIR-V from WSL compiler (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=177998

Reviewed by Filip Pizlo.

This patch implements the first half of a SPIR-V codegen phase for WSL.
This includes all the operations which aren't actually emitting the contents
of functions themselves. For example, this includes things like representing
WSL types with SPIR-V types, and declaring shaders' inputs and outputs. A
future patch will actually emit the contents of functions.

There are two helper visitors here: SPIRVTypeAnalyzer which generates SPIR-V
types from WSL types, and SPIRVPrimitiveVariableAnalyzer which identifies
input and output variables from a shader (and assigns location values to
each one).

This patch is currently pursuing the "logical mode" detailed in
https://bugs.webkit.org/show_bug.cgi?id=176967. In this mode, each pointer and
array reference operation can be statically traced to the variable or array it
is operating on.

This has the interesting property where accessing a pointer inside an array is
forbidden, because the array index may be computed at runtime, so the compiler
can't know at compile time which variable the pointer operation will be
accessing. However, this isn't true for structs; the program must statically
state which struct member it is accessing. Therefore, pointers or array
references must not transitively appear within an array, but they may appear
within a struct. The same logic applies to array references; those get lowered
to just two indexes in SPIR-V (a lower bound and an upper bound).

So, outside of an array, SPIR-V types don't need to include any pointers because
any operation with the pointer doesn't need access to the runtime value of the
pointer. Inside of an array, pointers are forbidden. Therefore, SPIR-V types
will never include any pointers.

This means that, for example, WSL can represent a linked list in logical mode.
However, a WSL program cannot iterate across the list, because that would require
assigning to a pointer. So instead, a program using a linked list could only say
something like "list.ptr->ptr->ptr->value".

* WebGPUShadingLanguageRI/LateChecker.js:
(LateChecker.prototype._checkShaderType):
* WebGPUShadingLanguageRI/SPIR-V.js:
(SPIRV.OperandChecker.prototype._isStar):
(SPIRV.OperandChecker.prototype.nextComparisonType):
(SPIRV.OperandChecker.prototype.finalize):
(SPIRV.OperandChecker):
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/SPIRVCodegen.js: Added.
(findEntryPoints):
(emitTypes.doEmitTypes):
(emitTypes):
(ConstantFinder.prototype.visitGenericLiteralType):
(ConstantFinder):
(generateSPIRV):
* WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js: Added.
(SPIRVTypeAnalyzer):
(SPIRVTypeAnalyzer.prototype.get program):
(SPIRVTypeAnalyzer.prototype.get typeMap):
(SPIRVTypeAnalyzer.prototype.get currentId):
(SPIRVTypeAnalyzer.prototype.get stack):
(SPIRVTypeAnalyzer.prototype.visitTypeRef):
(SPIRVTypeAnalyzer.prototype._encounterType):
(SPIRVTypeAnalyzer.prototype.visitNullType):
(SPIRVTypeAnalyzer.prototype.visitGenericLiteralType):
(SPIRVTypeAnalyzer.prototype.visitNativeType):
(SPIRVTypeAnalyzer.prototype.visitEnumType):
(SPIRVTypeAnalyzer.prototype.visitPtrType):
(SPIRVTypeAnalyzer.prototype.visitArrayRefType):
(SPIRVTypeAnalyzer.prototype.visitArrayType):
(SPIRVTypeAnalyzer.prototype.visitStructType):
* WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js: Added.
(SPIRVPrimitiveVariableAnalyzer):
(SPIRVPrimitiveVariableAnalyzer.prototype.get program):
(SPIRVPrimitiveVariableAnalyzer.prototype.get typeMap):
(SPIRVPrimitiveVariableAnalyzer.prototype.get currentId):
(SPIRVPrimitiveVariableAnalyzer.prototype.get currentLocation):
(SPIRVPrimitiveVariableAnalyzer.prototype.get nameComponents):
(SPIRVPrimitiveVariableAnalyzer.prototype.get result):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitTypeRef):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitNullType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitGenericLiteralType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitNativeType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitEnumType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitPtrType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayRefType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitStructType):
* WebGPUShadingLanguageRI/WSL.md:
* WebGPUShadingLanguageRI/index.html:

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

22 months agoEdited expectations for http/tests/media/video-buffered-range-contains-currentTime...
jlewis3@apple.com [Thu, 12 Oct 2017 18:29:23 +0000 (18:29 +0000)]
Edited expectations for http/tests/media/video-buffered-range-contains-currentTime.html.
https://bugs.webkit.org/show_bug.cgi?id=177616

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

22 months agoCacheStorage persistent folder should be in /Library/Cache
commit-queue@webkit.org [Thu, 12 Oct 2017 18:26:33 +0000 (18:26 +0000)]
CacheStorage persistent folder should be in /Library/Cache
https://bugs.webkit.org/show_bug.cgi?id=178193

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

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultCacheStorageDirectory): Making CacheStorage
directory a subfolder of Caches folder.
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::ensureNetworkProcess): Make sure the web site data store
has the right cache directory path. Also make sure that the quota is set even if there is no folder specified.
Quota may still be useful in case of non persistent sessions.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
* UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::defaultCacheStorageDirectory):

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

22 months ago[Win] Build fix after r223206
mmaxfield@apple.com [Thu, 12 Oct 2017 18:21:05 +0000 (18:21 +0000)]
[Win] Build fix after r223206
https://bugs.webkit.org/show_bug.cgi?id=171523

Unreviewed.

* pal/PlatformWin.cmake:
* pal/win/LoggingWin.cpp: Added.
(PAL::logLevelString):

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

22 months agoUse less specific cast in ScrollingTree::scrollPositionChangedViaDelegatedScrolling
fred.wang@free.fr [Thu, 12 Oct 2017 17:42:12 +0000 (17:42 +0000)]
Use less specific cast in ScrollingTree::scrollPositionChangedViaDelegatedScrolling
https://bugs.webkit.org/show_bug.cgi?id=178211

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-12
Reviewed by Simon Fraser.

No new tests, behavior is not changed.

ScrollingTree::scrollPositionChangedViaDelegatedScrolling is a generic function that applies
to scrolling nodes. Casting to more specific ScrollingTreeOverflowScrollingNodes is however
not necessary to implement it. This patch moves to the least specific cast necessary so that
this function will be usable for async scrolling of non-main frames in the future. Note that
the function is currently only called from ScrollingTreeScrollingNodeDelegateIOS which in
turn is only used by the ScrollingTreeScrollingOverflowNodeIOS class and so code behavior is
not changed.

* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): Only cast the node to
ScrollingTreeScrollingNode.

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

22 months agoEnable gigacage on iOS
fpizlo@apple.com [Thu, 12 Oct 2017 16:02:45 +0000 (16:02 +0000)]
Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586

Reviewed by JF Bastien.
JSTests:

Add tests for when Gigacage gets runtime disabled.

* stress/disable-gigacage-arrays.js: Added.
(foo):
* stress/disable-gigacage-strings.js: Added.
(foo):
* stress/disable-gigacage-typed-arrays.js: Added.
(foo):

Source/bmalloc:

Introduce the ability to disable gigacage at runtime if allocation fails. If any step of gigacage
allocation fails, we free all of the gigacages and turn off gigacage support.

Roll this back in after discussion.

* CMakeLists.txt:
* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/Cache.cpp:
(bmalloc::Cache::scavenge):
* bmalloc/Cache.h:
(bmalloc::Cache::tryAllocate):
(bmalloc::Cache::allocate):
(bmalloc::Cache::deallocate):
(bmalloc::Cache::reallocate):
* bmalloc/Gigacage.cpp:
(Gigacage::ensureGigacage):
(Gigacage::runway):
(Gigacage::totalSize):
(Gigacage::shouldBeEnabled):
(): Deleted.
(Gigacage::Callback::Callback): Deleted.
(Gigacage::Callback::function): Deleted.
(Gigacage::PrimitiveDisableCallbacks::PrimitiveDisableCallbacks): Deleted.
* bmalloc/Gigacage.h:
(Gigacage::wasEnabled):
(Gigacage::isEnabled):
(Gigacage::runway): Deleted.
(Gigacage::totalSize): Deleted.
* bmalloc/HeapKind.cpp: Added.
(bmalloc::isActiveHeapKind):
(bmalloc::mapToActiveHeapKind):
* bmalloc/HeapKind.h:
(bmalloc::isActiveHeapKindAfterEnsuringGigacage):
(bmalloc::mapToActiveHeapKindAfterEnsuringGigacage):
* bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::scavenge):
* bmalloc/bmalloc.h:
(bmalloc::api::tryLargeMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::isEnabled):

Source/JavaScriptCore:

The hardest part of enabling Gigacage on iOS is that it requires loading global variables while
executing JS, so the LLInt needs to know how to load from global variables on all platforms that
have Gigacage. So, this teaches ARM64 how to load from global variables.

Also, this makes the code handle disabling the gigacage a bit better.

* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::caged):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::cage):
(JSC::AssemblyHelpers::cageConditionally):
* offlineasm/arm64.rb:
* offlineasm/asm.rb:
* offlineasm/instructions.rb:

Tools:

Add a mode to test disabling Gigacage.

* Scripts/run-jsc-stress-tests:
* Scripts/webkitruby/jsc-stress-test-writer-default.rb:

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

22 months agoRemove out-parameter variants of copyToVector
weinig@apple.com [Thu, 12 Oct 2017 15:38:42 +0000 (15:38 +0000)]
Remove out-parameter variants of copyToVector
https://bugs.webkit.org/show_bug.cgi?id=178155

Reviewed by Tim Horton.

Source/JavaScriptCore:

* inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::dispatchBreakpointActionLog):
(Inspector::ScriptDebugServer::dispatchBreakpointActionSound):
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe):
(Inspector::ScriptDebugServer::dispatchDidParseSource):
(Inspector::ScriptDebugServer::dispatchFailedToParseSource):
(Inspector::ScriptDebugServer::dispatchFunctionToListeners):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebCore:

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::stopTimersForOneShots):
(WebCore::Geolocation::cancelAllRequests):
(WebCore::Geolocation::handleError):
(WebCore::Geolocation::makeSuccessCallbacks):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBGetAllResult.cpp:
(WebCore::IDBGetAllResult::allBlobFilePaths const):
* Modules/indexeddb/server/MemoryIndex.cpp:
(WebCore::IDBServer::MemoryIndex::notifyCursorsOfValueChange):
(WebCore::IDBServer::MemoryIndex::notifyCursorsOfAllRecordsChanged):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
* dom/Document.cpp:
(WebCore::Document::moveNodeIteratorsToNewDocument):
(WebCore::Document::resume):
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/IdTargetObserverRegistry.cpp:
(WebCore::IdTargetObserverRegistry::notifyObserversInternal):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::notifyMutationObservers):
* dom/Node.cpp:
(WebCore::Document::invalidateNodeListAndCollectionCaches):
* dom/RadioButtonGroups.cpp:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::dispatchMessagePortEvents):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
(WebCore::ApplicationCacheGroup::deliverDelayedMainResources):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::forEachResource):
(WebCore::MemoryCache::pruneDeadResourcesToSize):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
* page/FrameView.cpp:
(WebCore::collectAndProtectWidgets):
* page/MemoryRelease.cpp:
(WebCore::releaseCriticalMemory):
* page/Performance.cpp:
(WebCore::Performance::queueEntry):
* platform/cocoa/PasteboardCocoa.mm:
(WebCore::Pasteboard::typesForLegacyUnsafeBindings):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::systemFontFamilies):
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
* platform/ios/WebCoreMotionManager.mm:
(-[WebCoreMotionManager sendAccelerometerData:]):
(-[WebCoreMotionManager sendMotionData:withHeading:]):
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
* platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession invalidateAndCancel]):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::FlexBoxIterator::next):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintObject):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebKit:

* Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface debugDescription]):
* Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::dump):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::pendingCookies const):
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _notifyClientsOfImminentSuspension]):
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::getHostnamesWithCookies):
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::didChangePosition):
(WebKit::WebGeolocationManager::didFailToDeterminePosition):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebKitLegacy/ios:

* Misc/WebGeolocationProviderIOS.mm:
(-[WebGeolocationProviderIOS _handlePendingInitialPosition:]):
(-[WebGeolocationProviderIOS positionChanged:]):
(-[WebGeolocationProviderIOS errorOccurred:]):
(-[WebGeolocationProviderIOS resetGeolocation]):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebKitLegacy/mac:

* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView destroyPlugin]):
* WebView/WebHTMLRepresentation.mm:
(newArrayWithStrings):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WTF:

* wtf/HashMap.h:
(WTF::copyToVector): Deleted.
* wtf/HashSet.h:
(WTF::copyToVector): Deleted.

    Remove copyToVector.

* wtf/Vector.h:
(WTF::copyToVectorSpecialization):

    Add another version of copyToVector, called copyToVectorSpecialization, that allows
    you to specify the entire specialization for the Vector you want to copy to. This
    can be useful if you want your resulting Vector to have an inline capacity.

Tools:

* DumpRenderTree/JavaScriptThreading.cpp:
(stopJavaScriptThreads):

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

22 months agoSupport integrity="" on module scripts
utatane.tea@gmail.com [Thu, 12 Oct 2017 13:12:48 +0000 (13:12 +0000)]
Support integrity="" on module scripts
https://bugs.webkit.org/show_bug.cgi?id=177959

Reviewed by Sam Weinig.

Source/JavaScriptCore:

This patch adds Subresource Integrity check for module scripts. Currently,
only top-level module can be verified with integrity parameter since there
is no way to perform integrity check onto the imported modules.

In JSC side, we add `parameters` to the entry point of the module loader
pipeline. This is fetching parameters and used when fetching modules.

We separately pass this parameters to the pipeline along with the script fetcher.
The script fetcher is only one for module graph since this is the initiator of
this module graph loading. On the other hand, this parameters is for each
module fetching. While setting "integrity" parameters to this script fetcher is
sufficient to pass parameters to top-level-module's fetching, it is not enough
for the future extension.

In the future, we will investigate a way to pass parameters to each non-top-level
module. At that time, this `parameters` should be per-module. This is because
"integrity" value should be different for each module. For example, we will accept
some form of syntax to add parameters to `import`. Some proposed syntax is like
https://discourse.wicg.io/t/specifying-nonce-or-integrity-when-importing-modules/1861

import "./xxx.js" integrity "xxxxxxx"

In this case, this `parameters` will be passed to "./xxx.js" module fetching. This
`parameters` should be different from the one of top-level-module's one. That's why
we need per-module `parameters` and why this patch adds `parameters` to the module pipeline.

On the other hand, we also want to keep script fetcher. This `per-module-graph` thing
is important to offer module-graph-wide information. For example, import.meta would
have `import.meta.scriptElement`, which is the script element fetching the module graph
including this. So, we keep the both, script fetcher and parameters.
https://github.com/tc39/proposal-import-meta

This parameters will be finally used by pipeline's fetch hook, and WebCore side
can use this parameters to fetch modules.

We also further clean up the module pipeline by dropping unnecessary features.

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* builtins/ModuleLoaderPrototype.js:
(requestFetch):
(requestInstantiate):
(requestSatisfy):
(loadModule):
(loadAndEvaluateModule):
This loadAndEvaluateModule should be implemented by just calling loadModule and
linkAndEvaluateModule. We can drop requestReady and requestLink.

(requestLink): Deleted.
(requestImportModule): Deleted.
* jsc.cpp:
(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderFetch):
import and fetch hook takes parameters. Currently, we always pass `undefined` for
import hook. When dynamic `import()` is extended to accept additional parameters
like integrity, this parameters will be replaced with the actual value.

(functionLoadModule):
(runWithOptions):
* runtime/Completion.cpp:
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
(JSC::importModule):
* runtime/Completion.h:
* runtime/JSGlobalObject.h:
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncImportModule):
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::requestImportModule):
(JSC::JSModuleLoader::importModule):
(JSC::JSModuleLoader::fetch):
* runtime/JSModuleLoader.h:
* runtime/JSScriptFetchParameters.cpp: Added.
(JSC::JSScriptFetchParameters::destroy):
* runtime/JSScriptFetchParameters.h: Added.
(JSC::JSScriptFetchParameters::createStructure):
(JSC::JSScriptFetchParameters::create):
(JSC::JSScriptFetchParameters::parameters const):
(JSC::JSScriptFetchParameters::JSScriptFetchParameters):
Add ScriptFetchParameters' JSCell wrapper, JSScriptFetchParameters.
It is used in the module pipeline.

* runtime/JSType.h:
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeFetch):
* runtime/ScriptFetchParameters.h: Added.
(JSC::ScriptFetchParameters::~ScriptFetchParameters):
Add ScriptFetchParameters. We can define our own custom ScriptFetchParameters
by inheriting this class. WebCore creates ModuleFetchParameters by inheriting
this.

* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

Source/WebCore:

This patch extends module hooks to accept fetching parameters.
When starting fetching modules, WebCore creates ModuleFetchParameters.
And this parameters is propagated to the fetch hook. Then, fetch
hook can use this parameters to fetch modules.

This parameters only contains `integrity` field. This "integrity" is
used to perform subresource integrity check in module loader pipeline.
And this error is just proparaged as errors in module pipeline, which
is the same to the other types of errors in module pipeline.

Test: http/tests/subresource-integrity/sri-module.html

* ForwardingHeaders/runtime/JSScriptFetchParameters.h: Added.
* ForwardingHeaders/runtime/ScriptFetchParameters.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/CachedModuleScriptLoader.cpp:
(WebCore::CachedModuleScriptLoader::create):
(WebCore::CachedModuleScriptLoader::CachedModuleScriptLoader):
Take parameters, which includes "integrity".

* bindings/js/CachedModuleScriptLoader.h:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderImportModule):
import and fetch hooks take parameters.

* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::loadModule):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::loadModuleScriptInWorld):
(WebCore::ScriptController::loadModuleScript):
Pass parameters to the entry point of the module pipeline.

* bindings/js/ScriptController.h:
* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::fetch):
If parameters are passed, we set them to CachedModuleScriptLoader.

(WebCore::ScriptModuleLoader::importModule):
Pass parameters to the entry point of dynamic import.

(WebCore::ScriptModuleLoader::notifyFinished):
If script loader has parameters, we perform subresource integrity check here.

* bindings/js/ScriptModuleLoader.h:
* dom/LoadableModuleScript.cpp:
(WebCore::LoadableModuleScript::create):
(WebCore::LoadableModuleScript::LoadableModuleScript):
(WebCore::LoadableModuleScript::load):
Create ModuleFetchParameters with "integrity" value.

* dom/LoadableModuleScript.h:
* dom/ModuleFetchParameters.h: Copied from Source/WebCore/bindings/js/CachedModuleScriptLoader.h.
(WebCore::ModuleFetchParameters::create):
(WebCore::ModuleFetchParameters::integrity const):
(WebCore::ModuleFetchParameters::ModuleFetchParameters):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestModuleScript):
Pass "integrity" value to the module script.

LayoutTests:

* http/tests/subresource-integrity/resources/crossorigin-anon-script-module.js: Added.
* http/tests/subresource-integrity/resources/crossorigin-creds-script-module.js: Added.
* http/tests/subresource-integrity/resources/crossorigin-ineligible-script-module.js: Added.
* http/tests/subresource-integrity/resources/matching-digest-module.js: Added.
* http/tests/subresource-integrity/resources/non-matching-digest-module.js: Added.
* http/tests/subresource-integrity/resources/sri-utilities.js:
(add_result_callback):
(SRIModuleTest):
(SRIModuleTest.prototype.execute):
* http/tests/subresource-integrity/sri-module-expected.txt: Added.
* http/tests/subresource-integrity/sri-module.html: Added.
* js/dom/modules/module-inline-ignore-integrity-expected.txt: Added.
* js/dom/modules/module-inline-ignore-integrity.html: Added.
* js/dom/modules/module-integrity-non-top-level-expected.txt: Added.
* js/dom/modules/module-integrity-non-top-level.html: Added.
* js/dom/modules/script-tests/module-integrity-non-top-level-2.js: Added.
* js/dom/modules/script-tests/module-integrity-non-top-level.js: Added.

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

22 months agoIt should be possible to iterate just the values (and not the counts) of a HashCountedSet
commit-queue@webkit.org [Thu, 12 Oct 2017 12:45:57 +0000 (12:45 +0000)]
It should be possible to iterate just the values (and not the counts) of a HashCountedSet
https://bugs.webkit.org/show_bug.cgi?id=178169

Patch by Sam Weinig <sam@webkit.org> on 2017-10-12
Reviewed by Daniel Bates.

Source/WTF:

Cleanup (fix indentation, simplify type names, adopt using), and add a values() range to
HashCountedSet. This will allow getting a Vector of all the values (and not the counts)
using the new copyToVector.

* wtf/HashCountedSet.h:

Tools:

* TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
(TestWebKitAPI::TEST):
Add test for HashCountedSet's new values() range.

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

22 months agoUnreviewed, fix compilation warning
tpopela@redhat.com [Thu, 12 Oct 2017 11:58:43 +0000 (11:58 +0000)]
Unreviewed, fix compilation warning

warning: extra tokens at end of #endif directive [-Wendif-labels]

* rendering/RenderMediaControls.h:

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

22 months agorun-safari --ios-simulator is no longer working with Xcode 9
fred.wang@free.fr [Thu, 12 Oct 2017 08:37:53 +0000 (08:37 +0000)]
run-safari --ios-simulator is no longer working with Xcode 9
https://bugs.webkit.org/show_bug.cgi?id=177595

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-11
Reviewed by Daniel Bates.

In Xcode 9, the path of the simulator application is now in a new CoreSimulator subdirectory
of the iphoneOS SDK platform. This patch updates webkitdirs.pm to use the new path in
Xcode 9 or higher so that it is possible to run Safari on the iOS simulator again. It also
does some minor code refactoring to improve code reuse.

* Scripts/configure-xcode-for-ios-development: Move sdkDirectory() and sdkPlatformDirectory()
into webkitdirs.
(sdkDirectory): Deleted.
(sdkPlatformDirectory): Deleted.
* Scripts/webkitdirs.pm: Expose new sdkDirectory() and sdkPlatformDirectory().
(sdkDirectory): Moved from configure-xcode-for-ios-development.
(sdkPlatformDirectory): Ditto.
(XcodeSDKPath): Rely on sdkDirectory() to implement this function.
(iosSimulatorApplicationsPath): In Xcode 9 or higher use the new path. It is calculated
by relying on sdkPlatformDirectory().

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

22 months agoimport.meta should not be assignable
utatane.tea@gmail.com [Thu, 12 Oct 2017 06:45:23 +0000 (06:45 +0000)]
import.meta should not be assignable
https://bugs.webkit.org/show_bug.cgi?id=178202

Reviewed by Saam Barati.

JSTests:

* modules/import-meta-assignment.js: Added.
(shouldThrow):
(SyntaxError.import.meta.can.shouldThrow):

Source/JavaScriptCore:

`import.meta` cannot be used for LHS. This patch adds MetaPropertyNode
and make NewTargetNode and ImportMetaNode as derived classes of MetaPropertyNode.
We change the parser not to allow assignments for MetaPropertyNode.

* bytecompiler/NodesCodegen.cpp:
(JSC::ImportMetaNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createImportMetaExpr):
(JSC::ASTBuilder::isMetaProperty):
(JSC::ASTBuilder::isImportMeta):
* parser/NodeConstructors.h:
(JSC::MetaPropertyNode::MetaPropertyNode):
(JSC::NewTargetNode::NewTargetNode):
(JSC::ImportMetaNode::ImportMetaNode):
* parser/Nodes.h:
(JSC::ExpressionNode::isMetaProperty const):
(JSC::ExpressionNode::isImportMeta const):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::metaPropertyName):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
* parser/Parser.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createImportMetaExpr):
(JSC::SyntaxChecker::isMetaProperty):
(JSC::SyntaxChecker::isImportMeta):

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

22 months agoFix debug build
ljaehun.lim@samsung.com [Thu, 12 Oct 2017 04:31:11 +0000 (04:31 +0000)]
Fix debug build

Unreviewed.

Add ENABLE(SERVICE_WORKER) guard.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):

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

22 months agoCorrect nullptr deref in selection handling.
bfulgham@apple.com [Thu, 12 Oct 2017 03:01:19 +0000 (03:01 +0000)]
Correct nullptr deref in selection handling.
https://bugs.webkit.org/show_bug.cgi?id=178189
<rdar://problem/33833012>

Reviewed by Ryosuke Niwa.

The VisibleSelection::toNormalizedRange returns nullptr for certain conditions (e.g., 'isNone'
and 'isOrphaned' cases). It's possible to crash the WebProcess by executing a code path with
an orphaned selection range.

The return value of 'toNormalizedRange' is checked for nullptr in many places, but not everywhere.
This patch adds those missing nullptr checks.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::styleAtSelectionStart):
* editing/Editor.cpp:
(WebCore::Editor::misspelledWordAtCaretOrRange const):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::containsNode const):
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):

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

22 months agoMark http/tests/cache-storage/cache-clearing.https.html as failing on Windows.
pvollan@apple.com [Thu, 12 Oct 2017 01:35:40 +0000 (01:35 +0000)]
Mark http/tests/cache-storage/cache-clearing.https.html as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178200

Unreviewed test gardening.

* platform/win/TestExpectations:

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

22 months agorun-benchmark script should set '__XPC_DYLD_FRAMEWORK_PATH' while launching local...
dewei_zhu@apple.com [Thu, 12 Oct 2017 01:15:15 +0000 (01:15 +0000)]
run-benchmark script should set '__XPC_DYLD_FRAMEWORK_PATH' while launching local-built Safari on Mac.
https://bugs.webkit.org/show_bug.cgi?id=178199

Reviewed by Saam Barati.

'__XPC_DYLD_FRAMEWORK_PATH' should be set while launching Safari on run-benchmark script.
'force_remove' function should support both file and directory.

* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.launch_url):
* Scripts/webkitpy/benchmark_runner/utils.py:
(force_remove):

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

22 months agoVersioning.
jmarcell@apple.com [Thu, 12 Oct 2017 01:13:19 +0000 (01:13 +0000)]
Versioning.

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

22 months agoRuntime disable poly proto because it may be a 3-4% Speedometer regression
sbarati@apple.com [Thu, 12 Oct 2017 00:53:45 +0000 (00:53 +0000)]
Runtime disable poly proto because it may be a 3-4% Speedometer regression
https://bugs.webkit.org/show_bug.cgi?id=178192

Reviewed by JF Bastien.

Source/JavaScriptCore:

* runtime/Options.h:
* runtime/StructureInlines.h:
(JSC::Structure::shouldConvertToPolyProto):

Tools:

* Scripts/run-jsc-stress-tests:

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

22 months agoUnreviewed, rolling out r223215.
ryanhaddad@apple.com [Thu, 12 Oct 2017 00:47:44 +0000 (00:47 +0000)]
Unreviewed, rolling out r223215.

This change broke the Sierra build.

Reverted changeset:

"[Apple Pay] Add subLocality and subAdministrativeArea to
ApplePayPaymentContact"
https://bugs.webkit.org/show_bug.cgi?id=178191
https://trac.webkit.org/changeset/223215

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

22 months agoAdd API to clean CacheStorage data
commit-queue@webkit.org [Thu, 12 Oct 2017 00:46:59 +0000 (00:46 +0000)]
Add API to clean CacheStorage data
https://bugs.webkit.org/show_bug.cgi?id=178034

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-11

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData): Fixing lifetime of aggregator.

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

22 months ago[JSC] Add ability to build with ARMV8 ILP32 ABI
msaboff@apple.com [Thu, 12 Oct 2017 00:33:36 +0000 (00:33 +0000)]
[JSC] Add ability to build with ARMV8 ILP32 ABI
https://bugs.webkit.org/show_bug.cgi?id=178194

Reviewed by Saam Barati.

For ARMV8 32 bit ABI, use JSVALUE32_64 and the CLOOP.

* wtf/Platform.h:

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

22 months agoRebaseline fast/scrolling/adjust-scroll-offset-on-zoom.html for iOS.
ryanhaddad@apple.com [Thu, 12 Oct 2017 00:33:15 +0000 (00:33 +0000)]
Rebaseline fast/scrolling/adjust-scroll-offset-on-zoom.html for iOS.

Unreviewed test gardening.

* platform/ios/fast/scrolling/adjust-scroll-offset-on-zoom-expected.txt: Added.

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

22 months agoXMLHttpRequest: do not sniff text/html, and do not sniff XML when responseType is...
cdumez@apple.com [Thu, 12 Oct 2017 00:27:23 +0000 (00:27 +0000)]
XMLHttpRequest: do not sniff text/html, and do not sniff XML when responseType is set to "text"
https://bugs.webkit.org/show_bug.cgi?id=168724

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests now that all checks are passing.

* web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt:

Source/WebCore:

WebKit enabled HTML / XML charset detection for HTML-ish / XML-ish
responses even when response type is text, which does not match the
specification.

This patch is based on the following Blink patch by Yutaka Hirano <yhirano@chromium.org>:
- https://chromium.googlesource.com/chromium/src.git/+/47e4fc53e6d68c0a788fcc26de598b9e3848033f

Tests:
imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm
imported/w3c/web-platform-tests/XMLHttpRequest/responsedocument-decoding.htm

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createDecoder const):
(WebCore::XMLHttpRequest::didReceiveData):
* xml/XMLHttpRequest.h:

LayoutTests:

Drop outdated test, proper behavior is covered by web-platform-tests.

* fast/xmlhttprequest/xmlhttprequest-html-response-encoding-expected.txt: Removed.
* fast/xmlhttprequest/xmlhttprequest-html-response-encoding.html: Removed.

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

22 months agoMark imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm as...
ryanhaddad@apple.com [Thu, 12 Oct 2017 00:17:18 +0000 (00:17 +0000)]
Mark imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm as flaky.
https://bugs.webkit.org/show_bug.cgi?id=178190

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

22 months ago[Apple Pay] Add subLocality and subAdministrativeArea to ApplePayPaymentContact
aestes@apple.com [Thu, 12 Oct 2017 00:14:34 +0000 (00:14 +0000)]
[Apple Pay] Add subLocality and subAdministrativeArea to ApplePayPaymentContact
https://bugs.webkit.org/show_bug.cgi?id=178191
<rdar://problem/34906367>

Reviewed by Tim Horton.

Source/WebCore:

Added test cases to http/tests/ssl/applepay/ApplePaySession.html.

* Modules/applepay/ApplePayPaymentContact.h:
* Modules/applepay/ApplePayPaymentContact.idl:
* Modules/applepay/cocoa/PaymentContactCocoa.mm:
(WebCore::convert):

LayoutTests:

* http/tests/ssl/applepay/ApplePaySession-expected.txt:
* http/tests/ssl/applepay/ApplePaySession.html:

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

22 months agoUnreviewed. Actually skip certain type profiler tests in debug.
sbarati@apple.com [Thu, 12 Oct 2017 00:00:57 +0000 (00:00 +0000)]
Unreviewed. Actually skip certain type profiler tests in debug.

* typeProfiler.yaml:
* typeProfiler/deltablue-for-of.js:
* typeProfiler/getter-richards.js:

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

22 months agoAdd API to clean CacheStorage data
commit-queue@webkit.org [Wed, 11 Oct 2017 23:55:11 +0000 (23:55 +0000)]
Add API to clean CacheStorage data
https://bugs.webkit.org/show_bug.cgi?id=178034

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-11
Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/cache-storage/cache-clearing.https.html

* platform/FileSystem.h:

Source/WebKit:

Introducing a new website data type for DOMCache.
Adding API to delete DOMCache for a given origin or for all origins.
This is added to WKWebsiteDataStore.

Cleaning a CacheStorage will remove all data in the Cache object but the object will stay live
for the duration of the NetworkProcess.
This allows ensuring that once a cache is cleaned, WebProcess will update to this new state.

Fetching of WebsiteData for DOMCache is not implemented yet since we do not keep a list of all origins for which we have data.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDOMCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::cachesRootPath):
(WebKit::CacheStorage::Engine::fetchEntries):
(WebKit::CacheStorage::ClearTasksHandler::ClearTasksHandler):
(WebKit::CacheStorage::ClearTasksHandler::~ClearTasksHandler):
(WebKit::CacheStorage::Engine::clearEngines):
(WebKit::CacheStorage::Engine::clearCachesForOrigins):
(WebKit::CacheStorage::Engine::readCachesFromDisk):
(WebKit::CacheStorage::deleteFolder):
(WebKit::CacheStorage::Engine::clearCaches):
(WebKit::CacheStorage::Engine::unlock): Removing the assertion as Cache objects are removed when clearing data.
* NetworkProcess/cache/CacheStorageEngine.h:
* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::Caches):
(WebKit::CacheStorage::Caches::clear):
* NetworkProcess/cache/CacheStorageEngineCaches.h:
(WebKit::CacheStorage::Caches::create):
* Shared/WebsiteData/WebsiteDataType.h:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllDOMCaches):
(WKWebsiteDataStoreRemoveDOMCacheForOrigin):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore allWebsiteDataTypes]):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):

Source/WTF:

Moving CallbackAggregator pattern into its own class for easier reuse.

* WTF.xcodeproj/project.pbxproj:
* wtf/CallbackAggregator.h: Added.
(WTF::CallbackAggregator::create):
(WTF::CallbackAggregator::~CallbackAggregator):
(WTF::CallbackAggregator::CallbackAggregator):

Tools:

Adding internals API to trigger deleting all or origin-persistent cache storage persistent data.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::clearDOMCache):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::clearDOMCache):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

* http/tests/cache-storage/cache-clearing.https-expected.txt: Added.
* http/tests/cache-storage/cache-clearing.https.html: Added.

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

22 months agoPart 2: Fix -Wcast-qual and -Wunused-lambda-capture warnings in WebCore with new...
ddkilzer@apple.com [Wed, 11 Oct 2017 23:26:13 +0000 (23:26 +0000)]
Part 2: Fix -Wcast-qual and -Wunused-lambda-capture warnings in WebCore with new clang compiler
<https://webkit.org/b/178036>
<rdar://problem/33667497>

Reviewed by Chris Dumez.

* Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::doRemove):
- Change ASSERT() to ASSERT_UNUSED() to suppress warnings about
  unused lambda capture for 'cacheIdentifier' in Release builds.
* bridge/objc/objc_class.mm:
(JSC::Bindings::ObjcClass::classForIsA): Change C-style cast
into reinterpret_cast and const_cast to go from CFTypeRef to
ObjcClass*.
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::castDataArgumentToCCRSACryptorCreateFromDataIfNeeded):
Add.  Introduce method to add a required const_cast for older
OSes since the signature of CCRSACryptorCreateFromData() changed
in iOS 11 & High Sierra.
(WebCore::CryptoKeyRSA::create): Use
castDataArgumentToCCRSACryptorCreateFromDataIfNeeded().
* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
Remove unused lambda capture for 'status'.

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

22 months ago[Geolocation] Expose Coordinates.floorLevel
cdumez@apple.com [Wed, 11 Oct 2017 22:21:58 +0000 (22:21 +0000)]
[Geolocation] Expose Coordinates.floorLevel
https://bugs.webkit.org/show_bug.cgi?id=178173
<rdar://problem/34918936>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Expose Coordinates.floorLevel via the Geolocation API. This is currently
a WebKit-specific extension and it is only populated on iOS / WKTR / DRT.
It is null on other platforms.

Test: fast/dom/Geolocation/floorLevel.html

* Modules/geolocation/Coordinates.h:
(WebCore::Coordinates::floorLevel const):
* Modules/geolocation/Coordinates.idl:
* Modules/geolocation/GeolocationPosition.h:
(WebCore::GeolocationPosition::encode const):
(WebCore::GeolocationPosition::decode):
* Modules/geolocation/ios/GeolocationPositionIOS.mm:
(WebCore::GeolocationPosition::GeolocationPosition):
* page/Settings.in:

Source/WebKit:

* UIProcess/API/C/WKGeolocationPosition.cpp:
(WKGeolocationPositionCreate):
(WKGeolocationPositionCreate_b):
(WKGeolocationPositionCreate_c):
* UIProcess/API/C/WKGeolocationPosition.h:

Tools:

Add test infrastructure for testing Coordinates.floorLevel.

* DumpRenderTree/TestRunner.cpp:
(setMockGeolocationPositionCallback):
* DumpRenderTree/TestRunner.h:
* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setMockGeolocationPosition):
* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::setMockGeolocationPosition):
* WebKitTestRunner/GeolocationProviderMock.cpp:
(WTR::GeolocationProviderMock::setPosition):
* WebKitTestRunner/GeolocationProviderMock.h:
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setMockGeolocationPosition):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setMockGeolocationPosition):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setMockGeolocationPosition):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Add layout test coverage.

* fast/dom/Geolocation/floorLevel-expected.txt: Added.
* fast/dom/Geolocation/floorLevel.html: Added.

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

22 months agoAvoid triggering layout from style change
simon.fraser@apple.com [Wed, 11 Oct 2017 21:33:58 +0000 (21:33 +0000)]
Avoid triggering layout from style change
https://bugs.webkit.org/show_bug.cgi?id=178184
Source/WebCore:

rdar://problem/34699113

Reviewed by Zalan Bujtas.

It's bad for RenderBox::styleDidChange() to scroll RenderLayers, because that
can trigger layout via FrameView::updateWidgetPositions() and ScrollingCoordinator::absoluteEventTrackingRegions().
So postpone the scrolling until after layout.

Test: fast/scrolling/adjust-scroll-offset-on-zoom.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::setPostLayoutScrollPosition):
(WebCore::RenderLayer::applyPostLayoutScrollPositionIfNeeded):
* rendering/RenderLayer.h:

LayoutTests:

Reviewed by Zalan Bujtas.

* fast/scrolling/adjust-scroll-offset-on-zoom-expected.txt: Added.
* fast/scrolling/adjust-scroll-offset-on-zoom.html: Added.

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

22 months agoWeb Inspector: Make 3D objects selectable in Layers visualization
commit-queue@webkit.org [Wed, 11 Oct 2017 20:54:56 +0000 (20:54 +0000)]
Web Inspector: Make 3D objects selectable in Layers visualization
https://bugs.webkit.org/show_bug.cgi?id=178136

Patch by Ross Kirsling <ross.kirsling@sony.com> on 2017-10-11
Reviewed by Devin Rousso.

* UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype.initialLayout):
(WI.Layers3DContentView.prototype._canvasMouseDown):
(WI.Layers3DContentView.prototype._updateLayerGroupSelection):
Implement selection of 3D layer objects.

(WI.Layers3DContentView.prototype._addLayerGroup): Renamed from _addLayer.
(WI.Layers3DContentView.prototype._updateLayerGroupPosition):
(WI.Layers3DContentView.prototype._createLayerMesh):
Refactor -- one group per layer (visible plane and composited outline), not groups by shape.

(WI.Layers3DContentView.prototype.layout):
(WI.Layers3DContentView.prototype._updateLayers):
(WI.Layers3DContentView.prototype._clearLayers): Deleted.
Don't destroy all 3D objects on every LayerTreeDidChange; make use of layerTreeMutations.
(Not only a performance improvement, but also necessary to properly preserve highlighting.)

(WI.Layers3DContentView.prototype.selectLayerById):
Allow selection to be updated from the outside.

* UserInterface/Views/LayerDetailsSidebarPanel.js:
(WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
(WI.LayerDetailsSidebarPanel.prototype._buildDataGrid):
(WI.LayerDetailsSidebarPanel.prototype._dataGridSelectedNodeChanged):
Allow selection to be updated from the outside.

(WI.LayerDetailsSidebarPanel.prototype.inspect):
(WI.LayerDetailsSidebarPanel.prototype._updateLayers): Renamed from _updateDisplayWithLayers.
(WI.LayerDetailsSidebarPanel.prototype._updateDataGrid):
(WI.LayerDetailsSidebarPanel.prototype._updateBottomBar):
(WI.LayerDetailsSidebarPanel.prototype._contentForPopover):
(WI.LayerDetailsSidebarPanel.prototype._dataGridNodeForLayer): Deleted.
Cleanup.

* UserInterface/Views/LayersTabContentView.js:
(WI.LayersTabContentView):
(WI.LayersTabContentView.prototype._detailsSidebarSelectedLayerChanged):
(WI.LayersTabContentView.prototype._contentViewSelectedLayerChanged):
Orchestrate communication of selection state between visualization and sidebar.

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

22 months agoBump default cache storage quota to 20MB
commit-queue@webkit.org [Wed, 11 Oct 2017 20:41:00 +0000 (20:41 +0000)]
Bump default cache storage quota to 20MB
https://bugs.webkit.org/show_bug.cgi?id=178132

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-11
Reviewed by Alex Christensen.

Source/WebCore:

Covered by http/wpt/cache-storage/cache-quota.any.html.

* platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::cacheStoragePerOriginQuota const):
(WebCore::NetworkStorageSession::setCacheStoragePerOriginQuota):

Source/WebKit:

Adding the ability to set the quota per origin through WebsiteDataStore.
Moving cache storage directory setting also in WebsiteDataStore.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
* Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
* Shared/WebsiteDataStoreParameters.h:
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _cacheStoragePerOriginQuota]):
(-[WKWebsiteDataStore _setCacheStoragePerOriginQuota:]):
(-[WKWebsiteDataStore _cacheStorageDirectory]):
(-[WKWebsiteDataStore _setCacheStorageDirectory:]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::cacheStoragePerOriginQuota const):
(WebKit::WebsiteDataStore::setCacheStoragePerOriginQuota):
(WebKit::WebsiteDataStore::cacheStorageDirectory const):
(WebKit::WebsiteDataStore::setCacheStorageDirectory):

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::generateContextConfiguration const):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration): Setting quota to 400kb

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

22 months agoAllow PAL to log messages
mmaxfield@apple.com [Wed, 11 Oct 2017 20:30:16 +0000 (20:30 +0000)]
Allow PAL to log messages
https://bugs.webkit.org/show_bug.cgi?id=171523

Reviewed by Alex Christensen.

Source/WebCore:

Make the model of WebCore/PAL match the model of WebKit/WebCore. This is because PAL will
need to log things (because existing files in WebCore/platform need to log things).

No new tests because there is no behavior change.

* WebCore.xcodeproj/project.pbxproj:
* page/mac/PageMac.mm:
(WebCore::Page::platformInitialize):
* platform/Logging.cpp:
(WebCore::registerNotifyCallback): Deleted.
* platform/Logging.h:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForWithReason):

Source/WebCore/PAL:

* PAL.xcodeproj/project.pbxproj:
* pal/CMakeLists.txt:
* pal/LogInitialization.h: Copied from Source/WebCore/platform/LogMacros.h.
* pal/LogMacros.h: Copied from Source/WebCore/platform/LogMacros.h.
* pal/Logging.cpp: Copied from Source/WebCore/platform/Logging.cpp.
(PAL::isLogChannelEnabled):
(PAL::setLogChannelToAccumulate):
(PAL::initializeLogChannelsIfNecessary):
(PAL::registerNotifyCallback):
* pal/Logging.h: Copied from Source/WebCore/platform/LogMacros.h.
* pal/PlatformMac.cmake:
* pal/cocoa/LoggingCocoa.mm: Renamed from Source/WebCore/platform/LogMacros.h.
(PAL::logLevelString):

Source/WebKit:

* Platform/Logging.h:
* Scripts/generate-forwarding-headers.pl:

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

22 months agoUnreviewed, fix build with some SDKs.
cdumez@apple.com [Wed, 11 Oct 2017 20:16:37 +0000 (20:16 +0000)]
Unreviewed, fix build with some SDKs.

Stop capturing |this| unnecessarily in lambda.

* Modules/entriesapi/FileSystemDirectoryEntry.cpp:
(WebCore::FileSystemDirectoryEntry::getEntry):

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

22 months agoUnreviewed, fix build with some SDKs.
cdumez@apple.com [Wed, 11 Oct 2017 19:51:29 +0000 (19:51 +0000)]
Unreviewed, fix build with some SDKs.

Stop capturing |this| unnecessarily in lambda.

* Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::getFile):

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

22 months agoRe-sync XMLHttpRequests Web-Platform-Tests
cdumez@apple.com [Wed, 11 Oct 2017 19:40:31 +0000 (19:40 +0000)]
Re-sync XMLHttpRequests Web-Platform-Tests
https://bugs.webkit.org/show_bug.cgi?id=178172

Reviewed by Youenn Fablet.

Re-sync XMLHttpRequests Web-Platform-Tests from upstream 2f76ef2c1d.

* resources/import-expectations.json:
* web-platform-tests/XMLHttpRequest/abort-after-stop-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/abort-after-stop.htm: Added.
* web-platform-tests/XMLHttpRequest/event-error-order.sub-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/event-error-order.sub.html: Added.
* web-platform-tests/XMLHttpRequest/event-timeout-order-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/event-timeout-order.htm: Added.
* web-platform-tests/XMLHttpRequest/open-url-worker-origin-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm: Added.
* web-platform-tests/XMLHttpRequest/preserve-ua-header-on-redirect-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/preserve-ua-header-on-redirect.htm: Added.
* web-platform-tests/XMLHttpRequest/responsedocument-decoding-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/responsedocument-decoding.htm: Added.
* web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt:
* web-platform-tests/XMLHttpRequest/responsetext-decoding.htm:
* web-platform-tests/XMLHttpRequest/send-after-setting-document-domain-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-after-setting-document-domain.htm: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled.htm: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors.htm: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader.htm: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-basic.htm: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords.htm: Added.
* web-platform-tests/XMLHttpRequest/send-entity-body-basic-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-entity-body-basic.htm: Added.
* web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub.htm: Added.
* web-platform-tests/XMLHttpRequest/w3c-import.log:

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

22 months agoUnreviewed, rolling out r223113 and r223121.
commit-queue@webkit.org [Wed, 11 Oct 2017 19:33:48 +0000 (19:33 +0000)]
Unreviewed, rolling out r223113 and r223121.
https://bugs.webkit.org/show_bug.cgi?id=178182

Reintroduced 20% regression on Kraken (Requested by rniwa on
#webkit).

Reverted changesets:

"Enable gigacage on iOS"
https://bugs.webkit.org/show_bug.cgi?id=177586
https://trac.webkit.org/changeset/223113

"Use one virtual allocation for all gigacages and their
runways"
https://bugs.webkit.org/show_bug.cgi?id=178050
https://trac.webkit.org/changeset/223121

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

22 months agoDisable test262 named capture group tests with direct unicode names and with referenc...
msaboff@apple.com [Wed, 11 Oct 2017 19:24:40 +0000 (19:24 +0000)]
Disable test262 named capture group tests with direct unicode names and with references before definitions
https://bugs.webkit.org/show_bug.cgi?id=178177

Reviewed by Keith Miller.

Bugs to track fixing these test are:
https://bugs.webkit.org/show_bug.cgi?id=178174 -
    "Add support in named capture group identifiers for direct surrogate pairs"
https://bugs.webkit.org/show_bug.cgi?id=178175 -
    "Test262 failure with Named Capture Groups - using a reference before the group is defined"

* test262.yaml:

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

22 months agoExtract logic to paint composition underlines to its own function
dbates@webkit.org [Wed, 11 Oct 2017 19:18:09 +0000 (19:18 +0000)]
Extract logic to paint composition underlines to its own function
https://bugs.webkit.org/show_bug.cgi?id=178038

Reviewed by Zalan Bujtas.

No functionality changed. So, no new tests.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Modified to call paintCompositionUnderlines().
(WebCore::InlineTextBox::paintCompositionUnderlines const): Added; extract code
from InlineTextBox::paint() and modernized it.
(WebCore::InlineTextBox::paintCompositionUnderline const): Added.
(WebCore::InlineTextBox::paintCompositionUnderline): Deleted; made const.
* rendering/InlineTextBox.h:

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

22 months agoUpdate JavaScriptCore/ucd/CaseFolding.txt to Unicode database 10.0
msaboff@apple.com [Wed, 11 Oct 2017 19:13:59 +0000 (19:13 +0000)]
Update JavaScriptCore/ucd/CaseFolding.txt to Unicode database 10.0
https://bugs.webkit.org/show_bug.cgi?id=178106

Reviewed by Keith Miller.

* ucd/CaseFolding.txt:

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

22 months agoInlineTextBox::isSelected() should only return true for a non-empty selection
dbates@webkit.org [Wed, 11 Oct 2017 19:13:07 +0000 (19:13 +0000)]
InlineTextBox::isSelected() should only return true for a non-empty selection
and remove incorrect FIXME from InlineTextBox::localSelectionRect()
https://bugs.webkit.org/show_bug.cgi?id=160786

Reviewed by Zalan Bujtas.

Partial revert of r204400 in InlineTextBox::{isSelected, localSelectionRect}().

The function InlineTextBox::isSelected() should only return true for a non-empty selection.
Also remove an incorrect FIXME added to InlineTextBox::localSelectionRect() that questioned
whether it was correct for it to return an empty rectangle. It is correct for it to return
such a rectangle because this function is used to implement Element.getClientRects(). And
Element.getClientRects() can return a rectangle with zero width or zero height by step 3
of algorithm getClientRects() of section Extensions to the Element interface of the
CSSOM View Module spec., <https://drafts.csswg.org/cssom-view/> (Editor's Draft, 15 September 2017).

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected const): Only return true for a non-empty selection
and remove unnecessary FIXME. Also rename variables to improve readability.
(WebCore::InlineTextBox::localSelectionRect const): Remove inaccurate FIXME comment.
* rendering/InlineTextBox.h:

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

22 months agoSanitize URL in pasteboard for other applications and cross origin content
rniwa@webkit.org [Wed, 11 Oct 2017 19:01:10 +0000 (19:01 +0000)]
Sanitize URL in pasteboard for other applications and cross origin content
https://bugs.webkit.org/show_bug.cgi?id=178060
<rdar://problem/34874518>

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch introduces the sanitization of URL when written from a web content to prevent web content from
exploiting the URL parser of other applications in the system particularly of those that actively monitor
system pasteboard (a.k.a. clipboard on non-Cocoa platforms) and decode or otherwise process URLs.

Because the Web compatibility requires that DataTransfer exposes the original URL to any document in the
same origin as the one which wrote the URL into the pasteboard, we store a string which uniquely identifies
the origin of an originating document into our custom pasteboard data. Note that we expose any URL which
didn't come from WebKit since we don't expect URLs to reveal privacy sensitive information. We use UUID for
the origin identifier of a null origin document.

An alternative approach is to store the pasteboard data from the same origin into the document and invalidate
it when the system pasteboard changes. However, Pasteboard object cannot know about Document (as Pasteboard
is a platform object and Document is a WebCore object), this turns out be quite tricky as there are multiple
places where we create Pasteboard objects, and they all need to be aware of this special same origin
Pasteboard object that hangs off of Document. Also, this approach would result in the same origin code paths
to diverge between null origin and non-null origin documents.

Tests: editing/pasteboard/data-transfer-get-data-on-copying-pasting-malformed-url-in-same-document.html
       editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-origin.html
       editing/pasteboard/data-transfer-set-data-sanitlize-url-when-copying-in-null-origin.html
       editing/pasteboard/data-transfer-set-data-sanitlize-url-when-dragging-in-null-origin.html
       http/tests/security/clipboard/copy-paste-url-across-origin-sanitizes-url.html
       CopyURL.ValidURL
       CopyURL.UnescapedURL
       CopyURL.MalformedURL
       DataInteractionTests.DataTransferSetDataValidURL
       DataInteractionTests.DataTransferSetDataUnescapedURL
       DataInteractionTests.DataTransferSetDataInvalidURL

* dom/DataTransfer.cpp:
(WebCore::originForDocument): Extracted from createForCopyAndPaste.
(WebCore::DataTransfer::createForCopyAndPaste):
(WebCore::DataTransfer::getDataForItem const): Read the URL from the custom data when the originating content
is of the same origin. When the originating content is cross origin, or there is no custom data (e.g. written
by another native application; or sanitization didn't result in any difference), then callback to native value.
(WebCore::DataTransfer::setDataFromItemList): Sanitize the URL before writing it to the native pasteboard.
Store the original value if the sanitization resulted in any difference.
(WebCore::DataTransfer::types const):
(WebCore::DataTransfer::commitToPasteboard): Moved the code to write custom data to Pasteboard since we need
to write the origin string with it.
(WebCore::DataTransfer::createForDragStartEvent): Added Document as an argument to compute the origin string.
(WebCore::DataTransfer::createForDrop): Ditto.
(WebCore::DataTransfer::createForUpdatingDropTarget):
(WebCore::DataTransfer::moveDragState):
* dom/DataTransfer.h:
* dom/Document.cpp:
(WebCore::Document::uniqueIdentifier): Added. See above.
* dom/Document.h:
* editing/Editor.cpp:
(WebCore::createDataTransferForClipboardEvent):
(WebCore::dispatchClipboardEvent):
* page/DragController.cpp:
(WebCore::DragController::dispatchTextInputEventFor):
* page/EventHandler.cpp:
(WebCore::EventHandler::performDragAndDrop):
(WebCore::EventHandler::handleDrag):
* platform/Pasteboard.h:
* platform/PasteboardStrategy.h:
* platform/PlatformPasteboard.h:
* platform/StaticPasteboard.cpp:
(WebCore::StaticPasteboard::takeCustomData): Moved the logic to write to native pasteboard to DataTransfer.
* platform/StaticPasteboard.h:
* platform/cocoa/PasteboardCocoa.mm:
(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::readStringInCustomData): Rewritten using readCustomData. See below.
(WebCore::Pasteboard::readOrigin): Added.
(WebCore::Pasteboard::readCustomData): Added. Populates the cache. Because a single Pasteboard object is never
allowed to read values once its content is updated by other applications, we can permanently cache the result.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::typesSafeForBindings): Now takes the unused origin string.
(WebCore::Pasteboard::readOrigin): Added.
* platform/gtk/PlatformPasteboardGtk.cpp:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Now takes the unused origin string.
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::originKeyKeyForTeamData): Added.
(WebCore::customTypesKeyForTeamData): Added. Replaces the use of PasteboardCustomData::cocoaType() in the team
data for clarity since the team data key isn't same as the pasteboard type. We don't have to worry about the
backwards compatibility since drag & drop session doesn't persist across iOS upgrades, and there is no publicly
released iOS with this team data support.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Read the origin string and the custom data
off the team data. Don't expose custom types that are written by cross origin documents.
(WebCore::PlatformPasteboard::write): Add the orign string with custom pasteboard types in the team data.
(WebCore::PlatformPasteboard::readURL): Fixed a bug that this function was not reading NSURL when UIPasteboard
serializes NSURL as a plist. This code is exercised by CopyURL.ValidURL.
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Don't add custom pasteboard types that are
added by cross origin documents.
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::typesSafeForBindings): Now takes the unused origin string.
(WebCore::Pasteboard::readOrigin): Added.
* platform/wpe/PasteboardWPE.cpp:
(WebCore::Pasteboard::typesSafeForBindings): Now takes the unused origin string.
(WebCore::Pasteboard::readOrigin): Added.
* platform/wpe/PlatformPasteboardWPE.cpp:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Now takes the unused origin string.

Source/WebKit:

Plubmed the origin identifier through IPC from Pasteboard in WebContent process to PlatformPasteboard in UIProcess.

* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
* UIProcess/WebPasteboardProxy.cpp:
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::typesSafeForDOMToReadAndWrite):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::typesSafeForDOMToReadAndWrite):

Tools:

Added API tests for sanitizing URLs copied from web content, and that the original URL is exposed to the web content.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm: Added.
(readURLFromPasteboard): A helper function.
* TestWebKitAPI/Tests/WebKitCocoa/copy-url.html: Added.
* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(DataInteractionTests.DataTransferGetDataWhenDroppingCustomData): Rebaselined. https://www.apple.com is no longer
normalized to https://www.apple.com/ by NSURL / UIPasteboard as expected.
(DataInteractionTests.DataTransferSetDataValidURL): Added.
(DataInteractionTests.DataTransferSetDataUnescapedURL): Added.
(DataInteractionTests.qDataTransferSetDataInvalidURL): Added.

LayoutTests:

Added tests for copying & pasting URLs. URLs should be %-escaped and any invalid URL should be stripped away and
invisible to a cross-origin content or a null origin document but the same origin content should have access to
its original form.

* TestExpectations:
* editing/pasteboard/data-transfer-get-data-on-copying-pasting-malformed-url-in-same-document-expected.txt: Added.
* editing/pasteboard/data-transfer-get-data-on-copying-pasting-malformed-url-in-same-document.html: Added.
* editing/pasteboard/data-transfer-get-data-on-drop-custom-expected.txt: Rebaselined. We no longer normalize
"https://www.apple.com" into "https://www.apple.com/" by NSURL / UIPasteboard within the same origin content.
* editing/pasteboard/data-transfer-get-data-on-paste-custom-expected.txt: Ditto.
* editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-expected.txt: Added.
* editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-origin-expected.txt: Added.
* editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-origin.html: Added.
* editing/pasteboard/data-transfer-set-data-sanitlize-url-when-copying-in-null-origin-expected.txt: Added.
* editing/pasteboard/data-transfer-set-data-sanitlize-url-when-copying-in-null-origin.html: Added.
* editing/pasteboard/data-transfer-set-data-sanitlize-url-when-dragging-in-null-origin-expected.txt: Added.
* editing/pasteboard/data-transfer-set-data-sanitlize-url-when-dragging-in-null-origin.html: Added.
* editing/pasteboard/dataTransfer-setData-getData-expected.txt: Rebaselined. More test cases are passing.
* editing/pasteboard/dataTransfer-setData-getData.html: Updated expectations as the original URL is now preserved.
* http/tests/security/clipboard/copy-paste-url-across-origin-sanitizes-url-expected.txt: Added.
* http/tests/security/clipboard/copy-paste-url-across-origin-sanitizes-url.html: Added.
* http/tests/security/clipboard/resources/copy.html: Added.
* platform/mac-wk1/TestExpectations:

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

22 months agoRemove some obsolete layout assertions
antti@apple.com [Wed, 11 Oct 2017 18:32:58 +0000 (18:32 +0000)]
Remove some obsolete layout assertions
https://bugs.webkit.org/show_bug.cgi?id=178170

Reviewed by Zalan Bujtas.

We have strong assertions against render tree mutation functions being called in layout. These are unnecessary.

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildTo):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::takeChildInternal):
* rendering/RenderElement.h:
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::layout):
* rendering/RenderListItem.h:

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

22 months ago[Payment Request] Implement Apple Pay merchant validation
aestes@apple.com [Wed, 11 Oct 2017 17:48:26 +0000 (17:48 +0000)]
[Payment Request] Implement Apple Pay merchant validation
https://bugs.webkit.org/show_bug.cgi?id=178159

Reviewed by Brady Eidson.

Source/WebCore:

When ApplePayPaymentHandler::validateMerchant() is called, dispatch the
applepayvalidatemerchant event to the PaymentRequest object.

The event object is an ApplePayMerchantValidationEvent, on which the client calls complete()
with a merchant session.

Test: http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https.html

* DerivedSources.make:
* Modules/applepay/ApplePayValidateMerchantEvent.h:
* Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.cpp: Added.
(WebCore::ApplePayMerchantValidationEvent::create):
(WebCore::ApplePayMerchantValidationEvent::ApplePayMerchantValidationEvent):
(WebCore::ApplePayMerchantValidationEvent::complete):
(WebCore::ApplePayMerchantValidationEvent::eventInterface const):
* Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.h: Added.
* Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.idl: Added.
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::validateMerchant):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
* Modules/paymentrequest/PaymentRequest.idl:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:
* dom/EventNames.in:
* testing/Internals.cpp:
(WebCore::Internals::Internals):
* testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::MockPaymentCoordinator):
(WebCore::MockPaymentCoordinator::showPaymentUI):
* testing/MockPaymentCoordinator.h:

LayoutTests:

* http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https-expected.txt: Added.
* http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https.html: Added.

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

22 months agoModernize Geolocation code
cdumez@apple.com [Wed, 11 Oct 2017 17:41:59 +0000 (17:41 +0000)]
Modernize Geolocation code
https://bugs.webkit.org/show_bug.cgi?id=178148

Reviewed by Ryosuke Niwa.

Source/WebCore:

Modernize Geolocation code:
- Use std::optional<> instead of separate boolean members
- Make GeolocationPosition a simple struct that can be passed via IPC
- Replace WebGeolocationPosition::Data with GeolocationPosition
- Move logic to construct a GeolocationPosition from a CLLocation on iOS
  in one place to avoid code duplication.

* Modules/geolocation/Coordinates.cpp:
(WebCore::Coordinates::Coordinates):
* Modules/geolocation/Coordinates.h:
(WebCore::Coordinates::create):
(WebCore::Coordinates::isolatedCopy const):
(WebCore::Coordinates::latitude const):
(WebCore::Coordinates::longitude const):
(WebCore::Coordinates::altitude const):
(WebCore::Coordinates::accuracy const):
(WebCore::Coordinates::altitudeAccuracy const):
(WebCore::Coordinates::heading const):
(WebCore::Coordinates::speed const):
* Modules/geolocation/Geolocation.cpp:
(WebCore::createGeoposition):
(WebCore::Geolocation::lastPosition):
* Modules/geolocation/GeolocationClient.h:
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::lastPosition):
* Modules/geolocation/GeolocationController.h:
* Modules/geolocation/GeolocationPosition.h:
(WebCore::GeolocationPosition::GeolocationPosition):
The default constructor is only needed by our IPC decoding code.

(WebCore::GeolocationPosition::encode const):
(WebCore::GeolocationPosition::decode):
* Modules/geolocation/ios/GeolocationPositionIOS.mm: Copied from Source/WebCore/Modules/geolocation/Coordinates.cpp.
(WebCore::GeolocationPosition::GeolocationPosition):
* WebCore.xcodeproj/project.pbxproj:
* platform/mock/GeolocationClientMock.cpp:
(WebCore::GeolocationClientMock::lastPosition):
(WebCore::GeolocationClientMock::controllerTimerFired):
* platform/mock/GeolocationClientMock.h:

Source/WebKit:

* Shared/WebGeolocationPosition.cpp:
(WebKit::WebGeolocationPosition::create):
(WebKit::WebGeolocationPosition::~WebGeolocationPosition):
* Shared/WebGeolocationPosition.h:
(WebKit::WebGeolocationPosition::timestamp const):
(WebKit::WebGeolocationPosition::latitude const):
(WebKit::WebGeolocationPosition::longitude const):
(WebKit::WebGeolocationPosition::accuracy const):
(WebKit::WebGeolocationPosition::altitude const):
(WebKit::WebGeolocationPosition::altitudeAccuracy const):
(WebKit::WebGeolocationPosition::heading const):
(WebKit::WebGeolocationPosition::speed const):
(WebKit::WebGeolocationPosition::corePosition const):
(WebKit::WebGeolocationPosition::WebGeolocationPosition):
* UIProcess/API/C/WKGeolocationPosition.cpp:
(WKGeolocationPositionCreate_b):
* UIProcess/API/Cocoa/_WKGeolocationPosition.mm:
(WebKit::wrapper):
* UIProcess/API/glib/WebKitGeolocationProvider.cpp:
(WebKit::WebKitGeolocationProvider::notifyPositionChanged):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
* UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKLegacyCoreLocationProvider positionChanged:]):
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::didChangePosition):
* WebProcess/Geolocation/WebGeolocationManager.h:
* WebProcess/Geolocation/WebGeolocationManager.messages.in:
* WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
(WebKit::WebGeolocationClient::lastPosition):
* WebProcess/WebCoreSupport/WebGeolocationClient.h:

Source/WebKitLegacy/ios:

* Misc/WebGeolocationCoreLocationProvider.h:
* Misc/WebGeolocationCoreLocationProvider.mm:
(-[WebGeolocationCoreLocationProvider sendLocation:]):
* Misc/WebGeolocationProviderIOS.mm:
(-[_WebCoreLocationUpdateThreadingProxy positionChanged:]):

Source/WebKitLegacy/mac:

* WebCoreSupport/WebGeolocationClient.h:
* WebCoreSupport/WebGeolocationClient.mm:
(WebGeolocationClient::lastPosition):
* WebView/WebGeolocationPosition.mm:
(-[WebGeolocationPositionInternal initWithCoreGeolocationPosition:]):
(core):
(-[WebGeolocationPosition initWithTimestamp:latitude:longitude:accuracy:]):
(-[WebGeolocationPosition initWithGeolocationPosition:]):
* WebView/WebGeolocationPositionInternal.h:

Source/WebKitLegacy/win:

* WebCoreSupport/WebGeolocationClient.cpp:
(WebGeolocationClient::lastPosition):
* WebCoreSupport/WebGeolocationClient.h:
* WebGeolocationPosition.cpp:
(WebGeolocationPosition::initWithTimestamp):
(core):
* WebGeolocationPosition.h:
(WebGeolocationPosition::impl const):

Tools:

* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setMockGeolocationPosition):

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

22 months agoAdd a SW context process (where SW scripts will actually execute).
beidson@apple.com [Wed, 11 Oct 2017 17:27:08 +0000 (17:27 +0000)]
Add a SW context process (where SW scripts will actually execute).
https://bugs.webkit.org/show_bug.cgi?id=178156
Source/WebCore:

Reviewed by Andy Estes.

No new tests (Covered by changes to existing tests).

This patch adds an auxiliary "ServiceWorker context" WebProcess to a WebProcessPool.

This process is where ServiceWorker scripts will execute, separate from the client WebProcess
hosting the page(s) they are serving.

This patch also adds all of the plumbing to pass along a fetched service worker script to this
context WebProcess, as well as message back failure to actually start the script so we can test.

Touches lots of code sites but is basically just a lot of plumbing.

* WebCore.xcodeproj/project.pbxproj:

* workers/service/ServiceWorkerContextData.h: Copied from Source/WebCore/workers/service/server/SWServerWorker.h.
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::Connection::finishFetchingScriptInServer):
(WebCore::SWServer::Connection::scriptContextFailedToStart):
(WebCore::SWServer::scriptFetchFinished):
(WebCore::SWServer::scriptContextFailedToStart):
(WebCore::SWServer::createWorker):
* workers/service/server/SWServer.h:

* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::scriptFetchFinished):
(WebCore::SWServerRegistration::scriptContextFailedToStart):
* workers/service/server/SWServerRegistration.h:

* workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
(WebCore::SWServerWorker::~SWServerWorker):
* workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::create):
(WebCore::SWServerWorker::scriptURL const):
(WebCore::SWServerWorker::script const):
(WebCore::SWServerWorker::type const):
(WebCore::SWServerWorker::workerID const):

Source/WebKit:

Reviewed by Andy Estes.

This patch adds an auxiliary "ServiceWorker context" WebProcess to a WebProcessPool.

This process is where ServiceWorker scripts will execute, separate from the client WebProcess
hosting the page(s) they are serving.

This patch also adds all of the plumbing to pass along a fetched service worker script to this
context WebProcess, as well as message back failure to actually start the script so we can test.

Touches lots of code sites but is basically just a lot of plumbing.

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::startServiceWorkerContext):
(WebKit::WebSWServerConnection::sendToContextProcess):
(WebKit::WebSWServerConnection::setContextConnection):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:

* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::workerContextProcessConnection):
(WebKit::StorageProcess::createWorkerContextProcessConnection):
(WebKit::StorageProcess::didGetWorkerContextProcessConnection):
(WebKit::StorageProcess::serviceWorkerContextFailedToStart):
(WebKit::StorageProcess::registerSWServerConnection):
(WebKit::StorageProcess::unregisterSWServerConnection):
* StorageProcess/StorageProcess.h:
* StorageProcess/StorageProcess.messages.in:

* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::~StorageToWebProcessConnection):
(WebKit::StorageToWebProcessConnection::establishSWServerConnection):
(WebKit::StorageToWebProcessConnection::removeSWServerConnection):
(WebKit::StorageToWebProcessConnection::workerContextProcessConnectionCreated):
* StorageProcess/StorageToWebProcessConnection.h:

* UIProcess/Storage/StorageProcessProxy.cpp:
(WebKit::StorageProcessProxy::create):
(WebKit::StorageProcessProxy::StorageProcessProxy):
(WebKit::StorageProcessProxy::didClose):
(WebKit::StorageProcessProxy::getWorkerContextProcessConnection):
(WebKit::StorageProcessProxy::didGetWorkerContextProcessConnection):
* UIProcess/Storage/StorageProcessProxy.h:
* UIProcess/Storage/StorageProcessProxy.messages.in:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::getWorkerContextProcessConnection):
(WebKit::WebProcessPool::didGetWorkerContextProcessConnection):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
* UIProcess/WebProcessPool.h:

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didGetWorkerContextConnection):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getWorkerContextConnection):
(WebKit::WebProcess::startServiceWorkerContext):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

LayoutTests:

Reviewed by Andy Estes.

* http/tests/workers/service/basic-register-exceptions-expected.txt:
* http/tests/workers/service/basic-register-expected.txt:
* http/tests/workers/service/registration-task-queue-scheduling-1-expected.txt:

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

22 months ago[ATK] Expose value of aria-keyshortcuts as object attribute
jdiggs@igalia.com [Wed, 11 Oct 2017 17:04:42 +0000 (17:04 +0000)]
[ATK] Expose value of aria-keyshortcuts as object attribute
https://bugs.webkit.org/show_bug.cgi?id=171175

Reviewed by Chris Fleizach.

Source/WebCore:

Expose the author-provided string through the "keyshortcuts" object attribute.

Test: accessibility/gtk/aria-keyshortcuts.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::ariaKeyShortcutsValue const):
* accessibility/AccessibilityObject.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
* html/HTMLAttributeNames.in:

LayoutTests:

* accessibility/gtk/aria-keyshortcuts-expected.txt: Added.
* accessibility/gtk/aria-keyshortcuts.html: Added.

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

22 months agoImport media capture WPT tests
commit-queue@webkit.org [Wed, 11 Oct 2017 16:27:09 +0000 (16:27 +0000)]
Import media capture WPT tests
https://bugs.webkit.org/show_bug.cgi?id=178138

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-11
Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/feature-policy/resources/feature-policy-payment.html: Added.
* web-platform-tests/feature-policy/resources/feature-policy-usb.html: Added.
* web-platform-tests/feature-policy/resources/feature-policy-webvr.html: Added.
* web-platform-tests/feature-policy/resources/featurepolicy.js: Added.
(test_feature_availability):
(expect_feature_available_default):
(expect_feature_unavailable_default):
(test_result):
(test_feature_availability_with_post_message_result):
(run_all_fp_tests_allow_self):
* web-platform-tests/feature-policy/resources/redirect-on-load.html: Added.
* web-platform-tests/feature-policy/resources/w3c-import.log: Added.
* web-platform-tests/mediacapture-streams/GUM-api.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-api.https.html: Added.
* web-platform-tests/mediacapture-streams/GUM-deny.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-deny.https.html: Added.
* web-platform-tests/mediacapture-streams/GUM-empty-option-param.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-empty-option-param.https.html: Added.
* web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https.html: Added.
* web-platform-tests/mediacapture-streams/GUM-optional-constraint.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-optional-constraint.https.html: Added.
* web-platform-tests/mediacapture-streams/GUM-trivial-constraint.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-trivial-constraint.https.html: Added.
* web-platform-tests/mediacapture-streams/GUM-unknownkey-option-param.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/GUM-unknownkey-option-param.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-enumerateDevices.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-enumerateDevices.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-add-audio-track.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-add-audio-track.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-audio-only.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-audio-only.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-finished-add.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-finished-add.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-gettrackid.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-gettrackid.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-id-manual.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-id-manual.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-idl.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-idl.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-removetrack.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStream-video-only.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStream-video-only.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-end-manual.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-end-manual.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-id.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-id.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-init.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrack-init.https.html: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrackEvent-constructor.https-expected.txt: Added.
* web-platform-tests/mediacapture-streams/MediaStreamTrackEvent-constructor.https.html: Added.
* web-platform-tests/mediacapture-streams/OWNERS: Added.
* web-platform-tests/mediacapture-streams/historical-expected.txt: Added.
* web-platform-tests/mediacapture-streams/historical.html: Added.
* web-platform-tests/mediacapture-streams/w3c-import.log: Added.

LayoutTests:

Skipping tests for ports not supporting getUserMedia.

* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:
* platform/wpe/TestExpectations:

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

22 months agoTry to fix the Sierra build after r223163.
aestes@apple.com [Wed, 11 Oct 2017 16:12:07 +0000 (16:12 +0000)]
Try to fix the Sierra build after r223163.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convertAndValidate):

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

22 months agoRemove ENABLE_NETWORK_CACHE
don.olmstead@sony.com [Wed, 11 Oct 2017 15:53:21 +0000 (15:53 +0000)]
Remove ENABLE_NETWORK_CACHE
https://bugs.webkit.org/show_bug.cgi?id=177424

Reviewed by Antti Koivisto.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::storeDerivedDataToCache):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::clearDiskCacheEntries):
(WebKit::NetworkProcess::setCacheModel):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::cache):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::canUseCachedRedirect const):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/cache/NetworkCache.cpp:
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
* NetworkProcess/cache/NetworkCacheBlobStorage.h:
* NetworkProcess/cache/NetworkCacheCoders.cpp:
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheCodersCocoa.cpp:
* NetworkProcess/cache/NetworkCacheCodersSoup.cpp:
* NetworkProcess/cache/NetworkCacheData.cpp:
* NetworkProcess/cache/NetworkCacheData.h:
* NetworkProcess/cache/NetworkCacheDataCocoa.mm:
* NetworkProcess/cache/NetworkCacheDataSoup.cpp:
* NetworkProcess/cache/NetworkCacheEntry.cpp:
* NetworkProcess/cache/NetworkCacheEntry.h:
* NetworkProcess/cache/NetworkCacheFileSystem.cpp:
* NetworkProcess/cache/NetworkCacheFileSystem.h:
* NetworkProcess/cache/NetworkCacheIOChannel.h:
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
* NetworkProcess/cache/NetworkCacheKey.cpp:
* NetworkProcess/cache/NetworkCacheKey.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::clearDiskCache):
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins):
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::clearDiskCache):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):
* UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::storeDerivedDataToCache):
* config.h:

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

22 months ago[GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst_util_ui...
nael.ouedraogo@crf.canon.fr [Wed, 11 Oct 2017 14:51:29 +0000 (14:51 +0000)]
[GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed in gst_qtdemux_configure_stream()
https://bugs.webkit.org/show_bug.cgi?id=176804

Reviewed by Michael Catanzaro.

Tools:

Add patch to fix assert in qtdemux.

* gstreamer/jhbuild.modules:
* gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch: Added.

LayoutTests:

Update expectations for fixed tests.

* platform/gtk/TestExpectations:

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

22 months agoUse https for trac changeset and browser links
tpopela@redhat.com [Wed, 11 Oct 2017 13:59:44 +0000 (13:59 +0000)]
Use https for trac changeset and browser links
https://bugs.webkit.org/show_bug.cgi?id=178167

Reviewed by Alexey Proskuryakov.

Switch the http://trac.webkit.org/changeset and
http://trac.webkit.org/browser links that are printed by webkitpy to
https. Also update the test expectations.

* Scripts/webkitpy/common/checkout/checkout_unittest.py:
* Scripts/webkitpy/common/config/committervalidator_unittest.py:
(CommitterValidatorTest.test_flag_permission_rejection_message):
* Scripts/webkitpy/common/config/urls.py:
(view_source_url):
(view_revision_url):
* Scripts/webkitpy/common/net/bugzilla/bug_unittest.py:
(BugTest.test_commit_revision):
* Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
* Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
* Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
(MainTest):
(MainTest.test_run_with_upload_json_should_generate_perf_webkit_json):
* Scripts/webkitpy/style/checkers/changelog_unittest.py:
(ChangeLogCheckerTest.test_missing_bug_number):
* Scripts/webkitpy/tool/bot/feeders_unittest.py:
* Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
* Scripts/webkitpy/tool/bot/ircbot_unittest.py:
(IRCBotTest.test_rollout):
(IRCBotTest.test_revert):
(IRCBotTest.test_multi_rollout):
(IRCBotTest.test_rollout_with_r_in_svn_revision):
(IRCBotTest.test_multi_rollout_with_r_in_svn_revision):
(IRCBotTest.test_rollout_invalidate_reason):
(test_multi_rollout_invalidate_reason):
* Scripts/webkitpy/tool/bot/sheriff_unittest.py:
* Scripts/webkitpy/tool/commands/download_unittest.py:
* Scripts/webkitpy/tool/commands/newcommitbot_unittest.py:
* Scripts/webkitpy/tool/commands/queues_unittest.py:
* Scripts/webkitpy/tool/commands/suggestnominations.py:
(SuggestNominations._count_commit):
* Scripts/webkitpy/tool/commands/upload_unittest.py:
* Scripts/webkitpy/tool/servers/data/rebaselineserver/util.js:
(getTracUrl):
(getSortedKeys):
* Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:
(CloseBugForLandDiffTest.test_empty_state):
* Scripts/webkitpy/tool/steps/commit_unittest.py:
(CommitTest._test_check_test_expectations):
* Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
(UpdateChangeLogsForRevertTest):

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

22 months agoRebaseline tests at media/modern-media-controls/media-controller
commit-queue@webkit.org [Wed, 11 Oct 2017 13:51:58 +0000 (13:51 +0000)]
Rebaseline tests at media/modern-media-controls/media-controller
https://bugs.webkit.org/show_bug.cgi?id=178129

Patch by Antoine Quint <graouts@apple.com> on 2017-10-11
Reviewed by Sam Weinig.

Rebaseline a series of tests to work with the current modern-media-controls codebase. For the most part, this is accounting
for metrics changes and the refactoring of the auto-hide controller code.

* media/modern-media-controls/media-controller/media-controller-auto-hide-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-pause-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-pause.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide.html:
* media/modern-media-controls/media-controller/media-controller-click-on-video-controls-should-not-pause.html:
* media/modern-media-controls/media-controller/media-controller-compact-expected.txt: Removed.
* media/modern-media-controls/media-controller/media-controller-compact.html: Removed.
* media/modern-media-controls/media-controller/media-controller-fullscreen-change-expected.txt:
* media/modern-media-controls/media-controller/media-controller-fullscreen-change.html:
* media/modern-media-controls/media-controller/media-controller-ios-do-not-hide-controls-when-tapping-button-expected.txt:
* media/modern-media-controls/media-controller/media-controller-ios-do-not-hide-controls-when-tapping-button.html:
* media/modern-media-controls/media-controller/media-controller-ios-only-enable-tap-gesture-recognizer-with-fades-when-idle-expected.txt:
* media/modern-media-controls/media-controller/media-controller-ios-only-enable-tap-gesture-recognizer-with-fades-when-idle.html:
* media/modern-media-controls/media-controller/media-controller-scale-factor-audio-expected.txt:
* media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html:
* media/modern-media-controls/media-controller/media-controller-scale-factor-expected.txt:
* media/modern-media-controls/media-controller/media-controller-scale-factor.html:
* media/modern-media-controls/media-controller/media-controller-tight-padding-expected.txt: Removed.
* media/modern-media-controls/media-controller/media-controller-tight-padding.html: Removed.
* platform/ios-simulator/TestExpectations:
* platform/mac-elcapitan/TestExpectations:
* platform/mac/TestExpectations:

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

22 months agoObject properties are undefined in super.call() but not in this.call()
ticaiolima@gmail.com [Wed, 11 Oct 2017 12:59:36 +0000 (12:59 +0000)]
Object properties are undefined in super.call() but not in this.call()
https://bugs.webkit.org/show_bug.cgi?id=177230

Reviewed by Saam Barati.

JSTests:

* stress/super-call-function-subclass.js: Added.
(assert):
(A.prototype.t):
(A):
* stress/super-dot-call-and-apply.js: Added.
(assert):
(A):
(A.prototype.call):
(A.prototype.apply):
(B.prototype.testSuper):
(B):
(const.obj.new.B.string_appeared_here.obj.testSuper.C):
(D.prototype.testSuper):
(D):

Source/JavaScriptCore:

Bytecode generation for "super.call(...)" or "super.apply(...)"
shouldn't be considered as CallFunctionCallDotNode or
ApplyFunctionCallDotNode because they should be considered as common
super property access as any other function. According to spec[1],
"super" is not refering to parent constructor.

[1] - https://tc39.github.io/ecma262/#sec-super-keyword-runtime-semantics-evaluation

* parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::makeFunctionCallNode):

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

22 months agoUnreviewed, rolling out r223146.
mcatanzaro@igalia.com [Wed, 11 Oct 2017 12:42:03 +0000 (12:42 +0000)]
Unreviewed, rolling out r223146.

Better to not expose cairo in the WPE API

Reverted changeset:

"[WPE] Header cairo.h is used in GLib API headers but cannot
be found"
https://bugs.webkit.org/show_bug.cgi?id=178100
http://trac.webkit.org/changeset/223146

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

22 months ago[JSC] Drop Instantiate hook in ES6 module loader
utatane.tea@gmail.com [Wed, 11 Oct 2017 12:30:37 +0000 (12:30 +0000)]
[JSC] Drop Instantiate hook in ES6 module loader
https://bugs.webkit.org/show_bug.cgi?id=178162

Reviewed by Sam Weinig.

Source/JavaScriptCore:

This patch is a part of patch series for module loader refactoring to adopt
integrity="" parameters and introduce new whatwg module import mechanism.

In this patch, we drop instantiate hook in module loader. This hook is originally
introduced because it is defined in whatwg/loader spec. But this hook is not
used in our implementation, and this hook won't be used since (1) whatwg/loader
spec is abandoned, and (2) this type of hooks should be done in Service Workers.

In addition, this patch applies some cleaning up of our module loader JS code
to simplify things. This change paves the way to more efficient loader implementation
with great flexibility to adopt integrity="" parameters.

* builtins/ModuleLoaderPrototype.js:
(requestInstantiate):
(provideFetch):
provide is changed to provideFetch since we only used this function with Fetch stage parameter.

(fulfillInstantiate): Deleted.
(commitInstantiated): Deleted.
(instantiation): Deleted.
They are merged into requestInstantiate code. This is simpler.

(provide): Deleted.
* jsc.cpp:
* runtime/Completion.cpp:
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
* runtime/JSGlobalObject.cpp:
* runtime/JSGlobalObject.h:
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::provide): Deleted.
Changed to provideFetch.

(JSC::JSModuleLoader::instantiate): Deleted.
Drop this hook.

* runtime/JSModuleLoader.h:
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeInstantiate): Deleted.
Drop this hook.

Source/WebCore:

Drop instantiate hooks.
No behavior change.

* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSWorkerGlobalScopeBase.cpp:

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

22 months ago[MSE][GStreamer] Add dump of append pipeline
commit-queue@webkit.org [Wed, 11 Oct 2017 09:33:46 +0000 (09:33 +0000)]
[MSE][GStreamer] Add dump of append pipeline
https://bugs.webkit.org/show_bug.cgi?id=178074

Patch by Alicia Boya García <aboya@igalia.com> on 2017-10-11
Reviewed by Xabier Rodriguez-Calvar.

Enable dump of AppendPipeline.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::appendPipelineStateChangeMessageCallback):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleStateChangeMessage):
* platform/graphics/gstreamer/mse/AppendPipeline.h:

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

22 months agoWeb Inspector: Avoid "100.00ms" vs "100.0ms" jitter in TimelineRuler labels
joepeck@webkit.org [Wed, 11 Oct 2017 07:59:43 +0000 (07:59 +0000)]
Web Inspector: Avoid "100.00ms" vs "100.0ms" jitter in TimelineRuler labels
https://bugs.webkit.org/show_bug.cgi?id=178143

Reviewed by Brian Burg.

* UserInterface/Base/Utilities.js:
Allow a small slop factor that wouldn't have changed the display value's
significant figures anyways. This addresses cases where 100.0000000000001
were being treated slightly differently from 100.0.

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

22 months agoWeb Inspector: Network Tab - Show initially loaded resources even if network info...
joepeck@webkit.org [Wed, 11 Oct 2017 07:55:24 +0000 (07:55 +0000)]
Web Inspector: Network Tab - Show initially loaded resources even if network info not logged
https://bugs.webkit.org/show_bug.cgi?id=178098
<rdar://problem/34073529>

Reviewed by Devin Rousso.

* UserInterface/Models/Resource.js:
(WI.Resource.prototype.hasResponse):
Resources loaded by Page.getFrameTree have a response but no status code data.
So include finished resources as having a resource.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
(WI.NetworkTableContentView.prototype._mainFrameDidChange):
Listen for the first main frame change to perform an initial population.

(WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
This path is not currently taken when table is null, but change the code so
that if it is reached without the table it would behave gracefully.

* UserInterface/Views/ResourceHeadersContentView.js:
(WI.ResourceHeadersContentView.prototype._refreshSummarySection):
On first open none of the resources have a statusCode. Show an emDash.

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

22 months ago[iOS] Do not flatten frames when async frame scrolling is enabled
fred.wang@free.fr [Wed, 11 Oct 2017 07:54:37 +0000 (07:54 +0000)]
[iOS] Do not flatten frames when async frame scrolling is enabled
https://bugs.webkit.org/show_bug.cgi?id=173704

Patch by Frederic Wang <fwang@igalia.com> on 2017-09-27
Reviewed by Simon Fraser.

Source/WebCore:

This patch disables frame flattening when async frame scrolling is enabled on iOS, as
otherwise you can not scroll them. Once iframe scrolling is implemented in iOS (bug 149264),
developers and beta testers will be able to check it by enabling "Async Frame Scrolling"
in the "Experimental WebKit Features" menu of Safari iOS.

Test: platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html

* page/FrameView.cpp:
(WebCore::FrameView::frameFlatteningEnabled): Use effectiveFrameFlattening()
* page/Settings.cpp:
(WebCore::Settings::effectiveFrameFlattening): New function to return frameFlattening() or do
some exceptions on iOS.
* page/Settings.h: Declare effectiveFrameFlattening.
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::flattenFrameSet): Use effectiveFrameFlattening()
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::flattenFrame): Ditto.
* rendering/RenderView.cpp:
(WebCore::FrameFlatteningLayoutDisallower::FrameFlatteningLayoutDisallower): Ditto.

Source/WebKit:

This patch disables frame flattening when async frame scrolling is enabled on iOS, as
otherwise you can not scroll them. Once iframe scrolling is implemented in iOS (bug 149264),
developers and beta testers will be able to check it by enabling "Async Frame Scrolling"
in the "Experimental WebKit Features" menu of Safari iOS.

Test: platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged): Use effectiveFrameFlattening() introduced in
Source/WebCore.

LayoutTests:

Add an iOS test to verify that frame flattening is disabled when async frame scrolling is enabled.

* platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling-expected.txt: Added.
* platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html: Added.

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

22 months ago[GStreamer] Fix double seek requested by downloadbuffer GStreamer element in webkibwebsrc
calvaris@igalia.com [Wed, 11 Oct 2017 05:48:47 +0000 (05:48 +0000)]
[GStreamer] Fix double seek requested by downloadbuffer GStreamer element in webkibwebsrc
https://bugs.webkit.org/show_bug.cgi?id=178079

Reviewed by Žan Doberšek.

When the downloadbuffer GStreamer element requests two seeks too
close to each other there's some rare race condition where our
source answers that it is not seekable and ends up with
downloadbuffer element to seek beyond the file size, which causes
the server to issue a 416 HTTP error code eventually, causing our
MediaPlayer to stop.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStop): We only unset he seekable attribute if we are
not seeking.

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

22 months agoEnable custom pasteboard data in DumpRenderTree and WebKitTestRunner
rniwa@webkit.org [Wed, 11 Oct 2017 04:12:30 +0000 (04:12 +0000)]
Enable custom pasteboard data in DumpRenderTree and WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=178154

Reviewed by Wenson Hsieh.

Source/WebCore:

Extracted the logic to compute the default enabled-ness of custom pasteboard data as
Settings::defaultCustomPasteboardDataEnabled() to be called by WebKit1 and WebKit2 layers.

* page/Settings.cpp:
(WebCore::Settings::defaultCustomPasteboardDataEnabled): Extracted from customPasteboardDataEnabled.
(WebCore::Settings::customPasteboardDataEnabled): Deleted. Now inlined in the header file.
* page/Settings.h:
(WebCore::Settings::customPasteboardDataEnabled):
* platform/cocoa/PasteboardCocoa.mm:
(WebCore::Pasteboard::read): Fixed a bug that we were adding MIME type to the map before checking that
we could actually read the buffer. We shouldn't skip a type (NSTIFFPboardType and kUTTypeTIFF for now)
if an equivalent type had failed to read.

Source/WebKit:

Plumbed customPasteboardDataEnabled flag to be used in WebKitTestRunner.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCustomPasteboardDataEnabled):
(WKPreferencesGetCustomPasteboardDataEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

Enable custom pasteboard data by default.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences customPasteboardDataEnabled]): Added.
(-[WebPreferences setCustomPasteboardDataEnabled:]): Added.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

Fixed the bug that LocalPasteboard would fail to load the promise type if data is set after declaring types
by delaying the call to provideDataForType until when dataForType is called.

Without this fix, fast/events/dropzone-002.html would start failing after enabling custom pasteboard data.
With this fix, fast/events/dropzone-005.html also starts passing.

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard dataForType:]):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

* editing/pasteboard/dataTransfer-setData-getData-expected.txt: Rebaselined. One more test case is passing now.
* fast/events/dropzone-002.html: Fixed the test to accept an image since we no longer drop URLs when dropping
an image avoid leaking local file paths.
* platform/mac/TestExpectations: Enabled dropzone-005.html since it started passing after fixing LocalPasteboard.

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

22 months agoWeb Inspector: Quick Open: source mapped files are not shown as search results
bburg@apple.com [Wed, 11 Oct 2017 03:16:39 +0000 (03:16 +0000)]
Web Inspector: Quick Open: source mapped files are not shown as search results
https://bugs.webkit.org/show_bug.cgi?id=178151
<rdar://problem/31561718>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/OpenResourceDialog.js:
(WI.OpenResourceDialog.prototype._addResource):
Also consider matching the query string against SourceMapResources
attached to a resource's source maps.

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

22 months ago[Payment Request] Validate that all PaymentCurrencyAmounts use the same currency...
aestes@apple.com [Wed, 11 Oct 2017 02:57:12 +0000 (02:57 +0000)]
[Payment Request] Validate that all PaymentCurrencyAmounts use the same currency code when using Apple Pay
https://bugs.webkit.org/show_bug.cgi?id=178150

Reviewed by Tim Horton.

Source/WebCore:

Apple Pay requires a single currency code, but the Payment Request API allows the client to
specify a currency code for each PaymentCurrencyAmount.

Instead of having a required currencyCode property on ApplePayRequest and ignoring the
currency property on PaymentCurrencyAmount, validate that all PaymentCurrencyAmounts use the
same currency code and use that as ApplePaySessionPaymentRequest's currencyCode.

Added test cases to http/tests/ssl/applepay/PaymentRequest.https.html.

* Modules/applepay/ApplePayPaymentRequest.h:
* Modules/applepay/ApplePayPaymentRequest.idl:
* Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::convertAndValidate):
* Modules/applepay/ApplePayRequestBase.h:
* Modules/applepay/ApplePayRequestBase.idl:
* Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::validate):
(WebCore::convertAndValidate):
(WebCore::ApplePayPaymentHandler::show):
* Modules/applepay/paymentrequest/ApplePayRequest.idl:

LayoutTests:

* http/tests/paymentrequest/payment-request-abort-method.https.html:
* http/tests/paymentrequest/payment-request-canmakepayment-method.https.html:
* http/tests/paymentrequest/payment-request-show-method.https.html:
* http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
* http/tests/ssl/applepay/PaymentRequest.https.html:

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

22 months ago[WPE] Remove the possibility of installing the old WebKit2 C API
aperez@igalia.com [Wed, 11 Oct 2017 01:01:53 +0000 (01:01 +0000)]
[WPE] Remove the possibility of installing the old WebKit2 C API
https://bugs.webkit.org/show_bug.cgi?id=178125

Reviewed by Michael Catanzaro.

.:

* Source/cmake/OptionsWPE.cmake: Remove definition of the EXPORT_DEPRECATED_WEBKIT2_C_API
build option.

Source/WebKit:

* PlatformWPE.cmake: Remove support for installing the deprecated C API.

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

22 months agoPrototype structure transition should be a deferred transition
sbarati@apple.com [Wed, 11 Oct 2017 00:53:59 +0000 (00:53 +0000)]
Prototype structure transition should be a deferred transition
https://bugs.webkit.org/show_bug.cgi?id=177734

Reviewed by Keith Miller.

Absence ObjectPropertyConditions work by verifying both that the Structure
does not have a particular property and that its prototype has
remained constant. However, the prototype transition was firing
the transition watchpoint before setting the object's structure.
This meant that isValid for Absence would never return false because
the prototype changed. Clearly this is wrong. The reason this didn't
break OPCs in general is that we'd also check if we could still watch
the OPC. In this case, we can't still watch it because we're inspecting
a structure with an invalidated transition watchpoint. To fix
this weird quirk of the code, I'm making it so that doing a prototype
transition uses the DeferredStructureTransitionWatchpointFire machinery.

This patch also fixes some dead code that I left in regarding
poly proto in OPC.

* bytecode/PropertyCondition.cpp:
(JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):
* runtime/JSObject.cpp:
(JSC::JSObject::setPrototypeDirect):
* runtime/Structure.cpp:
(JSC::Structure::changePrototypeTransition):
* runtime/Structure.h:

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

22 months ago[Payment Request] Implement PaymentRequest.canMakePayment()
aestes@apple.com [Wed, 11 Oct 2017 00:37:49 +0000 (00:37 +0000)]
[Payment Request] Implement PaymentRequest.canMakePayment()
https://bugs.webkit.org/show_bug.cgi?id=178048

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/payment-request/payment-request-canmakepayment-method.https-expected.txt: Removed.

Source/WebCore:

Test: http/tests/paymentrequest/payment-request-canmakepayment-method.https.html

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::convertData): Moved
ApplePayRequest-to-ApplePaySessionPaymentRequest conversion from here to show().
(WebCore::ApplePayPaymentHandler::show): Returned an exception if
ApplePaySessionPaymentRequest conversion fails.
(WebCore::shouldDiscloseApplePayCapability): Checked if we are in an ephimeral session or if
Settings::applePayCapabilityDisclosureAllowed() is false.
(WebCore::ApplePayPaymentHandler::canMakePayment): Called
PaymentCoordinator::canMakePayments() or PaymentCoordinator::canMakePaymentsWithActiveCard()
depending on shouldDiscloseApplePayCapability().
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
* Modules/applepay/paymentrequest/ApplePayRequest.h:
* Modules/applepay/paymentrequest/ApplePayRequest.idl: Defined merchantIdentifier.
* Modules/paymentrequest/PaymentHandler.h:
* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::parse): Moved JSON-parsing to here from show().
(WebCore::PaymentRequest::show): Returned the exception from PaymentHandler::show().
(WebCore::PaymentRequest::canMakePayment): For each payment method, try to create a
PaymentHandler.
For the first valid PaymentHandler, call canMakePayment() and pass a lambda that resolves
the promise.
* Modules/paymentrequest/PaymentRequest.h:
* Modules/paymentrequest/PaymentRequest.idl: Added CallWith=Document annotations to show()
and canMakePayment().

LayoutTests:

* http/tests/paymentrequest/payment-request-canmakepayment-method.https-expected.txt: Added.
* http/tests/paymentrequest/payment-request-canmakepayment-method.https.html: Added.
* http/tests/ssl/applepay/PaymentRequest.https.html:
* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:

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

22 months agoAvoid allocating useless landingBlocks in DFGByteCodeParser::handleInlining()
rmorisset@apple.com [Wed, 11 Oct 2017 00:09:20 +0000 (00:09 +0000)]
Avoid allocating useless landingBlocks in DFGByteCodeParser::handleInlining()
https://bugs.webkit.org/show_bug.cgi?id=177926

Reviewed by Saam Barati.

When doing polyvariant inlining, there used to be a landing block for each callee, each of which was then linked to a continuation block.
With this change, we allocate the continuation block first, and pass it to the inlining routine so that op_ret in the callee link directly to it.
The only subtlety is that when inlining an intrinsic we must do the jump by hand, and also remember to call processSetLocalQueue with nextOffset before it.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::parse):

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

22 months ago[WK2] Add API to clear service worker registrations
cdumez@apple.com [Wed, 11 Oct 2017 00:01:28 +0000 (00:01 +0000)]
[WK2] Add API to clear service worker registrations
https://bugs.webkit.org/show_bug.cgi?id=178085
<rdar://problem/34866025>

Reviewed by Ryosuke Niwa.

Add API to clear service worker registrations. Although the request to
clear the registration is passed on to the StorageProcess, it is currently
a no-op on StorageProcess side until we actually persist service worker
registrations on disk.

* Shared/WebsiteData/WebsiteDataType.h:
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::fetchWebsiteData):
(WebKit::StorageProcess::deleteWebsiteData):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore allWebsiteDataTypes]):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

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

22 months agoUnreviewed, really fix the build with certain SDKs.
cdumez@apple.com [Tue, 10 Oct 2017 23:40:39 +0000 (23:40 +0000)]
Unreviewed, really fix the build with certain SDKs.

Follow-up to r223154, which fixed the wrong lambda.

* Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::getEntry):
(WebCore::DOMFileSystem::getFile):

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

22 months agoFix compilation when MASM_PROBE (and therefore DFG) are disabled
guijemont@igalia.com [Tue, 10 Oct 2017 23:14:12 +0000 (23:14 +0000)]
Fix compilation when MASM_PROBE (and therefore DFG) are disabled
https://bugs.webkit.org/show_bug.cgi?id=178134

Reviewed by Saam Barati.

* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
Disable some code when building without DFG_JIT.

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

22 months agoUnreviewed, fix build with certain SDKs.
cdumez@apple.com [Tue, 10 Oct 2017 23:09:43 +0000 (23:09 +0000)]
Unreviewed, fix build with certain SDKs.

Stop capturing |this| unnecessarily in lambda.

* Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::getEntry):

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

22 months agoUnreviewed, rolling out r223148.
jlewis3@apple.com [Tue, 10 Oct 2017 22:59:39 +0000 (22:59 +0000)]
Unreviewed, rolling out r223148.

This caused build failures.

Reverted changeset:

"Fix MSVC build with ENCRYPTED_MEDIA enabled"
https://bugs.webkit.org/show_bug.cgi?id=177803
http://trac.webkit.org/changeset/223148

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

22 months ago[WPE] Expose ENABLE_XSLT option
mcatanzaro@igalia.com [Tue, 10 Oct 2017 22:59:08 +0000 (22:59 +0000)]
[WPE] Expose ENABLE_XSLT option
https://bugs.webkit.org/show_bug.cgi?id=177857

Reviewed by Carlos Alberto Lopez Perez.

* Source/cmake/OptionsWPE.cmake:

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

22 months agoAccessibilityRenderObject should not hold a raw pointer to RenderObject
zalan@apple.com [Tue, 10 Oct 2017 22:47:30 +0000 (22:47 +0000)]
AccessibilityRenderObject should not hold a raw pointer to RenderObject
https://bugs.webkit.org/show_bug.cgi?id=178144
<rdar://problem/34919287>

Reviewed by Chris Fleizach.

m_renderer's lifetime is not directly tied to the AX wrapper object's lifetime.

Covered by existing tests.

* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::elementAccessibilityHitTest const):
* accessibility/AccessibilityMathMLElement.cpp:
(WebCore::AccessibilityMathMLElement::isMathFenceOperator const):
(WebCore::AccessibilityMathMLElement::isMathSeparatorOperator const):
(WebCore::AccessibilityMathMLElement::mathLineThickness const):
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::press):
(WebCore::AccessibilityMenuList::isCollapsed const):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::renderBoxModelObject const):
(WebCore::AccessibilityRenderObject::setRenderer):
(WebCore::AccessibilityRenderObject::previousSibling const):
(WebCore::AccessibilityRenderObject::anchorElement const):
(WebCore::AccessibilityRenderObject::helpText const):
(WebCore::AccessibilityRenderObject::boundingBoxRect const):
(WebCore::AccessibilityRenderObject::supportsPath const):
(WebCore::AccessibilityRenderObject::elementPath const):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::index const):
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
(WebCore::AccessibilityRenderObject::observableObject const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::textChanged):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):
(WebCore::AccessibilityRenderObject::roleValueForMSAA const):
(WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable const):
(WebCore::AccessibilityRenderObject::scrollTo const):
* accessibility/AccessibilityRenderObject.h:
(WebCore::AccessibilityRenderObject::setRenderObject):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::elementAccessibilityHitTest const):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityTableCell::parentTable const):
(WebCore::AccessibilityTableCell::rowIndexRange const):
(WebCore::AccessibilityTableCell::columnIndexRange const):
(WebCore::AccessibilityTableCell::titleUIElement const):

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

22 months agoUnreviewed, rolling out r223130.
commit-queue@webkit.org [Tue, 10 Oct 2017 22:37:41 +0000 (22:37 +0000)]
Unreviewed, rolling out r223130.
https://bugs.webkit.org/show_bug.cgi?id=178147

Breaks the build when EGLNativeWindowType is a pointer
(Requested by aperezdc on #webkit).

Reverted changeset:

"[WPE] Build failure due to invalid cast of
EGLNativeWindowType when targetting 64-bit ARM"
https://bugs.webkit.org/show_bug.cgi?id=178090
http://trac.webkit.org/changeset/223130

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

22 months agoReplace copyKeysToVector/copyValuesToVector with copyToVector(map.keys())/copyToVecto...
commit-queue@webkit.org [Tue, 10 Oct 2017 22:13:07 +0000 (22:13 +0000)]
Replace copyKeysToVector/copyValuesToVector with copyToVector(map.keys())/copyToVector(map.values())
https://bugs.webkit.org/show_bug.cgi?id=178102

Patch by Sam Weinig <sam@webkit.org> on 2017-10-10
Reviewed by Tim Horton.

Source/JavaScriptCore:

* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::clearInspectorBreakpointState):

Source/WebCore:

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::Watchers::getNotifiersVector const):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::connectionClosedFromServer):
* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::getTracks const):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::windowProxies):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::item const):
* dom/Document.cpp:
(WebCore::Document::prepareForDestruction):
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::removeMarkers):
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::disconnectFromAllWorkerInspectorProxies):
* inspector/NetworkResourcesData.cpp:
* loader/DocumentLoader.cpp:
(WebCore::cancelAll):
(WebCore::setAllDefersLoading):
(WebCore::areAllLoadersPageCacheAcceptable):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::forEachSessionResource):
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::scheduleAll):
(WebCore::unscheduleAll):
* page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::notifyObservers):
* platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::tracks const):

    Replace copyKeysToVector / copyValuesToVector with copyToVector(map.keys()) / copyToVector(map.values())

Source/WebDriver:

* SessionHost.cpp:
(WebDriver::SessionHost::inspectorDisconnected):

Source/WebKit:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::dumpChangedLayers):
* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextInvalidateCustomProtocolRequests):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseContainerForall):
* UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry _mimeTypesWithCustomContentProviders]):
* UIProcess/GenericCallback.h:
(WebKit::invalidateCallbackMap):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didBecomeResponsive):
(WebKit::WebProcessProxy::willChangeIsResponsive):
(WebKit::WebProcessProxy::didChangeIsResponsive):
(WebKit::WebProcessProxy::disconnectFramesFromPage):
(WebKit::WebProcessProxy::frameCountInPage const):
(WebKit::WebProcessProxy::requestTermination):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::invalidate):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::stopAllStreams):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::cancelAllStreams):
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didClose):

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::servePendingRequests):

Source/WebKitLegacy/mac:

* History/WebHistory.mm:
(-[WebHistoryPrivate rebuildHistoryByDayIfNeeded:]):
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::stopAllStreams):
* WebCoreSupport/WebUserMediaClient.mm:
(WebUserMediaClient::pageDestroyed):

Source/WTF:

* wtf/HashMap.h:
(WTF::copyKeysToVector): Deleted.
(WTF::copyValuesToVector): Deleted.

    Remove copyKeysToVector and copyValuesToVector which are no longer used.

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