WebKit.git
2 years agoMake FrameLoadRequest a move-only type
dbates@webkit.org [Thu, 22 Jun 2017 19:45:10 +0000 (19:45 +0000)]
Make FrameLoadRequest a move-only type
https://bugs.webkit.org/show_bug.cgi?id=173682

Reviewed by Alex Christensen and Darin Adler.

A FrameLoadRequest groups together the information to perform a load into a single object
that is more manageable to pass around than its constituent parts. Code that receives a
FrameLoadRequest is expected to extract out the information it needs to complete its task.
And it does not make sense to re-use the same FrameLoadRequest object for more than one
load. Therefore, it is sufficient to make FrameLoadRequest a move-only type.

Source/WebCore:

* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):
* loader/FrameLoadRequest.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::createWindow):
* loader/FrameLoader.h:
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
* replay/UserInputBridge.cpp:
(WebCore::UserInputBridge::loadRequest):
* replay/UserInputBridge.h:

Source/WebKit/ios:

* WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

* Plugins/WebPluginController.mm:
(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

* Plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::load):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):
* Plugins/PluginView.h:
(WebCore::PluginRequest::PluginRequest):

Source/WebKit2:

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::URLRequest::create):
(WebKit::PluginView::URLRequest::URLRequest):
(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::loadURL):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):

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

2 years agoAdd release assertion in CallbackMap::invalidate()
cdumez@apple.com [Thu, 22 Jun 2017 19:41:08 +0000 (19:41 +0000)]
Add release assertion in CallbackMap::invalidate()
https://bugs.webkit.org/show_bug.cgi?id=173722

Reviewed by Brady Eidson.

Add release assertion in CallbackMap::invalidate() to make sure it is called on the main thread.

* UIProcess/GenericCallback.h:
(WebKit::CallbackMap::invalidate):

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

2 years agopretty patch doesn't show image diffs with newer versions of git
clopez@igalia.com [Thu, 22 Jun 2017 19:38:39 +0000 (19:38 +0000)]
pretty patch doesn't show image diffs with newer versions of git
https://bugs.webkit.org/show_bug.cgi?id=173691

A new security check added in git >= 2.3.3 causes it to abort
when the tool runs "git apply" to generate the images.
Detect if git supports the flag --unsafe-paths and pass it.

Reviewed by Darin Adler.

* PrettyPatch/PrettyPatch.rb:

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

2 years agoREGRESSION (r217223): [iOS] Video keeps playing after application is backgrounded
jer.noble@apple.com [Thu, 22 Jun 2017 18:56:15 +0000 (18:56 +0000)]
REGRESSION (r217223): [iOS] Video keeps playing after application is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=173727

Reviewed by Eric Carlson.

Only override media element visibility if it is in picture-in-picture mode (not fullscreen generally).

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

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

2 years agoFollow-up to r218662. Only log backtraces for DumpRenderTree.
joepeck@webkit.org [Thu, 22 Jun 2017 18:39:53 +0000 (18:39 +0000)]
Follow-up to r218662. Only log backtraces for DumpRenderTree.

Rubber-stamped by Antoine Quint.

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::logSuspendCount):

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

2 years agoWeb Inspector: Remove stale "rawScopes" concept that was never available in JSC
joepeck@webkit.org [Thu, 22 Jun 2017 18:35:17 +0000 (18:35 +0000)]
Web Inspector: Remove stale "rawScopes" concept that was never available in JSC
https://bugs.webkit.org/show_bug.cgi?id=173686

Reviewed by Mark Lam.

* inspector/InjectedScript.cpp:
(Inspector::InjectedScript::functionDetails):
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype.functionDetails):
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::functionDetails):

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

2 years agoMark webaudio/silent-audio-interrupted-in-background.html as flaky on mac-wk2.
ryanhaddad@apple.com [Thu, 22 Jun 2017 18:05:25 +0000 (18:05 +0000)]
Mark webaudio/silent-audio-interrupted-in-background.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=172201

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoAdd some thread safety guards to GenericCallback.
beidson@apple.com [Thu, 22 Jun 2017 17:34:35 +0000 (17:34 +0000)]
Add some thread safety guards to GenericCallback.
https://bugs.webkit.org/show_bug.cgi?id=173693

Reviewed by Sam Weinig.

A callback should be created, performed, invalidated, and/or destroyed all on the same thread.
Let's write code to notify us if that doesn't happen.

* UIProcess/GenericCallback.h:
(WebKit::GenericCallback::~GenericCallback):
(WebKit::GenericCallback::performCallbackWithReturnValue):
(WebKit::GenericCallback::invalidate):

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

2 years agov2: REGRESSION (r218419): 3 NSMutableDictionary leaks calling -[WKProcessPool _plugin...
ddkilzer@apple.com [Thu, 22 Jun 2017 17:07:52 +0000 (17:07 +0000)]
v2: REGRESSION (r218419): 3 NSMutableDictionary leaks calling -[WKProcessPool _pluginLoadClientPolicies]
<https://webkit.org/b/173689>

Reviewed by Chris Dumez.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(policiesHashMapToDictionary): Use -dictionaryWithCapacity:
instead of -new since the former returns an autoreleased object
while the latter does not.  This has the added benefit of tuning
the size of each NSMutableDictionary.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
(-[WKProcessPool _pluginLoadClientPolicies]): Remove 'copy'
attribute from @property declaration since it is read-only.

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

2 years ago[GTK] Spreaker live shows won't play
commit-queue@webkit.org [Thu, 22 Jun 2017 16:43:52 +0000 (16:43 +0000)]
[GTK] Spreaker live shows won't play
https://bugs.webkit.org/show_bug.cgi?id=173306

Patch by Charlie Turner <cturner@igalia.com> on 2017-06-22
Reviewed by Xabier Rodriguez-Calvar.

This was due to removing the code that negotiated caps for Icecast
streams based on the response headers in r191947. The problem is that
the typefind element can sometimes squint hard enough and see an MP3
stream and attempt to play it, resulting in garbled audio playback. More
commonly typefind fails to recognize the Icecast stream and bails,
resulting in no playback at all.

r191947 also removed the emission of metadata into the pipeline. This
patch also leaves that out since we have no use for it within WebKit.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient::handleResponseReceived):

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

2 years agoUnreviewed, rolling out r218633.
jlewis3@apple.com [Thu, 22 Jun 2017 16:33:55 +0000 (16:33 +0000)]
Unreviewed, rolling out r218633.

The test is failing frequently on Sierra Debug and Windows

Reverted changeset:

"AX: Cannot call setValue() on contenteditable or ARIA text
controls"
https://bugs.webkit.org/show_bug.cgi?id=173520
http://trac.webkit.org/changeset/218633

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

2 years ago[Readable Streams API] Implement ReadableStreamBYOBReader read()
commit-queue@webkit.org [Thu, 22 Jun 2017 16:17:20 +0000 (16:17 +0000)]
[Readable Streams API] Implement ReadableStreamBYOBReader read()
https://bugs.webkit.org/show_bug.cgi?id=172714

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-06-22
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations.
Some tests are not passing yet due to 2 bugs not directly related to read() implementation
(172716 and 172717) that will be fixed distinctly.

* web-platform-tests/streams/readable-byte-streams/general-expected.txt:
* web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:

Source/WebCore:

Implemented read() method of ReadableStreamBYOBReader [1]. Also added code related
to BYOB features that were previously described as FIXMEs and that now become reachable.

In addition, WPT tests that involve read() have allowed to identify 2 bugs not directly
related to read() (172716 and 172717). They will be fixed distinctly. Once done, all WPT
tests should pass.

[1] https://streams.spec.whatwg.org/#byob-reader-read

WPT tests (web-platform-tests/streams/readable-byte-streams/general.js) already cover
most cases for read() usage. Corresponding expectations have been updated. In addition,
1 test has been added to WebKit tests (in streams/readable-stream-byob-reader.js) to
check that read() can only be applied to a ReadableStreamBYOBReader.

* Modules/streams/ReadableByteStreamInternals.js:
(readableByteStreamControllerClearPendingPullIntos): Implemented.
(readableByteStreamControllerEnqueue): Updated with support for BYOBReader.
(readableByteStreamControllerPullInto): Added.
(readableStreamAddReadIntoRequest): Added.
* Modules/streams/ReadableStreamBYOBReader.js:
(read): Added.

LayoutTests:

Added 1 test to check that read() can only be applied to a ReadableStreamBYOBReader.
Other behaviors are checked by WPT (web-platform-tests/streams/readable-byte-streams/general.js).

* streams/readable-stream-byob-reader-expected.txt: Updated.
* streams/readable-stream-byob-reader.js: Added 1 test.

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

2 years agoRemove testRunner.overridePreference from WPT tests
commit-queue@webkit.org [Thu, 22 Jun 2017 15:32:51 +0000 (15:32 +0000)]
Remove testRunner.overridePreference from WPT tests
https://bugs.webkit.org/show_bug.cgi?id=173713

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-22
Reviewed by Youenn Fablet.

We update two W3C tests to remove the setting of the Chromium-specific preference
WebKitAllowDisplayingInsecureContent. This update also fixes the link to the
get-host-info.sub.js resource.

* web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html:
* web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html:

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

2 years ago[WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder...
commit-queue@webkit.org [Thu, 22 Jun 2017 15:29:14 +0000 (15:29 +0000)]
[WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder on Mac
https://bugs.webkit.org/show_bug.cgi?id=172602
<rdar://problem/32407693>

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

Source/ThirdParty/libwebrtc:

Adding a parameter to disable hardware encoder.

* Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h:
* Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:
(webrtc::H264VideoToolboxEncoder::CreateCompressionSession):

Source/WebCore:

Test: platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html

Add internal API to switch on/off hardware H264 encoder.
Add checks for standard size. If using a software encoder and frame size is not standard,
the session is destroyed and no frame is sent at all.

Added tests based on captureStream.
Fixed the case of capturing a canvas which size is changing.

* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized):
* platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.h:
* platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm:
(WebCore::H264VideoToolboxEncoder::setHardwareEncoderForWebRTCAllowed):
(WebCore::H264VideoToolboxEncoder::hardwareEncoderForWebRTCAllowed):
(WebCore::isUsingSoftwareEncoder):
(WebCore::H264VideoToolboxEncoder::CreateCompressionSession):
(isStandardFrameSize): Added.
(isUsingSoftwareEncoder): Added.
* testing/Internals.cpp:
(WebCore::Internals::setH264HardwareEncoderAllowed):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* platform/mac-wk1/TestExpectations: Mark captureCanvas as flaky due to AVDCreateGPUAccelerator: Error loading GPU renderer" appearing on some bots.
* platform/mac/webrtc/captureCanvas-webrtc-software-encoder-expected.txt: Copied from LayoutTests/webrtc/captureCanvas-webrtc-expected.txt.
* platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html: Added.
* webrtc/captureCanvas-webrtc-expected.txt:
* webrtc/captureCanvas-webrtc.html:

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

2 years ago[Win] Cleanup: Remove unnecessary include of header FrameLoadRequest.h
commit-queue@webkit.org [Thu, 22 Jun 2017 15:22:00 +0000 (15:22 +0000)]
[Win] Cleanup: Remove unnecessary include of header FrameLoadRequest.h
https://bugs.webkit.org/show_bug.cgi?id=173683

Patch by Daniel Bates <dabates@apple.com> on 2017-06-22
Reviewed by Alex Christensen.

Neither file PluginViewWin.cpp nor WebContextMenuClient.cpp need to include
header FrameLoadRequest.h. The former includes FrameLoadRequest.h indirectly
by including PluginView.h. The latter does not make use of the functionality
provided by FrameLoadRequest.h.

* Plugins/PluginViewWin.cpp:
* WebCoreSupport/WebContextMenuClient.cpp:

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

2 years ago[JSC] Object.values should be implemented in C++
utatane.tea@gmail.com [Thu, 22 Jun 2017 15:18:53 +0000 (15:18 +0000)]
[JSC] Object.values should be implemented in C++
https://bugs.webkit.org/show_bug.cgi?id=173703

Reviewed by Sam Weinig.

JSTests:

* microbenchmarks/object-keys-map-values.js: Added.
(test):
* microbenchmarks/object-values.js: Added.
(test):
* stress/object-values-changing-properties.js: Added.
(shouldBe):
(throw.new.Error.let.source.get x):
(throw.new.Error):
(shouldBe.let.handler.get order):
(get let):
(shouldBe.let.handler.get return):
(let.handler.get order):

Source/JavaScriptCore:

As the same to Object.assign, Object.values() is also inherently polymorphic.
And allocating JSString / Symbol for Identifier and JSArray for Object.keys()
result is costly.

In this patch, we implement Object.values() in C++. It can avoid above allocations.
Furthermore, by using `slot.isTaintedByOpaqueObject()` information, we can skip
non-observable JSObject::get() calls.

This improves performance by 2.49x. And also now Object.values() beats
Object.keys(object).map(key => object[key]) implementation.

                                     baseline                  patched

    object-values               132.1551+-3.7209     ^     53.1254+-1.6139        ^ definitely 2.4876x faster
    object-keys-map-values       78.2008+-2.1378     ?     78.9078+-2.2121        ?

* builtins/ObjectConstructor.js:
(values): Deleted.
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorValues):

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

2 years agoLayoutTests/inspector/indexeddb/requestDatabaseNames.html: Sort database names to...
commit-queue@webkit.org [Thu, 22 Jun 2017 15:16:37 +0000 (15:16 +0000)]
LayoutTests/inspector/indexeddb/requestDatabaseNames.html: Sort database names to prevent flakiness
https://bugs.webkit.org/show_bug.cgi?id=173699

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-06-22
Reviewed by Alex Christensen.

