WebKit-https.git
2 years agoWeb Inspector: provide way for ShaderPrograms to be enabled/disabled
webkit@devinrousso.com [Tue, 22 Aug 2017 18:08:50 +0000 (18:08 +0000)]
Web Inspector: provide way for ShaderPrograms to be enabled/disabled
https://bugs.webkit.org/show_bug.cgi?id=175400

Reviewed by Matt Baker.

Source/JavaScriptCore:

* inspector/protocol/Canvas.json:
Add `setShaderProgramDisabled` command that sets the `disabled` flag on the given shader
program to the supplied boolean value. If this value is true, calls to `drawArrays` and
`drawElements` when that program is in use will have no effect.

Source/WebCore:

Test: inspector/canvas/setShaderProgramDisabled.html

* inspector/InspectorShaderProgram.h:
(WebCore::InspectorShaderProgram::disabled):
(WebCore::InspectorShaderProgram::setDisabled):

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
If the current program is disabled, return early. This will prevent the current shader
program from drawing anything to the canvas.

* inspector/InspectorCanvasAgent.h:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::setShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::isShaderProgramDisabled):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::isShaderProgramDisabled):
(WebCore::InspectorInstrumentation::isShaderProgramDisabledImpl):

Source/WebInspectorUI:

Adds a status element to ShaderProgramTreeElement that, when clicked, will toggle the
disabled state of the corresponding ShaderProgram. Disabled shader programs will not draw
anything to the context.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:

* UserInterface/Models/ShaderProgram.js:
(WI.ShaderProgram):
(WI.ShaderProgram.prototype.get disabled):
(WI.ShaderProgram.prototype.toggleDisabled):

* UserInterface/Views/ShaderProgramTreeElement.js:
(WI.ShaderProgramTreeElement):
(WI.ShaderProgramTreeElement.prototype.selectOnMouseDown):
(WI.ShaderProgramTreeElement.prototype._disabledImageElementClicked):
* UserInterface/Views/ShaderProgramTreeElement.css: Added.
(.item.shader-program .status > img):
(.item.shader-program:not(:hover, .selected, .disabled) .status > img):
(.tree-outline:matches(:focus, .force-focus) .item.shader-program.selected .status > img):
(.item.shader-program.disabled > *):

LayoutTests:

* inspector/canvas/setShaderProgramDisabled-expected.txt: Added.
* inspector/canvas/setShaderProgramDisabled.html: Added.

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

2 years ago[Cache API] Add support for overwriting responses with put on an existing record
commit-queue@webkit.org [Tue, 22 Aug 2017 18:02:43 +0000 (18:02 +0000)]
[Cache API] Add support for overwriting responses with put on an existing record
https://bugs.webkit.org/show_bug.cgi?id=175825

Patch by Youenn Fablet <youenn@apple.com> on 2017-08-22
Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/cache-storage/window/cache-put.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-put.https-expected.txt:

Source/WebCore:

Tests: http/wpt/cache-storage/cache-put-keys.https.any.html
       http/wpt/cache-storage/cache-put-keys.https.any.worker.html

Adding support for the new response update counter.
Overwriting local cached response with new retrieved response when the counter is different.
Adding support for passing this value from/to workers.

* Modules/cache/Cache.cpp:
(WebCore::Cache::queryCacheWithTargetStorage):
(WebCore::toConnectionRecord):
(WebCore::Cache::updateRecords):
* Modules/cache/CacheStorageConnection.cpp:
(WebCore::CacheStorageConnection::Record::copy const):
* Modules/cache/CacheStorageConnection.h:
* Modules/cache/CacheStorageRecord.h:
* Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::toCrossThreadRecordData):
(WebCore::fromCrossThreadRecordData):

Source/WebKit:

Add support for encoding/decoding the update counter.
Incrementing it when overwriting an existing response.
Storing the new body in addition to the new response.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorageEngine::putRecords):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<CacheStorageConnection::Record>::encode):
(IPC::ArgumentCoder<CacheStorageConnection::Record>::decode):

LayoutTests:

Adding update counter for response
Skipping new test on WK1.

* platform/ios-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:
* http/wpt/cache-storage/cache-put-keys.https.any-expected.txt: Added.
* http/wpt/cache-storage/cache-put-keys.https.any.html: Added.
* http/wpt/cache-storage/cache-put-keys.https.any.js: Added.
(cache_test):
* http/wpt/cache-storage/cache-put-keys.https.any.worker-expected.txt: Added.
* http/wpt/cache-storage/cache-put-keys.https.any.worker.html: Added.

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

2 years agoMarked imported/w3c/web-platform-tests/fetch/http-cache/invalidate.html as flaky...
jlewis3@apple.com [Tue, 22 Aug 2017 17:56:48 +0000 (17:56 +0000)]
Marked imported/w3c/web-platform-tests/fetch/http-cache/invalidate.html as flaky on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=173672

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoRemove ChromeClient::hasOpenedPopup
achristensen@apple.com [Tue, 22 Aug 2017 17:38:14 +0000 (17:38 +0000)]
Remove ChromeClient::hasOpenedPopup
https://bugs.webkit.org/show_bug.cgi?id=175804

Reviewed by Sam Weinig.

Source/WebCore:

No change in behavior.  All implementations just returned false.

* loader/EmptyClients.h:
* page/Chrome.cpp:
(WebCore::Chrome::hasOpenedPopup const): Deleted.
* page/Chrome.h:
* page/ChromeClient.h:
* rendering/RenderMenuList.cpp:
(RenderMenuList::showPopup):

Source/WebKit:

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::hasOpenedPopup const): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::hasOpenedPopup const): Deleted.

Source/WebKitLegacy/win:

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::hasOpenedPopup const): Deleted.
* WebCoreSupport/WebChromeClient.h:

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

2 years agoUnriviewed, fix windows build... for realz.
keith_miller@apple.com [Tue, 22 Aug 2017 17:31:39 +0000 (17:31 +0000)]
Unriviewed, fix windows build... for realz.

* CMakeLists.txt:

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

2 years ago[Payment Request] Implement error checking for show(), abort(), and canMakePayment()
aestes@apple.com [Tue, 22 Aug 2017 16:59:49 +0000 (16:59 +0000)]
[Payment Request] Implement error checking for show(), abort(), and canMakePayment()
https://bugs.webkit.org/show_bug.cgi?id=175789

Reviewed by Brady Eidson.
LayoutTests/imported/w3c:

* web-platform-tests/payment-request/payment-request-abort-method.https-expected.txt:
* web-platform-tests/payment-request/payment-request-show-method.https-expected.txt:

Source/WebCore:

Implement many of the exceptions and promise rejections specified for PaymentRequest's
show(), abort(), and canMakePayment() methods. Also implement basic state tracking.

* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::create): Changed serializedMethodData from a
HashMap<String, String> to a Vector<PaymentRequest::Method>.
(WebCore::PaymentRequest::PaymentRequest):
(WebCore::PaymentRequest::show): Added promise rejection for invalid state, updated the
state to Interactive, stored the promise in m_showPromise, and dispatched finishShowing().
(WebCore::PaymentRequest::finishShowing): Added JSON parsing of payment method serialized
data and exception propagation. If there are no exceptions, rejected m_showPromise with
NotSupportedError since we don't yet support any payment methods.
(WebCore::PaymentRequest::abort): Added promise rejection for invalid state and stored the
promise in m_abortPromise. Dispatched a lambda to update the state to Closed, reject
m_showPromise, and resolve m_abortPromise.
(WebCore::PaymentRequest::canMakePayment): Added promise rejection for invalid state and
stored the promise in m_canMakePaymentPromise. Dispatched a lambda to resolve
m_canMakePaymentPromise with false since we don't yet support any payment methods.
* Modules/paymentrequest/PaymentRequest.h:
* Modules/paymentrequest/PaymentRequest.idl: Annotated abort() with MayThrowException.

LayoutTests:

Stopped marking payment-request-abort-method.https.html and payment-request-show-method.https.html  as flaky.

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

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

2 years agoUnreviewed, enable http/wpt/beacon/contentextensions on Mac WK2 only.
cdumez@apple.com [Tue, 22 Aug 2017 16:29:12 +0000 (16:29 +0000)]
Unreviewed, enable http/wpt/beacon/contentextensions on Mac WK2 only.

It seems content extensions are not supported by WKTR on iOS.

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

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

2 years agoWe are using valueProfileForBytecodeOffset when there may not be a value profile
sbarati@apple.com [Tue, 22 Aug 2017 16:28:13 +0000 (16:28 +0000)]
We are using valueProfileForBytecodeOffset when there may not be a value profile
https://bugs.webkit.org/show_bug.cgi?id=175812

Reviewed by Michael Saboff.

This patch uses the type system to aid the code around CodeBlock's ValueProfile
accessor methods. valueProfileForBytecodeOffset used to return ValueProfile*,
so there were callers of this that thought it could return nullptr when there
was no such ValueProfile. This was not the case, it always returned a non-null
pointer. This patch changes valueProfileForBytecodeOffset to return ValueProfile&
and adds a new tryGetValueProfileForBytecodeOffset method that returns ValueProfile*
and does the right thing if there is no such ValueProfile.

This patch also changes the other ValueProfile accessors on CodeBlock to
return ValueProfile& instead of ValueProfile*. Some callers handled the null
case unnecessarily, and using the type system to specify the result can't be
null removes these useless branches.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
(JSC::CodeBlock::dumpValueProfiles):
(JSC::CodeBlock::tryGetValueProfileForBytecodeOffset):
(JSC::CodeBlock::valueProfileForBytecodeOffset):
(JSC::CodeBlock::validate):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::valueProfileForArgument):
(JSC::CodeBlock::valueProfile):
(JSC::CodeBlock::valueProfilePredictionForBytecodeOffset):
(JSC::CodeBlock::getFromAllValueProfiles):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleInlining):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
* dfg/DFGPredictionInjectionPhase.cpp:
(JSC::DFG::PredictionInjectionPhase::run):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::emitValueProfilingSite):
* profiler/ProfilerBytecodeSequence.cpp:
(JSC::Profiler::BytecodeSequence::BytecodeSequence):
* tools/HeapVerifier.cpp:
(JSC::HeapVerifier::validateJSCell):

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

2 years agoDisable access to secure cookies if an HTTPS site loads mixed content
bfulgham@apple.com [Tue, 22 Aug 2017 16:22:22 +0000 (16:22 +0000)]
Disable access to secure cookies if an HTTPS site loads mixed content
https://bugs.webkit.org/show_bug.cgi?id=157053
<rdar://problem/11290808>

Patch by Brent Fulgham  <bfulgham@apple.com> and Pranjal Jumde <pjumde@apple.com> on 2017-08-22
Reviewed by Dan Bates.

Source/WebCore:

Tests: http/tests/security/mixedContent/insecure-css-with-secure-cookies.html
       http/tests/security/mixedContent/insecure-image-with-securecookie-block.html
       http/tests/security/mixedContent/insecure-image-with-securecookie.html
       http/tests/security/mixedContent/insecure-script-with-secure-cookies.html
       http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html
       http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html

* dom/SecurityContext.h:
(WebCore::SecurityContext::secureCookiesAccessed): Added.
(WebCore::SecurityContext::setSecureCookiesAccessed): Added.
* loader/CookieJar.cpp:
(WebCore::cookies): Pass Document as non-const so we can call 'setSecureCookiesAccessed' if necessary.
* loader/CookieJar.h:
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::canRunInsecureContent): Updated checks to avoid running insecure content
if secure cookies were accessed.
* platform/CookiesStrategy.h:
(WebCore::CookiesStrategy::cookiesForDOM): Pass new argument indicating whether secure cookies should be included in the response.
* platform/network/PlatformCookieJar.h:
* platform/network/cf/CookieJarCFNet.cpp:
(copyCookiesForURLWithFirstPartyURL): Revise to accept new 'IncludeSecureCookiesOrNot' argument.
(WebCore::cookiesForSession): Updated to accept new 'IncludeSecureCookiesOrNot' argument. Also determine if secure cookies were
included in the response, and return this to the caller.
(WebCore::cookieRequestHeaderFieldValue): Revise for new 'copyCookiesForURLWithFirstPartyURL' signature.
(WebCore::getRawCookies): Ditto.
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesForSession): Updated checks to keep track of secure cookies and filter out secure cookies if insecure content
was accessed.
(WebCore::cookiesForDOM): Update for new arguments and to return a pair.
(WebCore::cookieRequestHeaderFieldValue): Ditto.

Source/WebKit:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM): Pass new arguments needed by WebCore.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in: Updated the CookiesForDOM message with the new foundMixedContent
argument and the new didAccessSecureCookies reply.
* Shared/mac/CookieStorageShim.mm:
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL): Drive-by fix to use the right message.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookiesForDOM): Check and return whether secure cookies were accessed. Accept a new argument
indicating whether secure cookies should be included in the response.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::cookiesForDOM): Check and return whether secure cookies were accessed. Accept a new argument
indicating whether secure cookies should be included in the response.

LayoutTests:

* http/tests/security/mixedContent/insecure-css-with-secure-cookies-expected.txt: Added.
* http/tests/security/mixedContent/insecure-css-with-secure-cookies.html: Added.
* http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies.html: Added.
* http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies-expected.txt: Added.
* http/tests/security/mixedContent/insecure-image-with-securecookie-block-expected.txt: Added.
* http/tests/security/mixedContent/insecure-image-with-securecookie-block.html: Added.
* http/tests/security/mixedContent/insecure-image-with-securecookie-expected.txt: Added.
* http/tests/security/mixedContent/insecure-image-with-securecookie.html: Added.
* http/tests/security/mixedContent/insecure-script-with-secure-cookies-expected.txt: Added.
* http/tests/security/mixedContent/insecure-script-with-secure-cookies.html: Added.
* http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block-expected.txt: Added.
* http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html: Added.
* http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-expected.txt: Added.
* http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-css-secure-cookies.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-executable-css-with-secure-cookies.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-image-secure-cookie-block.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-image-secure-cookie.html: Added.
* http/tests/security/mixedContent/resources/frame-with-insecure-script-secure-cookies.html: Added.
* http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-image-secure-cookie-block.html: Added.
* http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-image-secure-cookie.html: Added.
* http/tests/security/mixedContent/resources/insecure-executable.css: Added.
* http/tests/security/mixedContent/resources/insecure.css: Added.
* http/tests/security/resources/greenbox-hotspot5-4.cur: Added.

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

2 years agoAutoplay Muted Videos Don't Play When Outside Viewport
jer.noble@apple.com [Tue, 22 Aug 2017 16:13:22 +0000 (16:13 +0000)]
Autoplay Muted Videos Don't Play When Outside Viewport
https://bugs.webkit.org/show_bug.cgi?id=175748
<rdar://problem/33974383>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-restricted-invisible-autoplay-not-allowed-source.html

The media session is notified that its client (the media element) will begin autoplaying inside
prepareForLoad(), where the m_autoplaying flag is also set. But loading via <source> elements does not go
through prepareForLoad(); the HTML standard states that the <source> element loading path does not trigger the
"media element load algorithm" which is implemented in prepareForLoad(). Since the m_autoplaying flag is
initially set to true, notify the media session that the element will begin autoplaying inside the element's
constructor.

Drive-by fix: Doing the above causes other tests to crash, as purturbing play state during style change can cause
re-entrancy in the native controls code, or fail, since we will transition from autoplay -> play even if there's
not yet a src or source to the media element. Add a task queue for updating the autoplay state and check the ready
state before allowing autoplay to transition to play.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay const):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):

LayoutTests:

* media/video-restricted-invisible-autoplay-not-allowed-source-expected.txt: Added.
* media/video-restricted-invisible-autoplay-not-allowed-source.html: Added.

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

2 years agoUnreviewed, fix windows build... maybe.
keith_miller@apple.com [Tue, 22 Aug 2017 16:03:26 +0000 (16:03 +0000)]
Unreviewed, fix windows build... maybe.

* CMakeLists.txt:

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

2 years agoCall updateIsPlayingMedia whenever m_userHasInteractedWithMediaElement changes
mrajca@apple.com [Tue, 22 Aug 2017 15:56:32 +0000 (15:56 +0000)]
Call updateIsPlayingMedia whenever m_userHasInteractedWithMediaElement changes
https://bugs.webkit.org/show_bug.cgi?id=175796

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-user-gesture-tracking.html

The page media state depends on m_userHasInteractedWithMediaElement, so force it to update
as soon as m_userHasInteractedWithMediaElement changes. This fixes an issue where the media
state would not reflect the user interaction flag until a call to updateIsPlayingMedia was made.

* dom/Document.cpp:
(WebCore::Document::noteUserInteractionWithMediaElement):
* dom/Document.h:
(WebCore::Document::noteUserInteractionWithMediaElement): Deleted.
* testing/Internals.cpp:
(WebCore::Internals::pageMediaState):

LayoutTests:

Skip the test on iOS like all the other tests that use runWithKeyDown.

* media/video-user-gesture-tracking-expected.txt: Added.
* media/video-user-gesture-tracking.html: Added.

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

2 years agoUnreviewed, fix cloop build.
keith_miller@apple.com [Tue, 22 Aug 2017 15:54:17 +0000 (15:54 +0000)]
Unreviewed, fix cloop build.

* JavaScriptCore.xcodeproj/project.pbxproj:

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

2 years ago[Win][Release] Crash when running testmasm executable.
pvollan@apple.com [Tue, 22 Aug 2017 15:50:50 +0000 (15:50 +0000)]
[Win][Release] Crash when running testmasm executable.
https://bugs.webkit.org/show_bug.cgi?id=175772

Reviewed by Mark Lam.

We need to save and restore the modified registers in case one or more registers are callee saved
on the relevant platforms.

* assembler/testmasm.cpp:
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):

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

