WebKit-https.git
3 years agoAdd a DOM gadget for Spectre testing
msaboff@apple.com [Tue, 9 Jan 2018 01:07:29 +0000 (01:07 +0000)]
Add a DOM gadget for Spectre testing
https://bugs.webkit.org/show_bug.cgi?id=181351

Source/JavaScriptCore:

Reviewed by Michael Saboff.

Added a new JSC::Option named enableSpectreGadgets to enable any gadgets added to test
Spectre mitigations.

* runtime/Options.h:

Source/WebCore:

Reviewed by Saam Barati.

This change is used to test Spectre mitigations.

Added a side data array to the Comment DOM node to test for Spectre issues in
the DOM layer.  This additional functionality is disabled by default and must
be enabled through the JSC option "enableSpectreGadgets".

* dom/Comment.cpp:
(WebCore::Comment::Comment):
(WebCore::Comment::setReadLength):
(WebCore::Comment::charCodeAt):
(WebCore::Comment::clflushReadLength):
* dom/Comment.h:
* dom/Comment.idl:
* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::spectreGadgetsEnabled const):
* page/RuntimeEnabledFeatures.h:

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

3 years agoA canvas should not be tainted if it draws a data URL SVGImage with a <foreignObject>
commit-queue@webkit.org [Tue, 9 Jan 2018 00:35:35 +0000 (00:35 +0000)]
A canvas should not be tainted if it draws a data URL SVGImage with a <foreignObject>
https://bugs.webkit.org/show_bug.cgi?id=180301

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-01-08
Reviewed by Dean Jackson.

Source/WebCore:

Don't taint the canvas if it draws a data URL SVGImage with a <foreignObject>.
There should not be a cross-origin data leak in this case.

Tests: svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted.html
       svg/as-image/svg-canvas-data-url-svg-with-foreign-object-not-tainted.html
       svg/as-image/svg-canvas-data-url-svg-with-image-not-tainted.html

* html/ImageBitmap.cpp:
(WebCore::taintsOrigin):
* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::wouldTaintOrigin):

LayoutTests:

* svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted-expected.txt: Added.
* svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted.html: Added.
* svg/as-image/svg-canvas-data-url-svg-with-foreign-object-not-tainted-expected.txt: Added.
* svg/as-image/svg-canvas-data-url-svg-with-foreign-object-not-tainted.html: Added.
* svg/as-image/svg-canvas-data-url-svg-with-image-not-tainted-expected.txt: Added.
* svg/as-image/svg-canvas-data-url-svg-with-image-not-tainted.html: Added.

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

3 years agoSimplify platform checks in Graphics Context
don.olmstead@sony.com [Mon, 8 Jan 2018 23:27:52 +0000 (23:27 +0000)]
Simplify platform checks in Graphics Context
https://bugs.webkit.org/show_bug.cgi?id=181344

Reviewed by Alex Christensen.

No new tests. No change in behavior.

* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/GLContext.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/OpenGLESShims.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::checkVaryingsPacking const):

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

3 years agoMarked imported/w3c/web-platform-tests/service-workers/service-worker/register-closed...
jlewis3@apple.com [Mon, 8 Jan 2018 23:16:58 +0000 (23:16 +0000)]
Marked imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181087

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

3 years ago[RenderTreeBuilder] Move SVG addChild logic to RenderTreeBuilder
zalan@apple.com [Mon, 8 Jan 2018 23:14:11 +0000 (23:14 +0000)]
[RenderTreeBuilder] Move SVG addChild logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181405
<rdar://problem/36360476>

Reviewed by Antti Koivisto.

This is about moving the code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::addChild):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::addChild):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::addChild):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::addChild):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChildToSVGContainer):
(WebCore::RenderTreeBuilder::insertChildToSVGInline):
(WebCore::RenderTreeBuilder::insertChildToSVGRoot):
(WebCore::RenderTreeBuilder::insertChildToSVGText):
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::SVGBuilder):
* rendering/updating/RenderTreeBuilderSVG.cpp: Added.
(WebCore::RenderTreeBuilder::SVG::SVG):
(WebCore::RenderTreeBuilder::SVG::insertChild):
* rendering/updating/RenderTreeBuilderSVG.h: Added.

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

3 years agoRename CodeBlock::m_vm to CodeBlock::m_poisonedVM.
mark.lam@apple.com [Mon, 8 Jan 2018 22:59:10 +0000 (22:59 +0000)]
Rename CodeBlock::m_vm to CodeBlock::m_poisonedVM.
https://bugs.webkit.org/show_bug.cgi?id=181403
<rdar://problem/36359789>

Rubber-stamped by JF Bastien.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::predictedMachineCodeSize):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::vm const):
(JSC::CodeBlock::addConstant):
(JSC::CodeBlock::heap const):
(JSC::CodeBlock::replaceConstant):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

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

3 years agoStorage Access API: Remove access for all frames under a page when the page is closed
wilander@apple.com [Mon, 8 Jan 2018 22:41:07 +0000 (22:41 +0000)]
Storage Access API: Remove access for all frames under a page when the page is closed
https://bugs.webkit.org/show_bug.cgi?id=181398
<rdar://problem/36357879>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. Discussed with Alex Christensen and we concluded that
both a layout test and an API test would require a lot of work and
we have existing tests for clearing out storage access for frames.

* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::removeStorageAccessForAllFramesOnPage):

Source/WebKit:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):

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

3 years agoUnreviewed, rolling out r226385.
jlewis3@apple.com [Mon, 8 Jan 2018 22:35:59 +0000 (22:35 +0000)]
Unreviewed, rolling out r226385.

The test introduced with this was a flaky since being added.

Reverted changeset:

"AX: when invert colors is on, double-invert certain media
elements in UserAgentStyleSheet"
https://bugs.webkit.org/show_bug.cgi?id=168447
https://trac.webkit.org/changeset/226385

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

3 years agoSWClientConnection should not keep references to service worker jobs
commit-queue@webkit.org [Mon, 8 Jan 2018 22:33:23 +0000 (22:33 +0000)]
SWClientConnection should not keep references to service worker jobs
https://bugs.webkit.org/show_bug.cgi?id=181381

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Chris Dumez.

Source/WebCore:

Difficult to test determiniscally but corresponding crash log should no longer happen in debug builds.

Stopped passing ServiceWorkerJob references from ServiceWorkerContainer (potentially in service worker thread) to SWClientConnection (main thread).
Instead pass job identifiers and related data to the main thread.

Minor refactoring to use ServiceWorkerJobIdentifier instead of ServiceWorkerJobDataIdentifier which contains more data than needed.

* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::scheduleJob):
(WebCore::SWClientConnection::failedFetchingScript):
(WebCore::SWClientConnection::postTaskForJob):
(WebCore::SWClientConnection::jobRejectedInServer):
(WebCore::SWClientConnection::registrationJobResolvedInServer):
(WebCore::SWClientConnection::unregistrationJobResolvedInServer):
(WebCore::SWClientConnection::startScriptFetchForServer):
(WebCore::SWClientConnection::clearPendingJobs):
(WebCore::SWClientConnection::finishedFetchingScript): Deleted.
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
* workers/service/ServiceWorkerContainer.h:
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::rejectJob):
(WebCore::SWServer::resolveRegistrationJob):
(WebCore::SWServer::resolveUnregistrationJob):
(WebCore::SWServer::startScriptFetch):
* workers/service/server/SWServer.h:

Source/WebKit:

Updated IPC handling based on WebCore refactoring.

* Scripts/webkit/messages.py:
(forward_declarations_and_headers):
(headers_for_type):
* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::rejectJobInClient):
(WebKit::WebSWServerConnection::resolveRegistrationJobInClient):
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
(WebKit::WebSWServerConnection::startScriptFetchInClient):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:

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

3 years agoCopying, pasting, and then deleting an attachment element breaks attachment data...
wenson_hsieh@apple.com [Mon, 8 Jan 2018 22:19:15 +0000 (22:19 +0000)]
Copying, pasting, and then deleting an attachment element breaks attachment data requests
https://bugs.webkit.org/show_bug.cgi?id=181365
<rdar://problem/36340647>

Reviewed by Tim Horton.

Source/WebCore:

Currently, copying and pasting an attachment element within the same document and then deleting backwards to
remove the pasted attachment element causes the original attachment element to be inaccessible via SPI. This is
because there are now two different attachment elements with the same unique identifier, such that Document,
which keeps a map of all unique attachment identifiers to attachment elements, will lose track of the original
attachment element.

To fix this, we ensure that attachment elements should always have unique identifiers when they are inserted
into the document. We make several small adjustments to accomplish this:

1.  First, refactor HTMLAttachmentElement's unique identifier so that it no longer depends on the value of the
    "webkitattachmentid" attribute, and is instead just a member of HTMLAttachmentElement that is not exposed to
    DOM bindings. This means setting and querying an attachment element's uniqueIdentifier can be done without
    triggering any side effects, such as layout or mutation events.

2.  Next, make "webkitattachmentid" a temporary attribute similar to "webkitattachmentpath" and
    "webkitattachmentbloburl", so that it is added only when generating a markup fragment for editing, and
    removed upon deserialization.

3.  Lastly, shift the responsibility of assigning a unique identifier to an attachment away from places where we
    create attachment elements, and instead have Document enforce this when an attachment element is inserted.

Tests:  WKAttachmentTests.InsertAndRemoveDuplicateAttachment
        WKAttachmentTests.InsertDuplicateAttachmentAndUpdateData

* dom/Document.cpp:
(WebCore::Document::didInsertAttachmentElement):

Assign the unique identifier of an attachment element that has been inserted. If the identifier already tracks
an existing attachment element in the document or is missing, reassign the identifier to a new value.

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::WebContentReader::readFilePaths):

Remove calls to setUniqueIdentifier here, since Document will assign a unique identifier upon insertion.

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendCustomAttributes):
(WebCore::createFragmentFromMarkup):

Set the attachment's unique identifier to the value of the "webkitattachmentid" attribute. When moving existing
attachments around in the DOM without duplication, this ensures that the attachment will be removed and
reinserted in the document without triggering removal and insertion client delegate methods.

When pasting an attachment element that has the same identifier as an existing attachment, we let Document
realize that the attachment identifier already exists, and reassign it to a unique value.

* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::uniqueIdentifier const): Deleted.
(WebCore::HTMLAttachmentElement::setUniqueIdentifier): Deleted.
* html/HTMLAttachmentElement.h:

Tools:

Adds two new attachment API tests to verify that copying and pasting an existing attachment inserts an
attachment element that may be edited independently of the original attachment. See WebCore/ChangeLog for more
detail.

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

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

3 years agoSkip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html
ryanhaddad@apple.com [Mon, 8 Jan 2018 22:13:40 +0000 (22:13 +0000)]
Skip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html
https://bugs.webkit.org/show_bug.cgi?id=181223

Unreviewed test gardening.

* platform/wk2/TestExpectations:

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

3 years ago[RenderTreeBuilder] Move RenderBlockFlow addChild logic to RenderTreeBuilder
zalan@apple.com [Mon, 8 Jan 2018 22:04:02 +0000 (22:04 +0000)]
[RenderTreeBuilder] Move RenderBlockFlow addChild logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181348
<rdar://problem/36328117>

Reviewed by Antti Koivisto.

This is about moving the code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addChild):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChildToRenderBlockFlow):
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::blockFlowBuilder):
* rendering/updating/RenderTreeBuilderBlockFlow.cpp: Added.
(WebCore::RenderTreeBuilder::BlockFlow::BlockFlow):
(WebCore::RenderTreeBuilder::BlockFlow::insertChild):
* rendering/updating/RenderTreeBuilderBlockFlow.h: Added.

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

3 years ago[Cocoa] Web Inspector: Provide a way for clients to check if an NSWindow is a Web...
commit-queue@webkit.org [Mon, 8 Jan 2018 22:01:13 +0000 (22:01 +0000)]
[Cocoa] Web Inspector: Provide a way for clients to check if an NSWindow is a Web Inspector window
https://bugs.webkit.org/show_bug.cgi?id=181361
<rdar://problem/36332865>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-08
Reviewed by Darin Adler.

* WebKit.xcodeproj/project.pbxproj:
New files.

* Shared/API/Cocoa/_WKNSWindowExtras.h: Added.
* Shared/API/Cocoa/_WKNSWindowExtras.mm: Added.
(-[NSWindow _web_isWebInspectorWindow]):
Method to determing if a window is being used for Web Inspector content.

* UIProcess/mac/WKInspectorWindow.h: Added.
* UIProcess/mac/WKInspectorWindow.mm: Added.
Named subclass so we can use isKindOfClass.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createFrontendWindow):
Use the named subclass.

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