* inspector/indexeddb/requestDatabaseNames.html:
Sort database names (when more than one) to ensure a consistent order.

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

2 years ago[WPE] Skip js geolocation test.
csaavedra@igalia.com [Thu, 22 Jun 2017 13:36:55 +0000 (13:36 +0000)]
[WPE] Skip js geolocation test.

Unreviewed gardening.
Geolocation was disabled since r218553.
* platform/wpe/TestExpectations:

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

2 years ago[TestWebKitAPI] Fix misuse of -[NSData dataWithBytesNoCopy:length:] with global variables
ddkilzer@apple.com [Thu, 22 Jun 2017 13:14:59 +0000 (13:14 +0000)]
[TestWebKitAPI] Fix misuse of -[NSData dataWithBytesNoCopy:length:] with global variables
<https://webkit.org/b/173690>

Reviewed by Chris Dumez.

Per documentation, -[NSData dataWithBytesNoCopy:length:] takes
ownership of malloc()-ed memory, then frees it when it's
released.  These tests were passing global variables into the
method, which is not malloc()-ed memory, which violates the API
contract.

The fix is to switch to use
-[NSData dataWithBytesNoCopy:length:freeWhenDone:] and to pass
NO for the last argument.

Caught by the clang static analyzer.

* TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm:
(TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm:
(TEST):

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

2 years ago[GTK] Upgrade Harfbuzz to version 1.4.2
carlosgc@webkit.org [Thu, 22 Jun 2017 13:01:03 +0000 (13:01 +0000)]
[GTK] Upgrade Harfbuzz to version 1.4.2
https://bugs.webkit.org/show_bug.cgi?id=173592

Reviewed by Carlos Alberto Lopez Perez.

* gtk/jhbuild.modules:

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

2 years ago[WPE] Unskip http cache tests.
csaavedra@igalia.com [Thu, 22 Jun 2017 12:59:45 +0000 (12:59 +0000)]
[WPE] Unskip http cache tests.

Unreviewed gardening.

Currently failing tests are the same as in the GTK+ port.
* platform/wpe/TestExpectations:

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

2 years ago[WPE] Downloads never have a web view associated in WPE
carlosgc@webkit.org [Thu, 22 Jun 2017 11:55:07 +0000 (11:55 +0000)]
[WPE] Downloads never have a web view associated in WPE
https://bugs.webkit.org/show_bug.cgi?id=173709

Reviewed by Žan Doberšek.

Convert the WPE view client into an API client and add handleDownloadRequest(). WebKitWebView now uses it to
associate itself to the download like the GTK+ port does.

* PlatformWPE.cmake:
* UIProcess/API/C/wpe/WKView.cpp:
(WKViewSetViewClient): Add C API client implementation here.
* UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewConstructed): Set the view client in WPE.
* UIProcess/API/wpe/APIViewClient.h: Renamed from Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h.
(API::ViewClient::frameDisplayed):
(API::ViewClient::handleDownloadRequest):
* UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::handleDownloadRequest): Call WKWPE::View::handleDownloadRequest().
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::View): Initialize the view client.
(WKWPE::View::setClient): Set or reset the client.
(WKWPE::View::handleDownloadRequest): Notify the client.
* UIProcess/API/wpe/WPEView.h:
* UIProcess/API/wpe/WPEViewClient.cpp: Removed.

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

2 years ago[WPE] Update WPEBackend-mesa
carlosgc@webkit.org [Thu, 22 Jun 2017 11:53:33 +0000 (11:53 +0000)]
[WPE] Update WPEBackend-mesa
https://bugs.webkit.org/show_bug.cgi?id=173705

Reviewed by Carlos Alberto Lopez Perez.

A crash has been fixed, needed for unit tests to work.

* wpe/jhbuild.modules:

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

2 years ago[GTK] Web Inspector: Add icon for Canvas.svg
commit-queue@webkit.org [Thu, 22 Jun 2017 11:38:51 +0000 (11:38 +0000)]
[GTK] Web Inspector: Add icon for Canvas.svg
https://bugs.webkit.org/show_bug.cgi?id=173580

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

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

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

2 years ago[WPE] Page should be closed on WebKitWebView dispose
carlosgc@webkit.org [Thu, 22 Jun 2017 11:16:54 +0000 (11:16 +0000)]
[WPE] Page should be closed on WebKitWebView dispose
https://bugs.webkit.org/show_bug.cgi?id=173707

Reviewed by Žan Doberšek.

In the GTK+ port it's done in the WebKitWebViewBase dispose implementation. It fixes TestMultiprocess.

* UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewDispose): Call WKWPE::View::close().
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::close): Close the WebPageProxy.
* UIProcess/API/wpe/WPEView.h:

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

2 years agoRemove unused coordinated graphics C API
carlosgc@webkit.org [Thu, 22 Jun 2017 11:15:14 +0000 (11:15 +0000)]
Remove unused coordinated graphics C API
https://bugs.webkit.org/show_bug.cgi?id=173706

Reviewed by Žan Doberšek.

Source/WebKit2:

* UIProcess/API/C/CoordinatedGraphics/WKView.cpp: Removed.
* UIProcess/API/C/CoordinatedGraphics/WKView.h: Removed.
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp: Removed.
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.h: Removed.

Tools:

* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewIsActiveSetIsActive.cpp: Removed.
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewIsActiveSetIsActive_Bundle.cpp: Removed.
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewRestoreZoomAndScrollBackForward.cpp: Removed.
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewUserViewportToContents.cpp: Removed.
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward1.html: Removed.
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward2.html: Removed.

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

2 years ago[WPE] Build glib API tests
carlosgc@webkit.org [Thu, 22 Jun 2017 11:12:39 +0000 (11:12 +0000)]
[WPE] Build glib API tests
https://bugs.webkit.org/show_bug.cgi?id=173702

Reviewed by Žan Doberšek.

Many of the tests pass without problems, others need to be investigated, and some others are known issues. The
main difference between the GTK+ and WPE WebKitWebView is that in GTK+ it's a GtkWidget, so initially
unowned. The tests assume that webkit_web_view_new methods return a floating reference. This patch adds
Test::adoptView() method that returns a GRefPtr<WebKitWebView> with a different implementation in GTK+ and
WPE. In the case of GTK+, it sinks the floating reference, while in WPE it simply adopts the reference. Another
difference is that in GTK+ the web view is initially hidden and needs to be added to a window to make it
visible. Also, some tests need the web view to be realized to work, and others need that the view is added to a
toplevel window, instead of a popup window. All those things are not needed at all in WPE. I've added several
#ifdefs with FIXME comments for the things that we know don't work in WPE yet, for example, because we haven't
implemented the methods to send events to the web view. Those will be removed eventually when we fix the issues
and implement the missing features.

* CMakeLists.txt:
* TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp:
* TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:
(testAutomationSessionRequestSession):
* TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:
(testWebKitWebViewSessionState):
(testWebKitWebViewSessionStateWithFormData):
(testWebKitWebViewNavigationAfterSessionRestore):
* TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp:
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
(testCookieManagerEphemeral):
* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(testBlobDownload):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp:
(testProcessPerWebView):
* TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewCreateNavigationData):
(testWebViewJavaScriptDialogs):
(testWebViewWindowProperties):
(testWebViewMouseTarget):
(testWebViewGeolocationPermissionRequests):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
(testWebViewFileChooserRequest):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:
(testPrivateBrowsing):
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp:
(testFindControllerHide):
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
(testWebViewNewWithUserContentManager):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
(testWebContextEphemeral):
(testWebContextProxySettings):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewWebContext):
(testWebViewWebContextLifetime):
(testWebViewEphemeral):
(testWebViewSettings):
(testWebViewCanShowMIMEType):
(testWebViewPageVisibility):
(testWebViewIsPlayingAudio):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
(testWebsiteDataEphemeral):
* TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
(documentLoadedCallback):
(pageCreatedCallback):
(methodCallCallback):
* TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h:
* TestWebKitAPI/glib/CMakeLists.txt:
* TestWebKitAPI/glib/PlatformGTK.cmake:
* TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:
* TestWebKitAPI/glib/WebKitGLib/TestMain.cpp:
(main):
* TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::adoptView):
* TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp:
(WebKitTestBus::run):
* TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
(WebViewTest::~WebViewTest):
(WebViewTest::initializeWebView):
* TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
* TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp: Added.
(WebViewTest::platformDestroy):
(WebViewTest::platformInitializeWebView):
(WebViewTest::quitMainLoopAfterProcessingPendingEvents):
(WebViewTest::resizeView):
(WebViewTest::hideView):
(parentWindowMapped):
(WebViewTest::showInWindow):
(WebViewTest::showInWindowAndWaitUntilMapped):
(WebViewTest::mouseMoveTo):
(WebViewTest::clickMouseButton):
(WebViewTest::emitPopupMenuSignal):
(WebViewTest::keyStroke):
(WebViewTest::doMouseButtonEvent):
* TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp: Copied from Tools/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h.
(WebViewTest::platformDestroy):
(WebViewTest::platformInitializeWebView):
(WebViewTest::quitMainLoopAfterProcessingPendingEvents):
(WebViewTest::resizeView):
(WebViewTest::hideView):
(WebViewTest::mouseMoveTo):
(WebViewTest::clickMouseButton):
(WebViewTest::keyStroke):

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

2 years ago[GTK] Move WebKit2 GLib API tests to glib directories
carlosgc@webkit.org [Thu, 22 Jun 2017 07:47:39 +0000 (07:47 +0000)]
[GTK] Move WebKit2 GLib API tests to glib directories
https://bugs.webkit.org/show_bug.cgi?id=173642

Reviewed by Žan Doberšek.

* CMakeLists.txt:
* TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Removed.
* TestWebKitAPI/Tests/WebKit2Gtk/resources/webkit2gtk-tests.gresource.xml: Removed.
* TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAuthentication.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestBackForwardList.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp.
(testWebKitConsoleMessageNetworkError):
* TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestCookieManager.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp.
(testLoadFromGResource):
* TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFaviconDatabase.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFindController.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSecurityOrigin.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp.
(testWebViewRunJavaScript):
* TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebsiteData.cpp.
* TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp.
(registerGResource):
* TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp.
* TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h.
* TestWebKitAPI/Tests/WebKitGLib/resources/blank.ico: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/blank.ico.
* TestWebKitAPI/Tests/WebKitGLib/resources/boring.html: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/boring.html.
* TestWebKitAPI/Tests/WebKitGLib/resources/link-title.js: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/link-title.js.
* TestWebKitAPI/Tests/WebKitGLib/resources/silence.mpg: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/silence.mpg.
* TestWebKitAPI/Tests/WebKitGLib/resources/simple.json: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/simple.json.
* TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.pem: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test-cert.pem.
* TestWebKitAPI/Tests/WebKitGLib/resources/test-key.pem: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test-key.pem.
* TestWebKitAPI/Tests/WebKitGLib/resources/test.pdf: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test.pdf.
* TestWebKitAPI/Tests/WebKitGLib/resources/track.ogg: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/track.ogg.
* TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml: Added.
* TestWebKitAPI/glib/CMakeLists.txt: Added.
* TestWebKitAPI/glib/PlatformGTK.cmake: Added.
* TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp.
* TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.h.
* TestWebKitAPI/glib/WebKitGLib/TestMain.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp.
(registerGResource):
* TestWebKitAPI/glib/WebKitGLib/TestMain.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h.
(Test::getResourcesDir):
* TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.cpp.
* TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.h.
* TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.cpp.
* TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.h.
* TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp.
* TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h.

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

2 years ago[WPE] Add initial web extensions API
carlosgc@webkit.org [Thu, 22 Jun 2017 07:40:44 +0000 (07:40 +0000)]
[WPE] Add initial web extensions API
https://bugs.webkit.org/show_bug.cgi?id=173640

Reviewed by Žan Doberšek.

.:

* Source/cmake/OptionsWPE.cmake:

Source/WebKit2:

Build the glib web extensions API files and the builtin injected bundle library for WPE.

* PlatformWPE.cmake:
* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed): Use a different injected bundle filename in WPE and GTK+.
* WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
(webkit_web_page_class_init): Do not expose DOM bindings in WPE.
(webkitWebPageCreate): Ditto.
* WebProcess/InjectedBundle/API/wpe/WebKitConsoleMessage.h: Added.
* WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: Added.
* WebProcess/InjectedBundle/API/wpe/WebKitScriptWorld.h: Added.
* WebProcess/InjectedBundle/API/wpe/WebKitWebEditor.h: Added.
* WebProcess/InjectedBundle/API/wpe/WebKitWebExtension.h: Added.
* WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: Added.
* WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: Added.

Tools:

Add style checker exceptions for WPE web extensions API files.

* Scripts/webkitpy/style/checker.py:

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

2 years ago[GTK] Web Inspector: Add NavigationItemCheckers.svg
commit-queue@webkit.org [Thu, 22 Jun 2017 06:17:42 +0000 (06:17 +0000)]
[GTK] Web Inspector: Add NavigationItemCheckers.svg
https://bugs.webkit.org/show_bug.cgi?id=173692

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

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

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

