⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 17, 2017:

11:43 PM Changeset in webkit [215453] by sbarati@apple.com
  • 9 edits
    1 add in trunk

BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
https://bugs.webkit.org/show_bug.cgi?id=139847
<rdar://problem/19321122>

Reviewed by Oliver Hunt.

JSTests:

  • stress/call-apply-exponential-bytecode-size.js: Added.

(assert):
(const.inc):
(const.inc2):
(bar):
(randomApplyOrCall):
(baz):
(jaz):
(haz):
(foo):

Source/JavaScriptCore:

The BytecodeGenerator's .apply(...) and .call(...) code would
emit bytecode for the evaluation of its arguments twice. This
is exponential, specifically, 2n, where n is the nesting depth of
.call(...) or .apply(...) inside other .call(...) or .apply(...).

The reason we emit code for the arguments twice is that we try
to emit efficient code for when .call or .apply is Function.prototype.call
or Function.prototype.apply. Because of this, we compare .call/.apply to
Function.prototype.call/.apply, and if they're the same, we emit a specialized
function call in bytecode. Otherwise, we emit the generalized version.

This patch makes it so that each .call(...) and .apply(...) records
its max inner nesting depth. Then, we only perform the optimization
for the bottom k (where k = 6) layers of the nesting tree. The reason we
apply the optimization to the bottom k layers instead of top k layers
is that we'll produce less code this way.

  • bytecompiler/NodesCodegen.cpp:

(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/NodeConstructors.h:

(JSC::CallFunctionCallDotNode::CallFunctionCallDotNode):
(JSC::ApplyFunctionCallDotNode::ApplyFunctionCallDotNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::recordCallOrApplyDepth):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:

(JSC::Parser::CallOrApplyDepth::CallOrApplyDepth):
(JSC::Parser::CallOrApplyDepth::maxChildDepth):
(JSC::Parser::CallOrApplyDepth::~CallOrApplyDepth):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::makeFunctionCallNode):

11:05 PM Changeset in webkit [215452] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for !ENABLE(MEDIA_STREAM) configurations.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted): Guard the use of
HTMLMediaElement::hasMediaStreamSrcObject() with ENABLE(MEDIA_STREAM).

10:55 PM Changeset in webkit [215451] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
https://bugs.webkit.org/show_bug.cgi?id=170896
<rdar://problem/31651319>

Reviewed by JF Bastien and Keith Miller.

JSTests:

  • stress/regress-170896.js: Added.

Source/JavaScriptCore:

  • runtime/JSArray.cpp:

(JSC::JSArray::appendMemcpy):

10:37 PM Changeset in webkit [215450] by achristensen@apple.com
  • 7 edits in trunk

Allow Variants of RetainPtrs
https://bugs.webkit.org/show_bug.cgi?id=170923

Reviewed by Tim Horton and Sam Weinig.

Source/WebCore:

No change in behavior. Just updated the one class that used RetainPtr::operator& to cleanly initialize
RetainPtrs instead of taking the address of a smart pointer and forcing a value inside of it.

  • platform/mac/SSLKeyGeneratorMac.mm:

(WebCore::signedPublicKeyAndChallengeString):

Source/WTF:

  • wtf/RetainPtr.h:

(WTF::RetainPtr::operator&): Deleted.
Operator& was causing a compile error when making Variant<RetainPtr<T>, ...>
and because it is strange and only used once, let's just remove it.

  • wtf/Variant.h:

(WTF::get):
(WTF::get_if):
Use std::addressof instead of operator& which could be overloaded to return any type with any meaning.

Tools:

  • TestWebKitAPI/Tests/WTF/Variant.cpp:

(TestWebKitAPI::TEST):
Add tests for RetainPtr and for another class with overloaded operator& to verify such classes can
work in Variants.

9:55 PM Changeset in webkit [215449] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network columns don't get saved when Web Inspector is closed
https://bugs.webkit.org/show_bug.cgi?id=170373
<rdar://problem/31386336>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-17
Reviewed by Matt Baker.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.setColumnVisible):
(WebInspector.DataGrid.prototype._contextMenuInHeader):
The context menu was often passing undefined as the visible value
which would cause the setting to not be saved appropriately. Ensure
we always get an explicit boolean.

9:48 PM Changeset in webkit [215448] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use text-align: start for DataGrid headers
https://bugs.webkit.org/show_bug.cgi?id=170871

Reviewed by Matt Baker.

text-align: start didn't work for th elements.
It was fixed in <webkit.org/b/141417>.

  • UserInterface/Views/DataGrid.css:

(.data-grid th):
(body[dir=ltr] .data-grid th): Deleted.
(body[dir=rtl] .data-grid th): Deleted.

8:21 PM Changeset in webkit [215447] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WinCairo] 'WebCore::GraphicsLayerTextureMapper::flushCompositingStated': method with override specifier 'override' did not override any base class methods
https://bugs.webkit.org/show_bug.cgi?id=170928

Patch by Fujii Hironori <Fujii Hironori> on 2017-04-17
Reviewed by Simon Fraser.

Apply the same change of CoordinatedGraphicsLayer.{cpp,h} of r215410 to GraphicsLayerTextureMapper.{cpp,h}.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::flushCompositingState): Added the second argument.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h: Ditto.
7:37 PM Changeset in webkit [215446] by timothy_horton@apple.com
  • 25 edits in trunk/Source

Plumb all four obscured insets to WebCore, instead of just top/left
https://bugs.webkit.org/show_bug.cgi?id=170913

Reviewed by Wenson Hsieh.

Source/WebCore:

No new tests, no observable behavior change yet.

In preparation for a future patch (for rdar://problem/31564652), plumb
all four obscured insets to WebCore/the Web Content process, instead of
just the top and left insets.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem):

  • history/HistoryItem.h:

(WebCore::HistoryItem::obscuredInsets):
(WebCore::HistoryItem::setObscuredInsets):
(WebCore::HistoryItem::obscuredInset): Deleted.
(WebCore::HistoryItem::setObscuredInset): Deleted.

  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

  • page/Page.h:

(WebCore::Page::obscuredInsets):
(WebCore::Page::setObscuredInsets):
(WebCore::Page::obscuredInset): Deleted.
(WebCore::Page::setObscuredInset): Deleted.
Adopt FloatBoxExtent for obscuredInsets (and adjust pluralization).

Source/WebKit2:

  • Shared/VisibleContentRectUpdateInfo.cpp:

(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
(WebKit::operator<<):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::obscuredInsets):
(WebKit::operator==):
(WebKit::VisibleContentRectUpdateInfo::obscuredInset): Deleted.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FloatRectInsets>::encode):
(IPC::ArgumentCoder<FloatRectInsets>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]):
(-[WKWebView _updateVisibleContentRects]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::restorePageState):

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::restorePageState):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):
(WebKit::WebPage::updateVisibleContentRects):
Adopt FloatBoxExtent for obscuredInsets (and adjust pluralization).

6:30 PM Changeset in webkit [215445] by Joseph Pecoraro
  • 17 edits
    14 adds in trunk

Web Inspector: Doesn't show size of compressed content correctly
https://bugs.webkit.org/show_bug.cgi?id=155112
<rdar://problem/25006728>

Reviewed by Alex Christensen and Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Network.json:

New, exact size metrics, available after the load completes.

Source/WebCore:

Tests: http/tests/inspector/network/resource-sizes-disk-cache.html

http/tests/inspector/network/resource-sizes-memory-cache.html
http/tests/inspector/network/resource-sizes-network.html

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForMetrics):

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy):
(WebCore::NetworkLoadMetrics::reset):
(WebCore::NetworkLoadMetrics::clearNonTimingData):
(WebCore::NetworkLoadMetrics::operator==):
(WebCore::NetworkLoadMetrics::encode):
(WebCore::NetworkLoadMetrics::decode):

  • platform/spi/cf/CFNetworkSPI.h:

Source/WebInspectorUI:

  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
Set an exact size.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource):
(WebInspector.Resource.prototype.get requestHeadersTransferSize):
(WebInspector.Resource.prototype.get requestBodyTransferSize):
(WebInspector.Resource.prototype.get responseHeadersTransferSize):
(WebInspector.Resource.prototype.get responseBodyTransferSize):
(WebInspector.Resource.prototype.get cachedResponseBodySize):
(WebInspector.Resource.prototype.get size):
(WebInspector.Resource.prototype.get networkEncodedSize):
(WebInspector.Resource.prototype.get networkDecodedSize):
(WebInspector.Resource.prototype.get networkTotalTransferSize):
(WebInspector.Resource.prototype.get estimatedNetworkEncodedSize):
(WebInspector.Resource.prototype.get estimatedTotalTransferSize):
(WebInspector.Resource.prototype.get compressed):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.prototype.updateWithMetrics):
(WebInspector.Resource.prototype.setCachedResponseBodySize):
(WebInspector.Resource.prototype.increaseSize):
(WebInspector.Resource.prototype.increaseTransferSize):
(WebInspector.Resource.prototype.get encodedSize): Deleted.
(WebInspector.Resource.prototype.get transferSize): Deleted.
Be more explicit with size getters.

(WebInspector.Resource.prototype.updateWithMetrics):
If we receive the size metrics, update the specific metric values.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshCompressed):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshDecodedSize):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshTransferSize):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
Show exact values if we have them, otherwise fall back to the calculated
values during loading.

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::sendResultForCacheEntry):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
Include size information in network load metrics.

LayoutTests:

  • http/tests/inspector/network/resource-sizes-disk-cache-expected.txt: Added.
  • http/tests/inspector/network/resource-sizes-disk-cache.html: Added.
  • http/tests/inspector/network/resource-sizes-memory-cache-expected.txt: Added.
  • http/tests/inspector/network/resource-sizes-memory-cache.html: Added.
  • http/tests/inspector/network/resource-sizes-network-expected.txt: Added.
  • http/tests/inspector/network/resource-sizes-network.html: Added.

Test resource sizes under different load conditions.

  • platform/mac/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt: Added.
  • platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt: Added.

Older versions of macOS will not have the new metrics, but test their output anyways.

  • http/tests/inspector/network/resources/404.php: Added.
  • http/tests/inspector/network/resources/gzipped-lorem-no-content-length.php: Added.
  • http/tests/inspector/network/resources/gzipped-lorem.php: Added.
  • http/tests/inspector/network/resources/lorem.txt: Added.

Different resources with fixed sizes (text, gzipped, 404 with fixed response).

  • http/tests/inspector/network/resources/resource-size-test.js: Added.

(TestPage.registerInitializer.InspectorTest.gracefulExpectEquals):
(TestPage.registerInitializer.window.addResourceSizeTest):
(TestPage.registerInitializer):
Shared test code for resource sizes.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
5:43 PM Changeset in webkit [215444] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Enable video autoplay when getUserMedia is on
https://bugs.webkit.org/show_bug.cgi?id=170919

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

Source/WebCore:

Test: webrtc/video-autoplay.html

  • dom/Document.h:

(WebCore::Document::isCapturing):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::hasMediaStreamSrcObject):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted): Allowing playback if getUserMedia is capturing audio or video
on the document and if element is rendering MediaStream based content.

  • page/MediaProducer.h:

(WebCore::MediaProducer::isCapturing):

LayoutTests:

  • webrtc/video-autoplay-expected.txt: Added.
  • webrtc/video-autoplay.html: Added.
5:14 PM Changeset in webkit [215443] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

com.apple.WebKit.Networking.Development crashed in com.apple.WebKit: WebKit::NetworkRTCProvider::resolvedName
https://bugs.webkit.org/show_bug.cgi?id=170889

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

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::Resolver::~Resolver): Unschedule the host resolution in addition to cancelling it.
Providing a test would need to stop the resolver between the time the resolver is created and gets
data in the network process. Or we would need to change Resolver to be instantiated/tested on its own.

  • NetworkProcess/webrtc/NetworkRTCProvider.h:
4:26 PM Changeset in webkit [215442] by jmarcell@apple.com
  • 7 edits in tags/Safari-604.1.17.1/Source

Versioning.

4:22 PM Changeset in webkit [215441] by beidson@apple.com
  • 9 edits in trunk

Make WKHTTPCookieStore public.
<rdar://problem/31024691> and https://bugs.webkit.org/show_bug.cgi?id=170920

Reviewed by Geoffrey Garen.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKHTTPCookieStore.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(-[WKHTTPCookieStore getAllCookies:]):
(-[WKHTTPCookieStore allCookies:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore httpCookieStore]):
(-[WKWebsiteDataStore _httpCookieStore]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • WebKit2.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm:

(TEST):

4:16 PM Changeset in webkit [215440] by Jon Davis
  • 3 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: new icon for Disable Caches button in Network Tab
https://bugs.webkit.org/show_bug.cgi?id=170196

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/IgnoreCaches.svg: Added.

Added new art for the Disable Caches button.

  • UserInterface/Images/gtk/IgnoreCaches.svg: Added.

Used GTK's StepOver.svg for fallback art for GTK.

  • UserInterface/Images/NavigationItemClear.svg:

Improved artwork for Clear Console button icon to match the weight and
style of the Disable Caches button icon.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):

3:50 PM Changeset in webkit [215439] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip webrtc/multi-video.html.
https://bugs.webkit.org/show_bug.cgi?id=170823

Unreviewed test gardening.

3:46 PM Changeset in webkit [215438] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix CMake build.

  • PlatformMac.cmake:
3:28 PM Changeset in webkit [215437] by Ryan Haddad
  • 5 edits in branches/safari-603-branch/LayoutTests

Merge r211155.

3:17 PM Changeset in webkit [215436] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit2

[MediaStream] Fix typo in UIDelegate::mediaCaptureStateDidChange
https://bugs.webkit.org/show_bug.cgi?id=170911

Reviewed by Youenn Fablet.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::mediaCaptureStateDidChange): Fix typo.

3:15 PM Changeset in webkit [215435] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Enabled state of "All Requests" XHR breakpoint not restored correctly
https://bugs.webkit.org/show_bug.cgi?id=170916

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WebInspector.DOMDebuggerManager):
Set breakpoint with backend agent, if enabled.

3:04 PM Changeset in webkit [215434] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest webrtc/video-mute.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=170704

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

  • webrtc/video-mute.html: Another try at making the test not flaky.
2:51 PM Changeset in webkit [215433] by Keith Rollin
  • 2 edits in trunk/Source/WebKit2

Move and update WebLoaderStrategy logging statement
https://bugs.webkit.org/show_bug.cgi?id=170140

Reviewed by Alex Christensen.

