WebKit.git
2 years agoOwnedCommitViewer should include the preceding commit.
dewei_zhu@apple.com [Tue, 31 Oct 2017 09:44:39 +0000 (09:44 +0000)]
OwnedCommitViewer should include the preceding commit.
https://bugs.webkit.org/show_bug.cgi?id=179047

Reviewed by Ryosuke Niwa.

OwnedCommitViewer shows the difference between owned commits.
To show changes made by first owned commit, we need to have the preceding commit information.

* public/v3/components/commit-log-viewer.js:
(CommitLogViewer):
(CommitLogViewer.prototype._fetchCommitLogs): Fetch preceding commit if the commits fetched is not a single commit.
(CommitLogViewer.prototype.render):
(CommitLogViewer.prototype._renderCommitList): Conditionally rendering preceding commit in commit list.

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

2 years agoUnreviewed. Fix GTK+/WPE make distcheck.
carlosgc@webkit.org [Tue, 31 Oct 2017 09:39:32 +0000 (09:39 +0000)]
Unreviewed. Fix GTK+/WPE make distcheck.

* CMakeLists.txt: Only include PerformanceTests directory to the build for GTK+ and WPE ports when developer
mode is enabled.

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

2 years agoAssert that no script is executed during LayoutPhase::InRenderTreeLayout
rniwa@webkit.org [Tue, 31 Oct 2017 08:39:38 +0000 (08:39 +0000)]
Assert that no script is executed during LayoutPhase::InRenderTreeLayout
https://bugs.webkit.org/show_bug.cgi?id=179046

Reviewed by Antti Koivisto.

Added NoEventDispatchAssertion to LayoutPhase::InRenderTreeLayout.

* page/LayoutContext.cpp:
(WebCore::LayoutContext::layout):

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

2 years agoWeb Inspector: replace Canvas stack iteration with createScriptCallStack
webkit@devinrousso.com [Tue, 31 Oct 2017 08:06:07 +0000 (08:06 +0000)]
Web Inspector: replace Canvas stack iteration with createScriptCallStack
https://bugs.webkit.org/show_bug.cgi?id=178980

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests, updated existing tests.

* inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::buildAction):
(WebCore::iterateCallFrames): Deleted.

LayoutTests:

* inspector/canvas/create-context-2d-expected.txt:
* inspector/canvas/create-context-webgl-expected.txt:
* inspector/canvas/create-context-webgl2-expected.txt:
* inspector/canvas/create-context-webgpu-expected.txt:
* inspector/canvas/recording-2d-expected.txt:
* inspector/canvas/recording-webgl-expected.txt:
* inspector/canvas/recording-webgl-snapshots-expected.txt:

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

2 years ago[FreeType] Simple and complex paths are not applied consistently
carlosgc@webkit.org [Tue, 31 Oct 2017 07:10:50 +0000 (07:10 +0000)]
[FreeType] Simple and complex paths are not applied consistently
https://bugs.webkit.org/show_bug.cgi?id=177601

Reviewed by Michael Catanzaro.

Due to bug #100050, when rendering text, the complex path is forced in case kerning or shaping is enabled and
only part of the run is going to be rendered. This happens in the GTK+ port when selecting text (except when
selecting the whole run, of course). The text is initially rendered using the simple path as returned by
FontCascade::codePath() and then the selection is rendered using the complex path, overriding what
FontCascade::codePath() returned in that case. This doesn't happen in mac, because the selection is rendered
differently, so FontCascade::drawText always renders the full run (simple path) when selecting text. Selecting
text is the most noticeable inconsistency, but it's not the only one. Similar exceptions are applied when
calculating the text width, or getting the offset of a given position. The rendered text is the simple one, but
the calculations are performed using the complex path, so depending on the kerning and ligatures we might end up
with wrong results. If the text has been rendered using the simple path, the selections and all other
calculations should be performed with the simple path too. This patch moves the condition to force complex text
to FontCascade::codePath(), and only for non Freetype ports. This ensures that all callers to
FontCascade::codePath() will get a consistent result.

* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::drawText const): Use the mode returned by codePath().
(WebCore::FontCascade::drawEmphasisMarks const): Ditto.
(WebCore::FontCascade::adjustSelectionRectForText const): Use the mode returned by codePath().
(WebCore::FontCascade::offsetForPosition const): Ditto.
(WebCore::FontCascade::codePath const): Force complex text for partial runs for ports not enabling advance text
rendering mode by default.
* platform/graphics/FontCascade.h: Add to and from optional parameters to codePath().

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

2 years agoUpdate safe area inset demo pages to use env()
timothy_horton@apple.com [Tue, 31 Oct 2017 03:22:18 +0000 (03:22 +0000)]
Update safe area inset demo pages to use env()
https://bugs.webkit.org/show_bug.cgi?id=179041

Reviewed by Simon Fraser.

* demos/safe-area-insets/1-default.html:
* demos/safe-area-insets/2-viewport-fit.html:
* demos/safe-area-insets/3-safe-area-constants.html:
* demos/safe-area-insets/4-min-max.html:
* demos/safe-area-insets/safe-areas.html:
Update to use env() instead of constant(), but keep constant() around
for backwards-compatibility.

Adjust the colors on the safe areas test page to look a little less holiday-like.

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

2 years agoFire updatefound event after resolving the registration promise
cdumez@apple.com [Tue, 31 Oct 2017 03:13:03 +0000 (03:13 +0000)]
Fire updatefound event after resolving the registration promise
https://bugs.webkit.org/show_bug.cgi?id=178985

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline tests and land expected results for tests that are timing out.
A lot of tests are now actualling testing something instead of failing right away.

* web-platform-tests/service-workers/cache-storage/serviceworker/cache-add.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-delete.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-keys.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-matchAll.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-put.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-keys.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/credentials.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/close.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event-constructor.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/service-worker-error-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https-expected.txt:
* web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https-expected.txt:
* web-platform-tests/service-workers/service-worker/activation-after-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/active.https-expected.txt:
* web-platform-tests/service-workers/service-worker/appcache-ordering-main.https-expected.txt:
* web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/claim-fetch.https-expected.txt:
* web-platform-tests/service-workers/service-worker/claim-not-using-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/claim-using-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/claim-worker-fetch.https-expected.txt:
* web-platform-tests/service-workers/service-worker/client-id.https-expected.txt:
* web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-get-client-types.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-get-cross-origin.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-matchall-on-evaluation.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-matchall-order.https-expected.txt:
* web-platform-tests/service-workers/service-worker/clients-matchall.https-expected.txt:
* web-platform-tests/service-workers/service-worker/controller-on-disconnect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/controller-on-load.https-expected.txt:
* web-platform-tests/service-workers/service-worker/controller-on-reload.https-expected.txt:
* web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:
* web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-csp.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-header-visibility.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr-sync.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-response-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https-expected.txt:
* web-platform-tests/service-workers/service-worker/foreign-fetch-basics.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/foreign-fetch-cors.https-expected.txt:
* web-platform-tests/service-workers/service-worker/foreign-fetch-event.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/foreign-fetch-workers.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/getregistrations.https-expected.txt:
* web-platform-tests/service-workers/service-worker/http-to-https-redirect-and-register.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/iframe-sandbox-register-link-element.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/immutable-prototype-serviceworker.https-expected.txt:
* web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https-expected.txt:
* web-platform-tests/service-workers/service-worker/indexeddb.https-expected.txt:
* web-platform-tests/service-workers/service-worker/install-event-type.https-expected.txt:
* web-platform-tests/service-workers/service-worker/installing.https-expected.txt:
* web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt:
* web-platform-tests/service-workers/service-worker/invalid-blobtype.https-expected.txt:
* web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt:
* web-platform-tests/service-workers/service-worker/iso-latin1-header.https-expected.txt:
* web-platform-tests/service-workers/service-worker/link-element-register-basic.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/link-element-register-mime-types.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/link-element-register-scope.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/link-element-register-script-url.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/link-element-register-script.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/link-element-register-security-error.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/mime-sniffing.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https-expected.txt:
* web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt:
* web-platform-tests/service-workers/service-worker/multiple-update.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/request-headers.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-redirect-body.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-redirect-to-http.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/onactivate-script-error.https-expected.txt:
* web-platform-tests/service-workers/service-worker/oninstall-script-error.https-expected.txt:
* web-platform-tests/service-workers/service-worker/opaque-response-preloaded.https-expected.txt:
* web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/postmessage-blob-url.https-expected.txt:
* web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt:
* web-platform-tests/service-workers/service-worker/postmessage-msgport-to-client.https-expected.txt:
* web-platform-tests/service-workers/service-worker/postmessage-to-client.https-expected.txt:
* web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
* web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
* web-platform-tests/service-workers/service-worker/referer.https-expected.txt:
* web-platform-tests/service-workers/service-worker/referrer-policy-header.https-expected.txt:
* web-platform-tests/service-workers/service-worker/register-default-scope.https-expected.txt:
* web-platform-tests/service-workers/service-worker/register-foreign-fetch-errors.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:
* web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-basic.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-end-to-end.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-events.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-script-url.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:
* web-platform-tests/service-workers/service-worker/request-body-blob.https-expected.txt:
* web-platform-tests/service-workers/service-worker/request-end-to-end.https-expected.txt:
* web-platform-tests/service-workers/service-worker/resource-timing.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https-expected.txt:
* web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https-expected.txt:
* web-platform-tests/service-workers/service-worker/shared-worker-controlled.https-expected.txt:
* web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt:
* web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/skip-waiting-without-client.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/skip-waiting.https-expected.txt:
* web-platform-tests/service-workers/service-worker/state.https-expected.txt:
* web-platform-tests/service-workers/service-worker/synced-state.https-expected.txt:
* web-platform-tests/service-workers/service-worker/uncontrolled-page.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
* web-platform-tests/service-workers/service-worker/unregister.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update-after-oneday.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update-bytecheck.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update.https-expected.txt:
* web-platform-tests/service-workers/service-worker/waiting.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/websocket.https-expected.txt:
* web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:
* web-platform-tests/service-workers/service-worker/xhr.https-expected.txt:

Source/WebCore:

Fake series of events that are supposed to happen after registering a service worker
that notify the page of the service worker's installation and activation.

Also make sure that registration.installing / waiting / active return proper values.
Make sure that serviceWorker.scriptURL returns a proper value.

This unblocks a lot of web-platform-tests since they were blocked shortly after
registration due to missing events or registration.installing being null.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::activeServiceWorker const):
(WebCore::ScriptExecutionContext::setActiveServiceWorker):
* dom/ScriptExecutionContext.h:
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::prepareFetch):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
* workers/service/ServiceWorker.cpp:
(WebCore::ServiceWorker::ServiceWorker):
(WebCore::ServiceWorker::setState):
* workers/service/ServiceWorker.h:
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::controller const):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
* workers/service/ServiceWorkerContainer.h:
* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::~ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::installing):
(WebCore::ServiceWorkerRegistration::waiting):
(WebCore::ServiceWorkerRegistration::active):
* workers/service/ServiceWorkerRegistration.h:
* workers/service/ServiceWorkerRegistrationData.cpp:
(WebCore::ServiceWorkerRegistrationData::isolatedCopy const):
* workers/service/ServiceWorkerRegistrationData.h:
(WebCore::ServiceWorkerRegistrationData::encode const):
(WebCore::ServiceWorkerRegistrationData::decode):
* workers/service/server/SWClientConnection.cpp:
(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::scriptContextStarted):
(WebCore::SWServerRegistration::runRegisterJob):
(WebCore::SWServerRegistration::data const):
* workers/service/server/SWServerRegistration.h:

LayoutTests:

Update tests that are skipped due to timing out.

* TestExpectations:

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

2 years agoWe need a storeStoreFence before storing to the instruction stream's live variable...
sbarati@apple.com [Tue, 31 Oct 2017 01:15:08 +0000 (01:15 +0000)]
We need a storeStoreFence before storing to the instruction stream's live variable catch data
https://bugs.webkit.org/show_bug.cgi?id=178649

Reviewed by Keith Miller.

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

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

2 years ago[iOS] Rebaseline and re-enable CSS tests
ryanhaddad@apple.com [Mon, 30 Oct 2017 23:48:21 +0000 (23:48 +0000)]
[iOS] Rebaseline and re-enable CSS tests
https://bugs.webkit.org/show_bug.cgi?id=178746

Unreviewed test gardening.

* platform/ios-simulator/TestExpectations:
* platform/ios-wk2/TestExpectations:
[ truncated ]

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

2 years agoUse LazyNeverDestroyed instead of DEFINE_GLOBAL for XMLNames, HTMLNames, MathMLNames...
commit-queue@webkit.org [Mon, 30 Oct 2017 23:41:01 +0000 (23:41 +0000)]
Use LazyNeverDestroyed instead of DEFINE_GLOBAL for XMLNames, HTMLNames, MathMLNames and SVGNames
https://bugs.webkit.org/show_bug.cgi?id=175118

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-10-30
Reviewed by Alex Christensen.

Source/WebCore:

Stop using DEFINE_GLOBAL hack in favor of LazyNeverDestroyed.

No new tests since there should be no behavioral change.

* dom/make_names.pl:
(printConstructors):
(printNamesHeaderFile):
(printNamesCppFile):
(printDefinitions):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole const):
* css/StyleResolver.cpp:
(WebCore::hasEffectiveDisplayNoneForDisplayContents):
* dom/CustomElementReactionQueue.cpp:
(WebCore::CustomElementReactionQueue::observesStyleAttribute const):
* dom/Document.cpp:
(WebCore::Document::validateCustomElementName):
* dom/Element.cpp:
(WebCore::isStyleAttribute):
(WebCore::canAttachAuthorShadowRoot):
* dom/ElementData.cpp:
(WebCore::ElementData::findLanguageAttribute const):
* domjit/JSDocumentDOMJIT.cpp:
(WebCore::compileDocumentBodyAttribute):
* editing/Editor.cpp:
(WebCore::Editor::applyEditingStyleToBodyElement const):
* editing/EditorCommand.cpp:
(WebCore::valueDefaultParagraphSeparator):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::appendNamespace):
(WebCore::MarkupAccumulator::elementCannotHaveEndTag):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isProhibitedParagraphChild):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::isCaseSensitiveAttribute):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::createEventHandlerNameMap):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::findFosterSite):
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::hasTemplateInHTMLScope const):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
(WebCore::HTMLTreeBuilder::processEndOfFileForInTemplateContents):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::insertPhoneNumberLink):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::insertFakePreElement):
* rendering/svg/SVGPathData.cpp:
(WebCore::pathFromGraphicsElement):
* rendering/svg/SVGResources.cpp:
(WebCore::clipperFilterMaskerTags):
(WebCore::markerTags):
(WebCore::fillAndStrokeTags):
(WebCore::chainableResourceTags):
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedLengthList.h:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedNumberList.h:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedString.h:
* svg/SVGAnimatedTransformList.h:
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isSupportedAttribute):
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::isSupportedAttribute):
* svg/SVGElement.cpp:
(WebCore::createAttributeNameToCSSPropertyIDMap):
(WebCore::SVGElement::childShouldCreateRenderer const):
(WebCore::SVGElement::animatableAttributeForName):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::isSupportedAttribute):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::isSupportedAttribute):
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::isSupportedAttribute):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::isSupportedAttribute):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::isSupportedAttribute):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::isSupportedAttribute):
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::isSupportedAttribute):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::dPropertyInfo):
(WebCore::SVGPathElement::isSupportedAttribute):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::isSupportedAttribute):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::pointsPropertyInfo):
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::isSupportedAttribute):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthPropertyInfo):
(WebCore::SVGTextContentElement::isSupportedAttribute):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::isSupportedAttribute):
* svg/SVGUseElement.cpp:
(WebCore::createAllowedElementSet):
* xml/NativeXPathNSResolver.cpp:
(WebCore::NativeXPathNSResolver::lookupNamespaceURI):
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::parseDocumentFragment):

Source/WebKit:

* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:
(WebKit::wrap):

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

2 years agoUnreviewed, skip cache storage WPT tests that cause flaky crashes on the bots
cdumez@apple.com [Mon, 30 Oct 2017 23:35:46 +0000 (23:35 +0000)]
Unreviewed, skip cache storage WPT tests that cause flaky crashes on the bots
https://bugs.webkit.org/show_bug.cgi?id=179035

* TestExpectations:

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

2 years agoWeb Inspector: [PARITY] Styles Redesign: Ability to modify style attributes
nvasilyev@apple.com [Mon, 30 Oct 2017 23:11:06 +0000 (23:11 +0000)]
Web Inspector: [PARITY] Styles Redesign: Ability to modify style attributes
https://bugs.webkit.org/show_bug.cgi?id=178328
<rdar://problem/35000990>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Before this patch, modifying a property of a style attribute duplicated the old property
and appended the new one. This happened because WI.TextRange.prototype.resolveOffsets
didn't resolve offsets correctly when text didn't end with a trailing new line.

Since WI.TextRange.prototype.resolveOffsets is used elsewhere and this could be expected
behavior, append a line break before resolving a range.

* UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype._updateOwnerStyleText):

LayoutTests:

Add tests for WI.TextRange.protopyte.resolveOffsets.

* inspector/unit-tests/text-range-expected.txt: Added.
* inspector/unit-tests/text-range.html: Added.

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

2 years agoFollowup rebaseline to r224204.
jlewis3@apple.com [Mon, 30 Oct 2017 23:08:29 +0000 (23:08 +0000)]
Followup rebaseline to r224204.

Unreviewed test gardening.

* platform/mac-elcapitan-wk2/http/tests/contentextensions/make-https-expected.txt: Added.
* platform/mac-sierra-wk2/http/tests/contentextensions/make-https-expected.txt: Added.

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

2 years ago[WebGL] Optimization to skip painting if texture and source surface hasn't changed...
jer.noble@apple.com [Mon, 30 Oct 2017 22:43:56 +0000 (22:43 +0000)]
[WebGL] Optimization to skip painting if texture and source surface hasn't changed isn't working; re-optimize.
https://bugs.webkit.org/show_bug.cgi?id=178953

Reviewed by Dean Jackson.

The "seed" value of the current bound texture never matches the last saved value in
VideoTextureCopierCV::copyImageToPlatformTexture(). The value is modified by the function
itself, so a fresh value needs to be re-queried after the image's surface is attached to the
texture.

Once this fix is in, however, the <canvas> being painted will flash when no new image is
available. This is because the wrong texture target is being restored by the GC3DStateSaver
at the end of copyImageToPlatformTexture(). While we're fixing that, we may as well use the
texture state saved by the GraphicsContext3D itself to restore the correct texture unit,
texture target, and texture.

* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::activeTextureUnit const):
(WebCore::GraphicsContext3D::currentBoundTexture const):
(WebCore::GraphicsContext3D::currentBoundTarget const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTexture const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTexture const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTarget const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTarget const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTexture): Deleted.
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTexture): Deleted.
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTarget): Deleted.
* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):
(WebCore::VideoTextureCopierCV::GC3DStateSaver::GC3DStateSaver):
(WebCore::VideoTextureCopierCV::GC3DStateSaver::~GC3DStateSaver):
* platform/graphics/cv/VideoTextureCopierCV.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::activeTexture):
(WebCore::GraphicsContext3D::bindTexture):

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

2 years agoWKBundlePageWillSendSubmitEventCallback is called with incorrect frame parameter
mcatanzaro@igalia.com [Mon, 30 Oct 2017 22:42:23 +0000 (22:42 +0000)]
WKBundlePageWillSendSubmitEventCallback is called with incorrect frame parameter
https://bugs.webkit.org/show_bug.cgi?id=176719

Reviewed by Chris Dumez.

Source/WebCore:

WKBundlePageWillSendSubmitEventCallback is clearly intended to parallel
WKBundlePageWillSubmitFormCallback, since almost all the parameters are the same. Now, in
WKBundlePageWillSubmitFormCallback, the first WKBundleFrameRef, "frame", is the frame of the
form target, and the second WKBundleFrameRef, sourceFrame, is the frame containing the form.
That's correct. But in WKBundlePageWillSendSubmitEventCallback, both frame and sourceFrame
are always identical. The problem is that the FrameLoaderClient delegate is called on the
wrong FrameLoaderClient. It should be called on the FrameLoaderClient of the target frame,
but HTMLFormElement calls it on the FrameLoaderClient of the source frame instead.

Fix this by factoring the target frame computation out of FormSubmission into some helpers.

* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::effectiveTarget const):
(WebCore::HTMLFormElement::findSubmitButton const):
* html/HTMLFormElement.h:
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):

Tools:

Test that WKBundlePageWillSendSubmitEventCallback is called with separate frame and
sourceFrame parameters when the target frame of the form submission is not the source frame.

* TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent.cpp:
(TestWebKitAPI::didReceiveMessageFromInjectedBundle):
* TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent_Bundle.cpp:
(TestWebKitAPI::willSendSubmitEvent):
* TestWebKitAPI/Tests/WebKit/auto-submitting-form.html:

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

2 years agoRebaselined imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https...
jlewis3@apple.com [Mon, 30 Oct 2017 22:32:13 +0000 (22:32 +0000)]
Rebaselined imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https.html for iOS after r224156.

Unreviewed test gardening.

* platform/ios-wk2/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https-expected.txt: Added.

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

2 years agoRebaselining multiple http/tests/websocket/tests/hybi/contentextensions/ test after...
jlewis3@apple.com [Mon, 30 Oct 2017 22:21:00 +0000 (22:21 +0000)]
Rebaselining multiple http/tests/websocket/tests/hybi/contentextensions/ test after r224031.

Unreviewed test gardening.

* http/tests/websocket/tests/hybi/contentextensions/upgrade-expected.txt:
* http/tests/websocket/tests/hybi/contentextensions/upgrade-worker-expected.txt:

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

2 years agoWeb Inspector: Clicking filler in data grid should clear selection
ross.kirsling@sony.com [Mon, 30 Oct 2017 22:08:01 +0000 (22:08 +0000)]
Web Inspector: Clicking filler in data grid should clear selection
https://bugs.webkit.org/show_bug.cgi?id=179027

Reviewed by Brian Burg.

* UserInterface/Views/DataGrid.js:
(WI.DataGrid.prototype._mouseDownInDataTable):

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

2 years agoASSERTION FAILED: internalValuesConsistent(m_url) in WebCore::URLParser::URLParser
achristensen@apple.com [Mon, 30 Oct 2017 21:55:28 +0000 (21:55 +0000)]
ASSERTION FAILED: internalValuesConsistent(m_url) in WebCore::URLParser::URLParser
https://bugs.webkit.org/show_bug.cgi?id=178861

Reviewed by Tim Horton.

Source/WebCore:

This is a dark corner of the URL spec that has wildly different behavior in different browsers.
The assertion fired when we have a file URL with a ? or a # after file:// and it was because
m_pathAfterLastSlash was still 0. We definitely shouldn't assert. I'm making us consistent with
other cases where we have nothing there and add an implied missing slash.

Covered by new API tests.

* platform/URLParser.cpp:
(WebCore::URLParser::parse):

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):

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

2 years agoCorrectly determine affinity when inserting text via Keyboard Suggestions
megan_gardner@apple.com [Mon, 30 Oct 2017 21:24:37 +0000 (21:24 +0000)]
Correctly determine affinity when inserting text via Keyboard Suggestions
https://bugs.webkit.org/show_bug.cgi?id=178969

Reviewed by Ryosuke Niwa.

Source/WebCore:

There has been talk about renaming these enums, but in the meantime we should at least have a comment
clarifying what they actually mean.

No new tests only adding a comment, no tests needed.

* editing/TextAffinity.h:

Source/WebKit:

Use the logic of VisiblePosition to correctly determine cursor affinity. We were
defaulting to upstream, but that in incorrect and resulted in hitting asserts that
we should not. This should give us the correct affinity in all cases.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::syncApplyAutocorrection):

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

2 years agoWeb Inspector: Canvas Tab: no path components shown in recording content view after...
webkit@devinrousso.com [Mon, 30 Oct 2017 20:53:02 +0000 (20:53 +0000)]
Web Inspector: Canvas Tab: no path components shown in recording content view after selecting a recording via View Recordings... dropdown
https://bugs.webkit.org/show_bug.cgi?id=178807
<rdar://problem/35176463>

Reviewed by Brian Burg.

When the first Recording is taken of a canvas, it is immediately added as a child. When the
CanvasTreeElement is `attached`, however, it will attempt to regenerate its children if
necessary. This is especially true for canvases with ShaderPrograms, as they are added with
`addRepresentedObjectToNewChildQueue`, meaning that the child TreeElements aren't actually
added until the next tick, preventing the ContentBrowser logic from generating path
components correctly.

This patch switches to using `addChildForRepresentedObject` so that there is no delay when
adding children, and also ensures that any existing recordings are also added on regeneration.

* UserInterface/Views/CanvasTabContentView.js:
(WI.CanvasTabContentView.prototype._recordingAdded):
Move logic for adding TreeElements for new Recordings to CanvasTreeElement.

* UserInterface/Views/CanvasTreeElement.js:
(WI.CanvasTreeElement.createRecordingTreeElement):
(WI.CanvasTreeElement):
(WI.CanvasTreeElement.prototype.onattach):
(WI.CanvasTreeElement.prototype.ondetach):
(WI.CanvasTreeElement.prototype.onpopulate):
(WI.CanvasTreeElement.prototype._handleItemAdded):
(WI.CanvasTreeElement.prototype._handleItemRemoved):
(WI.CanvasTreeElement.prototype._shaderProgramAdded): Deleted.
(WI.CanvasTreeElement.prototype._shaderProgramRemoved): Deleted.

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

2 years agoCrash in addChildNodesToDeletionQueue
rniwa@webkit.org [Mon, 30 Oct 2017 20:37:37 +0000 (20:37 +0000)]
Crash in addChildNodesToDeletionQueue
https://bugs.webkit.org/show_bug.cgi?id=178974
<rdar://problem/35234372>

Reviewed by Brent Fulgham.

Source/WebCore:

The bug was caused by HTMLConstructionSite::insertTextNode constructing an ill-formed tree
when fostering parent under a template element by adjusting HTMLConstructionSiteTask's parent
without clearing nextChild. Fixed the crash by simply removing this code since executeTask
already takes care of fostering the parent in static inline insert(HTMLConstructionSiteTask&).

Test: fast/parser/foster-parent-under-template.html

* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertTextNode):

LayoutTests:

Add a regression test.

* fast/parser/foster-parent-inside-template-expected.txt: Added.
* fast/parser/foster-parent-inside-template.html: Added.
* resources/dump-as-markup.js:
(Markup._get): Fixed the bug that this code would always throw an exception inside a browser.

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

2 years agoUnreviewed, rolling out r224078.
commit-queue@webkit.org [Mon, 30 Oct 2017 20:31:22 +0000 (20:31 +0000)]
Unreviewed, rolling out r224078.
https://bugs.webkit.org/show_bug.cgi?id=179026

MotionMark regression (Requested by shallawa on #webkit).

Reverted changeset:

"When navigating back to a page, compositing layers may not
use accelerated drawing"
https://bugs.webkit.org/show_bug.cgi?id=178749
https://trac.webkit.org/changeset/224078

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

2 years agoEliminate Basic compiler test from RexBench
msaboff@apple.com [Mon, 30 Oct 2017 20:00:18 +0000 (20:00 +0000)]
Eliminate Basic compiler test from RexBench
https://bugs.webkit.org/show_bug.cgi?id=179025

Reviewed by Saam Barati.

* RexBench/Basic: Removed.
* RexBench/Basic/ast.js: Removed.
* RexBench/Basic/basic.js: Removed.
* RexBench/Basic/benchmark.js: Removed.
* RexBench/Basic/caseless_map.js: Removed.
* RexBench/Basic/lexer.js: Removed.
* RexBench/Basic/number.js: Removed.
* RexBench/Basic/parser.js: Removed.
* RexBench/Basic/random.js: Removed.
* RexBench/Basic/state.js: Removed.
* RexBench/Basic/stress-test.js: Removed.
* RexBench/Basic/util.js: Removed.
* RexBench/basic_benchmark.js: Removed.
* RexBench/about.html:
* RexBench/cli.js:
* RexBench/glue.js:
* RexBench/index.html:

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

2 years ago[Setting] Only expose experimental features that are compiled in
commit-queue@webkit.org [Mon, 30 Oct 2017 19:45:49 +0000 (19:45 +0000)]
[Setting] Only expose experimental features that are compiled in
https://bugs.webkit.org/show_bug.cgi?id=179023

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

* Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:

    Update template to conditionally expose experimental features based on their
    'condition' option in WebPreferences.yaml

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

2 years agoImplement "bitmaprenderer" CanvasRenderingContext
dino@apple.com [Mon, 30 Oct 2017 19:34:42 +0000 (19:34 +0000)]
Implement "bitmaprenderer" CanvasRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=178992
<rdar://problem/34147157>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update the expected results now more of the interface has
been added.

* web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached-expected.txt:

Source/WebCore:

Implement the "bitmaprenderer" context for HTMLCanvasElement.
Use as much of the existing 2d context code as possible, which
means that we are painting the ImageBitmap into the backing
store. This isn't optimal, but it is good enough to get
going while we move buffer ownership from the canvas object
into the rendering contexts.

This patch raised a few issues on the HTML specification:
https://github.com/whatwg/html/issues/3164
https://github.com/whatwg/html/issues/3165
https://github.com/whatwg/html/issues/3166
https://github.com/whatwg/html/issues/3167

Update existing Web Platform Test results.

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createContext2d): Drive-by comment fix.
(WebCore::HTMLCanvasElement::createContextWebGL): Ditto.
(WebCore::HTMLCanvasElement::createContextWebGPU): Ditto.
(WebCore::HTMLCanvasElement::createContextBitmapRenderer): We now require
a layer/backing store for a bitmap context.
(WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer const): Add bitmap-renderer
to the type of context that uses the canvas's backing store.
(WebCore::HTMLCanvasElement::createImageBuffer const): Comment fix.
(WebCore::HTMLCanvasElement::setImageBuffer const): Change parameter to a &&.
(WebCore::HTMLCanvasElement::setImageBufferAndMarkDirty): New function to set
the backing store efficiently, as well as make it look like we need to repaint
the entire canvas.
(WebCore::HTMLCanvasElement::drawingContext const): The buffer doesn't actually
need to provide a GraphicsContext if we're a bitmap renderer.
* html/HTMLCanvasElement.h:

* html/ImageBitmap.cpp:
(WebCore::ImageBitmap::transferOwnershipAndClose): New helper to give the ownership
of the ImageBuffer away, and look like close() was called.
* html/ImageBitmap.h:

* html/canvas/ImageBitmapRenderingContext.cpp: Implement the algorithm from the HTML
specification.
(WebCore::ImageBitmapRenderingContext::ImageBitmapRenderingContext):
(WebCore::ImageBitmapRenderingContext::isAccelerated const):
(WebCore::ImageBitmapRenderingContext::setOutputBitmap):
(WebCore::ImageBitmapRenderingContext::transferFromImageBitmap):
* html/canvas/ImageBitmapRenderingContext.h:
* html/canvas/ImageBitmapRenderingContext.idl:

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

2 years agoRemove flaky expectation for contentextension tests.
ryanhaddad@apple.com [Mon, 30 Oct 2017 18:44:44 +0000 (18:44 +0000)]
Remove flaky expectation for contentextension tests.
https://bugs.webkit.org/show_bug.cgi?id=162942

Unreviewed test gardening.

The underlying issue was resolved a while ago, but this expectation was not removed.

* platform/mac-wk2/TestExpectations:

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

2 years agotab-size: 0px asserts
simon.fraser@apple.com [Mon, 30 Oct 2017 18:23:24 +0000 (18:23 +0000)]
tab-size: 0px asserts
https://bugs.webkit.org/show_bug.cgi?id=176198

Reviewed by Antti Koivisto.

Don't claim to support tab-size values with units. We don't, and they would become 0, rather
than fall back to the default as should happen.

Source/WebCore:

Enhanced fast/css/tab-size.html to test.

* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeTabSize):

LayoutTests:

* fast/css/tab-size-expected.html:
* fast/css/tab-size.html:

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

2 years ago[WPE] Fix build warnings
mcatanzaro@igalia.com [Mon, 30 Oct 2017 18:21:02 +0000 (18:21 +0000)]
[WPE] Fix build warnings
https://bugs.webkit.org/show_bug.cgi?id=178899

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

* PlatformWPE.cmake:

Source/WebCore:

These are actually mostly cross-platform issues.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::arrayBufferViewElementSize):
* platform/Cairo.cmake:
* platform/Curl.cmake:
* platform/FreeType.cmake:
* platform/GCrypt.cmake:
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::SoupNetworkSession):

Source/WebKit:

* PlatformWPE.cmake:

Source/WTF:

* wtf/PlatformWPE.cmake:

Tools:

* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(testContextMenuDownloadActions):
(testBlobDownload):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewJavaScriptDialogs):
* TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
* WebKitTestRunner/PlatformWPE.cmake:
* WebKitTestRunner/wpe/HeadlessViewBackend.cpp:
* WebKitTestRunner/wpe/TestControllerWPE.cpp:
(WTR::threadDefaultContext): Deleted.

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

2 years ago[Settings] Replace macro driven experimental features code with generated code
commit-queue@webkit.org [Mon, 30 Oct 2017 18:16:11 +0000 (18:16 +0000)]
[Settings] Replace macro driven experimental features code with generated code
https://bugs.webkit.org/show_bug.cgi?id=178994

Patch by Sam Weinig <sam@webkit.org> on 2017-10-30
Reviewed by Simon Fraser.

As a first step toward allowing experimental features to vary based on compile
time flags, replace the macro driven implementation of the WebPreferences part
of experimental features, with one generated from a template file.

* CMakeLists.txt:
* DerivedSources.make:
* Scripts/GeneratePreferences.rb:
* WebKit.xcodeproj/project.pbxproj:

    Generate the new template.

* Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: Added.
* UIProcess/WebPreferences.cpp:
(WebKit::createExperimentalFeaturesVector): Deleted.
(WebKit::WebPreferences::experimentalFeatures): Deleted.
(WebKit::WebPreferences::isEnabledForFeature const): Deleted.
(WebKit::WebPreferences::setEnabledForFeature): Deleted.
(WebKit::WebPreferences::enableAllExperimentalFeatures): Deleted.

    Replace macro implementation with template generated one.

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

2 years ago[WPE] Upstream or stop using cairo-egl-device-create-for-egl-surface.patch
mcatanzaro@igalia.com [Mon, 30 Oct 2017 18:13:59 +0000 (18:13 +0000)]
[WPE] Upstream or stop using cairo-egl-device-create-for-egl-surface.patch
https://bugs.webkit.org/show_bug.cgi?id=178898

Reviewed by Žan Doberšek.

This patch seems to be unused.

* wpe/jhbuild.modules:
* wpe/patches/cairo-egl-device-create-for-egl-surface.patch: Removed.

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

2 years ago[WPE] Build more files under WebCore as unified sources and get rid of WebCorePlatfor...
mcatanzaro@igalia.com [Mon, 30 Oct 2017 18:12:04 +0000 (18:12 +0000)]
[WPE] Build more files under WebCore as unified sources and get rid of WebCorePlatformWPE build target
https://bugs.webkit.org/show_bug.cgi?id=178964

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

This also gets rid of the WebCorePlatformWPE build target to simplify the build. It links to
all the same libraries as the WebCore target, so it doesn't seem to have any purpose. Bye.

Some CMake files under platform are not unified, either because there is not much to gain
(e.g. ImageDecoders, where everything is in a separate directory), or because it is complex
(e.g. GStreamer, where GObject implementations would be tricky to build unified), and
because we're limited to using only features declared in WebKitFeatures.cmake inside the
unified sources lists, which makes some of the platform files a bit tricky (notably,
anything that needs to go into WebCorePlatformGTK for the GTK port). So it's not perfect.

* PlatformWPE.cmake:
* SourcesWPE.txt: Added.
* crypto/gcrypt/GCryptUtilities.h:
* platform/Cairo.cmake:
* platform/GCrypt.cmake:
* platform/SourcesCairo.txt: Added.
* platform/SourcesGCrypt.txt: Added.
* platform/SourcesGLib.txt: Added.
* platform/SourcesSoup.txt: Added.

Source/WebKit:

* PlatformWPE.cmake:

Tools:

* TestWebKitAPI/PlatformWPE.cmake:

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

2 years ago[Web Animations] Rewrite homegrown tests as Web Platform tests
commit-queue@webkit.org [Mon, 30 Oct 2017 18:09:54 +0000 (18:09 +0000)]
[Web Animations] Rewrite homegrown tests as Web Platform tests
https://bugs.webkit.org/show_bug.cgi?id=179017

We rewrite all of the new homegrown Web Animations tests as Web Platorm tests,
except for one test which checks dumping of the document timeline using an
internals method which is not appropriate as a WPT.

Patch by Antoine Quint <graouts@apple.com> on 2017-10-30
Reviewed by Dean Jackson.

* http/wpt/wk-web-animations/timing-model/animation-creation-basic-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-creation-basic.html: Added.
* http/wpt/wk-web-animations/timing-model/animation-current-time-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-current-time.html: Added.
* http/wpt/wk-web-animations/timing-model/animation-effect-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-effect-timing-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-effect-timing.html: Added.
* http/wpt/wk-web-animations/timing-model/animation-effect.html: Added.
* http/wpt/wk-web-animations/timing-model/animation-interface-effect-property-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-interface-effect-property.html: Added.
* http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property.html: Added.
* http/wpt/wk-web-animations/timing-model/document-timeline-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/document-timeline.html: Added.
* http/wpt/wk-web-animations/timing-model/keyframe-effect-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration.html: Added.
* http/wpt/wk-web-animations/timing-model/keyframe-effect.html: Added.
* http/wpt/wk-web-animations/timing-model/timeline-current-time-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/timeline-current-time.html: Added.
* webanimations/animation-creation-basic-expected.txt: Removed.
* webanimations/animation-creation-basic.html: Removed.
* webanimations/animation-current-time-expected.txt: Removed.
* webanimations/animation-current-time.html: Removed.
* webanimations/animation-effect-expected.txt: Removed.
* webanimations/animation-effect-timing-expected.txt: Removed.
* webanimations/animation-effect-timing.html: Removed.
* webanimations/animation-effect.html: Removed.
* webanimations/animation-interface-effect-property-expected.txt: Removed.
* webanimations/animation-interface-effect-property.html: Removed.
* webanimations/animation-interface-start-time-property-expected.txt: Removed.
* webanimations/animation-interface-start-time-property.html: Removed.
* webanimations/document-timeline-expected.txt: Removed.
* webanimations/document-timeline.html: Removed.
* webanimations/keyframe-effect-expected.txt: Removed.
* webanimations/keyframe-effect-interface-timing-duration-expected.txt: Removed.
* webanimations/keyframe-effect-interface-timing-duration.html: Removed.
* webanimations/keyframe-effect.html: Removed.
* webanimations/timeline-current-time-expected.txt: Removed.
* webanimations/timeline-current-time.html: Removed.

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

2 years agoRemove more unused ENABLE(GAMEPAD_DEPRECATED) code
mcatanzaro@igalia.com [Mon, 30 Oct 2017 18:08:21 +0000 (18:08 +0000)]
Remove more unused ENABLE(GAMEPAD_DEPRECATED) code
https://bugs.webkit.org/show_bug.cgi?id=178364

Reviewed by Carlos Alberto Lopez Perez.

* Modules/gamepad/deprecated/Gamepad.cpp: Removed.
* Modules/gamepad/deprecated/Gamepad.h: Removed.
* Modules/gamepad/deprecated/Gamepad.idl: Removed.
* Modules/gamepad/deprecated/GamepadList.cpp: Removed.
* Modules/gamepad/deprecated/GamepadList.h: Removed.
* Modules/gamepad/deprecated/GamepadList.idl: Removed.
* Modules/gamepad/deprecated/NavigatorGamepad.cpp: Removed.
* Modules/gamepad/deprecated/NavigatorGamepad.h: Removed.
* Modules/gamepad/deprecated/NavigatorGamepad.idl: Removed.

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

2 years agoUse if conditional function in DerivedSources.make to reduce duplication
dbates@webkit.org [Mon, 30 Oct 2017 17:57:38 +0000 (17:57 +0000)]
Use if conditional function in DerivedSources.make to reduce duplication
https://bugs.webkit.org/show_bug.cgi?id=178989

Reviewed by Darin Adler.

In DerivedSources.make we currently duplicate most of the Makefile recipe for generating HTML/SVG
tags and attributes to support passing the optional command line option --extraDefines when one
or more HTML/SVG compile-time features are enabled. Instead we can make use of a Makefile
conditional function in the recipe itself to avoid code duplication.

* DerivedSources.make:

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

2 years ago[Win] Rebaseline tests after r224177.
pvollan@apple.com [Mon, 30 Oct 2017 17:39:38 +0000 (17:39 +0000)]
[Win] Rebaseline tests after r224177.

Unreviewed test gardening.

* platform/win/editing/deleting/4922367-expected.txt:
* platform/win/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
* platform/win/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
* platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
* platform/win/editing/deleting/delete-block-merge-contents-005-expected.txt:
* platform/win/editing/deleting/delete-block-merge-contents-006-expected.txt:
* platform/win/editing/deleting/delete-block-merge-contents-007-expected.txt:
* platform/win/editing/deleting/delete-block-merge-contents-008-expected.txt:
* platform/win/editing/deleting/delete-block-merge-contents-023-expected.txt:
* platform/win/editing/deleting/delete-block-merge-contents-024-expected.txt:
* platform/win/editing/deleting/delete-br-008-expected.txt:
* platform/win/editing/deleting/delete-br-009-expected.txt:
* platform/win/editing/deleting/delete-br-010-expected.txt:
* platform/win/editing/deleting/delete-line-015-expected.txt:
* platform/win/editing/deleting/delete-line-016-expected.txt:
* platform/win/editing/deleting/delete-line-017-expected.txt:
* platform/win/editing/deleting/merge-no-br-expected.txt:
* platform/win/editing/deleting/type-delete-after-quote-expected.txt:
* platform/win/editing/execCommand/4747450-expected.txt:
* platform/win/editing/execCommand/4916402-expected.txt:
* platform/win/editing/execCommand/4916541-expected.txt:
* platform/win/editing/execCommand/4924441-expected.txt:
* platform/win/editing/execCommand/5136770-expected.txt:
* platform/win/editing/execCommand/5142012-2-expected.txt:
* platform/win/editing/execCommand/5190926-expected.txt:
* platform/win/editing/execCommand/5481523-expected.txt:
* platform/win/editing/execCommand/create-list-with-hr-expected.txt:
* platform/win/editing/execCommand/indent-selection-expected.txt:
* platform/win/editing/execCommand/insert-list-and-stitch-expected.txt:
* platform/win/editing/execCommand/nsresponder-indent-expected.txt:
* platform/win/editing/inserting/insert-br-quoted-004-expected.txt:
* platform/win/editing/inserting/insert-br-quoted-006-expected.txt:
* platform/win/editing/style/4916887-expected.txt:
* platform/win/editing/style/5046875-1-expected.txt:
* platform/win/editing/style/5046875-2-expected.txt:
* platform/win/editing/style/5279521-expected.txt:
* platform/win/editing/style/create-block-for-style-003-expected.txt:
* platform/win/editing/style/create-block-for-style-004-expected.txt:
* platform/win/editing/style/create-block-for-style-007-expected.txt:
* platform/win/editing/style/create-block-for-style-009-expected.txt:
* platform/win/editing/style/create-block-for-style-010-expected.txt:
* platform/win/editing/style/create-block-for-style-011-expected.txt:
* platform/win/editing/style/create-block-for-style-012-expected.txt:
* platform/win/editing/style/create-block-for-style-013-expected.txt:
* platform/win/editing/style/smoosh-styles-001-expected.txt:
* platform/win/editing/style/style-boundary-005-expected.txt:
* platform/win/editing/unsupported-content/list-delete-001-expected.txt:
* platform/win/fast/forms/button-generated-content-expected.txt:
* platform/win/fast/ruby/rubyDOM-remove-text2-expected.txt:

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

2 years agoRebaselined imported/w3c/web-platform-tests/service-workers/service-worker/fetch...
jlewis3@apple.com [Mon, 30 Oct 2017 17:28:16 +0000 (17:28 +0000)]
Rebaselined imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https.html for iOS.

Unreviewed test gardening.

* platform/ios-wk2/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Added.

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

2 years ago[Web Animations] Add Web Platform tests
commit-queue@webkit.org [Mon, 30 Oct 2017 16:15:16 +0000 (16:15 +0000)]
[Web Animations] Add Web Platform tests
https://bugs.webkit.org/show_bug.cgi?id=178999

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

The vast majority is failing, as expected due to the nascent status of our Web Animations implementation.

* http/wpt/web-animations/OWNERS: Added.
* http/wpt/web-animations/README.md: Added.
* http/wpt/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added.
* http/wpt/web-animations/animation-model/animation-types/accumulation-per-property.html: Added.
* http/wpt/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added.
* http/wpt/web-animations/animation-model/animation-types/addition-per-property.html: Added.
* http/wpt/web-animations/animation-model/animation-types/discrete-animation-expected.txt: Added.
* http/wpt/web-animations/animation-model/animation-types/discrete-animation.html: Added.
* http/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added.
* http/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html: Added.
* http/wpt/web-animations/animation-model/animation-types/property-list.js: Added.
(testAnimationSamplesWithAnyOrder):
(isSupported):
(TestKeyframe.):
(TestKeyframe.get Object):
(TestKeyframe):
(get propertyToIDL):
(calcFromPercentage):
* http/wpt/web-animations/animation-model/animation-types/property-types.js: Added.
(const.discreteType.):
(const.discreteType.testInterpolation):
(const.discreteType.testAdditionOrAccumulation):
(const.discreteType.testAddition):
(const.discreteType.testAccumulation):
(const.lengthType.testInterpolation):
(const.lengthType.testAdditionOrAccumulation):
(const.lengthType.testAddition):
(const.lengthType.testAccumulation):
(const.lengthPairType.testInterpolation):
(const.lengthPairType.testAdditionOrAccumulation):
(const.lengthPairType.testAddition):
(const.lengthPairType.testAccumulation):
(const.percentageType.testInterpolation):
(const.percentageType.testAdditionOrAccumulation):
(const.percentageType.testAddition):
(const.percentageType.testAccumulation):
(const.integerType.testInterpolation):
(const.integerType.testAdditionOrAccumulation):
(const.integerType.testAddition):
(const.integerType.testAccumulation):
(const.positiveIntegerType.testInterpolation):
(const.positiveIntegerType.testAdditionOrAccumulation):
(const.positiveIntegerType.testAddition):
(const.positiveIntegerType.testAccumulation):
(const.lengthPercentageOrCalcType.testInterpolation):
(const.lengthPercentageOrCalcType.testAdditionOrAccumulation):
(const.lengthPercentageOrCalcType.testAddition):
(const.lengthPercentageOrCalcType.testAccumulation):
(const.positiveNumberType.testInterpolation):
(const.positiveNumberType.testAdditionOrAccumulation):
(const.positiveNumberType.testAddition):
(const.positiveNumberType.testAccumulation):
(const.opacityType.testInterpolation):
(const.opacityType.testAdditionOrAccumulation):
(const.opacityType.testAddition):
(const.opacityType.testAccumulation):
(const.visibilityType.testInterpolation):
(const.visibilityType.testAdditionOrAccumulation):
(const.visibilityType.testAddition):
(const.visibilityType.testAccumulation):
(const.colorType.testInterpolation):
(const.colorType.testAdditionOrAccumulation):
(const.colorType.testAddition):
(const.colorType.testAccumulation):
(const.transformListType.testInterpolation):
(const.transformListType.testAddition):
(const.transformListType.testAccumulation):
(const.filterListType.testInterpolation):
(const.filterListType.testAddition):
(const.filterListType.testAccumulation):
(const.textShadowListType.testInterpolation):
(const.textShadowListType.testAddition):
(const.textShadowListType.testAccumulation):
(const.boxShadowListType.testInterpolation):
(const.boxShadowListType.testAddition):
(const.boxShadowListType.testAccumulation):
(const.positionType.testInterpolation):
(const.positionType.testAdditionOrAccumulation):
(const.positionType.testAddition):
(const.positionType.testAccumulation):
(const.rectType.testInterpolation):
(const.rectType.testAdditionOrAccumulation):
(const.rectType.testAddition):
(const.rectType.testAccumulation):
(const.dasharrayType.testInterpolation):
(const.dasharrayType.testAdditionOrAccumulation):
(const.dasharrayType.testAddition):
(const.dasharrayType.testAccumulation):
(const.fontStretchType.testInterpolation):
(const.fontStretchType.testAdditionOrAccumulation):
(const.fontStretchType.testAddition):
(const.fontStretchType.testAccumulation):
(const.fontVariationSettingsType.testInterpolation):
(const.fontVariationSettingsType.testAdditionOrAccumulation):
(const.fontVariationSettingsType.testAddition):
(const.fontVariationSettingsType.testAccumulation):
* http/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt: Added.
* http/wpt/web-animations/animation-model/combining-effects/effect-composition.html: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-context.html: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-overlapping-keyframes-expected.txt: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-overlapping-keyframes.html: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-visibility-expected.txt: Added.
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-visibility.html: Added.
* http/wpt/web-animations/interfaces/Animatable/animate-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context.html: Added.
* http/wpt/web-animations/interfaces/Animatable/animate.html: Added.
* http/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animatable/getAnimations.html: Added.
* http/wpt/web-animations/interfaces/Animation/cancel-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/cancel.html: Added.
* http/wpt/web-animations/interfaces/Animation/constructor-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/constructor.html: Added.
* http/wpt/web-animations/interfaces/Animation/effect-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/effect.html: Added.
* http/wpt/web-animations/interfaces/Animation/finish-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/finish.html: Added.
* http/wpt/web-animations/interfaces/Animation/finished-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/finished.html: Added.
* http/wpt/web-animations/interfaces/Animation/id-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/id.html: Added.
* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/idlharness.html: Added.
* http/wpt/web-animations/interfaces/Animation/oncancel-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/oncancel.html: Added.
* http/wpt/web-animations/interfaces/Animation/onfinish-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/onfinish.html: Added.
* http/wpt/web-animations/interfaces/Animation/pause-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/pause.html: Added.
* http/wpt/web-animations/interfaces/Animation/play-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/play.html: Added.
* http/wpt/web-animations/interfaces/Animation/playState-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/playState.html: Added.
* http/wpt/web-animations/interfaces/Animation/playbackRate-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/playbackRate.html: Added.
* http/wpt/web-animations/interfaces/Animation/ready-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/ready.html: Added.
* http/wpt/web-animations/interfaces/Animation/startTime-expected.txt: Added.
* http/wpt/web-animations/interfaces/Animation/startTime.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/delay.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/direction-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/direction.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/duration-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/duration.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/easing.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/fill-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/fill.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart.html: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations.html: Added.
* http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline.html: Added.
* http/wpt/web-animations/interfaces/AnimationTimeline/idlharness-expected.txt: Added.
* http/wpt/web-animations/interfaces/AnimationTimeline/idlharness.html: Added.
* http/wpt/web-animations/interfaces/Document/getAnimations-expected.txt: Added.
* http/wpt/web-animations/interfaces/Document/getAnimations.html: Added.
* http/wpt/web-animations/interfaces/DocumentTimeline/constructor-expected.txt: Added.
* http/wpt/web-animations/interfaces/DocumentTimeline/constructor.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/composite.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/constructor-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/constructor.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/copy-constructor.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/getComputedTiming-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/getComputedTiming.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/setTarget-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffect/setTarget.html: Added.
* http/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-constructor-expected.txt: Added.
* http/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-constructor.html: Added.
* http/wpt/web-animations/resources/easing-tests.js: Added.
(easingFunction.stepStart):
(easingFunction.stepEnd):
(easingFunction.framesTiming):
(easingFunction.cubicBezier):
* http/wpt/web-animations/resources/effect-tests.js: Added.
(assert_computed_timing_for_each_phase):
* http/wpt/web-animations/resources/keyframe-utils.js: Added.
(assert_frame_lists_equal):
(assert_frames_equal):
* http/wpt/web-animations/resources/xhr-doc.py: Added.
(main):
* http/wpt/web-animations/testcommon.js: Added.
(window.assert_times_equal.window.assert_times_equal):
(createDiv):
(createElement):
(createStyle):
(createPseudo):
(xForT):
(yForT):
(tForX):
(return.bezierClosure):
(cubicBezier):
(stepEnd.return.stepEndClosure):
(stepEnd):
(stepStart.return.stepStartClosure):
(stepStart):
(framesTiming.return.framesClosure):
(framesTiming):
(waitForAnimationFrames):
(rotate3dToMatrix3d):
(rotate3dToMatrix):
(assert_matrix_equals):
* http/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt: Added.
* http/wpt/web-animations/timing-model/animation-effects/active-time.html: Added.
* http/wpt/web-animations/timing-model/animation-effects/current-iteration-expected.txt: Added.
* http/wpt/web-animations/timing-model/animation-effects/current-iteration.html: Added.
* http/wpt/web-animations/timing-model/animation-effects/local-time-expected.txt: Added.
* http/wpt/web-animations/timing-model/animation-effects/local-time.html: Added.
* http/wpt/web-animations/timing-model/animation-effects/phases-and-states-expected.txt: Added.
* http/wpt/web-animations/timing-model/animation-effects/phases-and-states.html: Added.
* http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress-expected.txt: Added.
* http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress.html: Added.
* http/wpt/web-animations/timing-model/animations/canceling-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/canceling-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/current-time-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/current-time.html: Added.
* http/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/finishing-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/pausing-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/playing-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/reversing-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/set-the-animation-start-time.html: Added.
* http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html: Added.
* http/wpt/web-animations/timing-model/animations/updating-the-finished-state-expected.txt: Added.
* http/wpt/web-animations/timing-model/animations/updating-the-finished-state.html: Added.
* http/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt: Added.
* http/wpt/web-animations/timing-model/time-transformations/transformed-progress.html: Added.

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