2 years agoREGRESSION (r218419): 3 NSMutableDiciontary leaks calling -[WKProcessPool _pluginLoad...
ddkilzer@apple.com [Thu, 22 Jun 2017 04:46:42 +0000 (04:46 +0000)]
REGRESSION (r218419): 3 NSMutableDiciontary leaks calling -[WKProcessPool _pluginLoadClientPolicies]
<https://webkit.org/b/173689>

Reviewed by Chris Dumez.

Caught by the clang static analyzer.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(policiesHashMapToDictionary): Switch from using
[[NSMutableDictionary alloc] init] which returns a +1 retained
object in MRR to [NSMutableDictionary new] which returns an
autoreleased object under MRR.  This bug caused 3 leaks when
calling -[WKProcessPool _pluginLoadClientPolicies], which should
return an autoreleased object based on its signature.

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

2 years ago[Fetch API] TypeError when called with body === {}
commit-queue@webkit.org [Thu, 22 Jun 2017 04:31:12 +0000 (04:31 +0000)]
[Fetch API] TypeError when called with body === {}
https://bugs.webkit.org/show_bug.cgi?id=173295
<rdar://problem/32746733>

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Sam Weinig.

Source/WebCore:

Test: fetch/body-init.html

Handling body of Request and Response using binding generator to correctly handle unions.
The biggest change is that any value that is not a specific type in the union will match a String.
This is matching WebIDL spec and Firefox behavior.

Handling of ReadableStream bodies remains in JS builtin for Response.
This allows easier handling cloning and consumption of body.
Adding setBodyAsReadableStream since this is no longer handled by extractBody.

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::extract): Using Variant instead of JSC::JSValue.
(WebCore::FetchBody::readableStreamBody): Introduced to handle the
case of readable stream bodies.
* Modules/fetch/FetchBody.h:
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::extractBody):
* Modules/fetch/FetchBodyOwner.h:
(WebCore::FetchBodyOwner::setBody):
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::setBody): Splitting setBody for ease of readability.
(WebCore::FetchRequest::setBodyFromInputRequest):
* Modules/fetch/FetchRequest.h:
* Modules/fetch/FetchRequest.idl:
* Modules/fetch/FetchRequest.js:
(initializeFetchRequest):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::initializeWith):
(WebCore::FetchResponse::setBodyAsReadableStream):
* Modules/fetch/FetchResponse.h:
* Modules/fetch/FetchResponse.idl:
* Modules/fetch/FetchResponse.js:
(initializeFetchResponse):
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

* fetch/body-init-expected.txt: Added.
* fetch/body-init.html: Added.

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

2 years agoAdd release assertions help diagnose a hang in CallbackMap
rniwa@webkit.org [Thu, 22 Jun 2017 02:44:13 +0000 (02:44 +0000)]
Add release assertions help diagnose a hang in CallbackMap
https://bugs.webkit.org/show_bug.cgi?id=173680
<rdar://problem/32911286>

Reviewed by Chris Dumez.

Assert that these functions are only called in the main thread and the empty value is never used as a key.

* UIProcess/GenericCallback.h:
(WebKit::CallbackMap::put):
(WebKit::CallbackMap::take):

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

2 years agoAdd z-index to compositing logging output
simon.fraser@apple.com [Thu, 22 Jun 2017 02:24:09 +0000 (02:24 +0000)]
Add z-index to compositing logging output
https://bugs.webkit.org/show_bug.cgi?id=173684

Reviewed by Zalan Bujtas.

Show z-index, which is often useful to find negative z-index items.

Log "+foreground" rather than "foreground" to indicate that this layer has an
additional foreground/background layer, and fix spacing.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):

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

2 years agoArrayPrototype.map builtin declares a var it does not use
sbarati@apple.com [Thu, 22 Jun 2017 02:22:12 +0000 (02:22 +0000)]
ArrayPrototype.map builtin declares a var it does not use
https://bugs.webkit.org/show_bug.cgi?id=173685

Reviewed by Keith Miller.

* builtins/ArrayPrototype.js:
(map):

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

2 years agoeval virtual call is incorrect in the baseline JIT
sbarati@apple.com [Thu, 22 Jun 2017 01:54:45 +0000 (01:54 +0000)]
eval virtual call is incorrect in the baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=173587
<rdar://problem/32867897>

Reviewed by Michael Saboff.

JSTests:

* stress/do-eval-virtual-call-correctly.js: Added.
(assert):
(f):
(i.test):
(catch):

Source/JavaScriptCore:

When making a virtual call for call_eval, e.g, when the thing
we're calling isn't actually eval, we end up calling the caller
instead of the callee. This is clearly wrong. The code ends up
issuing a load for the Callee in the callers frame instead of
the callee we're calling. The fix is simple, we just need to
load the real callee. Only the 32-bit baseline JIT had this bug.

* jit/JITCall32_64.cpp:
(JSC::JIT::compileCallEvalSlowCase):

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

2 years ago[iOS DnD] [WK2] Cancelling a drag interaction using the ObjC SPI causes subsequent...
wenson_hsieh@apple.com [Thu, 22 Jun 2017 01:41:36 +0000 (01:41 +0000)]
[iOS DnD] [WK2] Cancelling a drag interaction using the ObjC SPI causes subsequent dragging to fail
https://bugs.webkit.org/show_bug.cgi?id=173659
<rdar://problem/32879788>

Reviewed by Tim Horton.

Source/WebKit2:

Currently, a drag session that failed to begin is cleaned up either when the web process responds in
-[WKContentView _didHandleStartDataInteractionRequest:] with started = NO, or if started is YES, in
-dragInteraction:session:didEndWithOperation: instead. However, it is possible that even when the pasteboard has
items and the drag has started in the web process, something in the UI process may then cause the drag to be
cancelled (for instance, an SPI client returning empty arrays for all adjusted item providers, or UIKit not even
calling into -dragInteraction:itemsForBeginningSession: when we invoke their completion block).

In any case, if the drag session is drag-item-less after calling the drag start completion block, clean up and
cancel the drag.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didHandleStartDataInteractionRequest:]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):

Tools:

Adds a new test to verify that a lift cancelled within the UI process does not cause subsequent dragging to fail.

* TestWebKitAPI/Tests/WebKit2Cocoa/link-and-target-div.html:

Augment this test page to log dragend and dragstart events on the drag source as well.

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

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

2 years agoUnreviewed, fix Window Debug build after r218660.
cdumez@apple.com [Thu, 22 Jun 2017 01:25:50 +0000 (01:25 +0000)]
Unreviewed, fix Window Debug build after r218660.

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForWithReason):

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

2 years agoUpdate libyuv to 8cab2e31d76246263206318f3568d452e7f3ff3e
commit-queue@webkit.org [Thu, 22 Jun 2017 01:22:40 +0000 (01:22 +0000)]
Update libyuv to 8cab2e31d76246263206318f3568d452e7f3ff3e
https://bugs.webkit.org/show_bug.cgi?id=173675

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Sam Weinig.

* Source/third_party/libyuv/.clang-format: Added.
* Source/third_party/libyuv/.gitignore: Added.
* Source/third_party/libyuv/Android.mk:
* Source/third_party/libyuv/BUILD.gn:
* Source/third_party/libyuv/CM_linux_packages.cmake: Added.
* Source/third_party/libyuv/CMakeLists.txt:
* Source/third_party/libyuv/DEPS:
* Source/third_party/libyuv/PRESUBMIT.py:
(_RunPythonTests):
(_RunPythonTests.join):
(_CommonChecks):
(CheckChangeOnUpload):
(CheckChangeOnCommit):
* Source/third_party/libyuv/README.chromium:
* Source/third_party/libyuv/build_overrides/build.gni:
* Source/third_party/libyuv/chromium/.gclient: Removed.
* Source/third_party/libyuv/chromium/README: Removed.
* Source/third_party/libyuv/cleanup_links.py: Added.
(WebRTCLinkSetup):
(WebRTCLinkSetup.__init__):
(WebRTCLinkSetup.CleanupLinks):
(_initialize_database):
(main):
* Source/third_party/libyuv/codereview.settings:
* Source/third_party/libyuv/docs/deprecated_builds.md:
* Source/third_party/libyuv/docs/getting_started.md:
* Source/third_party/libyuv/gyp_libyuv.py:
* Source/third_party/libyuv/include/libyuv/basic_types.h:
* Source/third_party/libyuv/include/libyuv/compare.h:
* Source/third_party/libyuv/include/libyuv/compare_row.h:
* Source/third_party/libyuv/include/libyuv/convert.h:
* Source/third_party/libyuv/include/libyuv/convert_argb.h:
* Source/third_party/libyuv/include/libyuv/convert_from.h:
* Source/third_party/libyuv/include/libyuv/convert_from_argb.h:
* Source/third_party/libyuv/include/libyuv/cpu_id.h:
* Source/third_party/libyuv/include/libyuv/macros_msa.h:
* Source/third_party/libyuv/include/libyuv/mjpeg_decoder.h:
* Source/third_party/libyuv/include/libyuv/planar_functions.h:
* Source/third_party/libyuv/include/libyuv/rotate.h:
* Source/third_party/libyuv/include/libyuv/rotate_argb.h:
* Source/third_party/libyuv/include/libyuv/rotate_row.h:
* Source/third_party/libyuv/include/libyuv/row.h:
* Source/third_party/libyuv/include/libyuv/scale.h:
* Source/third_party/libyuv/include/libyuv/scale_argb.h:
* Source/third_party/libyuv/include/libyuv/scale_row.h:
* Source/third_party/libyuv/include/libyuv/version.h:
* Source/third_party/libyuv/include/libyuv/video_common.h:
* Source/third_party/libyuv/infra/config/OWNERS: Added.
* Source/third_party/libyuv/infra/config/README.md: Added.
* Source/third_party/libyuv/infra/config/cq.cfg: Added.
* Source/third_party/libyuv/libyuv.gyp:
* Source/third_party/libyuv/libyuv.gypi:
* Source/third_party/libyuv/libyuv_test.gyp:
* Source/third_party/libyuv/linux.mk:
* Source/third_party/libyuv/pylintrc: Added.
* Source/third_party/libyuv/setup_links.py: Removed.
* Source/third_party/libyuv/source/compare.cc:
* Source/third_party/libyuv/source/compare_common.cc:
* Source/third_party/libyuv/source/compare_gcc.cc:
* Source/third_party/libyuv/source/compare_neon.cc:
* Source/third_party/libyuv/source/compare_neon64.cc:
* Source/third_party/libyuv/source/compare_win.cc:
* Source/third_party/libyuv/source/convert.cc:
* Source/third_party/libyuv/source/convert_argb.cc:
* Source/third_party/libyuv/source/convert_from.cc:
* Source/third_party/libyuv/source/convert_from_argb.cc:
* Source/third_party/libyuv/source/convert_jpeg.cc:
* Source/third_party/libyuv/source/convert_to_argb.cc:
* Source/third_party/libyuv/source/convert_to_i420.cc:
* Source/third_party/libyuv/source/cpu_id.cc:
* Source/third_party/libyuv/source/mjpeg_decoder.cc:
* Source/third_party/libyuv/source/mjpeg_validate.cc:
* Source/third_party/libyuv/source/planar_functions.cc:
* Source/third_party/libyuv/source/rotate.cc:
* Source/third_party/libyuv/source/rotate_any.cc:
* Source/third_party/libyuv/source/rotate_argb.cc:
* Source/third_party/libyuv/source/rotate_common.cc:
* Source/third_party/libyuv/source/rotate_dspr2.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/source/rotate_mips.cc.
* Source/third_party/libyuv/source/rotate_gcc.cc:
* Source/third_party/libyuv/source/rotate_msa.cc: Added.
* Source/third_party/libyuv/source/rotate_neon.cc:
* Source/third_party/libyuv/source/rotate_neon64.cc:
* Source/third_party/libyuv/source/rotate_win.cc:
* Source/third_party/libyuv/source/row_any.cc:
* Source/third_party/libyuv/source/row_common.cc:
* Source/third_party/libyuv/source/row_dspr2.cc: Added.
* Source/third_party/libyuv/source/row_gcc.cc:
* Source/third_party/libyuv/source/row_mips.cc: Removed.
* Source/third_party/libyuv/source/row_msa.cc:
* Source/third_party/libyuv/source/row_neon.cc:
* Source/third_party/libyuv/source/row_neon64.cc:
* Source/third_party/libyuv/source/row_win.cc:
* Source/third_party/libyuv/source/scale.cc:
* Source/third_party/libyuv/source/scale_any.cc:
* Source/third_party/libyuv/source/scale_argb.cc:
* Source/third_party/libyuv/source/scale_common.cc:
* Source/third_party/libyuv/source/scale_dspr2.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/source/scale_mips.cc.
* Source/third_party/libyuv/source/scale_gcc.cc:
* Source/third_party/libyuv/source/scale_msa.cc: Added.
* Source/third_party/libyuv/source/scale_neon.cc:
* Source/third_party/libyuv/source/scale_neon64.cc:
* Source/third_party/libyuv/source/scale_win.cc:
* Source/third_party/libyuv/source/video_common.cc:
* Source/third_party/libyuv/sync_chromium.py: Removed.
* Source/third_party/libyuv/third_party/gflags/BUILD.gn: Removed.
* Source/third_party/libyuv/third_party/gflags/LICENSE: Removed.
* Source/third_party/libyuv/third_party/gflags/README.libyuv: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_completions.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_declare.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_gflags.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/posix/include/private/config.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_completions.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_declare.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_gflags.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gen/win/include/private/config.h: Removed.
* Source/third_party/libyuv/third_party/gflags/gflags.gyp: Removed.
* Source/third_party/libyuv/tools/gritsettings/README: Removed.
* Source/third_party/libyuv/tools/gritsettings/resource_ids: Removed.
* Source/third_party/libyuv/tools/valgrind-libyuv/tsan/OWNERS: Removed.
* Source/third_party/libyuv/tools/valgrind-libyuv/tsan/PRESUBMIT.py: Removed.
* Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions.txt: Removed.
* Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions_mac.txt: Removed.
* Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions_win32.txt: Removed.
* Source/third_party/libyuv/tools_libyuv/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/OWNERS.
* Source/third_party/libyuv/tools_libyuv/autoroller/roll_deps.py: Added.
(RollError):
(ParseDepsDict):
(ParseLocalDepsFile):
(ParseRemoteCrDepsFile):
(ParseCommitPosition):
(_RunCommand):
(_GetBranches):
(_ReadGitilesContent):
(ReadRemoteCrFile):
(ReadRemoteCrCommit):
(ReadUrlContent):
(GetMatchingDepsEntries):
(BuildDepsentryDict):
(BuildDepsentryDict.AddDepsEntries):
(CalculateChangedDeps):
(CalculateChangedClang):
(CalculateChangedClang.GetClangRev):
(GenerateCommitMessage):
(UpdateDepsFile):
(_IsTreeClean):
(_EnsureUpdatedMasterBranch):
(_CreateRollBranch):
(_RemovePreviousRollBranch):
(_LocalCommit):
(_UploadCL):
(_SendToCQ):
(main):
* Source/third_party/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py: Added.
(TestError):
(FakeCmd):
(FakeCmd.__init__):
(FakeCmd.add_expectation):
(FakeCmd.__call__):
(TestRollChromiumRevision):
(TestRollChromiumRevision.setUp):
(TestRollChromiumRevision.tearDown):
(TestRollChromiumRevision.testUpdateDepsFile):
(TestRollChromiumRevision.testParseDepsDict):
(TestRollChromiumRevision.testParseDepsDict.assertVar):
(TestRollChromiumRevision.testGetMatchingDepsEntriesReturnsPathInSimpleCase):
(TestRollChromiumRevision.testGetMatchingDepsEntriesHandlesSimilarStartingPaths):
(TestRollChromiumRevision.testGetMatchingDepsEntriesHandlesTwoPathsWithIdenticalFirstParts):
(TestRollChromiumRevision.testCalculateChangedDeps):
(_SetupGitLsRemoteCall):
* Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS: Added.
* Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.new: Added.
* Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old: Added.
* Source/third_party/libyuv/tools_libyuv/get_landmines.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/get_landmines.py.
* Source/third_party/libyuv/tools_libyuv/msan/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/msan/OWNERS.
* Source/third_party/libyuv/tools_libyuv/msan/blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/msan/blacklist.txt.
* Source/third_party/libyuv/tools_libyuv/ubsan/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/OWNERS.
* Source/third_party/libyuv/tools_libyuv/ubsan/blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/blacklist.txt.
* Source/third_party/libyuv/tools_libyuv/ubsan/vptr_blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/vptr_blacklist.txt.
* Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.bat: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.bat.
* Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.py.
(LibyuvTest._DefaultCommand):
* Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.sh.
* Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/OWNERS.
* Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/PRESUBMIT.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/PRESUBMIT.py.
(CheckChange):
* Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions.txt.
* Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions_mac.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions_mac.txt.
* Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions_win32.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions_win32.txt.
* Source/third_party/libyuv/unit_test/color_test.cc:
* Source/third_party/libyuv/unit_test/compare_test.cc:
* Source/third_party/libyuv/unit_test/convert_test.cc:
* Source/third_party/libyuv/unit_test/cpu_test.cc:
* Source/third_party/libyuv/unit_test/cpu_thread_test.cc: Added.
* Source/third_party/libyuv/unit_test/math_test.cc:
* Source/third_party/libyuv/unit_test/planar_test.cc:
* Source/third_party/libyuv/unit_test/rotate_argb_test.cc:
* Source/third_party/libyuv/unit_test/rotate_test.cc:
* Source/third_party/libyuv/unit_test/scale_argb_test.cc:
* Source/third_party/libyuv/unit_test/scale_test.cc:
* Source/third_party/libyuv/unit_test/unit_test.cc:
* Source/third_party/libyuv/unit_test/unit_test.h:
(SizeValid):
* Source/third_party/libyuv/unit_test/video_common_test.cc:
* Source/third_party/libyuv/util/compare.cc:
* Source/third_party/libyuv/util/cpuid.c:
(main):
* Source/third_party/libyuv/util/psnr.cc:
* Source/third_party/libyuv/util/psnr_main.cc:
* Source/third_party/libyuv/util/ssim.cc:
* Source/third_party/libyuv/util/ssim.h:
* Source/third_party/libyuv/util/yuvconvert.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/util/convert.cc.

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