WebLoaderStrategy::scheduleLoad has a logging statement that says, in
part: "Resource has been queued for scheduling with the
NetworkProcess". This statement is emitted after the
ScheduleResourceLoad message has been successfully sent to the
NetworkProcess. The logging statement was added at this location to
indicate that the resource-load had been successfully handed off; it
pairs a similar logging statement that is emitted if the sending of
the ScheduleResourceLoad message fails.

I think it would be better to move this logging statement before the
ScheduleResourceLoad message is sent to the NetworkProcess (and change
its wording to "Resource is being scheduled with the NetworkProcess").
The reason for this change is to help make sure that the sequence of
logging statements is more deterministic. In the current form, the
message "Resource has been queued for scheduling with the
NetworkProcess" normally appears before any NetworkProcess logging
statements that indicate that the resource-loading is continuing
there, but in rare occasions the logging statements can be reversed.
This change in the ordering of the statements has caused a problem in
a script I've written that examines the resource-loading process and
looks for errors. By ensuring that the WebLoaderStrategy statement
always appears before the NetworkResourceLoader statement, the flow
makes better sense and the script can be more robust.

In making this change, we are probably not giving up any assurance
that the ScheduleResourceLoad message has been sent to the
NetworkResourceLoader. If the message is successfully sent, we'll see
logging in the NetworkProcess. If the message has not been sent, we'll
see WebLoaderStrategy logging an error.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

2:39 PM Changeset in webkit [215432] by jmarcell@apple.com
  • 27 edits in tags/Safari-604.1.17.1

Cherry-pick r215386. rdar://problem/31628104

2:34 PM Changeset in webkit [215431] by andersca@apple.com
  • 8 edits in trunk/Source

Stop using deprecated APIs, part 1
https://bugs.webkit.org/show_bug.cgi?id=170915
rdar://problem/31589635

Reviewed by Tim Horton.

Source/WebCore:

Get rid of the status parameter from ApplePayPaymentMethodUpdate.

  • Modules/applepay/ApplePayPaymentMethodUpdate.h:
  • Modules/applepay/ApplePayPaymentMethodUpdate.idl:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::completePaymentMethodSelection):

  • Modules/applepay/PaymentRequest.h:

Source/WebKit2:

Stop using the PKPaymentRequestPaymentMethodUpdate initializer that takes a status, it's been deprecated
and we always passed PKPaymentAuthorizationStatusSuccess anyway.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::encode):
(IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::decode):

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection):

2:29 PM Changeset in webkit [215430] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.17.1

New tag.

2:24 PM Changeset in webkit [215429] by commit-queue@webkit.org
  • 71 edits in trunk

Disable outdated WritableStream API
https://bugs.webkit.org/show_bug.cgi?id=170749
<rdar://problem/31446233>

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

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No change of behavior.
Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by:

  • A STREAMS_API compilation flag.
  • A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT.
  • Configurations/FeatureDefines.xcconfig:
  • Modules/fetch/FetchBody.cpp:
  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::isDisturbedOrLocked):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::blobLoadingFailed):
(WebCore::FetchBodyOwner::blobChunk):

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::didFail):
(WebCore::FetchResponse::BodyLoader::didReceiveData):

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponseSource.cpp:
  • Modules/fetch/FetchResponseSource.h:
  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/ByteLengthQueuingStrategy.js:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.js:
  • Modules/streams/ReadableByteStreamController.idl:
  • Modules/streams/ReadableByteStreamController.js:
  • Modules/streams/ReadableByteStreamInternals.js:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStream.js:

(initializeReadableStream): Using readableByteStreamAPI runtime flag directly.

  • Modules/streams/ReadableStreamBYOBRequest.idl:
  • Modules/streams/ReadableStreamBYOBRequest.js:
  • Modules/streams/ReadableStreamDefaultController.idl:
  • Modules/streams/ReadableStreamDefaultController.js:
  • Modules/streams/ReadableStreamDefaultReader.idl:
  • Modules/streams/ReadableStreamDefaultReader.js:
  • Modules/streams/ReadableStreamInternals.js:
  • Modules/streams/ReadableStreamSource.h:
  • Modules/streams/ReadableStreamSource.idl:
  • Modules/streams/StreamInternals.js:
  • Modules/streams/WritableStream.idl:
  • Modules/streams/WritableStream.js:
  • Modules/streams/WritableStreamInternals.js:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::isReadableByteStreamAPIEnabled):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamBYOBRequest):
(WebCore::JSBuiltinReadableStreamBYOBRequestPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamBYOBRequestPrivateConstructor):

  • bindings/js/JSReadableStreamPrivateConstructors.h:
  • bindings/js/JSReadableStreamSourceCustom.cpp:
  • bindings/js/ReadableStreamDefaultController.cpp:
  • bindings/js/ReadableStreamDefaultController.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setReadableByteStreamAPIEnabled):
(WebCore::RuntimeEnabledFeatures::readableByteStreamAPIEnabled):
(WebCore::RuntimeEnabledFeatures::setWritableStreamAPIEnabled):
(WebCore::RuntimeEnabledFeatures::writableStreamAPIEnabled):

  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by:

  • A STREAMS_API compilation flag.
  • A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT.
  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences readableByteStreamAPIEnabled]):
(-[WebPreferences setReadableByteStreamAPIEnabled:]):
(-[WebPreferences writableStreamAPIEnabled]):
(-[WebPreferences setWritableStreamAPIEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by:

  • A STREAMS_API compilation flag.
  • A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT.
  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WTF:

Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by:

  • A STREAMS_API compilation flag.
  • A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT.
  • wtf/FeatureDefines.h:

Tools:

Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by:

  • A STREAMS_API compilation flag.
  • A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT.
  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setFetchAPIEnabled):
(WTR::TestRunner::setWritableStreamAPIEnabled):
(WTR::TestRunner::setReadableByteStreamAPIEnabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
2:15 PM Changeset in webkit [215428] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Update expected results for rdar://problem/31636583.

  • platform/mac/fast/text/complex-text-opacity-expected.txt:
1:37 PM Changeset in webkit [215427] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Show pause reason for "All Requests" XHR breakpoint
https://bugs.webkit.org/show_bug.cgi?id=170895

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:

Add generic pause reason text: "Requesting: <url>".

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WebInspector.DOMDebuggerManager.prototype.xhrBreakpointForURL):
Relocated helper method from the sidebar.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Add an XHR breakpoint tree element when pause data contains a breakpoint
URL, otherwise just add a generic text row.

1:25 PM Changeset in webkit [215426] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

1:24 PM Changeset in webkit [215425] by timothy_horton@apple.com
  • 34 edits
    4 adds in trunk

Provide a viewport parameter to disable clipping to the safe area
https://bugs.webkit.org/show_bug.cgi?id=170766
<rdar://problem/31564634>

Reviewed by Beth Dakin.

Tests: tiled-drawing/ios/viewport-clip-to-safe-area-no-gets-margin-tiles.html,

tiled-drawing/ios/viewport-clip-to-safe-area-yes-gets-no-margin-tiles.html,

  • dom/ViewportArguments.cpp:

(WebCore::ViewportArguments::resolve):
(WebCore::setViewportFeature):

  • dom/ViewportArguments.h:

(WebCore::ViewportArguments::operator==):

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::updateConfiguration):
(WebCore::operator<<):
(WebCore::ViewportConfiguration::description):

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::Parameters::Parameters):
(WebCore::ViewportConfiguration::clipToSafeArea):
Add viewport parameter.

  • page/ChromeClient.h:
  • page/FrameView.h:
  • page/FrameView.cpp:

(WebCore::FrameView::enableSpeculativeTilingIfNeeded):
If not clipping to the safe area, enable "speculative" tiling immediately,
because the margin tiles can be visible immediately.

(WebCore::FrameView::hasExtendedBackgroundRectForPainting):
(WebCore::FrameView::updateTilesForExtendedBackgroundMode):
Don't check the setting here; just respect the mode that is computed
by calculateExtendedBackgroundMode.

(WebCore::FrameView::calculateExtendedBackgroundMode):
If the viewport parameter was set, add margin tiles on both axes.

(WebCore::FrameView::setClipToSafeArea):
Notify ChromeClient of the change, and re-compute the margin tile mode.

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderLayerCompositor.cpp:

Factor out code that decides whether the content layer clips to bounds,
and make it take the new viewport parameter into account.

  • rendering/RenderObject.cpp:

Don't clip RenderView repaints to RenderView's GraphicsLayer bounds if
clip-to-safe-area is off, just like we do for slow-repaint objects in
extended background mode.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::setClipToSafeArea):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::clipToSafeArea):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::didChangeClipToSafeArea):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didChangeClipToSafeArea):

  • UIProcess/mac/PageClientImpl.h:

Forward clip-to-safe-area changes from ChromeClient to WKWebView.
Update visible content rects when it changes, which will
result in a call to updateFixedClippingView, as below.
Keep track of the current state in the UI process.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _contentMayDrawInObscuredInsets]):
Expose the current state of the clip-to-safe-area bit as SPI.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView updateFixedClippingView:]):
Disable fixed clipping when clip-to-safe-area is disabled.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::viewportConfigurationChanged):
Push the viewport's clip-to-safe-area bit onto the main frame's FrameView.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setObscuredInsets):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::setObscuredInsets):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setObscuredInsets):
Add a UIScriptController mechanism to install obscured insets
on the web view.

  • tiled-drawing/ios/viewport-clip-to-safe-area-no-gets-margin-tiles-expected.txt: Added.
  • tiled-drawing/ios/viewport-clip-to-safe-area-no-gets-margin-tiles.html: Added.
  • tiled-drawing/ios/viewport-clip-to-safe-area-yes-gets-no-margin-tiles-expected.txt: Added.
  • tiled-drawing/ios/viewport-clip-to-safe-area-yes-gets-no-margin-tiles.html: Added.
1:22 PM Changeset in webkit [215424] by mitz@apple.com
  • 9 edits
    7 adds in trunk

[Cocoa] Move isNullFunctionPointer down into WTF
https://bugs.webkit.org/show_bug.cgi?id=170892

Reviewed by Sam Weinig.

Source/WebCore:

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::webRTCAvailable): Changed to use WTF::isNullFunctionPointer,

and removed the static variable, so instead of loading from the initialization guard,
branching, then loading from the variable itself, we just load from the function pointer.

(WebCore::isNullFunctionPointer): Deleted.

Source/WebKit2:

  • Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.cpp:

(WebKit::ResourceLoadStatisticsClassifierCocoa::canUseCorePrediction): Changed to use

WTF::isNullFunctionPointer.

(WebKit::isNullFunctionPointer): Deleted.

Source/WTF:

Test: TestWebKitAPI/Tests/WTF/darwin/WeakLinking.cpp

  • WTF.xcodeproj/project.pbxproj: Added reference to new file.
  • wtf/darwin: Added.
  • wtf/darwin/WeakLinking.h: Added.

(WTF::isNullFunctionPointer): Copied from ResourceLoadStatisticsClassifierCocoa.cpp in

WebKit2 and changed into a function template that works with any function pointer.

Tools:

  • TestWebKitAPI/Configurations/TestWTF.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/darwin/WeakLinking.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS-v2.tbd: Added.
  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS.tbd: Added.
  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-macOS-v2.tbd: Added.
  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-macOS.tbd: Added.
1:07 PM Changeset in webkit [215423] by jiewen_tan@apple.com
  • 33 edits
    10 copies
    4 moves
    41 adds in trunk

[WebCrypto] Add support for ECDSA
https://bugs.webkit.org/show_bug.cgi?id=170789
<rdar://problem/31588604>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt:
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt:
  • web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey-expected.txt:
  • web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt:
  • web-platform-tests/WebCryptoAPI/sign_verify/test_hmac-expected.txt:

Source/WebCore:

This patch implements ECDSA according to the spec: https://www.w3.org/TR/WebCryptoAPI/#ecdsa.
Supported operations include sign, verify, generateKey, importKey and exportKey.

Tests: crypto/subtle/ecdh-generate-export-key-pkcs8-p256.html

crypto/subtle/ecdh-generate-export-key-pkcs8-p384.html
crypto/subtle/ecdsa-generate-export-jwk-key.html
crypto/subtle/ecdsa-generate-export-key-pkcs8.html
crypto/subtle/ecdsa-generate-export-key-raw.html
crypto/subtle/ecdsa-generate-export-key-spki.html
crypto/subtle/ecdsa-generate-key-sign-verify-p256.html
crypto/subtle/ecdsa-generate-key-sign-verify-p384.html
crypto/subtle/ecdsa-generate-key.html
crypto/subtle/ecdsa-import-jwk-private-key.html
crypto/subtle/ecdsa-import-jwk-public-key-alg-256.html
crypto/subtle/ecdsa-import-jwk-public-key-alg-384.html
crypto/subtle/ecdsa-import-jwk-public-key.html
crypto/subtle/ecdsa-import-key-sign-p256.html
crypto/subtle/ecdsa-import-key-sign-p384.html
crypto/subtle/ecdsa-import-key-verify-p256.html
crypto/subtle/ecdsa-import-key-verify-p384.html
crypto/subtle/ecdsa-import-pkcs8-key.html
crypto/subtle/ecdsa-import-raw-key.html
crypto/subtle/ecdsa-import-spki-key.html
crypto/subtle/ecdsa-verify-malformed-parameters.html
crypto/workers/subtle/ecdsa-import-key-sign.html
crypto/workers/subtle/ecdsa-import-key-verify.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::normalizeCryptoAlgorithmParameters):
(WebCore::jsSubtleCryptoFunctionSignPromise):
(WebCore::jsSubtleCryptoFunctionVerifyPromise):
Add missing parameters.

  • crypto/CommonCryptoUtilities.h:
  • crypto/CryptoAlgorithm.cpp:

(WebCore::CryptoAlgorithm::sign):
(WebCore::CryptoAlgorithm::verify):

  • crypto/CryptoAlgorithm.h:

Add missing parameters.

  • crypto/CryptoAlgorithmParameters.h:
  • crypto/algorithms/CryptoAlgorithmECDSA.cpp: Added.

(WebCore::CryptoAlgorithmECDSA::create):
(WebCore::CryptoAlgorithmECDSA::identifier):
(WebCore::CryptoAlgorithmECDSA::sign):
(WebCore::CryptoAlgorithmECDSA::verify):
(WebCore::CryptoAlgorithmECDSA::generateKey):
(WebCore::CryptoAlgorithmECDSA::importKey):
(WebCore::CryptoAlgorithmECDSA::exportKey):

  • crypto/algorithms/CryptoAlgorithmECDSA.h: Added.
  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):

  • crypto/algorithms/CryptoAlgorithmHMAC.h:

Add missing parameters.

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:

Add missing parameters.

  • crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: Added.

(WebCore::CryptoAlgorithmECDSA::platformSign):
(WebCore::CryptoAlgorithmECDSA::platformVerify):

  • crypto/mac/CommonCryptoDERUtilities.cpp: Added.

(WebCore::bytesUsedToEncodedLength):
(WebCore::extraBytesNeededForEncodedLength):
(WebCore::addEncodedASN1Length):
(WebCore::bytesNeededForEncodedLength):

  • crypto/mac/CommonCryptoDERUtilities.h:

(WebCore::bytesUsedToEncodedLength): Deleted.
(WebCore::extraBytesNeededForEncodedLength): Deleted.
(WebCore::addEncodedASN1Length): Deleted.
(WebCore::bytesNeededForEncodedLength): Deleted.
Move implementations to a .cpp file.

  • crypto/mac/CryptoAlgorithmECDSAMac.cpp: Added.

(WebCore::cryptoDigestAlgorithm):
(WebCore::signECDSA):
(WebCore::verifyECDSA):
(WebCore::CryptoAlgorithmECDSA::platformSign):
(WebCore::CryptoAlgorithmECDSA::platformVerify):

  • crypto/mac/CryptoAlgorithmRegistryMac.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):

  • crypto/parameters/CryptoAlgorithmEcdsaParams.h: Added.
  • crypto/parameters/EcdsaParams.idl: Added.

LayoutTests:

  • crypto/subtle/ec-generate-key-malformed-parameters-expected.txt:
  • crypto/subtle/ec-generate-key-malformed-parameters.html:
  • crypto/subtle/ec-import-key-malformed-parameters-expected.txt:
  • crypto/subtle/ec-import-key-malformed-parameters.html:
  • crypto/subtle/ecdh-generate-export-key-pkcs8-p256-expected.txt: Renamed from LayoutTests/crypto/subtle/ecdh-generate-export-pkcs8-p256-expected.txt.
  • crypto/subtle/ecdh-generate-export-key-pkcs8-p256.html: Renamed from LayoutTests/crypto/subtle/ecdh-generate-export-pkcs8-p256.html.
  • crypto/subtle/ecdh-generate-export-key-pkcs8-p384-expected.txt: Renamed from LayoutTests/crypto/subtle/ecdh-generate-export-pkcs8-p384-expected.txt.
  • crypto/subtle/ecdh-generate-export-key-pkcs8-p384.html: Renamed from LayoutTests/crypto/subtle/ecdh-generate-export-pkcs8-p384.html.
  • crypto/subtle/ecdsa-generate-export-jwk-key-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-export-jwk-key.html: Added.
  • crypto/subtle/ecdsa-generate-export-key-pkcs8-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-export-key-pkcs8.html: Added.
  • crypto/subtle/ecdsa-generate-export-key-raw-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-export-key-raw.html: Added.
  • crypto/subtle/ecdsa-generate-export-key-spki-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-export-key-spki.html: Added.
  • crypto/subtle/ecdsa-generate-key-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-key-sign-verify-p256-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-key-sign-verify-p256.html: Added.
  • crypto/subtle/ecdsa-generate-key-sign-verify-p384-expected.txt: Added.
  • crypto/subtle/ecdsa-generate-key-sign-verify-p384.html: Added.
  • crypto/subtle/ecdsa-generate-key.html: Added.
  • crypto/subtle/ecdsa-import-jwk-private-key-expected.txt: Added.
  • crypto/subtle/ecdsa-import-jwk-private-key.html: Added.
  • crypto/subtle/ecdsa-import-jwk-public-key-alg-256-expected.txt: Added.
  • crypto/subtle/ecdsa-import-jwk-public-key-alg-256.html: Added.
  • crypto/subtle/ecdsa-import-jwk-public-key-alg-384-expected.txt: Added.
  • crypto/subtle/ecdsa-import-jwk-public-key-alg-384.html: Added.
  • crypto/subtle/ecdsa-import-jwk-public-key-expected.txt: Added.
  • crypto/subtle/ecdsa-import-jwk-public-key.html: Added.
  • crypto/subtle/ecdsa-import-key-sign-p256-expected.txt: Added.
  • crypto/subtle/ecdsa-import-key-sign-p256.html: Added.
  • crypto/subtle/ecdsa-import-key-sign-p384-expected.txt: Added.
  • crypto/subtle/ecdsa-import-key-sign-p384.html: Added.
  • crypto/subtle/ecdsa-import-key-verify-p256-expected.txt: Added.
  • crypto/subtle/ecdsa-import-key-verify-p256.html: Added.
  • crypto/subtle/ecdsa-import-key-verify-p384-expected.txt: Added.
  • crypto/subtle/ecdsa-import-key-verify-p384.html: Added.
  • crypto/subtle/ecdsa-import-pkcs8-key-expected.txt: Added.
  • crypto/subtle/ecdsa-import-pkcs8-key.html: Added.
  • crypto/subtle/ecdsa-import-raw-key-expected.txt: Added.
  • crypto/subtle/ecdsa-import-raw-key.html: Added.
  • crypto/subtle/ecdsa-import-spki-key-expected.txt: Added.
  • crypto/subtle/ecdsa-import-spki-key.html: Added.
  • crypto/subtle/ecdsa-verify-malformed-parameters-expected.txt: Added.
  • crypto/subtle/ecdsa-verify-malformed-parameters.html: Added.
  • crypto/workers/subtle/ecdsa-import-key-sign-expected.txt: Added.
  • crypto/workers/subtle/ecdsa-import-key-sign.html: Added.
  • crypto/workers/subtle/ecdsa-import-key-verify-expected.txt: Added.
  • crypto/workers/subtle/ecdsa-import-key-verify.html: Added.
  • crypto/workers/subtle/resources/ecdsa-import-key-sign.js: Added.
  • crypto/workers/subtle/resources/ecdsa-import-key-verify.js: Added.
12:30 PM Changeset in webkit [215422] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: XHR breakpoints restored from settings do not appear in the sidebar
https://bugs.webkit.org/show_bug.cgi?id=170890

Reviewed by Joseph Pecoraro.

Need to check for existing breakpoints when XHRBreakpointTreeController
is constructed, instead of just listening for added breakpoints.

  • UserInterface/Controllers/XHRBreakpointTreeController.js:

(WebInspector.XHRBreakpointTreeController):
(WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointAdded):
(WebInspector.XHRBreakpointTreeController.prototype._addTreeElement):

12:26 PM Changeset in webkit [215421] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit2

[WK2] Respect a new internal setting for defaulting to character selection granularity
https://bugs.webkit.org/show_bug.cgi?id=170904
<rdar://problem/31364280>

Reviewed by Dan Bernstein.

Respect a new WebKitDebugDefaultSelectionGranularityCharacter user default by initializing
WKWebViewConfiguration with WKSelectionGranularityCharacter, but only when linked on or after the first iOS to
use WKSelectionGranularityCharacter by default.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

  • UIProcess/Cocoa/VersionChecks.h:
11:26 AM Changeset in webkit [215420] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit2

