WebKit-https.git
20 months agoImplement getting ServiceWorker registrations for the WKWebsiteDataStore API
beidson@apple.com [Sat, 16 Dec 2017 18:54:04 +0000 (18:54 +0000)]
Implement getting ServiceWorker registrations for the WKWebsiteDataStore API
https://bugs.webkit.org/show_bug.cgi?id=180886

Reviewed by Chris Dumez.

Source/WebCore:

No new tests (API test coming soon).

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::registrationStoreImportComplete):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::getOriginsWithRegistrations):
(WebCore::SWServer::performGetOriginsWithRegistrationsCallbacks):
* workers/service/server/SWServer.h:

Source/WebKit:

* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::fetchWebsiteData):

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

20 months ago[WinCairo] Move the destination of WinCairoRequirements.zip into WebKitLibraries...
commit-queue@webkit.org [Sat, 16 Dec 2017 18:33:31 +0000 (18:33 +0000)]
[WinCairo] Move the destination of WinCairoRequirements.zip into WebKitLibraries and register it and related files as git ignore files.
https://bugs.webkit.org/show_bug.cgi?id=180875

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2017-12-16
Reviewed by Alex Christensen.

.:

Add files extracted from WinCairoRequirements.zip
* .gitignore:

Tools:

Bug fix. Specify the download destination correctly.

* Scripts/update-webkit-wincairo-libs.py:

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

20 months ago[CredentialManagement] Import Credential Management Web Platform Tests
jiewen_tan@apple.com [Sat, 16 Dec 2017 18:31:42 +0000 (18:31 +0000)]
[CredentialManagement] Import Credential Management Web Platform Tests
https://bugs.webkit.org/show_bug.cgi?id=172015
<rdar://problem/36083577>

Reviewed by Youenn Fablet.

* resources/import-expectations.json:
* web-platform-tests/credential-management/credentialscontainer-create-basics.https-expected.txt: Added.
* web-platform-tests/credential-management/credentialscontainer-create-basics.https.html: Added.
* web-platform-tests/credential-management/idl.https-expected.txt: Added.
* web-platform-tests/credential-management/idl.https.html: Added.
* web-platform-tests/credential-management/w3c-import.log: Added.

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

20 months agoIndexing should only be computed when the new structure has an indexing header.
keith_miller@apple.com [Sat, 16 Dec 2017 18:20:04 +0000 (18:20 +0000)]
Indexing should only be computed when the new structure has an indexing header.
https://bugs.webkit.org/show_bug.cgi?id=180895

Reviewed by Saam Barati.

If we don't have an indexing header then we point the butterfly
sizeof(IndexingHeader) past the end of the butterfly. This makes
the computation of the offset simpler since it doesn't depend on
the indexing headeriness of the butterfly.

* jit/JITOperations.cpp:
* runtime/JSObject.cpp:
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
* runtime/JSObject.h:
(JSC::JSObject::setButterfly):
(JSC::JSObject::nukeStructureAndSetButterfly):
* runtime/JSObjectInlines.h:
(JSC::JSObject::prepareToPutDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):

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

20 months agoPlugin processes are repeatedly spun up to do nothing
bfulgham@apple.com [Sat, 16 Dec 2017 17:57:09 +0000 (17:57 +0000)]
Plugin processes are repeatedly spun up to do nothing
https://bugs.webkit.org/show_bug.cgi?id=180885
<rdar://problem/36082564>

Reviewed by Geoffrey Garen.

Source/WebKit:

Tested by TestWebKitAPI.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData): Don't ask plugins to remove data when no websites are
passed to the function.

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(runTestWithWebsiteDataStore): Check that deleting website data did not
trigger any plugin processes to start up.

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

20 months agoRemove unnecessary boolean result of start() functions
utatane.tea@gmail.com [Sat, 16 Dec 2017 17:54:39 +0000 (17:54 +0000)]
Remove unnecessary boolean result of start() functions
https://bugs.webkit.org/show_bug.cgi?id=180856

Reviewed by Darin Adler.

Source/WebCore:

No behavior change.

* Modules/webaudio/AsyncAudioDecoder.cpp:
(WebCore::AsyncAudioDecoder::~AsyncAudioDecoder):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::databaseThread):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::start):
Now `Thread::create` always succeeds (if it fails, WebKit crashes).
DatabaseThread::start() now always returns true. So, we do not need
to return bool.

* Modules/webdatabase/DatabaseThread.h:
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::start):
* platform/network/curl/CurlDownload.h:
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::start):
* platform/network/curl/ResourceHandleCurlDelegate.cpp:
(WebCore::ResourceHandleCurlDelegate::start):
* platform/network/curl/ResourceHandleCurlDelegate.h:

Source/WebKitLegacy/win:

It always returns true.

* WebDownloadCurl.cpp:
(WebDownload::start):

Source/WTF:

CrossThreadTaskHandler's Thread is just released without calling
either `waitForCompletion` or `detach`. It means that this resource
of the thread is not released.

* benchmarks/ConditionSpeedTest.cpp:
* wtf/CrossThreadTaskHandler.cpp:
(WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
* wtf/CrossThreadTaskHandler.h:

Tools:

* TestWebKitAPI/Tests/WTF/ParkingLot.cpp:

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

20 months agoAdd optimization when updating a SW registration results in the exact same script
cdumez@apple.com [Sat, 16 Dec 2017 16:37:11 +0000 (16:37 +0000)]
Add optimization when updating a SW registration results in the exact same script
https://bugs.webkit.org/show_bug.cgi?id=180891

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing.

* web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:

Source/WebCore:

Add optimization when updating a SW registration results in the exact same script:
- https://w3c.github.io/ServiceWorker/#update-algorithm (step 8)

No new tests, rebaselined existing test.

* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):

LayoutTests:

* TestExpectations:
Skip bad WPT test that is timing out for us and Firefox. I'll file an upstream PR
to fix it.

* http/tests/workers/service/controller-change.html:
* http/tests/workers/service/registration-updateViaCache-all-importScripts.html:
* http/tests/workers/service/registration-updateViaCache-all.html:
* http/tests/workers/service/registration-updateViaCache-imports-importScripts.html:
* http/tests/workers/service/registration-updateViaCache-none-importScripts.html:
* http/tests/workers/service/registration-updateViaCache-none.html:
* http/tests/workers/service/resources/self_registration_update-worker.js: Removed.
* http/tests/workers/service/resources/self_registration_update-worker.php: Added.
* http/tests/workers/service/resources/service-worker-fetch-worker.js:
* http/tests/workers/service/resources/updating-fetch-worker.php: Added.
* http/tests/workers/service/resources/updating-worker.php: Added.
* http/tests/workers/service/self_registration_update.html:
* http/tests/workers/service/service-worker-registration-gc-event.html:
Undate WebKit-specific tests to reflect behavior change.

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

20 months agoService worker script fetch request should set the Service-Worker header
commit-queue@webkit.org [Sat, 16 Dec 2017 09:26:39 +0000 (09:26 +0000)]
Service worker script fetch request should set the Service-Worker header
https://bugs.webkit.org/show_bug.cgi?id=180889

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

Source/WebCore:

Test: http/wpt/service-workers/check-service-worker-header.https.html

Update WorkerScriptLoader to take a request instead of an URL.
Updates Worker implementation and use it in ServiceWorkerJob to set the missing request header.

* workers/Worker.cpp:
(WebCore::Worker::create):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadAsynchronously):
* workers/WorkerScriptLoader.h:
* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::fetchScriptWithContext):

LayoutTests:

* http/wpt/service-workers/check-service-worker-header.https-expected.txt: Added.
* http/wpt/service-workers/check-service-worker-header.https.html: Added.
* http/wpt/service-workers/check-service-worker-header.py: Added.

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

20 months agoWK1 webrtc/datachannel bufferedAmount tests might time out
commit-queue@webkit.org [Sat, 16 Dec 2017 07:22:28 +0000 (07:22 +0000)]
WK1 webrtc/datachannel bufferedAmount tests might time out
https://bugs.webkit.org/show_bug.cgi?id=180882

Unreviewed.

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

* platform/mac-wk1/TestExpectations: marking tests as flaky.

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

20 months agoUnreviewed, rolling out r225969.
ryanhaddad@apple.com [Sat, 16 Dec 2017 02:05:42 +0000 (02:05 +0000)]
Unreviewed, rolling out r225969.

This change introduced LayoutTest crashes.

Reverted changeset:

"Introduce RenderTreeBuilder"
https://bugs.webkit.org/show_bug.cgi?id=180817
https://trac.webkit.org/changeset/225969

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

20 months agoDrop service workers stubs tests
cdumez@apple.com [Sat, 16 Dec 2017 00:51:53 +0000 (00:51 +0000)]
Drop service workers stubs tests
https://bugs.webkit.org/show_bug.cgi?id=180893

Reviewed by Youenn Fablet.

These tests either do not test anything or are bad and fails in other browsers too.
There is little point in running them.

* resources/import-expectations.json:
* web-platform-tests/service-workers/stub-3.1-service-worker-obj-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.1-service-worker-obj.html: Removed.
* web-platform-tests/service-workers/stub-3.1.1-service-worker-scope-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.1.1-service-worker-scope.html: Removed.
* web-platform-tests/service-workers/stub-3.1.2-service-worker-url-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.1.2-service-worker-url.html: Removed.
* web-platform-tests/service-workers/stub-3.1.3-service-worker-state-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.1.3-service-worker-state.html: Removed.
* web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change.html: Removed.
* web-platform-tests/service-workers/stub-3.2-navigator-service-worker-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2-navigator-service-worker.html: Removed.
* web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing.html: Removed.
* web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange.html: Removed.
* web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage.html: Removed.
* web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror.html: Removed.
* web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting.html: Removed.
* web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active.html: Removed.
* web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller.html: Removed.
* web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready.html: Removed.
* web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll.html: Removed.
* web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register.html: Removed.
* web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister.html: Removed.
* web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound-expected.txt: Removed.
* web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound.html: Removed.
* web-platform-tests/service-workers/stub-4.1-service-worker-global-scope-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1-service-worker-global-scope.html: Removed.
* web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches.html: Removed.
* web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients.html: Removed.
* web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope.html: Removed.
* web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch.html: Removed.
* web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update.html: Removed.
* web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister.html: Removed.
* web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage.html: Removed.
* web-platform-tests/service-workers/stub-4.2-client-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.2-client.html: Removed.
* web-platform-tests/service-workers/stub-4.3-service-worker-clients-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.3-service-worker-clients.html: Removed.
* web-platform-tests/service-workers/stub-4.3.1-get-serviced-method-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.3.1-get-serviced-method.html: Removed.
* web-platform-tests/service-workers/stub-4.3.2-reloadall-method-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.3.2-reloadall-method.html: Removed.
* web-platform-tests/service-workers/stub-4.4-request-objects-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.4-request-objects.html: Removed.
* web-platform-tests/service-workers/stub-4.5-response-objects-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.5-response-objects.html: Removed.
* web-platform-tests/service-workers/stub-4.5.2-response-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.5.2-response.html: Removed.
* web-platform-tests/service-workers/stub-4.5.4-opaque-response-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.5.4-opaque-response.html: Removed.
* web-platform-tests/service-workers/stub-4.6-cache-objects-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.6-cache-objects.html: Removed.
* web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes.html: Removed.
* web-platform-tests/service-workers/stub-4.6.2-cache-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.6.2-cache.html: Removed.
* web-platform-tests/service-workers/stub-4.6.3-cache-storage-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.6.3-cache-storage.html: Removed.
* web-platform-tests/service-workers/stub-4.7.1-install-phase-event-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.1-install-phase-event.html: Removed.
* web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method.html: Removed.
* web-platform-tests/service-workers/stub-4.7.2-install-event-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.2-install-event.html: Removed.
* web-platform-tests/service-workers/stub-4.7.2.1-install-event-section-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.2.1-install-event-section.html: Removed.
* web-platform-tests/service-workers/stub-4.7.2.2-replace-method-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.2.2-replace-method.html: Removed.
* web-platform-tests/service-workers/stub-4.7.3-activate-event-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.3-activate-event.html: Removed.
* web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section.html: Removed.
* web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method.html: Removed.
* web-platform-tests/service-workers/stub-4.7.4.3-default-method-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.4.3-default-method.html: Removed.
* web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute-expected.txt: Removed.
* web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute.html: Removed.
* web-platform-tests/service-workers/stub-5.1-origin-relativity-expected.txt: Removed.
* web-platform-tests/service-workers/stub-5.1-origin-relativity.html: Removed.
* web-platform-tests/service-workers/stub-5.2-cross-origin-resources-expected.txt: Removed.
* web-platform-tests/service-workers/stub-5.2-cross-origin-resources.html: Removed.

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

20 months agoSupport updating a service worker registration's updateViaCache flag
cdumez@apple.com [Sat, 16 Dec 2017 00:48:04 +0000 (00:48 +0000)]
Support updating a service worker registration's updateViaCache flag
https://bugs.webkit.org/show_bug.cgi?id=180888

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

* web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:

Source/WebCore:

Support updating a service worker registration's updateViaCache flag to match other browsers:
- https://github.com/w3c/ServiceWorker/issues/1189

No new tests, rebaselined existing test.

* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::setRegistrationUpdateViaCache):
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::setUpdateViaCache):
* workers/service/ServiceWorkerRegistration.h:
* workers/service/server/SWServer.h:
* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::runRegisterJob):
* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::setUpdateViaCache):
* workers/service/server/SWServerRegistration.h:

Source/WebKit:

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::setRegistrationUpdateViaCache):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:

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

20 months agoUnreviewed, adding myself to contributors.json
david_quesada@apple.com [Sat, 16 Dec 2017 00:32:22 +0000 (00:32 +0000)]
Unreviewed, adding myself to contributors.json

* Scripts/webkitpy/common/config/contributors.json:

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

20 months agoUnreviewed, rolling out r225941.
ryanhaddad@apple.com [Sat, 16 Dec 2017 00:00:09 +0000 (00:00 +0000)]
Unreviewed, rolling out r225941.

This change introduced LayoutTest crashes and assertion
failures.

Reverted changeset:

"Web Inspector: replace HTMLCanvasElement with
CanvasRenderingContext for instrumentation logic"
https://bugs.webkit.org/show_bug.cgi?id=180770
https://trac.webkit.org/changeset/225941

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

20 months agoIntroduce SPI _WKWebsitePolicies.websiteDataStore
achristensen@apple.com [Fri, 15 Dec 2017 23:14:33 +0000 (23:14 +0000)]
Introduce SPI _WKWebsitePolicies.websiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=180880
<rdar://problem/35535328>

Reviewed by Andy Estes.

Source/WebKit:

The SPI doesn't do anything yet, but it already has some restrictions and tests!
WKWebView._updateWebsitePolicies can't be used to update a WKWebsiteDataStore.  Only during navigation.
Even during navigation, we are only supporting the default and ephemeral data stores right now.
This functionality won't be supported in the C API.  This is enforced with RELEASE_ASSERTs.
If we change our minds, we can change them and add restrictions similar to the ObjC restrictions.

* Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
* Shared/WebsitePoliciesData.h:
* UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::WebsitePolicies):
(API::WebsitePolicies::setWebsiteDataStore):
(API::WebsitePolicies::data):
* UIProcess/API/APIWebsitePolicies.h:
* UIProcess/API/C/WKFramePolicyListener.cpp:
(WKFramePolicyListenerUseWithPolicies):
* UIProcess/API/C/WKPage.cpp:
(WKPageUpdateWebsitePolicies):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateWebsitePolicies:]):
* UIProcess/API/Cocoa/_WKWebsitePolicies.h:
* UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies websiteDataStore]):
(-[_WKWebsitePolicies setWebsiteDataStore:]):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:startURLSchemeTask:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:stopURLSchemeTask:]):
(TEST):

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

20 months agoFix GTK build.
achristensen@apple.com [Fri, 15 Dec 2017 22:28:25 +0000 (22:28 +0000)]
Fix GTK build.

* UIProcess/API/glib/WebKitPolicyDecision.cpp:
(webkit_policy_decision_use):

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

20 months agoAdd a release assert that Timer::m_wasDeleted is false in setNextFireTime
rniwa@webkit.org [Fri, 15 Dec 2017 21:32:07 +0000 (21:32 +0000)]
Add a release assert that Timer::m_wasDeleted is false in setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=180860
<rdar://problem/36066500>

Reviewed by David Kilzer.

Turn an exist debug-only assertion into a release assertion to help diagnose a crash
which appears to be caused by a freed timer getting scheduled back into the timer heap.

* platform/Timer.cpp:
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::setNextFireTime):
* platform/Timer.h:

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

20 months agoAvoid waking plugin process up unnecessarily
bfulgham@apple.com [Fri, 15 Dec 2017 21:27:24 +0000 (21:27 +0000)]
Avoid waking plugin process up unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=180819
<rdar://problem/36051548>

Reviewed by Geoffrey Garen.

WebKit purges data from origins marked as prevalent on an hourly interval. This includes waking up plugins
and removing relevant data stored in those plugins. This causes multiple plugin processes to be spawned,
even though the user is not interacting with any plugins.

Instead, we should delay removing data from plugins until they are loaded due to the user interacting with
a website using a plugin.

Make the following changes:
1. When looking for plugin data related to prevalent sites, only examine plugin data if the relevant plugin
   is already running.
2. When the state of the active plugins changes, trigger a data removal check.

* Shared/WebsiteData/WebsiteDataFetchOption.h: Add a new option 'DoNotCreateProcesses'
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::getPluginProcessConnection): Pass new argument 'Launch', since we always
want to launch processes in this case.
(WebKit::PluginProcessManager::fetchWebsiteData): Pass a new parameter 'processAccessType' so that the
caller can specify if they only want to examine already-active plugins, or if they want to spawn new
processes. Call the completion handler if we need to exit early when no process exists.
(WebKit::PluginProcessManager::deleteWebsiteData): Always launch new processes.
(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): Ditto.
(WebKit::PluginProcessManager::getOrCreatePluginProcess): Accept new parameter indicating if new processes
shoudl be launched. Also switch to C++ style loops.
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores): Use the
new 'DoNotCreatePrcesses' access type.
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords): Update the active plugin count when we
remove data.
(WebKit::WebResourceLoadStatisticsStore::shouldRemoveDataRecords const): Return true if the active plugin
process count changed since the last time data was removed.
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply): Check fetch option for new 'DoNotCreateProcesses' flag,
and tell the PluginProcessManager which mode we are using.

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

20 months agoElements animated on-screen are missing sometimes
simon.fraser@apple.com [Fri, 15 Dec 2017 21:18:59 +0000 (21:18 +0000)]
Elements animated on-screen are missing sometimes
https://bugs.webkit.org/show_bug.cgi?id=180773
rdar://problem/34923438

Reviewed by Zalan Bujtas.

After r225310 it was still possible for elements to be missing backing store when brought
on-screen via an animation. This occurred if a child element was outside the bounds of the
element being animated.

Fix by making sure that GraphicsLayer's "animatedExtent" took composited child layers into account.

As for r225310, no test because this is timing sensitive and hard to reliably make a test for.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):

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

20 months agoMake sure only WebsiteDataStores with valid SessionIDs register themselves.
beidson@apple.com [Fri, 15 Dec 2017 21:15:17 +0000 (21:15 +0000)]
Make sure only WebsiteDataStores with valid SessionIDs register themselves.
https://bugs.webkit.org/show_bug.cgi?id=180869

Reviewed by Chris Dumez.

Some code in WebsiteDataStore assumes an invalid SessionID is a possibility,
but we didn't account for that in the map added in r225935.

Seems prudent to make sure we're not doing hash table operations with invalid keys.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::maybeRegisterWithSessionIDMap):
(WebKit::WebsiteDataStore::existingNonDefaultDataStoreForSessionID):
* UIProcess/WebsiteData/WebsiteDataStore.h:

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

20 months agoRotating when zoomed in with fingers down can result in a broken tab
simon.fraser@apple.com [Fri, 15 Dec 2017 21:12:43 +0000 (21:12 +0000)]
Rotating when zoomed in with fingers down can result in a broken tab
https://bugs.webkit.org/show_bug.cgi?id=180859
rdar://problem/34532817

Reviewed by Tim Horton.

If you zoom in fully, then, with two fingers down, rotate the iPhone and rotate back,
then the tab can get into a broken state where the WKContentView has a non-zero position
which may push it entirely off-screen. The tab never recovers.

This is caused by a bug in UIKit (rdar://problem/36065495) so work around it by always
re-setting the position of the content view after zooming. We initialize contentView.frame
from self.bounds, so setting the position (via "center") to the bounds origin should always be safe.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):

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

20 months agoAPI test WebKit.WebsiteDataStoreCustomPaths is failing
beidson@apple.com [Fri, 15 Dec 2017 21:11:52 +0000 (21:11 +0000)]
API test WebKit.WebsiteDataStoreCustomPaths is failing
https://bugs.webkit.org/show_bug.cgi?id=180870

Reviewed by Chris Dumez.

To avoid unintentionally creating the default WebsiteDataStore we need to pass around the
relevant SessionID to more places.

* UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::start):
* UIProcess/ServiceWorkerProcessProxy.h:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::getStorageProcessConnection):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
* UIProcess/WebProcessPool.h:

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

* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::messageSenderConnection):

* WebProcess/Databases/WebDatabaseProvider.cpp:
(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

* WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::handleFetch):

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureWebToStorageProcessConnection):
(WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

20 months agoWeb Inspector: Canvas Tab should be turned on by default
webkit@devinrousso.com [Fri, 15 Dec 2017 20:35:27 +0000 (20:35 +0000)]
Web Inspector: Canvas Tab should be turned on by default
https://bugs.webkit.org/show_bug.cgi?id=180594
<rdar://problem/35938917>

Reviewed by Brian Burg.

* UserInterface/Base/Main.js:
(WI.loaded):

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

20 months agoUnreviewed, rebaseline Service Workers flaky tests.
cdumez@apple.com [Fri, 15 Dec 2017 20:12:36 +0000 (20:12 +0000)]
Unreviewed, rebaseline Service Workers flaky tests.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
* web-platform-tests/service-workers/service-worker/about-blank-replacement.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr.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:

LayoutTests:

* TestExpectations:

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

20 months agoMove WebKit::WebsitePolicies to API::WebsitePolicies
achristensen@apple.com [Fri, 15 Dec 2017 19:58:02 +0000 (19:58 +0000)]
Move WebKit::WebsitePolicies to API::WebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=180873

Reviewed by Joseph Pecoraro.

It's just an API data object now.  I need it to be in the API namespace so we can
give it references to other API namespace objects without weird layering violations.

* CMakeLists.txt:
* Shared/WebsiteAutoplayPolicy.h: Added.
* Shared/WebsiteAutoplayQuirk.h: Added.
* Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::fromWebsitePolicies): Deleted.
* Shared/WebsitePoliciesData.h:
* UIProcess/API/APIWebsitePolicies.cpp: Added.
(API::WebsitePolicies::~WebsitePolicies):
(API::WebsitePolicies::data):
* UIProcess/API/APIWebsitePolicies.h: Copied from Source/WebKit/UIProcess/WebsitePolicies.h.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKFramePolicyListener.cpp:
(WKFramePolicyListenerUseWithPolicies):
* UIProcess/API/C/WKPage.cpp:
(WKPageUpdateWebsitePolicies):
* UIProcess/API/C/WKWebsitePolicies.cpp:
(WKWebsitePoliciesGetTypeID):
(WKWebsitePoliciesCreate):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateWebsitePolicies:]):
* UIProcess/API/Cocoa/_WKWebsitePolicies.h:
* UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies dealloc]):
(-[_WKWebsitePolicies init]):
* UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:
(WebKit::wrapper): Deleted.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
* UIProcess/WebFormSubmissionListenerProxy.cpp:
* UIProcess/WebsitePolicies.h: Removed.
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:

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

20 months agoimported/w3c/web-platform-tests/service-workers/service-worker/update.https.html...
cdumez@apple.com [Fri, 15 Dec 2017 19:57:02 +0000 (19:57 +0000)]
imported/w3c/web-platform-tests/service-workers/service-worker/update.https.html is sometimes crashing in Debug builds
https://bugs.webkit.org/show_bug.cgi?id=180867

Reviewed by Brady Eidson.

Fix assertion to make sure the worker is terminating if it is already in m_runningOrTerminatingWorkers.

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

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

20 months agoService Worker Registration promise is sometimes not rejected when the script load...
cdumez@apple.com [Fri, 15 Dec 2017 19:36:51 +0000 (19:36 +0000)]
Service Worker Registration promise is sometimes not rejected when the script load fails
https://bugs.webkit.org/show_bug.cgi?id=180849

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

Rebaseline tests that are now passing.

* web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:
* web-platform-tests/service-workers/service-worker/registration-iframe.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/unregister-then-register-new-script.https-expected.txt:

Source/WebCore:

Service Worker Registration promise is sometimes not rejected when the script load fails.
This was caused by the ServiceWorkerJob sometimes passing a null ResourceError to the
StorageProcess, even though the load failed.

No new tests, rebaselined exisiting tests.

* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::notifyError):
* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::notifyFinished):

LayoutTests:

Fix WebKit-specific tests that had invalid URLs for workers. We failed to notice this
before because we were wrongly resolving the registration promise.

* http/tests/workers/service/basic-register-expected.txt:
* http/tests/workers/service/basic-unregister-then-register-again-no-reuse.html:
* http/tests/workers/service/registration-clear-redundant-worker.html:
* http/tests/workers/service/resources/basic-register.js:
* http/tests/workers/service/service-worker-gc-event.html:
* http/tests/workers/service/service-worker-registration-gc-event.html:

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

20 months agolibwebrtc installs an extra copy of encoder_vcp.h under /usr/local/include
mitz@apple.com [Fri, 15 Dec 2017 15:39:27 +0000 (15:39 +0000)]
libwebrtc installs an extra copy of encoder_vcp.h under /usr/local/include
https://bugs.webkit.org/show_bug.cgi?id=180858

Reviewed by Anders Carlsson.

* libwebrtc.xcodeproj/project.pbxproj: Demoted the header from Private to Project. A script build phase
  copies it to the correct location under /usr/local/include/webrtc.

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

20 months agoWebRTC Stats should not be console logged from a background thread
commit-queue@webkit.org [Fri, 15 Dec 2017 15:38:29 +0000 (15:38 +0000)]
WebRTC Stats should not be console logged from a background thread
https://bugs.webkit.org/show_bug.cgi?id=180845

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

Ensuring console log are done in the main thread.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):

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

20 months ago[GTK] Add proxy option to Minibrowser
nael.ouedraogo@crf.canon.fr [Fri, 15 Dec 2017 14:27:25 +0000 (14:27 +0000)]
[GTK] Add proxy option to Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=180750

Reviewed by Michael Catanzaro.

Add command line option to set proxy settings in GTK minibrowser.

* MiniBrowser/gtk/main.c:
(main):

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

20 months agoUnreviewed, 32bit JSEmpty is not nullptr + CellTag
utatane.tea@gmail.com [Fri, 15 Dec 2017 13:58:59 +0000 (13:58 +0000)]
Unreviewed, 32bit JSEmpty is not nullptr + CellTag
https://bugs.webkit.org/show_bug.cgi?id=180804

Add 32bit path for WeakMapGet.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileWeakMapGet):

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

20 months agoWebDriver: add support for accept/dismiss and notify unhandled prompt behavior
carlosgc@webkit.org [Fri, 15 Dec 2017 13:14:36 +0000 (13:14 +0000)]
WebDriver: add support for accept/dismiss and notify unhandled prompt behavior
https://bugs.webkit.org/show_bug.cgi?id=179999

Reviewed by Carlos Alberto Lopez Perez.

They work as accept and dismiss, but unexpected alert open is still reported.

18. User Prompts
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-known-prompt-handling-approaches-table

* Capabilities.h: Add DismissAndNotify and AcceptAndNotify to UnhandledPromptBehavior enum.
* Session.cpp:
(WebDriver::Session::handleUnexpectedAlertOpen): Move default implementation to dismissAndNotifyAlert and
acceptAndNotifyAlert and use dismissAndNotifyAlert by default.
(WebDriver::Session::dismissAndNotifyAlert):
(WebDriver::Session::acceptAndNotifyAlert):
* Session.h:
* WebDriverService.cpp:
(WebDriver::deserializeUnhandledPromptBehavior): Handle accept/dismiss and notify.
(WebDriver::WebDriverService::newSession): Ditto.

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

20 months agoIntroduce RenderTreeBuilder
antti@apple.com [Fri, 15 Dec 2017 12:35:03 +0000 (12:35 +0000)]
Introduce RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=180817

Reviewed by Zalan Bujtas.

RenderTreeBuilder is responsible of building the render tree, including construction of various anonymous
renderers. Renderer subtype specific render tree construction code will eventually move there.

This patch adds RenderTreeBuilder class and passes it as a parameter for all addChild implementations.
Future patches can then mechanically move the building code from renderers to RenderTreeBuilder.

It also moves one addChild implementation (RenderRuby::addChild -> RenderTreeBuilder::rubyRunInsertChild)
to RenderTreeBuilder as a test.

* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::addChild):
(WebCore::RenderBlock::addChildIgnoringContinuation):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addChild):
* rendering/RenderBlockFlow.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildTo):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::addChild):
(WebCore::RenderButton::setText):
* rendering/RenderButton.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::addChild):
* rendering/RenderElement.h:
(WebCore::RenderElement::addChildIgnoringContinuation):
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
(WebCore::RenderFullScreen::createPlaceholder):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::addChild):
* rendering/RenderGrid.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChild):
(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::splitFlow):
(WebCore::RenderInline::addChildToContinuation):
(WebCore::RenderInline::childBecameNonInline):
* rendering/RenderInline.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::createInnerBlock):
(RenderMenuList::addChild):
(RenderMenuList::setText):
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::processPossibleSpannerDescendant):
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::updateTextRenderer):
(WebCore::RenderQuote::updateRenderer):
* rendering/RenderQuote.h:
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::addChild):
(WebCore::RenderRubyAsBlock::addChild):
* rendering/RenderRuby.h:
* rendering/RenderRubyBase.h:
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::rubyBaseSafe):
(WebCore::RenderRubyRun::addChild): Deleted.
* rendering/RenderRubyRun.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
* rendering/RenderTable.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild):
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
* rendering/RenderTableSection.h:
* rendering/RenderTreeBuilder.cpp: Added.
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::~RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::rubyRunInsertChild):
* rendering/RenderTreeBuilder.h: Added.
(WebCore::RenderTreeBuilder::current):
* rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingValue::adjustTextNodeSizes):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
* rendering/mathml/RenderMathMLFenced.h:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::addChild):
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::addChild):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::addChild):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::addChild):
* rendering/svg/RenderSVGText.h:
* style/RenderTreePosition.cpp:
(WebCore::RenderTreePosition::insert): Deleted.
* style/RenderTreePosition.h:
(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::nextSibling const):
(WebCore::RenderTreePosition::canInsert const): Deleted.
* style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateAfterDescendants):
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):
(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::createTextRenderer): Deleted.
* style/RenderTreeUpdater.h:
* style/RenderTreeUpdaterFirstLetter.cpp:
(WebCore::updateFirstLetterStyle):
(WebCore::createFirstLetterRenderer):
* style/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
(WebCore::createContentRenderers):
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
* style/RenderTreeUpdaterListItem.cpp:
(WebCore::RenderTreeUpdater::ListItem::updateMarker):
* style/RenderTreeUpdaterListItem.h:
* style/RenderTreeUpdaterMultiColumn.cpp:
(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeUpdater::MultiColumn::destroyFragmentedFlow):

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

20 months agoWeb Inspector: Styles Redesign: clicking above selector should prepend new property
nvasilyev@apple.com [Fri, 15 Dec 2017 08:28:45 +0000 (08:28 +0000)]
Web Inspector: Styles Redesign: clicking above selector should prepend new property
https://bugs.webkit.org/show_bug.cgi?id=180628
<rdar://problem/35954570>

Reviewed by Devin Rousso.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor .property):
(.spreadsheet-style-declaration-editor .property-toggle):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration :matches(.header, .header-media)):
(.spreadsheet-css-declaration :matches(.header, .header-media):first-child):
When header-media element is present, header element should have padding-top set to 0.

(.spreadsheet-css-declaration .header.editing-selector .origin):
(.spreadsheet-css-declaration .close-brace):

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

20 months agoUnreviewed GTK+ build fix after r225954.
zandobersek@gmail.com [Fri, 15 Dec 2017 07:53:25 +0000 (07:53 +0000)]
Unreviewed GTK+ build fix after r225954.

* UIProcess/API/glib/WebKitPolicyDecision.cpp:
Explicitly include the WebsitePoliciesData.h header, avoiding build
failures due to incomplete WebsitePoliciesData type.

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

20 months agoThe CleanUp after LICM is erroneously removing a Check
sbarati@apple.com [Fri, 15 Dec 2017 06:20:07 +0000 (06:20 +0000)]
The CleanUp after LICM is erroneously removing a Check
https://bugs.webkit.org/show_bug.cgi?id=180852
<rdar://problem/36063494>

Reviewed by Filip Pizlo.

JSTests:

* stress/dont-run-cleanup-after-licm.js: Added.

Source/JavaScriptCore:

There was a bug where CleanUp phase relied on isProved() bits and LICM
changed them in an invalid way. The bug is as follows:

We have two loops, L1 and L2, and two preheaders, P1 and P2. L2 is nested
inside of L1. We have a Check inside a node inside L1, say in basic block BB,
and that Check dominates all of L2. This is also a hoisting candidate, so we
hoist it outside of L1 and put it inside P1. Then, when we run AI, we look at
the preheader for each loop inside L1, so P1 and P2. When considering P2,
we execute the Check. Inside P2, before any hoisting is done, this Check
is dead code, because BB dominates P2. When we use AI to "execute" the
Check, it'll set its proof status to proved. This is because inside P2,
in the program before LICM runs, the Check is indeed proven at P2. But
it is not proven inside P1. This "execute" call will set our proof status
for the node inside *P1*, hence, we crash.

The fix here is to make LICM precise when updating the ProofStatus of an edge.
It can trust the AI state at the preheader it hoists the node to, but it can't
trust the state when executing effects inside inner loops's preheaders.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):

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

20 months agoImplement <iframe allow="camera; microphone">
commit-queue@webkit.org [Fri, 15 Dec 2017 05:32:53 +0000 (05:32 +0000)]
Implement <iframe allow="camera; microphone">
https://bugs.webkit.org/show_bug.cgi?id=167430
LayoutTests/imported/w3c:

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

* resources/import-expectations.json:
* web-platform-tests/feature-policy/resources/: Added as this is used for some mediacapture-streams tests.
* web-platform-tests/mediacapture-streams/: Added.

Source/WebCore:

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

Tests: imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub.html

Adding allow attribute to HTMLIFrameElement as per https://wicg.github.io/feature-policy/#iframe-allow-attribute.
Cross-origin iframes will get access to camera/microphone based on this attribute value.
Same-origin iframes do not need any attribute.
In case getUserMedia requests both camera and microphone, and allow attribute is only one of these,
getUserMedia access is denied. This goes against the tests but is not very clear from the specification.

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::isSecure):
(WebCore::isAllowedToUse):
(WebCore::canCallGetUserMedia):
(WebCore::UserMediaRequest::start):
* html/HTMLAttributeNames.in:
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* html/HTMLIFrameElement.h:
* html/HTMLIFrameElement.idl:

LayoutTests:

<rdar://problem/34887226>

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

Skipping mediastream tests for wpe.
Updating expectations based on new error message.

* TestExpectations: Skipping sync XHR test using allow attribute.
* http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
* http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
* platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub-expected.txt:
* platform/wpe/TestExpectations:

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

20 months agoFix 32-bit build: Enable -Wstrict-prototypes for WebKit
ddkilzer@apple.com [Fri, 15 Dec 2017 05:22:36 +0000 (05:22 +0000)]
Fix 32-bit build: Enable -Wstrict-prototypes for WebKit
<https://webkit.org/b/180757>
<rdar://problem/36024132>

* pal/spi/mac/QuickDrawSPI.h:
(NewRgn): Add 'void' to C function declaration.
(PenNormal): Ditto.

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

20 months agoUnreviewed, commit missing empty.js file in service workers WPT tests
cdumez@apple.com [Fri, 15 Dec 2017 05:20:36 +0000 (05:20 +0000)]
Unreviewed, commit missing empty.js file in service workers WPT tests

* web-platform-tests/service-workers/service-worker/resources/empty.js: Added.
* web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt:

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

20 months agoInconsistent section grid could lead to CrashOnOverflow
zalan@apple.com [Fri, 15 Dec 2017 04:22:47 +0000 (04:22 +0000)]
Inconsistent section grid could lead to CrashOnOverflow
https://bugs.webkit.org/show_bug.cgi?id=180850
<rdar://problem/34064811>

Reviewed by Simon Fraser.

Source/WebCore:

Each RenderTableSection maintains a grid of rows and columns. The number of columns in this grid equals the
maximum number of columns in the entire table (taking spans and multiple sections into account).
Since the maximum number of columns might change while re-computing the sections, we need to
adjust them accordingly at the end (otherwise it could lead to inconsistent grids where rows have different number of columns).

Test: fast/table/table-row-oveflow-crash.html

* rendering/RenderTable.cpp:
(WebCore::RenderTable::recalcSections const):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::removeRedundantColumns):
* rendering/RenderTableSection.h:

LayoutTests:

* fast/table/table-row-oveflow-crash-expected.txt: Added.
* fast/table/table-row-oveflow-crash.html: Added.

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

20 months ago[webkitpy, Windows] Remove unnecessary debug message
commit-queue@webkit.org [Fri, 15 Dec 2017 04:22:22 +0000 (04:22 +0000)]
[webkitpy, Windows] Remove unnecessary debug message
https://bugs.webkit.org/show_bug.cgi?id=180844

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2017-12-14
Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/common/system/crashlogs.py:
(CrashLogs._find_newest_log_win): Delete debug print

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

20 months agoEnable -Wstrict-prototypes for WebKit
ddkilzer@apple.com [Fri, 15 Dec 2017 04:19:29 +0000 (04:19 +0000)]
Enable -Wstrict-prototypes for WebKit
<https://webkit.org/b/180757>
<rdar://problem/36024132>

Rubber-stamped by Joseph Pecoraro.

Source/bmalloc:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/JavaScriptCore:

* API/tests/CompareAndSwapTest.h:
(testCompareAndSwap): Add 'void' to C function declaration.
* API/tests/ExecutionTimeLimitTest.h:
(testExecutionTimeLimit): Ditto.
* API/tests/FunctionOverridesTest.h:
(testFunctionOverrides): Ditto.
* API/tests/GlobalContextWithFinalizerTest.h:
(testGlobalContextWithFinalizer): Ditto.
* API/tests/JSONParseTest.h:
(testJSONParse): Ditto.
* API/tests/MultithreadedMultiVMExecutionTest.h:
(startMultithreadedMultiVMExecutionTest): Ditto.
(finalizeMultithreadedMultiVMExecutionTest): Ditto.
* API/tests/PingPongStackOverflowTest.h:
(testPingPongStackOverflow): Ditto.
* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/ThirdParty:

* gtest/xcode/Config/General.xcconfig:
(WARNING_CFLAGS): Add semicolon.
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/ThirdParty/ANGLE:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/ThirdParty/libwebrtc:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.
* Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:
(wakeup_one): Modernize function argument declarations.
(getsockaddr): Ditto.
* Source/webrtc/common_audio/signal_processing/include/signal_processing_library.h:
(WebRtcSpl_Init): Add 'void' to C function declaration.
* Source/webrtc/common_audio/vad/include/webrtc_vad.h:
(WebRtcVad_Create): Ditto.
* Source/webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h:
(WebRtcIsacfix_InitTransform): Ditto.
* Source/webrtc/modules/audio_processing/agc/legacy/gain_control.h:
(WebRtcAgc_Create): Ditto.
* Source/webrtc/modules/audio_processing/ns/noise_suppression.h:
(WebRtcNs_Create): Ditto.
(WebRtcNs_num_freq): Ditto.
* Source/webrtc/modules/audio_processing/ns/noise_suppression_x.h:
(WebRtcNsx_Create): Ditto.
(WebRtcNsx_num_freq): Ditto.

Source/WebCore:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/WebCore/PAL:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/WebInspectorUI:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/WebKit:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.
* Platform/spi/ios/UIKitSPI.h:
(_UIDragInteractionDefaultLiftDelay): Add 'void' to C function declaration.
(UIKeyboardEnabledInputModesAllowOneToManyShortcuts): Ditto.

Source/WebKitLegacy/mac:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

Source/WTF:

* Configurations/Base.xcconfig:
(CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.
* wtf/Assertions.h:
(WTFReportBacktrace): Add 'void' to C function declaration.
(WTFCrashHookFunction): Add 'void' to C function pointer declaration.
(WTFInstallReportBacktraceOnCrashHook): Add 'void' to C function declaration.
(WTFIsDebuggerAttached): Ditto.
(WTFCrash): Ditto.
(WTFCrashWithSecurityImplication): Ditto.

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

20 months agocheck-webkit-style: Stop warning about underscores in webrtc source
ddkilzer@apple.com [Fri, 15 Dec 2017 03:26:27 +0000 (03:26 +0000)]
check-webkit-style: Stop warning about underscores in webrtc source
<https://webkit.org/b/180848>

Reviewed by Joseph Pecoraro.

* Scripts/webkitpy/style/checker.py:
(_PATH_RULES_SPECIFIER): Suppress readability/naming/underscores
warnings under Source/ThirdParty/libwebrtc/Source/webrtc.

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

20 months ago[iOS] Many serviceworker tests are flaky timeouts on iOS bots
cdumez@apple.com [Fri, 15 Dec 2017 02:49:25 +0000 (02:49 +0000)]
[iOS] Many serviceworker tests are flaky timeouts on iOS bots
https://bugs.webkit.org/show_bug.cgi?id=179454
<rdar://problem/35429369>

Unreviewed attempt to unmark service worker tests as flaky on iOS.
We have now fixed all the iOS-specific bugs we are aware of so we
should give this a try.

* platform/ios/TestExpectations:

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

20 months agosrflx and relay ICE candidates lack raddr (rel-addr) and rport (rel-port) attributes...
commit-queue@webkit.org [Fri, 15 Dec 2017 02:14:04 +0000 (02:14 +0000)]
srflx and relay ICE candidates lack raddr (rel-addr) and rport (rel-port) attributes if getUserMedia access has not been granted
https://bugs.webkit.org/show_bug.cgi?id=180842

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-14
Reviewed by Jon Lee.

Manually tested since there is no way to gather reflexive or stun candidates in WebKit CI.

* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::filterICECandidate):

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

20 months agoSerialize WebsitePoliciesData instead of WebsitePolicies
achristensen@apple.com [Fri, 15 Dec 2017 02:08:23 +0000 (02:08 +0000)]
Serialize WebsitePoliciesData instead of WebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=180847

Reviewed by Joseph Pecoraro.

No change in behavior.  This will allow me to add things to WebsitePolicies that have
a different form when serialized to another process.

Also, remove API::WebsitePolicies because the wrapper isn't necessary.
WebsitePolicies is now the API type that only exists in the UIProcess.