2 years agoIncrease memory kill limits for WebContent processes that manage multiple tabs.
akling@apple.com [Thu, 22 Jun 2017 01:09:26 +0000 (01:09 +0000)]
Increase memory kill limits for WebContent processes that manage multiple tabs.
https://bugs.webkit.org/show_bug.cgi?id=173674

Reviewed by Geoffrey Garen.

Source/WebCore:

Plumb the non-utility Page count down to WTF::MemoryPressureHandler.

* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):

Source/WTF:

When opening <a target=_blank> links, we currently have to use the same WebContent
process for the new tab, to support scripting the window.opener object.
This means that some WebContent processes end up hosting multiple tabs, making it
more likely that those processes will hit the memory limits.

Address this by adding some additional allowance for multi-tab processes:

    For each additional tab, up to 4 tabs, add 1GB to the memory kill limit.

* wtf/MemoryPressureHandler.cpp:
(WTF::thresholdForMemoryKillWithProcessState):
(WTF::MemoryPressureHandler::setTabCount):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):
(WTF::MemoryPressureHandler::measurementTimerFired):
* wtf/MemoryPressureHandler.h:

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

2 years ago[WebCrypto] Restore ordering of CryptoAlgorithmIdentifier in SerializedScriptValue
jiewen_tan@apple.com [Thu, 22 Jun 2017 00:40:58 +0000 (00:40 +0000)]
[WebCrypto] Restore ordering of CryptoAlgorithmIdentifier in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=173678
<rdar://problem/32879314>

Reviewed by Sam Weinig.

r218030 reorders the ordering of CryptoAlgorithmIdentifier in SerializedScriptValue,
which introduces backward compatibility issues with CryptoKey objects stored in the
IndexedDB. Hence, we should restore it back.

No tests.

* bindings/js/SerializedScriptValue.cpp:

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

2 years agoChange FrameLoadRequest from a struct to a class
dbates@webkit.org [Thu, 22 Jun 2017 00:27:51 +0000 (00:27 +0000)]
Change FrameLoadRequest from a struct to a class

FrameLoadRequest is underutilizing the purpose of a struct - default visibility of
members is public, as FrameLoadRequest explicitly groups its members under public:
or private: sections. Maybe in the future we can make FrameLoadRequest a struct
with only public members. For now, we should consider FrameLoadRequest a class.

* loader/FormSubmission.h:
* loader/FrameLoadRequest.h:
* loader/FrameLoader.h:
* page/Chrome.h:
* page/ChromeClient.h:
* replay/UserInputBridge.h:

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

2 years agoCompiler error while building with !HAVE(ACCESSIBILITY)
commit-queue@webkit.org [Thu, 22 Jun 2017 00:25:06 +0000 (00:25 +0000)]
Compiler error while building with !HAVE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=173670

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-06-21
Reviewed by Chris Fleizach.

* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::childrenChanged):

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

2 years agoBuild fix.
graouts@webkit.org [Thu, 22 Jun 2017 00:24:38 +0000 (00:24 +0000)]
Build fix.

Reviewed by Tim "Mr. T" Horton.

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::logSuspendCount):
* page/Page.cpp:
(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):

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

2 years agoEnsure DRT always logs rAF suspension debugging code
graouts@webkit.org [Wed, 21 Jun 2017 23:55:15 +0000 (23:55 +0000)]
Ensure DRT always logs rAF suspension debugging code
https://bugs.webkit.org/show_bug.cgi?id=173681

Reviewed by Tim "Mr. T" Horton.

Source/WebCore:

Instead of using a setting to check whether we should log information related to rAF
callbacks being suspended with WK1, we now check whether we're using in DRT to avoid
any potential issue with settings being in the incorrect state when a test is run.

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::logSuspendCount):
* page/Page.cpp:
(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):
* page/Settings.in:
* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::MacApplication::isDumpRenderTree):

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences shouldLogScriptedAnimationControllerSuspensionChange]): Deleted.
(-[WebPreferences setShouldLogScriptedAnimationControllerSuspensionChange:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):

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

2 years agoAllow constructing a WTF:Function from a function pointer
cdumez@apple.com [Wed, 21 Jun 2017 22:53:14 +0000 (22:53 +0000)]
Allow constructing a WTF:Function from a function pointer
https://bugs.webkit.org/show_bug.cgi?id=173660

Reviewed by Alex Christensen.

Source/WebCore:

Construct WTF:Function directly from a function pointer when possible
instead of constructing a lambda to do so.

* Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::InitDataRegistry::InitDataRegistry):
* page/Page.cpp:
* page/mac/PageMac.mm:
(WebCore::Page::platformInitialize):
* platform/cf/MainThreadSharedTimerCF.cpp:
(WebCore::setupPowerObserver):
* platform/mac/WebCoreNSURLExtras.mm:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForWithReason):
* workers/Worker.cpp:
(WebCore::Worker::Worker):

Source/WTF:

Allow constructing a WTF:Function from a function pointer and
assigning a function pointer to a WTF:Function.

* wtf/Function.h:

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WTF/Function.cpp:
(TestWebKitAPI::returnThree):
(TestWebKitAPI::returnFour):
(TestWebKitAPI::returnPassedValue):
(TestWebKitAPI::TEST):

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

2 years agoFix build after r218645
commit-queue@webkit.org [Wed, 21 Jun 2017 22:13:19 +0000 (22:13 +0000)]
Fix build after r218645
https://bugs.webkit.org/show_bug.cgi?id=173668

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21

* Source/webrtc/base/sigslottester.h: Removing executable right.
* Source/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h:
(webrtc::TemporalLayersFactory::Create): Inline a default implementation.
* Source/webrtc/modules/video_processing/util/skin_detection.h: Removing executable right.

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

2 years agoREGRESSION (r218606): 3D Touch action menu for links is missing items
timothy_horton@apple.com [Wed, 21 Jun 2017 22:11:07 +0000 (22:11 +0000)]
REGRESSION (r218606): 3D Touch action menu for links is missing items
https://bugs.webkit.org/show_bug.cgi?id=173669
<rdar://problem/32905541>

Reviewed by Wenson Hsieh.

* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
defaultActionsForLinkSheet is used outside the usual action sheet flow,
by 3D Touch code. Therefore, we're not guaranteed to have a _positionInformation.
We don't need one, though -- we can get the URL from the passed-in
_WKActivatedElementInfo, exactly like defaultActionsForImageSheet already did.

(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
Remove the delegate null check, which isn't used after r218606.

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

2 years agoCSS text properties affect <video> shadow root
commit-queue@webkit.org [Wed, 21 Jun 2017 21:55:27 +0000 (21:55 +0000)]
CSS text properties affect <video> shadow root
https://bugs.webkit.org/show_bug.cgi?id=173664
<rdar://problem/32904328>

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

Source/WebCore:

Ensure that we reset all inheritable styles back to their initial value for media shadow roots.

Test: media/modern-media-controls/time-label/time-label-inherited-text-indent.html

* Modules/modern-media-controls/controls/media-controls.css:
(.media-controls-container):

LayoutTests:

Add a test that ensures that setting an inheritable style on the <video> does not affect
time labels within the shadow root.

* media/modern-media-controls/time-label/time-label-inherited-text-indent-expected.txt: Added.
* media/modern-media-controls/time-label/time-label-inherited-text-indent.html: Added.

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

2 years agoWeb Inspector: Using "break on all exceptions" when throwing stack overflow hangs...
commit-queue@webkit.org [Wed, 21 Jun 2017 21:32:44 +0000 (21:32 +0000)]
Web Inspector: Using "break on all exceptions" when throwing stack overflow hangs inspector
https://bugs.webkit.org/show_bug.cgi?id=172432
<rdar://problem/29870873>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-06-21
Reviewed by Saam Barati.

Source/JavaScriptCore:

Avoid pausing on StackOverflow and OutOfMemory errors to avoid a hang.
We will proceed to improve debugging of these cases in the follow-up bugs.

* debugger/Debugger.cpp:
(JSC::Debugger::exception):
Ignore pausing on these errors.

* runtime/ErrorInstance.h:
(JSC::ErrorInstance::setStackOverflowError):
(JSC::ErrorInstance::isStackOverflowError):
(JSC::ErrorInstance::setOutOfMemoryError):
(JSC::ErrorInstance::isOutOfMemoryError):
* runtime/ExceptionHelpers.cpp:
(JSC::createStackOverflowError):
* runtime/Error.cpp:
(JSC::createOutOfMemoryError):
Mark these kinds of errors.

LayoutTests:

* inspector/debugger/no-pause-out-of-memory-exception-expected.txt: Added.
* inspector/debugger/no-pause-out-of-memory-exception.html: Added.
* inspector/debugger/no-pause-stack-overflow-exception-expected.txt: Added.
* inspector/debugger/no-pause-stack-overflow-exception.html: Added.

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

2 years agoRemove WILL_REVEAL_EDGE_EVENTS code
simon.fraser@apple.com [Wed, 21 Jun 2017 21:29:21 +0000 (21:29 +0000)]
Remove WILL_REVEAL_EDGE_EVENTS code
https://bugs.webkit.org/show_bug.cgi?id=173632

Reviewed by Sam Weinig, Beth Dakin.

Remove will-reveal-edge events, which never took off.

Source/WebCore:

* dom/Document.cpp:
(WebCore::Document::clearScriptedAnimationController):
(WebCore::Document::sendWillRevealEdgeEventsIfNeeded): Deleted.
* dom/Document.h:
* dom/GlobalEventHandlers.idl:
* html/HTMLBodyElement.idl:
* html/HTMLFrameSetElement.idl:
* page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):