Provide a way for clients to unmute a media stream.
https://bugs.webkit.org/show_bug.cgi?id=170855
<rdar://problem/31656855>

Reviewed by Jon Lee.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setPageMuted:]): New.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
10:58 AM Changeset in webkit [215419] by timothy_horton@apple.com
  • 1 edit
    6 deletes in trunk/LayoutTests/imported/w3c

Remove some accidentally-added .orig files
https://bugs.webkit.org/show_bug.cgi?id=170908

Reviewed by Youenn Fablet.

  • web-platform-tests/resources/docs/api.md.orig: Removed.
  • web-platform-tests/resources/examples/apisample12.html.orig: Removed.
  • web-platform-tests/resources/webidl2/test/widlproc/doc/htmltodtd.xsl.orig: Removed.
  • web-platform-tests/resources/webidl2/test/widlproc/doc/widlproc.html.orig: Removed.
  • web-platform-tests/resources/webidl2/test/widlproc/examples/spectowidl.xsl.orig: Removed.
  • web-platform-tests/resources/webidl2/test/widlproc/src/widlprocxmltohtml.xsl.orig: Removed.
10:00 AM Changeset in webkit [215418] by commit-queue@webkit.org
  • 14 edits
    2 copies
    2 adds in trunk/Source

Refactor enumerateDevices to allow separate CaptureDeviceManagers for audio and video.
https://bugs.webkit.org/show_bug.cgi?id=170778

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-04-17
Source/WebCore:

Reviewed by Eric Carlson.

Add CoreAudioCaptureDeviceManager to enumerate CoreAudio devices.

Refactor RealtimeMediaSourceCenter and RealtimeMediaSourceCenterMac to provide independent audio and video capture device managers
and the abiliity to override the capture device managers.

CoreAudioCaptureSource now uses CoreAudioCaptureDeviceManager to use the specified device instead of the default one.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/CaptureDeviceManager.cpp:

(CaptureDeviceManager::getAudioSourcesInfo):
(CaptureDeviceManager::getVideoSourcesInfo):
(CaptureDeviceManager::getSourcesInfo): Deleted.

  • platform/mediastream/CaptureDeviceManager.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::setAudioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::unsetAudioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::setVideoCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::unsetVideoCaptureDeviceManager):

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager):

  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::refreshAVCaptureDevicesOfType):
(WebCore::AVCaptureDeviceManager::refreshCaptureDevices):
(WebCore::AVCaptureDeviceManager::getAudioSourcesInfo):
(WebCore::AVCaptureDeviceManager::getVideoSourcesInfo):
(WebCore::AVCaptureDeviceManager::setUseAVFoundationAudioCapture): Deleted.
(WebCore::AVCaptureDeviceManager::getSourcesInfo): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureDevice.cpp: Added.

(WebCore::getDeviceInfo):
(WebCore::CoreAudioCaptureDevice::create):
(WebCore::CoreAudioCaptureDevice::CoreAudioCaptureDevice):
(WebCore::CoreAudioCaptureDevice::deviceID):
(WebCore::CoreAudioCaptureDevice::deviceClock):
(WebCore::CoreAudioCaptureDevice::isAlive):

  • platform/mediastream/mac/CoreAudioCaptureDevice.h: Copied from Source/WebCore/platform/mediastream/CaptureDeviceManager.h.
  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: Added.

(WebCore::CoreAudioCaptureDeviceManager::singleton):
(WebCore::CoreAudioCaptureDeviceManager::captureDevices):
(WebCore::deviceHasInputStreams):
(WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices):
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::CoreAudioCaptureDeviceManager::devicesChanged):

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.h: Copied from Source/WebCore/platform/mediastream/CaptureDeviceManager.h.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture):
(WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac):
(WebCore::RealtimeMediaSourceCenterMac::createMediaStream):
(WebCore::RealtimeMediaSourceCenterMac::getMediaStreamDevices):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:

Source/WebKit2:

Reviewed by Tim Horton.

setUseAVFoundationAudioCapture is moved from AVCaptureDeviceManager to RealtimeMediaSourceCenterMac.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs):

9:37 AM Changeset in webkit [215417] by Ryan Haddad
  • 5 edits
    1 delete in trunk

Unreviewed, rolling out r215366.

This test is failing on performance bots.

Reverted changeset:

"Add performance test for asking the platform for a font for
U+2060 WORD JOINER"
https://bugs.webkit.org/show_bug.cgi?id=170842
http://trac.webkit.org/changeset/215366

9:15 AM Changeset in webkit [215416] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Correct poll when killing ServerProcess

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._kill): A polled process equaling 'None' means the process is running.

9:08 AM Changeset in webkit [215415] by jmarcell@apple.com
  • 1 copy in tags/Safari-603.2.4

Tag Safari-603.2.4.

8:44 AM Changeset in webkit [215414] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTestwebrtc/audio-replace-track.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=170837

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

  • webrtc/audio-replace-track.html: Updating the test to be less flaky.
8:34 AM Changeset in webkit [215413] by eric.carlson@apple.com
  • 4 edits in trunk/Tools

[MediaStream] Enable getUserMedia API test
https://bugs.webkit.org/show_bug.cgi?id=170901
<rdar://problem/31656594>

Reviewed by Youenn Fablet.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add test.
  • TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:

(TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack):
(TestWebKitAPI::TEST): Enable capture with mock devices.

  • TestWebKitAPI/Tests/WebKit2/getUserMedia.html: Update to mediaDevices.getUserMedia
8:27 AM Changeset in webkit [215412] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

RTCPeerConnection addTrack does not require a stream parameter
https://bugs.webkit.org/show_bug.cgi?id=170894

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

Source/WebCore:

Test: webrtc/video-addTrack.html

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack): Removing obsolete error throwing.

LayoutTests:

  • webrtc/video-addTrack-expected.txt: Added.
  • webrtc/video-addTrack.html: Added.
8:01 AM Changeset in webkit [215411] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk/Source

Add an external libwebrtc encoder factory in WebCore
https://bugs.webkit.org/show_bug.cgi?id=170883

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

Source/ThirdParty/libwebrtc:

Exporting some symbols.
Allowing to customize the creation of the H264 encoder.

  • Source/webrtc/media/base/codec.h:
  • Source/webrtc/media/engine/webrtcvideoencoderfactory.h
  • Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc:
  • Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.h:
  • Source/webrtc/video_decoder.h
  • Source/webrtc/video_encoder.h

Source/WebCore:

No change of behavior, WebCore factory instantiating the default libwebrtc H264 encoder.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::staticFactoryAndThreads):

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: Added.

(WebCore::VideoToolboxVideoEncoderFactory::CreateVideoEncoder):
(WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder):

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h: Added.
8:00 AM Changeset in webkit [215410] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

GraphicsLayerCA::recursiveCommitChanges should not descend into subtrees without changes
https://bugs.webkit.org/show_bug.cgi?id=170851

Reviewed by Simon Fraser.

With lots of layers this can be very slow as it always traverses the entire layer tree.
For example GIF animations on tumblr.com trigger expensive commits where almost nothing changes.

This patch adds m_hasDescendantsWithUncommittedChanges bit to GraphicsLayerCA. With this
we can avoid descending to branches without changes when committing.

This patch enabled the optimization on Mac.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA::syncPosition):

Set PositionChanged flag when syncing layer position. This flag does nothing except makes
next commit to update the coverage rect (so tiling gets updated).