3 years agoDisable SharedArrayBuffer tests missed in r226386.
ryanhaddad@apple.com [Mon, 8 Jan 2018 21:54:24 +0000 (21:54 +0000)]
Disable SharedArrayBuffer tests missed in r226386.
https://bugs.webkit.org/show_bug.cgi?id=181266

Unreviewed test gardening.

* test262.yaml:

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

3 years agoMarked http/wpt/cache-storage/cache-put-stream.https.any.html as flaky on macOS WK2.
jlewis3@apple.com [Mon, 8 Jan 2018 21:53:57 +0000 (21:53 +0000)]
Marked http/wpt/cache-storage/cache-put-stream.https.any.html as flaky on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181107

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoBuild fix for WKPDFView
timothy_horton@apple.com [Mon, 8 Jan 2018 21:48:02 +0000 (21:48 +0000)]
Build fix for WKPDFView
https://bugs.webkit.org/show_bug.cgi?id=181399
<rdar://problem/36311915>

Reviewed by Simon Fraser.

* UIProcess/ios/WKPDFView.mm:
Disable deprecation warnings in this whole file.

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

3 years agoAdd CSP support to service workers
commit-queue@webkit.org [Mon, 8 Jan 2018 21:19:24 +0000 (21:19 +0000)]
Add CSP support to service workers
https://bugs.webkit.org/show_bug.cgi?id=181385

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt:
* web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Added recovery of CSP information from WorkerScriptLoader.
Added plumbing to pass the CSP information to Service Workers.
Added persistency support for the CSP information.

* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):
* workers/WorkerScriptLoader.h:
(WebCore::WorkerScriptLoader::contentSecurityPolicy const):
* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::finishedFetchingScript):
(WebCore::SWClientConnection::failedFetchingScript):
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
* workers/service/ServiceWorkerContainer.h:
* workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
* workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):
* workers/service/ServiceWorkerFetchResult.h:
(WebCore::ServiceWorkerFetchResult::encode const):
(WebCore::ServiceWorkerFetchResult::decode):
* workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::create):
* workers/service/ServiceWorkerGlobalScope.h:
* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::notifyFinished):
* workers/service/ServiceWorkerJobClient.h:
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
* workers/service/server/RegistrationDatabase.cpp:
(WebCore::v1RecordsTableSchema):
(WebCore::RegistrationDatabase::openSQLiteDatabase):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::installContextData):
* workers/service/server/SWServer.h:
* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
* workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
(WebCore::m_contentSecurityPolicy):
(WebCore::SWServerWorker::contextData const):
* workers/service/server/SWServerWorker.h:

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

3 years agoUse no-cache fetch mode when loading main documents with location.reload()
commit-queue@webkit.org [Mon, 8 Jan 2018 21:06:49 +0000 (21:06 +0000)]
Use no-cache fetch mode when loading main documents with location.reload()
https://bugs.webkit.org/show_bug.cgi?id=181285

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Start to translate cache policy used for navigation as FetchOptions::Cache.
This allows ensuring service workers receive the right cache mode when intercepting navigation loads.
To not change current navigation behavior, ReturnCacheDataElseLoad and ReturnCacheDataDontLoad still trigger default fetch cache mode.

For Reload and ReloadExpiredOnly frame load types, using no-cache mode is more efficient than reload mode,
as a conditional request will be sent if possible. This applies to location.reload which is consistent with other browsers.
Keep reload mode for ReloadFromOrigin.

* loader/DocumentLoader.cpp:
(WebCore::toFetchOptionsCache):
(WebCore::DocumentLoader::loadMainResource):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::defaultRequestCachingPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
* loader/NavigationScheduler.cpp:

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

3 years agoApply poisoning to more pointers in JSC.
mark.lam@apple.com [Mon, 8 Jan 2018 21:05:17 +0000 (21:05 +0000)]
Apply poisoning to more pointers in JSC.
https://bugs.webkit.org/show_bug.cgi?id=181096
<rdar://problem/36182970>

Reviewed by JF Bastien.

Source/JavaScriptCore:

* assembler/MacroAssembler.h:
(JSC::MacroAssembler::xorPtr):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::xor64):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::xor64):
- Add xorPtr implementation.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::inferredName const):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::visitWeakly):
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::WeakReferenceHarvester::visitWeakReferences):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::finalizeBaselineJITInlineCaches):
(JSC::CodeBlock::UnconditionalFinalizer::finalizeUnconditionally):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::predictedMachineCodeSize):
(JSC::CodeBlock::findPC):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::UnconditionalFinalizer::UnconditionalFinalizer):
(JSC::CodeBlock::WeakReferenceHarvester::WeakReferenceHarvester):
(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):
(JSC::CodeBlock::callLinkInfosBegin):
(JSC::CodeBlock::callLinkInfosEnd):
(JSC::CodeBlock::instructions):
(JSC::CodeBlock::instructions const):
(JSC::CodeBlock::vm const):
* dfg/DFGOSRExitCompilerCommon.h:
(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):
* jit/JIT.h:
* llint/LLIntOfflineAsmConfig.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter64.asm:
* parser/UnlinkedSourceCode.h:
* runtime/JSCPoison.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/JSGlobalObject.h:
* runtime/JSScriptFetchParameters.h:
* runtime/JSScriptFetcher.h:
* runtime/StructureTransitionTable.h:
* wasm/js/JSWebAssemblyCodeBlock.cpp:
(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):
(JSC::JSWebAssemblyCodeBlock::visitChildren):
(JSC::JSWebAssemblyCodeBlock::UnconditionalFinalizer::finalizeUnconditionally):
* wasm/js/JSWebAssemblyCodeBlock.h:

Source/WTF:

Added support for PoisonedBag and PoisonedRefCountedArray.

* wtf/Bag.h:
(WTF::Private::BagNode::BagNode):
(WTF::Bag::Bag):
(WTF::Bag::operator=):
(WTF::Bag::clear):
(WTF::Bag::add):
(WTF::Bag::begin):
(WTF::Bag::unwrappedHead):
(WTF::Bag::Node::Node): Deleted.
* wtf/BagToHashMap.h:
(WTF::toHashMap):
* wtf/Poisoned.h:
(WTF::constExprPoisonRandom):
(WTF::makeConstExprPoison):
* wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):
(WTF::RefCountedArray::clone const):
(WTF::RefCountedArray::operator=):
(WTF::RefCountedArray::~RefCountedArray):
(WTF::RefCountedArray::refCount const):
(WTF::RefCountedArray::size const):
(WTF::RefCountedArray::data):
(WTF::RefCountedArray::begin):
(WTF::RefCountedArray::end):
(WTF::RefCountedArray::data const):
(WTF::RefCountedArray::begin const):
(WTF::RefCountedArray::operator== const):
(WTF::RefCountedArray::Header::fromPayload):
* wtf/WTFAssertions.cpp:

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

3 years agoFix check-webkit-style issues with WebNSDataExtras.mm
ddkilzer@apple.com [Mon, 8 Jan 2018 21:02:06 +0000 (21:02 +0000)]
Fix check-webkit-style issues with WebNSDataExtras.mm
<https://webkit.org/b/181369>

Reviewed by Alex Christensen.

* Misc/WebNSDataExtras.mm:
(-[NSString _web_capitalizeRFC822HeaderFieldName]):
(-[NSData _webkit_guessedMIMETypeForXML]):
(-[NSData _webkit_guessedMIMEType]):
(-[NSData _web_isCaseInsensitiveEqualToCString:]):
(_findEOL):
(-[NSData _webkit_parseRFC822HeaderFields]):
(-[NSData _web_locationAfterFirstBlankLine]):
- Fix all the check-webkit-style warnings.

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

3 years agoCaches::writeCachesToDisk should assert that it is initialized
commit-queue@webkit.org [Mon, 8 Jan 2018 20:47:48 +0000 (20:47 +0000)]
Caches::writeCachesToDisk should assert that it is initialized
https://bugs.webkit.org/show_bug.cgi?id=181383

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Alex Christensen.

Add assertion to ensure caches is initialized

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::writeCachesToDisk):

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

3 years ago[WinCairo] Add default port TestExpectations for wincairo
commit-queue@webkit.org [Mon, 8 Jan 2018 20:45:45 +0000 (20:45 +0000)]
[WinCairo] Add default port TestExpectations for wincairo
https://bugs.webkit.org/show_bug.cgi?id=179221

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-01-08
Reviewed by Alex Christensen.

* platform/wincairo-win10/TestExpectations: Added.

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

3 years agoStop exposing fetch and extendable events to window
commit-queue@webkit.org [Mon, 8 Jan 2018 18:58:32 +0000 (18:58 +0000)]
Stop exposing fetch and extendable events to window
https://bugs.webkit.org/show_bug.cgi?id=181325

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated tests.

Marked FetchEvent and ExtendableEvent as visible in ServiceWorker environments only.
Moved related Internals testing routines to ServiceWorkerInternals.

* testing/Internals.cpp:
(WebCore::Internals::waitForFetchEventToFinish): Deleted.
(WebCore::Internals::createBeingDispatchedFetchEvent): Deleted.
* testing/Internals.h:
* testing/Internals.idl:
* testing/ServiceWorkerInternals.cpp:
(WebCore::ServiceWorkerInternals::waitForFetchEventToFinish):
(WebCore::ServiceWorkerInternals::createBeingDispatchedFetchEvent):
* testing/ServiceWorkerInternals.h:
* testing/ServiceWorkerInternals.idl:
* workers/service/ExtendableEvent.idl:
* workers/service/FetchEvent.idl:

LayoutTests:

* http/wpt/service-workers/extendableEvent.https-expected.txt:
* http/wpt/service-workers/extendableEvent.https.html:
* http/wpt/service-workers/fetchEvent.https-expected.txt:
* http/wpt/service-workers/fetchEvent.https.html:

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

3 years agoREGRESSION (r219145): Toggling layer borders on a static document no longer works...
antti@apple.com [Mon, 8 Jan 2018 18:47:26 +0000 (18:47 +0000)]
REGRESSION (r219145): Toggling layer borders on a static document no longer works immediately
https://bugs.webkit.org/show_bug.cgi?id=176260
<rdar://problem/34219966>

Reviewed by Simon Fraser.

Source/WebCore:

Optimization reveled bugs in debug indicator painting.

Test: compositing/debug-borders-dynamic.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateDebugIndicators):
(WebCore::GraphicsLayerCA::updateDebugBorder): Deleted.

- Rename to indicate this is not just about debug borders.
- Trigger display so repaint counters get painted. This helper is only called when the indicators change.

* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):

Ensure we do compositing update on debug border change even when there is no layout.

LayoutTests:

* compositing/debug-borders-dynamic-expected.html: Added.
* compositing/debug-borders-dynamic.html: Added.

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

3 years ago[RenderTreeBuilder] Move RenderInline addChild logic to RenderTreeBuilder
zalan@apple.com [Mon, 8 Jan 2018 18:38:31 +0000 (18:38 +0000)]
[RenderTreeBuilder] Move RenderInline addChild logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181336
<rdar://problem/36324693>

Reviewed by Antti Koivisto.

This is about moving the code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChild):
(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::childBecameNonInline):
(WebCore::nextContinuation): Deleted.
(WebCore::RenderInline::continuationBefore): Deleted.
(WebCore::newChildIsInline): Deleted.
(WebCore::RenderInline::cloneAsContinuation const): Deleted.
(WebCore::RenderInline::splitInlines): Deleted.
(WebCore::RenderInline::splitFlow): Deleted.
(WebCore::canUseAsParentForContinuation): Deleted.
(WebCore::RenderInline::addChildToContinuation): Deleted.
* rendering/RenderInline.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChildToRenderInline):
(WebCore::RenderTreeBuilder::insertChildToRenderInlineIgnoringContinuation):
(WebCore::RenderTreeBuilder::splitFlow):
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::inlineBuilder):
* rendering/updating/RenderTreeBuilderInline.cpp: Added.
(WebCore::canUseAsParentForContinuation):
(WebCore::nextContinuation):
(WebCore::continuationBefore):
(WebCore::cloneAsContinuation):
(WebCore::newChildIsInline):
(WebCore::inFlowPositionedInlineAncestor):
(WebCore::RenderTreeBuilder::Inline::Inline):
(WebCore::RenderTreeBuilder::Inline::insertChild):
(WebCore::RenderTreeBuilder::Inline::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation):
(WebCore::RenderTreeBuilder::Inline::splitFlow):
(WebCore::RenderTreeBuilder::Inline::splitInlines):
* rendering/updating/RenderTreeBuilderInline.h: Added.

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