Source/WTF:

* wtf/FeatureDefines.h:

LayoutTests:

* fast/events/will-reveal-edge-on-div-expected.txt: Removed.
* fast/events/will-reveal-edge-on-div.html: Removed.
* fast/events/will-reveal-edges-body-attributes-expected.txt: Removed.
* fast/events/will-reveal-edges-body-attributes.html: Removed.
* fast/events/will-reveal-edges-event-listeners-expected.txt: Removed.
* fast/events/will-reveal-edges-event-listeners.html: Removed.
* fast/events/will-reveal-edges-window-attributes-expected.txt: Removed.
* fast/events/will-reveal-edges-window-attributes.html: Removed.

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

2 years agoCleanup FrameLoadRequest
dbates@webkit.org [Wed, 21 Jun 2017 21:19:05 +0000 (21:19 +0000)]
Cleanup FrameLoadRequest
https://bugs.webkit.org/show_bug.cgi?id=173564
<rdar://problem/32903570>

Reviewed by Brent Fulgham.

Source/WebCore:

FrameLoadRequest has too many constructors. Use default values to reduce the number of
constructors. Have FrameLoadRequest hold a Ref<SecurityOrigin> instead of a RefPtr<SecurityOrigin>
as FrameLoadRequest must always hold a valid SecurityOrigin, the security origin of the
document that initiated the request.

* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab): Explicitly pass the null-string for
the target frame name as we do not have one. Use C++11 brace initialization syntax and ASCIILiteral().
Rename local variable from request to frameLoadRequest to better describe its purpose. Fix up
FIXME comment added in r105600 to better describe the issue we should fix as the code as
changed since the FIXME was added.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate): No need to pass ShouldReplaceDocumentIfJavaScriptURL::ReplaceDocumentIfJavaScriptURL
now that the FrameLoadRequests constructor uses this policy by default. Use C++11 brace
initialization syntax and ASCIILiteral(). Rename local variable from frameRequest to frameLoadRequest
to better describe its purpose.
* loader/FrameLoadRequest.cpp:
(WebCore::FrameLoadRequest::FrameLoadRequest): Use C++11 brace initialization syntax.
* loader/FrameLoadRequest.h: Remove many constructor overloads. Changed m_requester from
RefPtr<SecurityOrigin> to Ref<SecurityOrigin> as we can never be instantiated with a null
SecurityOrigin. Moved m_shouldCheckNewWindowPolicy to be under ShouldOpenExternalURLsPolicy
to reduce the size of the class by 8 bytes.
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest): Added copy constructor as we must use Ref::copyRef()
to copy the Ref<SecurityOrigin>.
(WebCore::FrameLoadRequest::requester): Return a const SecurityOrigin& instead of a const SecurityOrigin*.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected): Update now that the order of the ShouldReplaceDocumentIfJavaScriptURL
and ShouldOpenExternalURLsPolicy arguments in the FrameLoadRequest constructor has changed.
(WebCore::FrameLoader::loadURLIntoChildFrame): Ditto. Also use C++11 brace initialization syntax
and ASCIILiteral().
(WebCore::FrameLoader::loadFrameRequest): Update code now that FrameLoadRequest::requester() returns a
SecurityOrigin& instead of a SecurityOrigin*. Use C++11 brace initialization syntax.
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange): Use C++11 brace initialization syntax.
Rename local variable from frameRequest to frameLoadRequest to better describe its purpose.
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected): ove FrameLoadRequest instantiation
into a local variable and use C++11 brace initialization syntax to make it easier to identify
the arguments passed to FrameLoader::loadFrameRequest().
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow): Update now that the order of the ShouldReplaceDocumentIfJavaScriptURL
and ShouldOpenExternalURLsPolicy arguments in the FrameLoadRequest constructor has changed.
Use C++11 brace initialization syntax and ASCIILiteral(). Rename some local variables to better
describe their purpose.

Source/WebKit/ios:

Move FrameLoadRequest instantiation into a local variable and use C++11 brace initialization
syntax to make it easier to identify the arguments passed to FrameLoader::loadFrameRequest().

* WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]): Move FrameLoadRequest instantiation
into a local variable and use C++11 brace initialization syntax to make it easier to identify
the arguments passed to FrameLoader::loadFrameRequest().

Source/WebKit/win:

* Plugins/PluginView.cpp:
(WebCore::PluginView::start): Explicitly pass an empty ResourceRequest (we populate it after
we instantiate the FrameLoadRequest) and pass the null-string for the target frame name as
we do not have one. Use C++11 brace initialization syntax.
(WebCore::PluginView::getURLNotify): Explicitly pass the null-string for the target frame
name as we do not have one. Use C++11 brace initialization syntax.
(WebCore::PluginView::getURL): Ditto.
(WebCore::PluginView::handlePost): Move instantiation of FrameLoadRequest from the top of the
function to closer to where it is actually used. Explicitly pass the null-string for the target
frame name as we do not have one. Use C++11 brace initialization syntax.

Source/WebKit2:

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::loadURL): Explicitly pass the null-string for the target frame
name as we do not have one. Use C++11 brace initialization syntax.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage): Ditto.
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab): It is no longer necessary to pass ReplaceDocumentIfJavaScriptURL
when instantiating the FrameLoadRequest as it defaults to this policy. Use C++11 brace initialization syntax.

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

2 years agosvgPath.getTotalLength() freezes webkit
simon.fraser@apple.com [Wed, 21 Jun 2017 21:13:58 +0000 (21:13 +0000)]
svgPath.getTotalLength() freezes webkit
https://bugs.webkit.org/show_bug.cgi?id=173566
<rdar://problem/32866731>

Reviewed by Dean Jackson.

Source/WebCore:

Ensure that curveLength() progresses by making split() return a bool indicating
whether either of the resulting curves are the same as the original. This can happen
when midPoint() on two close points returns a point that is the same as one of the
arguments because of floating-point precision limitations.

Test: svg/custom/path-getTotalLength-hang.html

* platform/graphics/PathTraversalState.cpp:
(WebCore::QuadraticBezier::operator ==):
(WebCore::QuadraticBezier::split):
(WebCore::CubicBezier::operator ==):
(WebCore::CubicBezier::split):
(WebCore::curveLength):

LayoutTests:

* svg/custom/path-getTotalLength-hang.html: Added.

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

2 years agoFix AVVideoCaptureSource frameRate setter and getter
commit-queue@webkit.org [Wed, 21 Jun 2017 21:06:21 +0000 (21:06 +0000)]
Fix AVVideoCaptureSource frameRate setter and getter
https://bugs.webkit.org/show_bug.cgi?id=173637

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

Covered by manual testing.

Using activeVideoMaxFrameDuration to get the frame rate.
Setting the frame rate according the given vale if in the allowed range.

* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::updateSettings):
(WebCore::AVVideoCaptureSource::applyFrameRate):
(WebCore::AVVideoCaptureSource::applySizeAndFrameRate):
(WebCore::AVVideoCaptureSource::shutdownCaptureSession):
(WebCore::AVVideoCaptureSource::processNewFrame):
(WebCore::AVVideoCaptureSource::updateFramerate): Deleted.

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

2 years agoRemove expat source code from Source/ThirdParty/libwebrtc
commit-queue@webkit.org [Wed, 21 Jun 2017 20:52:20 +0000 (20:52 +0000)]
Remove expat source code from Source/ThirdParty/libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=173656

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Brent Fulgham.

* Source/third_party/expat/BUILD.gn: Removed.
* Source/third_party/expat/OWNERS: Removed.
* Source/third_party/expat/README.chromium: Removed.
* Source/third_party/expat/files/COPYING: Removed.
* Source/third_party/expat/files/Changes: Removed.
* Source/third_party/expat/files/MANIFEST: Removed.
* Source/third_party/expat/files/README: Removed.
* Source/third_party/expat/files/lib/amigaconfig.h: Removed.
* Source/third_party/expat/files/lib/ascii.h: Removed.
* Source/third_party/expat/files/lib/asciitab.h: Removed.
* Source/third_party/expat/files/lib/expat.h: Removed.
* Source/third_party/expat/files/lib/expat_config.h: Removed.
* Source/third_party/expat/files/lib/expat_external.h: Removed.
* Source/third_party/expat/files/lib/iasciitab.h: Removed.
* Source/third_party/expat/files/lib/internal.h: Removed.
* Source/third_party/expat/files/lib/latin1tab.h: Removed.
* Source/third_party/expat/files/lib/libexpat.def: Removed.
* Source/third_party/expat/files/lib/libexpatw.def: Removed.
* Source/third_party/expat/files/lib/macconfig.h: Removed.
* Source/third_party/expat/files/lib/nametab.h: Removed.
* Source/third_party/expat/files/lib/utf8tab.h: Removed.
* Source/third_party/expat/files/lib/winconfig.h: Removed.
* Source/third_party/expat/files/lib/winconfig.h.original: Removed.
* Source/third_party/expat/files/lib/xmlparse.c: Removed.
* Source/third_party/expat/files/lib/xmlparse.c.original: Removed.
* Source/third_party/expat/files/lib/xmlrole.c: Removed.
* Source/third_party/expat/files/lib/xmlrole.h: Removed.
* Source/third_party/expat/files/lib/xmltok.c: Removed.
* Source/third_party/expat/files/lib/xmltok.h: Removed.
* Source/third_party/expat/files/lib/xmltok_impl.c: Removed.
* Source/third_party/expat/files/lib/xmltok_impl.c.original: Removed.
* Source/third_party/expat/files/lib/xmltok_impl.h: Removed.
* Source/third_party/expat/files/lib/xmltok_ns.c: Removed.
* Source/third_party/expat/fuzz/OWNERS: Removed.
* Source/third_party/expat/fuzz/expat_xml_parse_fuzzer.cc: Removed.

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

2 years agoRefresh libwebrtc code up to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae
commit-queue@webkit.org [Wed, 21 Jun 2017 20:40:33 +0000 (20:40 +0000)]
Refresh libwebrtc code up to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae
https://bugs.webkit.org/show_bug.cgi?id=173602

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

Source/ThirdParty/libwebrtc:

* Configurations/libwebrtc.xcconfig:
* Source: Updated to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae and reapplied WebKit specific changes.
* WebKit/patch-libwebrtc:
* libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No feature change.

Updated according small libwebrtc API changes.

* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::configurationFromMediaEndpointConfiguration):
* platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame):
* platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded):
(WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable):

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

2 years agoAdd support for structured serialization of CSS Geometry types
commit-queue@webkit.org [Wed, 21 Jun 2017 20:05:59 +0000 (20:05 +0000)]
Add support for structured serialization of CSS Geometry types
https://bugs.webkit.org/show_bug.cgi?id=173631

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

LayoutTests/imported/w3c:

* web-platform-tests/css/geometry-1/structured-serialization-expected.txt:
Update test results now that they pass.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/geometry-1/structured-serialization.html

Adds support for serializing the new geometry types as specified by:
https://drafts.fxtf.org/geometry-1/#structured-serialization

* WebCore.xcodeproj/project.pbxproj:
Move a few custom bindings into the "GC / Wrapping Only" since they have no more custom operations or attributes.

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpDOMPoint):
(WebCore::CloneSerializer::dumpDOMRect):
(WebCore::CloneSerializer::dumpDOMMatrix):
(WebCore::CloneSerializer::dumpDOMQuad):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::getJSValue):
(WebCore::CloneDeserializer::readDOMPoint):
(WebCore::CloneDeserializer::readDOMMatrix):
(WebCore::CloneDeserializer::readDOMRect):
(WebCore::CloneDeserializer::readDOMPointInit):
(WebCore::CloneDeserializer::readDOMQuad):
(WebCore::CloneDeserializer::readTerminal):
Add serialization/deserialization of the geometry types.

* css/DOMMatrix.cpp:
(WebCore::DOMMatrix::DOMMatrix):
* css/DOMMatrix.h:
(WebCore::DOMMatrix::create):
* css/DOMMatrixReadOnly.cpp:
(WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly):
* css/DOMMatrixReadOnly.h:
(WebCore::DOMMatrixReadOnly::create):
Add create functions and constructors that take a TransformationMatrix by r-value reference
so they can be moved into the DOM type.

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

2 years ago[iOS] Ensure that GraphicsServices is initialized before calling GSFontPurgeFontCache().
akling@apple.com [Wed, 21 Jun 2017 19:49:11 +0000 (19:49 +0000)]
[iOS] Ensure that GraphicsServices is initialized before calling GSFontPurgeFontCache().
https://bugs.webkit.org/show_bug.cgi?id=173616
<rdar://problem/30780050>

Reviewed by Chris Dumez.

Source/WebCore:

Fix for crash in GSFontPurgeFontCache() seen in apps embedding WebKit.
Ensure GSFontInitialize() has been called first, since the former depends on state
set up by this function.