2 years ago[Web Animations] Expose the playbackRate property on Animation
graouts@webkit.org [Mon, 30 Oct 2017 15:09:02 +0000 (15:09 +0000)]
[Web Animations] Expose the playbackRate property on Animation
https://bugs.webkit.org/show_bug.cgi?id=178931

Reviewed by Sam Weinig.

Source/WebCore:

Account for the playback rate when computing and setting an animation's
current time, ensuring that we adjust the start time to preserve the
current time when setting a new playback rate.

Test: http/wpt/wk-web-animations/timing-model/animation-playback-rate.html

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::currentTime const):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::setPlaybackRate):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:

LayoutTests:

Add a new test, using WPT, to check that the playbackRate property is accounted
for when getting and setting the current time.

* http/wpt/wk-web-animations/timing-model/animation-playback-rate-expected.txt: Added.
* http/wpt/wk-web-animations/timing-model/animation-playback-rate.html: Added.

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

2 years agoRemove support for running safari on the iOS simulator with Xcode < 9.0
fred.wang@free.fr [Mon, 30 Oct 2017 14:44:25 +0000 (14:44 +0000)]
Remove support for running safari on the iOS simulator with Xcode < 9.0
https://bugs.webkit.org/show_bug.cgi?id=178203

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

This is a follow-up of r223234. We no longer support iOS WebKit development for Xcode < 9.0
and do not have any iOS simulator builders in our infrastructure. Hence we can remove the
special case to calculate the iOS simulator applications path for these old versions.

* Scripts/webkitdirs.pm:
(iosSimulatorApplicationsPath): Remove special case for XCode < 9.0

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

2 years ago[WPE][GTK] Expose availability of certain editing commands in WebKitEditorState
mcatanzaro@igalia.com [Mon, 30 Oct 2017 14:20:47 +0000 (14:20 +0000)]
[WPE][GTK] Expose availability of certain editing commands in WebKitEditorState
https://bugs.webkit.org/show_bug.cgi?id=168219

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make Editor::canUndo and Editor::canRedo const.

Also, remove unused allowsCopy from HitTestResult.

* editing/Editor.cpp:
(WebCore::Editor::canUndo const):
(WebCore::Editor::canRedo const):
(WebCore::Editor::canUndo): Deleted.
(WebCore::Editor::canRedo): Deleted.
* editing/Editor.h:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::allowsCopy const): Deleted.
* rendering/HitTestResult.h:
* rendering/SelectionRangeData.cpp:

Source/WebKit:

Expose canCut, canCopy, canPaste, canUndo, and canRedo in EditorState::PostLayouData.

Add corresponding new WPE/GTK API.

Remove allowsCopy from WebKitTestResultData. It's unused, does not work correctly in all
circumstances, and irritates Ryosuke.

Also, remove a bunch of #ifs guarding post layout data, since it's now used on all ports.

* Shared/EditorState.cpp:
(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
* Shared/EditorState.h:
(WebKit::EditorState::postLayoutData const const):
* Shared/WebHitTestResultData.cpp:
(WebKit::WebHitTestResultData::WebHitTestResultData):
(WebKit::WebHitTestResultData::encode const):
(WebKit::WebHitTestResultData::decode):
* Shared/WebHitTestResultData.h:
* UIProcess/API/APIHitTestResult.h:
(API::HitTestResult::allowsCopy const): Deleted.
* UIProcess/API/glib/WebKitEditorState.cpp:
(webkitEditorStateChanged):
(webkit_editor_state_is_cut_available):
(webkit_editor_state_is_copy_available):
(webkit_editor_state_is_paste_available):
(webkit_editor_state_is_undo_available):
(webkit_editor_state_is_redo_available):
* UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_can_execute_editing_command):
* UIProcess/API/gtk/WebKitEditorState.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
* UIProcess/API/wpe/WebKitEditorState.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState const):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performImmediateActionHitTestAtLocation):

Tools:

Test it.

* TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
(testWebViewEditorCutCopyPasteNonEditable):
(testWebViewEditorCutCopyPasteEditable):
(testWebViewEditorSelectAllNonEditable):
(testWebViewEditorSelectAllEditable):
(loadContentsAndTryToCutSelection):
(testWebViewEditorNonEditable):
(testWebViewEditorEditorStateTypingAttributes):
(testWebViewEditorInsertImage):
(testWebViewEditorCreateLink):

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

2 years ago[GTK] Rebaseline affected tests after r224177
clopez@igalia.com [Mon, 30 Oct 2017 13:39:27 +0000 (13:39 +0000)]
[GTK] Rebaseline affected tests after r224177
https://bugs.webkit.org/show_bug.cgi?id=178933

Unreviewed gardening.

* platform/gtk/editing/deleting/4922367-expected.txt:
* platform/gtk/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
* platform/gtk/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
* platform/gtk/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
* platform/gtk/editing/deleting/delete-block-merge-contents-005-expected.txt:
* platform/gtk/editing/deleting/delete-block-merge-contents-006-expected.txt:
* platform/gtk/editing/deleting/delete-block-merge-contents-007-expected.txt:
* platform/gtk/editing/deleting/delete-block-merge-contents-008-expected.txt:
* platform/gtk/editing/deleting/delete-block-merge-contents-023-expected.txt:
* platform/gtk/editing/deleting/delete-block-merge-contents-024-expected.txt:
* platform/gtk/editing/deleting/delete-br-008-expected.txt:
* platform/gtk/editing/deleting/delete-br-010-expected.txt:
* platform/gtk/editing/deleting/delete-line-015-expected.txt:
* platform/gtk/editing/deleting/delete-line-016-expected.txt:
* platform/gtk/editing/deleting/delete-line-017-expected.txt:
* platform/gtk/editing/deleting/merge-no-br-expected.txt:
* platform/gtk/editing/deleting/type-delete-after-quote-expected.txt:
* platform/gtk/editing/execCommand/4747450-expected.txt:
* platform/gtk/editing/execCommand/4916402-expected.txt:
* platform/gtk/editing/execCommand/4916541-expected.txt:
* platform/gtk/editing/execCommand/4924441-expected.txt:
* platform/gtk/editing/execCommand/5136770-expected.txt:
* platform/gtk/editing/execCommand/5142012-2-expected.txt:
* platform/gtk/editing/execCommand/5190926-expected.txt:
* platform/gtk/editing/execCommand/5481523-expected.txt:
* platform/gtk/editing/execCommand/create-list-with-hr-expected.txt:
* platform/gtk/editing/execCommand/indent-selection-expected.txt:
* platform/gtk/editing/execCommand/insert-list-and-stitch-expected.txt:
* platform/gtk/editing/execCommand/nsresponder-indent-expected.txt:
* platform/gtk/editing/inserting/insert-br-quoted-004-expected.txt:
* platform/gtk/editing/inserting/insert-br-quoted-006-expected.txt:
* platform/gtk/editing/pasteboard/5071074-2-expected.txt:
* platform/gtk/editing/pasteboard/displaced-generic-placeholder-expected.txt:
* platform/gtk/editing/pasteboard/displaced-placeholder-expected.txt:
* platform/gtk/editing/pasteboard/merge-after-delete-2-expected.txt:
* platform/gtk/editing/pasteboard/merge-after-delete-expected.txt:
* platform/gtk/editing/pasteboard/merge-end-blockquote-expected.txt:
* platform/gtk/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt:
* platform/gtk/editing/pasteboard/paste-line-endings-008-expected.txt:
* platform/gtk/editing/pasteboard/paste-match-style-001-expected.txt:
* platform/gtk/editing/pasteboard/paste-text-008-expected.txt:
* platform/gtk/editing/pasteboard/paste-text-009-expected.txt:
* platform/gtk/editing/pasteboard/smart-paste-007-expected.txt:
* platform/gtk/editing/pasteboard/smart-paste-008-expected.txt:
* platform/gtk/editing/pasteboard/undoable-fragment-removes-expected.txt:
* platform/gtk/editing/pasteboard/unrendered-br-expected.txt:
* platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
* platform/gtk/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
* platform/gtk/editing/style/4916887-expected.txt:
* platform/gtk/editing/style/5046875-1-expected.txt:
* platform/gtk/editing/style/5046875-2-expected.txt:
* platform/gtk/editing/style/5279521-expected.txt:
* platform/gtk/editing/style/create-block-for-style-003-expected.txt:
* platform/gtk/editing/style/create-block-for-style-004-expected.txt:
* platform/gtk/editing/style/create-block-for-style-007-expected.txt:
* platform/gtk/editing/style/create-block-for-style-009-expected.txt:
* platform/gtk/editing/style/create-block-for-style-010-expected.txt:
* platform/gtk/editing/style/create-block-for-style-011-expected.txt:
* platform/gtk/editing/style/create-block-for-style-012-expected.txt:
* platform/gtk/editing/style/create-block-for-style-013-expected.txt:
* platform/gtk/editing/unsupported-content/list-delete-001-expected.txt:
* platform/gtk/fast/forms/button-generated-content-expected.txt:

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

2 years agoDestroy all unneeded anonymous wrappers in RenderObject::removeFromParentAndDestroyCl...
antti@apple.com [Mon, 30 Oct 2017 11:13:49 +0000 (11:13 +0000)]
Destroy all unneeded anonymous wrappers in RenderObject::removeFromParentAndDestroyCleaningUpAnonymousWrappers()
https://bugs.webkit.org/show_bug.cgi?id=178933

Reviewed by Zalan Bujtas.

Source/WebCore:

Currently it just cleans up table related wrappers.

* rendering/RenderObject.cpp:
(WebCore::findDestroyRootIncludingAnonymous):

Continuations are left as future work.

LayoutTests:

Many leftover empty anonymous wrappers go away in render tree dumps. No visual impact.

* editing/deleting/delete-br-009-expected.txt:
* platform/ios-wk2/editing/execCommand/4747450-expected.txt:
* platform/ios-wk2/editing/execCommand/4924441-expected.txt:
* platform/ios-wk2/editing/inserting/insert-br-quoted-004-expected.txt:
* platform/ios-wk2/editing/inserting/insert-br-quoted-006-expected.txt:
* platform/ios-wk2/editing/pasteboard/merge-end-blockquote-expected.txt:
* platform/ios-wk2/editing/pasteboard/paste-line-endings-008-expected.txt:
* platform/ios-wk2/editing/pasteboard/paste-match-style-001-expected.txt:
* platform/ios-wk2/editing/pasteboard/paste-text-008-expected.txt:
* platform/ios-wk2/editing/pasteboard/paste-text-009-expected.txt:
* platform/ios-wk2/editing/pasteboard/undoable-fragment-removes-expected.txt:
* platform/ios-wk2/editing/pasteboard/unrendered-br-expected.txt:
* platform/ios-wk2/editing/style/4916887-expected.txt:
* platform/ios-wk2/editing/style/5046875-1-expected.txt:
* platform/ios-wk2/editing/style/5046875-2-expected.txt:
* platform/ios-wk2/editing/style/5279521-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-003-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-004-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-007-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-009-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-010-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-011-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-012-expected.txt:
* platform/ios-wk2/editing/style/create-block-for-style-013-expected.txt:
* platform/ios/editing/deleting/4922367-expected.txt:
* platform/ios/editing/deleting/type-delete-after-quote-expected.txt:
* platform/ios/editing/execCommand/4916402-expected.txt:
* platform/ios/editing/execCommand/4916541-expected.txt:
* platform/ios/editing/execCommand/5136770-expected.txt:
* platform/ios/editing/execCommand/5142012-2-expected.txt:
* platform/ios/editing/execCommand/5190926-expected.txt:
* platform/ios/editing/execCommand/5481523-expected.txt:
* platform/ios/editing/pasteboard/5071074-2-expected.txt:
* platform/ios/editing/pasteboard/displaced-generic-placeholder-expected.txt:
* platform/ios/editing/pasteboard/displaced-placeholder-expected.txt:
* platform/ios/editing/pasteboard/merge-after-delete-2-expected.txt:
* platform/ios/editing/pasteboard/merge-after-delete-expected.txt:
* platform/ios/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt:
* platform/ios/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
* platform/ios/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
* platform/ios/fast/forms/button-generated-content-expected.txt:
* platform/ios/fast/ruby/rubyDOM-remove-text2-expected.txt:
* platform/mac-elcapitan/fast/forms/button-generated-content-expected.txt:
* platform/mac/editing/deleting/4922367-expected.txt:
* platform/mac/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
* platform/mac/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
* platform/mac/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
* platform/mac/editing/deleting/delete-block-merge-contents-005-expected.txt:
* platform/mac/editing/deleting/delete-block-merge-contents-006-expected.txt:
* platform/mac/editing/deleting/delete-block-merge-contents-007-expected.txt:
* platform/mac/editing/deleting/delete-block-merge-contents-008-expected.txt:
* platform/mac/editing/deleting/delete-block-merge-contents-023-expected.txt:
* platform/mac/editing/deleting/delete-block-merge-contents-024-expected.txt:
* platform/mac/editing/deleting/delete-br-008-expected.txt:
* platform/mac/editing/deleting/delete-br-010-expected.txt:
* platform/mac/editing/deleting/delete-line-015-expected.txt:
* platform/mac/editing/deleting/delete-line-016-expected.txt:
* platform/mac/editing/deleting/delete-line-017-expected.txt:
* platform/mac/editing/deleting/merge-no-br-expected.txt:
* platform/mac/editing/deleting/type-delete-after-quote-expected.txt:
* platform/mac/editing/execCommand/4747450-expected.txt:
* platform/mac/editing/execCommand/4916402-expected.txt:
* platform/mac/editing/execCommand/4916541-expected.txt:
* platform/mac/editing/execCommand/4924441-expected.txt:
* platform/mac/editing/execCommand/5136770-expected.txt:
* platform/mac/editing/execCommand/5142012-2-expected.txt:
* platform/mac/editing/execCommand/5190926-expected.txt:
* platform/mac/editing/execCommand/5481523-expected.txt:
* platform/mac/editing/execCommand/create-list-with-hr-expected.txt:
* platform/mac/editing/execCommand/indent-selection-expected.txt:
* platform/mac/editing/execCommand/insert-list-and-stitch-expected.txt:
* platform/mac/editing/execCommand/nsresponder-indent-expected.txt:
* platform/mac/editing/inserting/break-blockquote-after-delete-expected.txt:
* platform/mac/editing/inserting/insert-br-quoted-004-expected.txt:
* platform/mac/editing/inserting/insert-br-quoted-006-expected.txt:
* platform/mac/editing/pasteboard/5071074-2-expected.txt:
* platform/mac/editing/pasteboard/displaced-generic-placeholder-expected.txt:
* platform/mac/editing/pasteboard/displaced-placeholder-expected.txt:
* platform/mac/editing/pasteboard/merge-after-delete-2-expected.txt:
* platform/mac/editing/pasteboard/merge-after-delete-expected.txt:
* platform/mac/editing/pasteboard/merge-end-blockquote-expected.txt:
* platform/mac/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt:
* platform/mac/editing/pasteboard/paste-line-endings-008-expected.txt:
* platform/mac/editing/pasteboard/paste-match-style-001-expected.txt:
* platform/mac/editing/pasteboard/paste-text-008-expected.txt:
* platform/mac/editing/pasteboard/paste-text-009-expected.txt:
* platform/mac/editing/pasteboard/smart-paste-007-expected.txt:
* platform/mac/editing/pasteboard/smart-paste-008-expected.txt:
* platform/mac/editing/pasteboard/undoable-fragment-removes-expected.txt:
* platform/mac/editing/pasteboard/unrendered-br-expected.txt:
* platform/mac/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
* platform/mac/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
* platform/mac/editing/style/4916887-expected.txt:
* platform/mac/editing/style/5046875-1-expected.txt:
* platform/mac/editing/style/5046875-2-expected.txt:
* platform/mac/editing/style/5279521-expected.txt:
* platform/mac/editing/style/create-block-for-style-003-expected.txt:
* platform/mac/editing/style/create-block-for-style-004-expected.txt:
* platform/mac/editing/style/create-block-for-style-007-expected.txt:
* platform/mac/editing/style/create-block-for-style-009-expected.txt:
* platform/mac/editing/style/create-block-for-style-010-expected.txt:
* platform/mac/editing/style/create-block-for-style-011-expected.txt:
* platform/mac/editing/style/create-block-for-style-012-expected.txt:
* platform/mac/editing/style/create-block-for-style-013-expected.txt:
* platform/mac/editing/style/smoosh-styles-001-expected.txt:
* platform/mac/editing/style/style-boundary-005-expected.txt:
* platform/mac/editing/style/unbold-in-bold-expected.txt:
* platform/mac/editing/unsupported-content/list-delete-001-expected.txt:
* platform/mac/fast/forms/button-generated-content-expected.txt:
* platform/mac/fast/ruby/rubyDOM-remove-text2-expected.txt:

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