3 years agoWebProcessPool::terminateServiceWorkerProcess should protect itself in debug builds
commit-queue@webkit.org [Mon, 8 Jan 2018 18:37:37 +0000 (18:37 +0000)]
WebProcessPool::terminateServiceWorkerProcess should protect itself in debug builds
https://bugs.webkit.org/show_bug.cgi?id=181384

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Chris Dumez.

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

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

3 years ago[EME] Add layout test for InitData and InitDataType in CENC encrypted event
commit-queue@webkit.org [Mon, 8 Jan 2018 18:33:24 +0000 (18:33 +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 2018-01-08
Reviewed by Xabier Rodriguez-Calvar.

* TestExpectations:
* 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/wpe/TestExpectations:

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

3 years agoWeb Inspector: Find next / previous within a resource content view does not have...
commit-queue@webkit.org [Mon, 8 Jan 2018 17:42:17 +0000 (17:42 +0000)]
Web Inspector: Find next / previous within a resource content view does not have bouncy highlight when editor scrolls
https://bugs.webkit.org/show_bug.cgi?id=181279
<rdar://problem/36291097>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-08
Reviewed by Brian Burg.

* UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype._revealSearchResult):
Reposition the bouncy highlight on scroll based on the CodeMirror
line/ch position of the search result.

(WI.TextEditor.prototype._removeBouncyHighlightElementIfNeeded):
Track the bouncy highlight scroll handler in a member variable so that
we always remember to remove it and don't leak scroll handlers.

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

3 years ago[RenderTreeBuilder] Move RenderBlock addChild logic to RenderTreeBuilder
zalan@apple.com [Mon, 8 Jan 2018 17:40:21 +0000 (17:40 +0000)]
[RenderTreeBuilder] Move RenderBlock addChild logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181319
<rdar://problem/36313464>

Reviewed by Antti Koivisto.

This is about moving the code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChild):
(WebCore::RenderBlock::addChildIgnoringContinuation):
(WebCore::RenderBlock::childBecameNonInline):
(WebCore::RenderBlock::continuationBefore): Deleted.
(WebCore::RenderBlock::addChildToContinuation): Deleted.
(WebCore::getInlineRun): Deleted.
(WebCore::RenderBlock::makeChildrenNonInline): Deleted.
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::markBoxForRelayoutAfterSplit): Deleted.
(WebCore::RenderBox::splitAnonymousBoxesAroundChild): Deleted.
* rendering/RenderBox.h:
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveChildren):
(WebCore::RenderRubyBase::moveBlockChildren):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::markBoxForRelayoutAfterSplit):
(WebCore::getInlineRun):
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChildToRenderBlock):
(WebCore::RenderTreeBuilder::insertChildToRenderBlockIgnoringContinuation):
(WebCore::RenderTreeBuilder::makeChildrenNonInline):
(WebCore::RenderTreeBuilder::splitAnonymousBoxesAroundChild):
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::blockBuilder):
* rendering/updating/RenderTreeBuilderBlock.cpp: Added.
(WebCore::continuationBefore):
(WebCore::RenderTreeBuilder::Block::Block):
(WebCore::RenderTreeBuilder::Block::insertChild):
(WebCore::RenderTreeBuilder::Block::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation):
* rendering/updating/RenderTreeBuilderBlock.h: Added.

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

3 years agoStandard controls sometimes say video is in pip when it isnt.
commit-queue@webkit.org [Mon, 8 Jan 2018 17:02:33 +0000 (17:02 +0000)]
Standard controls sometimes say video is in pip when it isnt.
https://bugs.webkit.org/show_bug.cgi?id=181095
rdar://problem/36182687

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-01-08
Reviewed by Eric Carlson.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::exitFullscreen):

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

3 years agoREGRESSION: [iOS] ASSERTION FAILED: !node.isConnected() in WebCore::notifyNodeInserte...
jer.noble@apple.com [Mon, 8 Jan 2018 16:46:15 +0000 (16:46 +0000)]
REGRESSION: [iOS] ASSERTION FAILED: !node.isConnected() in WebCore::notifyNodeInsertedIntoDocument
https://bugs.webkit.org/show_bug.cgi?id=181091

Reviewed by Darin Adler.

Move the work previously performed in insertedIntoAncestor() into didFinishInsertingNode().

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):

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

3 years agoUnreviewed build fix after r226211.
fred.wang@free.fr [Mon, 8 Jan 2018 16:14:02 +0000 (16:14 +0000)]
Unreviewed build fix after r226211.

Patch by Frederic Wang <fwang@igalia.com> on 2018-01-08

* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Use WK_IOS_TBA for iOS.

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

3 years agoUpdate imagebitmap tests.
Ms2ger@igalia.com [Mon, 8 Jan 2018 15:55:14 +0000 (15:55 +0000)]
Update imagebitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=181379

Unreviewed test gardening.

LayoutTests/imported/w3c:

* web-platform-tests/2dcontext/imagebitmap/common.js:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:

LayoutTests:

* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:

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

3 years ago[Cairo] Use isolated fill and stroke source containers
zandobersek@gmail.com [Mon, 8 Jan 2018 15:00:38 +0000 (15:00 +0000)]
[Cairo] Use isolated fill and stroke source containers
https://bugs.webkit.org/show_bug.cgi?id=181386

Reviewed by Carlos Garcia Campos.

Generate fill and stroke source objects upon invocation of various Cairo
operations, initializing necessary data from the GraphicsContextState
object.

Cairo::FillSource and Cairo::StrokeSource structs are introduced, both
being default-constructible as well as providing a constructor that
accepts a GraphicsContextState object from which the appropriate
resources are created.

The FillSource and StrokeSource objects are then passed to
PlatformContextCairo's prepareForFilling() and prepareForStroking()
methods. Here the helper prepareCairoContextSource() function is now
invoked with cairo_pattern_t objects as pattern or gradient sources, or
the source color if neither cairo_pattern_t object is specified.

The FillSource and StrokeSource constructors mimic the previous behavior
of prepareCairoContextSource(). In case the source is a Pattern object,
a cairo_pattern_t object is created from that. In case of FillSource,
we also retrieve pattern size, transform and repetition information. In
case the source os a Gradient object, we create a 'base' cairo_pattern_t
object for a completely opaque alpha channel. Additionally, if the alpha
value on the state is not 1, we create an alpha-adjusted cairo_pattern_t
that is potentially used for any filling or stroking operation that has
to preserve transparency. If neither Pattern or Gradient objects are set
on the GraphicsContextState, we default to the current fill or stroke
color.

Overall, there's no change in behavior, this is simply a refactoring
that enables us to construct Cairo objects for filling and stroking
sources at the time of Cairo operation dispatch, instead of pulling down
GraphicsContextState deeper into the Cairo-specific code.

No new tests -- no change in functionality.

* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawPathShadow):
(WebCore::Cairo::fillCurrentCairoPath):
(WebCore::Cairo::FillSource::FillSource):
(WebCore::Cairo::StrokeSource::StrokeSource):
(WebCore::Cairo::fillRect):
(WebCore::Cairo::fillRectWithRoundedHole):
(WebCore::Cairo::fillPath):
(WebCore::Cairo::strokeRect):
(WebCore::Cairo::strokePath):
(WebCore::Cairo::drawGlyphs):
* platform/graphics/cairo/CairoOperations.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::drawGlyphs):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::prepareCairoContextSource):
(WebCore::PlatformContextCairo::prepareForFilling):
(WebCore::PlatformContextCairo::prepareForStroking):
(WebCore::PlatformContextCairo::clipForPatternFilling):
* platform/graphics/cairo/PlatformContextCairo.h:

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

3 years agonavigator.onLine does not work inside service workers
commit-queue@webkit.org [Mon, 8 Jan 2018 14:43:50 +0000 (14:43 +0000)]
navigator.onLine does not work inside service workers
https://bugs.webkit.org/show_bug.cgi?id=181079
<rdar://problem/36178606>

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08
Reviewed by Darin Adler.

Source/WebCore:

Test: http/wpt/service-workers/online.https.html

Added support for onLine by reusing a similar implementation as regular workers.
Added ServiceWorkerInternals as an interface for an object exposed as self.internals in WTR.
This object has currently one method to trigger change in the online/offline status.
This allows writing a test for the onLine feature.

Note that self.internals is inserted asynchronously after the script was evaluated.
When writing a worker script using self.internals, one must make sure to use self.internals when initialized.
online-worker.js for instance makes use of self.internals in a postMessage callback.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WorkerScriptController.h:
* dom/ScriptExecutionContext.h:
* testing/ServiceWorkerInternals.cpp: Added.
(WebCore::ServiceWorkerInternals::ServiceWorkerInternals):
(WebCore::ServiceWorkerInternals::setOnline):
* testing/ServiceWorkerInternals.h: Added.
* testing/ServiceWorkerInternals.idl: Added.
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::setupNewlyCreateServiceWorker):
* testing/js/WebCoreTestSupport.h:
* workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::registerServiceWorkerThreadForInstall):
(WebCore::SWContextManager::startedServiceWorker):
* workers/service/context/SWContextManager.h:
(WebCore::SWContextManager::setServiceWorkerCreationCallback):
(WebCore::SWContextManager::workerByID):
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::~ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::networkStateChanged):
(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):
* workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Added support for a callback called for each service worker proxy creation.
Callback is used by WTR to inject a self.internals object used for testing.

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetServiceWorkerProxyCreationCallback):
* WebProcess/InjectedBundle/API/c/WKBundle.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setServiceWorkerProxyCreationCallback):
* WebProcess/InjectedBundle/InjectedBundle.h:

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::initialize): Setting service worker creation callback to inject ServiceWorkerInternals object.

LayoutTests:

* http/wpt/service-workers/online-worker.js: Added.
(async.waitForOnlineEvent):
(async.doTest):
* http/wpt/service-workers/online.https-expected.txt: Added.
* http/wpt/service-workers/online.https.html: Added.

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

3 years ago[Cairo] Contain shadow blur requirement state in a separate object
zandobersek@gmail.com [Mon, 8 Jan 2018 14:38:23 +0000 (14:38 +0000)]
[Cairo] Contain shadow blur requirement state in a separate object
https://bugs.webkit.org/show_bug.cgi?id=181380

Reviewed by Carlos Garcia Campos.

Instead of picking up the necessary state parameters from a
GraphicsContextState object, store the necessary parameters in a helper
ShadowBlurUsage struct. Mimicking the mustUseShadowBlur() function that
is being removed, values of the shadow color, shadow blur, and shadow
transform ignorance are stored there. Additionally, the required()
method accepts a PlatformContextCairo object through which it can
retrieve the current CTM and determine whether it's an identity, finally
deciding whether shadow blur can or cannot be ignored.

Goal of this change is to limit usage of GraphicsContextState directly
in operations implemented inside the Cairo namespace. Instead, the
state parameters should be passed directly, or an equivalent but limited
state object should be constructed for invocation of such operations.

This is likely only an intermediate solution. It's possible it will be
replaced by a more complete shadow state struct that would be used for
any operation that is required to draw shadows, if necessary.

No new tests -- no change in functionality.

* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawGlyphsShadow):
(WebCore::Cairo::ShadowBlurUsage::ShadowBlurUsage):
(WebCore::Cairo::ShadowBlurUsage::required const):
(WebCore::Cairo::fillRectWithRoundedHole):
(WebCore::Cairo::drawGlyphs):
(WebCore::Cairo::mustUseShadowBlur): Deleted.
* platform/graphics/cairo/CairoOperations.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::drawGlyphs):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::fillRectWithRoundedHole):

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

3 years ago[GStreamer][Soup] Remove dead getCreateOrReadBuffer code path
philn@webkit.org [Mon, 8 Jan 2018 13:53:10 +0000 (13:53 +0000)]
[GStreamer][Soup] Remove dead getCreateOrReadBuffer code path
https://bugs.webkit.org/show_bug.cgi?id=181376

Reviewed by Carlos Garcia Campos.

This code path is no longer used now that the GStreamer HTTP
source element uses data coming directly from the network process.

* SourcesGTK.txt:
* SourcesWPE.txt:
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResource::getOrCreateReadBuffer): Deleted.
* loader/MediaResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/cache/CachedRawResource.h:
* loader/cache/CachedRawResourceClient.h:
(WebCore::CachedRawResourceClient::finishedTimingForWorkerLoad):
(WebCore::CachedRawResourceClient::getOrCreateReadBuffer): Deleted.
* loader/cache/CachedResource.h:
(WebCore::CachedResource::getOrCreateReadBuffer): Deleted.
* loader/soup/CachedRawResourceSoup.cpp: Removed.
* loader/soup/SubresourceLoaderSoup.cpp: Removed.
* platform/graphics/PlatformMediaResourceLoader.h:
(WebCore::PlatformMediaResourceClient::loadFinished):
(WebCore::PlatformMediaResourceClient::getOrCreateReadBuffer): Deleted.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::getOrCreateReadBuffer): Deleted.
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::getOrCreateReadBuffer): Deleted.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::ensureReadBuffer):

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