* page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::platformReleaseMemory):
* platform/spi/ios/GraphicsServicesSPI.h:

WebKitLibraries:

* WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework/GraphicsServices.tbd:

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

2 years ago[iOS DnD] [WK2] Add drag-and-drop release logging around WKContentView
wenson_hsieh@apple.com [Wed, 21 Jun 2017 18:54:45 +0000 (18:54 +0000)]
[iOS DnD] [WK2] Add drag-and-drop release logging around WKContentView
https://bugs.webkit.org/show_bug.cgi?id=173636

Reviewed by Tim Horton.

Add logging at key points in the drag-and-drop lifecycle in the UI process, so that sysdiagnoses will contain
sufficient information to debug sparse failures.

* Platform/Logging.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didHandleStartDataInteractionRequest:]):
(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _didPerformDataInteractionControllerOperation:]):
(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):
(-[WKContentView dragInteraction:sessionWillBegin:]):
(-[WKContentView _api_dragInteraction:session:didEndWithOperation:]):
(-[WKContentView dropInteraction:canHandleSession:]):
(-[WKContentView _api_dropInteraction:sessionDidEnter:]):
(-[WKContentView dropInteraction:sessionDidExit:]):
(-[WKContentView dropInteraction:performDrop:]):
(-[WKContentView dropInteraction:sessionDidEnd:]):

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

2 years agoMake it clear that regenerating ICs are holding the CodeBlock's lock by passing the...
sbarati@apple.com [Wed, 21 Jun 2017 18:42:44 +0000 (18:42 +0000)]
Make it clear that regenerating ICs are holding the CodeBlock's lock by passing the locker as a parameter
https://bugs.webkit.org/show_bug.cgi?id=173609

Reviewed by Keith Miller.

This patch makes many of the IC generating functions require a locker as
a parameter. We do this in other places in JSC to indicate that
a particular API is only valid while a particular lock is held.
This is the case when generating ICs. This patch just makes it
explicit in the IC generating interface.

* bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::commit):
(JSC::PolymorphicAccess::regenerate):
* bytecode/PolymorphicAccess.h:
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::initStub): Deleted.
* bytecode/StructureStubInfo.h:
* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):

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

2 years agoAdd logging to identify when the Page suspends scripted animations
commit-queue@webkit.org [Wed, 21 Jun 2017 18:37:02 +0000 (18:37 +0000)]
Add logging to identify when the Page suspends scripted animations
https://bugs.webkit.org/show_bug.cgi?id=173626

Patch by Antoine Quint <graouts@apple.com> on 2017-06-21
Reviewed by Tim Horton.

Source/WebCore:

We have a longstanding issue that some media/modern-media-controls tests time out due to
requestAnimationFrame callbacks not being serviced, which is tracked by webkit.org/b/173628.
We added some logging to identify when ScriptedAnimationController would get suspended in
webkit.org/b/173326. This logging points to the fact that the reason rAF callbacks aren't
serviced is because Document::requestAnimationFrame() suspends rAF when the page reports
that scripted animations ought to be suspended, which is true when m_scriptedAnimationsSuspended
is true. This patch adds logging that tracks when this flag is set, provided a new setting
shouldLogScriptedAnimationControllerSuspensionChange is true.

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::logSuspendCount):
* page/Page.cpp:
(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):
* page/Settings.in:

Source/WebKit/mac:

Add a new preference to control the new shouldLogScriptedAnimationControllerSuspensionChange settings
through WebKit. This is specific to WK1 since the issue we're trying to pinpoint only occurs on WK1 bots.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences shouldLogScriptedAnimationControllerSuspensionChange]):
(-[WebPreferences setShouldLogScriptedAnimationControllerSuspensionChange:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

Turn the new logging on for WK1/DRT since the issue we're trying to pinpoint only occurs on WK1 bots.

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):

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

2 years agoImport W3C tests regarding navigation inside sandboxed iframes
commit-queue@webkit.org [Wed, 21 Jun 2017 17:08:02 +0000 (17:08 +0000)]
Import W3C tests regarding navigation inside sandboxed iframes
https://bugs.webkit.org/show_bug.cgi?id=173649

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-21
Reviewed by Youenn Fablet.

This import new tests added in https://github.com/w3c/web-platform-tests/pull/6221 to verify
sandboxing of iframes and will help to test the changes in bug 173162.

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/content_document_changes_only_after_load_matures-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/content_document_changes_only_after_load_matures.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-1-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-1.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-2-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-2.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_descendants-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_descendants.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_itself-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_itself.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-on-popup.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-tries-to-navigate-parent-and-sends-result-to-grandparent.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-tried-to-be-navigated-by-its-child.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-its-child.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-itself.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:

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

2 years ago[MSVC] Fix compilation in CP932 (Shift_JIS) environment
commit-queue@webkit.org [Wed, 21 Jun 2017 17:05:28 +0000 (17:05 +0000)]
[MSVC] Fix compilation in CP932 (Shift_JIS) environment
https://bugs.webkit.org/show_bug.cgi?id=173638

Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-06-21
Reviewed by Alex Christensen.

Give "/utf-8 /validate-charset" options to the MSVC compiler
to specify the source code encoding.

* Source/cmake/OptionsMSVC.cmake:

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

2 years ago[Curl] Extract CurlDownloadManager as shared background task handler
achristensen@apple.com [Wed, 21 Jun 2017 16:48:43 +0000 (16:48 +0000)]
[Curl] Extract CurlDownloadManager as shared background task handler
https://bugs.webkit.org/show_bug.cgi?id=173557

Curl resource handling should be shared by other part of Curl
network stack. CurlDownloadManager is extracted as stand alone
CurlManager singleton class to be ready for others
(i.e. ResourceHandle).

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

* PlatformWinCairo.cmake:
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForSession):
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::start):
(WebCore::CurlDownload::cancel):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::handleCurlMsg):
(WebCore::CurlDownloadManager::CurlDownloadManager): Deleted.
(WebCore::CurlDownloadManager::~CurlDownloadManager): Deleted.
(WebCore::CurlDownloadManager::add): Deleted.
(WebCore::CurlDownloadManager::remove): Deleted.
(WebCore::CurlDownloadManager::getActiveDownloadCount): Deleted.
(WebCore::CurlDownloadManager::getPendingDownloadCount): Deleted.
(WebCore::CurlDownloadManager::startThreadIfNeeded): Deleted.
(WebCore::CurlDownloadManager::stopThread): Deleted.
(WebCore::CurlDownloadManager::stopThreadIfIdle): Deleted.
(WebCore::CurlDownloadManager::updateHandleList): Deleted.
(WebCore::CurlDownloadManager::addToCurl): Deleted.
(WebCore::CurlDownloadManager::removeFromCurl): Deleted.
(WebCore::CurlDownloadManager::downloadThread): Deleted.
* platform/network/curl/CurlDownload.h:
(WebCore::CurlDownloadManager::getMultiHandle): Deleted.
(WebCore::CurlDownloadManager::runThread): Deleted.
(WebCore::CurlDownloadManager::setRunThread): Deleted.
* platform/network/curl/CurlManager.cpp: Added.
(WebCore::CurlManager::CurlManager):
(WebCore::CurlManager::~CurlManager):
(WebCore::CurlManager::add):
(WebCore::CurlManager::remove):
(WebCore::CurlManager::getActiveCount):
(WebCore::CurlManager::getPendingCount):
(WebCore::CurlManager::startThreadIfNeeded):
(WebCore::CurlManager::stopThread):
(WebCore::CurlManager::stopThreadIfIdle):
(WebCore::CurlManager::updateHandleList):
(WebCore::CurlManager::addToCurl):
(WebCore::CurlManager::removeFromCurl):
(WebCore::CurlManager::workerThread):
(WebCore::CurlUtils::getEffectiveURL):
(WebCore::CurlSharedResources::mutexFor):
(WebCore::CurlSharedResources::lock):
(WebCore::CurlSharedResources::unlock):
* platform/network/curl/CurlManager.h: Added.
(WebCore::CurlManager::singleton):
(WebCore::CurlManager::getCurlShareHandle):
(WebCore::CurlManager::getMultiHandle):
(WebCore::CurlManager::runThread):
(WebCore::CurlManager::setRunThread):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::~ResourceHandleManager):
(WebCore::handleLocalReceiveResponse):
(WebCore::getProtectionSpace):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::getCurlEffectiveURL): Deleted.
(WebCore::sharedResourceMutex): Deleted.
(WebCore::curl_lock_callback): Deleted.
(WebCore::curl_unlock_callback): Deleted.
(WebCore::ResourceHandleManager::getCurlShareHandle): Deleted.
* platform/network/curl/ResourceHandleManager.h:

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

2 years ago[WPE] Unreviewed gardening
csaavedra@igalia.com [Wed, 21 Jun 2017 16:25:16 +0000 (16:25 +0000)]
[WPE] Unreviewed gardening

Update expectations to known flaky http/appcache tests and also a
couple of flaky crashing tests.
* platform/wpe/TestExpectations:

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

2 years agoLayoutTests/imported/w3c/resources/import-expectations.json is broken after http...
commit-queue@webkit.org [Wed, 21 Jun 2017 16:19:10 +0000 (16:19 +0000)]
LayoutTests/imported/w3c/resources/import-expectations.json is broken after trac.webkit.org/changeset/218181
https://bugs.webkit.org/show_bug.cgi?id=173651

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

* resources/import-expectations.json: Fix the merge.

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

2 years agoInclude audio/vnd.wave as a valid mime-type for wav files.
commit-queue@webkit.org [Wed, 21 Jun 2017 16:04:51 +0000 (16:04 +0000)]
Include audio/vnd.wave as a valid mime-type for wav files.
https://bugs.webkit.org/show_bug.cgi?id=173635
rdar://problem/32656568

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-21
Reviewed by Eric Carlson.

audio/vnd.wave is a valid mime-type for wav files per https://tools.ietf.org/html/rfc2361

Updated test and test results:
LayoutTests/media/media-can-play-wav-audio.html

* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
(WebCore::mimeTypeAssociationMap):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mimeTypeSet):

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

2 years agoAX: Cannot call setValue() on contenteditable or ARIA text controls
cfleizach@apple.com [Wed, 21 Jun 2017 15:58:53 +0000 (15:58 +0000)]
AX: Cannot call setValue() on contenteditable or ARIA text controls
https://bugs.webkit.org/show_bug.cgi?id=173520

Reviewed by Ryosuke Niwa.

Source/WebCore:

Add support for changing the value of a contenteditable and any other aria text control in setValue().

Test: accessibility/set-value-editable-types.html

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::setValue):

Tools:

Add setValue() method to WKTR (already existed in DRT).

* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::setValue):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::setValue):

LayoutTests:

* accessibility/set-value-editable-types-expected.txt: Added.
* accessibility/set-value-editable-types.html: Added.

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

2 years agoDon't clear audio mute when muting capture.
commit-queue@webkit.org [Wed, 21 Jun 2017 15:56:06 +0000 (15:56 +0000)]
Don't clear audio mute when muting capture.
https://bugs.webkit.org/show_bug.cgi?id=173639
rdar://problem/32749737

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-21
Reviewed by Eric Carlson.

Setting capture mute was clearing audio mute.
Added setMediaStreamCaptureMuted to set just the capture mute bit.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _muteMediaCapture]):
* UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::muteCaptureMediaStreamsExceptIn):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setMediaStreamCaptureMuted):
* UIProcess/WebPageProxy.h:

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

2 years ago[GTK] Fix the condition to enable/disable GSTREAMER_GL
magomez@igalia.com [Wed, 21 Jun 2017 15:50:48 +0000 (15:50 +0000)]
[GTK] Fix the condition to enable/disable GSTREAMER_GL
https://bugs.webkit.org/show_bug.cgi?id=173650

Reviewed by Carlos Garcia Campos.

If GSTREAMER_GL is enabled, check for the GStreamer version. If the version is < 1.10, disable
GSTREAMER_GL and continue. If the version is >= 1.10 but there's no gstreamer-gl package available
then fail.

* Source/cmake/FindGStreamer.cmake:
* Source/cmake/OptionsGTK.cmake:

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

2 years ago[GTK] Enable GStreamer GL by default on production builds
magomez@igalia.com [Wed, 21 Jun 2017 12:33:17 +0000 (12:33 +0000)]
[GTK] Enable GStreamer GL by default on production builds
https://bugs.webkit.org/show_bug.cgi?id=173406

Reviewed by Carlos Garcia Campos.

Enable GStreamer GL by default when the GStreamer version >= 1.10.

* Source/cmake/OptionsGTK.cmake:

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

2 years ago[GTK][WAYLAND] Create WaylandCompositorDisplay unconditionally when initializing...
magomez@igalia.com [Wed, 21 Jun 2017 12:29:03 +0000 (12:29 +0000)]
[GTK][WAYLAND] Create WaylandCompositorDisplay unconditionally when initializing the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=173598

Reviewed by Carlos Garcia Campos.

Move WaylandCompositorDisplay code to its own files so it can be used from other classes. Then, instead of
storing the waylandCompositorDisplayName in the WebProcess, keep a WaylandCompositorDisplay instance that
is created during the initialization. This way the appropriate sharedDisplayForCompositing will be set
since the creation of the WebProcess.