2 years agoFix leak-checking for iOS Simulators
jbedard@apple.com [Tue, 22 Aug 2017 15:46:30 +0000 (15:46 +0000)]
Fix leak-checking for iOS Simulators
https://bugs.webkit.org/show_bug.cgi?id=175735

Reviewed by David Kilzer.

Follow-up fix to r220942. _proc may be undefined.

* Scripts/webkitpy/port/server_process.py:
(ServerProcess._wait_for_stop): Handle case where _proc is undefined.

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

2 years ago[GTK][WPE] install-dependencies should install the required gstreamer packages needed...
clopez@igalia.com [Tue, 22 Aug 2017 13:47:05 +0000 (13:47 +0000)]
[GTK][WPE] install-dependencies should install the required gstreamer packages needed for production builds.
https://bugs.webkit.org/show_bug.cgi?id=175822

Reviewed by Xabier Rodriguez-Calvar.

* gtk/install-dependencies: Add the bad plugins to the list.
* wpe/install-dependencies: Add all the gst related packages (copied from GTK listing).

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

2 years agoUnreviewed, rolling out r221006.
commit-queue@webkit.org [Tue, 22 Aug 2017 09:54:16 +0000 (09:54 +0000)]
Unreviewed, rolling out r221006.
https://bugs.webkit.org/show_bug.cgi?id=175821

generates build failures in the bots (Requested by calvaris[m]
on #webkit).

Reverted changeset:

"[GStreamer][GTK][WPE] Move common things to GStreamer cmake
files"
https://bugs.webkit.org/show_bug.cgi?id=175625
http://trac.webkit.org/changeset/221006

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

2 years agoGLContext: zero-initialize the GLContext pointer in ThreadGlobalGLContext
zandobersek@gmail.com [Tue, 22 Aug 2017 09:51:22 +0000 (09:51 +0000)]
GLContext: zero-initialize the GLContext pointer in ThreadGlobalGLContext
https://bugs.webkit.org/show_bug.cgi?id=175819

Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/GLContext.cpp: The ThreadGlobalGLContext object is
allocated on heap, so the embedded GLContext pointer can contain a
non-null value that can cause problems when e.g. checking for a current
GLContext on some specific thread on which a GLContext hasn't yet been
made current. Zero-initializing this pointer will avoid false positives
that can occur in these circumstances.

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

2 years ago[GTK][WPE] Rename StorageProcessMainGtk.cpp to StorageProcessMainGLib.cpp
zandobersek@gmail.com [Tue, 22 Aug 2017 09:13:47 +0000 (09:13 +0000)]
[GTK][WPE] Rename StorageProcessMainGtk.cpp to StorageProcessMainGLib.cpp
https://bugs.webkit.org/show_bug.cgi?id=175814

Reviewed by Gyuyoung Kim.

Both GTK+ and WPE ports already compile the StorageProcessMainGtk.cpp
file, but it should be renamed to StorageProcessMainGLib and moved into
the StorageProcess/glib/ directory.

* PlatformGTK.cmake:
* PlatformWPE.cmake:
* StorageProcess/glib/StorageProcessMainGLib.cpp: Renamed from Source/WebKit/StorageProcess/gtk/StorageProcessMainGtk.cpp.

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

2 years ago[GStreamer][GTK][WPE] Move common things to GStreamer cmake files
calvaris@igalia.com [Tue, 22 Aug 2017 08:44:36 +0000 (08:44 +0000)]
[GStreamer][GTK][WPE] Move common things to GStreamer cmake files
https://bugs.webkit.org/show_bug.cgi?id=175625

Three files were created as kind of hooks for the GTK and WPE
CMake option files. The definitions one is to enable, disable and
create the common options (that can be and are actually overriden
in some cases. The dependencies one adds dependencies for the
option switches that are set. The checks one ensure the
dependencies are met depending on the option switches.

Reviewed by Žan Doberšek.

* Source/cmake/GStreamerChecks.cmake: Added.
* Source/cmake/GStreamerDefinitions.cmake: Added.
* Source/cmake/GStreamerDependencies.cmake: Added.
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

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

2 years ago[WK] Add missing ENABLE(NETWORK_CACHE) build guards
zandobersek@gmail.com [Tue, 22 Aug 2017 06:31:49 +0000 (06:31 +0000)]
[WK] Add missing ENABLE(NETWORK_CACHE) build guards
https://bugs.webkit.org/show_bug.cgi?id=175769

Reviewed by Carlos Alberto Lopez Perez.

Given that the build guard exists, it should be possible to
compile the WebKit layer with the feature disabled. Missing
guards are added in order to achieve that.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::clearDiskCache):
* UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::storeDerivedDataToCache):

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

2 years ago[Follow up]: Add back the ability to disable MASM_PROBE from the build.
mark.lam@apple.com [Tue, 22 Aug 2017 04:57:27 +0000 (04:57 +0000)]
[Follow up]: Add back the ability to disable MASM_PROBE from the build.
https://bugs.webkit.org/show_bug.cgi?id=175656
<rdar://problem/33933720>

Not reviewed.

Fixed a typo: should be "OS(WINDOWS)", not "OS(WINDOW)".

* wtf/Platform.h:

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

2 years agoChange probe code to use static_assert instead of COMPILE_ASSERT.
mark.lam@apple.com [Tue, 22 Aug 2017 04:41:25 +0000 (04:41 +0000)]
Change probe code to use static_assert instead of COMPILE_ASSERT.
https://bugs.webkit.org/show_bug.cgi?id=175762

Reviewed by JF Bastien.

* assembler/MacroAssemblerARM.cpp:
* assembler/MacroAssemblerARM64.cpp:
(JSC::MacroAssembler::probe): Deleted.
* assembler/MacroAssemblerARMv7.cpp:
* assembler/MacroAssemblerX86Common.cpp:

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

2 years agoMerge the latest version of Speedometer 2.0 to browserbench.org
rniwa@webkit.org [Tue, 22 Aug 2017 04:12:14 +0000 (04:12 +0000)]
Merge the latest version of Speedometer 2.0 to browserbench.org

Rubber-stamped by Joseph Pecoraro.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.
* Speedometer2.0/resources/benchmark-runner.js:
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js:
* Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js:
* Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js:
* Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js:
* Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css:
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/config/environment.js:
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js:
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js:
* Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js:

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

2 years agoMake generate_offset_extractor.rb architectures argument more robust
keith_miller@apple.com [Tue, 22 Aug 2017 03:19:46 +0000 (03:19 +0000)]
Make generate_offset_extractor.rb architectures argument more robust
https://bugs.webkit.org/show_bug.cgi?id=175809

Reviewed by Joseph Pecoraro.

It turns out that some of our builders pass their architectures as
space separated lists.  I decided to just make the splitting of
our list robust to any reasonable combination of spaces and
commas.

* offlineasm/generate_offset_extractor.rb:

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

2 years agoAdd Sony to domain affiliations on team page
commit-queue@webkit.org [Tue, 22 Aug 2017 02:25:12 +0000 (02:25 +0000)]
Add Sony to domain affiliations on team page
https://bugs.webkit.org/show_bug.cgi?id=175806

Patch by Ross Kirsling <ross.kirsling@sony.com> on 2017-08-21
Reviewed by Alex Christensen.

* wp-content/themes/webkit/team.php:

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

2 years ago[Cache API] Add support for Cache.add/addAll
commit-queue@webkit.org [Tue, 22 Aug 2017 02:03:24 +0000 (02:03 +0000)]
[Cache API] Add support for Cache.add/addAll
https://bugs.webkit.org/show_bug.cgi?id=175677

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

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/cache-storage/window/cache-add.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-storage.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-add.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-storage.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Cache.addAll implementation is then as follow:
- Fetch the resources in parallel.
- Wait for all them to complete using FetchTaskCounter.
- If an error happens in any load or if the response is not as expected for Cache API, reject the promise.
- Call the batch put operation with all received FetchResponse objects.

FetchTaskCounter is responsible to wait for each response to arrive.
It then checks whether the response is fine,
If not, the addAll promise is rejected.
Otherwise, it waits for the body to be received.

Introducing a helper routine to create a FetchRequest from a given RequestInfo.
Introducing a helper routine to check for Vary Header '*' value in response headers.

* Modules/cache/Cache.cpp:
(WebCore::Cache::doMatch):
(WebCore::Cache::add):
(WebCore::queryCacheMatch):
(WebCore::hasResponseVaryStarHeaderValue):
(WebCore::FetchTaskCounter::FetchTaskCounter):
(WebCore::FetchTaskCounter::~FetchTaskCounter):
(WebCore::FetchTaskCounter::addRecord):
(WebCore::FetchTaskCounter::isDone const):
(WebCore::FetchTaskCounter::reject):
(WebCore::Cache::requestFromInfo):
(WebCore::Cache::addAll):
(WebCore::Cache::put):
(WebCore::Cache::remove):
(WebCore::Cache::keys):
(WebCore::toConnectionRecord):
(WebCore::Cache::batchPutOperation):
* Modules/cache/Cache.h:

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

2 years agoDataInteractionTests.ExternalSourceAttributedStringToContentEditable hits a debug...
mmaxfield@apple.com [Tue, 22 Aug 2017 01:50:34 +0000 (01:50 +0000)]
DataInteractionTests.ExternalSourceAttributedStringToContentEditable hits a debug assertion
https://bugs.webkit.org/show_bug.cgi?id=175787
<rdar://problem/33996612>

Reviewed by Wenson Hsieh.

Source/WebCore:

The variation axis values of San Francisco changed from the GX-style scale to the CSS-style
scale. Previously, we were normalizing the values we got from Core Text to fit the CSS scale;
however, this is no longer necessary since the font now does this itself.

The assertion was getting hit because the normalized values were huge and were overflowing
a single FontSelectionValue (and going negative). This patch adds handling for this
situation.

Test: DataInteractionTests.ExternalSourceBoldSystemAttributedStringToContentEditable

* platform/graphics/FontSelectionAlgorithm.h: Typedef the backing type for a FontSelectionValue.
(WebCore::FontSelectionValue::rawValue const):
(WebCore::FontSelectionValue::maximumValue):
(WebCore::FontSelectionValue::minimumValue):
(WebCore::FontSelectionValue::FontSelectionValue):
* platform/graphics/cocoa/FontCacheCoreText.cpp: Opt-out of normalization for San Francisco.
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::capabilitiesForFontDescriptor):

Tools:

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

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

2 years ago[Beacon] Content extensions should be able to intercept Beacon / Ping redirects
cdumez@apple.com [Tue, 22 Aug 2017 01:32:24 +0000 (01:32 +0000)]
[Beacon] Content extensions should be able to intercept Beacon / Ping redirects
https://bugs.webkit.org/show_bug.cgi?id=175746
<rdar://problem/33946050>

Reviewed by Alex Christensen.

Source/WebCore:

Update PingLoad to process content extension rules upon redirect. This allows content
extensions to block and upgrade to HTTPS beacon / ping loads.

Because ping loads can outlive the WebProcess, the content extensions rules are passed
to the NetworkProcess when starting the Ping load. The PingLoad can then consult those
rules upon redirect, on the NetworkProcess side.

Tests: http/wpt/beacon/contentextensions/beacon-blocked.html
       http/wpt/beacon/contentextensions/beacon-redirect-blocked.html

* contentextensions/ContentExtensionActions.h:
* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::forEach):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForPingLoad):
* contentextensions/ContentExtensionsBackend.h:
* page/Page.h:
* page/UserContentProvider.cpp:
(WebCore::UserContentProvider::forEachContentExtension):
* page/UserContentProvider.h:

Source/WebKit:

Update PingLoad to process content extension rules upon redirect. This allows content
extensions to block and upgrade to HTTPS beacon / ping loads.

Because ping loads can outlive the WebProcess, the content extensions rules are passed
to the NetworkProcess when starting the Ping load. The PingLoad can then consult those
rules upon redirect, on the NetworkProcess side.

* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
* NetworkProcess/NetworkResourceLoadParameters.h:
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::willPerformHTTPRedirection):
(WebKit::PingLoad::contentExtensionsBackend):
(WebKit::PingLoad::processContentExtensionRulesForLoad):
* NetworkProcess/PingLoad.h:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::startPingLoad):

LayoutTests:

Add layout test coverage for blocking beacon loads via content extensions.

* http/wpt/beacon/connect-src-beacon-redirect-blocked.sub-expected.txt:
* http/wpt/beacon/connect-src-beacon-redirect-blocked.sub.html:
* http/wpt/beacon/contentextensions/beacon-blocked-expected.txt: Added.
* http/wpt/beacon/contentextensions/beacon-blocked.html: Added.
* http/wpt/beacon/contentextensions/beacon-blocked.html.json: Added.
* http/wpt/beacon/contentextensions/beacon-redirect-blocked-expected.txt: Added.
* http/wpt/beacon/contentextensions/beacon-redirect-blocked.html: Added.
* http/wpt/beacon/contentextensions/beacon-redirect-blocked.html.json: Added.

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

2 years ago[WPE][GTK] Unused variables in UserMediaProcessManager.cpp
aperez@igalia.com [Tue, 22 Aug 2017 01:14:15 +0000 (01:14 +0000)]
[WPE][GTK] Unused variables in UserMediaProcessManager.cpp
https://bugs.webkit.org/show_bug.cgi?id=175799

Reviewed by Alex Christensen.

The code which uses the "audioExtensionPath" and "videoExtensionPath" variables is guarded
with "#if ENABLE(SANDBOX_EXTENSIONS)”, so do the same for the variables themselves.

* UIProcess/UserMediaProcessManager.cpp: Add missing guards.

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

2 years agoOnly generate offline asm for the ARCHS (xcodebuild) or the current system (CMake)
keith_miller@apple.com [Tue, 22 Aug 2017 01:07:32 +0000 (01:07 +0000)]
Only generate offline asm for the ARCHS (xcodebuild) or the current system (CMake)
https://bugs.webkit.org/show_bug.cgi?id=175690

Reviewed by Michael Saboff.

This should reduce some of the time we spend building offline asm
in our builds (except for linux since they already did this).

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* offlineasm/backends.rb:
* offlineasm/generate_offset_extractor.rb:

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

2 years ago[GTK] ARMv7 build fails to build MacroAssemblerARMv7.cpp.
clopez@igalia.com [Tue, 22 Aug 2017 01:07:17 +0000 (01:07 +0000)]
[GTK] ARMv7 build fails to build MacroAssemblerARMv7.cpp.
https://bugs.webkit.org/show_bug.cgi?id=175514

Reviewed by Keith Miller.

* wtf/Platform.h: Enable DFG and MASM_PROBE back for GTK ARM_THUMB2.

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

2 years agoASSERTION FAILED: !m_connections.contains(&connection) in WebCore::SWServer::unregist...
beidson@apple.com [Tue, 22 Aug 2017 00:23:39 +0000 (00:23 +0000)]
ASSERTION FAILED: !m_connections.contains(&connection) in WebCore::SWServer::unregisterConnection(WebCore::SWServer::Connection&).
https://bugs.webkit.org/show_bug.cgi?id=175795

Rubber-stamped by Andy Estes.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::unregisterConnection): Flip the ASSERT to be... correct.

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

2 years agoTypo in "webkit-patch land"
mmaxfield@apple.com [Mon, 21 Aug 2017 23:39:53 +0000 (23:39 +0000)]
Typo in "webkit-patch land"
https://bugs.webkit.org/show_bug.cgi?id=175788

Reviewed by Tim Horton.

* Scripts/webkitpy/tool/steps/commit.py:
(Commit._commit_warning):

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

2 years agoCleanup TextPainter
dbates@webkit.org [Mon, 21 Aug 2017 23:21:15 +0000 (23:21 +0000)]
Cleanup TextPainter
https://bugs.webkit.org/show_bug.cgi?id=175782

Reviewed by Myles C. Maxfield.

Remove redundant mention of "text" in the name of TextPainter member functions, add separate
setters for selection and non-selection shadows, and do some other minor cleanups.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Update code for renamed functions.
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow): Ditto.
* rendering/TextPainter.cpp: Include ShadowData.h.
(WebCore::ShadowApplier::ShadowApplier): Use C++11 brace-initialization syntax.
(WebCore::ShadowApplier::isLastShadowIteration): Moved from TextPainter.h.
(WebCore::ShadowApplier::shadowIsCompletelyCoveredByText): Ditto.
(WebCore::TextPainter::paintTextOrEmphasisMarks): Renamed; formerly named drawTextOrEmphasisMarks.
(WebCore::TextPainter::paintTextWithShadows): Update code for renamed functions.
(WebCore::TextPainter::paintRange): Renamed; formerly named paintTextInRange.
(WebCore::TextPainter::paint): Renamed; formerly named paintText.
(WebCore::TextPainter::drawTextOrEmphasisMarks): Renamed to paintTextOrEmphasisMarks() to match
the naming convention of all the other paint functions in this class.
(WebCore::TextPainter::paintTextInRange): Renamed to paintRange.
(WebCore::TextPainter::paintText): Renamed to paint.
* rendering/TextPainter.h: Forward declare ShadowData.
(WebCore::TextPainter::setStyle): Renamed; formerly named setTextPaintStyle.
(WebCore::TextPainter::setSelectionStyle): Renamed; formerly named setSelectionPaintStyle.
(WebCore::TextPainter::setShadow): Added.
(WebCore::TextPainter::setSelectionShadow): Added.
(WebCore::TextPainter::setEmphasisMark): Renamed; formerly named addEmphasis.
(WebCore::TextPainter::setTextPaintStyle): Renamed to setStyle.
(WebCore::TextPainter::setSelectionPaintStyle): Renamed to setSelectionStyle.
(WebCore::TextPainter::addEmphasis): Renamed to setEmphasisMark.
(WebCore::TextPainter::addTextShadow): Split functionality into setShadow and setSelectionShadow.
(WebCore::ShadowApplier::isLastShadowIteration): Moved to TextPainter.cpp.
(WebCore::ShadowApplier::shadowIsCompletelyCoveredByText): Ditto.

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