3 years agoimported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https...
commit-queue@webkit.org [Mon, 8 Jan 2018 12:32:49 +0000 (12:32 +0000)]
imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html is slow in Debug
https://bugs.webkit.org/show_bug.cgi?id=181382

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-08

* TestExpectations:

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

3 years agolibwebrtc: Fix 'ld: warning: cannot export hidden symbol' messages
ddkilzer@apple.com [Mon, 8 Jan 2018 11:33:14 +0000 (11:33 +0000)]
libwebrtc: Fix 'ld: warning: cannot export hidden symbol' messages
<https://webkit.org/b/181378>

Reviewed by Youenn Fablet.

* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:
- Remove 117 symbols that are not currently exported.  These
  warnings only appear in Release and Production builds.

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

3 years agoUnreviewed GTK gardening. Rebaseline test again after r226500.
carlosgc@webkit.org [Mon, 8 Jan 2018 09:38:38 +0000 (09:38 +0000)]
Unreviewed GTK gardening. Rebaseline test again after r226500.

* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:

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

3 years ago[GStreamer] use FastMalloc-based GstAllocator
carlosgc@webkit.org [Mon, 8 Jan 2018 09:34:36 +0000 (09:34 +0000)]
[GStreamer] use FastMalloc-based GstAllocator
https://bugs.webkit.org/show_bug.cgi?id=165793

Reviewed by Philippe Normand.

Add GstAllocatorFastMalloc, a GstAllocator implementation using fast malloc. It's only used when fast malloc is
enabled and can be disabled using an environment variable for debugging purposes.

* platform/GStreamer.cmake:
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::initializeGStreamer):
* platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp: Added.
(gstMemoryFastMallocNew):
(gstAllocatorFastMallocAlloc):
(gstAllocatorFastMallocFree):
(gstAllocatorFastMallocMemMap):
(gstAllocatorFastMallocMemUnmap):
(gstAllocatorFastMallocMemCopy):
(gstAllocatorFastMallocMemShare):
(gstAllocatorFastMallocMemIsSpan):
(gst_allocator_fast_malloc_class_init):
(gst_allocator_fast_malloc_init):
* platform/graphics/gstreamer/GstAllocatorFastMalloc.h: Added.

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

3 years agoBuild fix #2: Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
ddkilzer@apple.com [Mon, 8 Jan 2018 09:22:49 +0000 (09:22 +0000)]
Build fix #2: Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
<https://webkit.org/b/181256>
<rdar://problem/36281730>

* Plugins/WebNetscapePluginEventHandlerCocoa.mm:
(WebNetscapePluginEventHandlerCocoa::handleTSMEvent):
- Use reinterpret_cast<NPNSString*>(const_cast<CFMutableStringRef>())
  to avoid warnings from casting CFStringRef to NPNSString*.
  Note that CFMutableStringRef is the same as CFStringRef
  without the const modifier, hence its use in the const_cast<>
  above.

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

3 years agoUnreviewed GTK gardening. Partially revert r224460.
carlosgc@webkit.org [Mon, 8 Jan 2018 09:16:58 +0000 (09:16 +0000)]
Unreviewed GTK gardening. Partially revert r224460.

Two tests were incorrectly rebaselined in r224460.

* platform/gtk/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt:
* platform/gtk/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:

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

3 years agoBuild fix: Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
ddkilzer@apple.com [Mon, 8 Jan 2018 09:08:45 +0000 (09:08 +0000)]
Build fix: Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
<https://webkit.org/b/181256>
<rdar://problem/36281730>

* Carbon/HIWebView.mm:
(StartUpdateObserver): Include TypeCastsCF.h from WTF, and use
checked_cf_cast<CFRunLoopRef>() to fix warning.

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

3 years agoImplement createImageBitmap(ImageBitmap)
Ms2ger@igalia.com [Mon, 8 Jan 2018 07:23:30 +0000 (07:23 +0000)]
Implement createImageBitmap(ImageBitmap)
https://bugs.webkit.org/show_bug.cgi?id=181287

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: rebaseline.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
       imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html

* html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise):

LayoutTests:

* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: rebaseline.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: rebaseline.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: rebaseline.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: rebaseline.

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

3 years agoEnable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
ddkilzer@apple.com [Mon, 8 Jan 2018 06:00:43 +0000 (06:00 +0000)]
Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
<https://webkit.org/b/181256>
<rdar://problem/36281730>

Reviewed by Darin Adler.

Source/WebInspectorUI:

* Configurations/Base.xcconfig:
(WARNING_CFLAGS): Add -Wcast-qual.

Source/WebKit:

* Configurations/Base.xcconfig:
(WARNING_CFLAGS): Add -Wcast-qual.
* NetworkProcess/cache/NetworkCacheCodersCocoa.cpp:
(WTF::Persistence::encodeCertificateChain): Include
TypeCastsCF.h from WTF, and use
checked_cf_cast<SecCertificateRef>() to fix warning.
* Platform/cocoa/WKCrashReporter.mm:
(WebKit::setCrashReportApplicationSpecificInformation):
- Move `oldMessage` check above nullptr check to fix a leak when
  passing in nullptr after previously setting the crash string.
- Change C-style cast to const_cast<char*>() to fix warning.
* PluginProcess/mac/PluginProcessShim.mm:
(WebKit::shim_shmat): Change C-style cast to
const_cast<void*>() to fix warning.
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::leafCertificate): Include TypeCastsCF.h from
WTF, and use checked_cf_cast<SecCertificateRef>() to fix
warning.
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::encode): Use static_cast<>(const_cast<void*>() to
fix warnings since the CFTypeID has already been
checked.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::decodeNSError): Use an `auto` variable to hold the
CFMutableDictionaryRef, then WTFMove() to assign it back to
`userInfo`.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::takeWindowSnapshot): Include TypeCastsCF.h from
WTF, and use checked_cf_cast<CGImageRef>() to fix
warning.

Source/WebKitLegacy:

* PlatformMac.cmake:
* WebKitLegacy.xcodeproj/project.pbxproj:
- Rename WebNSDataExtras.m to WebNSDataExtras.mm and change file
  type to Objective-C++.

Source/WebKitLegacy/mac:

* Carbon/CarbonUtils.m:
(PoolCleaner):
- Use #pragmas to ignore -Wcast-qual warnings when using a
  C-style cast from CFTypeRef to CFRunloopRef.
* Carbon/CarbonWindowFrame.m:
(-[CarbonWindowFrame title]):
- Use #pragmas to ignore -Wcast-qual warnings when using a
  C-style cast from CFStringRef to NSString *.
* Carbon/HIViewAdapter.m:
(+[HIViewAdapter getHIViewForNSView:]):
- Use #pragmas to ignore -Wcast-qual warnings when using a
  C-style cast from CFTypeRef to HIViewRef.
* Configurations/Base.xcconfig:
(WARNING_CFLAGS): Add -Wcast-qual.
* Misc/WebElementDictionary.mm:
(-[WebElementDictionary objectForKey:]):
- Use static_cast<SEL>(const_cast<void*>()) to fix
  warning.
* Misc/WebNSDataExtras.mm: Renamed from Source/WebKitLegacy/mac/Misc/WebNSDataExtras.m.
(-[NSString _web_capitalizeRFC822HeaderFieldName]):
(-[NSData _webkit_guessedMIMETypeForXML]):
(-[NSData _webkit_guessedMIMEType]):
(-[NSData _web_isCaseInsensitiveEqualToCString:]):
(_findEOL):
(-[NSData _webkit_parseRFC822HeaderFields]):
(-[NSData _web_startsWithBlankLine]):
(-[NSData _web_locationAfterFirstBlankLine]):
- Rename WebNSDataExtras.m to WebNSDataExtras.mm and change file
  type to Objective-C++.  This fixes the warnings about
  discarding the `const` modifier when casing from CFStringRef
  to NSString * because in older clang versions, -Wcast-qual was
  completely broken when compiling C++ and Objective-C++ source
  files.  In newer clang versions, discarding the `const`
  modifier for toll-free bridged types is ignored when compiling
  Objective-C++ source.
- Update copyright and license header.
- Use reinterpret_cast<> and static_cast<> to fix warnings
  unrelated to (NSString *) C-style casts.
- Replace use of MIN() macro with std::min<> template functions.
- Fix location of `*` for local variables modified above.
* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::spawnPluginHost):
(WebKit::NetscapePluginHostManager::initializeVendorPort):
(WebKit::NetscapePluginHostManager::instantiatePlugin):
- Use static_cast<uint8_t*>(const_cast<void*>()) to fix
  warnings.
* Plugins/Hosted/NetscapePluginHostProxy.mm:
(WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
- Use reinterpret_cast<mig_subsystem_t>(const_cast<struct WKWebKitPluginClient_subsystem*>())
  to fix warning.
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::invoke):
- Use static_cast<char*>(const_cast<void*>()) to fix
  warning when using -[NSData bytes].
(WebKit::ProxyInstance::fieldValue const):
- Use reinterpret_cast<char*>(const_cast<unsigned char*>())
  to fix warning when using CFDataGetBytePtr().
* Plugins/Hosted/WebTextInputWindowController.m:
(-[WebTextInputPanel _interpretKeyEvent:string:]):
- Use #pragma to ignore -Wcast-qual warning since there
  is not a good way to avoid this warning in Objective-C.
* Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::deliverData):
- Use const_cast<void*>() to fix warning when using
  -[NSData bytes].
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView _createPlugin]):
- Change C-style cast to const_cast<char*>() to fix
  warning.
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::wrapCryptoKey const):
(WebChromeClient::unwrapCryptoKey const):
- Change C-style cast to
  static_cast<uint8_t*>(const_cast<void*>() to fix
  warning.
* WebView/WebPDFView.mm:
(_applicationInfoForMIMEType):
- Change local variable type from 'NSURL *' to
  'CFURLRef' to fix warning.  Cast back to 'NSURL *'
  when calling -[NSURL path].

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

3 years agoReduce the precision of "high" resolution time to 1ms
rniwa@webkit.org [Mon, 8 Jan 2018 01:22:20 +0000 (01:22 +0000)]
Reduce the precision of "high" resolution time to 1ms
https://bugs.webkit.org/show_bug.cgi?id=180910
<rdar://problem/36085943>

Reviewed by Saam Barati.

Source/WebCore:

Reduced the high prevision time's resolution to 1ms, the same precision as Date.now().

Also fixed the bug in fillRTCStats that we weren't reducing the time resolution in RTCStats dictionaries.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::fillRTCStats):
* page/Performance.cpp:
(WebCore::Performance::reduceTimeResolution):

LayoutTests:

Add a flaky test expectation to imported/w3c/web-platform-tests/workers/worker-performance.worker.html
due to a test bug. The test fix is tracked in https://github.com/w3c/web-platform-tests/pull/8711

* TestExpectations:

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

3 years ago[cmake] Unset CMAKE_REQUIRED_LIBRARIES after check_function_exists test
annulen@yandex.ru [Sun, 7 Jan 2018 22:50:14 +0000 (22:50 +0000)]
[cmake] Unset CMAKE_REQUIRED_LIBRARIES after check_function_exists test
https://bugs.webkit.org/show_bug.cgi?id=181371

Reviewed by Michael Catanzaro.

This variable is used by check_function_exists internally, its value
should be never used for anything else.

* CMakeLists.txt:

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

3 years agoAdd total exits and total compilations sorting mode to the "full" command in display...
sbarati@apple.com [Sun, 7 Jan 2018 22:22:52 +0000 (22:22 +0000)]
Add total exits and total compilations sorting mode to the "full" command in display-profiler-output
https://bugs.webkit.org/show_bug.cgi?id=181372

Reviewed by Filip Pizlo.

Adding these sorting modes makes it easier to analyze functions
that recompile a lot and exit a lot.

* Scripts/display-profiler-output:

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

3 years agoPossible crash computing event regions
simon.fraser@apple.com [Sun, 7 Jan 2018 06:31:14 +0000 (06:31 +0000)]
Possible crash computing event regions
https://bugs.webkit.org/show_bug.cgi?id=181368
rdar://problem/34847081

Reviewed by Zalan Bujtas.

Source/WebCore:

Don't trigger layout in Element::absoluteEventHandlerBounds(), since this can run arbirary script
which might delete elements or re-enter Document::absoluteRegionForEventTargets().

It's OK to not trigger layout, because if layout is dirty, the next layout will update event regions again.

Add a LayoutDisallowedScope to check that Document::absoluteRegionForEventTargets() doesn't
trigger layout, and move the check for LayoutDisallowedScope::isLayoutAllowed() from Document::updateLayout()
to LayoutContext::layout(), since some layouts don't happen via the former (e.g. the one being removed here).

The test checks that the assertion does not fire. I was not able to get a reliable test for any crash.

Test: fast/events/event-handler-regions-layout.html

* dom/Document.cpp:
(WebCore::Document::updateLayout):
(WebCore::Document::absoluteRegionForEventTargets):
* dom/Element.cpp:
(WebCore::Element::absoluteEventHandlerBounds):
* page/LayoutContext.cpp:
(WebCore::LayoutContext::layout):
* rendering/LayoutDisallowedScope.h: Move the #ifdefs around to avoid defining the enum twice.
(WebCore::LayoutDisallowedScope::LayoutDisallowedScope):
(WebCore::LayoutDisallowedScope::isLayoutAllowed):

LayoutTests:

* fast/events/event-handler-regions-layout-expected.txt: Added.
* fast/events/event-handler-regions-layout.html: Added.

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

3 years agoCrash under RenderLayer::scrollTo() with marquee
simon.fraser@apple.com [Sun, 7 Jan 2018 05:48:47 +0000 (05:48 +0000)]
Crash under RenderLayer::scrollTo() with marquee
https://bugs.webkit.org/show_bug.cgi?id=181349
rdar://problem/36190168

Reviewed by Zalan Bujtas.

Source/WebCore:

Don't call updateWidgetPositions() synchonously during RenderLayer scrolling, because it
can run arbitrary script which may trigger destruction of this RenderLayer.

Instead, queue up updateWidgetPositions() on a zero-delay timer.

Under some circumstances this may allow a paint to occur before the widgets have been
updated (which could be fixed with a more invasive change), but in practice I saw no
painting issues with plug-ins or iframes inside overflow scroll, in WebKit or LegacyWebKit.

Test: fast/scrolling/marquee-scroll-crash.html

* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::updateWidgetPositions):
(WebCore::FrameView::scheduleUpdateWidgetPositions):
(WebCore::FrameView::updateWidgetPositionsTimerFired):
* page/FrameView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):