2 years agoRemove reference to RenderTreeInternalMutationScope
zalan@apple.com [Mon, 30 Oct 2017 10:23:10 +0000 (10:23 +0000)]
Remove reference to RenderTreeInternalMutationScope
https://bugs.webkit.org/show_bug.cgi?id=178998
<rdar://problem/35246464>

Reviewed by Antti Koivisto.

We don't have such class anymore.

No change in functionality.

* rendering/RenderView.h:

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

2 years ago[GTK] Web Inspector: Add Path.svg
commit-queue@webkit.org [Mon, 30 Oct 2017 09:07:27 +0000 (09:07 +0000)]
[GTK] Web Inspector: Add Path.svg
https://bugs.webkit.org/show_bug.cgi?id=178432

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-10-30
Reviewed by Carlos Garcia Campos.

* UserInterface/Images/gtk/Path.svg: Added.

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

2 years agoWeb Inspector: [PARITY] Styles Redesign: clicking on the white space after the proper...
nvasilyev@apple.com [Mon, 30 Oct 2017 08:43:53 +0000 (08:43 +0000)]
Web Inspector: [PARITY] Styles Redesign: clicking on the white space after the property should create a blank property
https://bugs.webkit.org/show_bug.cgi?id=178022
<rdar://problem/34861687>

Reviewed by Matt Baker.

- Clicking on the whitespace on the right side of a property should insert a blank property after the clicked one.
- Clicking on the whitespace at the end of a CSS rule should append a blank property.
- Clicking on the whitespace before the first property should insert a blank property before the first one.

* UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.remove):
(WI.CSSProperty.prototype._updateOwnerStyleText):
Remove method previously didn't do anything for a newly added property.

* UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.newBlankProperty):
Update indices of all properties after the newly added property.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.isFocused):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._addBlankProperty): Deleted.
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._isFocused): Deleted.
Re-layout SpreadsheetCSSStyleDeclarationEditor after adding a new property. Preserve edited property
so we can restore editing state after the re-layout.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
Clicking should add a new property only when we aren't editing an existing property.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.updateClassNames):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
Remove newlyAdded property of SpreadsheetStyleProperty. During layout SpreadsheetCSSStyleDeclarationEditor
recreates SpreadsheetStyleProperty views and newlyAdded property gets lost.

* UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField.prototype.get valueBeforeEditing):
(WI.SpreadsheetTextField.prototype.startEditing):
(WI.SpreadsheetTextField.prototype.stopEditing):
(WI.SpreadsheetTextField.prototype._discardChange):

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

2 years ago[GCrypt] Add support for P-521 EC curves
zandobersek@gmail.com [Mon, 30 Oct 2017 08:23:16 +0000 (08:23 +0000)]
[GCrypt] Add support for P-521 EC curves
https://bugs.webkit.org/show_bug.cgi?id=175199

Reviewed by Jiewen Tan.

Source/WebCore:

Add support for 521-bit elliptic curves in the libgcrypt-based
implementation of WebCrypto API.

In the CryptoAlgorithmECDH implementation, the bit-size of the key is now
rounded up to the next byte boundary and passed to the helper
gcryptDerive() function. There the size in bytes is used to zero-pad the
derived key data. This is done to properly handle derivation results for
the P-521 curves, where the leading zero bit could get clipped, resulting
in a derived key that is only 65 byes in length when it is expected to be
66 bytes. Further cleanups are done in gcryptDerive() to use the mpiData()
function where possible.

In the CryptoAlgorithmECDSA implementation, the bit-size of the key is
again rounded up to the nearest byte boundary before being passed to the
helper gcryptSign() and gcryptVerify() functions. This again properly
enforces the requirement of 66 bytes to handle P-521 elliptic curves.

In the CryptoKeyEC implementation, NamedCurve::P521 cases in helper
functions operating on NamedCurve values are now implemented to return
appropriate values. platformSupportedCurve() now returns true for the
NamedCurve::P521 value. Zero-padding of the private key data is used
wherever it is necessary to avoid clipping any leading zero bit in the
P-521 EC key.

No new tests -- affected tests have their baselines updated.

* crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp:
(WebCore::gcryptDerive):
(WebCore::CryptoAlgorithmECDH::platformDeriveBits):
* crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp:
(WebCore::CryptoAlgorithmECDSA::platformSign):
(WebCore::CryptoAlgorithmECDSA::platformVerify):
* crypto/gcrypt/CryptoKeyECGCrypt.cpp:
(WebCore::curveName):
(WebCore::curveIdentifier):
(WebCore::curveSize):
(WebCore::curveUncompressedFieldElementSize):
(WebCore::CryptoKeyEC::platformSupportedCurve):
(WebCore::curveForIdentifier):
(WebCore::CryptoKeyEC::platformImportPkcs8):
(WebCore::CryptoKeyEC::platformAddFieldElements const):
(WebCore::CryptoKeyEC::platformExportPkcs8 const):

LayoutTests:

Add or update Web Crypto test baselines for the GTK+ and WPE ports
to reflect the added EC P-521 support.

* platform/gtk/crypto/subtle/ec-generate-key-malformed-parameters-expected.txt: Added.
* platform/gtk/crypto/subtle/ecdh-derive-bits-length-limits-expected.txt: Added.
* platform/gtk/crypto/subtle/ecdh-import-spki-key-ecdh-identifier-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.https-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.https-expected.txt: Added.
* platform/wpe/crypto/subtle/ec-generate-key-malformed-parameters-expected.txt: Added.
* platform/wpe/crypto/subtle/ecdh-derive-bits-length-limits-expected.txt: Added.
* platform/wpe/crypto/subtle/ecdh-import-spki-key-ecdh-identifier-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.https-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.https-expected.txt: Added.

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

2 years ago[ARMv7] Fix initial start register support in YarrJIT
zandobersek@gmail.com [Mon, 30 Oct 2017 08:17:42 +0000 (08:17 +0000)]
[ARMv7] Fix initial start register support in YarrJIT
https://bugs.webkit.org/show_bug.cgi?id=178641

Reviewed by Saam Barati.

* yarr/YarrJIT.cpp: On ARMv7, use r8 as the initialStart register in the
YarrGenerator class. r6 should be avoided since it's already used inside
MacroAssemblerARMv7 as addressTempRegister. r7 isn't picked because it
can be used as the frame pointer register when targetting ARM Thumb2.

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

2 years ago[ARM64][Linux] Re-enable Gigacage
zandobersek@gmail.com [Mon, 30 Oct 2017 08:16:44 +0000 (08:16 +0000)]
[ARM64][Linux] Re-enable Gigacage
https://bugs.webkit.org/show_bug.cgi?id=178130

Reviewed by Michael Catanzaro.

Source/bmalloc:

* bmalloc/Gigacage.h: Re-enable Gigacage on ARM64 Linux.

Source/JavaScriptCore:

Guard the current globaladdr opcode implementation for ARM64 with
OS(DARWIN) as it's only usable for Mach-O.

For OS(LINUX), ELF-supported :got: and :got_lo12: relocation specifiers
have to be used. The .loh directive can't be used as it's not supported
in GCC or the ld linker.

On every other OS target, a compilation error is thrown.

* offlineasm/arm64.rb:

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

2 years agoUnreviewed WPE gardening. Skip Service Workers tests again after r224132.
carlosgc@webkit.org [Mon, 30 Oct 2017 08:15:18 +0000 (08:15 +0000)]
Unreviewed WPE gardening. Skip Service Workers tests again after r224132.

Service Workers tests were unskipped from main TestExpectations in r224132, but Service Workers are not enabled
in WPE port yet.

* platform/wpe/TestExpectations:

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

2 years agoUnreviewed GTK+ gardening. Skip Service Workers tests again after r224132.
carlosgc@webkit.org [Mon, 30 Oct 2017 08:13:52 +0000 (08:13 +0000)]
Unreviewed GTK+ gardening. Skip Service Workers tests again after r224132.

Service Workers tests were unskipped from main TestExpectations in r224132, but Service Workers are not enabled
in GTk+ port yet.

* platform/gtk/TestExpectations:

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

2 years agoUse of uninitialized value $targetIdlFile in hash element at preprocess-idls.pl line...
commit-queue@webkit.org [Mon, 30 Oct 2017 03:40:50 +0000 (03:40 +0000)]
Use of uninitialized value $targetIdlFile in hash element at preprocess-idls.pl line 165.
https://bugs.webkit.org/show_bug.cgi?id=177743

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-10-29
Reviewed by Darin Adler.

GamepadWebVR.idl supplements Gamepad.idl. But, Gamepad.idl is not
processed because ENABLE_GAMEPAD is OFF.

No new tests since there should be no behavioral change.

* CMakeLists.txt: Include GamepadWebVR.idl only if ENABLE_GAMEPAD.
* Sources.txt: Ditto.
* bindings/scripts/preprocess-idls.pl: Die if a supplemented IDL file is not found.

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

2 years agoLayoutTests/imported/w3c:
cdumez@apple.com [Mon, 30 Oct 2017 00:04:40 +0000 (00:04 +0000)]
LayoutTests/imported/w3c:
Unreviewed, revaseline a few tests after r224156.

* web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/mime-sniffing.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
* web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
* web-platform-tests/streams/readable-byte-streams/detached-buffers.serviceworker.https-expected.txt:

LayoutTests:
Unreviewed, rebaseline a few tests after r224156.

* TestExpectations:

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

2 years ago[Conic Gradients] Add support for parsing conic gradients
weinig@apple.com [Sun, 29 Oct 2017 23:07:45 +0000 (23:07 +0000)]
[Conic Gradients] Add support for parsing conic gradients
https://bugs.webkit.org/show_bug.cgi?id=178987

Reviewed by Dean Jackson.

Source/WebCore:

Adds initial support, disabled by default, for parsing conic gradients as per
CSS 4 Images - https://www.w3.org/TR/css-images-4/#conic-gradients.

Test: fast/gradients/conic-gradient-parsing.html

* css/CSSGradientValue.cpp:
(WebCore::clone):
(WebCore::CSSGradientValue::isCacheable const):
(WebCore::CSSConicGradientValue::customCSSText const):
(WebCore::CSSConicGradientValue::createGradient):
(WebCore::CSSConicGradientValue::equals const):
* css/CSSGradientValue.h:

    Add CSSConicGradientValue as a subclass of CSSGradientValue and implement
    customCSSText() and equals(). Stub out createGradient() as painting is not
    yet implemented.

* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::isFixedSize const):
(WebCore::CSSImageGeneratorValue::fixedSize):
(WebCore::CSSImageGeneratorValue::isPending const):
(WebCore::CSSImageGeneratorValue::knownToBeOpaque const):
(WebCore::CSSImageGeneratorValue::loadSubimages):
* css/CSSValue.cpp:
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

    Dispatch to CSSConicGradientValue as needed.

* css/CSSValue.h:
(WebCore::CSSValue::isImageGeneratorValue const):
(WebCore::CSSValue::isGradientValue const):
(WebCore::CSSValue::isConicGradientValue const):

    Add conic gradient predicate support and update isImageGeneratorValue and
    isGradientValue to include conic gradient.

* css/CSSValueKeywords.in:

    Add conic-gradient and repeating-conic-gradient.

* css/parser/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
* css/parser/CSSParserMode.h:
(WebCore::CSSParserContextHash::hash):

    Add runtime flags to enable conic gradients.

* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):

    Helper, similar to consumeLengthOrPercent, for consumeGradientColorStops.
    Corresponds to https://drafts.csswg.org/css-values-4/#typedef-angle-percentage

(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):

    Convert to take CSSGradientValue by reference.

(WebCore::CSSPropertyParserHelpers::consumeAngularGradientColorStops):

    Helper, similar to consumeGradientColorStops, but for angular color stops
    used in conic gradients. Corresponds to https://www.w3.org/TR/css-images-4/#typedef-angular-color-stop-list
    but does not yet support double position syntax.

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):

    Pass CSSGradientValue by reference.

(WebCore::CSSPropertyParserHelpers::consumeConicGradient):

    Parse conic gradient.

(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):

    Dispatch to consumeConicGradient for repeating and non-repeating
    conic gradients.

(WebCore::CSSPropertyParserHelpers::isGeneratedImage):

    Put each value on its own line to make it more readable and add CSSValueConicGradient
    and CSSValueRepeatingConicGradient.

* page/Settings.yaml:

    Add a setting to enable conic gradients. Disabled by default.

* features.json:

    Move conic gradients to "In Development".

LayoutTests:

* http/wpt/css: Added.
* http/wpt/css/css-images-4: Added.
* http/wpt/css/css-images-4/conic-gradient-parsing-expected.txt: Added.
* http/wpt/css/css-images-4/conic-gradient-parsing.html: Added.

    Add tests for basic parsing of conic gradients.

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

2 years ago[Web Animations] Expose the currentTime property on Animation
graouts@webkit.org [Sun, 29 Oct 2017 21:08:46 +0000 (21:08 +0000)]
[Web Animations] Expose the currentTime property on Animation
https://bugs.webkit.org/show_bug.cgi?id=178988

Unreviewed.

Style fixes missed in previous patch.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setCurrentTime):

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

2 years ago[Web Animations] Expose the currentTime property on Animation
graouts@webkit.org [Sun, 29 Oct 2017 20:22:34 +0000 (20:22 +0000)]
[Web Animations] Expose the currentTime property on Animation
https://bugs.webkit.org/show_bug.cgi?id=178988

Reviewed by Dean Jackson.

Source/WebCore:

We now expose the currentTime property on Animation objects, our first
step in implementing the Web Animations timing model, specifically section
3.5.4. "The current time of an animation" and section 3.5.5. "Setting the
current time of an animation". Setting the startTime has implications on
currentTime and vice-versa.