* Shared/WebsitePolicies.cpp: Removed.
* Shared/WebsitePolicies.h:
(WebKit::WebsitePolicies::contentBlockersEnabled const): Deleted.
(WebKit::WebsitePolicies::setContentBlockersEnabled): Deleted.
(WebKit::WebsitePolicies::allowedAutoplayQuirks const): Deleted.
(WebKit::WebsitePolicies::setAllowedAutoplayQuirks): Deleted.
(WebKit::WebsitePolicies::autoplayPolicy const): Deleted.
(WebKit::WebsitePolicies::setAutoplayPolicy): Deleted.
(WebKit::WebsitePolicies::customHeaderFields): Deleted.
(WebKit::WebsitePolicies::takeCustomHeaderFields): Deleted.
(WebKit::WebsitePolicies::setCustomHeaderFields): Deleted.
* Shared/WebsitePoliciesData.cpp: Copied from Source/WebKit/Shared/WebsitePolicies.cpp.
(WebKit::WebsitePoliciesData::fromWebsitePolicies):
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
(WebKit::WebsitePolicies::WebsitePolicies): Deleted.
(WebKit::WebsitePolicies::encode const): Deleted.
(WebKit::WebsitePolicies::decode): Deleted.
(WebKit::WebsitePolicies::applyToDocumentLoader): Deleted.
* Shared/WebsitePoliciesData.h: Added.
* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::decidePolicyForNavigationAction):
(API::NavigationClient::decidePolicyForNavigationResponse):
* UIProcess/API/APIPolicyClient.h:
(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):
(API::PolicyClient::decidePolicyForResponse):
* UIProcess/API/APIWebsitePolicies.cpp: Removed.
* UIProcess/API/APIWebsitePolicies.h: Removed.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKFramePolicyListener.cpp:
(WKFramePolicyListenerUse):
(WKFramePolicyListenerUseWithPolicies):
* UIProcess/API/C/WKPage.cpp:
(WKPageUpdateWebsitePolicies):
(WKPageSetPagePolicyClient):
(WKPageSetPageNavigationClient):
* UIProcess/API/C/WKWebsitePolicies.cpp:
(WKWebsitePoliciesGetTypeID):
(WKWebsitePoliciesCreate):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateWebsitePolicies:]):
* UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies dealloc]):
(-[_WKWebsitePolicies init]):
* UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:
(WebKit::wrapper):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
* UIProcess/WebFrameListenerProxy.cpp:
(WebKit::WebFrameListenerProxy::receivedPolicyDecision):
* UIProcess/WebFrameListenerProxy.h:
* UIProcess/WebFramePolicyListenerProxy.cpp:
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):
* UIProcess/WebFramePolicyListenerProxy.h:
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::receivedPolicyDecision):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::updateWebsitePolicies):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::applyToDocumentLoader):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::didReceivePolicyDecision):
* WebProcess/WebPage/WebFrame.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::updateWebsitePolicies):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

20 months agowebkitpy: Replace Version.contained_in with Version.__contains__
jbedard@apple.com [Fri, 15 Dec 2017 01:46:42 +0000 (01:46 +0000)]
webkitpy: Replace Version.contained_in with Version.__contains__
https://bugs.webkit.org/show_bug.cgi?id=180772
<rdar://problem/36033555>

Reviewed by David Kilzer.

Using __contains__ instead of contained_in allows for the more
Pythonic 'in' operator to be used.

* Scripts/webkitpy/common/version.py:
(Version):
(Version.__contains__): Replace contained_in. Note that self is now
the container.
(Version.contained_in): Deleted.
* Scripts/webkitpy/common/version_name_map.py:
(VersionNameMap.to_name):
* Scripts/webkitpy/common/version_unittest.py:
(VersionTestCase.test_contained_in):

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

20 months ago[DFG] Reduce register pressure of WeakMapGet to be used for 32bit
utatane.tea@gmail.com [Fri, 15 Dec 2017 01:45:28 +0000 (01:45 +0000)]
[DFG] Reduce register pressure of WeakMapGet to be used for 32bit
https://bugs.webkit.org/show_bug.cgi?id=180804

Reviewed by Saam Barati.

This fixes 32bit failures of JSC by reducing register pressure of WeakMapGet.

* dfg/DFGRegisterBank.h:
(JSC::DFG::RegisterBank::lockedCount const):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileWeakMapGet):

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

20 months agoUnreviewed, rolling out r225878.
commit-queue@webkit.org [Fri, 15 Dec 2017 01:39:29 +0000 (01:39 +0000)]
Unreviewed, rolling out r225878.
https://bugs.webkit.org/show_bug.cgi?id=180855

Introduced a crash in HTMLPictureElement. We're taking a
different approach for webkit.org/b/180769 (Requested by rniwa
on #webkit).

Reverted changeset:

"Crash inside ImageLoader::updateFromElement()"
https://bugs.webkit.org/show_bug.cgi?id=180769
https://trac.webkit.org/changeset/225878

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

20 months agoWeb Inspector: InspectorTest.evaluateInPage should unwrap primitive values by default
bburg@apple.com [Fri, 15 Dec 2017 01:39:11 +0000 (01:39 +0000)]
Web Inspector: InspectorTest.evaluateInPage should unwrap primitive values by default
https://bugs.webkit.org/show_bug.cgi?id=180831

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Test/FrontendTestHarness.js:
(FrontendTestHarness.prototype.evaluateInPage.resultObjectToReturn):
(FrontendTestHarness.prototype.evaluateInPage):
Unwrap the resulting RemoteObject's value if it is a primitive.
Add an `options` dictionary so this behavior can be opted out.

* UserInterface/Test/TestHarness.js:
Add documentation of how evaluateInPage works.

LayoutTests:

* inspector/unit-tests/test-harness-evaluate-in-page-expected.txt: Added.
* inspector/unit-tests/test-harness-evaluate-in-page.html: Added.

Add test coverage for InspectorTest.evaluateInPage. Only the promise-returning
variant is tested here, because the callback variant is well-used in existing
tests and I plan to remove the callback variant entirely in later patches.

* inspector/console/js-isLikelyStackTrace-expected.txt:
* inspector/console/js-isLikelyStackTrace.html:
Fix some bad tests and rebaseline. A bug was filed for the remaining failing assertion.

* http/tests/inspector/dom/shapes-test.js:
(TestPage.registerInitializer.InspectorTest.Shapes.receivedHighlightObject):
(TestPage.registerInitializer.InspectorTest.Shapes.getShapeOutsideInfoForSelector):
* http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html:
* inspector/console/command-line-api-copy.html:
* inspector/console/console-log-proxy.html:
* inspector/debugger/js-stacktrace.html:
* inspector/dom/hideHighlight.html:
* inspector/dom/highlightFrame.html:
* inspector/dom/highlightNode.html:
* inspector/dom/highlightNodeList.html:
* inspector/dom/highlightQuad.html:
* inspector/dom/highlightRect.html:
* inspector/dom/highlightSelector.html:
* inspector/page/setEmulatedMedia.html:
* inspector/runtime/getPreview.html:
Fix existing tests to opt out of unwrapping or use the unwrapped value directly.

* inspector/dom/setEventListenerDisabled-expected.txt:
Rebaseline results. This is caused by an extra promise tick in evaluateInPage.

* inspector/injected-script/observable-expected.txt:
* inspector/injected-script/observable.html:
Fix a typo and rebaseline.

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

20 months agoUnreviewed, rolling out r225931.
ryanhaddad@apple.com [Fri, 15 Dec 2017 01:29:31 +0000 (01:29 +0000)]
Unreviewed, rolling out r225931.

Breaks internal builds.

Reverted changeset:

"Fix Mac CMake build"
https://bugs.webkit.org/show_bug.cgi?id=180835
https://trac.webkit.org/changeset/225931

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

20 months agoUnreviewed, rebaseline compositing/repaint/iframes/composited-iframe-with-fixed-backg...
ryanhaddad@apple.com [Fri, 15 Dec 2017 01:28:19 +0000 (01:28 +0000)]
Unreviewed, rebaseline compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint.html after r225897.

* platform/mac-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt:

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

20 months agoAnother Windows build fix.
simon.fraser@apple.com [Fri, 15 Dec 2017 01:27:54 +0000 (01:27 +0000)]
Another Windows build fix.

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

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

20 months agoFix Windows build after r225915.
simon.fraser@apple.com [Fri, 15 Dec 2017 01:01:47 +0000 (01:01 +0000)]
Fix Windows build after r225915.

Windows doens't have dispatch_once with blocks. Switch to use lambda functions instead.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::sRGBColorSpaceRef):
(WebCore::linearRGBColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):

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

20 months agoWeb Inspector: Styles Redesign: selecting text should not add new properties
nvasilyev@apple.com [Fri, 15 Dec 2017 01:00:04 +0000 (01:00 +0000)]
Web Inspector: Styles Redesign: selecting text should not add new properties
https://bugs.webkit.org/show_bug.cgi?id=180797
<rdar://problem/36039751>

Reviewed by Devin Rousso.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):

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

20 months agoClearing WebSite data on iOS does not clear the Fetch Cache
cdumez@apple.com [Fri, 15 Dec 2017 00:50:04 +0000 (00:50 +0000)]
Clearing WebSite data on iOS does not clear the Fetch Cache
https://bugs.webkit.org/show_bug.cgi?id=180846
<rdar://problem/36060129>

Reviewed by Youenn Fablet.

When clearing WebSite data, construct the engine for the given sessionID
if missing, instead of not clearing anything when the engine is missing.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):

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

20 months agoUnreviewed, forgot to add { }
keith_miller@apple.com [Fri, 15 Dec 2017 00:12:06 +0000 (00:12 +0000)]
Unreviewed, forgot to add { }

* runtime/JSObject.h:
(JSC::JSObject::setButterfly):
(JSC::JSObject::nukeStructureAndSetButterfly):

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

20 months agoSkipped media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse.html on...
jlewis3@apple.com [Fri, 15 Dec 2017 00:02:42 +0000 (00:02 +0000)]
Skipped media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse.html on macOS.
https://bugs.webkit.org/show_bug.cgi?id=180430

Unreviewed test gardening.

* platform/mac-elcapitan/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

20 months agoWeb Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentat...
webkit@devinrousso.com [Fri, 15 Dec 2017 00:02:18 +0000 (00:02 +0000)]
Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
https://bugs.webkit.org/show_bug.cgi?id=180770

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/Canvas.json:

Source/WebCore:

No change in functionality.

* html/canvas/CanvasRenderingContext.h:
* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::~CanvasRenderingContext):
Instead of waiting on the HTMLCanvasElement to destruct to call willDestroyCanvasRenderingContext
we can call out in the destructor and know that the CanvasRenderingContext will be destroyed
immediately thereafter.

* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::create):
* html/canvas/ImageBitmapRenderingContext.h:
* html/canvas/ImageBitmapRenderingContext.cpp:
(WebCore::ImageBitmapRenderingContext::create):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::create):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
* html/canvas/WebGPURenderingContext.cpp:
(WebCore::WebGPURenderingContext::create):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createContext2d):
(WebCore::HTMLCanvasElement::createContextWebGL):
(WebCore::HTMLCanvasElement::createContextWebGPU):
(WebCore::HTMLCanvasElement::createContextBitmapRenderer):
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::setImageBuffer const):
Instead of adding didCreateCanvasRenderingContext calls at the construction sites of each
context, we can make the constructors private and force the usage of static `create` functions.
This way, we have access to the fully constructed object and have a guaranteed path for creation.

* inspector/InspectorCanvas.h:
* inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::create):
(WebCore::InspectorCanvas::InspectorCanvas):
(WebCore::InspectorCanvas::canvasElement):
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::buildInitialState):

* inspector/InspectorShaderProgram.h:
* inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::context const):

* inspector/agents/InspectorCanvasAgent.h:
* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::disable):
(WebCore::InspectorCanvasAgent::requestNode):
(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
(WebCore::contextAsScriptValue):
(WebCore::InspectorCanvasAgent::resolveCanvasContext):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::updateShader):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
(WebCore::InspectorCanvasAgent::willDestroyCanvasRenderingContext):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
(WebCore::InspectorCanvasAgent::didEnableExtension):
(WebCore::InspectorCanvasAgent::didCreateProgram):
(WebCore::InspectorCanvasAgent::canvasDestroyedTimerFired):
(WebCore::InspectorCanvasAgent::canvasRecordingTimerFired):
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::unbindCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::unbindProgram):
(WebCore::InspectorCanvasAgent::didCreateCSSCanvas): Deleted.
(WebCore::InspectorCanvasAgent::canvasDestroyed): Deleted.

* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didCreateCanvasRenderingContext):
(WebCore::InspectorInstrumentation::willDestroyCanvasRenderingContext):
(WebCore::InspectorInstrumentation::didChangeCanvasMemory):
(WebCore::InspectorInstrumentation::recordCanvasAction):
(WebCore::InspectorInstrumentation::didFinishRecordingCanvasFrame):
(WebCore::InspectorInstrumentation::didEnableExtension):
(WebCore::InspectorInstrumentation::didCreateProgram):
(WebCore::InspectorInstrumentation::willDeleteProgram):
(WebCore::InspectorInstrumentation::isShaderProgramDisabled):
(WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
(WebCore::InspectorInstrumentation::didCreateCSSCanvas): Deleted.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::consoleStartRecordingCanvasImpl):
(WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl):
(WebCore::InspectorInstrumentation::didCreateCanvasRenderingContextImpl):
(WebCore::InspectorInstrumentation::willDestroyCanvasRenderingContextImpl):
(WebCore::InspectorInstrumentation::didChangeCanvasMemoryImpl):
(WebCore::InspectorInstrumentation::didFinishRecordingCanvasFrameImpl):
(WebCore::InspectorInstrumentation::didEnableExtensionImpl):
(WebCore::InspectorInstrumentation::didCreateProgramImpl):
(WebCore::InspectorInstrumentation::didCreateCSSCanvasImpl): Deleted.

* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::record):
(WebCore::PageConsoleClient::recordEnd):

* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::getCSSCanvasElement):
(WebCore::Document::nameForCSSCanvasElement const):
We have no reason to save the CSS canvas name for each InspectorCanvas object, so instead we
can just query for the name based on the CanvasRenderingContext's HTMLCanvasElement (assuming
it is not an OffscreenCanvas) when we need it.

Source/WebInspectorUI:

* UserInterface/Models/Canvas.js:
(WI.Canvas.fromPayload):
(WI.Canvas.prototype.get contextType):
(WI.Canvas.prototype.saveIdentityToCookie):
(WI.Canvas.prototype.get frame): Deleted.

Tools:

* Scripts/webkitpy/common/config/watchlist:

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

20 months agoself.importScripts() should obey updateViaCache inside service workers
cdumez@apple.com [Thu, 14 Dec 2017 23:59:40 +0000 (23:59 +0000)]
self.importScripts() should obey updateViaCache inside service workers
https://bugs.webkit.org/show_bug.cgi?id=180826

Reviewed by Youenn Fablet.

Source/WebCore:

self.importScripts() should obey updateViaCache inside service workers, as per:
- https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-importscripts

Tests: http/tests/workers/service/registration-updateViaCache-all-importScripts.html
       http/tests/workers/service/registration-updateViaCache-imports-importScripts.html
       http/tests/workers/service/registration-updateViaCache-none-importScripts.html

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
* workers/WorkerScriptLoader.h:
* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::setRegistrationLastUpdateTime):
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::lastUpdateTime const):
(WebCore::ServiceWorkerRegistration::setLastUpdateTime):
* workers/service/ServiceWorkerRegistration.h:
* workers/service/server/SWServer.h:
* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::setLastUpdateTime):
* workers/service/server/SWServerRegistration.h:

Source/WebKit:

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::setRegistrationLastUpdateTime):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:

LayoutTests:

Add layout test coverage.

* http/tests/workers/service/registration-updateViaCache-all-importScripts-expected.txt: Added.
* http/tests/workers/service/registration-updateViaCache-all-importScripts.html: Added.
* http/tests/workers/service/registration-updateViaCache-imports-importScripts-expected.txt: Added.
* http/tests/workers/service/registration-updateViaCache-imports-importScripts.html: Added.
* http/tests/workers/service/registration-updateViaCache-none-importScripts-expected.txt: Added.
* http/tests/workers/service/registration-updateViaCache-none-importScripts.html: Added.
* http/tests/workers/service/resources/import-cacheable-script-worker.js: Added.

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

20 months agoWeb Inspector: Network Tab - URL filter should be case-insensitive like filter bars...
commit-queue@webkit.org [Thu, 14 Dec 2017 23:54:21 +0000 (23:54 +0000)]
Web Inspector: Network Tab - URL filter should be case-insensitive like filter bars in other tabs
https://bugs.webkit.org/show_bug.cgi?id=180824
<rdar://problem/35910750>

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

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype._resetFilters):
(WI.NetworkTableContentView.prototype._urlFilterDidChange):
Use a case-insensitive regex created from the search query
and use that when filtering resources.

(WI.NetworkTableContentView.prototype._checkURLFilterAgainstFinishedResource): Deleted.
(WI.NetworkTableContentView.prototype._checkURLFilterAgainstResource):
(WI.NetworkTableContentView.prototype._resourceLoadingDidFinish):
(WI.NetworkTableContentView.prototype._resourceLoadingDidFail):
Rename the helper for checking the URL filter.

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

20 months agoDrop Thread::tryCreate
utatane.tea@gmail.com [Thu, 14 Dec 2017 23:51:05 +0000 (23:51 +0000)]
Drop Thread::tryCreate
https://bugs.webkit.org/show_bug.cgi?id=180808

Reviewed by Darin Adler.

Source/WebCore:

This change reveals that nobody cares the WorkerThread::start's failure.
We should use `Thread::create` to ensure thread is actually starting.

* workers/WorkerThread.cpp:
(WebCore::WorkerThread::start):
* workers/WorkerThread.h:

Source/WebKit:

We still return bool since IconDatabase::open returns `false` if it is opened twice.

* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::open):
* UIProcess/API/glib/IconDatabase.h:

Source/WebKitLegacy:

* Storage/StorageThread.cpp:
(WebCore::StorageThread::start):
* Storage/StorageThread.h:

Source/WTF:

We remove Thread::tryCreate. When thread creation fails, we have no way to keep WebKit working.
Compared to tryMalloc, Thread::create always consumes fixed size of resource. If it fails,
this is not due to arbitrary large user request. It is not reasonable that some thread creations
are handled gracefully while the other thread creations are not.

If we would like to have the limit of number of users' thread creation (like, calling `new Worker`
so many times), we should have a soft limit instead of relying on system's hard limit.

* wtf/ParallelJobsGeneric.cpp:
(WTF::ParallelEnvironment::ThreadPrivate::tryLockFor):
* wtf/Threading.cpp:
(WTF::Thread::create):
(WTF::Thread::tryCreate): Deleted.
* wtf/Threading.h:
(WTF::Thread::create): Deleted.

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

20 months agoImprove leaks detector output
ap@apple.com [Thu, 14 Dec 2017 23:26:12 +0000 (23:26 +0000)]
Improve leaks detector output
https://bugs.webkit.org/show_bug.cgi?id=180828

Reviewed by Joseph Pecoraro.

Fixing two issues:
1. run-leaks omits many lines from leaks tool output, making it incompatible with
other tools. Notably, symbolication cannot be performed.
2. run-leaks output goes to "run-webkit-tests --debug-rwt-logging" output. This
makes it much longer than needed, sometimes even overloading buildbot. We don't
need full output in test log, as separate files are created for each of these.

* Scripts/run-leaks: Represent each line in leaks output when parsing, and print
everything except for explicitly excluded leaks. From my testing and reading
the code, it looks like none of our tools should be broken by this change.

* Scripts/webkitpy/port/leakdetector.py: I couldn't find a way to run a helper tool
without dumping all of its output to debug log, so switched to using a file for leaks.

* Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v1.0.pl:
* Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v2.0-new.pl:
* Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v2.0-old.pl:
* Scripts/webkitpy/port/leakdetector_unittest.py:
Updated tests for new behavior.

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

20 months ago[MSE] Add isValid() check before using trackBuffer.lastEnqueuedPresentationTime
commit-queue@webkit.org [Thu, 14 Dec 2017 23:13:41 +0000 (23:13 +0000)]
[MSE] Add isValid() check before using trackBuffer.lastEnqueuedPresentationTime
https://bugs.webkit.org/show_bug.cgi?id=180258

Patch by Alicia Boya GarcĂ­a <aboya@igalia.com> on 2017-12-14
Reviewed by Jer Noble.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

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

20 months agoREGRESSION (r225789): API tests WKProcessPool.InitialWarmedProcessUsed and WebKit...
beidson@apple.com [Thu, 14 Dec 2017 22:57:14 +0000 (22:57 +0000)]
REGRESSION (r225789): API tests WKProcessPool.InitialWarmedProcessUsed and WebKit.WebsiteDataStoreCustomPaths are failing.
https://bugs.webkit.org/show_bug.cgi?id=180722

Reviewed by Chris Dumez.

Source/WebKit:

- Add a test-only accessor to get the number of WebProcesses hosting WebPages
- Have WebsiteDataStore keep track of all instances so they can be looked up by SessionID
- When the StorageProcess needs to establish a SW context connection on behalf of a specific SessionID,
  the UI process will now prefer using the WebsiteDataStore associated with that SessionID. This allows
  us to continue deferring creation of the default data store if it's not needed.

* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::connectionToContextProcessWasClosed):
(WebKit::StorageProcess::createServerToContextConnection):
* StorageProcess/StorageProcess.h:

* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::establishSWServerConnection):

* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _webPageContentProcessCount]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

* UIProcess/Storage/StorageProcessProxy.cpp:
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess):
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession):
* UIProcess/Storage/StorageProcessProxy.h:
* UIProcess/Storage/StorageProcessProxy.messages.in:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
* UIProcess/WebProcessPool.h:

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::existingDataStoreForSessionID):
* UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm:
(TEST):

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

20 months agoStorage Access API: Implement frame-specific access in the document.cookie layer
wilander@apple.com [Thu, 14 Dec 2017 22:39:48 +0000 (22:39 +0000)]
Storage Access API: Implement frame-specific access in the document.cookie layer
https://bugs.webkit.org/show_bug.cgi?id=180682
<rdar://problem/35982257>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. Changed expected result from existing test.

CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(),
CookiesStrategy::cookieRequestHeaderFieldValue(), and
CookiesStrategy::getRawCookies() now take optional parameters for
frameID and pageID to allow frame-specific scoping of cookies.

This change makes the return values of FrameLoaderClient::frameID()
and FrameLoaderClient::pageID() std::optional<uint64_t> so that
WebCore can call those getters and get the right return values in
WebKit and std:nullopt in WebKitLegacy.

* dom/Document.cpp:
(WebCore::Document::requestStorageAccess):
* loader/CookieJar.cpp:
(WebCore::cookies):
(WebCore::setCookies):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoaderClient.h:
* platform/CookiesStrategy.h:
* platform/network/CacheValidation.cpp:
(WebCore::headerValueForVary):
* platform/network/PlatformCookieJar.h:
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::CookieJarCurlFileSystem::setCookiesFromDOM):
(WebCore::CookieJarCurlFileSystem::cookiesForDOM):
(WebCore::CookieJarCurlFileSystem::cookieRequestHeaderFieldValue):
(WebCore::CookieJarCurlFileSystem::getRawCookies):
(WebCore::cookiesForDOM):
(WebCore::setCookiesFromDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
* platform/network/curl/CookieJarCurl.h:
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesInPartitionForURL):
(WebCore::cookiesForURL):
(WebCore::cookiesForSession):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::setCookiesFromDOM):
(WebCore::getRawCookies):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):

Source/WebKit:

CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(),
CookiesStrategy::cookieRequestHeaderFieldValue(), and
CookiesStrategy::getRawCookies() now take optional parameters for
frameID and pageID to allow frame-specific scoping of cookies.

This change makes the return values of FrameLoaderClient::frameID()
and FrameLoaderClient::pageID() std::optional<uint64_t> so that
WebCore can call those getters and get the right return values in
WebKit and std:nullopt in WebKitLegacy.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Shared/mac/CookieStorageShim.mm:
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
    Now handles the fact that FrameLoaderClient::frameID() and
    FrameLoaderClient::pageID() return an optional.
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::pageID const):
(WebKit::WebFrameLoaderClient::frameID const):
    Now return an optional.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(),
CookiesStrategy::cookieRequestHeaderFieldValue(), and
CookiesStrategy::getRawCookies() now take optional parameters for
frameID and pageID to allow frame-specific scoping of cookies.

This change makes the return values of FrameLoaderClient::frameID()
and FrameLoaderClient::pageID() std::optional<uint64_t> so that
WebCore can call those getters and get the right return values in
WebKit and std:nullopt in WebKitLegacy.

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::pageID const):
(WebFrameLoaderClient::frameID const):
* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

Source/WebKitLegacy/win:

CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(),
CookiesStrategy::cookieRequestHeaderFieldValue(), and
CookiesStrategy::getRawCookies() now take optional parameters for
frameID and pageID to allow frame-specific scoping of cookies.

This change makes the return values of FrameLoaderClient::frameID()
and FrameLoaderClient::pageID() std::optional<uint64_t> so that
WebCore can call those getters and get the right return values in
WebKit and std:nullopt in WebKitLegacy.

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::pageID const):
(WebFrameLoaderClient::frameID const):
    Now return an optional.
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):
* WebCoreSupport/WebPlatformStrategies.h:

LayoutTests:

CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(),
CookiesStrategy::cookieRequestHeaderFieldValue(), and
CookiesStrategy::getRawCookies() now take optional parameters for
frameID and pageID to allow frame-specific scoping of cookies.

This change makes the return values of FrameLoaderClient::frameID()
and FrameLoaderClient::pageID() std::optional<uint64_t> so that
WebCore can call those getters and get the right return values in
WebKit and std:nullopt in WebKitLegacy.

* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
    Now expects the correct behavior for document.cookie.

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

20 months agoFix assertion in JSObject's structure setting methods
keith_miller@apple.com [Thu, 14 Dec 2017 22:28:09 +0000 (22:28 +0000)]
Fix assertion in JSObject's structure setting methods
https://bugs.webkit.org/show_bug.cgi?id=180840

Reviewed by Mark Lam.

I forgot that when Typed Arrays have non-indexed properties
added to them, they call the generic code. The generic code
in turn calls the regular structure setting methods. Thus,
these assertions were invalid and we should just avoid setting
the indexing mask if we have a Typed Array.

* runtime/JSObject.h:
(JSC::JSObject::setButterfly):
(JSC::JSObject::nukeStructureAndSetButterfly):

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

20 months agoVersioning.
jmarcell@apple.com [Thu, 14 Dec 2017 22:22:56 +0000 (22:22 +0000)]
Versioning.

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

20 months agoFix Mac CMake build
achristensen@apple.com [Thu, 14 Dec 2017 22:22:25 +0000 (22:22 +0000)]
Fix Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=180835

Reviewed by Andy Estes.

Source/WebCore:

* PlatformMac.cmake:
* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:

Source/WebKit:

* PlatformMac.cmake:
* Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::ephemeralParametersWithSessionID):
* Shared/WebsiteDataStoreParameters.h:
* UIProcess/API/APIAttachment.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSessionID):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
* MiniBrowser/mac/WK1BrowserWindowController.m:

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

20 months agoREGRESSION (r225695): Repro crash on yahoo login page
msaboff@apple.com [Thu, 14 Dec 2017 22:16:38 +0000 (22:16 +0000)]
REGRESSION (r225695): Repro crash on yahoo login page
https://bugs.webkit.org/show_bug.cgi?id=180761

Reviewed by JF Bastien.

JSTests:

New regression test.

* stress/regress-180761.js: Added.

Source/JavaScriptCore:

Relanding r225695 with a fix.

The fix is that we need to save the return address for a parentheses in
the ParenContext because it is actually used by any immediately contained
alternatives.

Also did a little refactoring, changing occurances of PatternContext to
ParenContext since that is the name of the structure.

* runtime/RegExp.cpp:
(JSC::byteCodeCompilePattern):
(JSC::RegExp::byteCodeCompileIfNecessary):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):
* runtime/RegExp.h:
* runtime/RegExpInlines.h:
(JSC::RegExp::matchInline):
* testRegExp.cpp:
(parseRegExpLine):
(runFromFiles):
* yarr/Yarr.h:
* yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::dumpDisjunction):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::ParenContextSizes::ParenContextSizes):
(JSC::Yarr::YarrGenerator::ParenContextSizes::numSubpatterns):
(JSC::Yarr::YarrGenerator::ParenContextSizes::frameSlots):
(JSC::Yarr::YarrGenerator::ParenContext::sizeFor):
(JSC::Yarr::YarrGenerator::ParenContext::nextOffset):
(JSC::Yarr::YarrGenerator::ParenContext::beginOffset):
(JSC::Yarr::YarrGenerator::ParenContext::matchAmountOffset):
(JSC::Yarr::YarrGenerator::ParenContext::returnAddressOffset):
(JSC::Yarr::YarrGenerator::ParenContext::subpatternOffset):
(JSC::Yarr::YarrGenerator::ParenContext::savedFrameOffset):
(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::allocateParenContext):
(JSC::Yarr::YarrGenerator::freeParenContext):
(JSC::Yarr::YarrGenerator::saveParenContext):
(JSC::Yarr::YarrGenerator::restoreParenContext):
(JSC::Yarr::YarrGenerator::tryReadUnicodeCharImpl):
(JSC::Yarr::YarrGenerator::storeToFrame):
(JSC::Yarr::YarrGenerator::generateJITFailReturn):
(JSC::Yarr::YarrGenerator::clearMatches):
(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
(JSC::Yarr::YarrGenerator::YarrGenerator):
(JSC::Yarr::YarrGenerator::compile):
* yarr/YarrJIT.h:
(JSC::Yarr::YarrCodeBlock::execute):
* yarr/YarrPattern.cpp:
(JSC::Yarr::indentForNestingLevel):
(JSC::Yarr::dumpUChar32):
(JSC::Yarr::dumpCharacterClass):
(JSC::Yarr::PatternTerm::dump):
(JSC::Yarr::YarrPattern::dumpPattern):
* yarr/YarrPattern.h:
(JSC::Yarr::PatternTerm::containsAnyCaptures):
(JSC::Yarr::BackTrackInfoParenthesesOnce::returnAddressIndex):
(JSC::Yarr::BackTrackInfoParentheses::beginIndex):
(JSC::Yarr::BackTrackInfoParentheses::returnAddressIndex):
(JSC::Yarr::BackTrackInfoParentheses::matchAmountIndex):
(JSC::Yarr::BackTrackInfoParentheses::parenContextHeadIndex):
(JSC::Yarr::BackTrackInfoAlternative::offsetIndex): Deleted.

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

20 months ago[Web Animations] Use is<> when possible
graouts@webkit.org [Thu, 14 Dec 2017 22:15:25 +0000 (22:15 +0000)]
[Web Animations] Use is<> when possible
https://bugs.webkit.org/show_bug.cgi?id=180832

Reviewed by Dean Jackson.

Adopt is<> when possible.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setEffect):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::startOrStopAccelerated):

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