LayoutTests:

* fast/scrolling/marquee-scroll-crash-expected.txt: Added.
* fast/scrolling/marquee-scroll-crash.html: Added.

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

3 years agoAccurately clip copyTexImage2D and copyTexSubImage2D
dino@apple.com [Sun, 7 Jan 2018 05:18:47 +0000 (05:18 +0000)]
Accurately clip copyTexImage2D and copyTexSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=181356
<rdar://problem/35083877>

Reviewed by Eric Carlson.

Source/WebCore:

The code to make sure copyTexSubImage2D and copyTexImage2D will not try to read
out of bounds had a bad bug introduced here:
https://bugs.webkit.org/show_bug.cgi?id=51421

With appropriate parameters, it would produce a rectangle with
negative dimensions. Most GL drivers just ignored this, but some
are not happy.

Test: fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input.html

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::clip2D): Reimplement this in a more sane manner, and use
checked arithmetic while here.
* html/canvas/WebGLRenderingContextBase.h:
(WebCore::clip1D): Deleted.
(WebCore::clip2D): Deleted.

LayoutTests:

* fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt: Added.
* fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input.html: Added.

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

3 years agoObject.getOwnPropertyNames includes "arguments" and "caller" for bound functions
utatane.tea@gmail.com [Sun, 7 Jan 2018 00:15:21 +0000 (00:15 +0000)]
Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions
https://bugs.webkit.org/show_bug.cgi?id=181321

Reviewed by Saam Barati.

JSTests:

* stress/bound-function-does-not-have-caller-and-arguments.js: Added.
(shouldBe):
(testFunction):
* test262.yaml:

Source/JavaScriptCore:

According to ECMA262 16.2[1], functions created using the bind method must not have
"caller" and "arguments" own properties.

[1]: https://tc39.github.io/ecma262/#sec-forbidden-extensions

* runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::finishCreation):

LayoutTests:

* inspector/model/remote-object-get-properties-expected.txt:
* inspector/runtime/getProperties-expected.txt:
* js/script-tests/strict-throw-type-error.js:
* js/strict-throw-type-error-expected.txt:

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

3 years agoUse WeakPtr for RenderTreePosition::m_nextSibling
antti@apple.com [Sat, 6 Jan 2018 21:01:19 +0000 (21:01 +0000)]
Use WeakPtr for RenderTreePosition::m_nextSibling
https://bugs.webkit.org/show_bug.cgi?id=181363

Reviewed by Zalan Bujtas.

For safety. In most cases it is null and won't cause us to instantiate WeakReferences for
many new objects.

* rendering/updating/RenderTreePosition.cpp:
(WebCore::RenderTreePosition::computeNextSibling):
* rendering/updating/RenderTreePosition.h:
(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::nextSibling const):

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

3 years agoREGRESSION (r226218): iOS-only assets are installed on macOS
mitz@apple.com [Sat, 6 Jan 2018 16:52:30 +0000 (16:52 +0000)]
REGRESSION (r226218): iOS-only assets are installed on macOS
https://bugs.webkit.org/show_bug.cgi?id=181362

Reviewed by Anders Carlsson.

* Configurations/WebKit.xcconfig: Exclude everything under Resources/ios when not targeting
  iOS.

* Resources/ios: Added.
* Resources/ios/iOS.xcassets: Moved from Source/WebKit/WebKit.xcassets.
* Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Set the
  svn:mime-type property.
* Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Ditto.

* Resources/mac: Added.
* Resources/mac/mediaIcon.pdf: Moved here…
* Resources/mediaIcon.pdf: …from here.

* WebKit.xcassets: Moved under Resources/ios.

* WebKit.xcodeproj/project.pbxproj: Created an ios group under the Resources group, and
  cleaned up the mac group. Removed the Recovered References group.

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

3 years agoUnreviewed, remove my Cisco email from contributors.json
julien.brianceau@gmail.com [Sat, 6 Jan 2018 08:56:56 +0000 (08:56 +0000)]
Unreviewed, remove my Cisco email from contributors.json

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

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

3 years agoWebAssembly: poison JS object's secrets
jfbastien@apple.com [Sat, 6 Jan 2018 07:01:21 +0000 (07:01 +0000)]
WebAssembly: poison JS object's secrets
https://bugs.webkit.org/show_bug.cgi?id=181339
<rdar://problem/36325001>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Separating WebAssembly's JS objects from their non-JS
implementation means that all interesting information lives
outside of the JS object itself. This patch poisons each JS
object's pointer to non-JS implementation using the poisoning
mechanism and a unique key per JS object type origin.

* runtime/JSCPoison.h:
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper): JS -> wasm stores the JS
object in a stack slot when fast TLS is disabled. This requires
that we unpoison the Wasm::Instance.
* wasm/js/JSWebAssemblyCodeBlock.h:
* wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::offsetOfPoisonedInstance): renamed to
be explicit that the pointer is poisoned.
* wasm/js/JSWebAssemblyMemory.h:
* wasm/js/JSWebAssemblyModule.h:
* wasm/js/JSWebAssemblyTable.h:

Source/WTF:

swapping a poisoned pointer with a non-poisoned one (as is done in
JSWebAssembyMemory::adopt) was missing.

* wtf/Poisoned.h:
(WTF::PoisonedImpl::swap):
(WTF::ConstExprPoisonedPtrTraits::swap):

Tools:

Update tests for swap(Poisoned<k, T>, T*)

* TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/Poisoned.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedRef.cpp:
(TestWebKitAPI::TEST):

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

3 years agoREGRESSION(r226396) DataInteractionTests: ContentEditableToContentEditable and Conten...
wenson_hsieh@apple.com [Sat, 6 Jan 2018 03:48:05 +0000 (03:48 +0000)]
REGRESSION(r226396) DataInteractionTests: ContentEditableToContentEditable and ContentEditableToTextarea are failing
https://bugs.webkit.org/show_bug.cgi?id=181359

Reviewed by Tim Horton.

Ensure that these tests still pass using older SDKs.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):

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

3 years agoRe-enable -Wcast-qual in WebCore for Apple ports
ddkilzer@apple.com [Sat, 6 Jan 2018 03:19:57 +0000 (03:19 +0000)]
Re-enable -Wcast-qual in WebCore for Apple ports
<https://webkit.org/b/177895>
<rdar://problem/34960830>

Reviewed by Joseph Pecoraro.

Source/WebCore:

* Configurations/Base.xcconfig:
(WARNING_CFLAGS): Remove FIXME and add -Wcast-qual back to
arguments.

* crypto/mac/SerializedCryptoKeyWrapMac.mm:
(WebCore::createAndStoreMasterKey):
- Use checked_cf_cast<SecACLRef>().

* editing/cocoa/DataDetection.mm:
(WebCore::detectItemAtPositionWithRange):
- Manually cast CFTypeRef to DDResultRef until
  DDResultGetTypeID() is available as SPI.

* platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::initElementsFromArray):
- Use checked_cf_cast<IOHIDElementRef>().

* platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::createImageSample):
(WebCore::CMSampleBufferIsRandomAccess):
(WebCore::CMSampleBufferIsNonDisplaying):
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy const):
- Use checked_cf_cast<CFMutableDictionaryRef>() and
  checked_cf_cast<CFDictionaryRef>().

* platform/graphics/cocoa/IOSurface.h:
(WebCore::IOSurface::asLayerContents):
- Use reinterpret_cast<id>() to cast from IOSurfaceRef to id.

* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::automaticDequeue):
(WebCore::WebCoreDecompressionSession::imageForTime):
(WebCore::WebCoreDecompressionSession::getDecodeTime):
(WebCore::WebCoreDecompressionSession::getPresentationTime):
(WebCore::WebCoreDecompressionSession::getDuration):
- Use checked_cf_cast<CMSampleBufferRef>().

* platform/graphics/Font.h:
(WebCore::Font::m_kernedCFStringAttributes):
(WebCore::Font::m_nonKernedCFStringAttributes):
- Change type from RetainPtr<CFDictionaryRef> to
  RetainPtr<CFMutableDictionaryRef> since that's what they are.
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
(WebCore::Font::getCFStringAttributes const):
- Replace local `mutableAttributes` variable with
  `attributesDictionary.get()` since it returns the correct type
  now.

* platform/ios/wak/WAKView.mm:
(-[WAKView _initWithViewRef:]):
(_WAKCopyWrapper):
* platform/ios/wak/WKView.mm:
(_WKViewClearSuperview):
(WKViewFirstChild):
(WKViewNextSibling):
- Use static_cast<WKViewRef>(const_cast<void*>()) to convert
  const void* variable to WKViewRef.

* platform/mac/PasteboardMac.mm:
(WebCore::flipImageSpec):
(WebCore::setDragImageImpl):
- Use const_cast<> to remove 'const' modifier from
  unsigned char pointers.  This regressed while -Wcast-qual was
  disabled for WebCore.

* platform/mac/SSLKeyGeneratorMac.mm:
(WebCore::signedPublicKeyAndChallengeString):
- Use checked_cf_cast<SecACLRef>().

* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.cpp:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
- Use checked_cf_cast<CFMutableDictionaryRef>().

* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::copyCONNECTProxyResponse):
- Use checked_cf_cast<CFHTTPMessageRef>().

* platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::platformCertificateInfo const):
- Use checked_cf_cast<SecTrustRef>().

* platform/network/mac/CertificateInfoMac.mm:
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate const):
(WebCore::CertificateInfo::dump const):
- Use checked_cf_cast<SecCertificateRef>().

* testing/cocoa/WebArchiveDumpSupport.mm:
(WebCoreTestSupport::createCFURLResponseFromResponseData):
- Use checked_cf_cast<>() for CFMutable* types.

Source/WTF:

* wtf/RetainPtr.h:
(WTF::RetainPtr::fromStorageTypeHelper const): Add const_cast<>
operator here since some CFTypes are not defined as const
pointers, which triggers a warning in C++ source with
-Wcast-qual when casting from CFTypeRef back to the original
type.  Note that we use const_cast<CF_BRIDGED_TYPE(id) void*>()
here (and in TypeCastsCF.h below) since this is what CFTypeRef
is defined as in CFBase.h, but without the 'const' modifier.
(WTF::RetainPtr::fromStorageType const): Ditto.