* PlatformGTK.cmake:
* WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:
(WebKit::AcceleratedSurfaceWayland::create):
(WebKit::AcceleratedSurfaceWayland::AcceleratedSurfaceWayland):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::waylandCompositorDisplay):
* WebProcess/gtk/WaylandCompositorDisplay.cpp: Added.
(WebKit::WaylandCompositorDisplay::create):
(WebKit::WaylandCompositorDisplay::bindSurfaceToPage):
(WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay):
(WebKit::WaylandCompositorDisplay::registryGlobal):
* WebProcess/gtk/WaylandCompositorDisplay.h: Added.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):

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

2 years ago[GTK] Move WebGtkExtensionManager and WebGtkInjectedBundleMain to glib API dir
carlosgc@webkit.org [Wed, 21 Jun 2017 07:49:21 +0000 (07:49 +0000)]
[GTK] Move WebGtkExtensionManager and WebGtkInjectedBundleMain to glib API dir
https://bugs.webkit.org/show_bug.cgi?id=173606

Reviewed by Žan Doberšek.

.:

Update public symbols that were renamed.

* Source/cmake/gtksymbols.filter:

Source/WebKit2:

And rename them to use WebKit prefix instead of WebGtk.

* PlatformGTK.cmake:
* WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp: Renamed from Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.cpp.
(WebKit::WebKitExtensionManager::singleton):
(WebKit::WebKitExtensionManager::WebKitExtensionManager):
(WebKit::WebKitExtensionManager::scanModules):
(WebKit::WebKitExtensionManager::initializeWebExtension):
(WebKit::WebKitExtensionManager::initialize):
* WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h: Renamed from Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.h.
* WebProcess/InjectedBundle/API/glib/WebKitInjectedBundleMain.cpp: Renamed from Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp.
(WKBundleInitialize):

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

2 years agoList libtasn1 packages in GTK+ and WPE install-dependencies scripts
zandobersek@gmail.com [Wed, 21 Jun 2017 07:09:53 +0000 (07:09 +0000)]
List libtasn1 packages in GTK+ and WPE install-dependencies scripts
as one of the dependencies required to build the product.

Rubber-stamped by Carlos Garcia Campos.

* gtk/install-dependencies:
* wpe/install-dependencies:

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

2 years ago[GCrypt] Implement CryptoKeyEC SPKI imports
zandobersek@gmail.com [Wed, 21 Jun 2017 06:52:29 +0000 (06:52 +0000)]
[GCrypt] Implement CryptoKeyEC SPKI imports
https://bugs.webkit.org/show_bug.cgi?id=172927

Reviewed by Jiewen Tan, Michael Catanzaro and Carlos Garcia Campos.

.:

* Source/cmake/FindLibtasn1.cmake: Added.
* Source/cmake/OptionsGTK.cmake: Require libtasn1 when SUBTLE_CRYPTO is enabled.
* Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebCore:

No new tests -- affected tests are now passing and are unskipped.

Implement libgcrypt-based support for SPKI imports of EC keys.

Using libtasn1 through the utility functions and wrappers, the given key data
is decoded against the SubjectPublicKeyInfo ASN.1 definition. The algorithm
member is then properly validated, making sure that the key algorithm idenfitier
is supported and that the algorithm parameters specify the correct EC curve.

The public key bit string is then retrieved and validated, ensuring it represents
an uncompressed EC point that is of valid size for the specified EC curve. The
point is then tested through an EC context to make sure it's positioned on the
specified EC curve.

Finally, the curve name and uncompressed point data are embedded into a
`public-key` s-expression that will be used through the libgcrypt API. This is
then used, along with other information, to create a valid CryptoKeyEC object.

* PlatformGTK.cmake: Use LIBTASN1_INCLUDE_DIRECTORIES and LIBTASN1_LIBRARIES.
* PlatformWPE.cmake: Ditto.
* crypto/gcrypt/CryptoKeyECGCrypt.cpp:
(WebCore::supportedAlgorithmIdentifier):
(WebCore::curveForIdentifier):
(WebCore::CryptoKeyEC::platformImportSpki):

Source/WebCore/PAL:

Add a file that provides utility functions for operating with libtasn1 APIs.

The precomputed ASN.1 declarations, generated from the WebCrypto.asn file with
the asn1Parser tool, are used to enable construction of ASN.1 structures that
are then used to decode the SPKI or PKCS#8 data through the decodeStructure()
function. Raw data of each element in that structure can be retrieved throug the
elementData() function.

The Structure class is added as a wrapper for asn1_node objects that are used
as decoding targets, simplifying lifetime management of these objects.

* pal/PlatformGTK.cmake:
* pal/PlatformWPE.cmake:
* pal/crypto/tasn1/Utilities.cpp: Added.
(PAL::TASN1::asn1Definitions):
(PAL::TASN1::decodeStructure):
(PAL::TASN1::elementData):
* pal/crypto/tasn1/Utilities.h: Added.
(PAL::TASN1::Structure::~Structure):
(PAL::TASN1::Structure::operator&):
(PAL::TASN1::Structure::operator asn1_node):
* pal/crypto/tasn1/WebCrypto.asn: Added.

LayoutTests:

* platform/gtk/TestExpectations:
Unskip or enable the EC-based SPKI import tests that are now passing.

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

2 years agoPass the argument of DrawingArea::shouldUseTiledBackingForFrameView by reference
fred.wang@free.fr [Wed, 21 Jun 2017 06:24:50 +0000 (06:24 +0000)]
Pass the argument of DrawingArea::shouldUseTiledBackingForFrameView by reference
https://bugs.webkit.org/show_bug.cgi?id=173605

DrawingArea::shouldUseTiledBackingForFrameView is only called from
WebChromeClient::shouldUseTiledBackingForFrameView where the frame view is already available
as a reference. This patch makes the argument of
DrawingArea::shouldUseTiledBackingForFrameView a reference, so it does not need to be
converted to a pointer or to perform nullchecks.

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

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldUseTiledBackingForFrameView): Just pass the reference.
* WebProcess/WebPage/DrawingArea.h: Make the parameter a reference.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: Ditto.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: Ditto.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView): Use the reference
to frame view and remove the nullcheck.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::shouldUseTiledBackingForFrameView): Ditto.

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

2 years agoWebGPU contexts should have a back reference to the canvas element
drousso@apple.com [Wed, 21 Jun 2017 04:17:46 +0000 (04:17 +0000)]
WebGPU contexts should have a back reference to the canvas element
https://bugs.webkit.org/show_bug.cgi?id=173633

Reviewed by Jon Lee.

No tests added, as this is already implemented within other canvas types.

* html/canvas/WebGPURenderingContext.idl:

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

2 years agoWeb Inspector: change the selected ScopeBarItem on mousedown instead of click
drousso@apple.com [Wed, 21 Jun 2017 03:13:18 +0000 (03:13 +0000)]
Web Inspector: change the selected ScopeBarItem on mousedown instead of click
https://bugs.webkit.org/show_bug.cgi?id=173586

Reviewed by Matt Baker.

Both the Tab bar and Sidebar navigation bar switch the active item on "mousedown" instead of
on "click". ScopeBarItem should follow this pattern, as it is faster and keeps consistency.

* UserInterface/Views/MultipleScopeBarItem.js:
(WebInspector.MultipleScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype._handleMouseDown):
(WebInspector.MultipleScopeBarItem.prototype._clicked): Deleted.
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
(WebInspector.ScopeBarItem.prototype._handleMouseDown):
(WebInspector.ScopeBarItem.prototype._clicked): Deleted.

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

2 years agoWebAudioSourceProvider should be thread safe ref counted
commit-queue@webkit.org [Wed, 21 Jun 2017 03:05:39 +0000 (03:05 +0000)]
WebAudioSourceProvider should be thread safe ref counted
https://bugs.webkit.org/show_bug.cgi?id=173623

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

No observable change of behavior.

* platform/mediastream/WebAudioSourceProvider.h:

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

2 years ago[preload] Turn on preload's feature flag by default.
yoav@yoav.ws [Wed, 21 Jun 2017 01:04:25 +0000 (01:04 +0000)]
[preload] Turn on preload's feature flag by default.
https://bugs.webkit.org/show_bug.cgi?id=173139

Reviewed by Youenn Fablet.

Turn on the runtime enabled feature flag for link preload by default.

No new tests as this just turns on a feature that was already on-by-default for tests.

* page/RuntimeEnabledFeatures.h:

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

2 years agoDisable font variations on macOS Sierra and iOS 10
mmaxfield@apple.com [Wed, 21 Jun 2017 00:54:43 +0000 (00:54 +0000)]
Disable font variations on macOS Sierra and iOS 10
https://bugs.webkit.org/show_bug.cgi?id=173618
<rdar://problem/32879164>

Reviewed by Jon Lee.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

On macOS Sierra and iOS 10, there are some platform problems involved with font variations. They
were previously enabled on those OSes just as a preview development tool. These platform bugs have
been fixed in macOS High Sierra and iOS 11, so we should align our feature flags with the eventual
configurations.

* Configurations/FeatureDefines.xcconfig:
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::defaultVariationValues):
(WebCore::preparePlatformFont):

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Update expected test results. The old test results are now High Sierra- and iOS 11-expected.

* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/text/font-selection-font-face-parse-expected.txt:
* fast/text/font-selection-font-loading-api-parse-expected.txt:
* fast/text/font-stretch-parse-expected.txt:
* fast/text/font-style-parse-expected.txt:
* fast/text/font-weight-parse-expected.txt:
* platform/ios/TestExpectations:
* platform/mac-elcapitan/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
* platform/mac-elcapitan/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Removed.
* platform/mac-elcapitan/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
* platform/mac-elcapitan/fast/text/font-selection-font-face-parse-expected.txt: Removed.
* platform/mac-elcapitan/fast/text/font-selection-font-loading-api-parse-expected.txt: Removed.
* platform/mac-elcapitan/fast/text/font-stretch-parse-expected.txt: Removed.
* platform/mac-elcapitan/fast/text/font-style-parse-expected.txt: Removed.
* platform/mac-elcapitan/fast/text/font-weight-parse-expected.txt: Removed.
* platform/mac-elcapitan/svg/css/getComputedStyle-basic-expected.txt: Removed
* platform/mac/TestExpectations:
* platform/mac/svg/css/getComputedStyle-basic-expected.txt: Removed

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

2 years agoFix leak of ModuleInformations in BBQPlan constructors.
keith_miller@apple.com [Wed, 21 Jun 2017 00:32:25 +0000 (00:32 +0000)]
Fix leak of ModuleInformations in BBQPlan constructors.
https://bugs.webkit.org/show_bug.cgi?id=173577

Reviewed by Saam Barati.

This patch fixes a leak in the BBQPlan constructiors. Previously,
the plans were calling makeRef on the newly constructed objects.
This patch fixes the issue and uses adoptRef instead. Additionally,
an old, incorrect, attempt to fix the leak is removed.

* inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:
(Inspector::RemoteInspectorXPCConnection::RemoteInspectorXPCConnection):
* jit/JITWorklist.cpp:
(JSC::JITWorklist::Thread::Thread):
* runtime/PromiseDeferredTimer.cpp:
(JSC::PromiseDeferredTimer::addPendingPromise):
* runtime/VM.cpp:
(JSC::VM::VM):
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::BBQPlan):
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::Plan):

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

2 years agoWeb Inspector: Send context attributes for tracked canvases
drousso@apple.com [Wed, 21 Jun 2017 00:07:41 +0000 (00:07 +0000)]
Web Inspector: Send context attributes for tracked canvases
https://bugs.webkit.org/show_bug.cgi?id=173327

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/Canvas.json:
Add ContextAttributes object type that is optionally used for WebGL canvases.

Source/WebCore:

Test: inspector/canvas/context-attributes.html

* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::buildObjectForCanvas):

Source/WebInspectorUI:

* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.prototype.get contextAttributes):
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.sizeDidChange):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):

* UserInterface/Views/DataGridNode.js:
(WebInspector.DataGridNode.prototype.createCellContent):
Instead of checking if the value of the cell is falsy, check that the key exists in the data.
This allows values like `false` to be displayed.

LayoutTests:

* inspector/canvas/context-attributes-expected.txt: Added.
* inspector/canvas/context-attributes.html: Added.

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

2 years agoMarked webrtc/video-replace-muted-track.html as flaky.
jlewis3@apple.com [Wed, 21 Jun 2017 00:02:14 +0000 (00:02 +0000)]
Marked webrtc/video-replace-muted-track.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173486

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 years ago[Cocoa] The system Japanese font cannot be italicized
mmaxfield@apple.com [Tue, 20 Jun 2017 23:52:22 +0000 (23:52 +0000)]
[Cocoa] The system Japanese font cannot be italicized
https://bugs.webkit.org/show_bug.cgi?id=173300
<rdar://problem/31805407>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Items in the system font cascade list may lie about whether or not they support italics.
In order to get the truth, we need to use the physical font underlying the font in question,
because this one won't lie. Then, we can interrogate this physical font about its traits
in order to synthesize italics correctly.

Test: fast/text/system-font-japanese-synthetic-italic.html

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::lookupFallbackFont):
* platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges):

LayoutTests:

* fast/text/system-font-japanese-synthetic-italic-expected-mismatch.html: Added.
* fast/text/system-font-japanese-synthetic-italic.html: Added.
* platform/mac/TestExpectations: This codepath doesn't work in El Capitan.

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

2 years agoUse WTF::Function instead of std::function in more places in WebCore/
cdumez@apple.com [Tue, 20 Jun 2017 23:42:18 +0000 (23:42 +0000)]
Use WTF::Function instead of std::function in more places in WebCore/
https://bugs.webkit.org/show_bug.cgi?id=173583

Reviewed by Darin Adler.

Use WTF::Function instead of std::function in more places in WebCore/ to
reduce copying.