2 years agoFixed expectations.
jlewis3@apple.com [Mon, 21 Aug 2017 23:15:59 +0000 (23:15 +0000)]
Fixed expectations.

Unreviewed test expectations.

* platform/mac/TestExpectations:

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

2 years agoAddressing post-review comments after r220725
mmaxfield@apple.com [Mon, 21 Aug 2017 23:04:28 +0000 (23:04 +0000)]
Addressing post-review comments after r220725
https://bugs.webkit.org/show_bug.cgi?id=175382

Reviewed by Darin Adler.

* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::setUnicodeRange):

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

2 years agoStop media/video-controls-toggling.html from timing out.
commit-queue@webkit.org [Mon, 21 Aug 2017 22:17:24 +0000 (22:17 +0000)]
Stop media/video-controls-toggling.html from timing out.
https://bugs.webkit.org/show_bug.cgi?id=116266

Patch by Ms2ger <Ms2ger@gmail.com> on 2017-08-21
Reviewed by Dean Jackson.

Use getComputedStyle to check the display property. Element::style only
contains properties set in the style attribute, but the display property
is set through CSS using the 'hidden' class.

* media/video-controls-toggling-expected.txt:
* media/video-controls-toggling.html:
* platform/gtk/TestExpectations:
* platform/gtk/media/video-controls-toggling-expected.txt:
  Copied from LayoutTests/media/video-controls-toggling-expected.txt.
  I'm not sure where the console message comes from, but it seems to
  be in the GTK-specific code.

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

2 years ago[Cache API] Add support for CacheStorage.match
commit-queue@webkit.org [Mon, 21 Aug 2017 21:58:58 +0000 (21:58 +0000)]
[Cache API] Add support for CacheStorage.match
https://bugs.webkit.org/show_bug.cgi?id=175747

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

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/cache-storage/window/cache-delete.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-keys.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-matchAll.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-put.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-storage-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-storage-match.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Introducing Cache::doMatch so that CacheStorage can use it.
Make Cache::match use Cache::doMatch as well.

Implementing CacheStorage.match as per spec:
- If name is provided, query only the cache with the given name.
- Otherwise pick the first matching response in the caches.
The sequential asynchronous search is done in doSequentialMatch.

Making sure that response with a status code are returning false to isNull.
This allows passing more tests.

* Modules/cache/Cache.cpp:
(WebCore::Cache::match):
(WebCore::Cache::doMatch):
(WebCore::Cache::matchAll):
(WebCore::toConnectionRecord):
* Modules/cache/Cache.h:
* Modules/cache/CacheStorage.cpp:
(WebCore::doSequentialMatch):
(WebCore::copyCaches):
(WebCore::CacheStorage::match):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::setHTTPStatusCode):

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

2 years agoPersistent WebGL Warning "vertex WARNING: 0:1: extension 'GL_ARB_gpu_shader5' is...
dino@apple.com [Mon, 21 Aug 2017 21:51:49 +0000 (21:51 +0000)]
Persistent WebGL Warning "vertex WARNING: 0:1: extension 'GL_ARB_gpu_shader5' is not supported" in Safari 10.1.2
https://bugs.webkit.org/show_bug.cgi?id=175783
<rdar://problem/33623867>

Reviewed by Alex Christensen.

Source/WebCore:

The version of ANGLE we use inserts this line into each shader:
It causes our lower-level GLSL compiler to give a warning, which is
confusing to developers because they didn't write this code.

Until we upgrade our OpenGL support to version 4.1, we should remove
this error message from the log returned to the developer.
See https://bugs.webkit.org/show_bug.cgi?id=175785

Test: fast/canvas/webgl/no-info-log-for-simple-shaders.html

* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::getUnmangledInfoLog): Search for and remove
this warning.

LayoutTests:

* fast/canvas/webgl/no-info-log-for-simple-shaders-expected.txt: Added.
* fast/canvas/webgl/no-info-log-for-simple-shaders.html: Added.

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

2 years agoStringView could use a function to strip leading/trailing characters without allocation
weinig@apple.com [Mon, 21 Aug 2017 21:10:24 +0000 (21:10 +0000)]
StringView could use a function to strip leading/trailing characters without allocation
https://bugs.webkit.org/show_bug.cgi?id=175757

Reviewed by Darin Adler.

Source/WTF:

There are many places in WebCore/WebKit that we call functions like,
WebCore::stripLeadingAndTrailingHTMLSpaces,  or String::stripWhiteSpace() only to use
the allocated String as a temporary for either another transformation or a comparison.
Now that we have StringView, we can avoid that extra allocation, by having returning a
StringView  substring in these scenarios.

For instance, the check (from ScriptElement.cpp:287):

if (!stripLeadingAndTrailingHTMLSpaces(sourceURL).isEmpty()) {
    ...
}

currently allocates a string just to make this check. With a new
stripLeadingAndTrailingHTMLSpaces such as:

StringView stripLeadingAndTrailingHTMLSpaces(StringView stringView)
{
    return stringView.stripLeadingAndTrailingMatchedCharacters([] (auto c) {
        return isHTMLSpace(c);
    });
}

We could instead have exact same code from ScriptElement.cpp now avoid an allocation.

* wtf/text/StringView.h:
(WTF::StringView::stripLeadingAndTrailingMatchedCharacters):

Tools:

* TestWebKitAPI/Tests/WTF/StringView.cpp:
Add tests for StringView::stripLeadingAndTrailingMatchedCharacters().

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

2 years agoMarked svg/animations/smil-leak-list-property-instances.svg as flaky on macOS WK1.
jlewis3@apple.com [Mon, 21 Aug 2017 20:55:22 +0000 (20:55 +0000)]
Marked svg/animations/smil-leak-list-property-instances.svg as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=174218

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 years ago[Payment Request] Use ExistingExceptionError to propagate JS exceptions thrown during...
aestes@apple.com [Mon, 21 Aug 2017 20:53:16 +0000 (20:53 +0000)]
[Payment Request] Use ExistingExceptionError to propagate JS exceptions thrown during JSON stringification
https://bugs.webkit.org/show_bug.cgi?id=175776

Reviewed by Darin Adler.

* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::create):
* Modules/paymentrequest/PaymentRequest.h:

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

2 years ago[PAL] Move spi/mac directory into PAL
commit-queue@webkit.org [Mon, 21 Aug 2017 20:35:39 +0000 (20:35 +0000)]
[PAL] Move spi/mac directory into PAL
https://bugs.webkit.org/show_bug.cgi?id=175649

Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-08-21
Reviewed by Myles C. Maxfield.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* editing/cocoa/DataDetection.mm:
* editing/mac/DictionaryLookup.h:
* editing/mac/DictionaryLookup.mm:
* page/mac/ServicesOverlayController.mm:
* page/mac/WheelEventDeltaFilterMac.mm:
* page/scrolling/mac/ScrollingMomentumCalculatorMac.mm:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
* platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:
* platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/graphics/mac/FontCacheMac.mm:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* platform/graphics/mac/MediaTimeQTKit.h:
* platform/mac/MediaRemoteSoftLink.cpp:
* platform/mac/MediaRemoteSoftLink.h:
* platform/mac/PasteboardWriter.mm:
* platform/mac/PlatformEventFactoryMac.mm:
* platform/mac/ScrollAnimatorMac.mm:
* platform/mac/ScrollbarThemeMac.mm:
* platform/mac/VideoFullscreenInterfaceMac.mm:
* platform/mac/WebVideoFullscreenController.mm:
* rendering/RenderThemeMac.mm:

Source/WebCore/PAL:

* PAL.xcodeproj/project.pbxproj:
* pal/spi/mac/AVFoundationSPI.h: Renamed from Source/WebCore/platform/spi/mac/AVFoundationSPI.h.
* pal/spi/mac/DataDetectorsSPI.h: Renamed from Source/WebCore/platform/spi/mac/DataDetectorsSPI.h.
* pal/spi/mac/LookupSPI.h: Renamed from Source/WebCore/platform/spi/mac/LookupSPI.h.
* pal/spi/mac/MediaRemoteSPI.h: Renamed from Source/WebCore/platform/spi/mac/MediaRemoteSPI.h.
* pal/spi/mac/NSAccessibilitySPI.h: Renamed from Source/WebCore/platform/spi/mac/NSAccessibilitySPI.h.
* pal/spi/mac/NSApplicationSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSApplicationSPI.h.
* pal/spi/mac/NSEventSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSEventSPI.h.
* pal/spi/mac/NSFontSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSFontSPI.h.
* pal/spi/mac/NSImmediateActionGestureRecognizerSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h.
* pal/spi/mac/NSMenuSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSMenuSPI.h.
* pal/spi/mac/NSPasteboardSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSPasteboardSPI.h.
* pal/spi/mac/NSPopoverSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSPopoverSPI.h.
* pal/spi/mac/NSScrollerImpSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h.
* pal/spi/mac/NSScrollingInputFilterSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSScrollingInputFilterSPI.h.
* pal/spi/mac/NSScrollingMomentumCalculatorSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSScrollingMomentumCalculatorSPI.h.
* pal/spi/mac/NSSharingServicePickerSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSSharingServicePickerSPI.h.
* pal/spi/mac/NSSharingServiceSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSSharingServiceSPI.h.
* pal/spi/mac/NSSpellCheckerSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSSpellCheckerSPI.h.
* pal/spi/mac/NSTextFinderSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSTextFinderSPI.h.
* pal/spi/mac/NSViewSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSViewSPI.h.
* pal/spi/mac/NSWindowSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSWindowSPI.h.
* pal/spi/mac/PIPSPI.h: Renamed from Source/WebCore/platform/spi/mac/PIPSPI.h.
* pal/spi/mac/QTKitSPI.h: Renamed from Source/WebCore/platform/spi/mac/QTKitSPI.h.
* pal/spi/mac/QuickLookMacSPI.h: Renamed from Source/WebCore/platform/spi/mac/QuickLookMacSPI.h.
* pal/spi/mac/TUCallSPI.h: Renamed from Source/WebCore/platform/spi/mac/TUCallSPI.h.

Source/WebKit:

* Platform/mac/MenuUtilities.mm:
* Shared/mac/WebCoreArgumentCodersMac.mm:
* Shared/mac/WebEventFactory.mm:
* Shared/mac/WebHitTestResultData.mm:
* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/Cocoa/WebViewImpl.mm:
* UIProcess/mac/ServicesController.mm:
* UIProcess/mac/TextCheckerMac.mm:
* UIProcess/mac/ViewGestureControllerMac.mm:
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
* UIProcess/mac/WKSharingServicePickerDelegate.mm:
* UIProcess/mac/WKTextFinderClient.mm:
* UIProcess/mac/WebContextMenuProxyMac.mm:
* UIProcess/mac/WebPageProxyMac.mm:
* WebProcess/cocoa/WebProcessCocoa.mm:

Source/WebKitLegacy/mac:

* Misc/WebSharingServicePickerController.h:
* WebCoreSupport/WebContextMenuClient.mm:
* WebCoreSupport/WebEditorClient.mm:
* WebCoreSupport/WebSelectionServiceController.mm:
* WebView/WebHTMLView.mm:
* WebView/WebImmediateActionController.h:
* WebView/WebImmediateActionController.mm:
* WebView/WebView.mm:

Tools:

* TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:

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

2 years ago[GTK][WPE][GSTREAMER_GL] Overriden virtual function not marked “override” in MediaPla...
aperez@igalia.com [Mon, 21 Aug 2017 20:16:41 +0000 (20:16 +0000)]
[GTK][WPE][GSTREAMER_GL] Overriden virtual function not marked “override” in MediaPlayerPrivateGStreamerBase.h
https://bugs.webkit.org/show_bug.cgi?id=175780

Reviewed by Konstantin Tokarev.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Add missing "override" qualifier.

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

2 years agoSplit the one SWServer::Connection into SWClientConnection and SWServer::Connection.
beidson@apple.com [Mon, 21 Aug 2017 20:02:42 +0000 (20:02 +0000)]
Split the one SWServer::Connection into SWClientConnection and SWServer::Connection.
https://bugs.webkit.org/show_bug.cgi?id=175745

Reviewed by Andy Estes.

Source/WebCore:

No new tests (No behavior change).

Each of these has a much different environment that it lives in, so being the same object
hinders clean development.

This split will also make it easier for the WebCore objects to directly handle WK2 messages.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:

* platform/Logging.h:

* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::scheduleJob):
* workers/service/ServiceWorkerContainer.h:

* workers/service/ServiceWorkerProvider.h:

* workers/service/server/SWClientConnection.cpp: Copied from Source/WebCore/workers/service/server/SWServer.cpp.
(WebCore::SWClientConnection::SWClientConnection):
(WebCore::SWClientConnection::~SWClientConnection):
(WebCore::SWClientConnection::scheduleJob):
(WebCore::SWClientConnection::jobRejectedInServer):
* workers/service/server/SWClientConnection.h: Copied from Source/WebCore/workers/service/server/SWServer.h.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::Connection::Connection):
(WebCore::SWServer::Connection::~Connection):
(WebCore::SWServer::~SWServer):
(WebCore::SWServer::Connection::scheduleJobInServer):
(WebCore::SWServer::scheduleJob):
(WebCore::SWServer::registerConnection):
(WebCore::SWServer::unregisterConnection):
(WebCore::SWServer::Connection::scheduleJob): Deleted.
(WebCore::SWServer::Connection::jobRejected): Deleted.
* workers/service/server/SWServer.h:
(WebCore::SWServer::Connection::server):
(WebCore::SWServer::Connection::~Connection): Deleted.

Source/WebKit:

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

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp: Renamed from Source/WebKit/WebProcess/Storage/WebSWServerConnection.cpp.
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::~WebSWServerConnection):
(WebKit::WebSWServerConnection::disconnectedFromWebProcess):
(WebKit::WebSWServerConnection::rejectJobInClient):
* StorageProcess/ServiceWorker/WebSWServerConnection.h: Copied from Source/WebKit/WebProcess/Storage/WebSWServerConnection.h.
(WebKit::WebSWServerConnection::identifier const):
* StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: Copied from Source/WebKit/WebProcess/Storage/WebSWServerConnection.messages.in.

* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didClose):
(WebKit::StorageToWebProcessConnection::establishSWServerConnection):
(WebKit::StorageToWebProcessConnection::removeSWServerConnection):
* StorageProcess/StorageToWebProcessConnection.h:

* WebProcess/Storage/WebSWClientConnection.cpp: Copied from Source/WebKit/WebProcess/Storage/WebServiceWorkerProvider.cpp.
(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::~WebSWClientConnection):
(WebKit::WebSWClientConnection::scheduleJobInServer):
* WebProcess/Storage/WebSWClientConnection.h: Renamed from Source/WebKit/WebProcess/Storage/WebSWServerConnection.h.
(WebKit::WebSWClientConnection::identifier const):
* WebProcess/Storage/WebSWClientConnection.messages.in: Renamed from Source/WebKit/WebProcess/Storage/WebSWServerConnection.messages.in.

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

* WebProcess/Storage/WebToStorageProcessConnection.cpp:
(WebKit::WebToStorageProcessConnection::didReceiveMessage):
(WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession):
* WebProcess/Storage/WebToStorageProcessConnection.h:

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

2 years agoRe-enable tests based on media-fullscreen.js for GTK.
commit-queue@webkit.org [Mon, 21 Aug 2017 19:06:36 +0000 (19:06 +0000)]
Re-enable tests based on media-fullscreen.js for GTK.
https://bugs.webkit.org/show_bug.cgi?id=175770

Patch by Ms2ger <Ms2ger@gmail.com> on 2017-08-21
Reviewed by Eric Carlson.

The media-fullscreen-not-in-document test checks that a disconnected
element can go fullscreen, while the code explicitly disallows that
(in Document::requestFullScreenForElement). Update the test to match
the code.

The media-fullscreen-inline test will now fail more clearly if the
attempt to go fullscreen is rejected (which it isn't).

* media/media-fullscreen-not-in-document-expected.txt: rebaseline.
* media/media-fullscreen.js:
(fullscreenerror): pass the test if the webkitfullscreenerror
(addEventListeners): add a webkitfullscreenerror event handler
* platform/gtk/TestExpectations: remove failure expectations.
* platform/gtk/media/media-fullscreen-not-in-document-expected.txt:
  Copied from LayoutTests/media/media-fullscreen-not-in-document-expected.txt.
  This copy leaves out the webkitSupportsPresentationMode check that's
  disabled on GTK.

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

2 years agoWeb Inspector: Can't copy text from "View variable value" popover in Styles sidebar
webkit@devinrousso.com [Mon, 21 Aug 2017 18:45:35 +0000 (18:45 +0000)]
Web Inspector: Can't copy text from "View variable value" popover in Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=175758

Reviewed by Matt Baker.

* UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch.prototype._swatchElementClicked):
Change CodeMirror readOnly from "nocursor" to true. The former prevents the editor from
being focused during selection, therefore preventing the content from being copied.

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

2 years agoMarked inspector/css/add-rule.html as flaky on macOS
jlewis3@apple.com [Mon, 21 Aug 2017 18:15:19 +0000 (18:15 +0000)]
Marked inspector/css/add-rule.html as flaky on macOS
https://bugs.webkit.org/show_bug.cgi?id=173560

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years ago[Payment Request] Implement the PaymentRequest constructor
aestes@apple.com [Mon, 21 Aug 2017 17:41:04 +0000 (17:41 +0000)]
[Payment Request] Implement the PaymentRequest constructor
https://bugs.webkit.org/show_bug.cgi?id=175755

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/payment-request/payment-request-constructor.https-expected.txt:
* web-platform-tests/payment-request/payment-request-id.https-expected.txt:

Source/WebCore:

* Modules/paymentrequest/PaymentDetailsModifier.h: Changed total to an std::optional<PaymentItem>.
* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::isWellFormedCurrencyCode): Implements the IsWellFormedCurrencyCode abstract operation from ECMA 402.
(WebCore::isValidDecimalMonetaryValue): Implements the "valid decimal monetary value" validity checker.
(WebCore::checkAndCanonicalizeAmount): Implements the "check and canonicalize amount" validity checker.
(WebCore::checkAndCanonicalizeTotal): Implements the "check and canonicalize total" validity checker.
(WebCore::PaymentRequest::create): Implements the PaymentRequest Constructor
(WebCore::PaymentRequest::PaymentRequest):
(WebCore::PaymentRequest::id const): Implements the PaymentRequest id attribute.
(WebCore::PaymentRequest::shippingType const): Implements the PaymentRequest shippingType attribute.
* Modules/paymentrequest/PaymentRequest.h:
* Modules/paymentrequest/PaymentRequest.idl: Annotated PaymentRequest with ConstructorMayThrowException.
* WebCore.xcodeproj/project.pbxproj:

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

2 years ago[Win] DRT should only allow any https certificate for localhost.
pvollan@apple.com [Mon, 21 Aug 2017 17:21:30 +0000 (17:21 +0000)]
[Win] DRT should only allow any https certificate for localhost.
https://bugs.webkit.org/show_bug.cgi?id=175147

Reviewed by Brent Fulgham.

Source/WebCore:

Disabling validation of certificate chains, breaks SSL on Windows. In order
for SSL tests to succeed on Windows, we should avoid disabling it.

No new tests, covered by existing tests.

* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):

Tools:

Add check to make sure only localhost requests allow any https certificate.

* DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):

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

2 years agoRebaselined js/dom/global-constructors-attributes.html on macOS.
jlewis3@apple.com [Mon, 21 Aug 2017 17:00:48 +0000 (17:00 +0000)]
Rebaselined js/dom/global-constructors-attributes.html on macOS.

Unreviewed test gardening.

* platform/mac-elcapitan-wk2/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-highsierra-wk1/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-highsierra/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:

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

2 years agoSkip imported/w3c/web-platform-tests/payment-request/payment-request-constructor...
ryanhaddad@apple.com [Mon, 21 Aug 2017 16:45:53 +0000 (16:45 +0000)]
Skip imported/w3c/web-platform-tests/payment-request/payment-request-constructor-crash.https.html.
https://bugs.webkit.org/show_bug.cgi?id=175773

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years ago[GTK][WPE] Rebaseline tests with list item markers.
commit-queue@webkit.org [Mon, 21 Aug 2017 16:36:59 +0000 (16:36 +0000)]
[GTK][WPE] Rebaseline tests with list item markers.
https://bugs.webkit.org/show_bug.cgi?id=175771

Unreviewed test gardening.

The output was changed in r220858 and rebaselined for ios and mac only.
They're changes in render tree dumps that don't affect rendering.

Patch by Ms2ger <Ms2ger@igalia.com> on 2017-08-21

* platform/gtk/css2.1/t0805-c5520-brdr-b-01-e-expected.txt:
* platform/gtk/fast/doctypes/002-expected.txt:
* platform/gtk/fast/lists/marker-before-empty-inline-expected.txt:
* platform/wpe/css2.1/t0805-c5520-brdr-b-01-e-expected.txt:

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

2 years agoAdd WTFLogChannel level to allow runtime log filtering
eric.carlson@apple.com [Mon, 21 Aug 2017 16:30:54 +0000 (16:30 +0000)]
Add WTFLogChannel level to allow runtime log filtering
https://bugs.webkit.org/show_bug.cgi?id=175731
<rdar://problem/33967234>

Unreviewed build fix.

* TestWebKitAPI/Tests/WebCore/Logging.cpp:
(TestWebKitAPI::LoggingTest::output): Disable testing output by default because it
fails on some of the bots.

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

2 years agomedia-captions.html improvements
commit-queue@webkit.org [Mon, 21 Aug 2017 15:44:28 +0000 (15:44 +0000)]
media-captions.html improvements
https://bugs.webkit.org/show_bug.cgi?id=175768

Patch by Ms2ger <Ms2ger@igalia.com> on 2017-08-21
Reviewed by Eric Carlson.

* media/media-captions.html: remove reference to unused script file.
* platform/gtk/TestExpectations: remove Timeout, Crash annotations.

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

2 years agoAdd WTFLogChannel level to allow runtime log filtering
eric.carlson@apple.com [Mon, 21 Aug 2017 13:03:05 +0000 (13:03 +0000)]
Add WTFLogChannel level to allow runtime log filtering
https://bugs.webkit.org/show_bug.cgi?id=175731
<rdar://problem/33967234>

Reviewed by Jer Noble.
Source/WTF:

Add WTFLog*, LOG, and RELEASE_LOG variants that take a "log level" parameter so code
can include logging statements that are only conditionally emitted.

* wtf/Assertions.cpp:
* wtf/Assertions.h:
* wtf/MemoryPressureHandler.cpp:
* wtf/RefCountedLeakCounter.cpp:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/Logging.cpp: Added.
(TestWebKitAPI::LoggingTest::output):
(TestWebKitAPI::TEST_F):

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

2 years agoMemoryCache::setCapacities assertion failure maxDeadBytes <= totalBytes
commit-queue@webkit.org [Mon, 21 Aug 2017 12:59:00 +0000 (12:59 +0000)]
MemoryCache::setCapacities assertion failure maxDeadBytes <= totalBytes
https://bugs.webkit.org/show_bug.cgi?id=175571

Patch by Charlie Turner <cturner@igalia.com> on 2017-08-21
Reviewed by Antti Koivisto.

* Shared/CacheModel.cpp:
(WebKit::calculateMemoryCacheSizes): Ensure cacheTotalCapacity is
set to a reasonable value even in low-memory environments.

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

2 years ago[EME] HTMLMediaElement: basic implementations of 'Attempt to Decrypt', 'Attempt to...
zandobersek@gmail.com [Mon, 21 Aug 2017 12:56:44 +0000 (12:56 +0000)]
[EME] HTMLMediaElement: basic implementations of 'Attempt to Decrypt', 'Attempt to Resume Playback If Necessary'
https://bugs.webkit.org/show_bug.cgi?id=175761

Reviewed by Xabier Rodriguez-Calvar.

Add initial and incomplete implementations of the 'Attempt to Decrypt' and
'Attempt to Resume Playback If Necessary' algorithms.  The implementations
are interleaved with the specification text for clarity.

'Attempt to Decrypt' implementation doesn't yet address the encrypted block
queue or the 'decryption blocked waiting for key' flag since it's not yet
clear whether it would make more sense for this state to reside lower, in
the platform layer. The gist of the algorithm is to invoke the decryption
attempt through the MediaPlayer object, passing along the CDMInstance object
retrieved from the MediaKeys object that is associated with this media
element.

'Attempt to Resume Playback if Necessary' implementation similarly for now
omits the various state flag operations. The main task at this point is to
dispatch the 'Attempt to Decrypt' algorithm.

HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary() method now
invokes the attemptToResumePlaybackIfNecessary() method.

MediaKeys::hasOpenSessions() is introduced, returning true if any session
that was created through this MediaKeys instance is still open. This allows
the 'Attempt to Decrypt' algorithm to proceed with the decryption attempt
dispatch into the MediaPlayer hierarchy.

For that, the MediaPlayer::attemptToDecryptWithInstance() method is added,
which simply dispatches the mirror method on MediaPlayerPrivate interface.
This will enable the platform-layer implementations to use the passed-in
CDMInstance object for decryption purposes.

* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::hasOpenSessions const):
* Modules/encryptedmedia/MediaKeys.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::attemptToDecrypt):
(WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
(WebCore::HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary):
* html/HTMLMediaElement.h: Mark cdmClientAttemptToResumePlaybackIfNecessary() as final.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::attemptToDecryptWithInstance):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::attemptToDecryptWithInstance):

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

2 years ago[GTK] Remove some old flaky crash expectations.
commit-queue@webkit.org [Mon, 21 Aug 2017 08:28:48 +0000 (08:28 +0000)]
[GTK] Remove some old flaky crash expectations.
https://bugs.webkit.org/show_bug.cgi?id=108682

Unreviewed test gardening.

Patch by Ms2ger <Ms2ger@gmail.com> on 2017-08-21

* platform/gtk/TestExpectations:

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

2 years agoGardening: fix CLoop build.
mark.lam@apple.com [Mon, 21 Aug 2017 06:56:19 +0000 (06:56 +0000)]
Gardening: fix CLoop build.
https://bugs.webkit.org/show_bug.cgi?id=175688
<rdar://problem/33436870>

Not reviewed.

Source/JavaScriptCore:

Make these files dependent on ENABLE(MASM_PROBE).

* assembler/ProbeContext.cpp:
* assembler/ProbeContext.h:
* assembler/ProbeStack.cpp:
* assembler/ProbeStack.h:

Source/WTF:

Disable MASM_PROBE if !ENABLE(JIT).

* wtf/Platform.h:

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

2 years ago[EME] Add basic implementation of HTMLMediaElement::setMediaKeys()
zandobersek@gmail.com [Mon, 21 Aug 2017 06:21:38 +0000 (06:21 +0000)]
[EME] Add basic implementation of HTMLMediaElement::setMediaKeys()
https://bugs.webkit.org/show_bug.cgi?id=175717

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Add an initial and incomplete implementation of HTMLMediaElement::setMediaKeys(),
interleaved with the specification wording of how this operation should behave.
The implementation still doesn't cover cases of CDM instances being already
associated with a different HTMLMediaElement, of CDM instances that can't be
disassociated from the current HTMLMediaElement, and of failures during both
association and disassociation of MediaKeys with the HTMLMediaElement.

The HTMLMediaElement (as a CDMClient inheritor) has to be attached or detached
from the MediaKeys object as appropriate. This attachment allows MediaKeys to
initiate an attempt to resume playback whenever the key statuses of the
associated MediaKeys object are updated.

Upon association and disassociation with MediaKeys, the CDMInstance object of
that specific MediaKeys instance is attached to or detached from the MediaPlayer
instance. This allows the platform layer to gather information about the
CDMInstance that will be used for decryption of media content for this specific
media element.

Additionally, the detachment from both MediaKeys and MediaPlayer is done upon
HTMLMediaElement destruction.

Upon setting the MediaKeys object, a task is queued that launches the 'Attempt to
Resume Playback If Necessary' algorithm. A placeholder method is added that will
implement the algorithm in the future.

The HTMLMediaElement::mediaKeys() getter is also implemented, returning pointer
held in m_mediaKeys.

Covered to a degree by existing imported W3C tests, with a setMediaKeys()-oriented
test having WPE-specific baseline update.

* Modules/encryptedmedia/MediaKeys.h:
(WebCore::MediaKeys::cdmInstance const):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::mediaKeys const):
(WebCore::HTMLMediaElement::setMediaKeys):
(WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
(WebCore::HTMLMediaElement::contextDestroyed):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::cdmInstanceAttached):
(WebCore::MediaPlayer::cdmInstanceDetached):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateInterface::cdmInstanceDetached):

LayoutTests:

* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt:
Update the baseline, with the test no longer timing out but instead
failing with a NotAllowed exception thrown.

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

2 years agoEnhance MacroAssembler::probe() to allow the probe function to resize the stack frame...
mark.lam@apple.com [Mon, 21 Aug 2017 04:26:40 +0000 (04:26 +0000)]
Enhance MacroAssembler::probe() to allow the probe function to resize the stack frame and alter stack data in one pass.
https://bugs.webkit.org/show_bug.cgi?id=175688
<rdar://problem/33436870>

Reviewed by JF Bastien.

With this patch, the clients of the MacroAssembler::probe() can now change
stack values without having to worry about whether there is enough room in the
current stack frame for it or not.  This is done using the Probe::Context's stack
member like so:

    jit.probe([] (Probe::Context& context) {
        auto cpu = context.cpu;
        auto stack = context.stack();
        uintptr_t* currentSP = cpu.sp<uintptr_t*>();

        // Get a value at the current stack pointer location.
        auto value = stack.get<uintptr_t>(currentSP);

        // Set a value above the current stack pointer (within current frame).
        stack.set<uintptr_t>(currentSP + 10, value);

        // Set a value below the current stack pointer (out of current frame).
        stack.set<uintptr_t>(currentSP - 10, value);

        // Set the new stack pointer.
        cpu.sp() = currentSP - 20;
    });

What happens behind the scene:

1. the generated JIT probe code will now call Probe::executeProbe(), and
   Probe::executeProbe() will in turn call the client's probe function.

   Probe::executeProbe() receives the Probe::State on the machine stack passed
   to it by the probe trampoline.  Probe::executeProbe() will instantiate a
   Probe::Context to be passed to the client's probe function.  The client will
   no longer see the Probe::State directly.

2. The Probe::Context comes with a Probe::Stack which serves as a manager of
   stack pages.  Currently, each page is 1K in size.
   Probe::Context::stack() returns a reference to an instance of Probe::Stack.

3. Invoking get() of set() on Probe::Stack with an address will lead to the
   following:

   a. the address will be decoded to a baseAddress that points to the 1K page
      that contains that address.

   b. the Probe::Stack will check if it already has a cached 1K page for that baseAddress.
      If so, go to step (f).  Else, continue with step (c).

   c. the Probe::Stack will malloc a 1K mirror page, and memcpy the 1K stack page
      for that specified baseAddress to this mirror page.

   d. the mirror page will be added to the ProbeStack's m_pages HashMap,
      keyed on the baseAddress.

   e. the ProbeStack will also cache the last baseAddress and its corresponding
      mirror page in use.  With memory accesses tending to be localized, this
      will save us from having to look up the page in the HashMap.

   f. get() will map the requested address to a physical address in the mirror
      page, and return the value at that location.

   g. set() will map the requested address to a physical address in the mirror
      page, and set the value at that location in the mirror page.

      set() will also set a dirty bit corresponding to the "cache line" that
      was modified in the mirror page.

4. When the client's probe function returns, Probe::executeProbe() will check if
   there are stack changes that need to be applied.  If stack changes are needed:

   a. Probe::executeProbe() will adjust the stack pointer to ensure enough stack
      space is available to flush the dirty stack pages.  It will also register a
      flushStackDirtyPages callback function in the Probe::State.  Thereafter,
      Probe::executeProbe() returns to the probe trampoline.

   b. the probe trampoline adjusts the stack pointer, moves the Probe::State to
      a safe place if needed, and then calls the flushStackDirtyPages callback
      if needed.

   c. the flushStackDirtyPages() callback iterates the Probe::Stack's m_pages
      HashMap and flush all dirty "cache lines" to the machine stack.
      Thereafter, flushStackDirtyPages() returns to the probe trampoline.

   d. lastly, the probe trampoline will restore all register values and return
      to the pc set in the Probe::State.

To make this patch work, I also had to do the following work:

5. Refactor MacroAssembler::CPUState into Probe::CPUState.
   Mainly, this means moving the code over to ProbeContext.h.
   I also added some convenience accessor methods for spr registers.

   Moved Probe::Context over to its own file ProbeContext.h/cpp.

6. Fix all probe trampolines to pass the address of Probe::executeProbe in
   addition to the client's probe function and arg.

   I also took this opportunity to optimize the generated JIT probe code to
   minimize the amount of memory stores needed.

7. Simplified the ARM64 probe trampoline.  The ARM64 probe only supports changing
   either lr or pc (or neither), but not both at in the same probe invocation.
   The ARM64 probe trampoline used to have to check for this invariant in the
   assembly trampoline code.  With the introduction of Probe::executeProbe(),
   we can now do it there and simplify the trampoline.

8. Fix a bug in the old  ARM64 probe trampoline for the case where the client
   changes lr.  That code path never worked before, but has now been fixed.

9. Removed trustedImm32FromPtr() helper functions in MacroAssemblerARM and
   MacroAssemblerARMv7.

   We can now use move() with TrustedImmPtr, and it does the same thing but in a
   more generic way.

       10. ARMv7's move() emitter may encode a T1 move instruction, which happens to have
   the same semantics as movs (according to the Thumb spec).  This means these
   instructions may trash the APSR flags before we have a chance to preserve them.

   This patch changes MacroAssemblerARMv7's probe() to preserve the APSR register
   early on.  This entails adding support for the mrs instruction in the
   ARMv7Assembler.

       10. Change testmasm's testProbeModifiesStackValues() to now modify stack values
   the easy way.

   Also fixed testmasm tests which check flag registers to only compare the
   portions that are modifiable by the client i.e. some masking is applied.