Test: webanimations/animation-current-time.html

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setBindingsStartTime):
(WebCore::WebAnimation::startTime const):
(WebCore::WebAnimation::setStartTime):
(WebCore::WebAnimation::bindingsCurrentTime const):
(WebCore::WebAnimation::setBindingsCurrentTime):
(WebCore::WebAnimation::currentTime const):
(WebCore::WebAnimation::setCurrentTime):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:

LayoutTests:

Add a new test that checks that the currentTime property is set
correctly based on the startTime value and the document timeline
currentTime, and that setting the property may raise an exception
and otherwise update the animation startTime.

* webanimations/animation-current-time-expected.txt: Added.
* webanimations/animation-current-time.html: Added.

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

2 years agoAssert that no script is executed during style recalc
rniwa@webkit.org [Sun, 29 Oct 2017 10:15:55 +0000 (10:15 +0000)]
Assert that no script is executed during style recalc
https://bugs.webkit.org/show_bug.cgi?id=178845
<rdar://problem/35106129>

Reviewed by Antti Koivisto.

This patch adds NoEventDispatchAssertion to Document::updateStyle and Document::updateStyleIfNeeded
to make sure we don't start mutating DOM in the middle of a style update.

Added NoEventDispatchAssertion::EventAllowedScope for various places in SVGUseElement to update its
shadow tree since that happens while updating the style.

No new tests since there should be no behavioral change.

* dom/Document.cpp:
(WebCore::Document::resolveStyle): Added NoEventDispatchAssertion while flushing pending stylesheets
and calling FrameView::willRecalcStyle, and while the style tree solver is in works. Also moved in
the code to update the selection and schedule to dispatch a fake mouse event into the same scope.
Also increment m_styleRecalcCount in the same code since post resolution callbacks could run author
scripts which in turn trigger another (recursive) style recalc.
(WebCore::Document::updateStyleIfNeeded): Put everything but the call to resolveStyle in a scope with
NoEventDispatchAssertion.
* dom/Element.cpp:
(WebCore::Element::cloneElementWithChildren): Added NoEventDispatchAssertion::EventAllowedScope to the
newly cloned element for SVG use element's shadow tree.
(WebCore::Element::cloneElementWithoutChildren): Ditto.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent): Make the assertion more precise to workaround the fact SVG
use elements update its shadow tree in the middle of style updates. Also removed a redundant assertion
since the result of NoEventDispatchAssertion::isEventDispatchAllowedInSubtree cannot chance without
pushing or popoing the stack frame.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::clearShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Added NoEventDispatchAssertion to the user-agent shadow root
of a SVG use element. Since this is a newly created shadow tree which hasn't been exposed to author
scripts, it's safe to mutate them during the style recalc even though it's not the best design.
(WebCore::SVGUseElement::cloneTarget const): Ditto.
(WebCore::SVGUseElement::expandUseElementsInShadowTree const): Ditto.
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree const): Ditto.
(WebCore::SVGUseElement::transferEventListenersToShadowTree const):

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

2 years agocreateImageBitmap with HTMLCanvasElement
dino@apple.com [Sun, 29 Oct 2017 10:06:35 +0000 (10:06 +0000)]
createImageBitmap with HTMLCanvasElement
https://bugs.webkit.org/show_bug.cgi?id=178984
<rdar://problem/35238440>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update the expected results.

* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-sizeOverflow-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource-expected.txt:

Source/WebCore:

Implement createImageBitmap(HTMLCanvasElement).

While here, explicitly reject the promises for the
methods we haven't yet implemented. I was hoping this
would avoid a lengthy timeout in one of the imported
WPT tests but, alas, it doesn't. However, it's still
a good idea.

Extend internal WPT proposals to cover canvas creation.

* html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise): Get the image from
the canvas and draw it into a new ImageBitmap buffer.

LayoutTests:

Exercise new creation method.

* http/wpt/2dcontext/imagebitmap/common.js:
(create9x9CanvasWithTargetImage):
* http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt:
* http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing-expected.txt:
* http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing.html:
* http/wpt/2dcontext/imagebitmap/createImageBitmap.html:
* http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap-expected.txt:
* http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html:

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

2 years agoMake HTTPS WPT tests time out through testharness.js to get better error reports
commit-queue@webkit.org [Sun, 29 Oct 2017 05:31:44 +0000 (05:31 +0000)]
Make HTTPS WPT tests time out through testharness.js to get better error reports
https://bugs.webkit.org/show_bug.cgi?id=178982

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

* resources/testharnessreport.js: extending to tests run over HTTPS WPT port 9443.

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

2 years agoRebase WPT tests up to a1c0107
commit-queue@webkit.org [Sun, 29 Oct 2017 03:02:28 +0000 (03:02 +0000)]
Rebase WPT tests up to a1c0107
https://bugs.webkit.org/show_bug.cgi?id=178589

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

LayoutTests/imported/w3c:

* resources/TestRepositories:
* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests: Updated.

LayoutTests:

* TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Added.

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

2 years ago[iOS] Unify Font::platformCharWidthInit() with macOS
mmaxfield@apple.com [Sun, 29 Oct 2017 02:45:27 +0000 (02:45 +0000)]
[iOS] Unify Font::platformCharWidthInit() with macOS
https://bugs.webkit.org/show_bug.cgi?id=178951
<rdar://problem/7848198>

Reviewed by Zalan Bujtas.

Source/WebCore:

The only reason these codepaths are different is because historically this codepath
didn't work with GS fonts (which we don't use anymore).

Tests: fast/forms/search-styled.html
       fast/forms/text-control-intrinsic-widths.html
       fast/forms/textarea-width.html

* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformCharWidthInit):

LayoutTests:

Updating expected results.

* platform/ios-wk2/fast/forms/search-styled-expected.txt: Removed.
* platform/ios-wk2/fast/forms/text-control-intrinsic-widths-expected.txt: Removed.
* platform/ios-wk2/fast/forms/textarea-width-expected.txt: Removed.
* platform/ios/fast/forms/search-styled-expected.txt:
* platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
* platform/ios/fast/forms/textarea-width-expected.txt:

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

2 years ago[Settings] Generate more of the WebKit preferences code
weinig@apple.com [Sat, 28 Oct 2017 18:24:39 +0000 (18:24 +0000)]
[Settings] Generate more of the WebKit preferences code
https://bugs.webkit.org/show_bug.cgi?id=178945

Reviewed by Chris Dumez.

Generate WebPreferencesKeys.{h,cpp} and WebPreferencesStoreDefaultsMap.cpp

* CMakeLists.txt:
* DerivedSources.make:
* WebKit.xcodeproj/project.pbxproj:
* Scripts/GeneratePreferences.rb:

    Generate new files.

* Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:

    Update include.

* Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb: Added.
* Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb: Added.
* Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: Added.

    Add template files for new generated files.

* Shared/WebPreferencesDefaultValues.h: Copied from Source/WebKit/Shared/WebPreferencesDefinitionsBase.h.
* Shared/WebPreferencesDefinitionsBase.h:

    Renamed WebPreferencesDefinitionsBase.h to WebPreferencesDefaultValues.h to better indicate what it is.

* Shared/WebPreferencesKeys.cpp: Removed.
* Shared/WebPreferencesKeys.h: Removed.

    Replaced with generated versions.

* Shared/WebPreferencesStore.cpp:
(WebKit::defaults): Deleted.
* Shared/WebPreferencesStore.h:

    Replace macro driven defaults map with generated WebPreferencesStoreDefaultsMap.cpp.

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

2 years agoself.ExtendableEvent / Client / Clients / WindowClient do not exist in a Service...
cdumez@apple.com [Sat, 28 Oct 2017 17:40:54 +0000 (17:40 +0000)]
self.ExtendableEvent / Client / Clients / WindowClient do not exist in a Service Worker
https://bugs.webkit.org/show_bug.cgi?id=178976

Reviewed by Sam Weinig.

Source/WebCore:

Test: http/tests/workers/service/ServiceWorkerGlobalScope-properties.html

* workers/service/ExtendableEvent.idl:
* workers/service/FetchEvent.idl:
Drop [Exposed=Worker] as there is already [Exposed=ServiceWorker] and
ServiceWorkerGlobalScope inherits from WorkerGlobalScope. This is redundant
and we would hit assertions and adding the global constructors at runtime
when the feature is enabled, because the property already exists.

Source/WebKit:

Actually enable the Service Worker RuntimeEnabledFeature in the Service Worker
WebProcess.

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

LayoutTests:

Add layout test coverage.

* http/tests/workers/service/ServiceWorkerGlobalScope-properties-expected.txt: Added.
* http/tests/workers/service/ServiceWorkerGlobalScope-properties.html: Added.
* http/tests/workers/service/resources/ServiceWorkerGlobalScope-properties-worker.js: Added.

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

2 years agoUpdate testharness.js to work around our lack of support for MessagePort in service...
cdumez@apple.com [Sat, 28 Oct 2017 17:38:00 +0000 (17:38 +0000)]
Update testharness.js to work around our lack of support for MessagePort in service workers
https://bugs.webkit.org/show_bug.cgi?id=178977

Reviewed by Sam Weinig.

Update testharness.js to work around our lack of support for MessagePort in service workers, similarly
to what was already done for Edge.

* web-platform-tests/resources/testharness.js:

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

2 years ago[WPE] Build gst-plugins-base without pango support
mcatanzaro@igalia.com [Sat, 28 Oct 2017 17:18:46 +0000 (17:18 +0000)]
[WPE] Build gst-plugins-base without pango support
https://bugs.webkit.org/show_bug.cgi?id=178918

Reviewed by Carlos Garcia Campos.

We need to build gst-plugins-base without pango support for WPE. Let's use JHBuild
conditions so we can make platform-specific changes in the shared GStreamer moduleset.

* gstreamer/jhbuild.modules:
* gtk/jhbuildrc:
* wpe/jhbuildrc:

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

2 years ago[FrameView::layout cleanup] Move core layout logic to a separate class.
zalan@apple.com [Sat, 28 Oct 2017 15:24:58 +0000 (15:24 +0000)]
[FrameView::layout cleanup] Move core layout logic to a separate class.
https://bugs.webkit.org/show_bug.cgi?id=178771
<rdar://problem/35166542>

Reviewed by Simon Fraser.

Move layout code out from FrameView to LayoutContext.

Source/WebCore:

LayoutContext holds all the layout related logic (scheduling, needsLayout, handling layout states),
while scrolling, view sizing methods stay in FrameView.
Having a dedicated LayoutContext allows to structure the code better.

Covered by existing tests.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AXObjectCache.cpp:
(WebCore::rendererNeedsDeferredUpdate):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement const):
(WebCore::AccessibilityRenderObject::layoutCount const):
* dom/Document.cpp:
(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::resolveStyle):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayout):
(WebCore::Document::updateLayoutIfDimensionsOutOfDate):
(WebCore::Document::implicitClose):
(WebCore::Document::isLayoutTimerActive):
* dom/Element.cpp:
(WebCore::Element::absoluteEventHandlerBounds):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin const):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::didAttachRenderers):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopForUserCancel):
* page/Frame.cpp:
(WebCore::Frame::setView):
(WebCore::Frame::clearTimers):
(WebCore::Frame::setPageAndTextZoomFactors):
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::resetScrollbars):
(WebCore::FrameView::didFirstLayout const):
(WebCore::FrameView::willDestroyRenderTree):
(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::setContentsSize):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
(WebCore::FrameView::topContentInsetDidChange):
(WebCore::FrameView::forceLayoutParentViewIfNeeded):
(WebCore::FrameView::adjustScrollbarsForLayout):
(WebCore::FrameView::willDoLayout): This takes care of the view related task right before entering render tree layout.
(WebCore::FrameView::didLayout): post layout tasks.
(WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange):
(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::maintainScrollPositionAtAnchor):
(WebCore::FrameView::updateLayerPositionsAfterScrolling):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::updateContentsSize):
(WebCore::FrameView::needsLayout const):
(WebCore::FrameView::setNeedsLayout):
(WebCore::FrameView::scheduleSelectionUpdate):
(WebCore::FrameView::updateEmbeddedObjects):
(WebCore::FrameView::flushAnyPendingPostLayoutTasks):
(WebCore::FrameView::flushPostLayoutTasksQueue):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::sendResizeEventIfNeeded):
(WebCore::FrameView::autoSizeIfEnabled):
(WebCore::FrameView::paintControlTints):
(WebCore::FrameView::paintContents):
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
(WebCore::FrameView::enableAutoSizeMode):
(WebCore::FrameView::forceLayout):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer): Deleted.
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer): Deleted.
(WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree): Deleted.
(): Deleted.
(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker): Deleted.
(WebCore::applyTextSizingIfNeeded): Deleted.
(WebCore::FrameView::handleLayoutWithFrameFlatteningIfNeeded): Deleted.
(WebCore::FrameView::updateStyleForLayout): Deleted.
(WebCore::FrameView::canPerformLayout const): Deleted.
(WebCore::FrameView::layout): Deleted.
(WebCore::FrameView::runOrSchedulePostLayoutTasks): Deleted.
(WebCore::FrameView::convertSubtreeLayoutToFullLayout): Deleted.
(WebCore::FrameView::layoutTimerFired): Deleted.
(WebCore::FrameView::scheduleRelayout): Deleted.
(WebCore::isObjectAncestorContainerOf): Deleted.
(WebCore::FrameView::scheduleRelayoutOfSubtree): Deleted.
(WebCore::FrameView::layoutPending const): Deleted.
(WebCore::FrameView::unscheduleRelayout): Deleted.
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded): Deleted.
* page/FrameView.h:
* page/LayoutContext.cpp: Added.
(WebCore::isObjectAncestorContainerOf):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree):
(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker):
(WebCore::LayoutScope::LayoutScope):
(WebCore::LayoutScope::~LayoutScope):
(WebCore::LayoutContext::LayoutContext):
(WebCore::LayoutContext::layout):
(WebCore::LayoutContext::runOrScheduleAsynchronousTasks):
(WebCore::LayoutContext::runAsynchronousTasks):
(WebCore::LayoutContext::flushAsynchronousTasks):
(WebCore::LayoutContext::reset):
(WebCore::LayoutContext::needsLayout const):
(WebCore::LayoutContext::setNeedsLayout):
(WebCore::LayoutContext::enableSetNeedsLayout):
(WebCore::LayoutContext::disableSetNeedsLayout):
(WebCore::LayoutContext::scheduleLayout):
(WebCore::LayoutContext::unscheduleLayout):
(WebCore::LayoutContext::scheduleSubtreeLayout):
(WebCore::LayoutContext::layoutTimerFired):
(WebCore::LayoutContext::convertSubtreeLayoutToFullLayout):
(WebCore::LayoutContext::setSubtreeLayoutRoot):
(WebCore::LayoutContext::canPerformLayout const):
(WebCore::LayoutContext::applyTextSizingIfNeeded):
(WebCore::LayoutContext::updateStyleForLayout):
(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::LayoutContext::startLayoutAtMainFrameViewIfNeeded):
(WebCore::LayoutContext::frame const):
(WebCore::LayoutContext::view const):
(WebCore::LayoutContext::renderView const):
(WebCore::LayoutContext::document const):
* page/LayoutContext.h: Added.
(WebCore::LayoutContext::startDisallowingLayout):
(WebCore::LayoutContext::endDisallowingLayout):
(WebCore::LayoutContext::layoutPhase const):
(WebCore::LayoutContext::isLayoutNested const):
(WebCore::LayoutContext::layoutCount const):
(WebCore::LayoutContext::isLayoutPending const):
(WebCore::LayoutContext::isInLayout const):
(WebCore::LayoutContext::isInRenderTreeLayout const):
(WebCore::LayoutContext::inPaintableState const):
(WebCore::LayoutContext::subtreeLayoutRoot const):
(WebCore::LayoutContext::clearSubtreeLayoutRoot):
(WebCore::LayoutContext::resetFirstLayoutFlag):
(WebCore::LayoutContext::didFirstLayout const):
(WebCore::LayoutContext::setNeedsFullRepaint):
(WebCore::LayoutContext::needsFullRepaint const):
(WebCore::LayoutContext::layoutDisallowed const):
(WebCore::LayoutContext::isLayoutSchedulingEnabled const):
(WebCore::LayoutContext::inAsynchronousTasks const):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertPositionedObject):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged):
(WebCore::RenderBox::computeLogicalWidthInFragment const):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::clearSubtreeLayoutRootIfNeeded const):
(WebCore::RenderElement::checkForRepaintDuringLayout const):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::performLayoutWithFlattening):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
* rendering/RenderObject.cpp:
(WebCore::scheduleRelayoutForSubtree):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::updateWidgetPosition):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):
* testing/Internals.cpp:
(WebCore::Internals::layoutCount const):

Source/WebKitLegacy/mac:

* WebView/WebClipView.mm:
(-[WebClipView _immediateScrollToPoint:]):
* WebView/WebFrame.mm:
(-[WebFrame layoutCount]):

Source/WebKitLegacy/win:

* WebFrame.cpp:
(WebFrame::layout):

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