20 months ago[Web Animations] Bring timeline and currentTime setters closer to compliance
graouts@webkit.org [Thu, 14 Dec 2017 22:13:45 +0000 (22:13 +0000)]
[Web Animations] Bring timeline and currentTime setters closer to compliance
https://bugs.webkit.org/show_bug.cgi?id=180834

Reviewed by Dean Jackson.

Source/WebCore:

Now that we've added support for the concept of a hold time, pending tasks
and updating the finished state, adopt those in places we had already implemented
but weren't fully compliant.

Web Platform Tests cover these behaviors, but we're currently failing those tests
due to lacking an implementation for Element.animate().

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setTimeline): Add some spec comments to clarify the code behavior
and implement step 4 of the "setting the timeline" procedure where we reset the hold time
to an unresolved value if the start time is resolved, as well as step 5 where we update the
finished state. Finally, we also ensure we update the pending tasks as the ready state is
dependent on a timeline being set.
(WebCore::WebAnimation::bindingsStartTime const): Invert the way we test for an unresolved
value to match prior review comments by Dean Jackson.
(WebCore::WebAnimation::setBindingsStartTime): Use a boolean check rather than checking
equality with std::nullopt.
(WebCore::WebAnimation::setBindingsCurrentTime): Do not raise an exception when setting
an unresolved time.

LayoutTests:

Remove a test clause which tested a behavior that is not part of the spec.

* http/wpt/wk-web-animations/timing-model/animation-current-time.html:

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

20 months ago[Web Animations] Implement the cancel() method on Animation
graouts@webkit.org [Thu, 14 Dec 2017 22:12:37 +0000 (22:12 +0000)]
[Web Animations] Implement the cancel() method on Animation
https://bugs.webkit.org/show_bug.cgi?id=180830
<rdar://problem/36055816>

Reviewed by Dean Jackson.

Source/WebCore:

We implement the cancel() method on the Animation interface with full spec text defining
the normative behavior of those methods and code matching those steps. Implementing the
cancel() method required implementing the notion of "resetting pending tasks",
which the Web Animations spec defines as well.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setEffect):
(WebCore::WebAnimation::cancel):
(WebCore::WebAnimation::resetPendingTasks):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:

LayoutTests:

Rebase some WPT expectations with progressions due to exposing the cancel() method.

* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt:

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

20 months agoUse move semantics for SandboxExtension::Handle
achristensen@apple.com [Thu, 14 Dec 2017 22:08:53 +0000 (22:08 +0000)]
Use move semantics for SandboxExtension::Handle
https://bugs.webkit.org/show_bug.cgi?id=180792

Reviewed by Andy Estes.

Passing them around as const SandboxExtension::Handle& is wrong because ownership is transferred and they are consumed.
It only works now because their contents are mutable, which isn't a good use of mutable.

* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::decideDestinationWithSuggestedFilename):
(WebKit::Download::didDecideDownloadDestination):
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
(WebKit::DownloadManager::resumeDownload):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::resume):
* NetworkProcess/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::resume):
* NetworkProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::resume):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::setPendingDownloadLocation):
* NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::setPendingDownloadLocation):
* NetworkProcess/NetworkDataTaskBlob.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::resumeDownload):
(WebKit::NetworkProcess::continueDecidePendingDownloadDestination):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::decode):
* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::setPendingDownloadLocation):
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::create):
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::start):
(WebKit::WebMemorySampler::initializeSandboxedLogFile):
* Shared/WebMemorySampler.h:
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::create):
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::grantSandboxExtensionsForBlobs):
* StorageProcess/StorageProcess.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::performDragOperation):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dragEntered):
(WebKit::WebPageProxy::dragUpdated):
(WebKit::WebPageProxy::dragExited):
(WebKit::WebPageProxy::performDragOperation):
(WebKit::WebPageProxy::performDragControllerAction):
* UIProcess/WebPageProxy.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::create):
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:
(WebKit::MediaDeviceSandboxExtensions::operator[]):
(WebKit::MediaDeviceSandboxExtensions::operator[] const): Deleted.
* WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getPathnamesForType):
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::goToItem):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::reload):
(WebKit::WebPage::performDragControllerAction):
(WebKit::WebPage::grantUserMediaDeviceSandboxExtensions):
(WebKit::WebPage::SandboxExtensionTracker::beginLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::startMemorySampler):
* WebProcess/WebProcess.h:

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

20 months agoMake WebsitePolicies a proper class with getters and setters
achristensen@apple.com [Thu, 14 Dec 2017 22:07:47 +0000 (22:07 +0000)]
Make WebsitePolicies a proper class with getters and setters
https://bugs.webkit.org/show_bug.cgi?id=180788

Reviewed by Andy Estes.

Also introduce WebsitePolicies::applyToDocumentLoader to reduce duplicate code.
This has a side-effect of now applying custom http header fields and content blocking enabled status
when updating WebsitePolicies.  This will result in these being applied when a user updates
the per-site settings, and they weren't before.

* CMakeLists.txt:
* Shared/WebsitePolicies.cpp: Added.
(WebKit::WebsitePolicies::WebsitePolicies):
(WebKit::WebsitePolicies::encode const):
(WebKit::WebsitePolicies::decode):
(WebKit::WebsitePolicies::applyToDocumentLoader):
* Shared/WebsitePolicies.h:
(WebKit::WebsitePolicies::contentBlockersEnabled const):
(WebKit::WebsitePolicies::setContentBlockersEnabled):
(WebKit::WebsitePolicies::allowedAutoplayQuirks const):
(WebKit::WebsitePolicies::setAllowedAutoplayQuirks):
(WebKit::WebsitePolicies::autoplayPolicy const):
(WebKit::WebsitePolicies::setAutoplayPolicy):
(WebKit::WebsitePolicies::customHeaderFields):
(WebKit::WebsitePolicies::takeCustomHeaderFields):
(WebKit::WebsitePolicies::setCustomHeaderFields):
(WebKit::WebsitePolicies::encode const): Deleted.
(WebKit::WebsitePolicies::decode): Deleted.
* UIProcess/API/APIWebsitePolicies.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::applyToDocumentLoader):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateWebsitePolicies):
* WebProcess/WebPage/WebPage.h:

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

20 months agoEnable Service Workers on iOS
cdumez@apple.com [Thu, 14 Dec 2017 21:57:16 +0000 (21:57 +0000)]
Enable Service Workers on iOS
https://bugs.webkit.org/show_bug.cgi?id=180836

Reviewed by Alex Christensen.

* Shared/WebPreferencesDefaultValues.h:
* UIProcess/WebProcessPool.cpp:
Enable Service Workers on iOS.

(WebKit::WebProcessPool::ensureNetworkProcess):
Fall back to defaultCacheStorageDirectory() instead of the empty string
for the cache storage directory, when we do not have a store.

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

20 months ago"Click to exit fullscreen" text not legible on High Sierra
jer.noble@apple.com [Thu, 14 Dec 2017 20:50:50 +0000 (20:50 +0000)]
"Click to exit fullscreen" text not legible on High Sierra
https://bugs.webkit.org/show_bug.cgi?id=180825
<rdar://problem/32839983>

Reviewed by Eric Carlson.

Explicitly set the NSVisualAffectView's .appearance property.

* platform/mac/WebCoreFullScreenPlaceholderView.mm:
(-[WebCoreFullScreenPlaceholderView initWithFrame:]):

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

20 months agoRe-sync service-workers/service-worker/interfaces-sw.https.html from upstream
cdumez@apple.com [Thu, 14 Dec 2017 20:16:25 +0000 (20:16 +0000)]
Re-sync service-workers/service-worker/interfaces-sw.https.html from upstream
https://bugs.webkit.org/show_bug.cgi?id=180814

Reviewed by Youenn Fablet.

Re-sync service-workers/service-worker/interfaces-sw.https.html WPT from upstream after
https://github.com/w3c/web-platform-tests/pull/8669.

* web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt:
* web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js:

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

20 months ago[Web Animations] Implement the finish() method on Animation
graouts@webkit.org [Thu, 14 Dec 2017 20:08:21 +0000 (20:08 +0000)]
[Web Animations] Implement the finish() method on Animation
https://bugs.webkit.org/show_bug.cgi?id=180822
<rdar://problem/36053282>

Reviewed by Dean Jackson.

Source/WebCore:

We implement the finish() method on the Animation interface with full spec text defining
the normative behavior of those methods and code matching those steps. Implementing the
finish() method required implementing the notion of "silently setting the current time",
which the Web Animations spec defines as well.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::silentlySetCurrentTime):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::finish):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:

LayoutTests:

Rebase some WPT expectations with progressions due to exposing the finish() method.
We're also removing a WebKit-only test that is no longer relevant and started failing
with compliant behavior.

* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt:
* http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:
* http/wpt/wk-web-animations/timing-model/animation-playback-rate-expected.txt: Removed.
* http/wpt/wk-web-animations/timing-model/animation-playback-rate.html: Removed.

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

20 months agoService worker script fetching currently always uses the network cache
cdumez@apple.com [Thu, 14 Dec 2017 19:55:01 +0000 (19:55 +0000)]
Service worker script fetching currently always uses the network cache
https://bugs.webkit.org/show_bug.cgi?id=180816

Reviewed by Alex Christensen.

Source/WebCore:

Service worker script fetching currently always uses the network cache. This is incorrect as per:
- https://w3c.github.io/ServiceWorker/#update-algorithm (step 7.2)

Tests: http/tests/workers/service/registration-updateViaCache-all.html
       http/tests/workers/service/registration-updateViaCache-none.html

* workers/Worker.cpp:
(WebCore::Worker::create):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadAsynchronously):
* workers/WorkerScriptLoader.h:
* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::startScriptFetchForServer):
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
* workers/service/ServiceWorkerContainer.h:
* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::startScriptFetch):
(WebCore::ServiceWorkerJob::fetchScriptWithContext):
* workers/service/ServiceWorkerJob.h:
* workers/service/ServiceWorkerJobClient.h:
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::startScriptFetch):
* workers/service/server/SWServer.h:
* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::runUpdateJob):
* workers/service/server/SWServerRegistration.h:
(WebCore::SWServerRegistration::lastUpdateTime const):

Source/WebKit:

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startScriptFetchInClient):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:

LayoutTests:

Add layout test coverage.

* http/tests/workers/service/registration-updateViaCache-all-expected.txt: Added.
* http/tests/workers/service/registration-updateViaCache-all.html: Added.
* http/tests/workers/service/registration-updateViaCache-none-expected.txt: Added.
* http/tests/workers/service/registration-updateViaCache-none.html: Added.
* http/tests/workers/service/resources/cacheable-script-worker.php: Added.

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

20 months agoRemove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace
simon.fraser@apple.com [Thu, 14 Dec 2017 19:33:09 +0000 (19:33 +0000)]
Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace
https://bugs.webkit.org/show_bug.cgi?id=180689

Reviewed by Darin Adler.

Address issues noted by Darin in r225797:

Existing and new code mistakenly allocated colorspaces on every call, because
they didn't initialize the static variable on the first call. Avoid this mistake
by using dispatch_once() in these functions.

Fix a case where the extendedSRGBColorSpaceRef() fallback was returning deviceRGB
instead of sRGB.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::sRGBColorSpaceRef):
(WebCore::linearRGBColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):
* platform/graphics/cocoa/GraphicsContextCocoa.mm:
(WebCore::linearRGBColorSpaceRef):

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

20 months agoStorageProcess::deleteWebsiteData() should ensure there is a SWServer for the given...
cdumez@apple.com [Thu, 14 Dec 2017 19:13:56 +0000 (19:13 +0000)]
StorageProcess::deleteWebsiteData() should ensure there is a SWServer for the given sessionID
https://bugs.webkit.org/show_bug.cgi?id=180784

Reviewed by Youenn Fablet.

StorageProcess::deleteWebsiteData() should ensure there is a SWServer for the given sessionID
instead of not clearing anything when no such SWServer exists.

This will be useful on iOS once <rdar://problem/36034667> is fully fixed.

* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::deleteWebsiteData):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):

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

20 months agoJSObjects should have a mask for loading indexed properties
keith_miller@apple.com [Thu, 14 Dec 2017 19:11:49 +0000 (19:11 +0000)]
JSObjects should have a mask for loading indexed properties
https://bugs.webkit.org/show_bug.cgi?id=180768

Reviewed by Mark Lam.

JSTests:

* stress/int16-put-by-val-in-and-out-of-bounds.js:
(test):

Source/JavaScriptCore:

This patch adds a new member to JSObject that holds an indexing
mask.  The indexing mask is bitwise anded with the index used to
load a property.  If for whatever reason an attacker is able to
clobber the vectorLength of our butterfly they still won't be able
to read substantially past the end of the buttefly. For
performance reasons we don't use the indexing masking for
TypedArrays. Since TypedArrays are already gigacaged the risk of
wild reads is still restricted.

This patch is a <1% regression on Speedometer and ~3% regression
on JetStream in my testing.