* wtf/cf/TypeCastsCF.h: Use #pragma once.
(WTF_DECLARE_CF_TYPE_TRAIT): Rename from DECLARE_CF_TYPE_TRAIT.
Don't #undef it so that it can be used in other source files.
(WTF_DECLARE_CF_MUTABLE_TYPE_TRAIT): Add new macro that is used
for declaring CFMutable types.  The CFTypeID for CF_Foo_ and
CFMutable_Foo_ are the same, so we have to use a different macro
to declare type traits for those types.
(WTF::dynamic_cf_cast): Add assertion to catch issues in Debug
builds.
(WTF::checked_cf_cast): Inline code from WTF::dynamic_cf_cast
and change behavior to be more consistent between Debug and
Release builds, as well as other "checked" functions.
Previously this function would return nullptr in Release builds
if nullptr or the wrong type of object was passed in, but crash
in both cases on Debug builds.  The new behavior always returns
nullptr if nullptr was passed in (but never crashes), and always
crashes if the wrong type of object is passed in.

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

3 years agoStorage Access API: Refactor to make naming accurate and explicit, simplify access...
wilander@apple.com [Sat, 6 Jan 2018 02:16:51 +0000 (02:16 +0000)]
Storage Access API: Refactor to make naming accurate and explicit, simplify access table, and prepare for access removal for page
https://bugs.webkit.org/show_bug.cgi?id=181357
<rdar://problem/36331031>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. The only changed functionality that isn't covered
by existing tests is cross-origin iframes in the same partition
should be handled as already having access. This cannot be
tested in layout tests since they don't support subdomains.

This change does the following:
- Changes function and message names to reflect how this feature
  was eventually implemented, i.e. access per frame.
- Makes it explicit that the UI process is only involved in
  granting storage access and not removing storage access.
  The latter is done directly by the web process.
- Simplifies the network process' entry map since only needs to
  be able to give access to one domain in one frame at a time.
  Access goes away on frame navigation so there can only be one
  domain at a time per frame. Also, the map now uses pageIDs as
  main keys to prepare for efficient access removal for all
  frames under a page.
- Fixes a bug in so that a cross-origin iframe with the same
  partition as the top frame correctly is handled as already
  having access.

* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::cookieStoragePartition const):
    The only change here is the changed named of the call to
    NetworkStorageSession::hasStorageAccessForFrame().
(WebCore::NetworkStorageSession::hasStorageAccessForFrame const):
(WebCore::NetworkStorageSession::grantStorageAccessForFrame):
(WebCore::NetworkStorageSession::removeStorageAccessForFrame):
(WebCore::NetworkStorageSession::isStorageAccessGranted const): Deleted.
(WebCore::NetworkStorageSession::setStorageAccessGranted): Deleted.
(WebCore::NetworkStorageSession::removeStorageAccess): Deleted.

Source/WebKit:

This change does the following:
- Changes function and message names to reflect how this feature
  was eventually implemented, i.e. access per frame.
- Makes it explicit that the UI process is only involved in
  granting storage access and not removing storage access.
  The latter is done directly by the web process.
- Simplifies the network process' entry map since only needs to
  be able to give access to one domain in one frame at a time.
  Access goes away on frame navigation so there can only be one
  domain at a time per frame. Also, the map now uses pageIDs as
  main keys to prepare for efficient access removal for all
  frames under a page.
- Fixes a bug in so that a cross-origin iframe with the same
  partition as the top frame correctly is handled as already
  having access.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccess): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::hasStorageAccessForFrame):
(WebKit::NetworkProcess::grantStorageAccessForFrame):
(WebKit::NetworkProcess::hasStorageAccessForPrevalentDomains): Deleted.
(WebKit::NetworkProcess::updateStorageAccessForPrevalentDomains): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::hasStorageAccessForFrame):
(WebKit::NetworkProcessProxy::grantStorageAccessForFrame):
(WebKit::NetworkProcessProxy::hasStorageAccessForPrevalentDomains): Deleted.
(WebKit::NetworkProcessProxy::updateStorageAccessForPrevalentDomains): Deleted.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasStorageAccessForFrameHandler):
(WebKit::WebsiteDataStore::grantStorageAccessForFrameHandler):
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
(WebKit::WebsiteDataStore::hasStorageAccessForPrevalentDomainsHandler): Deleted.
(WebKit::WebsiteDataStore::updateStorageAccessForPrevalentDomainsHandler): Deleted.
* UIProcess/WebsiteData/WebsiteDataStore.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

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

3 years agoImplement Cache API partitioning based on ClientOrigin
commit-queue@webkit.org [Sat, 6 Jan 2018 01:56:23 +0000 (01:56 +0000)]
Implement Cache API partitioning based on ClientOrigin
https://bugs.webkit.org/show_bug.cgi?id=181240

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
Reviewed by Alex Christensen.

Source/WebCore:

Covered by updated tests.

Previously, cache storage was partitioned according the origin of the client, represented as a String.
We now partition according both client and top origins, represented as a ClientOrigin

Minor refactoring to use more makePendingActivity.
Added support for IPC serialization of ClientOrigin.
Added SecurityOriginData::toString which is used by WebKit2 Cache Storage implementation.

* Modules/cache/CacheStorageConnection.cpp:
(WebCore::CacheStorageConnection::open):
(WebCore::CacheStorageConnection::retrieveCaches):
* Modules/cache/CacheStorageConnection.h:
(WebCore::CacheStorageConnection::clearMemoryRepresentation):
(WebCore::CacheStorageConnection::doOpen):
(WebCore::CacheStorageConnection::doRetrieveCaches):
* Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::origin const):
(WebCore::DOMCacheStorage::retrieveCaches):
(WebCore::DOMCacheStorage::open):
(WebCore::DOMCacheStorage::remove):
* Modules/cache/DOMCacheStorage.h:
* Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::doOpen):
(WebCore::WorkerCacheStorageConnection::doRetrieveCaches):
* Modules/cache/WorkerCacheStorageConnection.h:
* page/ClientOrigin.h:
(WebCore::ClientOrigin::isolatedCopy const):
(WebCore::ClientOrigin::encode const):
(WebCore::ClientOrigin::decode):
* page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::toString const):
(WebCore::SecurityOriginData::debugString const): Deleted.
* page/SecurityOriginData.h:
(WebCore::SecurityOriginData::debugString const):
* testing/Internals.cpp:
(WebCore::Internals::clearCacheStorageMemoryRepresentation):

Source/WebKit:

open and retrieveCaches now take a ClientOrigin instead of a String.
Updated cache filesystem path computation to take both client origin and top origin.

When clearing an origin, caches whose client origin or top origin matches the origin are cleared.
Caches are added to the web site data of their client origin with their corresponding cache size.
Caches are added to the web site data of their top origin with a size equal to 0.

Updated memory representation dumping used for test to include both top and client origins.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::cachesRootPath):
(WebKit::CacheStorage::Engine::open):
(WebKit::CacheStorage::Engine::remove):
(WebKit::CacheStorage::Engine::retrieveCaches):
(WebKit::CacheStorage::Engine::readCachesFromDisk):
(WebKit::CacheStorage::Engine::removeCaches):
(WebKit::CacheStorage::Engine::fetchEntries):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):
(WebKit::CacheStorage::Engine::clearMemoryRepresentation):
(WebKit::CacheStorage::Engine::representation):
* NetworkProcess/cache/CacheStorageEngine.h:
* NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::Cache):
* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):
(WebKit::CacheStorage::Caches::Caches):
(WebKit::CacheStorage::Caches::storeOrigin):
(WebKit::CacheStorage::Caches::readOrigin):
(WebKit::CacheStorage::Caches::open):
* NetworkProcess/cache/CacheStorageEngineCaches.h:
(WebKit::CacheStorage::Caches::create):
(WebKit::CacheStorage::Caches::origin const):
* NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::open):
(WebKit::CacheStorageEngineConnection::caches):
(WebKit::CacheStorageEngineConnection::clearMemoryRepresentation):
* NetworkProcess/cache/CacheStorageEngineConnection.h:
* NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
* WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::doOpen):
(WebKit::WebCacheStorageConnection::doRetrieveCaches):
(WebKit::WebCacheStorageConnection::clearMemoryRepresentation):
* WebProcess/Cache/WebCacheStorageConnection.h:

LayoutTests:

Beefing up test to ensure that client and top origins are taken into consideration.

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

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

3 years agoShow Keyboard when re-launching WKWebView with a previously focused element
megan_gardner@apple.com [Sat, 6 Jan 2018 01:53:44 +0000 (01:53 +0000)]
Show Keyboard when re-launching WKWebView with a previously focused element
https://bugs.webkit.org/show_bug.cgi?id=181353

Reviewed by Tim Horton.

When relaunching an app with a WKWebView, restore the keyboard if there was a previously
focused element that was being assisted. The element was already being tracked, we just
needed to not bail on showing the keyboard for instances where it was a state change that
caused the element to be refocused.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAutoscrollAtPosition):
(WebKit::WebPageProxy::startAssistingNode):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::elementDidFocus):
* WebProcess/WebPage/WebPage.h:

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

3 years agoRebase API test after r226469
achristensen@apple.com [Sat, 6 Jan 2018 01:49:47 +0000 (01:49 +0000)]
Rebase API test after r226469
https://bugs.webkit.org/show_bug.cgi?id=181308

* TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:
(-[LoadInvalidURLNavigationActionDelegate webView:didFailProvisionalNavigation:withError:]):
A URL with < or > in it is now recognized as invalid by WebKit.  This is intentional, and matches our behavior before enabling the new URLParser.

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

3 years agoWeb Inspector: Add another Protocol Version
commit-queue@webkit.org [Sat, 6 Jan 2018 01:29:12 +0000 (01:29 +0000)]
Web Inspector: Add another Protocol Version
https://bugs.webkit.org/show_bug.cgi?id=181354
<rdar://problem/35432817>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-05
Reviewed by Matt Baker.

* UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: Added.
* Versions/Inspector-iOS-11.3.json: Added.

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

3 years agoUnreviewed, attempt to fix test262 after r226386.
ryanhaddad@apple.com [Sat, 6 Jan 2018 01:27:05 +0000 (01:27 +0000)]
Unreviewed, attempt to fix test262 after r226386.

* test262.yaml:

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

3 years agoMark fast/workers/worker-terminate.html as flaky.
ryanhaddad@apple.com [Sat, 6 Jan 2018 01:27:02 +0000 (01:27 +0000)]
Mark fast/workers/worker-terminate.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181098

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

3 years agoClose WebRTC sockets when marked as defunct
commit-queue@webkit.org [Sat, 6 Jan 2018 01:19:30 +0000 (01:19 +0000)]
Close WebRTC sockets when marked as defunct
https://bugs.webkit.org/show_bug.cgi?id=177324
rdar://problem/35244931

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
Reviewed by Eric Carlson.

In case selected sockets return an error when trying to accept an incoming socket,
check whether the socket is defunct or not.
If so, close it properly.

* Source/webrtc/base/asynctcpsocket.cc:
* Source/webrtc/base/physicalsocketserver.cc:
* Source/webrtc/base/socket.h:

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

3 years agoAdd ability to disable indexed property masking for testing
msaboff@apple.com [Sat, 6 Jan 2018 00:37:08 +0000 (00:37 +0000)]
Add ability to disable indexed property masking for testing
https://bugs.webkit.org/show_bug.cgi?id=181350

Reviewed by Keith Miller.

Made the masking of indexed properties runtime controllable via a new JSC::Option
named disableSpectreMitigations.  This is done to test the efficacy of that mitigation.

The new option has a generic name as it will probably be used to disable future mitigations.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::loadFromIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToB3::maskedIndex):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):
* jit/JIT.cpp:
(JSC::JIT::JIT):
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
* runtime/Options.h:
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):

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

3 years agoAllow JSC Config Files to set Restricted Options
msaboff@apple.com [Sat, 6 Jan 2018 00:27:12 +0000 (00:27 +0000)]
Allow JSC Config Files to set Restricted Options
https://bugs.webkit.org/show_bug.cgi?id=181352

Reviewed by Mark Lam.

* runtime/ConfigFile.cpp:
(JSC::ConfigFile::parse):

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

3 years agoRestrict navigation-time WKWebsiteDataStore swapping to main frame navigations
achristensen@apple.com [Sat, 6 Jan 2018 00:08:05 +0000 (00:08 +0000)]
Restrict navigation-time WKWebsiteDataStore swapping to main frame navigations
https://bugs.webkit.org/show_bug.cgi?id=181217

Reviewed by Tim Horton.

Source/WebKit:

If we swap during an iframe navigation, then we get a page in a strange state.
The intent of the main frame navigation WKWebsiteDataStore swap is that
that is a time when we can change storages without a page in an inconsistent state.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

Tools:

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

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