2 years agoMake postprocess-framework-headers.sh a little easier to read
commit-queue@webkit.org [Sat, 28 Oct 2017 14:51:30 +0000 (14:51 +0000)]
Make postprocess-framework-headers.sh a little easier to read
https://bugs.webkit.org/show_bug.cgi?id=178971

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-28
Reviewed by Sam Weinig.

* mac/postprocess-framework-headers.sh:

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

2 years agoCleanup PageDebuggable
commit-queue@webkit.org [Sat, 28 Oct 2017 14:36:21 +0000 (14:36 +0000)]
Cleanup PageDebuggable
https://bugs.webkit.org/show_bug.cgi?id=178972

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-28
Reviewed by Sam Weinig.

* page/PageDebuggable.cpp:
(WebCore::PageDebuggable::PageDebuggable):
* page/PageDebuggable.h:

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

2 years agoExtract a WorkerDebuggerProxy interface out of WorkerReportingProxy
commit-queue@webkit.org [Sat, 28 Oct 2017 14:35:48 +0000 (14:35 +0000)]
Extract a WorkerDebuggerProxy interface out of WorkerReportingProxy
https://bugs.webkit.org/show_bug.cgi?id=178975

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-28
Reviewed by Sam Weinig.

No new tests, just refactoring.

* workers/WorkerDebuggerProxy.h:
* workers/WorkerReportingProxy.h:
* WebCore.xcodeproj/project.pbxproj:
Extract a method from WorkerReportingProxy to WorkerDebuggerProxy and
rename it to be more general.

* inspector/WorkerToPageFrontendChannel.h:
(WebCore::WorkerToPageFrontendChannel::sendMessageToFrontend):
* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
* workers/DedicatedWorkerThread.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postMessageToDebugger):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector): Deleted.
* workers/WorkerMessagingProxy.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
* workers/WorkerThread.h:
(WebCore::WorkerThread::workerDebuggerProxy const):
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
* workers/service/context/ServiceWorkerThread.h:
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::create):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
Include a WorkerDebuggerProxy alongside the other proxies.
Use the renamed debugger proxy method.

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

2 years agoStyle::Scope::flushPendingUpdate() can replace the entire document in XSLTProcessor...
rniwa@webkit.org [Sat, 28 Oct 2017 09:17:59 +0000 (09:17 +0000)]
Style::Scope::flushPendingUpdate() can replace the entire document in XSLTProcessor::createDocumentFromSource
https://bugs.webkit.org/show_bug.cgi?id=178715
<rdar://problem/35144665>

Reviewed by Brent Fulgham.

Apply XLS tranforms when a 0s timer fires or the document finishes parsing or loading whichever comes first
instead of in the middle of collecting a list of stylesheets.

* dom/Document.cpp:
(WebCore::Document::Document): Initialize the newly added timer.
(WebCore::Document::implicitClose): Apply any pending XSLT before we fire load events since some of the event
handlers may be expecting to see the document after XSLT had been applied.
(WebCore::Document::scheduleToApplyXSLTransforms): Added.
(WebCore::Document::applyPendingXSLTransformsNowIfScheduled): Added.
(WebCore::Document::applyPendingXSLTransformsTimerFired): Added. Moved the logic to apply XSL transforms from
Style::Scope::collectActiveStyleSheets, and merged applyXSLTransform into this function.
(WebCore::Document::applyXSLTransform): Deleted.
(WebCore::Document::finishedParsing): Apply XSLT right before updating the style. This is where used to apply
inline XSLT and it happens much earlier than implicitClose.
(WebCore::Document::suspendScheduledTasks): Suspend the XSLT timer.
(WebCore::Document::resumeScheduledTasks): Reschedule the XSLT timer if m_hasPendingXSLTransforms is set.
* dom/Document.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet): Schedule XSLT in the document instead of flushing pending
stylesheets, which would have synchronously applied XSLT. We can't apply XSLT synchronously here because this
function can be called from a non-script-resilient call stack.
(WebCore::ProcessingInstruction::sheetLoaded): Ditto.
* style/StyleScope.cpp:
(WebCore::Style::Scope::collectXSLTransforms): Added.
(WebCore::Style::Scope::collectActiveStyleSheets): Removed the code to apply XSLT. Skip ProcessingInstructions
that applies XSLT. Also use RefPtr<StyleSheet> instead of a raw pointer to store StyleSheet.
* style/StyleScope.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doEnd): Apply any pending XSLTs synchronously here as the comment suggests.

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

2 years ago[Win] Detect Visual Studio 2017 location
commit-queue@webkit.org [Sat, 28 Oct 2017 03:49:10 +0000 (03:49 +0000)]
[Win] Detect Visual Studio 2017 location
https://bugs.webkit.org/show_bug.cgi?id=175275

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-10-27
Reviewed by Per Arne Vollan.

* Scripts/build-jsc:
* Scripts/build-webkit:
* Scripts/update-vswhere.py: Added.
* Scripts/webkitdirs.pm:
(pickCurrentVisualStudioInstallation):
(pickLegacyVisualStudioInstallation):
(visualStudioInstallDir):
(visualStudioInstallDirVSWhere):
(visualStudioInstallDirLegacy):
(visualStudioInstallDirFallback):
(msBuildInstallDir):
(visualStudioVersion):
(visualStudioVersionFromInstallDir):
(generateBuildSystemFromCMakeProject):

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

2 years agoWeb Inspector: Canvas Tab: no way to see backtrace of where a canvas context was...
webkit@devinrousso.com [Sat, 28 Oct 2017 01:58:52 +0000 (01:58 +0000)]
Web Inspector: Canvas Tab: no way to see backtrace of where a canvas context was created
https://bugs.webkit.org/show_bug.cgi?id=178799
<rdar://problem/35175805>

Reviewed by Brian Burg.

Source/JavaScriptCore:

* inspector/protocol/Canvas.json:
Add optional `backtrace` to Canvas type that is an array of Console.CallFrame.

Source/WebCore:

No new tests, updated existing tests.

* inspector/InspectorCanvas.h:
* inspector/InspectorCanvas.cpp:
(iterateCallFrames):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::buildAction):

* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
If the Canvas agent is enabled, generate a backtrace and send it to the frontend with the canvas.
We do not do this for canvases created before the agent is enabled for performance reasons.

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Models/Canvas.js:
(WI.Canvas.fromPayload):
(WI.Canvas.prototype.get backtrace):

* UserInterface/Views/CanvasDetailsSidebarPanel.css:
(.sidebar > .panel.details.canvas .details-section.canvas-backtrace .call-frame):

* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WI.CanvasDetailsSidebarPanel.prototype.layout):
(WI.CanvasDetailsSidebarPanel.prototype._refreshBacktraceSection):

* UserInterface/Views/ResourceIcons.css:
(.canvas > .icon):
(.canvas .icon): Deleted.

LayoutTests:

* inspector/canvas/create-context-2d-expected.txt:
* inspector/canvas/create-context-webgl-expected.txt:
* inspector/canvas/create-context-webgl2-expected.txt:
* inspector/canvas/create-context-webgpu-expected.txt:
* inspector/canvas/resources/create-context-utilities.js:
(TestPage.registerInitializer.sanitizeURL):
(TestPage.registerInitializer.awaitCanvasAdded):
Pretty-print backtrace when canvases are added to the page.

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

2 years ago[JSC] Tweak ES6 generator function to allow inlining
utatane.tea@gmail.com [Sat, 28 Oct 2017 01:48:53 +0000 (01:48 +0000)]
[JSC] Tweak ES6 generator function to allow inlining
https://bugs.webkit.org/show_bug.cgi?id=178935

Reviewed by Saam Barati.

We optimize builtins' generator helper functions to allow them inlined in the caller side.
This patch adjust the layer between @generatorResume, next(), throw(), and return() to allow
them inlined in DFG.

                               baseline                  patched

spread-generator.es6      301.2637+-11.1011    ^    260.5905+-14.2258       ^ definitely 1.1561x faster
generator.es6             269.6030+-13.2435    ^    148.8840+-6.7614        ^ definitely 1.8108x faster

* builtins/GeneratorPrototype.js:
(globalPrivate.generatorResume):
(next):
(return):
(throw):

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

2 years agoCreate watchlist for files related WebInspector Recording
webkit@devinrousso.com [Sat, 28 Oct 2017 01:39:12 +0000 (01:39 +0000)]
Create watchlist for files related WebInspector Recording
https://bugs.webkit.org/show_bug.cgi?id=178965

Reviewed by Joseph Pecoraro.

* Scripts/webkitpy/common/config/watchlist:

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

2 years agoSkip test http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth...
dbates@webkit.org [Sat, 28 Oct 2017 01:05:37 +0000 (01:05 +0000)]
Skip test http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https.html on OS X El Capitan

For now skip this test that was added in r224134 on OS X El Capitan. OS X El Capitan uses the
legacy NSURLDownload code path for downloads. This code path is not happy with the self-signed
certificate we use when running HTTPS tests. See <https://bugs.webkit.org/show_bug.cgi?id=155132>
for more details.

* platform/mac-elcapitan/TestExpectations:

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

2 years agoBytecode liveness should live on UnlinkedCodeBlock so it can be shared amongst CodeBlocks
sbarati@apple.com [Sat, 28 Oct 2017 01:03:22 +0000 (01:03 +0000)]
Bytecode liveness should live on UnlinkedCodeBlock so it can be shared amongst CodeBlocks
https://bugs.webkit.org/show_bug.cgi?id=178949

Reviewed by Keith Miller.

This patch stores BytecodeLiveness on UnlinkedCodeBlock instead of CodeBlock
so that we don't need to recompute liveness for the same UnlinkedCodeBlock
more than once. To do this, this patch solidifies the invariant that CodeBlock
linking can't do anything that would change the result of liveness. For example,
it can't introduce new locals. This invariant was met my JSC before, because we
didn't do anything in bytecode linking that would change liveness. However, it is
now a correctness requirement that we don't do anything that would change the
result of running liveness. To support this change, I've refactored BytecodeGraph
to not be tied to a CodeBlockType*. Things that perform liveness will pass in
CodeBlockType* and the instruction stream as needed. This means that we may
compute liveness with one CodeBlock*'s instruction stream, and then perform
queries on that analysis with a different CodeBlock*'s instruction stream.

This seems to be a 2% JSBench progression.

* bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
(JSC::BytecodeGeneratorification::graph):
(JSC::BytecodeGeneratorification::storageForGeneratorLocal):
(JSC::GeneratorLivenessAnalysis::run):
(JSC::BytecodeGeneratorification::run):
* bytecode/BytecodeGraph.h:
(JSC::BytecodeGraph::BytecodeGraph):
(JSC::BytecodeGraph::codeBlock const): Deleted.
(JSC::BytecodeGraph::instructions): Deleted.
(JSC::BytecodeGraph<Block>::BytecodeGraph): Deleted.
* bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::BytecodeLivenessAnalysis):
(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::computeKills):
(JSC::BytecodeLivenessAnalysis::dumpResults):
(JSC::BytecodeLivenessAnalysis::operandIsLiveAtBytecodeOffset): Deleted.
(JSC::BytecodeLivenessAnalysis::compute): Deleted.
* bytecode/BytecodeLivenessAnalysis.h:
* bytecode/BytecodeLivenessAnalysisInlines.h:
(JSC::BytecodeLivenessPropagation::stepOverInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeOffset):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeOffset):
(JSC::BytecodeLivenessPropagation::runLivenessFixpoint):
* bytecode/BytecodeRewriter.cpp:
(JSC::BytecodeRewriter::applyModification):
(JSC::BytecodeRewriter::execute):
(JSC::BytecodeRewriter::adjustJumpTargetsInFragment):
* bytecode/BytecodeRewriter.h:
(JSC::BytecodeRewriter::BytecodeRewriter):
(JSC::BytecodeRewriter::removeBytecode):
(JSC::BytecodeRewriter::graph):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow):
(JSC::CodeBlock::validate):
(JSC::CodeBlock::livenessAnalysisSlow): Deleted.
* bytecode/CodeBlock.h:
(JSC::CodeBlock::livenessAnalysis):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::applyModification):
(JSC::UnlinkedCodeBlock::livenessAnalysisSlow):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::livenessAnalysis):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::livenessFor):
(JSC::DFG::Graph::killsFor):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):

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

2 years ago[WinCairo] Add WTF files for wincairo webkit
commit-queue@webkit.org [Sat, 28 Oct 2017 00:09:47 +0000 (00:09 +0000)]
[WinCairo] Add WTF files for wincairo webkit
https://bugs.webkit.org/show_bug.cgi?id=176894

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2017-10-27
Reviewed by Alex Christensen.

* wtf/PlatformWin.cmake:
* wtf/WorkQueue.cpp:
* wtf/WorkQueue.h:
* wtf/win/Win32Handle.h:
* wtf/win/WorkItemContext.cpp: Added.
(WTF::WorkItemContext::WorkItemContext):
(WTF::WorkItemContext::create):
(WTF::WorkItemContext::~WorkItemContext):
* wtf/win/WorkItemContext.h: Added.
(WTF::WorkItemContext::handle):
(WTF::WorkItemContext::waitHandle):
(WTF::WorkItemContext::Function<void):
(WTF::WorkItemContext::queue const):
* wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::handleCallback):
(WTF::WorkQueue::registerHandle):
(WTF::WorkQueue::unregisterAndCloseHandle):
(WTF::WorkQueue::unregisterWaitAndDestroyItemSoon):
(WTF::WorkQueue::unregisterWaitAndDestroyItemCallback):

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

2 years agoAdd unified source list files and build scripts to Xcode project navigator
keith_miller@apple.com [Fri, 27 Oct 2017 23:45:07 +0000 (23:45 +0000)]
Add unified source list files and build scripts to Xcode project navigator
https://bugs.webkit.org/show_bug.cgi?id=178959

Reviewed by Andy Estes.

Source/JavaScriptCore:

Also, Add some extra source files for so new .cpp/.mm files don't cause the build
to fail right away. We already do this in WebCore.

* JavaScriptCore.xcodeproj/project.pbxproj:
* PlatformMac.cmake:
* SourcesCocoa.txt: Renamed from Source/JavaScriptCore/SourcesMac.txt.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:

Source/WTF:

* WTF.xcodeproj/project.pbxproj:

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

2 years agoAttempt to fix the Apple El Capitan build following <https://trac.webkit.org/changese...
dbates@webkit.org [Fri, 27 Oct 2017 23:40:45 +0000 (23:40 +0000)]
Attempt to fix the Apple El Capitan build following <https://trac.webkit.org/changeset/224134>
(https://bugs.webkit.org/show_bug.cgi?id=178919)

Move definition of NetworkLoad::isAllowedToAskUserForCredentials() outside of USE(NETWORK_SESSION)-guarded section.

* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::isAllowedToAskUserForCredentials const):

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

2 years agoOnly allow non-mixed content protected subresources to ask for credentials
dbates@webkit.org [Fri, 27 Oct 2017 22:31:14 +0000 (22:31 +0000)]
Only allow non-mixed content protected subresources to ask for credentials
https://bugs.webkit.org/show_bug.cgi?id=178919
<rdar://problem/35015245>

Reviewed by Alex Christensen.

Source/WebCore:

Only allow non-mixed content protected subresources to ask for credentials. It is not meaningful
to allow protected mixed-content subresources to ask for credentials.

Tests: http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html
       http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html
       http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html
       http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html
       http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html
       http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader): Initialize m_canAskClientForCredentials based on the
specified resource loader options.
(WebCore::ResourceLoader::init): Update m_canAskClientForCredentials based on the URL of the initial
request.
(WebCore::ResourceLoader::isMixedContent const): Helper function to check if the specified URL
represents a mixed content resource.
(WebCore::ResourceLoader::willSendRequestInternal): If the original request or the redirect request
is mixed content then update state such that we will disallow asking for credentials.
(WebCore::ResourceLoader::isAllowedToAskUserForCredentials const): Modified to use m_canAskClientForCredentials
when determining whether the request is allowed to ask for credentials.
* loader/ResourceLoader.h:

Source/WebKit:

Only allow non-mixed content protected subresources to ask for credentials. It is not meaningful
to allow protected mixed-content subresources to ask for credentials.

* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload): Initialize m_isAllowedToAskUserForCredentials based on
the specified resource load parameters or NetworkLoad object.
* NetworkProcess/Downloads/PendingDownload.h: Add override for NetworkLoadClient::isAllowedToAskUserForCredentials().
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::isAllowedToAskUserForCredentials const): Added.
(WebKit::NetworkLoad::completeAuthenticationChallenge): Ask NetworkLoadClient whether the load is
allowed to prompt for credentials.
(WebKit::NetworkLoad::didReceiveAuthenticationChallenge): Ditto.
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader): Initialize m_isAllowedToAskUserForCredentials
based on the specified resource load parameters.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest): We do not support prompting for credentials
for synchronous loads.
(WebKit::NetworkResourceLoader::continueWillSendRequest): Modified to take an argument as to whether the
load is allowed to ask the user for credentials and updates state.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/NetworkResourceLoader.messages.in: Modified message ContinueWillSendRequest to take a
boolean as to whether the load is allowed to ask the user for credentials.
* NetworkProcess/PreconnectTask.h: Override NetworkLoadClient::isAllowedToAskUserForCredentials()
such that we never ask for credentials. This matches our current behavior.
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: Ditto.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest): Query ResourceLoader as to whether the load is allowed to
ask the user for credentials and pass this state to NetworkResourceLoader.