* page/Page.cpp:
* platform/HysteresisActivity.h:
(WebCore::HysteresisActivity::HysteresisActivity):
* platform/Logging.cpp:
(WebCore::registerNotifyCallback):
* platform/Logging.h:
* platform/MainThreadSharedTimer.cpp:
(WebCore::MainThreadSharedTimer::setFiredFunction):
* platform/MainThreadSharedTimer.h:
* platform/PlatformPasteboard.h:
* platform/ScopeGuard.h:
(WebCore::ScopeGuard::ScopeGuard):
(WebCore::ScopeGuard::enable):
* platform/ScrollAnimationSmooth.cpp:
(WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
* platform/ScrollAnimationSmooth.h:
* platform/SharedTimer.h:
* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::currentSessionsMatching):
* platform/audio/PlatformMediaSessionManager.h:
* platform/cf/MainThreadSharedTimerCF.cpp:
(WebCore::setupPowerObserver):
* platform/cf/RunLoopObserver.h:
(WebCore::RunLoopObserver::RunLoopObserver):
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::traverse):
* platform/graphics/GraphicsLayer.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::addMediaEngine):
* platform/graphics/MediaPlayer.h:
* platform/graphics/Path.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
(WebCore::MediaPlayerPrivateAVFoundation::Notification::function):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::runWithoutAnimations):
* platform/graphics/cocoa/IOSurface.h:
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::convertToFormat):
* platform/graphics/gstreamer/MainThreadNotifier.h:
* platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h:
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::create):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::MediaPlayerRequestInstallMissingPluginsCallback):
* platform/graphics/win/GraphicsContextDirect2D.cpp:
(WebCore::GraphicsContext::drawWithoutShadow):
(WebCore::GraphicsContext::drawWithShadow):
* platform/gtk/PasteboardHelper.cpp:
(WebCore::ClipboardSetData::ClipboardSetData):
(WebCore::PasteboardHelper::writeClipboardContents):
* platform/gtk/PasteboardHelper.h:
* platform/gtk/PlatformPasteboardGtk.cpp:
(WebCore::PlatformPasteboard::writeToClipboard):
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline):
* platform/mac/PowerObserverMac.cpp:
(WebCore::PowerObserver::PowerObserver):
* platform/mac/PowerObserverMac.h:
* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::isSecondLevelDomainNameAllowedByTLDRules):
* platform/mediastream/CaptureDeviceManager.cpp:
(CaptureDeviceManager::addCaptureDeviceChangedObserver):
* platform/mediastream/CaptureDeviceManager.h:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::scheduleDeferredTask):
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(-[WebAVAudioSessionAvailableInputsListener initWithCallback:]):
* platform/mediastream/mac/CoreAudioCaptureSource.h:
* platform/mock/ScrollAnimatorMock.cpp:
(WebCore::ScrollAnimatorMock::ScrollAnimatorMock):
* platform/mock/ScrollAnimatorMock.h:
* platform/network/CookieStorage.h:
* platform/network/NetworkStateNotifier.cpp:
(WebCore::NetworkStateNotifier::addNetworkStateChangeListener):
* platform/network/NetworkStateNotifier.h:
* platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::forEach):
* platform/network/NetworkStorageSession.h:
* platform/network/cf/CookieStorageCFNet.cpp:
(WebCore::cookieChangeCallbackMap):
(WebCore::startObservingCookieChanges):
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::callOnMainThreadAndWait):
* platform/network/mac/CookieStorageMac.mm:
(-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]):
(WebCore::startObservingCookieChanges):
* platform/network/soup/CookieStorageSoup.cpp:
(WebCore::startObservingCookieChanges):
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::checkTLSErrors):
* platform/network/soup/SoupNetworkSession.h:
* platform/sql/SQLiteDatabase.cpp:
(WebCore::destroyCollationFunction):
(WebCore::callCollationFunction):
(WebCore::SQLiteDatabase::setCollationFunction):
* platform/sql/SQLiteDatabase.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::traverseVisibleNonCompositedDescendantLayers):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItem):
* rendering/RenderListBox.h:
* rendering/line/BreakingContext.h:
(WebCore::BreakingContext::InlineIteratorHistory::push):
(WebCore::BreakingContext::InlineIteratorHistory::update):
* workers/Worker.cpp:
(WebCore::Worker::Worker):
* workers/WorkerRunLoop.cpp:

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

2 years agoUnreviewed, rolling out r218524.
ryanhaddad@apple.com [Tue, 20 Jun 2017 23:22:16 +0000 (23:22 +0000)]
Unreviewed, rolling out r218524.

This change broke internal builds.

Reverted changeset:

"[Cocoa] The system Japanese font cannot be italicized"
https://bugs.webkit.org/show_bug.cgi?id=173300
http://trac.webkit.org/changeset/218524

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

2 years ago<rdar://problem/32862652> [REGRESSION] r218374: fast/events/ios/rotation/layout-viewp...
simon.fraser@apple.com [Tue, 20 Jun 2017 22:57:50 +0000 (22:57 +0000)]
<rdar://problem/32862652> [REGRESSION] r218374: fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html

Rebaseline.

* fast/events/ios/rotation/layout-viewport-during-safari-type-rotation-expected.txt:

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

2 years agoRebaseline fast/events/touch/document-create-touch-list tests.
ryanhaddad@apple.com [Tue, 20 Jun 2017 22:54:58 +0000 (22:54 +0000)]
Rebaseline fast/events/touch/document-create-touch-list tests.

Unreviewed test gardening.

* fast/events/touch/document-create-touch-list-crash-expected.txt:
* fast/events/touch/document-create-touch-list-ios-expected.txt:

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

2 years agoHave FrameLoadRequest takes a Frame& instead of a Frame*
dbates@webkit.org [Tue, 20 Jun 2017 22:45:18 +0000 (22:45 +0000)]
Have FrameLoadRequest takes a Frame& instead of a Frame*
https://bugs.webkit.org/show_bug.cgi?id=173614
<rdar://problem/32884890>

Reviewed by Brent Fulgham.

Source/WebCore:

* loader/ContentFilter.cpp:
(WebCore::ContentFilter::handleProvisionalLoadFailure):
* loader/FrameLoadRequest.cpp:
(WebCore::FrameLoadRequest::FrameLoadRequest):
* loader/FrameLoadRequest.h:
* page/DragController.cpp:
(WebCore::DragController::performDragOperation):

Source/WebKit/mac:

* Plugins/WebPluginController.mm:
(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
* WebView/WebFrame.mm:
(-[WebFrame loadRequest:]):
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

Source/WebKit/win:

* Plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):
* WebFrame.cpp:
(WebFrame::loadRequest):

Source/WebKit2:

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performFrameLoadURLRequest):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadURLInFrame):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):

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

2 years agoLayoutTest inspector/canvas/create-canvas-contexts.html is a flaky timeout
mattbaker@apple.com [Tue, 20 Jun 2017 22:44:11 +0000 (22:44 +0000)]
LayoutTest inspector/canvas/create-canvas-contexts.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=173603

Reviewed by Joseph Pecoraro.

Removed test case `CheckCanvasesCleared`, which involved a page reload
and would intermittently timeout.

* inspector/canvas/create-canvas-contexts-expected.txt:
* inspector/canvas/create-canvas-contexts.html:

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

2 years agoSkip Content Security Policy check for a media request using standard schemes initiat...
dbates@webkit.org [Tue, 20 Jun 2017 22:04:31 +0000 (22:04 +0000)]
Skip Content Security Policy check for a media request using standard schemes initiated from
an element in user agent shadow tree
https://bugs.webkit.org/show_bug.cgi?id=155505
<rdar://problem/25169452>

Reviewed by Brent Fulgham.

This change makes the following tests pass on iOS 11:
    http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html
    http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html

* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource):
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::startLoading):

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

2 years agoUpdate test262 test expectations after r218581.
ryanhaddad@apple.com [Tue, 20 Jun 2017 20:45:36 +0000 (20:45 +0000)]
Update test262 test expectations after r218581.

Unreviewed test gardening.

* test262.yaml:

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

2 years agoREGRESSION: media/remote-control-command-seek.html is timing out
graouts@webkit.org [Tue, 20 Jun 2017 20:37:59 +0000 (20:37 +0000)]
REGRESSION: media/remote-control-command-seek.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=173615
<rdar://problem/32626498>

Reviewed by Eric Carlson.

This test assumes that we load metadata and video data that can be seeked through
at the same time, but this is incorrect. Using the "canplaythrough" event guarantees
that the video is seekable, so we switch to this event to make the test more robust.

* media/remote-control-command-seek-expected.txt:
* media/remote-control-command-seek.html:

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

2 years agoOccasional deadlocks under ensurePositionInformationIsUpToDate (incoming sync message...
timothy_horton@apple.com [Tue, 20 Jun 2017 19:46:14 +0000 (19:46 +0000)]
Occasional deadlocks under ensurePositionInformationIsUpToDate (incoming sync message with waitForAndDispatchImmediately)
https://bugs.webkit.org/show_bug.cgi?id=173570
<rdar://problem/32720928>

Reviewed by Wenson Hsieh.

* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::getPositionInformation): Deleted.
Get rid of getPositionInformation; it only has one caller, and it's easier
to reason about the code if it's all in one place. Also, we shouldn't
add more callers...

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView ensurePositionInformationIsUpToDate:]):
Add a return value to ensurePositionInformationIsUpToDate that indicates
whether we succeeded in that effort.

Add the flag to our waitForAndDispatchImmediately that causes the wait
to be interrupted if a sync message arrives.

(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsNearMarkedText:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView positionInformationForActionSheetAssistant:]):
(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
If anything happens to interrupt our position information update, fail
in the most graceful possible way at each callsite (generally by bailing
from doing whatever action required position information).

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView positionInformationForActionSheetAssistant:]):
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant synchronouslyRetrievePositionInformation]):
(-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]):
(-[WKActionSheetAssistant presentationRectForIndicatedElement]):
(-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant presentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
(-[WKActionSheetAssistant cleanupSheet]):
Instead of constantly re-querying the position information, save it aside
when presenting an action sheet, and use it to respond to all of the
subsequent questions. Also, bail from presenting the action sheet if we fail
to retrieve correct position information.

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

2 years agoAdded additional test expectations for media/video-buffered.html.
jlewis3@apple.com [Tue, 20 Jun 2017 18:57:22 +0000 (18:57 +0000)]
Added additional test expectations for media/video-buffered.html.
https://bugs.webkit.org/show_bug.cgi?id=173611

Uneviewed test gardening.

* platform/ios/TestExpectations:

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

2 years agoRemove no-op calls to purge SQLite caches on memory pressure.
akling@apple.com [Tue, 20 Jun 2017 18:48:00 +0000 (18:48 +0000)]
Remove no-op calls to purge SQLite caches on memory pressure.
<https://webkit.org/b/173604>

Reviewed by Chris Dumez.

The implementation of _sqlite3_purgeEligiblePagerCacheMemory() is empty
since a few releases ago, so there's no point in calling it.

* page/MemoryRelease.cpp:
(WebCore::registerMemoryReleaseNotifyCallbacks):
(WebCore::registerSQLiteMemoryPressureHandler): Deleted.
* page/MemoryRelease.h:
* page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::platformReleaseMemory):
(WebCore::registerSQLiteMemoryPressureHandler): Deleted.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::initializeSQLiteIfNecessary):

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

2 years agoWeb Inspector: add console messages for WebGL shader compile and program link errors...
drousso@apple.com [Tue, 20 Jun 2017 18:35:31 +0000 (18:35 +0000)]
Web Inspector: add console messages for WebGL shader compile and program link errors/warnings
https://bugs.webkit.org/show_bug.cgi?id=143236
<rdar://problem/20352149>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/shader-compile-logging.html

* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::checkFramebufferStatus):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::recycleContext):
(WebCore::WebGLRenderingContextBase::checkTextureCompleteness):
(WebCore::WebGLRenderingContextBase::printToConsole):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::synthesizeGLError):
(WebCore::WebGLRenderingContextBase::printGLErrorToConsole): Deleted.
(WebCore::WebGLRenderingContextBase::printWarningToConsole): Deleted.
(WebCore::WebGLRenderingContextBase::printGLWarningToConsole): Deleted.
Unify console logging helper functions to all follow the same path. Additionally, errors
now generate stack traces. Shader compilation errors are now logged as well.

* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::addConsoleMessage):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
* page/PageConsoleClient.h:
* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
* workers/WorkerGlobalScope.h:
Add new path for logging to the console that accepts a ConsoleMessage.

LayoutTests:

* fast/canvas/webgl/fragment-shader-assertion.html:
* fast/canvas/webgl/shader-compile-logging-expected.txt: Added.
* fast/canvas/webgl/shader-compile-logging.html: Added.

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

2 years agoUnreviewed. Try to fix the build after r218594.
sbarati@apple.com [Tue, 20 Jun 2017 18:27:31 +0000 (18:27 +0000)]
Unreviewed. Try to fix the build after r218594.

* dom/Document.h:

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

2 years agoUnreviewed, rolling out r218530.
jlewis3@apple.com [Tue, 20 Jun 2017 17:53:17 +0000 (17:53 +0000)]
Unreviewed, rolling out r218530.

This revision caused multiple media stream test crashes on
Debug builds.

Reverted changeset:

"Merge MediaDevicesRequest and MediaDevicesEnumerationRequest
to tighten up code and object lifetime"
https://bugs.webkit.org/show_bug.cgi?id=173527
http://trac.webkit.org/changeset/218530

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