3 years agoAdd WKBundleFrameCreateFrameHandle
achristensen@apple.com [Sat, 6 Jan 2018 00:05:00 +0000 (00:05 +0000)]
Add WKBundleFrameCreateFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=181232
<rdar://problem/35926696>

Reviewed by Tim Horton.

Source/WebKit:

InjectedBundle clients wanting to sent a _WKFrameHandle cannot without this function.
Before, they would just send the WKBundleFrameRef which would be changed into a WKFrameRef
in the UIProcess by WebProcessProxy::transformHandlesToObjects, but there is no ObjC equivalent
of WKFrameRef, so we were just getting a WKObject when we wanted a _WKFrameHandle.
We can't change WebProcessProxy::transformHandlesToObjects without being incompatible with the
existing C API, so let's add a way for clients to say "I want a _WKFrameHandle".

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundleFrameCreateFrameHandle):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/FrameHandleSerialization.mm: Added.
(mouseDidMoveOverElement):
(-[FrameHandleSerialization webProcessPlugIn:didCreateBrowserContextController:]):
* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[MouseMoveOverElementDelegate _webView:mouseDidMoveOverElement:withFlags:userInfo:]):
(TEST):

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

3 years ago[Attachment Support] Add a way to write blob data to a file URL from the UI process
wenson_hsieh@apple.com [Fri, 5 Jan 2018 23:48:35 +0000 (23:48 +0000)]
[Attachment Support] Add a way to write blob data to a file URL from the UI process
https://bugs.webkit.org/show_bug.cgi?id=181236

Reviewed by Brady Eidson.

Source/WebCore:

Add support for writing a blob to a designated file path. See comments below for more detail. No new tests, as
there change in behavior yet. See part 2: https://bugs.webkit.org/show_bug.cgi?id=181199.

* page/DragController.cpp:
(WebCore::DragController::dragAttachmentElement):
* platform/PromisedBlobInfo.h:

Remove PromisedBlobData entirely. This was added with the premise of having the web process deliver blob data to
the UI process. However, the new approach I'm taking just has the UI process tell the network process to write
a blob to a given location, so a data structure to deliver blob data over IPC is no longer necessary.

(WebCore::PromisedBlobData::hasData const): Deleted.
(WebCore::PromisedBlobData::hasFile const): Deleted.
(WebCore::PromisedBlobData::operator bool const): Deleted.
(WebCore::PromisedBlobData::fulfills const): Deleted.
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::populateBlobsForFileWriting):

Introduce a new helper to build a list of blob data for file writing.

(WebCore::writeFilePathsOrDataBuffersToFile):

Introduce a new static helper to write blob data (a list of file paths and data buffers) to a given file handle.
Automatically closes the given file handle upon exit.

(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
(WebCore::BlobRegistryImpl::writeBlobToFilePath):

Pull out common logic in writeBlobsToTemporaryFiles and writeBlobToFilePath into helper methods (see above), and
refactor both methods to use the helpers.

* platform/network/BlobRegistryImpl.h:

Source/WebKit:

Add support for writing a blob to a designated file path. In WebKit, this is mainly plumbing writeBlobToFilePath
through WebPageProxy to the network process.

* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobToFilePath):

Call out to the BlobRegistryImpl to write blobs to the file path. Additionally grant sandbox extensions for any
file-backed blob parts corresponding to the given blob URL.

(WebKit::NetworkBlobRegistry::filesInBlob):

Introduce a version of filesInBlob that doesn't check against the NetworkConnectionToWebProcess. This is used
when the UI process is the driver for writing a blob.

* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::writeBlobToFilePath):

Temporarily grant sandbox access to the given file path.

* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PromisedBlobInfo>::encode):
(IPC::ArgumentCoder<PromisedBlobInfo>::decode):
(IPC::ArgumentCoder<PromisedBlobData>::encode): Deleted.
(IPC::ArgumentCoder<PromisedBlobData>::decode): Deleted.

Remove PromisedBlobData (see WebCore/ChangeLog for more information).

* Shared/WebCoreArgumentCoders.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):

If the network process is terminated, flush any pending callbacks in m_writeBlobToFilePathCallbackMap, passing
in a failure result (success := false) and clearing the callback map.

(WebKit::NetworkProcessProxy::writeBlobToFilePath):
(WebKit::NetworkProcessProxy::didWriteBlobToFilePath):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::writeBlobToFilePath):
* UIProcess/WebPageProxy.h:

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

3 years agoForbid < and > in URL hosts
achristensen@apple.com [Fri, 5 Jan 2018 23:38:26 +0000 (23:38 +0000)]
Forbid < and > in URL hosts
https://bugs.webkit.org/show_bug.cgi?id=181308
<rdar://problem/36012757>

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

* web-platform-tests/url/a-element-expected.txt:
* web-platform-tests/url/a-element-origin-expected.txt:
* web-platform-tests/url/a-element-origin-xhtml-expected.txt:
* web-platform-tests/url/a-element-xhtml-expected.txt:
* web-platform-tests/url/url-constructor-expected.txt:
* web-platform-tests/url/url-origin-expected.txt:

Source/WebCore:

https://url.spec.whatwg.org/#forbidden-host-code-point does not include these characters yet, but I think it should.
Firefox fails to parse URLs with < or > in the host.  Chrome percent encodes them.  Safari needs to do something.
The web platform tests are unclear on this case, and they will need to be updated with the specification.
They do show a change in behavior, though.

* platform/URLParser.cpp:
Add < and > to the list of forbidden host code points.

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

3 years ago[MediaStream] Add Mac screen capture source
eric.carlson@apple.com [Fri, 5 Jan 2018 23:34:30 +0000 (23:34 +0000)]
[MediaStream] Add Mac screen capture source
https://bugs.webkit.org/show_bug.cgi?id=181333
<rdar://problem/36323219>

Reviewed by Dean Jackson.

Source/WebCore:

* SourcesCocoa.txt: Add ScreenDisplayCaptureSourceMac.mm.

* WebCore.xcodeproj/project.pbxproj: Ditto.

* platform/cocoa/CoreVideoSoftLink.cpp: Declare new constants used.
* platform/cocoa/CoreVideoSoftLink.h:

* platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
(WebCore::displayReconfigurationCallBack): Call refreshCaptureDevices.
(WebCore::DisplayCaptureManagerCocoa::~DisplayCaptureManagerCocoa): Unregister for display
reconfiguration callbacks.
(WebCore::DisplayCaptureManagerCocoa::captureDevices): Register for display reconfigrations.
(WebCore::DisplayCaptureManagerCocoa::refreshCaptureDevices): Use CGActiveDisplayList to
get list of active screens.
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): Validate screen
ID, return CaptureDevice.
* platform/mediastream/mac/DisplayCaptureManagerCocoa.h:

* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::VideoCaptureSourceFactoryMac::createVideoCaptureSource): Deal with screen capture
on macOS.

Implement Mac screen capture with CGDisplayStream.
* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: Added.
(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::~DisplaySurface):
(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::operator=):
(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::ioSurface const):
* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: Added.
(WebCore::roundUpToMacroblockMultiple):
(WebCore::ScreenDisplayCaptureSourceMac::updateDisplayID):
(WebCore::ScreenDisplayCaptureSourceMac::create):
(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac):
(WebCore::ScreenDisplayCaptureSourceMac::~ScreenDisplayCaptureSourceMac):
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::startProducingData):
(WebCore::ScreenDisplayCaptureSourceMac::stopProducingData):
(WebCore::ScreenDisplayCaptureSourceMac::sampleBufferFromPixelBuffer):
(WebCore::ScreenDisplayCaptureSourceMac::pixelBufferFromIOSurface):
(WebCore::ScreenDisplayCaptureSourceMac::generateFrame):
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::applySize):
(WebCore::ScreenDisplayCaptureSourceMac::applyFrameRate):
(WebCore::ScreenDisplayCaptureSourceMac::commitConfiguration):
(WebCore::ScreenDisplayCaptureSourceMac::displayWasReconfigured):
(WebCore::ScreenDisplayCaptureSourceMac::displayReconfigurationCallBack):
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable):

Source/WebCore/PAL:

* pal/spi/cg/CoreGraphicsSPI.h: Declare some CGDisplayMode SPI.

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

3 years agoAdd injected bundle equivalents of DOMHTMLDocument (DOMHTMLDocumentExtensions)
mitz@apple.com [Fri, 5 Jan 2018 23:27:53 +0000 (23:27 +0000)]
Add injected bundle equivalents of DOMHTMLDocument (DOMHTMLDocumentExtensions)
https://bugs.webkit.org/show_bug.cgi?id=181345

Reviewed by Tim Horton.

* WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: Declared new methods.
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
(-[WKDOMDocument createDocumentFragmentWithMarkupString:baseURL:]): Added. Calls WebCore’s
  createFragmentFromMarkup.
(-[WKDOMDocument createDocumentFragmentWithText:]): Added. Calls WebCore’s
  createFragmentFromText.

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

3 years ago[curl] Can't load file:// URL with a URL fragment identifier
don.olmstead@sony.com [Fri, 5 Jan 2018 23:13:35 +0000 (23:13 +0000)]
[curl] Can't load file:// URL with a URL fragment identifier
https://bugs.webkit.org/show_bug.cgi?id=181170

Reviewed by Alex Christensen.

No new tests. No change in behavior.

* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):

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

3 years ago[Curl] Add implementation stubs for Network Cache
don.olmstead@sony.com [Fri, 5 Jan 2018 22:52:11 +0000 (22:52 +0000)]
[Curl] Add implementation stubs for Network Cache
https://bugs.webkit.org/show_bug.cgi?id=181343

Reviewed by Alex Christensen.

* NetworkProcess/cache/NetworkCacheCodersCurl.cpp: Added.
(WTF::Persistence::Coder<WebCore::CertificateInfo>::encode):
(WTF::Persistence::Coder<WebCore::CertificateInfo>::decode):
* NetworkProcess/cache/NetworkCacheDataCurl.cpp: Added.
(WebKit::NetworkCache::Data::Data):
(WebKit::NetworkCache::Data::empty):
(WebKit::NetworkCache::Data::data const):
(WebKit::NetworkCache::Data::isNull const):
(WebKit::NetworkCache::Data::apply const):
(WebKit::NetworkCache::Data::subrange const):
(WebKit::NetworkCache::concatenate):
(WebKit::NetworkCache::Data::adoptMap):
* NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp: Added.
(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::~IOChannel):
(WebKit::NetworkCache::IOChannel::open):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):
* PlatformWin.cmake:

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

3 years ago[Curl] Update method declarations in WebKit
don.olmstead@sony.com [Fri, 5 Jan 2018 22:42:40 +0000 (22:42 +0000)]
[Curl] Update method declarations in WebKit
https://bugs.webkit.org/show_bug.cgi?id=181342

Reviewed by Alex Christensen.

* NetworkProcess/Downloads/curl/DownloadCurl.cpp:
(WebKit::Download::resume):
* NetworkProcess/curl/RemoteNetworkingContextCurl.cpp:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Deleted.
(WebKit::RemoteNetworkingContext::blockedError const): Deleted.

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

3 years agoTextCodec uses std::array but does not include it
don.olmstead@sony.com [Fri, 5 Jan 2018 22:42:32 +0000 (22:42 +0000)]
TextCodec uses std::array but does not include it
https://bugs.webkit.org/show_bug.cgi?id=181340

Reviewed by Alex Christensen.

No new tests. No change in behavior.

* platform/text/TextCodec.h:

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

3 years agoMark mathml/opentype/horizontal-munderover.html as failure on Windows.
pvollan@apple.com [Fri, 5 Jan 2018 22:34:49 +0000 (22:34 +0000)]
Mark mathml/opentype/horizontal-munderover.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=181346

Unreviewed test gardening.

* platform/win/TestExpectations:

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

3 years agoTypedArrays and Wasm should use index masking.
keith_miller@apple.com [Fri, 5 Jan 2018 22:02:31 +0000 (22:02 +0000)]
TypedArrays and Wasm should use index masking.
https://bugs.webkit.org/show_bug.cgi?id=181313

Reviewed by Michael Saboff.

Source/JavaScriptCore:

We should have index masking for our TypedArray code in the
DFG/FTL and for Wasm when doing bounds checking. Index masking for
Wasm is added to the WasmBoundsCheckValue. Since we don't CSE any
WasmBoundsCheckValues we don't need to worry about combining a
bounds check for a load and a store. I went with fusing the
pointer masking in the WasmBoundsCheckValue since it should reduce
additional compiler overhead.