* assembler/MacroAssembler.h:
(JSC::MacroAssembler::urshiftPtr):
* bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
* dfg/DFGAbstractHeap.h:
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileNukeStructureAndSetButterfly):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
* ftl/FTLAbstractHeap.cpp:
(JSC::FTL::IndexedAbstractHeap::baseIndex):
* ftl/FTLAbstractHeap.h:
* ftl/FTLAbstractHeapRepository.h:
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::maskedIndex):
(JSC::FTL::DFG::LowerDFGToB3::computeButterflyIndexingMask):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):
* ftl/FTLOutput.h:
(JSC::FTL::Output::baseIndex):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitComputeButterflyIndexingMask):
(JSC::AssemblyHelpers::nukeStructureAndStoreButterfly):
(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):
(JSC::AssemblyHelpers::storeButterfly): Deleted.
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/ArrayStorage.h:
(JSC::ArrayStorage::availableVectorLength):
* runtime/Butterfly.h:
(JSC::ContiguousData::ContiguousData):
(JSC::ContiguousData::at const):
(JSC::ContiguousData::at):
(JSC::Butterfly::publicLength const):
(JSC::Butterfly::vectorLength const):
(JSC::Butterfly::computeIndexingMaskForVectorLength):
(JSC::Butterfly::computeIndexingMask):
(JSC::Butterfly::contiguousInt32):
(JSC::ContiguousData::operator[] const): Deleted.
(JSC::ContiguousData::operator[]): Deleted.
(JSC::Butterfly::publicLength): Deleted.
(JSC::Butterfly::vectorLength): Deleted.
* runtime/ButterflyInlines.h:
(JSC::ContiguousData<T>::at const):
(JSC::ContiguousData<T>::at):
* runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::createEmpty):
* runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):
* runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::JSArrayBufferView):
* runtime/JSArrayInlines.h:
(JSC::JSArray::pushInline):
* runtime/JSFixedArray.h:
(JSC::JSFixedArray::createFromArray):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):
* runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::putByIndex):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::createInitialForValueAndSet):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::countElements):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::JSObject::getEnumerableLength):
* runtime/JSObject.h:
(JSC::JSObject::canGetIndexQuickly):
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::setIndexQuickly):
(JSC::JSObject::initializeIndex):
(JSC::JSObject::initializeIndexWithoutBarrier):
(JSC::JSObject::butterflyIndexingMaskOffset):
(JSC::JSObject::butterflyIndexingMask const):
(JSC::JSObject::setButterflyWithIndexingMask):
(JSC::JSObject::setButterfly):
(JSC::JSObject::nukeStructureAndSetButterfly):
(JSC::JSObject::JSObject):
* runtime/RegExpMatchesArray.h:
(JSC::tryCreateUninitializedRegExpMatchesArray):
* runtime/Structure.cpp:
(JSC::Structure::flattenDictionaryStructure):

Source/WebCore:

* bindings/js/JSDOMConvertSequences.h:
(WebCore::Detail::NumericSequenceConverter::convertArray):
(WebCore::Detail::SequenceConverter::convertArray):

Source/WTF:

Add a clz that wraps the builtin clz intrinisics provided by
various compilers. The clz function by default assumes that
the input may be zero. On X86 this makes a difference because not
all CPUs have LZCNT and BSR has undefined behavior on zero. On ARM,
the zero check gets optimized away, regardless.

* wtf/StdLibExtras.h:
(std::clz):

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

20 months agologVMFailure should not simulate crash on iOS
sbarati@apple.com [Thu, 14 Dec 2017 19:10:54 +0000 (19:10 +0000)]
logVMFailure should not simulate crash on iOS
https://bugs.webkit.org/show_bug.cgi?id=180790

Reviewed by JF Bastien.

The Gigacage allocation on iOS is expected to fail in certain circumstances.
Let's not simulate a crash on failure because since this is expected behavior.

* bmalloc/VMAllocate.h:
(bmalloc::tryVMAllocate):

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

20 months agoWebsiteDataStore::defaultDataStoreConfiguration() fails to set default value for...
cdumez@apple.com [Thu, 14 Dec 2017 19:08:32 +0000 (19:08 +0000)]
WebsiteDataStore::defaultDataStoreConfiguration() fails to set default value for serviceWorkerRegistrationDirectory
https://bugs.webkit.org/show_bug.cgi?id=180794
<rdar://problem/36034667>

Reviewed by Youenn Fablet.

Set the default IndexedDB and ServiceWorker database paths in WebsiteDataStore::defaultDataStoreConfiguration().
Without this, the client is forced to set the expected path.

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::defaultDataStoreConfiguration):

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

20 months agoUpdated test expectations for imported/w3c/web-platform-tests/html/semantics/document...
jlewis3@apple.com [Thu, 14 Dec 2017 18:31:08 +0000 (18:31 +0000)]
Updated test expectations for imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html.
https://bugs.webkit.org/show_bug.cgi?id=177322

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

20 months ago[Web Animations] Implement the play() and pause() methods on Animation
graouts@webkit.org [Thu, 14 Dec 2017 17:39:40 +0000 (17:39 +0000)]
[Web Animations] Implement the play() and pause() methods on Animation
https://bugs.webkit.org/show_bug.cgi?id=178932
<rdar://problem/35271069>

Reviewed by Eric Carlson.

Source/WebCore:

We implement the play() and pause() methods of the Animation interface with full spec text defining
the normative behavior of those methods and code matching those steps. Playing and pausing animations
incur running a play or pause task when conditions are met, specifically here when the timeline is ready.
So we add the notion of pending tasks and provide a proper implementation of pending() which we had
introduced in an earlier patch with a constant false return value.

Note that the play() method exposes an auto-rewinding flag which we always set to true, but other specs,
namely CSS Animations, do not require the rewinding behavior, so we expose it for future use.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::play):
(WebCore::WebAnimation::setTimeToRunPendingPlayTask):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::pause):
(WebCore::WebAnimation::setTimeToRunPendingPauseTask):
(WebCore::WebAnimation::runPendingPauseTask):
(WebCore::WebAnimation::updatePendingTasks):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:

LayoutTests:

Rebase some WPT expectations with progressions due to exposing the play() and pause() methods.

* TestExpectations: Temporarily mark a test as flaky as it logs an unexpected current time which
may change between runs.
* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt:
* http/wpt/web-animations/interfaces/Animation/startTime-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/setTarget-expected.txt:
* http/wpt/web-animations/timing-model/animations/current-time-expected.txt:
* http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:

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

20 months agoWeb Inspector: UncaughtExceptionReporter fails on early errors
commit-queue@webkit.org [Thu, 14 Dec 2017 17:09:13 +0000 (17:09 +0000)]
Web Inspector: UncaughtExceptionReporter fails on early errors
https://bugs.webkit.org/show_bug.cgi?id=180776

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

* UserInterface/Debug/UncaughtExceptionReporter.js:
(urlLastPathComponent):
(handleError):
(handleUncaughtException):
URLUtilities parseURL might not be available, so have a small
helper for getting a good name from a URL / filename.

(handleUncaughtExceptionRecord):
(dismissErrorSheet):
Wrap `WI` namespace accesses in a try/catch since `WI` might not be available.
Safely check global variables there were `Foo` as `window.Foo` to avoid errors
if they are not actually available.

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

20 months agoWeb Inspector: Cmd-Option-R in docked inspector causes the inspector to reload instea...
commit-queue@webkit.org [Thu, 14 Dec 2017 17:08:52 +0000 (17:08 +0000)]
Web Inspector: Cmd-Option-R in docked inspector causes the inspector to reload instead of the inspected page
https://bugs.webkit.org/show_bug.cgi?id=180775
<rdar://problem/35964592>

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

* WebKit.xcodeproj/project.pbxproj:
Remove old files add new files.

* PlatformMac.cmake:
* UIProcess/mac/WKWebInspectorWKWebView.h: Removed.
* UIProcess/mac/WKWebInspectorWKWebView.mm: Removed.
Remove unused WKWebInspectorWKWebView.

* UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
* UIProcess/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController dealloc]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController inspectorWKWebViewReload:]):
(-[WKInspectorViewController inspectorWKWebViewReloadFromOrigin:]):
Handle WKWebView IBActions sent to the inspector frontend WKWebView.

* UIProcess/mac/WKInspectorWKWebView.h:
* UIProcess/mac/WKInspectorWKWebView.mm:
(-[WKInspectorWKWebView tag]):
(-[WKInspectorWKWebView inspectorWKWebViewDelegate]):
(-[WKInspectorWKWebView setInspectorWKWebViewDelegate:]):
(-[WKInspectorWKWebView reload:]):
(-[WKInspectorWKWebView reloadFromOrigin:]):
Move WKInspectorWKWebView into its own file. Include a delegate
to handle reload IBActions that will want to override.

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

20 months ago[Readable Streams API] Remove properties tests covered by WPT
romain.bellessort@crf.canon.fr [Thu, 14 Dec 2017 17:04:21 +0000 (17:04 +0000)]
[Readable Streams API] Remove properties tests covered by WPT
https://bugs.webkit.org/show_bug.cgi?id=180809

Reviewed by Youenn Fablet.

Removed WebKit properties/methods tests for ReadableByteStreamController,
ReadableStreamBYOBReader and ReadableStreamBYOBRequest. Indeed, these
tests are also present in WPT streams/readable-byte-streams/properties.js.

* streams/readable-byte-stream-controller-expected.txt: Updated expectations.
* streams/readable-byte-stream-controller.js: Remove ReadableByteStreamController properties test.
* streams/readable-stream-byob-reader-expected.txt: Updated expectations.
* streams/readable-stream-byob-reader.js: Remove ReadableStreamBYOBReader properties test.
* streams/readable-stream-byob-request-expected.txt: Updated expectations.
* streams/readable-stream-byob-request.js: Remove ReadableStreamBYOBRequest properties test.

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

20 months agoREGRESSION (r225799/r225887): Remove duplicate entries for JSCPoisonedPtr.h in Xcode...
ddkilzer@apple.com [Thu, 14 Dec 2017 17:03:56 +0000 (17:03 +0000)]
REGRESSION (r225799/r225887): Remove duplicate entries for JSCPoisonedPtr.h in Xcode project

Fixes the following warning during builds:

    Warning: Multiple build commands for output file WebKitBuild/Release/JavaScriptCore.framework/Versions/A/PrivateHeaders/JSCPoisonedPtr.h

* JavaScriptCore.xcodeproj/project.pbxproj: Remove duplicate
entries for JSCPoisonedPtr.h.

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

20 months agowebkitpy: Better name-version mapping (Follow-up fix)
jbedard@apple.com [Thu, 14 Dec 2017 16:13:29 +0000 (16:13 +0000)]
webkitpy: Better name-version mapping (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=179621
<rdar://problem/35589585>

Unreviewed infrastructure fix.

r225856 caused some undesired logging on Linux and Windows.

* Scripts/webkitpy/port/mac.py:
(MacPort.__init__): Use most recent OS release if not on a Mac.
(MacPort.default_baseline_search_path): Make platform explicit.
(MacPort.configuration_specifier_macros): Ditto.

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

20 months agoREGRESSION (r225887): Build broke due to missing includes in InferredValue.h
ddkilzer@apple.com [Thu, 14 Dec 2017 15:36:31 +0000 (15:36 +0000)]
REGRESSION (r225887): Build broke due to missing includes in InferredValue.h
<https://bugs.webkit.org/show_bug.cgi?id=180738>

* runtime/InferredValue.h: Attempt to fix build by adding
missing #include statements.

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

20 months agoWebDriver: add a common way to run tests with pytest
carlosgc@webkit.org [Thu, 14 Dec 2017 14:37:42 +0000 (14:37 +0000)]
WebDriver: add a common way to run tests with pytest
https://bugs.webkit.org/show_bug.cgi?id=180800

Reviewed by Carlos Alberto Lopez Perez.

Tools:

We currently use pytestrunner from wpt for w3c tests and our own code for selenium tests. Using the same code
for both would simplify everything, but also allows us to have a custom results recorder to support other test
expectations like TIMEOUT. The code to run selenium tests with pytest has been moved to a new file
pytest_runner.py and made generic to be used also for w3c tests.

* Scripts/webkitpy/webdriver_tests/pytest_runner.py: Added.
(TemporaryDirectory):
(TemporaryDirectory.__enter__):
(TemporaryDirectory.__exit__):
(CollectRecorder):
(CollectRecorder.__init__):
(CollectRecorder.pytest_collectreport):
(HarnessResultRecorder):
(HarnessResultRecorder.__init__):
(HarnessResultRecorder.pytest_collectreport):
(SubtestResultRecorder):
(SubtestResultRecorder.__init__):
(SubtestResultRecorder.pytest_runtest_logreport):
(SubtestResultRecorder._was_timeout):
(SubtestResultRecorder.record_pass):
(SubtestResultRecorder.record_fail):
(SubtestResultRecorder.record_error):
(SubtestResultRecorder.record_skip):
(SubtestResultRecorder.record):
(collect):
(run):
* Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:
(do_delayed_imports): Import pytest_runner here to avoid cycles.
(WebDriverSeleniumExecutor.__init__): Save the driver parameter as args member and call do_delayed_imports() if
needed.
(WebDriverSeleniumExecutor.collect): Use pytest_runner.
(WebDriverSeleniumExecutor.run): Ditto.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:
(WebDriverTestRunner.print_results): Handle all possible tests results.
(WebDriverTestRunner.print_results.report): Helper to dump test results.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:
(WebDriverTestRunnerSelenium.run):
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:
(WebDriverTestRunnerW3C.__init__): Do not set PYTEST_TIMEOUT env var.
(WebDriverTestRunnerW3C._is_test): Fix check for support files.
(WebDriverTestRunnerW3C.run): Pass the timeout as parameter to WebDriverW3CExecutor.run().
* Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:
(do_delayed_imports): Import pytest_runner here to avoid cycles.
(WebDriverW3CExecutor.__init__): Call do_delayed_imports() if needed.
(WebDriverW3CExecutor.run): Use pytest_runner.

WebDriverTests:

Remove conftest.py since pytest_timeout plugin is now always loaded from the command line.

* imported/w3c/conftest.py: Removed.

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

20 months agoBuild should fail early is needed Perl modules are not installed
tpopela@redhat.com [Thu, 14 Dec 2017 14:08:20 +0000 (14:08 +0000)]
Build should fail early is needed Perl modules are not installed
https://bugs.webkit.org/show_bug.cgi?id=180137

Reviewed by Michael Catanzaro.

Don't finish the configure successfully if the required Perl modules
are not installed. Start to require modules that are needed for
WPE/GTK+ ports.

* Source/cmake/FindPerlModules.cmake: Copied from
https://github.com/KDE/kdelibs4support/blob/master/cmake/FindPerlModules.cmake
and made it WebKit style compliant.
* Source/cmake/WebKitCommon.cmake:

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

20 months ago[GTK] Gardening bug after r225898
magomez@igalia.com [Thu, 14 Dec 2017 13:28:23 +0000 (13:28 +0000)]
[GTK] Gardening bug after r225898
https://bugs.webkit.org/show_bug.cgi?id=180807

Unreviewed GTK+ test gardening after r225898. Updated test expectations and rebaselined
some tests.

* platform/gtk/TestExpectations:
* platform/gtk/mathml/opentype/horizontal-expected.png:
* platform/gtk/mathml/opentype/horizontal-expected.txt:
* platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
* platform/gtk/mathml/presentation/bug159513-expected.png:
* platform/gtk/mathml/presentation/bug159513-expected.txt:

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

20 months ago[EME] Add layout test for InitData and InitDataType in CENC encrypted event
commit-queue@webkit.org [Thu, 14 Dec 2017 11:43:10 +0000 (11:43 +0000)]
[EME] Add layout test for InitData and InitDataType in CENC encrypted event
https://bugs.webkit.org/show_bug.cgi?id=180430

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2017-12-14
Reviewed by Xabier Rodriguez-Calvar.

This commit adds new layout tests in order to test the reception of the encrypted CENC
event with an expected initData and initDataType fields.

* media/content/encrypted/VideoClearKeyCenc.mp4: Added.
    This is a simple encrypted video file used for regular playback.
    It has been encrypted with BENTO4. https://www.bento4.com/

* media/content/encrypted/segments/VideoClearKeyCenc-seg-0.mp4: Added.
    This is a simple encrypted video fragment used in MSE playback.
    It has been fragmented and encrypted with BENTO4. https://www.bento4.com/

* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-expected.txt: Added.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse-expected.txt: Added.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse.html: Added.
    This is a test with MSE.

* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html: Added.
    This is a test with a regular playback.

* media/encrypted-media/medias-enc.js: Added.
    This JavaScrit file lists the encrypted media wich will be used in encrypted-media tests.
    It gives all necessary informations about the encrypted media: path of the file or
    the path of the segments in MSE case, mimeType, initDataType and the encryption keys.

* media/media-source/media-source-loader-simple.js: Added.
    This JavaScript file provides a simple MSE implementation, reads the segments of the media and appends them
    in the appropriate SourceBuffer.

* platform/gtk/TestExpectations:
* platform/mac-elcapitan/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:

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

20 months agoAdd a test freshness page.
dewei_zhu@apple.com [Thu, 14 Dec 2017 09:49:37 +0000 (09:49 +0000)]
Add a test freshness page.
https://bugs.webkit.org/show_bug.cgi?id=180126

Reviewed by Ryosuke Niwa.

Added a page to show freshness of a test.
The test freshness page reports on the same set of tests as the one shown in the summary page.
Use a logistic function to evaluate the freshness of the data points.
This function has the desired property which increase dramatically when it close to the center of the graph.
'acceptableLastDataPointDurationInHour' configs the center of the graph.

* public/include/manifest-generator.php:
* public/v3/components/freshness-indicator.js: Added.
(FreshnessIndicator): A cell of the test freshness table, color will transit from green to red.
(FreshnessIndicator.prototype.update): Update the the data point information and triggers
the cell to re-render if anything changes.
(FreshnessIndicator.prototype._renderIndicator): Re-render the indicator.
(FreshnessIndicator.prototype.render): Render the box color base on a logistic function.
(FreshnessIndicator.prototype._createIndicator):
(FreshnessIndicator.htmlTemplate):
(FreshnessIndicator.cssTemplate):
* public/v3/index.html:
* public/v3/main.js: Added test freshness page.
(main):
* public/v3/models/build-request.js: Refactored waitingTime function to make it reusable.
(BuildRequest.formatTimeInterval): Format time interval in million seconds to more user friendly text.
(BuildRequest.prototype.waitingTime):
* public/v3/pages/test-freshness-page.js: Added.
(TestFreshnessPage):
(TestFreshnessPage.prototype.name):
(TestFreshnessPage.prototype._loadConfig): Load config from summary page configurations.
(TestFreshnessPage.prototype.open):
(TestFreshnessPage.prototype._fetchTestResults):
(TestFreshnessPage.prototype.render):
(TestFreshnessPage.prototype._renderTable):
(TestFreshnessPage.prototype._isValidPlatformMetricCombination): Return whether a platform
and metric combination is valid.
(TestFreshnessPage.prototype._constructTableCell):
(TestFreshnessPage.cssTemplate):
(TestFreshnessPage.prototype.routeName):
* server-tests/api-manifest-tests.js: Added 'warningHourBaseline' so that we can config the
parameter of logistic funciton.
* unit-tests/build-request-tests.js: Added unit tests for formatTimeInterval.

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

20 months agoMake GraphicsLayer::dumpProperties dump m_offsetFromRenderer
commit-queue@webkit.org [Thu, 14 Dec 2017 09:39:59 +0000 (09:39 +0000)]
Make GraphicsLayer::dumpProperties dump m_offsetFromRenderer
https://bugs.webkit.org/show_bug.cgi?id=180473

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14
Reviewed by Antonio Gomes.

No new tests, this is just a new debug info.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties const): Dump the offset from renderer if nonzero.