LayoutTests:

* http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https-expected.txt: Added.
* http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https.html: Added.
* http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt: Added.
* http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html: Added.
* http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.https.txt: Added.
* http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.txt: Added.
* http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html: Added.
* http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt: Added.
* http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-image-redirects-to-basic-auth-secure-image.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-script-redirects-to-basic-auth-secure-script.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html: Added.
* http/tests/security/mixedContent/resources/frame-with-programmatically-added-insecure-image-redirects-to-basic-auth-secure-image.html: Added.
* http/tests/security/mixedContent/resources/subresource/protected-image.php: Added.
* http/tests/security/mixedContent/resources/subresource/protected-pdf.php: Added.
* http/tests/security/mixedContent/resources/subresource/protected-script.php: Added.
* http/tests/security/mixedContent/resources/subresource/protected-stylesheet.php: Added.
* http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
* http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html: Added.
* http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt: Added.
* http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html: Added.
* http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
* http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html: Added.
* platform/ios-wk1/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
* platform/mac-wk1/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
* platform/win/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.

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

2 years agoAdd tests for automatic decompression of gzip-compressed subresources
dbates@webkit.org [Fri, 27 Oct 2017 22:28:37 +0000 (22:28 +0000)]
Add tests for automatic decompression of gzip-compressed subresources
https://bugs.webkit.org/show_bug.cgi?id=178941
<rdar://problem/35230090>

Reviewed by Alex Christensen.

Although automatic decompression of gzip-compressed subresources is handled by CFNetwork
(<rdar://problem/5418646>) we should add tests to ensure that WebKit does not inadvertently
opt out of such functionality and to catch a regression in CFNetwork.

* TestExpectations: Skip the tests on all platforms. We will unskip on Cocoa platforms and Apple Windows.
* http/tests/gzip-content-encoding/gzip-encoded-script-expected.txt: Added.
* http/tests/gzip-content-encoding/gzip-encoded-script.html: Added.
* http/tests/gzip-content-encoding/gzip-encoded-script2-expected.txt: Added.
* http/tests/gzip-content-encoding/gzip-encoded-script2.html: Added.
* http/tests/gzip-content-encoding/gzip-encoded-stylesheet-expected.html: Added.
* http/tests/gzip-content-encoding/gzip-encoded-stylesheet.html: Added.
* http/tests/gzip-content-encoding/gzip-encoded-stylesheet2-expected.html: Added.
* http/tests/gzip-content-encoding/gzip-encoded-stylesheet2.html: Added.
* http/tests/gzip-content-encoding/resources/echo-data-encoding-with-gzip.php: Added.
* http/tests/gzip-content-encoding/resources/script.js.gz: Added.
* http/tests/gzip-content-encoding/resources/stylesheet.css.gz: Added.
* platform/ios/TestExpectations: Unskip tests.
* platform/mac/TestExpectations: Ditto.
* platform/win/TestExpectations: Ditto.

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

2 years agoUnskip more Service Workers tests
cdumez@apple.com [Fri, 27 Oct 2017 21:43:43 +0000 (21:43 +0000)]
Unskip more Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=178944

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Land expected results for tests that have been unskipped.

* web-platform-tests/service-workers/cache-storage/serviceworker/credentials.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/service-worker-error-event.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/activation-after-registration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/activation.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/active.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/appcache-ordering-main.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-fetch.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-not-using-registration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-using-registration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/claim-worker-fetch.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/client-id.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-get-client-types.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-get-cross-origin.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-matchall-order.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/clients-matchall.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/controller-on-disconnect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/controller-on-load.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/controller-on-reload.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-csp.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-header-visibility.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-xhr-sync.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-response-xhr.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/foreign-fetch-cors.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/getregistration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/getregistrations.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/immutable-prototype-serviceworker.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/import-scripts-resource-map.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/indexeddb.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/install-event-type.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/installing.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/invalid-blobtype.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/iso-latin1-header.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/multiple-update.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/request-headers.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-redirect-body.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/onactivate-script-error.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/oninstall-script-error.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/opaque-response-preloaded.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/postmessage-blob-url.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/postmessage-msgport-to-client.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/postmessage-to-client.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/ready.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/referer.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/referrer-policy-header.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/register-closed-window.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/register-default-scope.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/register-link-header.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-basic.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-end-to-end.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-events.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-iframe.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-script-url.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/rejections.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/request-body-blob.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/request-end-to-end.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/resource-timing.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/shared-worker-controlled.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/skip-waiting.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/state.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/synced-state.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/uncontrolled-page.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/unregister.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/update-after-oneday.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/update.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/websocket.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt: Added.
* web-platform-tests/service-workers/service-worker/xhr.https-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.1-service-worker-obj-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.1.1-service-worker-scope-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.1.2-service-worker-url-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.1.3-service-worker-state-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2-navigator-service-worker-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister-expected.txt: Added.
* web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1-service-worker-global-scope-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.2-client-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.3-service-worker-clients-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.3.1-get-serviced-method-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.3.2-reloadall-method-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.4-request-objects-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.5-response-objects-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.5.2-response-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.5.4-opaque-response-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.6-cache-objects-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.1-install-phase-event-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.2-install-event-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.2.1-install-event-section-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.2.2-replace-method-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.3-activate-event-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.4.3-default-method-expected.txt: Added.
* web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute-expected.txt: Added.
* web-platform-tests/service-workers/stub-5.1-origin-relativity-expected.txt: Added.
* web-platform-tests/service-workers/stub-5.2-cross-origin-resources-expected.txt: Added.

Source/WebCore:

Drop bad assertion that was causing the Service Worker WebProcess to crash and causing
tests to fail as a result.

* workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::registration):
* workers/service/ServiceWorkerGlobalScope.h:

LayoutTests:

Unskip all Service Workers tests except for the 39 that are timing out.

* TestExpectations:

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

2 years agoUnreviewed, rolling out r224011.
ryanhaddad@apple.com [Fri, 27 Oct 2017 21:35:14 +0000 (21:35 +0000)]
Unreviewed, rolling out r224011.

xsl LayoutTests hit an assertion added with this change since
r223999 was rolled out.

Reverted changeset:

"Assert that no script is executed during style recalc"
https://bugs.webkit.org/show_bug.cgi?id=178845
https://trac.webkit.org/changeset/224011

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

2 years agoAdjusted expectations for fast/scrolling/arrow-key-scroll-in-rtl-document.html.
jlewis3@apple.com [Fri, 27 Oct 2017 21:30:23 +0000 (21:30 +0000)]
Adjusted expectations for fast/scrolling/arrow-key-scroll-in-rtl-document.html.
https://bugs.webkit.org/show_bug.cgi?id=173779

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoAdjusted expectations for multiple media/ Layout Tests.
jlewis3@apple.com [Fri, 27 Oct 2017 20:48:33 +0000 (20:48 +0000)]
Adjusted expectations for multiple media/ Layout Tests.
https://bugs.webkit.org/show_bug.cgi?id=176054

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years ago[Web Animations] Expose the currentTime property on AnimationTimeline
graouts@webkit.org [Fri, 27 Oct 2017 20:29:59 +0000 (20:29 +0000)]
[Web Animations] Expose the currentTime property on AnimationTimeline
https://bugs.webkit.org/show_bug.cgi?id=178928

Reviewed by Dean Jackson.

Source/WebCore:

We add the currentTime property on AnimationTimeline and add an internals method
to set it in a test which will allow us to validate the timing model state for
a given time.

Test: webanimations/timeline-current-time.html

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::bindingsCurrentTime const):
(WebCore::AnimationTimeline::setCurrentTime):
* animation/AnimationTimeline.h:
(WebCore::AnimationTimeline::currentTime const):
* animation/AnimationTimeline.idl:
* testing/Internals.cpp:
(WebCore::Internals::setTimelineCurrentTime):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Add a new test that checks we can read the document's timeline currentTime
property and set it via the internals method.

* webanimations/timeline-current-time-expected.txt: Added.
* webanimations/timeline-current-time.html: Added.

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

2 years ago[Web Animations] Use Seconds vs. MonotonicTime to represent times
graouts@webkit.org [Fri, 27 Oct 2017 20:17:53 +0000 (20:17 +0000)]
[Web Animations] Use Seconds vs. MonotonicTime to represent times
https://bugs.webkit.org/show_bug.cgi?id=178950

Reviewed by Dean Jackson.

Animation start times, all expressed in seconds, in the Web Animations API are relative to the timeline
originTime, itself relative to the page's nagigation time (Performance.navigationTime), so it makes more
sense to use Seconds to represent them as opposed to a MonotonicTime.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::bindingsStartTime const):
(WebCore::WebAnimation::setBindingsStartTime):
* animation/WebAnimation.h:

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

2 years agoSkip two tests that are flaky crashes.
ryanhaddad@apple.com [Fri, 27 Oct 2017 20:09:34 +0000 (20:09 +0000)]
Skip two tests that are flaky crashes.
https://bugs.webkit.org/show_bug.cgi?id=177828

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoDOMWindow::dispatchEvent() does not reset the event's dispatch flag
cdumez@apple.com [Fri, 27 Oct 2017 19:56:04 +0000 (19:56 +0000)]
DOMWindow::dispatchEvent() does not reset the event's dispatch flag
https://bugs.webkit.org/show_bug.cgi?id=178897

Reviewed by Darin Adler.

Source/WebCore:

Make sure we reset the currentTarget, dispatch flag, phase and propagation flags
after dispatching an event on a Window, as per:
- https://dom.spec.whatwg.org/#concept-event-dispatch

This behavior is consistent with Firefox.

Test: fast/events/window-load-initEvent.html

* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchEvent):

LayoutTests:

Add layout test coverage. I have verified that this test is passing in Firefox.

* fast/events/window-load-initEvent-expected.txt: Added.
* fast/events/window-load-initEvent.html: Added.

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

2 years agoWindows and WebViews are retained after re-configure
jbedard@apple.com [Fri, 27 Oct 2017 19:10:24 +0000 (19:10 +0000)]
Windows and WebViews are retained after re-configure
https://bugs.webkit.org/show_bug.cgi?id=178902
<rdar://problem/35211518>

Reviewed by Alexey Proskuryakov.

The test runner effectively leaks windows every time a test changes configuration.
We give each test it's own AutoreleasePool to fix this problem.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::runTest): Add an AutoRelease pool scoping a test run
so that when a configuration changes, the old window and WebView are released.

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

2 years agoMove iOS specific sources to unified sources
keith_miller@apple.com [Fri, 27 Oct 2017 18:56:11 +0000 (18:56 +0000)]
Move iOS specific sources to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178915

Rubber-stamped by Tim Horton.

Source/WebCore:

* SourcesCocoa.txt:
* SourcesIOS.txt:
* SourcesMac.txt:
* WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

* pal/spi/cocoa/QuartzCoreSPI.h: Add missing pragma once.

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

2 years agoWebAssembly: update arbitrary limits to what browsers use
jfbastien@apple.com [Fri, 27 Oct 2017 18:42:27 +0000 (18:42 +0000)]
WebAssembly: update arbitrary limits to what browsers use
https://bugs.webkit.org/show_bug.cgi?id=178946
<rdar://problem/34257412>
<rdar://problem/34501154>

Reviewed by Saam Barati.

https://github.com/WebAssembly/design/issues/1138 discusses the
arbitrary function size limit, which it turns out Chrome and
Firefox didn't enforce. We didn't use it because it was
ridiculously low and actual programs ran into that limit (bummer
for Edge which just shipped it...). Now that we agree on a high
arbitrary program limit, let's update it! While I'm doing this
there are a few other spots that I polished to use Checked or
better check limits overall.

* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addLocal):
* wasm/WasmFormat.cpp:
(JSC::Wasm::Segment::create):
* wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parse):
* wasm/WasmInstance.cpp:
* wasm/WasmLimits.h:
* wasm/WasmModuleParser.cpp:
(JSC::Wasm::ModuleParser::parseGlobal):
(JSC::Wasm::ModuleParser::parseCode):
(JSC::Wasm::ModuleParser::parseData):
* wasm/WasmSignature.h:
(JSC::Wasm::Signature::allocatedSize):
* wasm/WasmTable.cpp:
(JSC::Wasm::Table::Table):
* wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):

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

2 years agoNowPlayingInfo should contain a unique identifier
eric.carlson@apple.com [Fri, 27 Oct 2017 18:38:43 +0000 (18:38 +0000)]
NowPlayingInfo should contain a unique identifier
https://bugs.webkit.org/show_bug.cgi?id=178872
<rdar://problem/34924012>

Unreviewed, build fix.

* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Call string.impl().hash() instead of
string.existingHash() because the later will assert in a debug build if the hash hasn't
been calculated yet.
* platform/audio/mac/MediaSessionManagerMac.mm:
(WebCore::MediaSessionManagerMac::updateNowPlayingInfo): Ditto.

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

2 years agoMove TestExpectation for imported/w3c/web-platform-tests/XMLHttpRequest/open-url...
ryanhaddad@apple.com [Fri, 27 Oct 2017 17:48:15 +0000 (17:48 +0000)]
Move TestExpectation for imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm.
https://bugs.webkit.org/show_bug.cgi?id=178190

Unreviewed test gardening.

* TestExpectations:
* platform/mac/TestExpectations:

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

2 years agoFix accessibility/mac/aria-label-on-label-element.html after r224074
achristensen@apple.com [Fri, 27 Oct 2017 17:39:16 +0000 (17:39 +0000)]
Fix accessibility/mac/aria-label-on-label-element.html after r224074
https://bugs.webkit.org/show_bug.cgi?id=178892

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText):
Turns out my null checks changed behavior.  This undoes them.

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

2 years ago[GTK][CMake] Incorrect conditional check when adding build dir to GIR runtime library...
aperez@igalia.com [Fri, 27 Oct 2017 17:33:54 +0000 (17:33 +0000)]
[GTK][CMake] Incorrect conditional check when adding build dir to GIR runtime library path
https://bugs.webkit.org/show_bug.cgi?id=178936

Reviewed by Michael Catanzaro.

* PlatformGTK.cmake: Fix spelling of variable used in conditional.

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

2 years agoNowPlayingInfo should contain a unique identifier
eric.carlson@apple.com [Fri, 27 Oct 2017 17:16:46 +0000 (17:16 +0000)]
NowPlayingInfo should contain a unique identifier
https://bugs.webkit.org/show_bug.cgi?id=178872
<rdar://problem/34924012>

Unreviewed, fix a flakey test.

* TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
(-[NowPlayingTestWebView hasActiveNowPlayingSession]): Update _lastUpdatedElapsedTime.
(-[NowPlayingTestWebView _handleActiveNowPlayingSessionInfoResponse:title:duration:elapsedTime:]): Deleted.

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

2 years agoUnreviewed, rolling out r223999.
ryanhaddad@apple.com [Fri, 27 Oct 2017 17:06:17 +0000 (17:06 +0000)]
Unreviewed, rolling out r223999.

Caused xsl LayoutTest flakiness.

Reverted changeset:

"Style::Scope::flushPendingUpdate() can replace the entire
document in XSLTProcessor::createDocumentFromSource"
https://bugs.webkit.org/show_bug.cgi?id=178715
https://trac.webkit.org/changeset/223999

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

2 years agoAudit init*Event() method to make sure they reset internal data members
cdumez@apple.com [Fri, 27 Oct 2017 16:49:56 +0000 (16:49 +0000)]
Audit init*Event() method to make sure they reset internal data members
https://bugs.webkit.org/show_bug.cgi?id=178886

Reviewed by Ryosuke Niwa.

Audit init*Event() method to make sure they reset internal data members.

* dom/Event.cpp:
(WebCore::Event::initEvent):
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::initKeyboardEvent):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::initMessageEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::initMouseEvent):
* dom/MouseRelatedEvent.h:
(WebCore::MouseRelatedEvent::setIsSimulated):
* dom/TextEvent.cpp:
(WebCore::TextEvent::initTextEvent):
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::initWheelEvent):

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

2 years agoautoinstall can't download from http://pypi.python.org
ryanhaddad@apple.com [Fri, 27 Oct 2017 16:38:36 +0000 (16:38 +0000)]
autoinstall can't download from pypi.python.org
https://bugs.webkit.org/show_bug.cgi?id=178925

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-10-27
Reviewed by Ryosuke Niwa.

The web server pypi.python.org rejects non secure http.

* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_mechanize): Use https instead of http.
(AutoinstallImportHook._install_pep8): Ditto.
(AutoinstallImportHook._install_pylint): Ditto.
(AutoinstallImportHook._install_buildbot): Ditto.
(AutoinstallImportHook._install_coverage): Ditto.

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