* b3/B3LowerToAir.cpp:
* b3/B3Validate.cpp:
* b3/B3WasmBoundsCheckValue.cpp:
(JSC::B3::WasmBoundsCheckValue::WasmBoundsCheckValue):
(JSC::B3::WasmBoundsCheckValue::dumpMeta const):
* b3/B3WasmBoundsCheckValue.h:
(JSC::B3::WasmBoundsCheckValue::pinnedIndexingMask const):
* b3/air/AirCustom.h:
(JSC::B3::Air::WasmBoundsCheckCustom::generate):
* b3/testb3.cpp:
(JSC::B3::testWasmBoundsCheck):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::loadFromIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitIntTypedArrayGetByVal):
* runtime/Butterfly.h:
(JSC::Butterfly::computeIndexingMask const):
(JSC::Butterfly::computeIndexingMaskForVectorLength): Deleted.
* runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::JSArrayBufferView):
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::load):
(JSC::Wasm::B3IRGenerator::store):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
* wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
* wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::grow):
* wasm/WasmMemory.h:
(JSC::Wasm::Memory::offsetOfIndexingMask):
* wasm/WasmMemoryInformation.cpp:
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):
* wasm/WasmMemoryInformation.h:
(JSC::Wasm::PinnedRegisterInfo::toSave const):
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):

Source/WTF:

* wtf/MathExtras.h:
(WTF::computeIndexingMask):

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

3 years agoWebFullScreenManager should compile when ENABLE(VIDEO) is off
don.olmstead@sony.com [Fri, 5 Jan 2018 21:50:39 +0000 (21:50 +0000)]
WebFullScreenManager should compile when ENABLE(VIDEO) is off
https://bugs.webkit.org/show_bug.cgi?id=181338

Reviewed by Alex Christensen.

* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
* WebProcess/FullScreen/WebFullScreenManager.h:

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

3 years ago[Apple Pay] Disable Apple Pay on platforms that don't have PassKit.framework
aestes@apple.com [Fri, 5 Jan 2018 21:28:05 +0000 (21:28 +0000)]
[Apple Pay] Disable Apple Pay on platforms that don't have PassKit.framework
https://bugs.webkit.org/show_bug.cgi?id=181335
<rdar://problem/36311296>

Reviewed by Brady Eidson.

When Safari is running in the macOS Base System, PassKit.framework is not available.
If we fail to dlopen PassKit, we should disable Apple Pay.

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetApplePayEnabled):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks):
(WebKit::WebPaymentCoordinatorProxy::platformSupportsPayments):

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

3 years agoSVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded() should do nothing if...
commit-queue@webkit.org [Fri, 5 Jan 2018 20:10:44 +0000 (20:10 +0000)]
SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded() should do nothing if the property is not animating
https://bugs.webkit.org/show_bug.cgi?id=181316
<rdar://problem/36147545>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-01-05
Reviewed by Simon Fraser.

This is a speculative change to fix a crash which appeared after r226065.
The crash is very intermittent and sometimes very hard to reproduce. The
basic code analysis did not show how this crash can even happen.

* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues): For SVG property
with two values, e.g. <SVGAngleValue, SVGMarkerOrientType>,  we need to
detach the wrappers of the animated property if the animated values are
going to change. This is similar to what we did in resetFromBaseValue().

* svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded):

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

3 years agoSkip LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/claim...
commit-queue@webkit.org [Fri, 5 Jan 2018 19:51:49 +0000 (19:51 +0000)]
Skip LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html
https://bugs.webkit.org/show_bug.cgi?id=181329

Unreviewed.
LayoutTests/imported/w3c:

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05

* web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Removed.

LayoutTests:

SharedWorker is not supported.

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05

* TestExpectations:

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

3 years agoMarked fast/mediastream/MediaStream-MediaElement-setObject-null.html as flaky.
jlewis3@apple.com [Fri, 5 Jan 2018 19:34:24 +0000 (19:34 +0000)]
Marked fast/mediastream/MediaStream-MediaElement-setObject-null.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181069

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoFixed the build following AppKit API deprecations in a recent SDKs
mitz@apple.com [Fri, 5 Jan 2018 19:09:47 +0000 (19:09 +0000)]
Fixed the build following AppKit API deprecations in a recent SDKs

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]): Suppressed deprecation warnings.
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Ditto.
(-[WKFullScreenWindowController exitFullScreen]): Ditto.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto.
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): Ditto.
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): Ditto.
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): Ditto.
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _setAutodisplay:]): Ditto.

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

3 years agoUnreviewed, rolling out r226401.
jlewis3@apple.com [Fri, 5 Jan 2018 19:01:48 +0000 (19:01 +0000)]
Unreviewed, rolling out r226401.

This caused timeouts on multiple platforms.

Reverted changeset:

"Implement Cache API partitioning based on ClientOrigin"
https://bugs.webkit.org/show_bug.cgi?id=181240
https://trac.webkit.org/changeset/226401

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

3 years agoFixed the build following AppKit API deprecations in a recent SDKs
mitz@apple.com [Fri, 5 Jan 2018 18:43:41 +0000 (18:43 +0000)]
Fixed the build following AppKit API deprecations in a recent SDKs

Source/WebCore:

* platform/mac/PasteboardMac.mm:
(WebCore::setDragImageImpl): Suppressed deprecation warnings.
* platform/mac/WidgetMac.mm:
(WebCore::Widget::paint): Ditto.

Source/WebKitLegacy/mac:

* WebView/WebFullScreenController.mm:
(-[WebFullScreenController enterFullScreen:]): Suppressed deprecation warnings.
(-[WebFullScreenController exitFullScreen]): Ditto.
(-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]): Ditto.
(-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]): Ditto.
* WebView/WebHTMLView.mm:
(-[WebHTMLView drawRect:]): Ditto.
(-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]): Ditto.
(-[WebHTMLView knowsPageRange:]): Ditto.
* WebView/WebView.mm:
(LayerFlushController::flushLayers): Ditto.

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

3 years agoServiceWorkers: Enable UserTiming / ResourceTiming
commit-queue@webkit.org [Fri, 5 Jan 2018 18:14:15 +0000 (18:14 +0000)]
ServiceWorkers: Enable UserTiming / ResourceTiming
https://bugs.webkit.org/show_bug.cgi?id=181297
<rdar://problem/36307306>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-05
Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/tests/workers/service/service-worker-resource-timing.https.html
       http/tests/workers/service/service-worker-user-timing.https.html

* loader/ResourceTiming.cpp:
(WebCore::ResourceTiming::ResourceTiming):
We used to clear extra NetworkLoadMetrics data early on. However,
for Workers we want to pass the complete NetworkLoadMetrics to
the Worker so that a Worker inspector has access to it.

* page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
Instead move the clearing of extra data to here, when the NetworkLoadMetrics
have finally settled into being used only for a performance entry.

Source/WebKit:

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
Enable Resource Timing / User Timing for the ServiceWorker process.

LayoutTests:

* http/tests/workers/service/resources/data1.txt: Added.
* http/tests/workers/service/resources/data2.txt: Added.
Resources to load from a service-worker.

* http/tests/workers/service/resources/service-worker-resource-timing.js: Added.
* http/tests/workers/service/service-worker-resource-timing.https-expected.txt: Added.
* http/tests/workers/service/service-worker-resource-timing.https.html: Added.
Test that a ServiceWorker can produce resource entries for a few
different kinds of loads (CacheStorage load, and a fetch).

* http/tests/workers/service/resources/service-worker-user-timing.js: Added.
* http/tests/workers/service/service-worker-user-timing.https-expected.txt: Added.
* http/tests/workers/service/service-worker-user-timing.https.html: Added.
Test that a ServiceWorker can produce a mark/measure entries.

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

3 years agoiOS: Build fix after r226432.
cfleizach@apple.com [Fri, 5 Jan 2018 17:59:50 +0000 (17:59 +0000)]
iOS: Build fix after r226432.

Unreviewed. Stop duplicating speakAs symbols for iOS.

* DumpRenderTree/AccessibilityUIElement.cpp:
(AccessibilityUIElement::speakAs):

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

3 years agoLayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch...
commit-queue@webkit.org [Fri, 5 Jan 2018 17:10:05 +0000 (17:10 +0000)]
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https.html should not expect Upgrade-Insecure Requests header
https://bugs.webkit.org/show_bug.cgi?id=181286

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
Reviewed by Alex Christensen.

Test previously expected upgrade-insecure-requests header to be inserted in a HTTP request.
Given the request URL is HTTPS, there is no need for that header.

* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-event.https.html:

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

3 years agoUnreviewed, added myself as WebKit reviewer
jfernandez@igalia.com [Fri, 5 Jan 2018 15:34:42 +0000 (15:34 +0000)]
Unreviewed, added myself as WebKit reviewer

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

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

3 years ago[WPE][GTK] Unreviewed gardening
csaavedra@igalia.com [Fri, 5 Jan 2018 14:39:31 +0000 (14:39 +0000)]
[WPE][GTK] Unreviewed gardening

Unskip svg/hittest/svg-shapes-non-scale-stroke.html, passing after
r226443.
* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

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

3 years ago[EME][GStreamer] Fix wrong ifdef
philn@webkit.org [Fri, 5 Jan 2018 14:01:15 +0000 (14:01 +0000)]
[EME][GStreamer] Fix wrong ifdef
https://bugs.webkit.org/show_bug.cgi?id=181289

Reviewed by Alex Christensen.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Remove the
ENCRYPTED_MEDIA ifdef from the VIDEO_TRACK ifdef block. Both have
nothing to do together.

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

3 years ago[WPE] Unreviewed gardening
csaavedra@igalia.com [Fri, 5 Jan 2018 13:50:57 +0000 (13:50 +0000)]
[WPE] Unreviewed gardening

* platform/wpe/TestExpectations: Unskip two tests passing after r226404.

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

3 years ago[WPE] Rebaseline test expectations after r226404
csaavedra@igalia.com [Fri, 5 Jan 2018 11:45:21 +0000 (11:45 +0000)]
[WPE] Rebaseline test expectations after r226404

Unreviewed gardening.

* platform/wpe/css1/font_properties/font_size-expected.txt:
* platform/wpe/css1/text_properties/letter_spacing-expected.txt:
* platform/wpe/css1/text_properties/line_height-expected.txt:
* platform/wpe/css1/text_properties/text_indent-expected.txt:
* platform/wpe/css1/text_properties/word_spacing-expected.txt:
* platform/wpe/css1/units/length_units-expected.txt:
* platform/wpe/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
* platform/wpe/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
* platform/wpe/css2.1/t1008-c44-ln-box-02-d-ag-expected.txt:
* platform/wpe/css2.1/t100801-c544-valgn-01-d-ag-expected.txt:
* platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
* platform/wpe/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt:
* platform/wpe/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
* platform/wpe/css2.1/t1601-c547-indent-00-b-a-expected.txt:
* platform/wpe/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt:
* platform/wpe/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
* platform/wpe/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
* platform/wpe/svg/custom/alignment-baseline-modes-expected.txt:
* platform/wpe/svg/custom/dominant-baseline-modes-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug55527-expected.txt:

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

3 years ago[Cairo] Canvas: Path::clear should clear its transform
commit-queue@webkit.org [Fri, 5 Jan 2018 11:41:18 +0000 (11:41 +0000)]
[Cairo] Canvas: Path::clear should clear its transform
https://bugs.webkit.org/show_bug.cgi?id=181320

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-01-05
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Path of Cairo port has its cairo context. Path::clear() didn't
clear the transform matrix of the context.

Test: fast/canvas/reset-scaling-by-height-change.html

* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::clear): Reset the transform matrix of Path.

LayoutTests:

* fast/canvas/reset-scaling-by-height-change-expected.txt: Added.
* fast/canvas/reset-scaling-by-height-change.html: Added.

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

3 years agoREGRESSION(r226306)[Win][CMake] Unnecessary recompilations triggered by unconditional...
commit-queue@webkit.org [Fri, 5 Jan 2018 11:11:44 +0000 (11:11 +0000)]
REGRESSION(r226306)[Win][CMake] Unnecessary recompilations triggered by unconditionally copied header files of DerivedSources
https://bugs.webkit.org/show_bug.cgi?id=181324

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-01-05
Reviewed by Konstantin Tokarev.

r226306 changed to use cmake -E copy to copy header files of
DerivedSources. This command copies files unconditionally, then
introduced unnecessary recompilations.

* Source/cmake/WebKitMacros.cmake: Use copy_if_different instead of copy.

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

3 years agoWPE: Build fix after r226432.
csaavedra@igalia.com [Fri, 5 Jan 2018 10:10:39 +0000 (10:10 +0000)]
WPE: Build fix after r226432.

Unreviewed. Rename ::speak() to ::speakAs().
* WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::speak): Deleted.

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