(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

Do all setting of m_uncommittedChanges bits via addUncommittedChanges function.

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

Bail out if neither the current layer nor any of its descendants have any uncommited changes
and none of the ancestors had changes.

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::changeLayerTypeTo):
(WebCore::GraphicsLayerCA::addUncommittedChanges):

Set m_hasDescendantsWithUncommittedChanges bit in ancestors when mutating m_uncommittedChanges.

(WebCore::GraphicsLayerCA::noteLayerPropertyChanged):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::RenderLayerCompositor::frameViewDidScroll):

Tell the scrolling layer that it needs to recompute coverage.
This also schedules a layer flush so no need to do that separately.

7:47 AM Changeset in webkit [215409] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Update the Fedora dependencies for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=170590

Patch by Xan Lopez <Xan Lopez> on 2017-04-17
Reviewed by Carlos Alberto Lopez Perez.

  • gtk/install-dependencies: add a bunch of modules necessary to

get a proper set of GStreamer codecs for WebRTC.

6:51 AM Changeset in webkit [215408] by Yusuke Suzuki
  • 7 edits in trunk

[JSCOnly] Fix build failures in macOS
https://bugs.webkit.org/show_bug.cgi?id=170887

Reviewed by Alex Christensen.

.:

Align ICU header configuration to MacCMake port.

  • Source/cmake/OptionsJSCOnly.cmake:

Source/JavaScriptCore:

Align ICU header configuration to MacCMake port.

  • PlatformJSCOnly.cmake:

Source/WTF:

JSCOnly port does not use mac/MainThread.cpp.
We change the ifdef gurard to use generic implementaion in JSCOnly on macOS.

  • wtf/MainThread.cpp:
  • wtf/PlatformJSCOnly.cmake:
1:24 AM Changeset in webkit [215407] by jfbastien@apple.com
  • 20 edits in trunk/Source

B3: don't allow unsigned offsets in Value
https://bugs.webkit.org/show_bug.cgi?id=170692

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

MemoryValue and similar B3 opcode classes always expects a signed
offset. Giving it an out-of-bounds unsigned offset causes
implementation-defined behavior, which can cause badness as I just
fixed in WebAssembly. This patch makes it impossible to create a
Value opcodes with an unsigned value, or with an overly-large
value.

  • b3/B3AtomicValue.cpp:

(JSC::B3::AtomicValue::AtomicValue):

  • b3/B3AtomicValue.h:
  • b3/B3Common.h:

(JSC::B3::isRepresentableAs):

  • b3/B3EliminateCommonSubexpressions.cpp:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::scaleForShl):
(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::addr):
(JSC::B3::Air::LowerToAir::tryAppendLea):

  • b3/B3MemoryValue.cpp:

(JSC::B3::MemoryValue::isLegalOffsetImpl):
(JSC::B3::MemoryValue::MemoryValue):

  • b3/B3MemoryValue.h:
  • b3/B3MemoryValueInlines.h:

(JSC::B3::MemoryValue::isLegalOffsetImpl):

  • b3/B3MoveConstants.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::repForArg):

  • b3/B3Value.h:
  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::stackAddrImpl):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::addr):
(JSC::B3::Air::Arg::stack):
(JSC::B3::Air::Arg::callArg):
(JSC::B3::Air::Arg::stackAddr):
(JSC::B3::Air::Arg::index):
(JSC::B3::Air::Arg::offset):
(JSC::B3::Air::Arg::isValidAddrForm):
(JSC::B3::Air::Arg::isValidIndexForm):
(JSC::B3::Air::Arg::asTrustedImm32):
(JSC::B3::Air::Arg::asAddress):
(JSC::B3::Air::Arg::asBaseIndex):

  • b3/air/AirLowerStackArgs.cpp:

(JSC::B3::Air::lowerStackArgs):

  • b3/testb3.cpp:

(JSC::B3::testMulArgStore):
(JSC::B3::testStore32):
(JSC::B3::testStoreConstant):
(JSC::B3::testStoreConstantPtr):
(JSC::B3::testStoreAddLoad32):
(JSC::B3::testStoreAddLoadImm32):
(JSC::B3::testStoreAddLoad8):
(JSC::B3::testStoreAddLoadImm8):
(JSC::B3::testStoreAddLoad16):
(JSC::B3::testStoreAddLoadImm16):
(JSC::B3::testStoreAddLoad64):
(JSC::B3::testStoreAddLoadImm64):
(JSC::B3::testStoreAddLoad32Index):
(JSC::B3::testStoreAddLoadImm32Index):
(JSC::B3::testStoreAddLoad64Index):
(JSC::B3::testStoreAddLoadImm64Index):
(JSC::B3::testStoreSubLoad):
(JSC::B3::testStoreAddLoadInterference):
(JSC::B3::testStoreAddAndLoad):
(JSC::B3::testStoreNegLoad32):
(JSC::B3::testStoreNegLoadPtr):
(JSC::B3::testLoadOffset):
(JSC::B3::testLoadOffsetNotConstant):
(JSC::B3::testLoadOffsetUsingAdd):
(JSC::B3::testLoadOffsetUsingAddInterference):
(JSC::B3::testLoadOffsetUsingAddNotConstant):
(JSC::B3::testStoreLoadStackSlot):
(JSC::B3::testLoad):
(JSC::B3::testInterpreter):
(JSC::B3::testTrappingStore):
(JSC::B3::testTrappingLoadAddStore):
(JSC::B3::testWasmAddress):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::fixupPointerPlusOffset):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::emitLoadOp):
(JSC::Wasm::B3IRGenerator::emitStoreOp):

Source/WTF:

Add C++17's std::conjunction type trait, except for Microsoft VS
2015 update 2 and later because it adds the logical operator type
traits, event when C++ is pre-2017:
https://blogs.msdn.microsoft.com/vcblog/2016/01/22/vs-2015-update-2s-stl-is-c17-so-far-feature-complete/

  • wtf/StdLibExtras.h:

Apr 16, 2017:

11:02 PM Changeset in webkit [215406] by jmarcell@apple.com
  • 9 edits
    1 delete in branches/safari-603-branch

Roll out r211294 vi 215335. rdar://problem/31512298

7:59 PM Changeset in webkit [215405] by commit-queue@webkit.org
  • 7 edits in trunk

test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
https://bugs.webkit.org/show_bug.cgi?id=170882

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-16
Reviewed by Saam Barati.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToLocaleString):
We should be using the this value without ToObject conversion both when
getting the potential accessor and calling it. In strict mode, the this
value will remain its simple value, in non-strict it is still converted.

LayoutTests:

  • js/dom/object-prototype-toLocaleString-expected.txt:
  • js/dom/script-tests/object-prototype-toLocaleString.js:

Test the case of toLocaleString where toString does not exist.

5:56 PM Changeset in webkit [215404] by Chris Dumez
  • 8 edits
    4 adds in trunk

CMD+R / CMD+Q is considered as user interaction and beforeunload alert is shown
https://bugs.webkit.org/show_bug.cgi?id=169995
<rdar://problem/23798897>

Reviewed by Sam Weinig.

Source/WebCore:

Any key event was considered as user interaction with the page, which meant that they
would allow beforeunload alerts to be shown even when they do not represent actual
user interaction (e.g CMD+R / CMD+Q / CMD+T keyboard shortcuts).