This patch has passed the testmasm tests on x86, x86_64, arm64, and armv7.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::mrs):
* assembler/AbstractMacroAssembler.h:
* assembler/MacroAssembler.cpp:
(JSC::stdFunctionCallback):
(JSC::MacroAssembler::probe):
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::CPUState::gprName): Deleted.
(JSC::MacroAssembler::CPUState::sprName): Deleted.
(JSC::MacroAssembler::CPUState::fprName): Deleted.
(JSC::MacroAssembler::CPUState::gpr): Deleted.
(JSC::MacroAssembler::CPUState::spr): Deleted.
(JSC::MacroAssembler::CPUState::fpr): Deleted.
(JSC:: const): Deleted.
(JSC::MacroAssembler::CPUState::fpr const): Deleted.
(JSC::MacroAssembler::CPUState::pc): Deleted.
(JSC::MacroAssembler::CPUState::fp): Deleted.
(JSC::MacroAssembler::CPUState::sp): Deleted.
(JSC::MacroAssembler::CPUState::pc const): Deleted.
(JSC::MacroAssembler::CPUState::fp const): Deleted.
(JSC::MacroAssembler::CPUState::sp const): Deleted.
(JSC::Probe::State::gpr): Deleted.
(JSC::Probe::State::spr): Deleted.
(JSC::Probe::State::fpr): Deleted.
(JSC::Probe::State::gprName): Deleted.
(JSC::Probe::State::sprName): Deleted.
(JSC::Probe::State::fprName): Deleted.
(JSC::Probe::State::pc): Deleted.
(JSC::Probe::State::fp): Deleted.
(JSC::Probe::State::sp): Deleted.
* assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::trustedImm32FromPtr): Deleted.
* assembler/MacroAssemblerARM64.cpp:
(JSC::MacroAssembler::probe):
(JSC::arm64ProbeError): Deleted.
* assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::armV7Condition):
(JSC::MacroAssemblerARMv7::trustedImm32FromPtr): Deleted.
* assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printCallback):
* assembler/MacroAssemblerPrinter.h:
* assembler/MacroAssemblerX86Common.cpp:
(JSC::ctiMasmProbeTrampoline):
(JSC::MacroAssembler::probe):
* assembler/Printer.h:
(JSC::Printer::Context::Context):
* assembler/ProbeContext.cpp: Added.
(JSC::Probe::executeProbe):
(JSC::Probe::handleProbeStackInitialization):
(JSC::Probe::probeStateForContext):
* assembler/ProbeContext.h: Added.
(JSC::Probe::CPUState::gprName):
(JSC::Probe::CPUState::sprName):
(JSC::Probe::CPUState::fprName):
(JSC::Probe::CPUState::gpr):
(JSC::Probe::CPUState::spr):
(JSC::Probe::CPUState::fpr):
(JSC::Probe:: const):
(JSC::Probe::CPUState::fpr const):
(JSC::Probe::CPUState::pc):
(JSC::Probe::CPUState::fp):
(JSC::Probe::CPUState::sp):
(JSC::Probe::CPUState::pc const):
(JSC::Probe::CPUState::fp const):
(JSC::Probe::CPUState::sp const):
(JSC::Probe::Context::Context):
(JSC::Probe::Context::gpr):
(JSC::Probe::Context::spr):
(JSC::Probe::Context::fpr):
(JSC::Probe::Context::gprName):
(JSC::Probe::Context::sprName):
(JSC::Probe::Context::fprName):
(JSC::Probe::Context::pc):
(JSC::Probe::Context::fp):
(JSC::Probe::Context::sp):
(JSC::Probe::Context::stack):
(JSC::Probe::Context::hasWritesToFlush):
(JSC::Probe::Context::releaseStack):
* assembler/ProbeStack.cpp: Added.
(JSC::Probe::Page::Page):
(JSC::Probe::Page::flushWrites):
(JSC::Probe::Stack::Stack):
(JSC::Probe::Stack::hasWritesToFlush):
(JSC::Probe::Stack::flushWrites):
(JSC::Probe::Stack::ensurePageFor):
* assembler/ProbeStack.h: Added.
(JSC::Probe::Page::baseAddressFor):
(JSC::Probe::Page::chunkAddressFor):
(JSC::Probe::Page::baseAddress):
(JSC::Probe::Page::get):
(JSC::Probe::Page::set):
(JSC::Probe::Page::hasWritesToFlush const):
(JSC::Probe::Page::flushWritesIfNeeded):
(JSC::Probe::Page::dirtyBitFor):
(JSC::Probe::Page::physicalAddressFor):
(JSC::Probe::Stack::Stack):
(JSC::Probe::Stack::lowWatermark):
(JSC::Probe::Stack::get):
(JSC::Probe::Stack::set):
(JSC::Probe::Stack::newStackPointer const):
(JSC::Probe::Stack::setNewStackPointer):
(JSC::Probe::Stack::isValid):
(JSC::Probe::Stack::pageFor):
* assembler/testmasm.cpp:
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):
(JSC::testProbePreservesGPRS):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesStackPointerToInsideProbeStateOnStack):
(JSC::testProbeModifiesStackPointerToNBytesBelowSP):
(JSC::testProbeModifiesProgramCounter):
(JSC::testProbeModifiesStackValues):
(JSC::run):
(): Deleted.
(JSC::fillStack): Deleted.
(JSC::testProbeModifiesStackWithCallback): Deleted.

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

2 years agoSimplify calls to LoaderStrategy::startPingLoad()
cdumez@apple.com [Sun, 20 Aug 2017 23:11:40 +0000 (23:11 +0000)]
Simplify calls to LoaderStrategy::startPingLoad()
https://bugs.webkit.org/show_bug.cgi?id=175756

Reviewed by Sam Weinig.

Source/WebCore:

Simplify calls to LoaderStrategy::startPingLoad() by passing the Frame to it
and let its implementation gets what it needs from the frame. This reduces
the number of parameters to startPingLoad() and is more easily extensible.

* dom/Document.h:
* loader/LoaderStrategy.h:
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::PingLoader::startPingLoad):
* loader/PingLoader.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):

Source/WebKit:

* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::startPingLoad):
* WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::startPingLoad):
* WebCoreSupport/WebResourceLoadScheduler.h:

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

2 years agoFactor :before/:after render tree mutations into a RenderTreeUpdater helper class
antti@apple.com [Sun, 20 Aug 2017 09:42:09 +0000 (09:42 +0000)]
Factor :before/:after render tree mutations into a RenderTreeUpdater helper class
https://bugs.webkit.org/show_bug.cgi?id=175752

Reviewed by Andreas Kling.

Move code that constructs generated content renderers out from PseudoElement.
Also refactor the related code from RenderTreeUpdater main class into
RenderTreeUpdater::GeneratedContent helper class.

* WebCore.xcodeproj/project.pbxproj:
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::resolveCustomStyle): Deleted.

    Not needed anymore.

(WebCore::PseudoElement::didAttachRenderers): Deleted.

    Moves to createContentRenderers in GeneratedContent.

(WebCore::PseudoElement::didRecalcStyle): Deleted.

    Moves to updateStyleForContentRenderers in GeneratedContent.

* dom/PseudoElement.h:
* style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::RenderTreeUpdater):
(WebCore::RenderTreeUpdater::~RenderTreeUpdater):
(WebCore::RenderTreeUpdater::commit):
(WebCore::RenderTreeUpdater::updateBeforeDescendants):
(WebCore::RenderTreeUpdater::updateAfterDescendants):
(WebCore::needsPseudoElement): Deleted.
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement): Deleted.
(WebCore::RenderTreeUpdater::updateQuotesUpTo): Deleted.

    Quotes and other :before/:after support moves to GeneratedContent helpwe.

* style/RenderTreeUpdater.h:
(WebCore::RenderTreeUpdater::generatedContent):
* style/RenderTreeUpdaterGeneratedContent.cpp: Added.
(WebCore::RenderTreeUpdater::GeneratedContent::GeneratedContent):
(WebCore::RenderTreeUpdater::GeneratedContent::updateBeforePseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::updateAfterPseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::updateRemainingQuotes):
(WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
(WebCore::createContentRenderers):
(WebCore::updateStyleForContentRenderers):
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::needsPseudoElement):
* style/RenderTreeUpdaterGeneratedContent.h: Added.

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

2 years ago[Payment Request] Add interface stubs
aestes@apple.com [Sun, 20 Aug 2017 02:11:33 +0000 (02:11 +0000)]
[Payment Request] Add interface stubs
https://bugs.webkit.org/show_bug.cgi?id=175730

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/payment-request/allowpaymentrequest/active-document-cross-origin.https.sub-expected.txt:
* web-platform-tests/payment-request/allowpaymentrequest/active-document-same-origin.https-expected.txt:
* web-platform-tests/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-same-origin-bc-containers.https-expected.txt:
* web-platform-tests/payment-request/allowpaymentrequest/basic.https-expected.txt:
* web-platform-tests/payment-request/allowpaymentrequest/no-attribute-same-origin-bc-containers.https-expected.txt:
* web-platform-tests/payment-request/historical.https-expected.txt:
* web-platform-tests/payment-request/interfaces.https-expected.txt:
* web-platform-tests/payment-request/payment-request-abort-method.https-expected.txt:
* web-platform-tests/payment-request/payment-request-constructor-crash.https-expected.txt:
* web-platform-tests/payment-request/payment-request-constructor.https-expected.txt:
* web-platform-tests/payment-request/payment-request-id.https-expected.txt:
* web-platform-tests/payment-request/payment-request-in-iframe-expected.txt:
* web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https-expected.txt:
* web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https-expected.txt:
* web-platform-tests/payment-request/payment-request-show-method.https-expected.txt:
* web-platform-tests/payment-request/payment-request-update-event-constructor.http-expected.txt:
* web-platform-tests/payment-request/payment-request-update-event-constructor.https-expected.txt:

Source/JavaScriptCore:

* runtime/CommonIdentifiers.h:

Source/WebCore:

* DerivedSources.make:
* Modules/paymentrequest/PaymentAddress.h: Added.
* Modules/paymentrequest/PaymentAddress.idl: Added.
* Modules/paymentrequest/PaymentComplete.h: Added.
* Modules/paymentrequest/PaymentComplete.idl: Added.
* Modules/paymentrequest/PaymentCurrencyAmount.h: Added.
* Modules/paymentrequest/PaymentCurrencyAmount.idl: Added.
* Modules/paymentrequest/PaymentDetailsBase.h: Added.
* Modules/paymentrequest/PaymentDetailsBase.idl: Added.
* Modules/paymentrequest/PaymentDetailsInit.h: Added.
* Modules/paymentrequest/PaymentDetailsInit.idl: Added.
* Modules/paymentrequest/PaymentDetailsModifier.h: Added.
* Modules/paymentrequest/PaymentDetailsModifier.idl: Added.
* Modules/paymentrequest/PaymentDetailsUpdate.h: Added.
* Modules/paymentrequest/PaymentDetailsUpdate.idl: Added.
* Modules/paymentrequest/PaymentItem.h: Added.
* Modules/paymentrequest/PaymentItem.idl: Added.
* Modules/paymentrequest/PaymentMethodData.h: Added.
* Modules/paymentrequest/PaymentMethodData.idl: Added.
* Modules/paymentrequest/PaymentOptions.h: Added.
* Modules/paymentrequest/PaymentOptions.idl: Added.
* Modules/paymentrequest/PaymentRequest.cpp: Added.
(WebCore::PaymentRequest::create):
(WebCore::PaymentRequest::PaymentRequest):
(WebCore::PaymentRequest::~PaymentRequest):
(WebCore::PaymentRequest::show):
(WebCore::PaymentRequest::abort):
(WebCore::PaymentRequest::canMakePayment):
* Modules/paymentrequest/PaymentRequest.h: Added.
* Modules/paymentrequest/PaymentRequest.idl: Added.
* Modules/paymentrequest/PaymentRequestUpdateEvent.cpp: Added.
(WebCore::PaymentRequestUpdateEvent::~PaymentRequestUpdateEvent):
(WebCore::PaymentRequestUpdateEvent::updateWith):
* Modules/paymentrequest/PaymentRequestUpdateEvent.h: Added.
* Modules/paymentrequest/PaymentRequestUpdateEvent.idl: Added.
* Modules/paymentrequest/PaymentRequestUpdateEventInit.h: Added.
* Modules/paymentrequest/PaymentRequestUpdateEventInit.idl: Added.
* Modules/paymentrequest/PaymentResponse.cpp: Added.
(WebCore::PaymentResponse::complete):
* Modules/paymentrequest/PaymentResponse.h: Added.
* Modules/paymentrequest/PaymentResponse.idl: Added.
* Modules/paymentrequest/PaymentShippingOption.h: Added.
* Modules/paymentrequest/PaymentShippingOption.idl: Added.
* Modules/paymentrequest/PaymentShippingType.h: Added.
* Modules/paymentrequest/PaymentShippingType.idl: Added.
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:
* dom/EventNames.in:
* dom/EventTargetFactory.in:

LayoutTests:

* TestExpectations: Skipped payment-request tests.
* platform/ios-wk2/TestExpectations: Enabled payment-request tests on ios-wk2.
* platform/mac-wk2/TestExpectations: Ditto for mac-wk2.

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

2 years ago[WebCrypto] Remove the KeyAlgorithm type hierarchy
commit-queue@webkit.org [Sat, 19 Aug 2017 17:28:59 +0000 (17:28 +0000)]
[WebCrypto] Remove the KeyAlgorithm type hierarchy
https://bugs.webkit.org/show_bug.cgi?id=175750

Patch by Sam Weinig <sam@webkit.org> on 2017-08-19
Reviewed by Chris Dumez.

Removes the unnecessary indirection that existed to generate a
KeyAlgorithm dictionary (or rather, one of its derived dictionaries)
for a CryptoKey. We were calling the virtual buildAlgorithm(), which
return a std::unique_ptr<KeyAlgorithm>, which we then casted to the
correct derived class and called dictionary() on. This can now be
simplified by making each CryptoKey derived class override a function
that returns the KeyAlgorithm variant.

* crypto/CryptoKey.cpp:
(WebCore::CryptoKey::algorithm const): Deleted.
* crypto/CryptoKey.h:
(WebCore::CryptoKey::extractable const):
(WebCore::KeyAlgorithm::~KeyAlgorithm): Deleted.
(WebCore::KeyAlgorithm::name const): Deleted.
(WebCore::KeyAlgorithm::KeyAlgorithm): Deleted.
* crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:
(WebCore::CryptoKeyRSA::algorithm const):
(WebCore::CryptoKeyRSA::buildAlgorithm const): Deleted.
* crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::algorithm const):
(WebCore::AesKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyAES::buildAlgorithm const): Deleted.
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::algorithm const):
(WebCore::EcKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyEC::buildAlgorithm const): Deleted.
* crypto/keys/CryptoKeyEC.h:
(WebCore::EcKeyAlgorithm::EcKeyAlgorithm): Deleted.
(WebCore::EcKeyAlgorithm::namedCurve const): Deleted.
* crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::algorithm const):
(WebCore::HmacKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyHMAC::buildAlgorithm const): Deleted.
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.cpp:
(WebCore::RsaKeyAlgorithm::dictionary const): Deleted.
(WebCore::RsaHashedKeyAlgorithm::dictionary const): Deleted.
* crypto/keys/CryptoKeyRSA.h:
(WebCore::RsaKeyAlgorithm::RsaKeyAlgorithm): Deleted.
(WebCore::RsaKeyAlgorithm::modulusLength const): Deleted.
(WebCore::RsaKeyAlgorithm::publicExponent const): Deleted.
* crypto/keys/CryptoKeyRaw.cpp:
(WebCore::CryptoKeyRaw::algorithm const):
(WebCore::RawKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyRaw::buildAlgorithm const): Deleted.
* crypto/keys/CryptoKeyRaw.h:
(WebCore::RawKeyAlgorithm::RawKeyAlgorithm): Deleted.
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::algorithm const):
(WebCore::CryptoKeyRSA::buildAlgorithm const): Deleted.

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

2 years ago[Mac] Change uint8_t* to Vector<uint8_t> type in all crypto algorithm implementation
commit-queue@webkit.org [Sat, 19 Aug 2017 16:41:47 +0000 (16:41 +0000)]
[Mac] Change uint8_t* to Vector<uint8_t> type in all crypto algorithm implementation
https://bugs.webkit.org/show_bug.cgi?id=164939

Patch by Sam Weinig <sam@webkit.org> on 2017-08-19
Reviewed by Chris Dumez.

Address FIXMEs, replacing uint8_t*/size_t parameters with Vector<uint8_t>&.

* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::transformAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
* crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
(WebCore::wrapKeyAES_KW):
(WebCore::unwrapKeyAES_KW):
(WebCore::CryptoAlgorithmAES_KW::platformWrapKey):
(WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::calculateSignature):
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
* crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
(WebCore::encryptRSAES_PKCS1_v1_5):
(WebCore::decryptRSAES_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::signRSASSA_PKCS1_v1_5):
(WebCore::verifyRSASSA_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
* crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
(WebCore::encryptRSA_OAEP):
(WebCore::decryptRSA_OAEP):
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):

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

2 years ago[iOS WK2] Add a version of DataInteractionTests.ExternalSourceAttributedStringToConte...
wenson_hsieh@apple.com [Sat, 19 Aug 2017 08:46:16 +0000 (08:46 +0000)]
[iOS WK2] Add a version of DataInteractionTests.ExternalSourceAttributedStringToContentEditable that doesn't hit a debug assertion
https://bugs.webkit.org/show_bug.cgi?id=175509
<rdar://problem/33728169>

Reviewed by Ryosuke Niwa.

Removes ExternalSourceAttributedStringToContentEditable and adds
ExternalSourceColoredAttributedStringToContentEditable, which tests dropping an attributed string with colored
text instead of a bold attributed string of system font. Due to a recent change in behavior in UIKit, the
original test (which this patch renames to ExternalSourceBoldSystemAttributedStringToContentEditable) hits a
debug assertion when dropping text of system bold font. Since the original intent of this test was to verify
that the attributed string UTI can be accepted in richly contenteditable areas, it suffices to check that some
other style attribute, such as color, carries over from the NSAttributedString to the DOM.

Also marks ExternalSourceBoldSystemAttributedStringToContentEditable as disabled for the time being.

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

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

2 years agoForbid setDragImage after dragstart
rniwa@webkit.org [Sat, 19 Aug 2017 06:40:30 +0000 (06:40 +0000)]
Forbid setDragImage after dragstart
https://bugs.webkit.org/show_bug.cgi?id=175751