LayoutTests:

Update test expectations to include the "offset from renderer" values. Existing tests insert
the output of layerTreeAsText into some divs which may cause the corresponding GraphicsLayers
to become slightly taller. We thus make the necessary adjustments.

Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14
Reviewed by Antonio Gomes.

* compositing/backing/no-backing-for-clip-expected.txt:
* compositing/backing/no-backing-for-clip-overlap-expected.txt:
* compositing/backing/transform-transition-from-outside-view-expected.txt:
* compositing/bounds-in-flipped-writing-mode-expected.txt:
* compositing/columns/composited-in-paginated-rl-expected.txt:
* compositing/columns/composited-lr-paginated-repaint-expected.txt:
* compositing/columns/composited-rl-paginated-repaint-expected.txt:
* compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt:
* compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt:
* compositing/contents-format/subpixel-antialiased-text-configs-expected.txt:
* compositing/contents-format/subpixel-antialiased-text-images-expected.txt:
* compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt:
* compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt:
* compositing/contents-opaque/overflow-hidden-child-layers-expected.txt:
* compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt:
* compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt:
* compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt:
* compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt:
* compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt:
* compositing/geometry/bounds-ignores-hidden-expected.txt:
* compositing/geometry/clip-expected.txt:
* compositing/geometry/clip-inside-expected.txt:
* compositing/geometry/fixed-position-flipped-writing-mode-expected.txt:
* compositing/geometry/flipped-writing-mode-expected.txt:
* compositing/geometry/foreground-layer-expected.txt:
* compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
* compositing/geometry/limit-layer-bounds-fixed-expected.txt:
* compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
* compositing/geometry/limit-layer-bounds-opacity-transition-expected.txt:
* compositing/geometry/limit-layer-bounds-positioned-expected.txt:
* compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt:
* compositing/geometry/limit-layer-bounds-transformed-expected.txt:
* compositing/iframes/composited-parent-iframe-expected.txt:
* compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
* compositing/iframes/connect-compositing-iframe-expected.txt:
* compositing/iframes/connect-compositing-iframe2-expected.txt:
* compositing/iframes/connect-compositing-iframe3-expected.txt:
* compositing/iframes/enter-compositing-iframe-expected.txt:
* compositing/iframes/iframe-resize-expected.txt:
* compositing/iframes/overlapped-iframe-expected.txt:
* compositing/iframes/page-cache-layer-tree-expected.txt:
* compositing/iframes/scrolling-iframe-expected.txt:
* compositing/images/clip-on-directly-composited-image-expected.txt:
* compositing/ios/overflow-scroll-touch-tiles-expected.txt:
* compositing/layer-creation/fixed-overlap-extent-expected.txt:
* compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt:
* compositing/layer-creation/fixed-position-under-transform-expected.txt:
* compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt:
* compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt:
* compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt:
* compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt:
* compositing/layer-creation/overflow-scroll-overlap-expected.txt:
* compositing/layer-creation/overlap-animation-clipping-expected.txt:
* compositing/layer-creation/overlap-animation-expected.txt:
* compositing/layer-creation/overlap-child-layer-expected.txt:
* compositing/layer-creation/overlap-transformed-layer-expected.txt:
* compositing/layer-creation/overlap-transforms-expected.txt:
* compositing/layer-creation/rotate3d-overlap-expected.txt:
* compositing/layer-creation/scale-rotation-animation-overlap-expected.txt:
* compositing/layer-creation/scale-rotation-transition-overlap-expected.txt:
* compositing/layer-creation/stacking-context-overlap-nested-expected.txt:
* compositing/layer-creation/translate-animation-overlap-expected.txt:
* compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
* compositing/layer-creation/translate-scale-transition-overlap-expected.txt:
* compositing/layer-creation/translate-transition-overlap-expected.txt:
* compositing/layer-creation/will-change-layer-creation-expected.txt:
* compositing/overflow/clip-descendents-expected.txt:
* compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
* compositing/repaint/fixed-background-scroll-expected.txt:
* compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt:
* compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
* compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
* compositing/repaint/repaint-on-layer-grouping-change-expected.txt:
* compositing/rtl/rtl-absolute-overflow-expected.txt:
* compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt:
* compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
* compositing/scrolling/touch-scroll-to-clip-expected.txt:
* compositing/tiling/tiled-mask-inwindow-expected.txt:
* compositing/tiling/tiled-reflection-inwindow-expected.txt:
* compositing/tiling/transform-origin-tiled-expected.txt:
* compositing/visible-rect/coverage-clipped-expected.txt:
* compositing/visible-rect/coverage-scrolling-expected.txt:
* fast/scrolling/ios/overflow-scroll-touch-expected.txt:
* fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
* platform/gtk/compositing/geometry/composited-in-columns-expected.txt:
* platform/gtk/compositing/iframes/invisible-nested-iframe-show-expected.txt:
* platform/gtk/compositing/layer-creation/overlap-animation-container-expected.txt:
* platform/gtk/compositing/layer-creation/overlap-animation-expected.txt:
* platform/gtk/compositing/layer-creation/will-change-layer-creation-expected.txt:
* platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt:
* platform/gtk/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
* platform/ios-wk2/compositing/backing/no-backing-for-clip-expected.txt:
* platform/ios-wk2/compositing/backing/no-backing-for-clip-overlap-expected.txt:
* platform/ios-wk2/compositing/columns/composited-in-paginated-rl-expected.txt:
* platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt:
* platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt:
* platform/ios-wk2/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt:
* platform/ios-wk2/compositing/geometry/composited-in-columns-expected.txt:
* platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt:
* platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
* platform/ios-wk2/compositing/iframes/composited-parent-iframe-expected.txt:
* platform/ios-wk2/compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
* platform/ios-wk2/compositing/iframes/connect-compositing-iframe-expected.txt:
* platform/ios-wk2/compositing/iframes/connect-compositing-iframe2-expected.txt:
* platform/ios-wk2/compositing/iframes/connect-compositing-iframe3-expected.txt:
* platform/ios-wk2/compositing/iframes/enter-compositing-iframe-expected.txt:
* platform/ios-wk2/compositing/iframes/iframe-resize-expected.txt:
* platform/ios-wk2/compositing/iframes/leave-compositing-iframe-expected.txt:
* platform/ios-wk2/compositing/iframes/overlapped-iframe-expected.txt:
* platform/ios-wk2/compositing/iframes/page-cache-layer-tree-expected.txt:
* platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
* platform/ios-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt:
* platform/ios-wk2/compositing/repaint/fixed-background-scroll-expected.txt:
* platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt:
* platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt:
* platform/ios-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt:
* platform/ios-wk2/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt:
* platform/ios-wk2/compositing/scrolling/touch-scroll-to-clip-expected.txt:
* platform/ios-wk2/compositing/tiling/backface-preserve-3d-tiled-expected.txt:
* platform/ios-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/ios-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/ios-wk2/compositing/tiling/tiled-mask-inwindow-expected.txt:
* platform/ios-wk2/compositing/tiling/tiled-reflection-inwindow-expected.txt:
* platform/ios-wk2/compositing/tiling/transform-origin-tiled-expected.txt:
* platform/ios-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt:
* platform/ios-wk2/compositing/visible-rect/2d-transformed-expected.txt:
* platform/ios-wk2/compositing/visible-rect/3d-transformed-expected.txt:
* platform/ios-wk2/compositing/visible-rect/clipped-visible-rect-expected.txt:
* platform/ios-wk2/compositing/visible-rect/coverage-clipped-expected.txt:
* platform/ios-wk2/compositing/visible-rect/coverage-scrolling-expected.txt:
* platform/ios-wk2/compositing/visible-rect/flipped-preserve-3d-expected.txt:
* platform/ios-wk2/compositing/visible-rect/iframe-and-layers-expected.txt:
* platform/ios-wk2/compositing/visible-rect/nested-transform-expected.txt:
* platform/ios/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt:
* platform/ios/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt:
* platform/ios/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt:
* platform/ios/compositing/geometry/fixed-position-flipped-writing-mode-expected.txt:
* platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
* platform/ios/compositing/iframes/invisible-nested-iframe-show-expected.txt:
* platform/ios/compositing/images/clip-on-directly-composited-image-expected.txt:
* platform/ios/compositing/layer-creation/overlap-animation-clipping-expected.txt:
* platform/ios/compositing/layer-creation/overlap-animation-container-expected.txt:
* platform/ios/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt:
* platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
* platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt:
* platform/ios/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt:
* platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
* platform/ios/compositing/visible-rect/3d-transform-style-expected.txt:
* platform/ios/compositing/visible-rect/animated-expected.txt:
* platform/ios/compositing/visible-rect/animated-from-none-expected.txt:
* platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
* platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
* platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
* platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt:
* platform/mac-elcapitan/compositing/contents-opaque/control-layer-expected.txt:
* platform/mac-elcapitan/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt:
* platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt:
* platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
* platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
* platform/mac-wk1/compositing/tiling/tiled-mask-inwindow-expected.txt:
* platform/mac-wk1/compositing/tiling/tiled-reflection-inwindow-expected.txt:
* platform/mac-wk1/compositing/tiling/transform-origin-tiled-expected.txt:
* platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt:
* platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt:
* platform/mac-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt:
* platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt:
* platform/mac/compositing/contents-opaque/control-layer-expected.txt:
* platform/mac/compositing/geometry/composited-in-columns-expected.txt:
* platform/mac/compositing/iframes/invisible-nested-iframe-show-expected.txt:
* platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt:
* platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
* platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt:
* platform/mac/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt:
* platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt:
* platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt:
* platform/mac/compositing/visible-rect/2d-transformed-expected.txt:
* platform/mac/compositing/visible-rect/3d-transform-style-expected.txt:
* platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
* platform/mac/compositing/visible-rect/animated-expected.txt:
* platform/mac/compositing/visible-rect/animated-from-none-expected.txt:
* platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt:
* platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt:
* platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt:
* platform/mac/compositing/visible-rect/nested-transform-expected.txt:
* tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
* tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt:
* tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:

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

20 months agoREGRESSION(r225769): Build errors with constexpr std::tie on older gcc
utatane.tea@gmail.com [Thu, 14 Dec 2017 08:17:56 +0000 (08:17 +0000)]
REGRESSION(r225769): Build errors with constexpr std::tie on older gcc
https://bugs.webkit.org/show_bug.cgi?id=180692

Reviewed by Carlos Garcia Campos.

Source/WebCore:

* platform/graphics/FontSelectionAlgorithm.h:
(WebCore::FontSelectionRange::operator== const):
(WebCore::FontSelectionRequest::tied const):
(WebCore::FontSelectionCapabilities::tied const):
(WebCore::FontSelectionSpecifiedCapabilities:: const):

Source/WTF:

Due to libstdc++'s bug[1], std::tie is not annotated with constexpr in libstdc++ 5.
This patch adds WTF::tie for a work around. Since we do not want to
include <tuple> in StdLibExtras.h, we define this function for all
the compilers.

[1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65978

* wtf/StdLibExtras.h:

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