To address the issue, we now only treat as user interaction with the page key events
that are actually handled by the page (i.e. handled by JS, typed into a field, ...).

Tests: fast/events/beforeunload-alert-handled-keydown.html

fast/events/beforeunload-alert-unhandled-keydown.html

  • dom/Document.h:

(WebCore::Document::setUserDidInteractWithPage):
(WebCore::Document::userDidInteractWithPage):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureIndicator::UserGestureIndicator):

  • loader/FrameLoader.cpp:

(WebCore::shouldAskForNavigationConfirmation):

  • page/EventHandler.cpp:

(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::internalKeyEvent):

  • page/EventHandler.h:

LayoutTests:

Add layout test coverage.

  • fast/events/beforeunload-alert-handled-keydown-expected.txt: Added.
  • fast/events/beforeunload-alert-handled-keydown.html: Added.
  • fast/events/beforeunload-alert-unhandled-keydown-expected.txt: Added.
  • fast/events/beforeunload-alert-unhandled-keydown.html: Added.
5:50 PM Changeset in webkit [215403] by commit-queue@webkit.org
  • 26 edits
    1 add
    1 delete in trunk

[WebIDL] Switch IDLAttributes.txt over to a more structured format so that more information can be added for each attribute
https://bugs.webkit.org/show_bug.cgi?id=170843

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

.:

  • Source/cmake/WebKitMacros.cmake:

Update extension of IDLAttributes to .json

Source/WebCore:

  • Converts IDLAttributes.txt to IDLAttributes.json, and adds additional information for each attribute about what contexts they are valid in which is checked by the parser.
  • Removes CustomSetPrototype which was unused, and Immutable which did nothing.
  • DerivedSources.make:

Update extension of IDLAttributes to .json

  • WebCore.xcodeproj/project.pbxproj:

Update project file for new file name and add some missing IDL files.

  • bindings/scripts/CodeGenerator.pm:

Store the processed IDLAttributes in the code generator, so it can
be used for any additional Parser instantiations.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
Remove support for CustomSetPrototype. Nobody is using it.

  • bindings/scripts/IDLAttributes.json: Copied from Source/WebCore/bindings/scripts/IDLAttributes.txt.
  • bindings/scripts/IDLAttributes.txt: Removed.

Rename IDLAttributes.txt -> IDLAttributes.json and move the data
into a more structured format. For now each extended attribute can
have the following fields:

Required:

'contextsAllowed' -> Non-empty array of strings from the contexts array.

Optional:

'values' -> Non-empty array of strings allowed after the equal (=) sign in

the extended attribute. Like before, an empty string indicates it is
ok to not have a value and a star (*) indicates any string is allowed.
Not providing a values property at all indicates that no value is
allowed.

'standard' -> An object with information about the standard this attribute

comes from. Should only be added to attributes that come from standards.

'unsupported' -> A boolean with value true, indicating this property is not

yet supported. Should only be used for standard attributes.

'notes' -> A string with notes explaining something about this attribute.

  • bindings/scripts/IDLParser.pm:

Pass and store the processed extended attribute map to the parser, and use it
validate that extended attributes being added to things are appropriate for the
context. Fix FIXME in isExtendedAttributeApplicableToTypes by using the map to
implement the predicate, rather than hard coding the list.

  • bindings/scripts/generate-bindings.pl:

(generateEmptyHeaderAndCpp):
(loadIDLAttributes): Deleted.
(checkIDLAttributes): Deleted.
(checkIfIDLAttributesExists): Deleted.
Make specifying an IDL attributes file required. Switch to processing it
as a JSON file, and having the parser validate attributes.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/TestImplements.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestSupplemental.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • Remove use of Immutable extended attribute in the tests, as it does nothing.
  • Remove use of the made up ReadOnly attribute, as the tests now use the IDLAttributes file to validate that the attributes are supported, so this would otherwise fail.
  • css/WebKitCSSMatrix.idl:
  • svg/SVGZoomEvent.idl:
  • Remove use of the Immutable extended attribute, as it does nothing.
  • page/NavigatorID.idl:
  • page/NavigatorLanguage.idl:
  • Remove use of the Nondeterministic extended attribute, as it does nothing.
  • Modules/mediasource/SourceBufferList.idl:

Remove use of CallWith on the interface. It is illegal, and does nothing.

  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:

Remove use of [Default=Undefined]. This construct does nothing and now
correctly fails to parse.

Tools:

  • DumpRenderTree/DerivedSources.make:
  • WebKitTestRunner/DerivedSources.make:
  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.generate_from_idl):
Pass IDLAttributes.json, as it is now mandatory to have one.

1:20 PM Changeset in webkit [215402] by commit-queue@webkit.org
  • 10 edits
    1 add in trunk

test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
https://bugs.webkit.org/show_bug.cgi?id=170888

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-16
Reviewed by Saam Barati.

JSTests:

  • stress/computed-accessor.js:
  • stress/eval-in-arrow-function.js:
  • stress/rest-elements.js:
  • stress/string-object-define-own-property.js:

Remove unused shouldThrow.

  • stress/symbol-toprimitive-errors.js: Added.

Check for ToPrimitive TypeErrors.

  • test262.yaml:

Source/JavaScriptCore:

  • runtime/ExceptionHelpers.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::createInvalidInstanceofParameterErrorHasInstanceValueNotFunction):
Fix up this function name.

  • runtime/JSObject.cpp:

(JSC::callToPrimitiveFunction):
When called with @@isPrimitive, bail on undefined or null and
throw a type error if the value is not callable.

(JSC::JSObject::toPrimitive):
Use throw scope to check for exception.

1:01 PM Changeset in webkit [215401] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

test262: test262/test/language/expressions/tagged-template/template-object.js
https://bugs.webkit.org/show_bug.cgi?id=170878

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-16
Reviewed by Saam Barati.

JSTests:

  • stress/array-length-not-writable.js: Added.

(assert):

  • test262.yaml:

Source/JavaScriptCore:

  • runtime/JSArray.cpp:

(JSC::JSArray::put):
The fast path for setting an Array's length should check if length is
writable before checking for and possibly throwing a RangeError.

10:37 AM Changeset in webkit [215400] by commit-queue@webkit.org
  • 9 edits in trunk

test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
https://bugs.webkit.org/show_bug.cgi?id=170879

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-16
Reviewed by Saam Barati.

JSTests:

  • ChakraCore/test/es5/enumerable.baseline-jsc:
  • test262.yaml:

Source/JavaScriptCore:

  • runtime/StringObject.h:
  • runtime/StringObject.cpp:

(JSC::StringObject::getOwnPropertyNames):
(JSC::StringObject::getOwnNonIndexPropertyNames):
Ensure 'length' comes after all indexed properties by moving
it out to the getOwnNonIndexPropertyNames method which is called
inside of getOwnPropertyNames after JSObject handles indices.

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
4:13 AM Changeset in webkit [215399] by commit-queue@webkit.org
  • 11 edits in trunk

test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
https://bugs.webkit.org/show_bug.cgi?id=170884

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-16
Reviewed by Yusuke Suzuki.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):

  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::addFunctionProperties):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):

  • runtime/SymbolPrototype.cpp:

(JSC::SymbolPrototype::finishCreation):
Give symbol property functions proper function names.
This addresses function.name but not function.toString().

Note: See TracTimeline for information about the timeline view.