Reviewed by Wenson Hsieh.

Removed the code to allow setting the drag mage after dragstart had happened.

The feature was apparently used in Mac WebKit1 port but using it today causes the drag image
to disapepar while the user is moving the mouse cursor and being drawn once it's stopped
and results in the contionus flickering of the drag image.

The feaure was never supported in WebKit2 and doesn't match the HTML5 specification:
https://html.spec.whatwg.org/multipage/dnd.html#concept-dnd-rw
https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-setdragimage
or the behaviors of other browsers such as Chrome and Firefox.

No new tests. This patch simply removes code.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::setDragImage):
(WebCore::DataTransfer::canSetDragImage const): Deleted.
* dom/DataTransfer.h:
(WebCore::DataTransfer::makeDragImageWritable): Deleted.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):

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

2 years agoREGRESSION(r219640): Speedometer no longer runs on Safari 7
rniwa@webkit.org [Sat, 19 Aug 2017 03:05:57 +0000 (03:05 +0000)]
REGRESSION(r219640): Speedometer no longer runs on Safari 7
https://bugs.webkit.org/show_bug.cgi?id=175749

Reviewed by Joseph Pecoraro.

PerformanceTests:

Use regular string instead of template literal to make the script compatible with older versions of Safari.

* Speedometer/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._runTest):

Websites/browserbench.org:

Fix the bug on browserbench.org.

* Speedometer/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._runTest):

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

2 years ago[WebCrypto] Get rid of CryptoKeyData class and all its subclasses
weinig@apple.com [Sat, 19 Aug 2017 01:40:54 +0000 (01:40 +0000)]
[WebCrypto] Get rid of CryptoKeyData class and all its subclasses
https://bugs.webkit.org/show_bug.cgi?id=169806

Reviewed by Chris Dumez.

- Replaces the CryptoKeyData type hierarchy

    CryptoKeyData
      - CryptoKeyDataOctetSequence
      - CryptoKeyDataRSAComponents

  with the renamed CryptoKeyRSAComponents.

- Removes pure virtual exportData function on CryptoKey, and all
  the implementations except the one on CryptoKeyRSA, which now is
  non-virtual, and returns a CryptoKeyRSAComponents. Update the one
  external caller, SerializedScriptValue, to handle this.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/SerializedScriptValue.cpp:
* crypto/CryptoAlgorithm.h:
* crypto/CryptoKey.h:
* crypto/CryptoKeyData.h: Removed.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
* crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::exportData const):
* crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::exportData const): Deleted.
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyDataOctetSequence.cpp: Removed.
* crypto/keys/CryptoKeyDataOctetSequence.h: Removed.
* crypto/keys/CryptoKeyDataRSAComponents.cpp: Removed.
* crypto/keys/CryptoKeyDataRSAComponents.h: Removed.
* crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::exportData const): Deleted.
* crypto/keys/CryptoKeyEC.h:
* crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::exportData const): Deleted.
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.cpp:
(WebCore::CryptoKeyRSA::importJwk):
(WebCore::CryptoKeyRSA::exportJwk const):
* crypto/keys/CryptoKeyRSA.h:
* crypto/keys/CryptoKeyRSAComponents.cpp: Copied from crypto/keys/CryptoKeyDataRSAComponents.cpp.
(WebCore::CryptoKeyRSAComponents::CryptoKeyRSAComponents):
(WebCore::CryptoKeyRSAComponents::~CryptoKeyRSAComponents):
(WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents): Deleted.
(WebCore::CryptoKeyDataRSAComponents::~CryptoKeyDataRSAComponents): Deleted.
* crypto/keys/CryptoKeyRSAComponents.h: Copied from crypto/keys/CryptoKeyDataRSAComponents.h.
(WebCore::CryptoKeyRSAComponents::createPublic):
(WebCore::CryptoKeyRSAComponents::createPrivate):
(WebCore::CryptoKeyRSAComponents::createPrivateWithAdditionalData):
* crypto/keys/CryptoKeyRaw.cpp:
(WebCore::CryptoKeyRaw::exportData const): Deleted.
* crypto/keys/CryptoKeyRaw.h:
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::getPrivateKeyComponents):
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::exportData const):

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

2 years ago[Cache API] Add support for being loaded responses
commit-queue@webkit.org [Sat, 19 Aug 2017 01:29:50 +0000 (01:29 +0000)]
[Cache API] Add support for being loaded responses
https://bugs.webkit.org/show_bug.cgi?id=175732

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

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/cache-storage/common.https-expected.txt:

Source/WebCore:

Covered by existing and rebased tests.

Introducing a callback-based method to consume the body when the load is finished.
Using that new method in Cache::put and calling batchPutOperation when the load is finished.

Fixing the case of a fetch response being cloned, in which case its body should be marked as ReadableStream.

* Modules/cache/Cache.cpp:
(WebCore::Cache::put): Changing order of checks to reduce test flakiness risks as there is not yet support for putting responses with ReadableStream.
(WebCore::toConnectionRecord):
(WebCore::Cache::batchPutOperation):
* Modules/cache/Cache.h:
* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::readableStreamBody): Deleted.
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::loadingBody):
(WebCore::FetchBody::setAsReadableStream):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::didFail):
(WebCore::FetchResponse::consumeBody):
(WebCore::FetchResponse::consumeBodyWhenLoaded):
* Modules/fetch/FetchResponse.h:

LayoutTests:

* TestExpectations: Removing some flaky test expectations.

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

2 years agoUnreviewed, rolling out r220938.
ryanhaddad@apple.com [Sat, 19 Aug 2017 00:30:59 +0000 (00:30 +0000)]
Unreviewed, rolling out r220938.

The API tests added with this change are failing.

Reverted changeset:

"Add WTFLogChannel level to allow runtime log filtering"
https://bugs.webkit.org/show_bug.cgi?id=175731
http://trac.webkit.org/changeset/220938

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

2 years ago[Beacon] Improve error reporting
cdumez@apple.com [Sat, 19 Aug 2017 00:27:59 +0000 (00:27 +0000)]
[Beacon] Improve error reporting
https://bugs.webkit.org/show_bug.cgi?id=175723

Reviewed by Darin Adler.

Source/WebCore:

Have Ping loads such as beacons report errors via their completion handler.
The Beacon API is using this error to log a console message when beacon loads
fail, provided that the page is still alive.

Test: http/wpt/beacon/beacon-async-error-logging.html

* Modules/beacon/NavigatorBeacon.cpp:
(WebCore::NavigatorBeacon::NavigatorBeacon):
(WebCore::NavigatorBeacon::~NavigatorBeacon):
(WebCore::NavigatorBeacon::from):
(WebCore::NavigatorBeacon::supplementName):
(WebCore::NavigatorBeacon::notifyFinished):
(WebCore::NavigatorBeacon::logError):
(WebCore::NavigatorBeacon::sendBeacon):
* Modules/beacon/NavigatorBeacon.h:
* loader/LoaderStrategy.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestBeaconResource):
* loader/cache/CachedResourceLoader.h:
* platform/network/PingHandle.h:

Source/WebKit:

Have Ping loads such as beacons report errors via their completion handler.
The Beacon API is using this error to log a console message when beacon loads
fail, provided that the page is still alive.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::didFinishPingLoad):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::~PingLoad):
(WebKit::PingLoad::didFinish):
(WebKit::PingLoad::willPerformHTTPRedirection):
(WebKit::PingLoad::didReceiveChallenge):
(WebKit::PingLoad::didReceiveResponseNetworkSession):
(WebKit::PingLoad::didCompleteWithError):
(WebKit::PingLoad::wasBlocked):
(WebKit::PingLoad::cannotShowURL):
(WebKit::PingLoad::timeoutTimerFired):
(WebKit::PingLoad::currentRequest const):
(WebKit::PingLoad::makeCrossOriginAccessRequestWithPreflight):
* NetworkProcess/PingLoad.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didFinishPingLoad):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.messages.in:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::networkProcessCrashed):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::didFinishPingLoad):
* WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

Have Ping loads such as beacons report errors via their completion handler.
The Beacon API is using this error to log a console message when beacon loads
fail, provided that the page is still alive.

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::startPingLoad):
* WebCoreSupport/WebResourceLoadScheduler.h:

LayoutTests:

Add layout test coverage.

* http/wpt/beacon/beacon-async-error-logging-expected.txt: Added.
* http/wpt/beacon/beacon-async-error-logging.html: Added.

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

2 years agoUnreviewed, change my email.
webkit@devinrousso.com [Sat, 19 Aug 2017 00:27:29 +0000 (00:27 +0000)]
Unreviewed, change my email.

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

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

2 years agoMarked fast/scrolling/arrow-key-scroll-in-rtl-document.html as flaky.
jlewis3@apple.com [Sat, 19 Aug 2017 00:20:21 +0000 (00:20 +0000)]
Marked fast/scrolling/arrow-key-scroll-in-rtl-document.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173779

Unreviewed Test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoSkip flaky JSC test microbenchmarks/generator-with-several-types.js.
ryanhaddad@apple.com [Sat, 19 Aug 2017 00:03:20 +0000 (00:03 +0000)]
Skip flaky JSC test microbenchmarks/generator-with-several-types.js.
https://bugs.webkit.org/show_bug.cgi?id=172543

Unreviewed test gardening.

* microbenchmarks/generator-with-several-types.js:

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

2 years agoFix leak-checking for iOS Simulators
jbedard@apple.com [Fri, 18 Aug 2017 23:26:40 +0000 (23:26 +0000)]
Fix leak-checking for iOS Simulators
https://bugs.webkit.org/show_bug.cgi?id=175735

Reviewed by Darin Adler.

If the leak checking currently occurs in ServerProcess, we can’t check leaks on an iOS
Simulator (or device) because the process will have already been killed by the time we
check for leaks. Duplicate leak-checking code and share code waiting on a process to stop.

* Scripts/webkitpy/port/server_process.py:
(ServerProcess.stop): Move code waiting for the process to close to _wait_for_stop(...).
(ServerProcess._wait_for_stop): Share code shutting down a process between ServerProcess
and SimulatorProcess.
* Scripts/webkitpy/port/simulator_process.py:
(SimulatorProcess.stop): Before closing the process, check for leaks.

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

2 years agoRemove the deprecated WebKitSubtleCrypto interface
weinig@apple.com [Fri, 18 Aug 2017 23:24:59 +0000 (23:24 +0000)]
Remove the deprecated WebKitSubtleCrypto interface
https://bugs.webkit.org/show_bug.cgi?id=164938
<rdar://problem/29894563>

Reviewed by Chris Dumez.

Source/WebCore:

Remove WebKitSubtleCrypto and all of its helper classes / functionality.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmDictionary.cpp: Removed.
* bindings/js/JSCryptoAlgorithmDictionary.h: Removed.
* bindings/js/JSCryptoKeySerializationJWK.cpp: Removed.
* bindings/js/JSCryptoKeySerializationJWK.h: Removed.
* bindings/js/JSCryptoOperationData.cpp: Removed.
* bindings/js/JSCryptoOperationData.h: Removed.
* bindings/js/JSWebKitSubtleCryptoCustom.cpp: Removed.
* crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::deriveKey): Deleted.
(WebCore::CryptoAlgorithm::encryptForWrapKey): Deleted.
(WebCore::CryptoAlgorithm::decryptForUnwrapKey): Deleted.
* crypto/CryptoAlgorithm.h:
* crypto/CryptoAlgorithmParametersDeprecated.h: Removed.
* crypto/CryptoKeySerialization.h: Removed.
* crypto/WebKitSubtleCrypto.cpp: Removed.
* crypto/WebKitSubtleCrypto.h: Removed.
* crypto/WebKitSubtleCrypto.idl: Removed.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches const): Deleted.
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
(WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey): Deleted.
(WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey): Deleted.
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches const): Deleted.
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches const): Deleted.
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches const): Deleted.
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
* crypto/algorithms/CryptoAlgorithmSHA1.cpp:
* crypto/algorithms/CryptoAlgorithmSHA1.h:
* crypto/algorithms/CryptoAlgorithmSHA224.cpp:
* crypto/algorithms/CryptoAlgorithmSHA224.h:
* crypto/algorithms/CryptoAlgorithmSHA256.cpp:
* crypto/algorithms/CryptoAlgorithmSHA256.h:
* crypto/algorithms/CryptoAlgorithmSHA384.cpp:
* crypto/algorithms/CryptoAlgorithmSHA384.h:
* crypto/algorithms/CryptoAlgorithmSHA512.cpp:
* crypto/algorithms/CryptoAlgorithmSHA512.h:
* crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp:
* crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt): Deleted.
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt): Deleted.
* crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
* crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:
* crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp:
* crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp:
* crypto/keys/CryptoKeySerializationRaw.cpp: Removed.
* crypto/keys/CryptoKeySerializationRaw.h: Removed.
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
* crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt): Deleted.
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt): Deleted.
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
* crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
* crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
* crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h: Removed.
* crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h: Removed.
* features.json:
* page/Crypto.cpp:
* page/Crypto.h:
* page/Crypto.idl:

LayoutTests:

* crypto/webkitSubtle: Removed.
* crypto/webkitSubtle/aes-cbc-192-encrypt-decrypt-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-192-encrypt-decrypt.html: Removed.
* crypto/webkitSubtle/aes-cbc-256-encrypt-decrypt-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-256-encrypt-decrypt.html: Removed.
* crypto/webkitSubtle/aes-cbc-encrypt-decrypt-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-encrypt-decrypt-with-padding-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-encrypt-decrypt-with-padding.html: Removed.
* crypto/webkitSubtle/aes-cbc-encrypt-decrypt.html: Removed.
* crypto/webkitSubtle/aes-cbc-generate-key-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-generate-key.html: Removed.
* crypto/webkitSubtle/aes-cbc-import-jwk-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-import-jwk.html: Removed.
* crypto/webkitSubtle/aes-cbc-invalid-length-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-invalid-length.html: Removed.
* crypto/webkitSubtle/aes-cbc-unwrap-failure-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-unwrap-failure.html: Removed.
* crypto/webkitSubtle/aes-cbc-unwrap-rsa-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-unwrap-rsa.html: Removed.
* crypto/webkitSubtle/aes-cbc-wrap-rsa-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-wrap-rsa-non-extractable-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-wrap-rsa-non-extractable.html: Removed.
* crypto/webkitSubtle/aes-cbc-wrap-rsa.html: Removed.
* crypto/webkitSubtle/aes-cbc-wrong-key-class-expected.txt: Removed.
* crypto/webkitSubtle/aes-cbc-wrong-key-class.html: Removed.
* crypto/webkitSubtle/aes-export-key-expected.txt: Removed.
* crypto/webkitSubtle/aes-export-key.html: Removed.
* crypto/webkitSubtle/aes-kw-key-manipulation-expected.txt: Removed.
* crypto/webkitSubtle/aes-kw-key-manipulation.html: Removed.
* crypto/webkitSubtle/aes-kw-wrap-unwrap-aes-expected.txt: Removed.
* crypto/webkitSubtle/aes-kw-wrap-unwrap-aes.html: Removed.
* crypto/webkitSubtle/aes-postMessage-expected.txt: Removed.
* crypto/webkitSubtle/aes-postMessage.html: Removed.
* crypto/webkitSubtle/argument-conversion-expected.txt: Removed.
* crypto/webkitSubtle/argument-conversion.html: Removed.
* crypto/webkitSubtle/array-buffer-view-offset-expected.txt: Removed.
* crypto/webkitSubtle/array-buffer-view-offset.html: Removed.
* crypto/webkitSubtle/disallowed-in-worker-expected.txt: Removed.
* crypto/webkitSubtle/disallowed-in-worker.html: Removed.
* crypto/webkitSubtle/gc-2-expected.txt: Removed.
* crypto/webkitSubtle/gc-2.html: Removed.
* crypto/webkitSubtle/gc-3-expected.txt: Removed.
* crypto/webkitSubtle/gc-3.html: Removed.
* crypto/webkitSubtle/gc-expected.txt: Removed.
* crypto/webkitSubtle/gc.html: Removed.
* crypto/webkitSubtle/hmac-check-algorithm-expected.txt: Removed.
* crypto/webkitSubtle/hmac-check-algorithm.html: Removed.
* crypto/webkitSubtle/hmac-export-key-expected.txt: Removed.
* crypto/webkitSubtle/hmac-export-key.html: Removed.
* crypto/webkitSubtle/hmac-generate-key-expected.txt: Removed.
* crypto/webkitSubtle/hmac-generate-key.html: Removed.
* crypto/webkitSubtle/hmac-import-jwk-expected.txt: Removed.
* crypto/webkitSubtle/hmac-import-jwk.html: Removed.
* crypto/webkitSubtle/hmac-postMessage-expected.txt: Removed.
* crypto/webkitSubtle/hmac-postMessage.html: Removed.
* crypto/webkitSubtle/hmac-sign-verify-empty-key-expected.txt: Removed.
* crypto/webkitSubtle/hmac-sign-verify-empty-key.html: Removed.
* crypto/webkitSubtle/hmac-sign-verify-expected.txt: Removed.
* crypto/webkitSubtle/hmac-sign-verify.html: Removed.
* crypto/webkitSubtle/import-export-raw-key-leak-expected.txt: Removed.
* crypto/webkitSubtle/import-export-raw-key-leak.html: Removed.
* crypto/webkitSubtle/import-jwk-expected.txt: Removed.
* crypto/webkitSubtle/import-jwk.html: Removed.
* crypto/webkitSubtle/jwk-export-use-values-expected.txt: Removed.
* crypto/webkitSubtle/jwk-export-use-values.html: Removed.
* crypto/webkitSubtle/jwk-import-use-values-expected.txt: Removed.
* crypto/webkitSubtle/jwk-import-use-values.html: Removed.
* crypto/webkitSubtle/resources: Removed.
* crypto/webkitSubtle/resources/disallowed-in-worker.js: Removed.
* crypto/webkitSubtle/resources/rsa-indexeddb-non-exportable.js: Removed.
* crypto/webkitSubtle/resources/rsa-indexeddb.js: Removed.
* crypto/webkitSubtle/rsa-export-generated-keys-expected.txt: Removed.
* crypto/webkitSubtle/rsa-export-generated-keys.html: Removed.
* crypto/webkitSubtle/rsa-export-key-expected.txt: Removed.
* crypto/webkitSubtle/rsa-export-key.html: Removed.
* crypto/webkitSubtle/rsa-export-private-key-expected.txt: Removed.
* crypto/webkitSubtle/rsa-export-private-key.html: Removed.
* crypto/webkitSubtle/rsa-indexeddb-expected.txt: Removed.
* crypto/webkitSubtle/rsa-indexeddb-non-exportable-expected.txt: Removed.
* crypto/webkitSubtle/rsa-indexeddb-non-exportable-private-expected.txt: Removed.
* crypto/webkitSubtle/rsa-indexeddb-non-exportable-private.html: Removed.
* crypto/webkitSubtle/rsa-indexeddb-non-exportable.html: Removed.
* crypto/webkitSubtle/rsa-indexeddb-private-expected.txt: Removed.
* crypto/webkitSubtle/rsa-indexeddb-private.html: Removed.
* crypto/webkitSubtle/rsa-indexeddb.html: Removed.
* crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key-expected.txt: Removed.
* crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key.html: Removed.
* crypto/webkitSubtle/rsa-oaep-key-manipulation-expected.txt: Removed.
* crypto/webkitSubtle/rsa-oaep-key-manipulation.html: Removed.
* crypto/webkitSubtle/rsa-oaep-plaintext-length-expected.txt: Removed.
* crypto/webkitSubtle/rsa-oaep-plaintext-length.html: Removed.
* crypto/webkitSubtle/rsa-oaep-wrap-unwrap-aes-expected.txt: Removed.
* crypto/webkitSubtle/rsa-oaep-wrap-unwrap-aes.html: Removed.
* crypto/webkitSubtle/rsa-postMessage-expected.txt: Removed.
* crypto/webkitSubtle/rsa-postMessage.html: Removed.
* crypto/webkitSubtle/rsaes-pkcs1-v1_5-decrypt-expected.txt: Removed.
* crypto/webkitSubtle/rsaes-pkcs1-v1_5-decrypt.html: Removed.
* crypto/webkitSubtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes-expected.txt: Removed.
* crypto/webkitSubtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-expected.txt: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent-expected.txt: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent.html: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key.html: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk-expected.txt: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk-small-key-expected.txt: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk.html: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-sign-verify-expected.txt: Removed.
* crypto/webkitSubtle/rsassa-pkcs1-v1_5-sign-verify.html: Removed.
* crypto/webkitSubtle/sha-1-expected.txt: Removed.
* crypto/webkitSubtle/sha-1.html: Removed.
* crypto/webkitSubtle/sha-224-expected.txt: Removed.
* crypto/webkitSubtle/sha-224.html: Removed.
* crypto/webkitSubtle/sha-256-expected.txt: Removed.
* crypto/webkitSubtle/sha-256.html: Removed.
* crypto/webkitSubtle/sha-384-expected.txt: Removed.
* crypto/webkitSubtle/sha-384.html: Removed.
* crypto/webkitSubtle/sha-512-expected.txt: Removed.
* crypto/webkitSubtle/sha-512.html: Removed.
* crypto/webkitSubtle/unimplemented-unwrap-crash-expected.txt: Removed.
* crypto/webkitSubtle/unimplemented-unwrap-crash.html: Removed.
* crypto/webkitSubtle/unwrapKey-check-usage-expected.txt: Removed.
* crypto/webkitSubtle/unwrapKey-check-usage.html: Removed.
* crypto/webkitSubtle/wrapKey-check-usage-expected.txt: Removed.
* crypto/webkitSubtle/wrapKey-check-usage.html: Removed.

    Remove webkitSubtleCrypto tests.

* fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt:

    Remove webkitSubtleCrypto deprecation warning that no longer happens.

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

    Remove webkitSubtle tests from expectations files.

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

2 years agoRemove classic mode screen scale clamping
timothy_horton@apple.com [Fri, 18 Aug 2017 23:15:06 +0000 (23:15 +0000)]
Remove classic mode screen scale clamping
https://bugs.webkit.org/show_bug.cgi?id=175739
<rdar://problem/33894531>

Reviewed by Andy Estes.

* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenScaleFactor):
This code is no longer needed.

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

2 years ago[Curl] Improve multi-threaded networking
commit-queue@webkit.org [Fri, 18 Aug 2017 23:02:51 +0000 (23:02 +0000)]
[Curl] Improve multi-threaded networking
https://bugs.webkit.org/show_bug.cgi?id=175713

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-08-18
Reviewed by Alex Christensen.

* platform/Curl.cmake:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(WebCore::ResourceHandleInternal::m_failureTimer): Deleted.
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::didReceiveResponse):
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::start):
(WebCore::CurlDownload::cancel):
(WebCore::CurlDownload::retain):
(WebCore::CurlDownload::release):
(WebCore::CurlDownload::setupRequest):
(WebCore::CurlDownload::notifyFinish):
(WebCore::CurlDownload::notifyFail):
* platform/network/curl/CurlDownload.h:
* platform/network/curl/CurlJobManager.cpp:
(WebCore::CurlJobList::isEmpty const):
(WebCore::CurlJobList::startJobs):
(WebCore::CurlJobList::finishJobs):
(WebCore::CurlJobList::notifyResult):
(WebCore::CurlJobManager::add):
(WebCore::CurlJobManager::cancel):
(WebCore::CurlJobManager::callOnJobThread):
(WebCore::CurlJobManager::startThreadIfNeeded):
(WebCore::CurlJobManager::updateJobList):
(WebCore::CurlJobManager::workerThread):
(WebCore::CurlJobList::append): Deleted.
(WebCore::CurlJobList::cancel): Deleted.
(WebCore::CurlJobList::complete): Deleted.
(WebCore::CurlJobList::withJob): Deleted.
(WebCore::CurlJobList::withCurlHandle): Deleted.
(WebCore::CurlJob::invoke): Deleted.
(WebCore::CurlJobManager::updateJobs): Deleted.
* platform/network/curl/CurlJobManager.h:
(WebCore::CurlJob::CurlJob): Deleted.
(WebCore::CurlJob::~CurlJob): Deleted.
(WebCore::CurlJob::operator=): Deleted.
(WebCore::CurlJob::curlHandle const): Deleted.
(WebCore::CurlJob::ticket const): Deleted.
(WebCore::CurlJob::finished): Deleted.
(WebCore::CurlJob::error): Deleted.
(WebCore::CurlJob::cancel): Deleted.
(WebCore::CurlJobManager::isActiveJob const): Deleted.
* platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveData):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandleInternal::initialize): Deleted.
(WebCore::ResourceHandleInternal::applyAuthentication): Deleted.
(WebCore::getFormElementsCount): Deleted.
(WebCore::ResourceHandleInternal::setupPUT): Deleted.
(WebCore::ResourceHandleInternal::setupPOST): Deleted.
(WebCore::ResourceHandleInternal::setupFormData): Deleted.
(WebCore::ResourceHandleInternal::didFinish): Deleted.
(WebCore::ResourceHandleInternal::didFail): Deleted.
(WebCore::ResourceHandleInternal::calculateWebTimingInformations): Deleted.
(WebCore::ResourceHandleInternal::handleLocalReceiveResponse): Deleted.
(WebCore::isHttpInfo): Deleted.
(WebCore::isHttpRedirect): Deleted.
(WebCore::isHttpAuthentication): Deleted.
(WebCore::isHttpNotModified): Deleted.
(WebCore::isAppendableHeader): Deleted.
(WebCore::removeLeadingAndTrailingQuotes): Deleted.
(WebCore::getProtectionSpace): Deleted.
(WebCore::ResourceHandleInternal::willPrepareSendData): Deleted.
(WebCore::ResourceHandleInternal::didReceiveHeaderLine): Deleted.
(WebCore::ResourceHandleInternal::didReceiveAllHeaders): Deleted.
(WebCore::ResourceHandleInternal::didReceiveContentData): Deleted.
(WebCore::ResourceHandleInternal::readCallback): Deleted.
(WebCore::ResourceHandleInternal::headerCallback): Deleted.
(WebCore::ResourceHandleInternal::writeCallback): Deleted.
(WebCore::ResourceHandleInternal::dispatchSynchronousJob): Deleted.
(WebCore::ResourceHandleInternal::handleDataURL): Deleted.
* platform/network/curl/ResourceHandleCurlDelegate.cpp: Added.
(WebCore::ResourceHandleCurlDelegate::ResourceHandleCurlDelegate):
(WebCore::ResourceHandleCurlDelegate::~ResourceHandleCurlDelegate):
(WebCore::ResourceHandleCurlDelegate::hasHandle const):
(WebCore::ResourceHandleCurlDelegate::releaseHandle):
(WebCore::ResourceHandleCurlDelegate::start):
(WebCore::ResourceHandleCurlDelegate::cancel):
(WebCore::ResourceHandleCurlDelegate::setDefersLoading):
(WebCore::ResourceHandleCurlDelegate::setAuthentication):
(WebCore::ResourceHandleCurlDelegate::dispatchSynchronousJob):
(WebCore::ResourceHandleCurlDelegate::retain):
(WebCore::ResourceHandleCurlDelegate::release):
(WebCore::ResourceHandleCurlDelegate::setupRequest):
(WebCore::ResourceHandleCurlDelegate::notifyFinish):
(WebCore::ResourceHandleCurlDelegate::notifyFail):
(WebCore::ResourceHandleCurlDelegate::response):
(WebCore::ResourceHandleCurlDelegate::setupAuthentication):
(WebCore::removeLeadingAndTrailingQuotes):
(WebCore::ResourceHandleCurlDelegate::getProtectionSpace):
(WebCore::isHttpInfo):
(WebCore::isHttpRedirect):
(WebCore::isHttpAuthentication):
(WebCore::isHttpNotModified):
(WebCore::isAppendableHeader):
(WebCore::ResourceHandleCurlDelegate::didReceiveHeaderLine):
(WebCore::ResourceHandleCurlDelegate::didReceiveAllHeaders):
(WebCore::ResourceHandleCurlDelegate::didReceiveContentData):
(WebCore::ResourceHandleCurlDelegate::handleLocalReceiveResponse):
(WebCore::ResourceHandleCurlDelegate::prepareSendData):
(WebCore::ResourceHandleCurlDelegate::didFinish):
(WebCore::ResourceHandleCurlDelegate::didFail):
(WebCore::ResourceHandleCurlDelegate::handleDataURL):
(WebCore::ResourceHandleCurlDelegate::setupPOST):
(WebCore::ResourceHandleCurlDelegate::setupPUT):
(WebCore::ResourceHandleCurlDelegate::getFormElementsCount):
(WebCore::ResourceHandleCurlDelegate::setupFormData):
(WebCore::ResourceHandleCurlDelegate::applyAuthentication):
(WebCore::ResourceHandleCurlDelegate::setWebTimings):
(WebCore::ResourceHandleCurlDelegate::didReceiveHeader):
(WebCore::ResourceHandleCurlDelegate::didReceiveData):
(WebCore::ResourceHandleCurlDelegate::willSendData):
(WebCore::ResourceHandleCurlDelegate::didReceiveHeaderCallback):
(WebCore::ResourceHandleCurlDelegate::didReceiveDataCallback):
(WebCore::ResourceHandleCurlDelegate::willSendDataCallback):
* platform/network/curl/ResourceHandleCurlDelegate.h: Added.

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

2 years agoAdd WTFLogChannel level to allow runtime log filtering
eric.carlson@apple.com [Fri, 18 Aug 2017 22:46:17 +0000 (22:46 +0000)]
Add WTFLogChannel level to allow runtime log filtering
https://bugs.webkit.org/show_bug.cgi?id=175731
<rdar://problem/33967234>

Reviewed by Jer Noble.
Source/WTF:

Add WTFLog*, LOG, and RELEASE_LOG variants that take a "log level" parameter so code
can include logging statements that are only conditionally emitted.

* wtf/Assertions.cpp:
* wtf/Assertions.h:
* wtf/MemoryPressureHandler.cpp:
* wtf/RefCountedLeakCounter.cpp:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/Logging.cpp: Added.
(TestWebKitAPI::LoggingTest::output):
(TestWebKitAPI::TEST_F):

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

2 years agoiOS 10 debug build fix.
rniwa@webkit.org [Fri, 18 Aug 2017 22:34:24 +0000 (22:34 +0000)]
iOS 10 debug build fix.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::DataTransfer):

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

2 years agoMarking canvas/webgl tests as failing
jbedard@apple.com [Fri, 18 Aug 2017 22:15:25 +0000 (22:15 +0000)]
Marking canvas/webgl tests as failing
https://bugs.webkit.org/show_bug.cgi?id=175736

Unreviewed test gardening.

* platform/ios-device/TestExpectations:

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

2 years agoRename DataTransferAccessPolicy to match spec and refactor related node
rniwa@webkit.org [Fri, 18 Aug 2017 21:53:51 +0000 (21:53 +0000)]
Rename DataTransferAccessPolicy to match spec and refactor related node
https://bugs.webkit.org/show_bug.cgi?id=175704

Reviewed by Wenson Hsieh.

Renamed DataTransferAccessPolicy to DataTransfer::StoreMode to match the drag data store mode concept
in the HTML5 specification:
https://html.spec.whatwg.org/multipage/dnd.html#drag-data-store-mode

DataTransfer in addition to those states can be disassociated from the drag data store when it becomes
no longer valid. We also support a special mode which allows only updating the drag image.
These two states, Invalid and DragImageWritable, are added in addition to the three states in the spec.

Also split DragAndDrop type of DataTransfer into DragAndDropData and DragAndDropFiles, and refactored
the related code.

No new tests since there should be no behavioral change.

* WebCore.xcodeproj/project.pbxproj:
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::DataTransfer): No longer takes forFileDrag boolean since it's folded into type.
(WebCore::DataTransfer::createForCopyAndPaste):
(WebCore::DataTransfer::~DataTransfer):
(WebCore::DataTransfer::setAccessPolicy): Deleted.
(WebCore::DataTransfer::canReadTypes const):
(WebCore::DataTransfer::canReadData const):
(WebCore::DataTransfer::canWriteData const):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::createForDrag):
(WebCore::DataTransfer::createForDrop):
(WebCore::DataTransfer::canSetDragImage const):
* dom/DataTransfer.h:
(WebCore::DataTransfer::makeInvalidForSecurity): Added.
(WebCore::DataTransfer::makeDragImageWritable): Added.
* dom/DataTransferAccessPolicy.h: Removed.
* editing/Editor.cpp:
(WebCore::dispatchClipboardEvent): Moved and renamed from dispatchCPPEvent. Now computes the store mode
inside the function to match the spec: https://w3c.github.io/clipboard-apis/#fire-a-clipboard-event
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::canDHTMLPaste):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
(WebCore::Editor::tryDHTMLPaste):
(WebCore::Editor::dispatchCPPEvent): Deleted.
* editing/Editor.h:
* page/DragController.cpp:
(WebCore::createDataTransferToUpdateDrag): Extracted to share code.
(WebCore::DragController::dragExited):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDHTMLDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::invalidateDataTransfer):
(WebCore::EventHandler::handleDrag):

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

2 years agoFollowup (r220289): RenderImageResourceStyleImage code clean up
commit-queue@webkit.org [Fri, 18 Aug 2017 21:40:42 +0000 (21:40 +0000)]
Followup (r220289): RenderImageResourceStyleImage code clean up
https://bugs.webkit.org/show_bug.cgi?id=175444

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-08-18
Reviewed by Darin Adler.

RenderImageResourceStyleImage may be created with a StyleImage of type
StyleGeneratedImage. It may also be associated with a CachedImage which
is loaded through a source URL. In this case, adding and removing m_renderer
as a client of the CachedImage will be done through
RenderImageResource::setCachedImage().

RenderImageResource::setCachedImage() is already called from
ImageLoader::updateRenderer() when the CachedImage finishes loading. This
call adds m_renderer to the clients of the CachedImage.
RenderImageResource::setCachedImage() will also be called from
RenderImageResourceStyleImage::shutdown() via RenderImageResource::shutdown()
to remove m_renderer from the clients of CachedImage by passing a null pointer.

* rendering/RenderImage.cpp:
(WebCore::RenderImage::styleWillChange):
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::initialize):
(WebCore::RenderImageResource::shutdown):
(WebCore::RenderImageResource::setCachedImage):
(WebCore::RenderImageResource::resetAnimation):
(WebCore::RenderImageResource::image const):
(WebCore::RenderImageResource::setContainerSizeForRenderer):
(WebCore::RenderImageResource::imageSize const):
(WebCore::RenderImageResource::~RenderImageResource): Deleted.
(WebCore::RenderImageResource::errorOccurred const): Deleted.
(WebCore::RenderImageResource::imageHasRelativeWidth const): Deleted.
(WebCore::RenderImageResource::imageHasRelativeHeight const): Deleted.
(WebCore::RenderImageResource::intrinsicSize const): Deleted.
(WebCore::RenderImageResource::getImageSize const): Deleted.
* rendering/RenderImageResource.h:
(WebCore::RenderImageResource::initialize):
(WebCore::RenderImageResource::renderer const):
(WebCore::RenderImageResource::errorOccurred const):
(WebCore::RenderImageResource::imageHasRelativeWidth const):
(WebCore::RenderImageResource::imageHasRelativeHeight const):
(WebCore::RenderImageResource::imageSize const):
(WebCore::RenderImageResource::intrinsicSize const):
(WebCore::RenderImageResource::imagePtr const):
* rendering/RenderImageResourceStyleImage.cpp:
(WebCore::RenderImageResourceStyleImage::initialize):
(WebCore::RenderImageResourceStyleImage::shutdown):
(WebCore::RenderImageResourceStyleImage::image const):
(WebCore::RenderImageResourceStyleImage::setContainerSizeForRenderer):
(WebCore::RenderImageResourceStyleImage::~RenderImageResourceStyleImage): Deleted.
* rendering/RenderImageResourceStyleImage.h:
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::RenderSVGImage):

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

2 years ago[WebCrypto][Mac] Replace CCECCryptorGetKeyComponents with CCECCryptorExportKey for...
jiewen_tan@apple.com [Fri, 18 Aug 2017 21:30:45 +0000 (21:30 +0000)]
[WebCrypto][Mac] Replace CCECCryptorGetKeyComponents with CCECCryptorExportKey for exporting ECC JWKs
https://bugs.webkit.org/show_bug.cgi?id=175657
<rdar://problem/33797150>

Reviewed by Brent Fulgham.

Source/WebCore:

CCECCryptorGetKeyComponents returns components in unpadded formats. In some minor cases, the ECC components
do need padding. Therefore, we occasionally see some corrupted outputs in JWKs. To overcome that, this patch
replaces CCECCryptorGetKeyComponents with CCECCryptorExportKey which does padding all the time.

In the meantime, this patch also makes export* methods return OperationError if any error occur in the
underlying operations though very unlikely.

Test: crypto/subtle/ecdsa-generate-export-import-jwk-sign-verify.html

* crypto/algorithms/CryptoAlgorithmECDH.cpp:
(WebCore::CryptoAlgorithmECDH::exportKey):
* crypto/algorithms/CryptoAlgorithmECDSA.cpp:
(WebCore::CryptoAlgorithmECDSA::exportKey):
* crypto/gcrypt/CryptoKeyECGCrypt.cpp:
(WebCore::CryptoKeyEC::platformAddFieldElements const):
* crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::exportRaw const):
(WebCore::CryptoKeyEC::exportJwk const):
(WebCore::CryptoKeyEC::exportSpki const):
(WebCore::CryptoKeyEC::exportPkcs8 const):
* crypto/keys/CryptoKeyEC.h:
* crypto/mac/CryptoKeyECMac.cpp:
(WebCore::CryptoKeyEC::platformExportRaw const):
(WebCore::CryptoKeyEC::platformAddFieldElements const):
(WebCore::CryptoKeyEC::platformExportSpki const):
(WebCore::CryptoKeyEC::platformExportPkcs8 const):

LayoutTests:

* crypto/subtle/ecdsa-generate-export-import-jwk-sign-verify-expected.txt: Added.
* crypto/subtle/ecdsa-generate-export-import-jwk-sign-verify.html: Added.

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

2 years agoMarked imported/w3c/web-platform-tests/IndexedDB/open-request-queue.html as flaky...
jlewis3@apple.com [Fri, 18 Aug 2017 21:07:51 +0000 (21:07 +0000)]
Marked imported/w3c/web-platform-tests/IndexedDB/open-request-queue.html as flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=172044

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoREGRESSION (r220601): Crash when closing google doc after switching the order of...
cdumez@apple.com [Fri, 18 Aug 2017 20:53:33 +0000 (20:53 +0000)]
REGRESSION (r220601): Crash when closing google doc after switching the order of tabs in safari
https://bugs.webkit.org/show_bug.cgi?id=175721
<rdar://problem/33928369>

Reviewed by Geoffrey Garen.

Make sure WebProcess::markAllLayersVolatile() does not call WTFMove() multiple times
on the same completion handler. Use a RefCounter to hold on to the completion handler
and make sure the handler gets called when the RefCounter's value becomes 0.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::cancelMarkAllLayersVolatile):
* WebProcess/WebProcess.h:

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

2 years ago[Win] accessibility/heading-crash-after-hidden.html is a flaky crash.
pvollan@apple.com [Fri, 18 Aug 2017 20:50:59 +0000 (20:50 +0000)]
[Win] accessibility/heading-crash-after-hidden.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=173536

Reviewed by Brent Fulgham.

If the tree state is dirty, accessible objects are deleted while iterating over children
under AccessibilityNodeObject::textUnderElement when the style is updated. Make sure the
style is updated before this method is called.

Source/WebCore:

No new tests, covered by existing tests.

* accessibility/win/AccessibilityObjectWrapperWin.cpp:
(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):

Source/WebKitLegacy/win:

* AccessibleBase.cpp:
(AccessibleBase::getAccessibilityObjectForChild):

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

2 years agoMarked js/slow-stress/Int32Array-alloc-huge.html as flaky on mac.
jlewis3@apple.com [Fri, 18 Aug 2017 20:16:57 +0000 (20:16 +0000)]
Marked js/slow-stress/Int32Array-alloc-huge.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=173010

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years ago[Cache API] Add response body storage
commit-queue@webkit.org [Fri, 18 Aug 2017 19:32:48 +0000 (19:32 +0000)]
[Cache API] Add response body storage
https://bugs.webkit.org/show_bug.cgi?id=175658

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

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-put.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-put.https-expected.txt:

Source/WebCore:

Covered by rebased tests.
Tests are still flaky until waiting for end of fetch load is implemented.

Adding a response body within CacheStorageConnection::Record.
Adding ability to pass this body from/to the main thread.

Adding response body consumption into a CacheStorageConnection::Record.
Adding response body setting from a CacheStorageConnection::Record.

* Modules/beacon/NavigatorBeacon.cpp:
(WebCore::NavigatorBeacon::sendBeacon):
* Modules/cache/Cache.cpp:
(WebCore::Cache::put):
(WebCore::toConnectionRecord):
(WebCore::Cache::updateRecords):
* Modules/cache/CacheStorageConnection.cpp:
(WebCore::CacheStorageConnection::copyResponseBody):
(WebCore::CacheStorageConnection::isolatedResponseBody):
(WebCore::CacheStorageConnection::Record::copy const):
* Modules/cache/CacheStorageConnection.h:
* Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::toCrossThreadRecordData):
(WebCore::fromCrossThreadRecordData):
* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::bodyAsFormData const):
(WebCore::FetchBody::take):
(WebCore::FetchBody::bodyForInternalRequest const): Deleted.
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::setAsFormData):
* Modules/fetch/FetchBodyConsumer.h:
(WebCore::FetchBodyConsumer::setData):
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::resourceRequest const):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::consumeBody):
(WebCore::FetchResponse::setBodyData):
* Modules/fetch/FetchResponse.h:

Source/WebKit:

Added IPC serialization of Record response body.
Updated CacheStorageEngine implementation as Record has no longer a copy constructor.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorageEngine::retrieveRecords):
(WebKit::CacheStorageEngine::deleteMatchingRecords):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):
(IPC::ArgumentCoder<CacheStorageConnection::Record>::encode):
(IPC::ArgumentCoder<CacheStorageConnection::Record>::decode):

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

2 years ago[Fetch API] Add support for a callback-based fetch
commit-queue@webkit.org [Fri, 18 Aug 2017 19:32:17 +0000 (19:32 +0000)]
[Fetch API] Add support for a callback-based fetch
https://bugs.webkit.org/show_bug.cgi?id=175710

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

No change of behavior.

Moving from a DOMPromise to a Callback taking an ExceptionOr<FetchResponse&>.
Updating window and worker call sites.

* Modules/fetch/DOMWindowFetch.cpp:
(WebCore::DOMWindowFetch::fetch):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::fetch):
(WebCore::FetchResponse::BodyLoader::didFail):
(WebCore::FetchResponse::BodyLoader::BodyLoader):
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
(WebCore::FetchResponse::BodyLoader::stop):
* Modules/fetch/FetchResponse.h:
* Modules/fetch/WorkerGlobalScopeFetch.cpp:
(WebCore::WorkerGlobalScopeFetch::fetch):

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

2 years agoImplement 32-bit MacroAssembler::probe support for Windows.
pvollan@apple.com [Fri, 18 Aug 2017 19:20:23 +0000 (19:20 +0000)]
Implement 32-bit MacroAssembler::probe support for Windows.
https://bugs.webkit.org/show_bug.cgi?id=175449

Reviewed by Mark Lam.

Source/JavaScriptCore:

This is needed to enable the DFG.

* assembler/MacroAssemblerX86Common.cpp:
* assembler/testmasm.cpp:
(JSC::run):
(dllLauncherEntryPoint):
* shell/CMakeLists.txt:
* shell/PlatformWin.cmake:

Source/WTF:

Enable the DFG on Win32.

* wtf/Platform.h:

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

2 years agoAdd Dean Johnson to contributors.json for Bugzilla autocomplete.
ap@apple.com [Fri, 18 Aug 2017 18:56:04 +0000 (18:56 +0000)]
Add Dean Johnson to contributors.json for Bugzilla autocomplete.

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

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

2 years agoBounce ServiceWorker jobs to the Storage Process.
beidson@apple.com [Fri, 18 Aug 2017 18:52:43 +0000 (18:52 +0000)]
Bounce ServiceWorker jobs to the Storage Process.
https://bugs.webkit.org/show_bug.cgi?id=175650

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

Now that the serviceWorker.register() call is asynchronous, update a whole bunch of test results.

* web-platform-tests/FileAPI/historical.https-expected.txt:
* web-platform-tests/background-fetch/interfaces-worker.https-expected.txt:
* web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt:
* web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt:
* web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt:
* web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-add.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-delete.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-keys.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-matchAll.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-put.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-keys.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage.https-expected.txt:
* web-platform-tests/streams/byte-length-queuing-strategy.serviceworker.https-expected.txt:
* web-platform-tests/streams/count-queuing-strategy.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/close-propagation-backward.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/close-propagation-forward.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/error-propagation-backward.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/error-propagation-forward.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/flow-control.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/general.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/multiple-propagation.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/pipe-through.serviceworker.https-expected.txt:
* web-platform-tests/streams/piping/transform-streams.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-byte-streams/general.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/bad-strategies.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/bad-underlying-sources.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/brand-checks.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/cancel.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/garbage-collection.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/general.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/pipe-through.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/readable-stream-reader.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/tee.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/templated.serviceworker.https-expected.txt:

Source/WebCore:

No new tests (Covered by both changes and consistencies in existing tests)

This lays the groundwork for the SW job queue being in the StorageProcess by actually
setting up some objects for IPC communication and actually sending things over the wire.

The main point of IPC is the WebCore abstract base class "SWServer::Connection"

A collection of them will soon be managed by the SWServer itself in the StorageProcess.

That object will be the stand-in for IPC on both the WebProcess and StorageProcess side.

Currently, any job that we try to schedule still immediately rejects (though now it does
so asynchronously instead of synchronously).

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:

* dom/ExceptionData.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
(WebCore::ExceptionData::toException const):
(WebCore::ExceptionData::encode const):
(WebCore::ExceptionData::decode):

* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::scheduleJob):
* workers/service/ServiceWorkerContainer.h:

* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::failedWithException):
(WebCore::ServiceWorkerJob::data const):
* workers/service/ServiceWorkerJob.h:

* workers/service/ServiceWorkerJobData.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

* workers/service/ServiceWorkerJobType.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.

* workers/service/ServiceWorkerProvider.h:

* workers/service/ServiceWorkerRegistrationParameters.h:

* workers/service/server/SWServer.cpp: Copied from Source/WebKit/WebProcess/Storage/WebServiceWorkerProvider.cpp.
(WebCore::SWServer::Connection::scheduleJob):
(WebCore::SWServer::Connection::jobRejected):
* workers/service/server/SWServer.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
(WebCore::SWServer::Connection::~Connection):

Source/WebKit:

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

* Platform/Logging.h:

* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didClose):
(WebKit::StorageToWebProcessConnection::establishSWServerConnection):
(WebKit::StorageToWebProcessConnection::removeSWServerConnection):
(WebKit::StorageToWebProcessConnection::establishIDBConnectionToServer):
* StorageProcess/StorageToWebProcessConnection.h:
* StorageProcess/StorageToWebProcessConnection.messages.in:

* WebProcess/Storage/WebSWServerConnection.cpp: Added.
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::~WebSWServerConnection):
(WebKit::WebSWServerConnection::disconnectedFromWebProcess):
(WebKit::WebSWServerConnection::scheduleJob):
(WebKit::WebSWServerConnection::scheduleStorageJob):
* WebProcess/Storage/WebSWServerConnection.h: Copied from Source/WebCore/workers/service/ServiceWorkerJob.h.
(WebKit::WebSWServerConnection::create):
(WebKit::WebSWServerConnection::identifier const):
* WebProcess/Storage/WebSWServerConnection.messages.in: Copied from Source/WebKit/StorageProcess/StorageToWebProcessConnection.messages.in.

* WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::scheduleJob): Deleted.
* WebProcess/Storage/WebServiceWorkerProvider.h:

* WebProcess/Storage/WebToStorageProcessConnection.cpp:
(WebKit::WebToStorageProcessConnection::didReceiveMessage):
(WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession):
* WebProcess/Storage/WebToStorageProcessConnection.h:

LayoutTests:

Service worker tests will always be dumpAsText and always be asynchronous.

* http/tests/workers/service/basic-register.html:
* http/tests/workers/service/resources/basic-register.js:
* http/tests/workers/service/resources/sw-test-pre.js: Added.

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

2 years ago[Beacon] Add support for quota limitation
cdumez@apple.com [Fri, 18 Aug 2017 17:58:41 +0000 (17:58 +0000)]
[Beacon] Add support for quota limitation
https://bugs.webkit.org/show_bug.cgi?id=175443
<rdar://problem/33729002>

Reviewed by Youenn Fablet.

Source/WebCore:

LoaderStrategy::startPingLoad() now takes a completion handler parameter, allowing CachedResource::load()
to know when a Beacon load is complete. This was needed in order for the fetch in-flight keepalive request
quota limit to work properly for beacon loads as well. We need to know when the beacon load completes in
order to know if the beacon is in-flight or not and only free up its allocated quota once it is no longer
in-flight.

No new tests, updated existing test.

* loader/LoaderStrategy.h:
* loader/PingLoader.cpp:
(WebCore::PingLoader::startPingLoad):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* platform/network/PingHandle.h:

Source/WebKit:

WebLoaderStrategy now generates an identifier for ping loads and keep
the completion handler in a local HashMap. Once the ping load is done,
the network process sends an IPC message back to the WebContent process
so that WebLoaderStrategy can look up the completion handler for the
ping load and call it.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::didFinishPingLoad):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::~PingLoad):
* NetworkProcess/PingLoad.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didFinishPingLoad):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.messages.in:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::generatePingLoadIdentifier):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::didFinishPingLoad):
* WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::startPingLoad):
* WebCoreSupport/WebResourceLoadScheduler.h:

LayoutTests:

Extend layout test coverage and rebaseline test.

* http/wpt/beacon/beacon-quota-expected.txt:
* http/wpt/beacon/beacon-quota.html:

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

2 years agoRename ProbeContext and ProbeFunction to Probe::State and Probe::Function.
mark.lam@apple.com [Fri, 18 Aug 2017 17:54:50 +0000 (17:54 +0000)]
Rename ProbeContext and ProbeFunction to Probe::State and Probe::Function.
https://bugs.webkit.org/show_bug.cgi?id=175725
<rdar://problem/33965477>

Rubber-stamped by JF Bastien.

This is purely a refactoring patch (in preparation for the introduction of a
Probe::Context data structure in https://bugs.webkit.org/show_bug.cgi?id=175688
later).  This patch does not change any semantics / behavior.

* assembler/AbstractMacroAssembler.h:
* assembler/MacroAssembler.cpp:
(JSC::stdFunctionCallback):
(JSC::MacroAssembler::probe):
* assembler/MacroAssembler.h:
(JSC::ProbeContext::gpr): Deleted.
(JSC::ProbeContext::spr): Deleted.
(JSC::ProbeContext::fpr): Deleted.
(JSC::ProbeContext::gprName): Deleted.
(JSC::ProbeContext::sprName): Deleted.
(JSC::ProbeContext::fprName): Deleted.
(JSC::ProbeContext::pc): Deleted.
(JSC::ProbeContext::fp): Deleted.
(JSC::ProbeContext::sp): Deleted.
* assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::trustedImm32FromPtr):
* assembler/MacroAssemblerARM64.cpp:
(JSC::arm64ProbeError):
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::trustedImm32FromPtr):
* assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printCallback):
* assembler/MacroAssemblerPrinter.h:
* assembler/MacroAssemblerX86Common.cpp:
(JSC::MacroAssembler::probe):
* assembler/Printer.h:
(JSC::Printer::Context::Context):
* assembler/testmasm.cpp:
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):
(JSC::testProbePreservesGPRS):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesStackPointerToInsideProbeStateOnStack):
(JSC::testProbeModifiesStackPointerToNBytesBelowSP):
(JSC::testProbeModifiesProgramCounter):
(JSC::fillStack):
(JSC::testProbeModifiesStackWithCallback):
(JSC::run):
(JSC::testProbeModifiesStackPointerToInsideProbeContextOnStack): Deleted.

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

2 years agoUnreviewed, land TestExpectations for rdar://problem/33850189.
ryanhaddad@apple.com [Fri, 18 Aug 2017 17:49:05 +0000 (17:49 +0000)]
Unreviewed, land TestExpectations for rdar://problem/33850189.

* platform/mac-highsierra/TestExpectations:

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