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

Timeline



Aug 7, 2016:

11:05 PM Changeset in webkit [204252] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break after r204236.

Text.replaceWholeText was removed from DOM API.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_text_replace_whole_text):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
10:54 PM Changeset in webkit [204251] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break after r204113.

Document.defaultCharset was removed from DOM API.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_get_default_charset):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
10:40 PM Changeset in webkit [204250] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Bad performance in accelerated compositing mode with the modesetting intel driver and DRI3 enabled
https://bugs.webkit.org/show_bug.cgi?id=160491

Reviewed by Michael Catanzaro.

This is becoming the default in several linux distributions and it makes WebKitGTK+ unusable in accelerated
compositing mode, which is now always enabled because since we switched to use the threaded compositor. The
problem seems to be an optimization of the intel driver for windows that are offscreen, and our redirected
window is always positioned at ScreenWidth + 1, 0. Using negative coordinates to position the redirected window
offscreen fixes the problem.
See also https://bugs.freedesktop.org/show_bug.cgi?id=85064.

  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Position the parent window at -1, -1.

10:38 PM Changeset in webkit [204249] by Carlos Garcia Campos
  • 9 edits
    2 moves in trunk/Source/WebKit2

Duplicated code in DrawingAreaProxyImpl and CoordinatedDrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=160506

Reviewed by Michael Catanzaro.

Same logic as in r202855 but in the UI process. CoordinatedDrawingAreaProxy is just a copy paste of
DrawingAreaProxyImpl with non-accelerated code path removed. There's actually nothing (or very little) specific
to coordinated graphics in the CoordinatedDrawingAreaProxy implementation. This patch renames
CoordinatedDrawingAreaProxy as AcceleratedDrawingAreaProxy and makes DrawingAreaProxyImpl inherit from it, so
that in case of accelerated compositing the parent class is used, and DrawingAreaProxyImpl only adds the non
accelerated code path.
To simplify the common API of AcceleratedDrawingAreaProxy, I have changed CoordinatedLayerTreeHostProxy to
receive a WebPageProxy in the constructor instead of a drawing area, since the drawing area was used just to get
the page proxy.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • UIProcess/AcceleratedDrawingAreaProxy.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp.

(WebKit::AcceleratedDrawingAreaProxy::AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::~AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::alwaysUseCompositing):
(WebKit::AcceleratedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
(WebKit::AcceleratedDrawingAreaProxy::sizeDidChange):
(WebKit::AcceleratedDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::AcceleratedDrawingAreaProxy::visibilityDidChange):
(WebKit::AcceleratedDrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint):
(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::exitAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::updateAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::backingStoreStateDidChange):
(WebKit::AcceleratedDrawingAreaProxy::sendUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::setNativeSurfaceHandleForCompositing):
(WebKit::AcceleratedDrawingAreaProxy::destroyNativeSurfaceHandleForCompositing):

  • UIProcess/AcceleratedDrawingAreaProxy.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h.

(WebKit::AcceleratedDrawingAreaProxy::isInAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::coordinatedLayerTreeHostProxy):

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::updateViewport):
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHostProxy::renderNextFrame):
(WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
  • UIProcess/CoordinatedGraphics/PageViewportController.cpp:

(WebKit::PageViewportController::syncVisibleContents):

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
(WebKit::DrawingAreaProxyImpl::paint):
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl): Deleted.
(WebKit::DrawingAreaProxyImpl::update): Deleted.
(WebKit::DrawingAreaProxyImpl::incorporateUpdate): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStore): Deleted.

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/efl/WebView.cpp:

(WebKit::WebView::setVisible):
(WebKit::WebView::coordinatedGraphicsScene):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::createDrawingAreaProxy):

7:48 PM Changeset in webkit [204248] by Yusuke Suzuki
  • 11 edits
    8 adds in trunk

[ES6] Module namespace object should not allow unset IC
https://bugs.webkit.org/show_bug.cgi?id=160553

Reviewed by Saam Barati.

JSTests:

  • modules/namespace-object-get-property.js: Added.

(import.as.ns.from.string_appeared_here.shouldThrow):

  • modules/namespace-object-has-property.js: Added.
  • modules/namespace-object-inline-caching.js: Added.

(import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
(shouldBe.lookup.lookup):
(shouldBe.lookup):

  • modules/namespace-object-inline-caching/a.js: Added.
  • modules/namespace-object-inline-caching/b.js: Added.
  • modules/namespace-object-try-get.js: Added.

(import.as.ns.from.string_appeared_here.tryGetByIdText):
(tryGetByIdTextStrict):

  • modules/namespace-object-typed-array-fast-path.js: Added.
  • test262.yaml:

Source/JavaScriptCore:

Previously, module namespace object accidentally allow "unset IC". But this "unsetness" does not rely on
the structure. We should disable inline caching onto the namespace object. Once it is needed, we should
create the special caching for namespace object like the following: it should be similar to monomorphic IC,
but it caches the object itself instead of the structure. It checks the object itself (And in DFG, it should be
CheckCell) and loads the value from the target module environment directly[1].

And this patch also set setIsTaintedByProxy for the module namespace object to notify to the caller that
this object has impure ::getOwnPropertySlot. Then this function is now renamed to setIsTaintedByOpaqueObject.

We drop the hack in JSModuleNamespaceObject::getOwnPropertySlot since we already introduced InternalMethodType
for ProxyObject. Previously we cannot distinguish ::HasProperty and ::GetOwnProperty. So not to throw any
errors for ::HasProperty case, we used slot.setCustom to delay the observable operation.
But, this hack lacks the support for hasOwnProperty: hasOwnProperty uses GetOwnProperty, so it should throw an error.
However the previous implementation does not throw an error since the delayed observable part (custom function part) is
skipped in hasOwnProperty implementation. We now remove this custom property hack and fix the corresponding failure
in test262.

[1]: https://bugs.webkit.org/show_bug.cgi?id=160590

  • jit/JITOperations.cpp:
  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::getOwnPropertySlot):
(JSC::callbackGetter): Deleted.

  • runtime/JSModuleNamespaceObject.h:
  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::getPureResult):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::setIsTaintedByOpaqueObject):
(JSC::PropertySlot::isTaintedByOpaqueObject):
(JSC::PropertySlot::setIsTaintedByProxy): Deleted.
(JSC::PropertySlot::isTaintedByProxy): Deleted.

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::getOwnPropertySlotCommon):

7:47 PM Changeset in webkit [204247] by Chris Dumez
  • 10 edits
    3 deletes in trunk

Node.baseURI should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=160649

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/interfaces-expected.txt:

Rebaseline now that one more check is passing.

  • web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:

Rebaseline now that the baseURI is "about:blank" instead of null. The check
is still failing. We are falling back to using the document's URL, as expected.
However, the document's URL should not be "about:blank" in this case, which is
why we are failing the previous check.

Source/WebCore:

Node.baseURI should not be nullable as per the latest DOM specification:

It is not nullable in Firefox. It is supposed to fallback to using the
document's URL. The document's URL is "about:blank" by default so
baseURI() now returns "about:blank" in the internal URL is null,
similarly to what we do for Document.URL (c.g. urlForBindings()).

No new tests, rebaselined existing test.

  • dom/Node.cpp:

(WebCore::Node::baseURI):

  • dom/Node.h:
  • dom/Node.idl:

LayoutTests:

Drop outdated DOM test.

  • dom/xhtml/level3/core/nodegetbaseuri02-expected.txt: Removed.
  • dom/xhtml/level3/core/nodegetbaseuri02.js: Removed.
  • dom/xhtml/level3/core/nodegetbaseuri02.xhtml: Removed.
6:33 PM Changeset in webkit [204246] by Chris Dumez
  • 22 edits in trunk

Drop SVGDocument as per the SVG2 specification
https://bugs.webkit.org/show_bug.cgi?id=160361

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

Drop SVGDocument as per the SVG2 specification:

SVGDocument has been merged into Document.

Chrome and Edge have dropped SVGDocument already, Firefox has not.

No new tests, rebaselined existing test.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::createNewDocumentWrapper): Deleted.

  • bindings/js/JSXMLDocumentCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS): Deleted.

  • page/DOMWindow.idl:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::rootElement):
(WebCore::SVGDocument::zoomAndPanEnabled):
(WebCore::SVGDocument::startPan):
(WebCore::SVGDocument::updatePan):

  • svg/SVGDocument.h:
  • svg/SVGDocument.idl:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::rootElement):

LayoutTests:

Update / rebaseline existing tests to reflect behavior change.

  • platform/mac/svg/custom/dynamic-svg-document-creation-expected.txt:
  • svg/custom/clone-node-expected.txt:
  • svg/custom/clone-node.html:
  • svg/custom/frame-getSVGDocument.html:
  • svg/custom/global-constructors-expected.txt:
  • svg/custom/manually-parsed-svg-allowed-in-dashboard-expected.txt:
  • svg/custom/script-tests/global-constructors.js:
1:50 PM Changeset in webkit [204245] by mitz@apple.com
  • 10 edits in trunk

[Cocoa] Reply block leaks if the remote object doesn’t call it
https://bugs.webkit.org/show_bug.cgi?id=160642

Reviewed by Sam Weinig.

Source/WebKit2:

  • Shared/API/Cocoa/RemoteObjectRegistry.h: Declared new member functions.
  • Shared/API/Cocoa/RemoteObjectRegistry.messages.in: Added ReleaseUnusedReplyBlock message.
  • Shared/API/Cocoa/RemoteObjectRegistry.mm:

(WebKit::RemoteObjectRegistry::sendUnusedReply): Send the ReleaseUnusedReplyBlock message.
(WebKit::RemoteObjectRegistry::releaseUnusedReplyBlock): Message receiver that call through

to -_releaseReplyWithID:.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]): Define a ReplyBlockCallChecker object and

capture an instance of it in the reply block we pass to the exported object. Have that
block set a flag on the checker when it’s called. If the checker gets destroyed without
the block having been called, which means that the block got destroyed without being
called, call sendUnusedReply to let the other side know that the block will not be invoked.

(-[_WKRemoteObjectRegistry _releaseReplyWithID:]): Added. Removed the pending reply from the

map, which release the block.

  • Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h: Declared a new method.
  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST): Added a test case that checks that the reply block is released even when it’s not

called.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn doNotCallCompletionHandler:]): Implement new method by not

calling the completion handler.

12:40 PM Changeset in webkit [204244] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r201245): switching between Computed and Visual Styles panels causes internal error
https://bugs.webkit.org/show_bug.cgi?id=160604
<rdar://problem/27723416>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/StyleDetailsPanel.js:

(WebInspector.StyleDetailsPanel.prototype.shown):
Only perform a layout if needed. Subclasses access node style
data during layout, which may not exist yet.

12:08 PM Changeset in webkit [204243] by Chris Dumez
  • 5 edits in trunk

Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::terminateProcess):
Stop calling resetStateAfterProcessExited() after calling
requestTermination() because requestTermination() now calls
didClose() which calls processDidCrash() which already calls
resetStateAfterProcessExited(). Because the processDidCrash()
delegates may start new loads, we really do not want to
reset the state again after calling the delegates.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

  • Call didClose() in WebProcessProxy::requestTermination() so that the processDidCrash() delegates get called in API tests whenever a WebContent process is terminated to simulate a crash.
  • Stop calling shutDown() and webConnection()->didClose() because didClose() already does this for us.

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

10:14 AM Changeset in webkit [204242] by Chris Dumez
  • 17 edits in trunk

Un-expose DOMSettableTokenList
https://bugs.webkit.org/show_bug.cgi?id=160643

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Un-expose DOMSettableTokenList. We merged DOMSettableTokenList into
DOMTokenList a while back, as per the specification. At the time, we
kept DOMSettableTokenList on Window, as an alias to DOMTokenList.
However, Firefox and Chrome dropped DOMSettableTokenList completely.
We now do the same as other browsers.

No new tests, rebaselined existing test.

  • page/DOMWindow.idl:

LayoutTests:

Update / rebaseline existing tests.

  • fast/dom/HTMLLinkElement/sizes-setter-expected.txt:
  • fast/dom/HTMLLinkElement/sizes-setter.html:
  • fast/dom/HTMLOutputElement/dom-settable-token-list-expected.txt:
  • fast/dom/HTMLOutputElement/script-tests/dom-settable-token-list.js:
  • fast/frames/sandbox-attribute-expected.txt:
  • fast/frames/sandbox-attribute.html:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
10:05 AM Changeset in webkit [204241] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

DocumentRuleSets::collectFeatures() should shrink-to-fit.
<https://webkit.org/b/160646>

Reviewed by Darin Adler.

We forgot to shrink-wrap the RuleFeatureSet in DocumentRuleSets
after collecting the document-wide features.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::collectFeatures):

12:40 AM Changeset in webkit [204240] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-07

Aug 6, 2016:

10:52 PM Changeset in webkit [204239] by Gyuyoung Kim
  • 45 edits in trunk/Source/WebCore

Purge all uses of PassRefPtr in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=159965

Reviewed by Chris Dumez.

Final clean up in Modules directory.

No new tests, no behavior changes.

  • Modules/gamepad/deprecated/GamepadList.cpp:

(WebCore::GamepadList::set):

  • Modules/gamepad/deprecated/GamepadList.h:
  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):

  • Modules/indieui/UIRequestEvent.cpp:

(WebCore::UIRequestEvent::create):
(WebCore::UIRequestEvent::UIRequestEvent):

  • Modules/indieui/UIRequestEvent.h:

(WebCore::UIRequestEvent::receiver):

  • Modules/mediasource/MediaSourceRegistry.h:
  • Modules/mediasource/SampleMap.cpp:

(WebCore::SampleMap::addSample):

  • Modules/mediasource/SampleMap.h:

(WebCore::SampleMap::addRange):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::textTrackAddCue):
(WebCore::SourceBuffer::textTrackRemoveCue):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediastream/CaptureDeviceManager.cpp:

(CaptureDeviceManager::bestSourcesForTypeAndConstraints):

  • Modules/mediastream/CaptureDeviceManager.h:
  • Modules/mediastream/MediaDevicesRequest.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStreamRegistry.h:
  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):
(WebCore::MediaStreamTrackEvent::track):

  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::MediaTrackConstraints::create):
(WebCore::MediaTrackConstraints::MediaTrackConstraints):
(WebCore::MediaTrackConstraints::optional):

  • Modules/mediastream/MediaTrackConstraints.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create):
(WebCore::RTCDTMFSender::RTCDTMFSender):

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCDataChannelEvent.cpp:

(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::channel):

  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCIceServer.h:
  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/SourceInfo.cpp:

(WebCore::SourceInfo::create):
(WebCore::SourceInfo::SourceInfo):

  • Modules/mediastream/SourceInfo.h:
  • Modules/mediastream/UserMediaClient.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::~Database):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue):

  • html/HTMLMediaElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::textTrackAddCue):
(WebCore::HTMLTrackElement::textTrackRemoveCue):

  • html/HTMLTrackElement.h:
  • html/track/TextTrack.h:
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):

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

(WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::didReceiveSample):

9:21 PM Changeset in webkit [204238] by Chris Dumez
  • 4 edits in trunk

Unreviewed, rolling out r204226.

Broke some API tests

Reverted changeset:

"Write API test to cover crash fix in r204135"
https://bugs.webkit.org/show_bug.cgi?id=160587
http://trac.webkit.org/changeset/204226

8:22 PM Changeset in webkit [204237] by Chris Dumez
  • 5 edits
    2 adds in trunk

a.replaceChild(a, a) should throw a HierarchyRequestError
https://bugs.webkit.org/show_bug.cgi?id=160640

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:

Source/WebCore:

a.replaceChild(a, a) should throw a HierarchyRequestError, because 'a'
is a host-including inclusive ancestor of 'a':

However, the call is merely ignored in WebKit.

No new tests, rebaselined existing test.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChild):

LayoutTests:

  • fast/dom/Node/replaceChild-notFoundError-expected.txt: Added.
  • fast/dom/Node/replaceChild-notFoundError.html: Added.
8:06 PM Changeset in webkit [204236] by Chris Dumez
  • 12 edits
    17 deletes in trunk

Drop legacy Text.replaceWholeText() API
https://bugs.webkit.org/show_bug.cgi?id=160641

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop legacy Text.replaceWholeText() API, which is no longer in the
specification:

Firefox and Chrome already dropped support for it.

No new tests, rebaselined existing test.

  • dom/Text.idl:

LayoutTests:

Drop outdated tests / checks.

  • dom/xhtml/level3/core/textreplacewholetext01-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext01.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext01.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05.xhtml: Removed.
  • fast/dom/Attr/change-id-via-attr-node-value-expected.txt:
  • fast/dom/Attr/change-id-via-attr-node-value.html:
  • fast/dom/Text/replaceWholeText-expected.txt: Removed.
  • fast/dom/Text/replaceWholeText.html: Removed.
  • fast/storage/storage-detached-iframe-expected.txt:
  • fast/storage/storage-detached-iframe.html:
  • http/tests/security/xss-DENIED-iframe-src-alias-expected.txt:
  • http/tests/security/xss-DENIED-iframe-src-alias.html:
  • platform/mac/inspector/model/remote-object-expected.txt:
7:43 PM Changeset in webkit [204235] by Chris Dumez
  • 10 edits in trunk

Align Range.createContextualFragment() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160634

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/domparsing/createContextualFragment-expected.txt:

Source/WebCore:

Align Range.createContextualFragment() input validation with the specification:

In particular, we were throwing a NOT_SUPPORTED_ERR when element had localname
"html" but was not in the HTML namespace. We should not throw in this case.

Firefox complies with the specification here.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::createContextualFragment): Deleted.

7:29 PM Changeset in webkit [204234] by Chris Dumez
  • 9 edits in trunk

[Web IDL] Add support for [Unscopable] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=160637

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/nodes/remove-unscopable-expected.txt:

Source/WebCore:

Add support for [Unscopable] extended attribute:

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(addUnscopableProperties):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):

  • bindings/scripts/test/TestObj.idl:
  • dom/ChildNode.idl:
  • dom/ParentNode.idl:
6:50 PM Changeset in webkit [204233] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r203253): Node details sidebar flickers while resizing
https://bugs.webkit.org/show_bug.cgi?id=160631
<rdar://problem/27733024>

Reviewed by Timothy Hatcher.

Sidebar panel layouts can be expensive, and should be performed only
when necessary (i.e., when the panel is shown for the first time, or
model data changed while the panel was hidden).

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype._recalculateWidth):

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel.prototype.shown):

  • UserInterface/Views/View.js:

(WebInspector.View.prototype.updateLayoutIfNeeded):
Update the layout if an initial layout was never performed.

6:41 PM Changeset in webkit [204232] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] -[_WKRemoteObjectRegistry() _invokeMethod:] leaks a block
https://bugs.webkit.org/show_bug.cgi?id=160636

Reviewed by Darin Adler.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]): Release the block returned from

NSMakeSpecialForwardingCaptureBlock.

4:43 PM Changeset in webkit [204231] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests/fetch/api/basic/mode-same-origin.html and -worker.html are failing after r204224
https://bugs.webkit.org/show_bug.cgi?id=160639

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt: Rebaased after redirect.py update in

https://bugs.webkit.org/show_bug.cgi?id=160593.

  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt: Ditto.
12:33 PM Changeset in webkit [204230] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

EWS Style Queue fails to process patches which fails validation
https://bugs.webkit.org/show_bug.cgi?id=160632

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/stylequeuetask.py:

(StyleQueueTask.validate): Add more information about validation failure.
(StyleQueueTask.run): Pass the error details in the PatchIsNotValid exception.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(test_non_valid_patch): Add a unit test to test the above code path.

11:23 AM Changeset in webkit [204229] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.50

New tag.

11:19 AM Changeset in webkit [204228] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Simplify valueToUSVString
https://bugs.webkit.org/show_bug.cgi?id=160628

Reviewed by Sam Weinig.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::isUnmatchedSurrogatePair): Deleted. This function was incorrectly named,
since it actually returned true if any surrogate code unit was passed.
(WebCore::valueToUSVString): Added a fast path for 8-bit characters that doesn't
bother iterating the string at all. Changed the fast path to actually check for
surrogate pairs. Use StringView::codePoints rather than writing our own loop that
does the same thing. In the slow path, use StringView::codePoints to make the logic
clear rather than writing out exactly what the specification says. This gets rid of
all the many constants the old version of the function contained.

9:01 AM Changeset in webkit [204227] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

WTF needs a variant implementation
https://bugs.webkit.org/show_bug.cgi?id=160618

Patch by Sam Weinig <sam@webkit.org> on 2016-08-06
Reviewed by Darin Adler.

Source/WTF:

Add an implementation of std::experimental::variant matching the C++17 draft http://wg21.link/n4606
taken from https://bitbucket.org/anthonyw/variant/src (5bce47fa788648f79e5ea1d77b0eef2e8f0b2999) and
modified to support compiling without exceptions (where it used to throw, we lovingly CRASH()).

  • WTF.xcodeproj/project.pbxproj:

Add new file.

  • wtf/Compiler.h:

Add COMPILER_SUPPORTS define for C++ exceptions.

  • wtf/Variant.h: Added.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Variant.cpp: Added.

Add tests for the variant implementation.

8:13 AM Changeset in webkit [204226] by Chris Dumez
  • 4 edits in trunk

Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

Call didClose() in WebProcessProxy::requestTermination() so that
the processDidCrash() delegates get called in API tests whenever
a WebContent process is terminated to simulate a crash.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

1:51 AM Changeset in webkit [204225] by commit-queue@webkit.org
  • 9 edits in trunk

[Fetch API] Fetching with a FormData body should reject until it is implemented
https://bugs.webkit.org/show_bug.cgi?id=160595

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

LayoutTests/imported/w3c:

Adding new tests to cover changes.
Removing HEAD with body test as it throws as expected and is redundant with
web-platform-tests/fetch/api/request/request-init-002.html.

  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:

(checkContentType):
(requestHeaders):

Source/WebCore:

Covered by updated tests.

This patch ensures that fetch will throw if trying to upload something that is not supported.
This is the case of BufferSource (FetchBody does not yet extract it) and FormData (no upload support yet).

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::extract): Added a FIXME.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::bodyType): Getter used by FetchResponse.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::setBody): Throwing if given body parameter cannot be extracted by FetchBody.
This ensures that a fetch with a body that cannot be uploaded will fail.
This is the case of BufferSource which is not yet supported.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Rejecting fetch promise if trying to upload a FormData as it is not implemented.

1:50 AM Changeset in webkit [204224] by commit-queue@webkit.org
  • 11 edits in trunk

[Fetch API] Fetch API should strip fragment and credentials from URLs used as referrer
https://bugs.webkit.org/show_bug.cgi?id=160593

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/referrer-expected.txt:
  • web-platform-tests/fetch/api/basic/referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/referrer.js:

(runTest): Adding more tests.
One test is failing as the redirection from same-origin to cross-origin is stripping the referer header.
But none is added afterwards. Hence cross-origin redirected request is sent without any referer header.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt: Rebasing according redirect.py script changes.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt: Ditto.
  • web-platform-tests/fetch/api/resources/redirect.py:

(main): Fixing rediret.py script.

Source/WebCore:

Covered by updated tests.

Stripping of referrer value before sending a load request.

Fixing bug in workers as referrer value was overwritten by WorkerThreadableLoader.
The current handling of referrer values as HTTP header is not great as this may trigger unnecessary preflighting.
Refactoring should allow passing it as a separate parameter and setting it after preflighting as per
https://fetch.spec.whatwg.org/#http-network-or-cache-fetch.

Also a newly added test is failing, as SubresourceLoader is removing the referer header in case of a cross-origin redirection.
But none is added back.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::internalRequest): Stripping referrer value.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Do not override referrer value if one is defined.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader): Adding assertion to ensure referrer value does not contain
credentials and/or fragment identifiers.

1:48 AM Changeset in webkit [204223] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

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

  • http/tests/fetch/fetch-in-worker-crash.html:
  • http/tests/fetch/fetch-in-worker.js:

Adding a new test based on a ReadableStream that is not closed and therefore Response.text promise cannot resolve.
Removing the blob resolve message as there is no guarantee that blob load will finish after the test is done.

1:00 AM Changeset in webkit [204222] by beidson@apple.com
  • 7 edits
    10 adds in trunk/Source/WebKit2

Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:

  • Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  • Has that provider message to the UIProcess notifying interest in gamepad state
  • Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  • Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the "PlatformGamepad" for WebProcesses.
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • UIProcess/Gamepads/UIGamepadProvider.cpp: Added.

(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/Gamepads/UIGamepadProvider.h: Added.
  • UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.

(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • WebProcess/Gamepad/WebGamepad.cpp: Added.
  • WebProcess/Gamepad/WebGamepad.h: Added.
  • WebProcess/Gamepad/WebGamepadProvider.cpp: Added.

(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Aug 5, 2016:

11:28 PM Changeset in webkit [204221] by Yusuke Suzuki
  • 3 edits in trunk/Source/WebCore

[ES6] Add ScriptElement::determineScriptType
https://bugs.webkit.org/show_bug.cgi?id=149576

Reviewed by Ryosuke Niwa.

Change ScriptElement::isScriptTypeSupported to ScriptElement::determineScriptType.
And introduce ScriptType, which is either "classic" or "module".
And support "module" type in ScriptElement[1, 2].
But this patch does not contain any module tag support code.
This will be implemented in the subsequent patch.

[1]: https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-module-system
[2]: https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::determineScriptType):
(WebCore::ScriptElement::prepareScript):
(WebCore::ScriptElement::isScriptTypeSupported): Deleted.

  • dom/ScriptElement.h:
10:37 PM Changeset in webkit [204220] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

NULL Reference Error in ElementRuleCollector
https://bugs.webkit.org/show_bug.cgi?id=160362

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-05
Reviewed by Darin Adler.

No new tests, existing CSS tests cover this change.

Undefined behavior sanitizer found a reference bound to a NULL pointer.
The root cause of this issue was a discrepancy between whether an author style needed to be defined. In some logic, an undefined author style was considered acceptable, but in other logic, author style was always assumed to be defined. To fix this, a variable was added so that while author style is always defined, there is a flag indicating if this definition occurred in the constructor for use by functions which allow an undefined author style.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::DocumentRuleSets): Define author style by default.
(WebCore::DocumentRuleSets::resetAuthorStyle): Switch author style flag.

  • css/DocumentRuleSets.h: Added author style flag, changed authorStyle accessor to reference from pointer.
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ElementRuleCollector): Original location of undefined behavior.
(WebCore::ElementRuleCollector::matchHostPseudoClassRules): Changed pointer to reference.
(WebCore::ElementRuleCollector::matchSlottedPseudoElementRules): Changed pointer to reference.

  • css/PageRuleCollector.cpp:

(WebCore::PageRuleCollector::matchAllPageRules): Check new flag, changed pointer to reference.

  • css/StyleResolver.cpp: Changed pointer to reference.
  • dom/Document.cpp: Dito.
  • style/AttributeChangeInvalidation.cpp: Dito.
  • style/ClassChangeInvalidation.cpp: Dito.
  • style/IdChangeInvalidation.cpp: Dito.
  • style/StyleSharingResolver.cpp: Dito.
10:34 PM Changeset in webkit [204219] by Chris Dumez
  • 7 edits
    17 adds in trunk

DOMException should be constructible
https://bugs.webkit.org/show_bug.cgi?id=160626

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WebIDL tests from W3C web-platform-tests.

  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.js: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-object-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-object.html: Added.

Source/WebCore:

DOMException should be constructible:

DOMException already has a constructor in Firefox and Chrome so this
aligns our behavior with other browsers.

Test: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html

  • dom/DOMCoreException.cpp:

(WebCore::errorCodeFromName):
(WebCore::DOMCoreException::create):
(WebCore::DOMCoreException::DOMCoreException):

  • dom/DOMCoreException.h:
  • dom/DOMCoreException.idl:
  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):

  • dom/ExceptionBase.h:
8:48 PM Changeset in webkit [204218] by keith_miller@apple.com
  • 4 edits
    2 adds in trunk/Source

Add LEBDecoder and tests
https://bugs.webkit.org/show_bug.cgi?id=160625

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Adds a new target testWASM that is currently used to test the LEB decoder.
In the future, if we add more support for WASM we will put more tests
here.

(CommandLine::CommandLine):
(printUsageStatement):
(CommandLine::parseArguments):
(runLEBTests):
(main):

Source/WTF:

Adds some LEB decoder functions to WTF. These are used in the
WASM spec to encode numbers in a semi-compressed format.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/LEBDecoder.h: Added.

(decodeUInt32):
(decodeInt32):

8:17 PM Changeset in webkit [204217] by Chris Dumez
  • 4 edits in trunk

Align Range.insertNode() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160624

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/ranges/Range-insertNode-expected.txt:

Source/WebCore:

Align Range.insertNode() input validation with the specification:

In particular, if range’s start node is a ProcessingInstruction or
Comment node, is a Text node whose parent is null, or is node, then
we should throw a HierarchyRequestError.

Chrome behaves according to the specification.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::insertNode):

7:33 PM Changeset in webkit [204216] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

[Web IDL] Add support for 'any' type in dictionaries
https://bugs.webkit.org/show_bug.cgi?id=160511

Reviewed by Sam Weinig.

Add support for 'any' type in dictionaries. It will pass the value as
a JSValue to the implementation. If the member is not present, it will
pass jsUndefined() to the implementation.

Having 'any' support in dictionaries is a convenient workaround for
types we don't support yet (e.g. union types).

No new tests, updated bindings tests.

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<JSC::JSValue>::convert):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convert<TestObj::Dictionary>):

  • bindings/scripts/test/TestObj.idl:
7:32 PM Changeset in webkit [204215] by Chris Dumez
  • 60 edits in trunk

[Web IDL] Add support for USVString type
https://bugs.webkit.org/show_bug.cgi?id=160608

Reviewed by Sam Weinig.

Source/WebCore:

Add support for USVString type in our bindings generator:

Also start using USVString instead of DOMString when suitable as per
the following specifications:

Test: js/dom/webidl-type-mapping.html

  • Modules/websockets/CloseEvent.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::isUnmatchedSurrogatePair):
(WebCore::valueToUSVString):
(WebCore::valueToUSVStringTreatingNullAsEmptyString):
(WebCore::valueToUSVStringWithUndefinedOrNullCheck):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::open):
(WebCore::handlePostMessage):

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::handleInitMessageEvent):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::importScripts):

  • bindings/scripts/CodeGenerator.pm:

(SkipIncludeHeader):
(IsStringOrEnumType):
(IsStringType):
(IsRefPtrType):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(JSValueToNative):
(NativeToJSValue):

  • bindings/scripts/IDLParser.pm:

(parseNonAnyType):

  • dom/Document.idl:
  • dom/ErrorEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/MessageEvent.idl:
  • dom/Node.idl:
  • html/DOMFormData.idl:
  • html/DOMURL.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLAppletElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLBaseElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLHyperlinkElementUtils.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLModElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLQuoteElement.idl:
  • html/HTMLScriptElement.idl:
  • html/HTMLSourceElement.idl:
  • html/HTMLTrackElement.idl:
  • html/HTMLVideoElement.idl:
  • html/URLUtils.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/History.idl:
  • page/Location.idl:
  • storage/StorageEvent.idl:
  • testing/TypeConversions.h:

(WebCore::TypeConversions::testString):
(WebCore::TypeConversions::setTestString):
(WebCore::TypeConversions::testUSVString):
(WebCore::TypeConversions::setTestUSVString):

  • testing/TypeConversions.idl:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.idl:

LayoutTests:

Add layout test coverage for USVString.

  • js/dom/webidl-type-mapping-expected.txt:
  • js/dom/webidl-type-mapping.html:

This test is based on the corresponding one from Blink.

6:40 PM Changeset in webkit [204214] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Add back a newline that was accidentally removed from an expected.txt file.

Unreviewed test gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
6:30 PM Changeset in webkit [204213] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r204210. rdar://problem/27592694

6:19 PM Changeset in webkit [204212] by Ryan Haddad
  • 9 edits
    30 adds in branches/safari-602-branch/LayoutTests

Test gardening for rdar://problem/27595142.

6:16 PM Changeset in webkit [204211] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

6:13 PM Changeset in webkit [204210] by commit-queue@webkit.org
  • 6 edits in trunk

revert r202466 r202546 this causes regressions in media loading with temporary redirects.
https://bugs.webkit.org/show_bug.cgi?id=160613

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-08-05
Reviewed by Jon Lee.

Source/WebCore:

No new tests. Skipping two tests.

This reverts a change that attempted to fix temporary redirects with media loading.
The change introduced problems. Reverting this to require media stack to properly
handle redirects.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]): Deleted.
(-[WebCoreNSURLSession updateHasSingleSecurityOrigin:]): Deleted.
(-[WebCoreNSURLSession dataTaskWithRequest:]): Deleted.
(-[WebCoreNSURLSession dataTaskWithURL:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]): Deleted.

LayoutTests:

Reverting a fix that enabled two tests. These tests now fail and are skipped.

  • platform/mac/TestExpectations:
6:05 PM Changeset in webkit [204209] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

32-bit JSC test failure: stress/instanceof-late-constant-folding.js
https://bugs.webkit.org/show_bug.cgi?id=160620

Reviewed by Filip Pizlo.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

5:53 PM Changeset in webkit [204208] by Ryan Haddad
  • 7 edits
    2 deletes in trunk/Source/WebKit2

Unreviewed, rolling out r204195.
https://bugs.webkit.org/show_bug.cgi?id=160623

This change causes assertion failures in LayoutTests and API
tests. (Requested by ryanhaddad on #webkit).

Reverted changeset:

"Lay WebProcess/UIProcess groundwork for an IPC
GamepadProvider."
https://bugs.webkit.org/show_bug.cgi?id=160605
http://trac.webkit.org/changeset/204195

Patch by Commit Queue <commit-queue@webkit.org> on 2016-08-05

5:49 PM Changeset in webkit [204207] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove the first LocalCSE
https://bugs.webkit.org/show_bug.cgi?id=160615

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-05
Reviewed by Saam Barati.

LocalCSE is the most expensive phase in DFG (excluding FTL).

The combination of two LocalCSEs does not seem to pay for its cost.
Doing a single LocalCSE is always after ConstantFolding and StrengthReduction
is always a win on my machine.

  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

5:46 PM Changeset in webkit [204206] by sbarati@apple.com
  • 7 edits
    1 add in trunk

various math operations don't properly check for an exception after calling toNumber() on the lhs
https://bugs.webkit.org/show_bug.cgi?id=160154

Reviewed by Mark Lam.

JSTests:

  • stress/to-number-throws-correct-exception.js: Added.

(test.let.test.runTest.):
(test.let.test.runTest.get f):
(test.let.test.runTest):
(test.let.test):
(test):
(test2.runTest.):
(test2.runTest.get f):
(test2.runTest):
(test2):

Source/JavaScriptCore:

We must check for an exception after calling toNumber() on the lhs
because this can throw an exception. If we called toNumber() on
the rhs without first checking for an exception after the toNumber()
on the lhs, this can lead us to execute effectful code or deviate
from the standard in subtle ways. I fixed this bug in various places
by always checking for an exception after calling toNumber() on the
lhs for the various bit and arithmetic operations.

This patch also found a commutativity bug inside DFGStrengthReduction.
We could end up commuting the lhs and rhs of say an "|" expression
even when the lhs/rhs may not be numbers. This is wrong because
executing toNumber() on the lhs/rhs has strict ordering guarantees
by the specification and is observable by user programs.

  • dfg/DFGOperations.cpp:
  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleCommutativity):

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Operations.cpp:

(JSC::jsAddSlowCase):

5:32 PM Changeset in webkit [204205] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add a tiny bit more image logging
https://bugs.webkit.org/show_bug.cgi?id=160621

Reviewed by Tim Horton.

Add logging related to image subsampling.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::frameImageAtIndex):

5:01 PM Changeset in webkit [204204] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

compilePutByValForIntTypedArray() has a slow path in the middle of its processing
https://bugs.webkit.org/show_bug.cgi?id=160614

Reviewed by Keith Miller.

In compilePutByValForIntTypedArray() we were calling out to the slow path
operationToInt32() and then returning back to the middle of code to finish
the processing of writing the value to the array. When we make the slow
path call, we trash any temporary registers that have been allocated.
In general slow path calls should finish the operation in progress and
continue processing at the beginning of the next node.

This was discovered while working on the register argument changes, when
we SpeculateStrictInt32Operand on the value child node. That child node's
value was live in register with a spill format of DataFormatJSInt32. In that
case we allocate a new temporary register and copy just the lower 32 bits from
the child register to the new temp register. That temp register gets trashed
when we make the operationToInt32() slow path call.

I spent some time trying to devise a test with the current code base and wasn't
successful. This case is tested with the register argument changes in progress.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

5:01 PM Changeset in webkit [204203] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Asking for group members of radio button that has no name attribute will cause crash
https://bugs.webkit.org/show_bug.cgi?id=160583

Reviewed by Chris Fleizach.

Source/WebCore:

The NameToGroupMap is null when there's no name attribute on the radio buttons. Added a
check so that we don't try to get a value from a null HashSet.

Test: accessibility/mac/radio-button-no-name-crash.html

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroups::groupMembers):

LayoutTests:

  • accessibility/mac/radio-button-no-name-crash-expected.txt: Added.
  • accessibility/mac/radio-button-no-name-crash.html: Added.
4:57 PM Changeset in webkit [204202] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Disk cache tests produce many undefined value warnings
https://bugs.webkit.org/show_bug.cgi?id=160601

Reviewed by Daniel Bates.

  • http/tests/cache/disk-cache/resources/generate-response.cgi: Cleaned up header

and parameter handling. Removed a couple unnecessary checks for $cgi->http.

4:54 PM Changeset in webkit [204201] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Work around broken <Files> directive in some Apache versions
https://bugs.webkit.org/show_bug.cgi?id=160610

Reviewed by Daniel Bates.

The problem is tracked as rdar://problem/27725655

  • http/tests/misc/.htaccess:
4:41 PM Changeset in webkit [204200] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.49

New tag.

4:36 PM Changeset in webkit [204199] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaselining compositing/masks/compositing-clip-path-change-no-repaint.html for ios-simulator.

Unreviewed test gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
4:29 PM Changeset in webkit [204198] by Brent Fulgham
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: observer in WebCore::BitmapImage::drawPattern
https://bugs.webkit.org/show_bug.cgi?id=141637
<rdar://problem/27709864>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/images/image-source-assert.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern): Remove invalid assertion.

LayoutTests:

  • fast/images/image-source-assert-expected.txt: Added.
  • fast/images/image-source-assert.html: Added.
3:34 PM Changeset in webkit [204197] by Simon Fraser
  • 10 edits
    1 copy
    1 add
    17 deletes in trunk

marquee with "truespeed" animates at > 60fps, hogging CPU
https://bugs.webkit.org/show_bug.cgi?id=160609

Reviewed by David Hyatt.

Source/WebCore:

A <marquee truespeed="" scrollDelay="0"> would fire a zero-delay timer and also
fail to animate, hogging CPU.

Fix to cap the timer at 16ms intervals. We don't believe it's necessary to
maintain web compatibility here.

Tested by existing tests.

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::minimumDelay):

  • html/HTMLMarqueeElement.h:

LayoutTests:

Convert marquee tests into ref tests, removing all the platform expectations.

  • fast/html/marquee-scroll-expected.html: Copied from LayoutTests/fast/html/marquee-scroll.html.
  • fast/html/marquee-scroll.html:
  • fast/html/marquee-scrollamount-expected.html: Added.
  • fast/html/marquee-set-truespeed.html:
  • platform/efl/fast/html/marquee-scroll-expected.png: Removed.
  • platform/efl/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/efl/fast/html/marquee-scrollamount-expected.png: Removed.
  • platform/efl/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/gtk/fast/html/marquee-scroll-expected.png: Removed.
  • platform/gtk/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/gtk/fast/html/marquee-scrollamount-expected.png: Removed.
  • platform/gtk/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator-wk2/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/ios-simulator/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/ios-simulator/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/mac/fast/html/marquee-scroll-expected.png: Removed.
  • platform/mac/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/mac/fast/html/marquee-scrollamount-expected.png: Removed.
  • platform/mac/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/win/fast/html/marquee-scrollamount-expected.txt: Removed.
3:26 PM Changeset in webkit [204196] by Ryan Haddad
  • 12 edits
    2 deletes in trunk

Unreviewed, rolling out r204181.

This change caused an existing LayoutTest to fail on WK1

Reverted changeset:

"Don't set document.domain to an IP address fragment"
https://bugs.webkit.org/show_bug.cgi?id=126045
http://trac.webkit.org/changeset/204181

2:54 PM Changeset in webkit [204195] by beidson@apple.com
  • 7 edits
    10 adds in trunk/Source/WebKit2

Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:

  • Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  • Has that provider message to the UIProcess notifying interest in gamepad state
  • Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  • Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the "PlatformGamepad" for WebProcesses.
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • UIProcess/Gamepads/UIGamepadProvider.cpp: Added.

(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/Gamepads/UIGamepadProvider.h: Added.
  • UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.

(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • WebProcess/Gamepad/WebGamepad.cpp: Added.
  • WebProcess/Gamepad/WebGamepad.h: Added.
  • WebProcess/Gamepad/WebGamepadProvider.cpp: Added.

(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

2:53 PM Changeset in webkit [204194] by timothy_horton@apple.com
  • 3 edits in trunk/Tools

run-api-tests should use a headed simulator
https://bugs.webkit.org/show_bug.cgi?id=160611

Reviewed by Sam Weinig.

CADisplayLink doesn't work in a headless simulator, but is
vital for the proper functioning of WebKit2 painting on iOS.
So, we should not use a headless simulator.

  • Scripts/run-api-tests:

Launch a simulator app, don't just boot the simulator.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

Re-enable a test that works now.

2:22 PM Changeset in webkit [204193] by Simon Fraser
  • 4 edits in trunk/LayoutTests

Sierra WK1: compositing/masks/compositing-clip-path-change-no-repaint.html failing
rdar://problem/26789221

Make this test less sensitive to platform repaint differences.

  • compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
  • compositing/masks/compositing-clip-path-change-no-repaint.html:
  • platform/mac-wk1/TestExpectations:
2:19 PM Changeset in webkit [204192] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r204128.
https://bugs.webkit.org/show_bug.cgi?id=160607

Solve the issue by removing the workaround for static files
(Requested by jonlee_ on #webkit).

Reverted changeset:

"Temporary redirected m3u8 streaming stopped working."
https://bugs.webkit.org/show_bug.cgi?id=160472
http://trac.webkit.org/changeset/204128

1:27 PM Changeset in webkit [204191] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/LayoutTests

Remove testRunner.handleErrorPages()
https://bugs.webkit.org/show_bug.cgi?id=160552

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-05
Reviewed by Daniel Bates.

handleErrorPages() was implemented by the Qt WebKit port, per
https://bugs.webkit.org/show_bug.cgi?id=31509#c0, but never implemented
on other ports. Per https://bugs.webkit.org/show_bug.cgi?id=31555, this
feature was never implemented on Mac.

  • fast/history/back-forward-reset-after-error-handling-expected.txt: Removed test expectations.
  • fast/history/back-forward-reset-after-error-handling.html: Removed test.
  • platform/efl/TestExpectations: Remove reference to back-forward-reset-after-error-handling.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
1:22 PM Changeset in webkit [204190] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

segmentTimeSeriesByMaximizingSchwarzCriterion returns a bogus result on empty charts
https://bugs.webkit.org/show_bug.cgi?id=160575

Rubber-stamped by Chris Dumez.

The bug was caused by an early return in segmentTimeSeriesByMaximizingSchwarzCriterion.
Removed this early return as the one in splitIntoSegmentsUntilGoodEnough was sufficient.

Also factored out a few functions in findOptimalSegmentation so that they can be better
optimized in JSC's DFG and FTL tiers, and removed unused debuggingTestingRangeNomination.

  • public/shared/statistics.js:

(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Removed an early return.
(Statistics.splitIntoSegmentsUntilGoodEnough):
(.allocateCostUpperTriangularForSegmentation): Extracted from findOptimalSegmentation.
(.allocatePreviousNodeForSegmentation): Ditto.
(.findOptimalSegmentationInternal): Ditto.
(.findOptimalSegmentation):

  • unit-tests/statistics-tests.js: Added a test case.
1:21 PM Changeset in webkit [204189] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Perf dashboard sometimes tries to fetch a non-existent measurement-set JSON
https://bugs.webkit.org/show_bug.cgi?id=160577

Rubber-stamped by Chris Dumez.

The bug was caused by findClusters computing the first cluster's endTime incorrectly. Namely, we were
multiplying the number of clusters by clusterStart instead of clusterSize with an off-by-one error.

  • public/v3/models/measurement-set.js:

(MeasurementSet.prototype.findClusters): Folded computeClusterStart into where clusterEnd is computed
for clarity. Also fixed a bug that we were not computing the first cluster to fetch correctly when
the fetched time range started before clusterStart (i.e. when startTime - clusterStart is negative).
Finally, fixed the main bug by multiplying the number of clusters by clusterSize instead of
clusterStart to compute the end time of the very first cluster in this measurement set. Because what
we're computing here is the end time of the first cluster, not the start time, we also need to subtract
one from the number of clusters. e.g. if there was exactly one cluster, then firstClusterEndTime is
identically equal to lastClusterEndTime.
(MeasurementSet.prototype.fetchedTimeSeries): Removed the unused argument to TimeSeries's constructor.

  • unit-tests/analysis-task-tests.js: Fixed the tests for the latest version of Mocha which complains if

we returned a promise in unit tests when "done" function is used.

  • unit-tests/checkconfig.js: Ditto.
  • unit-tests/measurement-set-tests.js: Added a test case for findClusters and a test to make sure

fetchBetween doesn't try to fetch a cluster before the first cluster in the set. Also fixed other test
cases which were relying on the bug this patch fixed.

1:19 PM Changeset in webkit [204188] by mitz@apple.com
  • 6 edits in trunk

[Cocoa] WKRemoteObjectCoder doesn’t handle NSRange
https://bugs.webkit.org/show_bug.cgi?id=160589

Reviewed by Tim Horton.

Source/WebKit2:

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments): Encode NSRange by wrapping in an NSValue.
(decodeInvocationArguments): Decode wrapped NSRange.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h:

(remoteObjectInterface): Fixed a mistake in the set of allowed classes in one of the reply

blocks, which wasn’t caught because the test wasn’t run correctly.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST): Fixed the -selectionAndClickInformationForClickAtPoint:completionHandler: test, and

added a test that sends over an NSRange.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn takeRange:completionHandler:]): Added. Calls the completion

handler with the range‘s location and length.

1:19 PM Changeset in webkit [204187] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

MeasurementCluster's addToSeries is slow
https://bugs.webkit.org/show_bug.cgi?id=160581

Rubber-stamped by Chris Dumez.

The bulk of time was spent in MeasurementAdaptor.prototype.applyTo where we computed the interval.

Since some of data points are filtered out by TimeSeriesChart component before intervals are used,
we can significantly reduce the CPU time by lazily compute them. This patch reduces the runtime of
applyTo from ~60ms to ~30ms on my machine.

  • public/v3/models/measurement-adaptor.js:

(MeasurementAdaptor.prototype.applyTo): Lazily compute and cache the interval. Also cache the build
object instead of always creating a new object.

  • public/v3/models/measurement-cluster.js:

(MeasurementCluster.prototype.addToSeries): Call applyTo first before checking whether the point is
an outlier or its id to avoid extracting those values twice since they show up in the profiler. Also
use "of" instead "forEach" since "of" seems to be faster here.

12:38 PM Changeset in webkit [204186] by Brent Fulgham
  • 5 edits
    2 adds in trunk

validity assertion fails after removing a child of an <optgroup> element
https://bugs.webkit.org/show_bug.cgi?id=155720
<rdar://problem/27720746>

Reviewed by Brent Fulgham.

Source/WebCore:

All calls to HTMLSelectElement::setRecalcListItems also need to call HTMLSelectElement::updateValidity.

Test: fast/dom/HTMLSelectElement/select-remove-from-optgroup.html

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::recalcSelectOptions): Call 'updateValidity' after 'setRecalcListItems'.

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::insertedInto): Ditto.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute): Ditto.

LayoutTests:

Add new test case that triggers a debug assertion when the HTMLSelectElement state
is not updated properly.

  • fast/dom/HTMLSelectElement/select-remove-from-optgroup-expected.txt: Added.
  • fast/dom/HTMLSelectElement/select-remove-from-optgroup.html: Added.
12:29 PM Changeset in webkit [204185] by bshafiei@apple.com
  • 5 edits
    2 deletes in branches/safari-602-branch

Roll out r204128 via r204169. rdar://problem/27592694

12:16 PM Changeset in webkit [204184] by Ryan Haddad
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r204174.

The test for this change is failing on WK1

Reverted changeset:

"Popups opened from a sandboxed iframe should themselves be
sandboxed"
https://bugs.webkit.org/show_bug.cgi?id=134850
http://trac.webkit.org/changeset/204174

12:16 PM Changeset in webkit [204183] by enrica@apple.com
  • 2 edits in trunk/Tools

Fixing tests failing after r204175.

Unreviewed.

  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig:
12:16 PM Changeset in webkit [204182] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Assertion failure when accessing TDZ variable in catch through eval
https://bugs.webkit.org/show_bug.cgi?id=160554

Reviewed by Mark Lam and Keith Miller.

JSTests:

  • stress/catch-variables-under-tdz.js: Added.

(test):

Source/JavaScriptCore:

When we were calculating the variables under TDZ from a JSScope,
the algorithm was not taking into account that a catch scope
has variables under TDZ.

  • runtime/JSScope.cpp:

(JSC::JSScope::collectVariablesUnderTDZ):

11:57 AM Changeset in webkit [204181] by wilander@apple.com
  • 12 edits
    2 adds in trunk

Don't set document.domain to an IP address fragment
https://bugs.webkit.org/show_bug.cgi?id=126045
<rdar://problem/27331794>

Reviewed by Daniel Bates.

Source/WebCore:

This patch matches the following Blink one:
https://chromium.googlesource.com/chromium/blink/+/b19a57fdb323d5a80d3a1cb0a6b343558c4237b0

IP address octets should not be treated as subdomains when setting
document.domain. The specs say:
'The domain attribute's setter must run these steps: ...

  1. If host is not equal to effectiveDomain, then run these substeps:
    1. If host or effectiveDomain is not a domain, then throw a "SecurityError" DOMException.'

https://html.spec.whatwg.org/multipage/browsers.html#relaxing-the-same-origin-restriction
Last Updated 5 August 2016

'A host is a domain, an IPv4 address, or an IPv6 address.'
https://url.spec.whatwg.org/#concept-domain
Last Updated 28 July 2016

Test: http/tests/security/set-domain-remove-subdomain-for-ip-address.html

  • dom/Document.cpp:

(WebCore::Document::setDomain):

Now checks whether the security origin is allowed to remove
subdomains. If not, it throws a security error.

  • page/OriginAccessEntry.cpp:

(WebCore::OriginAccessEntry::OriginAccessEntry):

Constructor now expects an IP address setting.

(WebCore::OriginAccessEntry::matchesOrigin):

Now also checks whether the host in an IP address and returns
false if IP addresses aren't configured to be treated as domains.

  • page/OriginAccessEntry.h:

Introduced new enum for IP address setting.
Constructor now expects an IP address setting.

(WebCore::OriginAccessEntry::ipAddressSettings):

New getter.

(WebCore::operator==):

Now also requires IP address settings to match.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):

Changes to match OriginAccessEntry's new constructor.

(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):

Changes to match OriginAccessEntry's new constructor.

  • page/Settings.in:

Added a setting to allow IP address octets to be treated as
subdomains. This way our existing tests setting document.domain
still work.

LayoutTests:

IP address octets should not be treated as subdomains when
setting document.domain.

  • http/tests/security/aboutBlank/security-context-alias.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/aboutBlank/security-context-grandchildren-alias.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/postMessage/origin-unaffected-by-document-domain.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/set-domain-remove-subdomain-for-ip-address-expected.txt: Added.
  • http/tests/security/set-domain-remove-subdomain-for-ip-address.html: Added.
  • http/tests/workers/worker-document-domain-security.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/xmlhttprequest/document-domain-set.html:

Now enables the new setting treatIPAddressesAsDomains.

11:53 AM Changeset in webkit [204180] by keith_miller@apple.com
  • 11 edits
    10 deletes in trunk/Source

Delete out of date WASM code.
https://bugs.webkit.org/show_bug.cgi?id=160603

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch removes a bunch of the wasm files that we are unlikey to use
with the newer wasm spec. If we end up needing any of the deleted code
later we can restore it at that time.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/JITOperations.cpp:
  • jsc.cpp:

(GlobalObject::finishCreation): Deleted.
(functionLoadWebAssembly): Deleted.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall): Deleted.

  • runtime/Executable.cpp:

(JSC::WebAssemblyExecutable::prepareForExecution): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Deleted.
(JSC::JSGlobalObject::visitChildren): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::wasmModuleStructure): Deleted.

  • wasm/WASMConstants.h: Removed.
  • wasm/WASMFunctionB3IRGenerator.h: Removed.

(JSC::WASMFunctionB3IRGenerator::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionB3IRGenerator::startFunction): Deleted.
(JSC::WASMFunctionB3IRGenerator::endFunction): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSetLocal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSetGlobal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildReturn): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildGetLocal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildGetGlobal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildConvertType): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildLoad): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildStore): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallInternal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallIndirect): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallImport): Deleted.
(JSC::WASMFunctionB3IRGenerator::appendExpressionList): Deleted.
(JSC::WASMFunctionB3IRGenerator::discard): Deleted.
(JSC::WASMFunctionB3IRGenerator::linkTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::jumpToTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::jumpToTargetIf): Deleted.
(JSC::WASMFunctionB3IRGenerator::startLoop): Deleted.
(JSC::WASMFunctionB3IRGenerator::endLoop): Deleted.
(JSC::WASMFunctionB3IRGenerator::startSwitch): Deleted.
(JSC::WASMFunctionB3IRGenerator::endSwitch): Deleted.
(JSC::WASMFunctionB3IRGenerator::startLabel): Deleted.
(JSC::WASMFunctionB3IRGenerator::endLabel): Deleted.
(JSC::WASMFunctionB3IRGenerator::breakTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::continueTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::breakLabelTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::continueLabelTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSwitch): Deleted.

  • wasm/WASMFunctionCompiler.h: Removed.

(JSC::operationConvertJSValueToInt32): Deleted.
(JSC::operationConvertJSValueToDouble): Deleted.
(JSC::operationDiv): Deleted.
(JSC::operationMod): Deleted.
(JSC::operationUnsignedDiv): Deleted.
(JSC::operationUnsignedMod): Deleted.
(JSC::operationConvertUnsignedInt32ToDouble): Deleted.
(JSC::sizeOfMemoryType): Deleted.
(JSC::WASMFunctionCompiler::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionCompiler::WASMFunctionCompiler): Deleted.
(JSC::WASMFunctionCompiler::startFunction): Deleted.
(JSC::WASMFunctionCompiler::endFunction): Deleted.
(JSC::WASMFunctionCompiler::buildSetLocal): Deleted.
(JSC::WASMFunctionCompiler::buildSetGlobal): Deleted.
(JSC::WASMFunctionCompiler::buildReturn): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateI32): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateF32): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateF64): Deleted.
(JSC::WASMFunctionCompiler::buildGetLocal): Deleted.
(JSC::WASMFunctionCompiler::buildGetGlobal): Deleted.
(JSC::WASMFunctionCompiler::buildConvertType): Deleted.
(JSC::WASMFunctionCompiler::buildLoad): Deleted.
(JSC::WASMFunctionCompiler::buildStore): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryI32): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryF32): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryF64): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryI32): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryF32): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryF64): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalI32): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalF32): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalF64): Deleted.
(JSC::WASMFunctionCompiler::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionCompiler::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionCompiler::buildCallInternal): Deleted.
(JSC::WASMFunctionCompiler::buildCallIndirect): Deleted.
(JSC::WASMFunctionCompiler::buildCallImport): Deleted.
(JSC::WASMFunctionCompiler::appendExpressionList): Deleted.
(JSC::WASMFunctionCompiler::discard): Deleted.
(JSC::WASMFunctionCompiler::linkTarget): Deleted.
(JSC::WASMFunctionCompiler::jumpToTarget): Deleted.
(JSC::WASMFunctionCompiler::jumpToTargetIf): Deleted.
(JSC::WASMFunctionCompiler::startLoop): Deleted.
(JSC::WASMFunctionCompiler::endLoop): Deleted.
(JSC::WASMFunctionCompiler::startSwitch): Deleted.
(JSC::WASMFunctionCompiler::endSwitch): Deleted.
(JSC::WASMFunctionCompiler::startLabel): Deleted.
(JSC::WASMFunctionCompiler::endLabel): Deleted.
(JSC::WASMFunctionCompiler::breakTarget): Deleted.
(JSC::WASMFunctionCompiler::continueTarget): Deleted.
(JSC::WASMFunctionCompiler::breakLabelTarget): Deleted.
(JSC::WASMFunctionCompiler::continueLabelTarget): Deleted.
(JSC::WASMFunctionCompiler::buildSwitch): Deleted.
(JSC::WASMFunctionCompiler::localAddress): Deleted.
(JSC::WASMFunctionCompiler::temporaryAddress): Deleted.
(JSC::WASMFunctionCompiler::appendCall): Deleted.
(JSC::WASMFunctionCompiler::appendCallWithExceptionCheck): Deleted.
(JSC::WASMFunctionCompiler::emitNakedCall): Deleted.
(JSC::WASMFunctionCompiler::appendCallSetResult): Deleted.
(JSC::WASMFunctionCompiler::callOperation): Deleted.
(JSC::WASMFunctionCompiler::boxArgumentsAndAdjustStackPointer): Deleted.
(JSC::WASMFunctionCompiler::callAndUnboxResult): Deleted.
(JSC::WASMFunctionCompiler::convertValueToInt32): Deleted.
(JSC::WASMFunctionCompiler::convertValueToDouble): Deleted.
(JSC::WASMFunctionCompiler::convertDoubleToValue): Deleted.

  • wasm/WASMFunctionParser.cpp: Removed.

(JSC::nameOfType): Deleted.
(JSC::WASMFunctionParser::checkSyntax): Deleted.
(JSC::WASMFunctionParser::compile): Deleted.
(JSC::WASMFunctionParser::parseFunction): Deleted.
(JSC::WASMFunctionParser::parseLocalVariables): Deleted.
(JSC::WASMFunctionParser::parseStatement): Deleted.
(JSC::WASMFunctionParser::parseReturnStatement): Deleted.
(JSC::WASMFunctionParser::parseBlockStatement): Deleted.
(JSC::WASMFunctionParser::parseIfStatement): Deleted.
(JSC::WASMFunctionParser::parseIfElseStatement): Deleted.
(JSC::WASMFunctionParser::parseWhileStatement): Deleted.
(JSC::WASMFunctionParser::parseDoStatement): Deleted.
(JSC::WASMFunctionParser::parseLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseBreakStatement): Deleted.
(JSC::WASMFunctionParser::parseBreakLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseContinueStatement): Deleted.
(JSC::WASMFunctionParser::parseContinueLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseSwitchStatement): Deleted.
(JSC::WASMFunctionParser::parseExpression): Deleted.
(JSC::WASMFunctionParser::parseExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalI32ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalF32ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalF64ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseMinOrMaxExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseMinOrMaxExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseExpressionVoid): Deleted.
(JSC::WASMFunctionParser::parseGetLocalExpression): Deleted.
(JSC::WASMFunctionParser::parseGetGlobalExpression): Deleted.
(JSC::WASMFunctionParser::parseSetLocal): Deleted.
(JSC::WASMFunctionParser::parseSetGlobal): Deleted.
(JSC::WASMFunctionParser::parseMemoryAddress): Deleted.
(JSC::WASMFunctionParser::parseLoad): Deleted.
(JSC::WASMFunctionParser::parseStore): Deleted.
(JSC::WASMFunctionParser::parseCallArguments): Deleted.
(JSC::WASMFunctionParser::parseCallInternal): Deleted.
(JSC::WASMFunctionParser::parseCallIndirect): Deleted.
(JSC::WASMFunctionParser::parseCallImport): Deleted.
(JSC::WASMFunctionParser::parseConditional): Deleted.
(JSC::WASMFunctionParser::parseComma): Deleted.
(JSC::WASMFunctionParser::parseConvertType): Deleted.

  • wasm/WASMFunctionParser.h: Removed.

(JSC::WASMFunctionParser::WASMFunctionParser): Deleted.

  • wasm/WASMFunctionSyntaxChecker.h: Removed.

(JSC::WASMFunctionSyntaxChecker::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionSyntaxChecker::startFunction): Deleted.
(JSC::WASMFunctionSyntaxChecker::endFunction): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSetLocal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSetGlobal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildReturn): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildGetLocal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildGetGlobal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildConvertType): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildLoad): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildStore): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallInternal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallImport): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallIndirect): Deleted.
(JSC::WASMFunctionSyntaxChecker::appendExpressionList): Deleted.
(JSC::WASMFunctionSyntaxChecker::discard): Deleted.
(JSC::WASMFunctionSyntaxChecker::linkTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::jumpToTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::jumpToTargetIf): Deleted.
(JSC::WASMFunctionSyntaxChecker::startLoop): Deleted.
(JSC::WASMFunctionSyntaxChecker::endLoop): Deleted.
(JSC::WASMFunctionSyntaxChecker::startSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::endSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::startLabel): Deleted.
(JSC::WASMFunctionSyntaxChecker::endLabel): Deleted.
(JSC::WASMFunctionSyntaxChecker::breakTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::continueTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::breakLabelTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::continueLabelTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::stackHeight): Deleted.
(JSC::WASMFunctionSyntaxChecker::updateTempStackHeight): Deleted.
(JSC::WASMFunctionSyntaxChecker::updateTempStackHeightForCall): Deleted.

  • wasm/WASMModuleParser.cpp: Removed.

(JSC::WASMModuleParser::WASMModuleParser): Deleted.
(JSC::WASMModuleParser::parse): Deleted.
(JSC::WASMModuleParser::parseModule): Deleted.
(JSC::WASMModuleParser::parseConstantPoolSection): Deleted.
(JSC::WASMModuleParser::parseSignatureSection): Deleted.
(JSC::WASMModuleParser::parseFunctionImportSection): Deleted.
(JSC::WASMModuleParser::parseGlobalSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDeclarationSection): Deleted.
(JSC::WASMModuleParser::parseFunctionPointerTableSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDefinitionSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDefinition): Deleted.
(JSC::WASMModuleParser::parseExportSection): Deleted.
(JSC::WASMModuleParser::getImportedValue): Deleted.
(JSC::parseWebAssembly): Deleted.

  • wasm/WASMModuleParser.h: Removed.
  • wasm/WASMReader.cpp: Removed.

(JSC::WASMReader::readUInt32): Deleted.
(JSC::WASMReader::readFloat): Deleted.
(JSC::WASMReader::readDouble): Deleted.
(JSC::WASMReader::readCompactInt32): Deleted.
(JSC::WASMReader::readCompactUInt32): Deleted.
(JSC::WASMReader::readString): Deleted.
(JSC::WASMReader::readType): Deleted.
(JSC::WASMReader::readExpressionType): Deleted.
(JSC::WASMReader::readExportFormat): Deleted.
(JSC::WASMReader::readByte): Deleted.
(JSC::WASMReader::readOpStatement): Deleted.
(JSC::WASMReader::readOpExpressionI32): Deleted.
(JSC::WASMReader::readOpExpressionF32): Deleted.
(JSC::WASMReader::readOpExpressionF64): Deleted.
(JSC::WASMReader::readOpExpressionVoid): Deleted.
(JSC::WASMReader::readVariableTypes): Deleted.
(JSC::WASMReader::readOp): Deleted.
(JSC::WASMReader::readSwitchCase): Deleted.

  • wasm/WASMReader.h: Removed.

(JSC::WASMReader::WASMReader): Deleted.
(JSC::WASMReader::offset): Deleted.
(JSC::WASMReader::setOffset): Deleted.

Source/WTF:

Add Feature define for WebAssembly on mac.

  • wtf/FeatureDefines.h:
11:36 AM Changeset in webkit [204179] by Chris Dumez
  • 15 edits
    2 adds in trunk

Window's named properties should be exposed on a WindowProperties object in its prototype
https://bugs.webkit.org/show_bug.cgi?id=160354

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window's named properties should be exposed on a WindowProperties object
in its prototype:

Firefox and Chrome both comply with the specification. However, WebKit
had no "WindowProperties" object in the Window prototype chain and the
named properties are exposed on the Window object itself.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Deleted.
(WebCore::JSDOMWindow::put): Deleted.
(WebCore::JSDOMWindow::putByIndex): Deleted.
(WebCore::JSDOMWindow::getEnumerableLength): Deleted.

  • bindings/js/JSDOMWindowProperties.cpp: Added.

(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):

  • bindings/js/JSDOMWindowProperties.h: Added.

(WebCore::JSDOMWindowProperties::create):
(WebCore::JSDOMWindowProperties::createStructure):
(WebCore::JSDOMWindowProperties::JSDOMWindowProperties):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

LayoutTests:

  • fast/dom/Window/es52-globals-expected.txt:

Update / Rebaseline test now that named properties are no longer reported as "own"
properties on the Window object. I have verified that the test gives the
same result in Firefox and Chrome.

  • fast/loader/window-clearing-expected.txt:

Rebaseline test that prints one more line because there is one more
object in Window's prototype chain.

  • http/tests/security/window-named-proto-expected.txt:
  • http/tests/security/window-named-valueOf-expected.txt:

Rebaseline 2 security tests that give slightly different output. The new
output is identical to the one in Firefox and Chrome. The tests are not
failing since they are not alert'ing content from the other frame.
The reason those tests were logging a security error is because we would
previously prevent named property access if the frame name conflicts with
a property name in the Window prototype, and we now no longer
differentiate this case.

11:27 AM Changeset in webkit [204178] by beidson@apple.com
  • 6 edits
    2 copies
    13 moves
    6 adds in trunk/Source/WebCore

Create platform/gamepad directory, and make GamepadProvider pure virtual (with a default empty implementation).
https://bugs.webkit.org/show_bug.cgi?id=160599

Reviewed by Alex Christensen.

No new tests (No behavior change).

Except for the GamepadProvider/EmptyGamepadProvider split, this is just moving files around.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Linux.cmake:
  • platform/gamepad.h: Removed.
  • platform/gamepad/EmptyGamepadProvider.cpp:

(WebCore::EmptyGamepadProvider::startMonitoringGamepads):
(WebCore::EmptyGamepadProvider::stopMonitoringGamepads):
(WebCore::EmptyGamepadProvider::platformGamepads):

  • platform/gamepad/EmptyGamepadProvider.h:
  • platform/gamepad/GamepadProvider.cpp: Renamed from Source/WebCore/platform/GamepadProvider.cpp.

(WebCore::GamepadProvider::singleton):
(WebCore::GamepadProvider::setSharedProvider):

  • platform/gamepad/GamepadProvider.h: Renamed from Source/WebCore/platform/GamepadProvider.h.

(WebCore::GamepadProvider::~GamepadProvider):

  • platform/gamepad/GamepadProviderClient.h: Renamed from Source/WebCore/platform/GamepadProviderClient.h.

(WebCore::GamepadProviderClient::~GamepadProviderClient):

  • platform/gamepad/PlatformGamepad.h: Renamed from Source/WebCore/platform/PlatformGamepad.h.

(WebCore::PlatformGamepad::~PlatformGamepad):
(WebCore::PlatformGamepad::id):
(WebCore::PlatformGamepad::index):
(WebCore::PlatformGamepad::lastUpdateTime):
(WebCore::PlatformGamepad::connectTime):
(WebCore::PlatformGamepad::PlatformGamepad):

  • platform/gamepad/deprecated/Gamepads.h: Renamed from Source/WebCore/platform/Gamepads.h.
  • platform/gamepad/efl/GamepadsEfl.cpp: Renamed from Source/WebCore/platform/efl/GamepadsEfl.cpp.

(WebCore::GamepadDeviceEfl::resetFdHandler):
(WebCore::GamepadDeviceEfl::deviceFile):
(WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::~GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::readCallback):
(WebCore::GamepadsEfl::onGamePadChange):
(WebCore::GamepadsEfl::GamepadsEfl):
(WebCore::GamepadsEfl::~GamepadsEfl):
(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadsEfl::unregisterDevice):
(WebCore::GamepadsEfl::updateGamepadList):
(WebCore::sampleGamepads):

  • platform/gamepad/glib/GamepadsGlib.cpp: Renamed from Source/WebCore/platform/glib/GamepadsGlib.cpp.

(WebCore::GamepadDeviceGlib::GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::~GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::readCallback):
(WebCore::GamepadsGlib::GamepadsGlib):
(WebCore::GamepadsGlib::~GamepadsGlib):
(WebCore::GamepadsGlib::registerDevice):
(WebCore::GamepadsGlib::unregisterDevice):
(WebCore::GamepadsGlib::updateGamepadList):
(WebCore::GamepadsGlib::onUEventCallback):
(WebCore::GamepadsGlib::isGamepadDevice):
(WebCore::sampleGamepads):

  • platform/gamepad/linux/GamepadDeviceLinux.cpp: Renamed from Source/WebCore/platform/linux/GamepadDeviceLinux.cpp.

(WebCore::GamepadDeviceLinux::GamepadDeviceLinux):
(WebCore::GamepadDeviceLinux::~GamepadDeviceLinux):
(WebCore::GamepadDeviceLinux::updateForEvent):
(WebCore::GamepadDeviceLinux::normalizeAxisValue):
(WebCore::GamepadDeviceLinux::normalizeButtonValue):

  • platform/gamepad/linux/GamepadDeviceLinux.h: Renamed from Source/WebCore/platform/linux/GamepadDeviceLinux.h.

(WebCore::GamepadDeviceLinux::connected):
(WebCore::GamepadDeviceLinux::id):
(WebCore::GamepadDeviceLinux::timestamp):
(WebCore::GamepadDeviceLinux::axesCount):
(WebCore::GamepadDeviceLinux::axesData):
(WebCore::GamepadDeviceLinux::buttonsCount):
(WebCore::GamepadDeviceLinux::buttonsData):

  • platform/gamepad/mac/HIDGamepad.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepad.cpp.

(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::getCurrentValueForElement):
(WebCore::HIDGamepad::initElements):
(WebCore::HIDGamepad::initElementsFromArray):
(WebCore::HIDGamepad::maybeAddButton):
(WebCore::HIDGamepad::maybeAddAxis):
(WebCore::HIDGamepad::valueChanged):

  • platform/gamepad/mac/HIDGamepad.h: Renamed from Source/WebCore/platform/mac/HIDGamepad.h.

(WebCore::HIDGamepadElement::HIDGamepadElement):
(WebCore::HIDGamepadElement::~HIDGamepadElement):
(WebCore::HIDGamepadElement::isButton):
(WebCore::HIDGamepadElement::isAxis):
(WebCore::HIDGamepadButton::HIDGamepadButton):
(WebCore::HIDGamepadAxis::HIDGamepadAxis):
(WebCore::HIDGamepad::hidDevice):

  • platform/gamepad/mac/HIDGamepadProvider.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepadProvider.cpp.

(WebCore::deviceMatchingDictionary):
(WebCore::deviceAddedCallback):
(WebCore::deviceRemovedCallback):
(WebCore::deviceValuesChangedCallback):
(WebCore::HIDGamepadProvider::singleton):
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::valuesChanged):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::removeGamepadForDevice):

  • platform/gamepad/mac/HIDGamepadProvider.h: Renamed from Source/WebCore/platform/mac/HIDGamepadProvider.h.

(WebCore::HIDGamepadProvider::platformGamepads):

10:43 AM Changeset in webkit [204177] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/Source/WebCore

Unreviewed, rolling out r204147.
https://bugs.webkit.org/show_bug.cgi?id=160602

Considering another implementation (Requested by eric_carlson
on #webkit).

Reverted changeset:

"Add long, boolean, double, and String Media Constraint
classes"
https://bugs.webkit.org/show_bug.cgi?id=160524
http://trac.webkit.org/changeset/204147

10:08 AM Changeset in webkit [204176] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix 32-bit OverridesHasInstance in the DFG.
https://bugs.webkit.org/show_bug.cgi?id=160600

Reviewed by Mark Lam.

In https://trac.webkit.org/changeset/204140, we fixed an issue where the DFG might
do the wrong thing if it proved that the Symbol.hasInstance value for a constructor
was a constant late in compilation. That fix was ommited from the 32-bit version,
causing the new test to fail.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

9:57 AM Changeset in webkit [204175] by enrica@apple.com
  • 3 edits in trunk/Tools

Build fix after 204053.

Unreviewed.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm:

(-[MockContentFilterEnabler initWithCoder:]):
(-[MockContentFilterEnabler dealloc]):

9:51 AM Changeset in webkit [204174] by wilander@apple.com
  • 3 edits
    4 adds in trunk

Popups opened from a sandboxed iframe should themselves be sandboxed
https://bugs.webkit.org/show_bug.cgi?id=134850
<rdar://problem/27375388>

Reviewed by Brent Fulgham.

Source/WebCore:

This replicates the behavior in Chrome, Firefox, and according to the reporter
also in Internet Explorer. See the Mozilla bug report:
https://bugzilla.mozilla.org/show_bug.cgi?id=1037381#c1

Test: http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html

  • page/Chrome.cpp:

(WebCore::Chrome::createWindow):

Now copies the opener's frame loader effective sandbox flags to the new
frame loader.

LayoutTests:

  • http/tests/security/resources/anchor-tag-with-blank-target.html: Added.
  • http/tests/security/resources/page-executing-javascript.html: Added.
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox-expected.txt: Added.
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html: Added.
9:42 AM Changeset in webkit [204173] by Darin Adler
  • 2 edits in trunk/Source/WebCore
  • DerivedSources.make: Fix all places that were using tabs instead of spaces outside

the actual make rules, where tabs are required as part of make syntax.

9:26 AM Changeset in webkit [204172] by commit-queue@webkit.org
  • 6 edits in trunk

[Fetch API] SubresourceLoader::checkRedirectionCrossOriginAccessControl should not always assert in SameOrigin mode
https://bugs.webkit.org/show_bug.cgi?id=160594

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin.js: Adding redirection tests for same origin mode.

Source/WebCore:

Covered by rebased tests.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):
It should not throw is mode is SameOrigin and resource is same origin.

9:22 AM Changeset in webkit [204171] by commit-queue@webkit.org
  • 5 edits in trunk

[Fetch API] Response.blob should not assert in case the created blob is empty
https://bugs.webkit.org/show_bug.cgi?id=160592

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-consume-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume.html: Adding response with empty blob test.

Source/WebCore:

Covered bu updated test.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::takeAsBlob): Removing assertion as a response may have a body but with no data in it.

9:20 AM Changeset in webkit [204170] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r204159. rdar://problem/27669831

9:20 AM Changeset in webkit [204169] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r204128. rdar://problem/27592694

8:39 AM Changeset in webkit [204168] by Konstantin Tokarev
  • 3 edits in trunk/Tools

Print test name in "Last character read from DRT..." error message.
https://bugs.webkit.org/show_bug.cgi?id=160559

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/port/driver.py:

(Driver.run_test):
(Driver._read_first_block):
(Driver._read_optional_image_block):
(Driver._read_block):

  • Scripts/webkitpy/port/driver_unittest.py:

(DriverTest.test_read_block):
(DriverTest.test_read_binary_block):
(DriverTest.test_read_base64_block):

6:43 AM Changeset in webkit [204167] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Unreviewed, rolling out r204123.
https://bugs.webkit.org/show_bug.cgi?id=160597

Caused layout test timeouts on Windows. (Requested by perarne
on #webkit).

Reverted changeset:

"[Win] Unable to reliably run tests in parallel"
https://bugs.webkit.org/show_bug.cgi?id=140914
http://trac.webkit.org/changeset/204123

4:25 AM Changeset in webkit [204166] by commit-queue@webkit.org
  • 15 edits
    2 deletes in trunk

Unreviewed, rolling out r203935.
https://bugs.webkit.org/show_bug.cgi?id=160596

looks like a 1-2% PLUM regression on iPhone 6s (Requested by
kling_ on #webkit).

Reverted changeset:

"Window's named properties should be exposed on a
WindowProperties object in its prototype"
https://bugs.webkit.org/show_bug.cgi?id=160354
http://trac.webkit.org/changeset/203935

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

http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html is failing on iOS-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=160591

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-05

  • platform/ios-simulator-wk2/TestExpectations:
12:39 AM Changeset in webkit [204164] by commit-queue@webkit.org
  • 10 edits
    5 adds in trunk

[Fetch API] Activate CSP checks
https://bugs.webkit.org/show_bug.cgi?id=160445

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-05
Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/policies/csp-blocked-expected.txt:
  • web-platform-tests/fetch/api/policies/csp-blocked-worker-expected.txt:

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html

http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Adding CSP and URL upgrade checks.

LayoutTests:

  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-fetch-in-main-frame-window.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-xhr-in-main-frame-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame-expected.txt:
  • platform/mac-wk2/TestExpectations: Marking new worker test as failing at loading https resource from loader.

It gets a "The certificate for this server is invalid" error.

  • platform/wk2/TestExpectations: Marking new frame test as timing out for WK2 as fetch is not activated in the pop-up window.
12:25 AM Changeset in webkit [204163] by commit-queue@webkit.org
  • 16 edits in trunk

DocumentThreadableLoader should report an error when getting a null CachedResource
https://bugs.webkit.org/show_bug.cgi?id=160444

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

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/event-error-expected.txt:
  • web-platform-tests/XMLHttpRequest/getresponseheader-error-state-expected.txt:
  • web-platform-tests/XMLHttpRequest/timeout-cors-async-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:

Source/WebCore:

Covered by existing and rebased tests.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest): Calling didFail with an AccessControl error if unable to have a CachedResource.
The resource error type AccessControl is important as it indicates to some clients that they should not retry loading the same resource (EventSource notably).

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Removed handling of ThreadableLoader::create returning null.
This should be handled in didFail callback. This allows aligning behavior of
WorkerThreadableLoaderi::MainThreadBridge and XMLHttpRequest as ThreadableLoader clients.
(WebCore::XMLHttpRequest::didFail): Handle the case of didFail being called synchronously from ThreadableLoader::create.
In that case, use a timer to dispatch network events asynchronously.

LayoutTests:

  • fast/frames/frame-unload-crash.html:
  • http/tests/contentextensions/async-xhr-onerror-expected.txt:
  • http/tests/eventsource/eventsource-reconnect-during-navigate-crash-expected.txt:
  • http/tests/navigation/subframe-pagehide-handler-starts-load-expected.txt:
  • http/tests/navigation/subframe-pagehide-handler-starts-load2-expected.txt:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:

Aug 4, 2016:

11:46 PM Changeset in webkit [204162] by sbarati@apple.com
  • 11 edits in trunk

Restore CodeBlock jettison code to jettison when a CodeBlock has been alive for a long time
https://bugs.webkit.org/show_bug.cgi?id=151241

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch rolls back in the jettisoning policy from https://bugs.webkit.org/show_bug.cgi?id=149727.
We can now jettison a CodeBlock when it has been alive for a long time
and is only pointed to by its owner executable. I haven't been able to get this
patch to crash on anything it used to crash on, so I suspect we've fixed the bugs that
were causing this before. I've also added some stress options for this feature that
will cause us to either eagerly old-age jettison or to old-age jettison whenever it's legal.
These options helped me find a bug where we would ask an Executable to create a CodeBlock,
and then the Executable would do some other allocations, causing a GC, immediately causing
the CodeBlock to jettison. There is a small chance that this was the bug we were seeing before,
however, it's unlikely given that the previous timing metrics require at least 5 second between
compiling to jettisoning.

This patch also enables the stress options for various modes
of JSC stress tests.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::shouldJettisonDueToWeakReference):
(JSC::timeToLive):
(JSC::CodeBlock::shouldJettisonDueToOldAge):

  • interpreter/CallFrame.h:

(JSC::ExecState::callee):
(JSC::ExecState::unsafeCallee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::addressOfCodeBlock):
(JSC::ExecState::unsafeCodeBlock):
(JSC::ExecState::scope):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::installCode):
(JSC::setupJIT):
(JSC::ScriptExecutable::prepareForExecutionImpl):

  • runtime/Executable.h:

(JSC::ScriptExecutable::prepareForExecution):

  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
8:29 PM WikiStart edited by aakash_jain@apple.com
(diff)
7:59 PM Changeset in webkit [204161] by Chris Dumez
  • 7 edits in trunk

Add support for DOMTokenList.replace()
https://bugs.webkit.org/show_bug.cgi?id=160573

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Element-classlist-expected.txt:

Source/WebCore:

Add support for DOMTokenList.replace():
https://dom.spec.whatwg.org/#dom-domtokenlist-replace

No new tests, rebaselined existing tests.

  • html/DOMTokenList.cpp:

(WebCore::tokenContainsHTMLSpace):
(WebCore::DOMTokenList::validateToken):
(WebCore::DOMTokenList::replace):

  • html/DOMTokenList.h:
  • html/DOMTokenList.idl:
7:50 PM Changeset in webkit [204160] by Yusuke Suzuki
  • 4 edits
    1 add in trunk

[ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
https://bugs.webkit.org/show_bug.cgi?id=160549

Reviewed by Saam Barati.

JSTests:

  • modules/namespace-object-symbol-iterator-name.js: Added.
  • test262.yaml:

Source/JavaScriptCore:

ES6 Module's namespace[Symbol.iterator] function should have the name, "[Symbol.iterator]".

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):

7:35 PM Changeset in webkit [204159] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Some videos in iBooks erroneously go fullscreen
https://bugs.webkit.org/show_bug.cgi?id=160582
<rdar://problem/27669831>

Reviewed by Jon Lee.

No new tests because we can't currently mock the iBooks application bundle ID.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

7:09 PM Changeset in webkit [204158] by dbates@webkit.org
  • 1 edit
    4 adds in trunk/Websites/webkit.org

Add some files for a Content Security Policy blog post

  • blog-files/content-security-policy/compass-base.css: Added.

(.compass):

  • blog-files/content-security-policy/csp-style-hash.html: Added.
  • blog-files/content-security-policy/icons.svg: Added; derived from file

Websites/webkit.org/wp-content/themes/webkit/images/icons.svg. I am explicitly
not referencing file Websites/webkit.org/wp-content/themes/webkit/images/icons.svg
so that csp-style-hash.html is not affected by changes to this file.

6:51 PM Changeset in webkit [204157] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

5:46 PM Changeset in webkit [204156] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

UI improvements to Flakiness Dashboard.
https://bugs.webkit.org/show_bug.cgi?id=153295

Patch by Dean Johnson <dean_johnson@apple.com> on 2016-08-04
Reviewed by Alexey Proskuryakov.

  • TestResultServer/static-dashboards/flakiness_dashboard.css:

(td.options-container): Center text in most fields.

  • TestResultServer/static-dashboards/flakiness_dashboard.js:

(createBugHTML): Text/Grammar updates.
(tableHeaders): Ditto.
(htmlForSingleTestRow): Ditto.
(headerForTestTableHtml): Ditto.

  • TestResultServer/static-dashboards/ui.js: Removed the "Group: " and "Test type: " headings.

(ui.html.testTypeSwitcher): Deleted. Removes the "Group:" heading.

5:23 PM Changeset in webkit [204155] by clopez@igalia.com
  • 3 edits in trunk/Tools

[GTK] install-dependencies script misses libxslt as build-dependency and some python libs for the run-benchmark script
https://bugs.webkit.org/show_bug.cgi?id=160518

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_twisted): Twisted requires zope.interface.

  • gtk/install-dependencies:
5:20 PM Changeset in webkit [204154] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[Fontconfig] Segmentation fault in WebCore::FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=141432

Reviewed by Myles C. Maxfield.

Crash more cleanly when we can't find any last resort fallback font.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::lastResortFallbackFont):

4:49 PM Changeset in webkit [204153] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.48

New tag.

4:46 PM Changeset in webkit [204152] by Matt Baker
  • 4 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: UI polish for Edit Breakpoint dialog
https://bugs.webkit.org/show_bug.cgi?id=160566
<rdar://problem/27706378>

Reviewed by Timothy Hatcher.

  • UserInterface/Images/BreakpointActionAdd.svg: Removed.
  • UserInterface/Images/BreakpointActionRemove.svg: Removed.

Use Plus13.svg and Minus.svg instead.

  • UserInterface/Views/BreakpointActionView.css:

(.breakpoint-action-button-container):
(.breakpoint-action-append-button,):
(.breakpoint-action-append-button):
(.breakpoint-action-remove-button):
Button styles should match Xcode.
(.breakpoint-action-append-button:active,): Deleted.
Brightness on activation no longer needed.

  • UserInterface/Views/BreakpointActionView.js:

(WebInspector.BreakpointActionView):
Add a button container so buttons can float together.

  • UserInterface/Views/BreakpointPopoverController.css:

(.wide .edit-breakpoint-popover-condition > .CodeMirror):
Increase condition field width by the same amount as the popover.

4:24 PM Changeset in webkit [204151] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Syncing script's configuration duplicates a lot of boilerplate
https://bugs.webkit.org/show_bug.cgi?id=160574

Rubber-stamped by Chris Dumez.

This patch makes each configuration accept an array of platforms and types so that we can write:

{"type": "speedometer", "builder": "mba", "platform": "Trunk El Capitan MacBookAir"},
{"type": "speedometer", "builder": "mbp", "platform": "Trunk El Capitan MacBookPro"},
{"type": "speedometer", "builder": "mba", "platform": "Trunk Sierra MacBookAir"},
{"type": "speedometer", "builder": "mbp", "platform": "Trunk Sierra MacBookPro"},
{"type": "jetstream", "builder": "mba", "platform": "Trunk El Capitan MacBookAir"},
{"type": "jetstream", "builder": "mbp", "platform": "Trunk El Capitan MacBookPro"},
{"type": "jetstream", "builder": "mba", "platform": "Trunk Sierra MacBookAir"},
{"type": "jetstream", "builder": "mbp", "platform": "Trunk Sierra MacBookPro"},

more concisely as:

{"builder": "mba", "types": ["speedometer", "jetstream"],

"platforms": ["Trunk El Capitan MacBookAir", "Trunk Sierra MacBookAir"]},

{"builder": "mbp", "types": ["speedometer", "jetstream"],

"platforms": ["Trunk El Capitan MacBookPro", "Trunk Sierra MacBookPro"]},

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer._loadConfig):
(BuildbotSyncer._expandTypesAndPlatforms): Added. Clones a new configuration entry for each type
and platform.
(BuildbotSyncer._createTestConfiguration): Extracted from _loadConfig.
(BuildbotSyncer._validateAndMergeConfig): Added a new argument that specifies a property that
shouldn't be merged into the configuration. Also added the support for 'types' and 'platforms',
and merged the code for verify an array of strings. Finally, allow the appearance of 'properties'
since this function can now be called on a cloned configuration in which 'arguments' had already
been renamed to 'properties'.

  • unit-tests/buildbot-syncer-tests.js: Added a test case to parse a consolidated configuration.

(sampleiOSConfigWithExpansions): Added.

  • unit-tests/resources/mock-v3-models.js:

(MockModels.inject): Added a few more mock models for the newly added test.

3:43 PM Changeset in webkit [204150] by Chris Dumez
  • 14 edits in trunk

Move insertAdjacent*() API from HTMLElement to Element
https://bugs.webkit.org/show_bug.cgi?id=160567

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/domparsing/insert_adjacent_html-expected.txt:

Source/WebCore:

Move insertAdjacent*() API from HTMLElement to Element:

Firefox and Chrome both have insertAdjacentHTML() on Element.
Chrome has insertAdjacentText() / insertAdjacentElement() on Element as
well. Firefox does not have this API at all.

Also align insertAdjacentHTML() with the specification so that we
now throw a NO_MODIFICATION_ALLOWED_ERR if called with "beforebegin" /
"afterend" on a parent-less element. This is as per:

Previously, WebKit would just silently ignore such calls. The new
behavior with consistent with both Firefox and Chrome.

No new tests, rebaselined existing tests.

  • dom/Element.cpp:

(WebCore::Element::insertAdjacent):
(WebCore::Element::insertAdjacentElement):
(WebCore::contextElementForInsertion):
(WebCore::Element::insertAdjacentHTML):
(WebCore::Element::insertAdjacentText):

  • dom/Element.h:
  • dom/Element.idl:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertAdjacent): Deleted.
(WebCore::HTMLElement::insertAdjacentElement): Deleted.
(WebCore::contextElementForInsertion): Deleted.
(WebCore::HTMLElement::insertAdjacentHTML): Deleted.
(WebCore::HTMLElement::insertAdjacentText): Deleted.

  • html/HTMLElement.h:
  • html/HTMLElement.idl:

LayoutTests:

Rebaseline several tests to reflect behavior change.

  • fast/dom/HTMLElement/insertAdjacentHTML-errors-expected.txt:
  • fast/dom/HTMLElement/script-tests/insertAdjacentHTML-errors.js:
  • fast/dynamic/insertAdjacentElement-expected.txt:
3:38 PM Changeset in webkit [204149] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another build fix attempt.

  • bindings/gobject/WebKitDOMDeprecated.cpp:
3:37 PM Changeset in webkit [204148] by benjamin@webkit.org
  • 1 edit
    8 adds in trunk/LayoutTests

Add some extra test coverage for active touch event handler on subdocuments
https://bugs.webkit.org/show_bug.cgi?id=160276

Reviewed by Alex Christensen.

I wrote some tests while chasing a bug.
Documents are handled differently than other EventTarget. We had no test coverage
for that.

  • fast/events/touch/ios/touch-event-listeners-on-detached-document-expected.txt: Added.
  • fast/events/touch/ios/touch-event-listeners-on-detached-document.html: Added.
  • fast/events/touch/ios/touch-event-listeners-on-subdocument-then-detach-from-frame-expected.txt: Added.
  • fast/events/touch/ios/touch-event-listeners-on-subdocument-then-detach-from-frame.html: Added.
  • fast/events/touch/ios/touch-event-listeners-on-subdocuments-expected.txt: Added.
  • fast/events/touch/ios/touch-event-listeners-on-subdocuments.html: Added.
  • fast/events/touch/ios/touch-event-listeners-on-template-document-expected.txt: Added.
  • fast/events/touch/ios/touch-event-listeners-on-template-document.html: Added.
3:34 PM Changeset in webkit [204147] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/WebCore

Add long, boolean, double, and String Media Constraint classes
https://bugs.webkit.org/show_bug.cgi?id=160524
<rdar://problem/27685132>

Patch by George Ruan <gruan@apple.com> on 2016-08-04
Reviewed by Eric Carlson.

No new tests. The current patch is untestable, but functionality
will be tested in a future patch.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/MediaConstraints.cpp: Added.

(WebCore::BaseConstraint::create): Initializes min, max, exact, ideal
value of constraint with dictionary.
(WebCore::BaseConstraint::createEmptyDerivedConstraint): Factory
for all derived constraints.
(WebCore::LongConstraint::create): Creates LongConstraint with name.
(WebCore::LongConstraint::setMin): Sets mandatory min constraint value.
(WebCore::LongConstraint::setMax): Sets mandatory max constraint value.
(WebCore::LongConstraint::setExact): Sets mandatory exact constraint
value.
(WebCore::LongConstraint::setIdeal): Sets optional ideal constraint
value.
(WebCore::LongConstraint::initializeWithDictionary): Parses user input
and sets min, max, exact, ideal values.
(WebCore::DoubleConstraint::create): Ditto.
(WebCore::DoubleConstraint::setMin): Ditto.
(WebCore::DoubleConstraint::setMax): Ditto.
(WebCore::DoubleConstraint::setExact): Ditto.
(WebCore::DoubleConstraint::setIdeal): Ditto.
(WebCore::DoubleConstraint::initializeWithDictionary): Ditto.
(WebCore::BooleanConstraint::create): Ditto.
(WebCore::BooleanConstraint::setExact): Ditto.
(WebCore::BooleanConstraint::setIdeal): Ditto.
(WebCore::BooleanConstraint::initializeWithDictionary): Ditto.
(WebCore::StringConstraint::create): Ditto.
(WebCore::StringConstraint::setExact): Ditto.
(WebCore::StringConstraint::setIdeal): Ditto.
(WebCore::StringConstraint::initializeWithDictionary): Ditto.

  • platform/mediastream/MediaConstraints.h: Add abstract classes

BaseConstraint and NumericConstraint, and final classes
DoubleConstraint, LongConstraint, BooleanConstraint, and
StringConstraint.
(WebCore::BaseConstraint::~BaseConstraint):
(WebCore::BaseConstraint::name): Name of constraint associated with.
(WebCore::BaseConstraint::BaseConstraint):
(WebCore::NumericConstraint::setHasMin): Sets min constraint value.
(WebCore::NumericConstraint::setHasMax): Sets max constraint value.
(WebCore::NumericConstraint::setHasExact): Sets exact constraint
value.
(WebCore::NumericConstraint::setHasIdeal): Sets ideal constraint
value.
(WebCore::NumericConstraint::hasMin): Determines whether constraint
has a minimum value.
(WebCore::NumericConstraint::hasMax): Determines whether constraint
has a maximum value.
(WebCore::NumericConstraint::hasExact): Determines whether constraint
has an exact value.
(WebCore::NumericConstraint::NumericConstraint):

3:11 PM Changeset in webkit [204146] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r204135. rdar://problem/19814215

3:05 PM Changeset in webkit [204145] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the GTK+ build.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_get_elements_by_tag_name):
(webkit_dom_document_get_elements_by_tag_name_ns):
(webkit_dom_document_get_elements_by_class_name):
(webkit_dom_element_get_elements_by_tag_name):
(webkit_dom_element_get_elements_by_tag_name_ns):
(webkit_dom_element_get_elements_by_class_name):

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

Rebaseline http/tests/security/cross-frame-access-put.html after r204126.

Unreviewed test gardening.

  • http/tests/security/cross-frame-access-put-expected.txt:
3:02 PM Changeset in webkit [204143] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Add support for wrapper types in dictionaries
https://bugs.webkit.org/show_bug.cgi?id=160487

Reviewed by Sam Weinig.

Add support for nullable wrapper types in dictionaries.
A TypeError is thrown if the conversion fails.

No new tests, updated bindings tests.

  • bindings/js/JSDOMConvert.h:

(WebCore::convertWrapperType):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):

  • bindings/scripts/IDLParser.pm:

(parseDictionaryMember):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convert<TestObj::Dictionary>):

  • bindings/scripts/test/TestObj.idl:
2:45 PM Changeset in webkit [204142] by Csaba Osztrogonác
  • 7 edits in trunk

[Mac][cmake] Fix the build after Objective-C bindings generator removal
https://bugs.webkit.org/show_bug.cgi?id=160545

.:

Reviewed by Alex Christensen.

  • Source/cmake/WebKitMacros.cmake:

Source/WebCore:

Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • PlatformMac.cmake:

Source/WebKit:

Reviewed by Alex Christensen.

  • PlatformMac.cmake:
2:34 PM Changeset in webkit [204141] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Attempt to fix Windows build after r204134.

Unreviewed build fix.

  • dom/DOMAllInOne.cpp:
2:11 PM Changeset in webkit [204140] by keith_miller@apple.com
  • 4 edits
    1 add in trunk
ASSERTION FAILED: !hasInstanceValueNode->isCellConstant()
defaultHasInstanceFunction == hasInstanceValueNode->asCell()

https://bugs.webkit.org/show_bug.cgi?id=160562
JSTests:

Reviewed by Mark Lam.

  • stress/instanceof-late-constant-folding.js: Added.

(Constructor):
(value):
(body):

Source/JavaScriptCore:

<rdar://problem/27704825>

Reviewed by Mark Lam.

This patch fixes an issue where we would emit incorrect code in the DFG when constant folding would
convert a GetByOffset into a constant late in compilation. Additionally, it removes invalid assertions
associated with the assumption that this could not happen.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileOverridesHasInstance): Deleted.

2:07 PM Changeset in webkit [204139] by ap@apple.com
  • 3 edits in trunk/Tools

Optimize bot watcher's dashboard a little
https://bugs.webkit.org/show_bug.cgi?id=160515
rdar://problem/26096900

Reviewed by Lucas Forschler.

Made re-sorting after loading an iteration more efficient.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(BuildbotIteration.prototype._updateWithData):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue.prototype.updateIterationPosition):

2:05 PM Changeset in webkit [204138] by bshafiei@apple.com
  • 5 edits
    1 delete in branches/safari-602-branch

Roll out r204107 via r204132. rdar://problem/27685273

1:59 PM Changeset in webkit [204137] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unused intrinsic member of NativeExecutable
https://bugs.webkit.org/show_bug.cgi?id=160560

Reviewed by Saam Barati.

NativeExecutable has an Intrinsic member. It appears that this member is never
used. Instead we use the Intrinsic member NativeExecutable's super class,
ExecutableBase.

  • runtime/Executable.h:
1:51 PM Changeset in webkit [204136] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Popover's arrow is misplaced
https://bugs.webkit.org/show_bug.cgi?id=151236
<rdar://problem/23527296>

Reviewed by Brian Burg.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover.prototype._setAnchorPoint):
Drive-by style fix.
(WebInspector.Popover.prototype._drawFrame):
Position the arrow so that the arrow head doesn't overlap the
rounded corners of its edge.

1:33 PM Changeset in webkit [204135] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Crash under NavigationState::NavigationClient::processDidCrash()
https://bugs.webkit.org/show_bug.cgi?id=160563
<rdar://problem/19814215>

Reviewed by Sam Weinig.

When WebPageProxy::close() gets called, make sure we destroy the page's
navigationClient. If we don't then the navigationClient can outlive the
navigationState, causing crashes when navigationClient tries to use its
stale navigationState member reference later on. This happens when the
WebPageProxy outlives its WKWebView because:

  1. WebPageProxy owns the navigationClient
  2. WKWebView owns the navigationState
  3. navigationClient has a reference to the navigationState as member.

WebPageProxy can outlive the WKWebView because it is refCounted. It
can happen for example when the client application uses the
RelatedPage API as this extend the lifetime of the related WebPage's
proxy but the application may not keep the related WKWebView alive.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):
Note that it is safe to null out m_navigationClient here instead of
creating a fresh one because there is a null check before every use
of m_navigationClient in WebPageProxy.

1:27 PM Changeset in webkit [204134] by andersca@apple.com
  • 15 edits
    6 deletes in trunk/Source/WebCore

Remove more Objective-C specific bindings code
https://bugs.webkit.org/show_bug.cgi?id=160564

Reviewed by Sam Weinig.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSNodeCustom.cpp:
  • bindings/objc/DOMDocument.mm:
  • bindings/objc/DOMEntity.mm:

(-[DOMEntity publicId]):
(-[DOMEntity systemId]):
(-[DOMEntity notationName]):

  • bindings/objc/DOMEntityReference.mm:

(kit): Deleted.

  • bindings/objc/DOMEntityReferenceInternal.h: Removed.
  • bindings/objc/DOMNodeIterator.mm:

(-[DOMNodeIterator expandEntityReferences]):

  • bindings/objc/DOMTreeWalker.mm:

(-[DOMTreeWalker expandEntityReferences]):

  • dom/Document.idl:
  • dom/Entity.h: Removed.

(WebCore::Entity::publicId): Deleted.
(WebCore::Entity::systemId): Deleted.
(WebCore::Entity::notationName): Deleted.
(WebCore::Entity::Entity): Deleted.

  • dom/Entity.idl: Removed.
  • dom/EntityReference.cpp: Removed.

(WebCore::EntityReference::EntityReference): Deleted.

  • dom/EntityReference.h: Removed.
  • dom/EntityReference.idl: Removed.
  • dom/NodeIterator.idl:
  • dom/Traversal.h:

(WebCore::NodeIteratorBase::expandEntityReferences): Deleted.

  • dom/TreeWalker.idl:
1:12 PM Changeset in webkit [204133] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Simplify overloads for HTMLSelectElement.add() / HTMLOptionsCollection.add()
https://bugs.webkit.org/show_bug.cgi?id=160527

Reviewed by Ryosuke Niwa.

Simplify overloads for HTMLSelectElement.add() / HTMLOptionsCollection.add().
We now have 2 overloads instead of 3 while achieving the same web-facing
behavior.

  • html/HTMLOptionsCollection.h:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.h:

(WebCore::HTMLSelectElement::add): Deleted.

  • html/HTMLSelectElement.idl:
1:02 PM Changeset in webkit [204132] by bshafiei@apple.com
  • 5 edits
    1 add in branches/safari-602-branch

Merge r204107. rdar://problem/27685273

12:33 PM Changeset in webkit [204131] by andersca@apple.com
  • 10 edits in trunk/Source/WebCore

Move Objective-C bindings specific code into the bindings
https://bugs.webkit.org/show_bug.cgi?id=160561

Reviewed by Tim Horton.

  • bindings/objc/DOMDocument.mm:

(-[DOMDocument createEntityReference:]):
(-[DOMDocument getElementsByTagName:]):
(-[DOMDocument getElementsByTagNameNS:localName:]):
(-[DOMDocument getElementsByClassName:]):

  • bindings/objc/DOMElement.mm:

(-[DOMElement getElementsByTagName:]):
(-[DOMElement getElementsByTagNameNS:localName:]):
(-[DOMElement getElementsByClassName:]):

  • css/CSSCharsetRule.idl:
  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagNameForObjC): Deleted.
(WebCore::ContainerNode::getElementsByTagNameNSForObjC): Deleted.
(WebCore::ContainerNode::getElementsByClassNameForObjC): Deleted.

  • dom/ContainerNode.h:
  • dom/Document.cpp:

(WebCore::Document::createEntityReference): Deleted.

  • dom/Document.h:
  • dom/Document.idl:
  • dom/Element.idl:
12:33 PM Changeset in webkit [204130] by commit-queue@webkit.org
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Speed up InPlaceAbstractState::endBasicBlock()
https://bugs.webkit.org/show_bug.cgi?id=160539

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-04
Reviewed by Mark Lam.

This patch does small improvements to our handling
of value propagation to the successors.

One key insight is that using HashMap to map Nodes
to Value in valuesAtTail is too inefficient at the scale
we use it. Instead, I reuse our existing mapping
from every Node to its value, abstracted by forNode().

Since we are not going to use the mapping after endBasicBlock()
I can replace whatever we had there. The next beginBasicBlock()
will setup the new value as needed.

In endBasicBlock(), valuesAtTail is now a vector of all values live
at tail. For each node, I merge the previous live at tail with
the new value, then replace the value in the mapping.
Liveness Analysis guarantees we won't have duplicates there which
make the replacement sound.

Next, when propagating, I take the vector of values lives at head
and use the global node->value mapping to find its new abstract value.
Again, Liveness Analysis guarantees I won't find a value live at head
that was not replaced by the merging at tail of the predecessor.

All our live lists have become vectors instead of HashTable.
The mapping from Node to Value is always done by array indexing.
Same big-O, much smaller constant.

  • dfg/DFGAtTailAbstractState.cpp:

(JSC::DFG::AtTailAbstractState::AtTailAbstractState):
(JSC::DFG::AtTailAbstractState::createValueForNode):
(JSC::DFG::AtTailAbstractState::forNode):

  • dfg/DFGAtTailAbstractState.h:

I did not look much into this state, I just made it equivalent
to the previous mapping.

  • dfg/DFGBasicBlock.h:
  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::endBasicBlock):

(JSC::DFG::InPlaceAbstractState::mergeStateAtTail):
AbstractValue is big enough that we really don't want to copy it twice.

(JSC::DFG::InPlaceAbstractState::merge):
(JSC::DFG::setLiveValues): Deleted.

  • dfg/DFGInPlaceAbstractState.h:
  • dfg/DFGPhiChildren.h:

This is heap allocated by AbstractInterpreter. It should use fastMalloc().

12:13 PM Changeset in webkit [204129] by andersca@apple.com
  • 17 edits in trunk/Source/WebCore

Clean up the deprecated Objective-C binding methods
https://bugs.webkit.org/show_bug.cgi?id=160558

Reviewed by Tim Horton.

Put the deprecated methods in their respective category @implementation, and
simply have them call their non-deprecated counterparts.

  • bindings/objc/DOMCSSMediaRule.mm:

(-[DOMCSSMediaRule deleteRule:]):
(-[DOMCSSMediaRule insertRule::]):

  • bindings/objc/DOMCSSPrimitiveValue.mm:

(-[DOMCSSPrimitiveValue setFloatValue::]):
(-[DOMCSSPrimitiveValue setStringValue::]):

  • bindings/objc/DOMCSSStyleDeclaration.mm:

(-[DOMCSSStyleDeclaration setProperty:::]):

  • bindings/objc/DOMCSSStyleSheet.mm:

(-[DOMCSSStyleSheet insertRule::]):

  • bindings/objc/DOMCharacterData.mm:

(-[DOMCharacterData deleteData:length:]):
(-[DOMCharacterData replaceData:length:data:]):
(-[DOMCharacterData remove]):
(-[DOMCharacterData substringData::]):
(-[DOMCharacterData insertData::]):
(-[DOMCharacterData deleteData::]):
(-[DOMCharacterData replaceData:::]):

  • bindings/objc/DOMDocument.mm:

(-[DOMDocument createProcessingInstruction::]):
(-[DOMDocument importNode::]):
(-[DOMDocument createElementNS::]):
(-[DOMDocument createAttributeNS::]):
(-[DOMDocument getElementsByTagNameNS::]):
(-[DOMDocument createNodeIterator::::]):
(-[DOMDocument createTreeWalker::::]):
(-[DOMDocument getOverrideStyle::]):
(-[DOMDocument createExpression::]):
(-[DOMDocument evaluate:::::]):
(-[DOMDocument getComputedStyle::]):

  • bindings/objc/DOMElement.mm:

(-[DOMElement setAttribute::]):
(-[DOMElement getAttributeNS::]):
(-[DOMElement setAttributeNS:::]):
(-[DOMElement removeAttributeNS::]):
(-[DOMElement getElementsByTagNameNS::]):
(-[DOMElement getAttributeNodeNS::]):
(-[DOMElement hasAttributeNS::]):

  • bindings/objc/DOMEvent.mm:

(-[DOMEvent stopImmediatePropagation]):
(-[DOMEvent initEvent:::]):

  • bindings/objc/DOMHTMLSelectElement.mm:

(-[DOMHTMLSelectElement remove:]):
(-[DOMHTMLSelectElement add::]):

  • bindings/objc/DOMMouseEvent.mm:

(-[DOMMouseEvent initMouseEvent:::::::::::::::]):

  • bindings/objc/DOMMutationEvent.mm:

(-[DOMMutationEvent initMutationEvent::::::::]):

  • bindings/objc/DOMNamedNodeMap.mm:

(-[DOMNamedNodeMap getNamedItemNS::]):
(-[DOMNamedNodeMap removeNamedItemNS::]):

  • bindings/objc/DOMNode.mm:

(-[DOMNode insertBefore::]):
(-[DOMNode replaceChild::]):
(-[DOMNode isSupported::]):

  • bindings/objc/DOMRange.mm:

(-[DOMRange setStart::]):
(-[DOMRange setEnd::]):
(-[DOMRange compareBoundaryPoints::]):

  • bindings/objc/DOMUIEvent.mm:

(-[DOMUIEvent initUIEvent:::::]):

  • bindings/objc/DOMXPathExpression.mm:

(-[DOMXPathExpression evaluate:::]):

11:48 AM Changeset in webkit [204128] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Temporary redirected m3u8 streaming stopped working.
https://bugs.webkit.org/show_bug.cgi?id=160472
rdar://problem/27592694

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-08-04
Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/media/hls/hls-redirect.html

The change for https://trac.webkit.org/changeset/202466 hides knowledge of the temporary redirected URL from
WebCoreNSURLSession clients. MPEG playlists (e.g. .m3u8) can contain paths relative to the redirected URL.

This change exposes the redirected URL for MPEG playlists.

  • platform/MIMETypeRegistry.cpp:

(WebCore::initializeMPEGPlaylistMIMETypes): Added.
(WebCore::initializeMIMETypeRegistry):
(WebCore::MIMETypeRegistry::isMPEGPlaylistMIMEType): Added.

  • platform/MIMETypeRegistry.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]): Add MPEG playlist condition.
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]): Add MPEG playlist condition.

LayoutTests:

This tests that m3u8 files can be loaded when going through a temporary redirect.

  • http/tests/media/hls/hls-redirect-expected.txt: Added.
  • http/tests/media/hls/hls-redirect.html: Added.
11:07 AM Changeset in webkit [204127] by commit-queue@webkit.org
  • 25 edits
    32 adds in trunk

Content Blocker cannot block WebSocket connections
https://bugs.webkit.org/show_bug.cgi?id=160159

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-04
Reviewed by Brady Eidson.

Source/WebCore:

Tests: http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php

http/tests/websocket/tests/hybi/contentextensions/block-cookies.php
http/tests/websocket/tests/hybi/contentextensions/block-worker.html
http/tests/websocket/tests/hybi/contentextensions/block.html
http/tests/websocket/tests/hybi/contentextensions/display-none-worker.html
http/tests/websocket/tests/hybi/contentextensions/display-none.html
http/tests/websocket/tests/hybi/contentextensions/upgrade-worker.html
http/tests/websocket/tests/hybi/contentextensions/upgrade.html

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpgradeURL):
(WebCore::ThreadableWebSocketChannelClientWrapper::suspend):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didClose):
(WebCore::WebSocket::didUpgradeURL):
(WebCore::WebSocket::getFramingOverhead):

  • Modules/websockets/WebSocket.h:

Added didUpgradeURL to WebSocketChannelClient so the WebSocketChannel can tell the WebSocket
that it has upgraded a ws: url to a wss: url.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::~WebSocketChannel):
(WebCore::WebSocketChannel::connect):

If content extensions are being used, run the URL through the content extension and apply its actions
before connecting the WebSocket. This is done in WebSocketChannel instead of WebSocket like the CSP checks
because we need access to the Document in order to get access to the main document's URL for if-domain and
unless-domain rules, and to apply any display:none css to the Document.

(WebCore::WebSocketChannel::disconnect):

  • Modules/websockets/WebSocketChannelClient.h:

(WebCore::WebSocketChannelClient::~WebSocketChannelClient):
(WebCore::WebSocketChannelClient::WebSocketChannelClient):
(WebCore::WebSocketChannelClient::didConnect):
(WebCore::WebSocketChannelClient::didReceiveMessage):
(WebCore::WebSocketChannelClient::didReceiveBinaryData):
(WebCore::WebSocketChannelClient::didReceiveMessageError):
(WebCore::WebSocketChannelClient::didUpdateBufferedAmount):
(WebCore::WebSocketChannelClient::didStartClosingHandshake):
(WebCore::WebSocketChannelClient::didClose):

Made WebSocketChannelClient purely virtual to avoid accidentally making an implementation that is missing functionality.

(WebCore::WebSocketChannelClient::didUpgradeURL): Added.

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
(WebCore::WebSocketHandshake::WebSocketHandshake):
(WebCore::WebSocketHandshake::clientOrigin):
(WebCore::WebSocketHandshake::clientLocation):
(WebCore::WebSocketHandshake::clientHandshakeMessage):

Only put cookies on the WebSocket's handshake if we are allowed to use cookies.

(WebCore::WebSocketHandshake::clientHandshakeRequest):

A WebSocketHandshake always has a Document* for its ScriptExecutionContext, so I replaced m_context with
m_document and removed a suspicious-looking check for is<Document> that turned out to not be suspicious at all.

(WebCore::WebSocketHandshake::reset):
(WebCore::WebSocketHandshake::clearDocument):
(WebCore::WebSocketHandshake::readServerHandshake):
(WebCore::WebSocketHandshake::clearScriptExecutionContext): Deleted.

  • Modules/websockets/WebSocketHandshake.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • contentextensions/ContentExtensionActions.h:

Before this change we would pass a ResourceRequest as a parameter to the content extension engine.
The ResourceRequest would be used to get the URL, and it would be modified by possibly disabling cookies
or making the URL https. Any display:none CSS rules added were put into the Document through the DocumentLoader.
The only information it needed to return was whether the load was blocked.
To make content extensions work with WebSockets, we need to pass a URL as a parameter instead of a ResourceRequest
because there is no ResourceRequest with WebSockets, only a URL. We can still put CSS rules in through the DocumentLoader,
but the rest of the actions need to be returned through the return value, which is then processed by the callers.
BlockedStatus is now a struct containing a set of actions to apply, and applyBlockedStatusToRequest is a helper function
that applies the actions to the ResourceRequests we have at all previously existing call sites of processContentExtensionRulesForLoad.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::globalDisplayNoneStyleSheet):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::displayNoneCSSRule):
(WebCore::ContentExtensions::applyBlockedStatusToRequest):

  • contentextensions/ContentExtensionsBackend.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

Here, we also only had a URL. Before, we were making a ResourceRequest from the URL just for the content extension engine,
but now we can just pass the URL.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/PingLoader.cpp:

(WebCore::processContentExtensionRulesForLoad):
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/UserContentProvider.cpp:

(WebCore::contentExtensionsEnabled):
(WebCore::UserContentProvider::processContentExtensionRulesForLoad):
(WebCore::UserContentProvider::actionsForResourceLoad):

  • page/UserContentProvider.h:

LayoutTests:

  • http/tests/contentextensions/make-https-expected.txt:

Rebased to reflect slight change in console logged messages which contain the same information.

  • http/tests/websocket/tests/hybi/contentextensions: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies.php: Copied from LayoutTests/http/tests/websocket/tests/hybi/httponly-cookie.pl.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies.php.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-worker-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-worker.html: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-worker.html.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block.html: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block.html.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/display-none-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/display-none-worker-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/display-none-worker.html: Added.
  • http/tests/websocket/tests/hybi/contentextensions/display-none-worker.html.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/display-none.html: Added.
  • http/tests/websocket/tests/hybi/contentextensions/display-none.html.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/block-cookies-worker.js: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/block-worker.js: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/display-none-worker.js: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/echo-cookie_wsh.py: Copied from LayoutTests/http/tests/websocket/tests/hybi/echo-cookie_wsh.py.
  • http/tests/websocket/tests/hybi/contentextensions/resources/echo_wsh.py: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/upgrade-worker.js: Added.
  • http/tests/websocket/tests/hybi/contentextensions/upgrade-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/upgrade-worker-expected.txt: Added.
  • http/tests/websocket/tests/hybi/contentextensions/upgrade-worker.html: Added.
  • http/tests/websocket/tests/hybi/contentextensions/upgrade-worker.html.json: Added.
  • http/tests/websocket/tests/hybi/contentextensions/upgrade.html: Added.
  • http/tests/websocket/tests/hybi/contentextensions/upgrade.html.json: Added.
11:03 AM Changeset in webkit [204126] by Chris Dumez
  • 7 edits in trunk

Prototype property of an interface object for a callback interface must be the Object.prototype object
https://bugs.webkit.org/show_bug.cgi?id=160555

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline W3C trst now that one more check is passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Prototype property of an interface object for a callback interface
must be the Object.prototype object:

This impacts NodeFilter, which is a callback interface.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

LayoutTests:

Rebaseline existing test.

  • platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
10:48 AM Changeset in webkit [204125] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add placeholder graphs to TimelineOverview while editing
https://bugs.webkit.org/show_bug.cgi?id=160485
<rdar://problem/27670755>

Reviewed by Brian Burg.

Insert placeholder elements in TimelineOverview's graph container
when editing instruments. This allows alternating overview graph styles
to be shown for disabled instruments, and ensures that every tree element
has a corresponding element in the overview during dragging/reordering
of instruments (see https://webkit.org/b/157957).

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype._startEditingInstruments):
(WebInspector.TimelineOverview.prototype._stopEditingInstruments):

10:47 AM Changeset in webkit [204124] by Matt Baker
  • 4 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: UI polish for Open Quickly and Goto Line dialogs
https://bugs.webkit.org/show_bug.cgi?id=159849
<rdar://problem/27383068>

Reviewed by Brian Burg.

  • UserInterface/Images/Search.svg: Added.

Magnifying glass icon.

  • UserInterface/Views/GoToLineDialog.css:

(.go-to-line-dialog):
(.go-to-line-dialog > div):
(.go-to-line-dialog > div::before):

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog > .field):
(.open-resource-dialog > .field::before):
(.open-resource-dialog.has-results > .tree-outline):
(.open-resource-dialog > .tree-outline .item):
Add search icon to left of the input field in both dialogs,
and adjust styles to better match Xcode 8.

  • UserInterface/Views/OpenResourceDialog.js:

(WebInspector.OpenResourceDialog):
Remove "input" event listener, as styles are now toggled in _updateFilter.
(WebInspector.OpenResourceDialog.prototype._updateFilter):
Toggle "has-results" and "non-empty" class names.
(WebInspector.OpenResourceDialog.prototype._handleInputEvent): Deleted.
(WebInspector.OpenResourceDialog.prototype._clear): Deleted.
Moved class toggle to _updateFilter.

10:02 AM Changeset in webkit [204123] by pvollan@apple.com
  • 3 edits in trunk/Tools

[Win] Unable to reliably run tests in parallel
https://bugs.webkit.org/show_bug.cgi?id=140914

Reviewed by Brent Fulgham.

The cygpath utility function can fail badly when running with multiple DumpRenderTree
processes. We can use string replacement to convert the Cygwin path to a Windows path
instead.

  • Scripts/webkitpy/common/system/path.py:

(cygpathFast):

  • Scripts/webkitpy/port/driver.py:

(Driver._command_from_driver_input):

9:28 AM Changeset in webkit [204122] by Chris Dumez
  • 9 edits in trunk

Element.insertAdjacent*() should throw a SYNTAX_ERR for invalid "where" parameter
https://bugs.webkit.org/show_bug.cgi?id=160514

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/nodes/Element-insertAdjacentElement-expected.txt:
  • web-platform-tests/dom/nodes/Element-insertAdjacentText-expected.txt:
  • web-platform-tests/dom/nodes/insert-adjacent-expected.txt:

Source/WebCore:

Element.insertAdjacent*() should throw a SYNTAX_ERR for invalid "where" parameter:

We were throwing a NOT_SUPPORTED_ERR instead.

No new tests, rebaselined existing tests.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertAdjacent):

LayoutTests:

Rebaseline existing test now that a different exception is thrown.

  • fast/dynamic/insertAdjacentElement-expected.txt:
  • fast/dynamic/insertAdjacentText-expected.txt:
9:10 AM Changeset in webkit [204121] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r204100. rdar://problem/27310475

8:59 AM Changeset in webkit [204120] by caitp@igalia.com
  • 2 edits in trunk/JSTests

[JSC] fix generator-syntax.js JSTest again after yield grammar fix
https://bugs.webkit.org/show_bug.cgi?id=160550

Reviewed by Yusuke Suzuki.

  • stress/generator-syntax.js:

(testYieldBindingIdentifier):

7:46 AM Changeset in webkit [204119] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[ES7] Update features.json for exponentiation expression
https://bugs.webkit.org/show_bug.cgi?id=160541

Reviewed by Mark Lam.

  • features.json:
2:26 AM Changeset in webkit [204118] by alex
  • 3 edits in trunk/Source/WebCore

WebRTC: OWR: Add support for the muted state in the mediaplayer
https://bugs.webkit.org/show_bug.cgi?id=160502

Modified the load, play and stop methods to handle the new
situation where the mediaSource could be empty, until the remote
side sends the information to create the receiver.

Reviewed by Philippe Normand.

No new tests, we need to upstream the owr endpoint to check this
situation.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:

(WebCore::MediaPlayerPrivateGStreamerOwr::play): Check the muted
state of the tracks if required, we do it using the new
maybeHandleChangeMutedState function.
(WebCore::MediaPlayerPrivateGStreamerOwr::load): Add always the
observer of the track to check when it is unmuted, and we delay
enabling/setting the source until the play or the unmute.
(WebCore::MediaPlayerPrivateGStreamerOwr::internalLoad): Removed,
we now do all in the load method.
(WebCore::MediaPlayerPrivateGStreamerOwr::stop): Remove the
mediasource when disabling. Removed the m_stopped state, it was
there because the internalLoad was called multiple times.
(WebCore::MediaPlayerPrivateGStreamerOwr::trackMutedChanged):
Check the muted state and handle it, we use the new method
maybeHandleChangeMutedState.
(WebCore::MediaPlayerPrivateGStreamerOwr::maybeHandleChangeMutedState):
Check if the track is muted or not, in case it is muted disable
the the renderer and remove its mediasource. If it is not muted
enable the renderer and set the mediasource.
(WebCore::MediaPlayerPrivateGStreamerOwr::createVideoSink): Move
the workaround for the renderer to this method when it is created.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:

Removed internalLoad method and the m_stopped attribute used to
call internalLoad multiple times.

12:56 AM Changeset in webkit [204117] by commit-queue@webkit.org
  • 25 edits
    5 adds in trunk

DocumentThreadableLoader should pass the fetch mode to underlying loader code
https://bugs.webkit.org/show_bug.cgi?id=160399

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

LayoutTests/imported/w3c:

Updated expectations.
Added new tests to check specifically for Origin header in case of redirections.
Updated server-side redirect.py python script to generate valid Location URLs.

  • web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-origin-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-origin-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-origin-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-origin.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-origin.js: Added.

(testOriginAfterRedirection):

  • web-platform-tests/fetch/api/redirect/redirect-schemes-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-schemes.html: Updated test so that fetches are done in a deterministic order, one after the other is finished.
  • web-platform-tests/fetch/api/resources/redirect.py:

(main):

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-origin-worker.html

imported/w3c/web-platform-tests/fetch/api/redirect/redirect-origin.html

Covered by existing and rebased tests.

DocumentThredableLoader was previously loading resources in NoCors mode and doing the cors checks on it own.
This was duplicating code and increasing the risk of being not consistent.
DocumentThreadableLoader is now passing the fetch mode given by client to underlying loader code.
This allows removing some CORS checks in DocumentThreadableLoader code for redirections.

Updated SubresourceLoader redirection CORS checks to be on par with DocumentThreadableLoader.
In particular, aligning the code with https://fetch.spec.whatwg.org/#http-redirect-fetch.

The error logging situation is not perfect as some errors are properly logged in the console while some others are not.
For instance blockedError (due to forbidden port for instance) reason is not logged on the console.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Updating redirection checking as SubresourceLoader is already doing most of the checks.
(WebCore::DocumentThreadableLoader::didReceiveResponse): Removing temp hack as tainting is now computed by underlying loader code.
(WebCore::DocumentThreadableLoader::loadRequest): Removing fetch mode change.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Updating cancellation error and improve error logging.
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl): Improved the checks and error reporting.
Tried to align as much as possible to https://fetch.spec.whatwg.org/#http-redirect-fetch.

  • loader/SubresourceLoader.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didFail): Added an error message to the console in case of access control error.

LayoutTests:

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt:
  • http/tests/workers/worker-redirect-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async.html: Fixed bugs in the test and updated comments.
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt:

Aug 3, 2016:

11:53 PM Changeset in webkit [204116] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTest imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm failing
https://bugs.webkit.org/show_bug.cgi?id=159724

Unreviewed..

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-04

  • TestExpectations: Removing Crash expectation since it is only occuring on Debug Mac bots.
  • platform/mac/TestExpectations: Skipping test in Debug for Mac bots.
10:26 PM Changeset in webkit [204115] by Chris Dumez
  • 6 edits in trunk

Object.getOwnPropertyNames() on NamedNodeMap fails to return named properties
https://bugs.webkit.org/show_bug.cgi?id=160517

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/collections/namednodemap-supported-property-names-expected.txt:
  • web-platform-tests/dom/nodes/attributes-expected.txt:

Source/WebCore:

Object.getOwnPropertyNames() on NamedNodeMap should return named
properties' names as per:

No new tests, rebaselined existing tests.

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::supportedPropertyNames):

  • dom/NamedNodeMap.h:
10:11 PM Changeset in webkit [204114] by Chris Dumez
  • 15 edits in trunk

Drop DocumentType.internalSubset attribute
https://bugs.webkit.org/show_bug.cgi?id=160530

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/JavaScriptCore:

Drop DocumentType.internalSubset attribute.

  • inspector/protocol/DOM.json:

Source/WebCore:

Drop DocumentType.internalSubset attribute.

It is no longer in the DOM specification:

Other browsers have already dropped it. In WebKit, it was always null
anyway.

No new tests, rebaselined existing test.

  • bindings/objc/DOMDocumentType.mm:

(-[DOMDocumentType internalSubset]):

  • dom/DocumentType.h:
  • dom/DocumentType.idl:
  • dom/Node.cpp:

(WebCore::Node::isEqualNode): Deleted.

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendDocumentType): Deleted.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForNode): Deleted.

Source/WebInspectorUI:

Drop DocumentType.internalSubset attribute.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode): Deleted.

  • UserInterface/Models/DOMSearchMatchObject.js:

(WebInspector.DOMSearchMatchObject.titleForDOMNode): Deleted.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._nodeTitleInfo): Deleted.

10:09 PM Changeset in webkit [204113] by Chris Dumez
  • 10 edits
    2 deletes in trunk

Drop legacy Document.defaultCharset attribute
https://bugs.webkit.org/show_bug.cgi?id=160536

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop legacy Document.defaultCharset attribute.

It is no longer in the specification:

Firefox and Chrome have already dropped it.

No new tests, rebaselined existing test.

  • bindings/objc/DOMDocument.mm:

(-[DOMDocument defaultCharset]):

  • dom/Document.cpp:

(WebCore::Document::defaultCharsetForBindings):

  • dom/Document.h:
  • dom/Document.idl:

LayoutTests:

  • fast/dom/Document/document-charset-expected.txt:
  • fast/dom/Document/document-charset.html:

Drop defaultCharset checks.

  • fast/frames/detached-frame-document-defaultCharset-expected.txt: Removed.
  • fast/frames/detached-frame-document-defaultCharset.html: Removed.

Drop test that is no longer useful now that we dropped defaultCharset.

8:43 PM Changeset in webkit [204112] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Improve the memory locality of DFG Node's AbstractValues
https://bugs.webkit.org/show_bug.cgi?id=160443

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-03
Reviewed by Mark Lam.

The AbstractInterpreter spends a lot of time on memory operations
for AbstractValues. This patch attempts to improve the situation
by putting the values closer together in memory.

First, AbstractValue is moved out of DFG::Node and it kept in
a vector addressed by node indices.

I initially moved them to InPlaceAbstractState but I quickly discovered
initializing the values in the vector was costly.
I moved the vector to Graph as a cache shared by every instantiation of
InPlaceAbstractState. It is mainly there to avoid constructors and destructors
of AbstractValue. The patch of https://bugs.webkit.org/show_bug.cgi?id=160370
should also help eventually.

I instrumented CFA to find how packed is SparseCollection.
The answer is it can be very sparse, which is bad for CFA.
I added packIndices() to repack the collection before running
liveness since that's where we start using the memory intensively.
This is a measurable improvement but it implies we can no longer
keep indices on a side channel between phases since they may change.

  • b3/B3SparseCollection.h:

(JSC::B3::SparseCollection::packIndices):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::packNodeIndices):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::abstractValuesCache):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::InPlaceAbstractState):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::forNode):

  • dfg/DFGLivenessAnalysisPhase.cpp:

(JSC::DFG::performLivenessAnalysis):

  • dfg/DFGNode.h:
7:36 PM Changeset in webkit [204111] by caitp@igalia.com
  • 7 edits in trunk

Clarify SyntaxErrors around yield and unskip tests
https://bugs.webkit.org/show_bug.cgi?id=158460

Reviewed by Saam Barati.

Fix and unskip tests which erroneously asserted that yield is not a
valid BindingIdentifier, and improve error message for YieldExpressions
occuring in Arrow formal parameters.

JSTests:

  • stress/generator-syntax.js:
  • stress/yield-out-of-generator.js:

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Scope::MaybeParseAsGeneratorForScope::MaybeParseAsGeneratorForScope):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseYieldExpression):

  • parser/Parser.h:
6:38 PM Changeset in webkit [204110] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

6:27 PM Changeset in webkit [204109] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/track/track-in-band-cues-added-once.html as flaky on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=142152

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:00 PM Changeset in webkit [204108] by andersca@apple.com
  • 21 edits
    2 deletes in trunk/Source/WebCore

Remove some unneeded #ifs now that the Objective-C bindings are frozen
https://bugs.webkit.org/show_bug.cgi?id=160532

Reviewed by Tim Horton.

  • DerivedSources.make:
  • Modules/mediasession/HTMLMediaElementMediaSession.idl:
  • Modules/mediastream/HTMLMediaElementMediaStream.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentAnimation.idl:
  • dom/ChildNode.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/Event.idl:
  • dom/ParentNode.idl:
  • fileapi/Blob.idl:
  • fileapi/FileError.idl:
  • html/DOMSettableTokenList.h: Removed.
  • html/DOMSettableTokenList.idl: Removed.
  • html/HTMLCanvasElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLVideoElement.idl:
4:50 PM Changeset in webkit [204107] by mmaxfield@apple.com
  • 5 edits
    1 add in trunk

[iOS] SF-Heavy is not accessible from web content
https://bugs.webkit.org/show_bug.cgi?id=160522
<rdar://problem/27685273>

Reviewed by Simon Fraser.

Source/WebCore:

The mappings we were using from CSS font-weight to CoreText font weight were inaccurate.
Instead, these new mappings should be used.

Test: fast/text/system-font-weight.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::systemFontModificationAttributes):

LayoutTests:

  • platform/ios-simulator/fast/text/system-font-weight-expected.txt: iOS 9 is not

expected to pass this test, but there is no way to specify that currently using
TestExpectations. Instead, we can create an iOS 9 specific result.

  • fast/text/system-font-weight-expected.txt:
  • fast/text/system-font-weight.html:
4:44 PM LayoutTestDashboards edited by aakash_jain@apple.com
(diff)
4:41 PM Changeset in webkit [204106] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.47

New tag.

4:25 PM Changeset in webkit [204105] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Document instructions for increasing process and file limits
https://bugs.webkit.org/show_bug.cgi?id=160528
rdar://problem/24777576

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.default_child_processes):

3:53 PM Changeset in webkit [204104] by andersca@apple.com
  • 5 edits
    3 deletes in trunk

Remove the Objective-C bindings generator
https://bugs.webkit.org/show_bug.cgi?id=160526

Reviewed by Sam Weinig.

Source/WebCore:

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/PublicDOMInterfaces.h: Removed.
  • bindings/scripts/CodeGeneratorObjC.pm: Removed.
  • bindings/scripts/test/ObjC/DOMFloat64Array.h: Removed.
  • bindings/scripts/test/ObjC/DOMFloat64Array.mm: Removed.
  • bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMInterfaceName.h: Removed.
  • bindings/scripts/test/ObjC/DOMInterfaceName.mm: Removed.
  • bindings/scripts/test/ObjC/DOMInterfaceNameInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCallback.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCallback.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestCallbackFunction.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCallbackFunction.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestCallbackFunctionInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCallbackInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestClassWithJSBuiltinConstructor.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestClassWithJSBuiltinConstructor.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestClassWithJSBuiltinConstructorInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObjectInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestEventConstructor.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestEventConstructor.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestEventTarget.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestEventTarget.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestException.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestException.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestExceptionInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestGlobalObject.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestGlobalObjectInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestImplements.cpp: Removed.
  • bindings/scripts/test/ObjC/DOMTestImplements.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestInterface.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestInterface.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestIterable.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestIterable.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestIterableInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestNamedConstructor.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestNode.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestNode.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestNodeInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestNondeterministic.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestNondeterministic.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestNondeterministicInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestObj.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestObj.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestObjInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltinsInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestSupplemental.cpp: Removed.
  • bindings/scripts/test/ObjC/DOMTestSupplemental.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestTypedefs.h: Removed.
  • bindings/scripts/test/ObjC/DOMTestTypedefs.mm: Removed.
  • bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMattribute.h: Removed.
  • bindings/scripts/test/ObjC/DOMattribute.mm: Removed.
  • bindings/scripts/test/ObjC/DOMattributeInternal.h: Removed.
  • bindings/scripts/test/ObjC/DOMreadonly.h: Removed.
  • bindings/scripts/test/ObjC/DOMreadonly.mm: Removed.
  • bindings/scripts/test/ObjC/DOMreadonlyInternal.h: Removed.
  • bindings/scripts/test/ObjC/ObjCTestSupplemental.cpp: Removed.
  • bindings/scripts/test/ObjC/ObjCTestSupplemental.h: Removed.

Tools:

  • Scripts/run-bindings-tests:

Update test.

3:46 PM IncreasingKernelLimits edited by aakash_jain@apple.com
(diff)
2:59 PM limit.maxproc.plist attached to IncreasingKernelLimits by aakash_jain@apple.com
2:59 PM limit.maxfiles.plist attached to IncreasingKernelLimits by aakash_jain@apple.com
2:55 PM IncreasingKernelLimits created by aakash_jain@apple.com
2:31 PM Changeset in webkit [204103] by andersca@apple.com
  • 136 edits
    58 deletes in trunk/Source/WebCore

Remove dead bindings code
https://bugs.webkit.org/show_bug.cgi?id=160521

Reviewed by Tim Horton.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMBlob.mm:

(core): Deleted.

  • bindings/objc/DOMBlobInternal.h:
  • bindings/objc/DOMCDATASection.mm:

(core): Deleted.

  • bindings/objc/DOMCDATASectionInternal.h:
  • bindings/objc/DOMCSSCharsetRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSCharsetRuleInternal.h: Removed.
  • bindings/objc/DOMCSSFontFaceRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSFontFaceRuleInternal.h: Removed.
  • bindings/objc/DOMCSSImportRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSImportRuleInternal.h: Removed.
  • bindings/objc/DOMCSSMediaRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSMediaRuleInternal.h: Removed.
  • bindings/objc/DOMCSSPageRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSPageRuleInternal.h: Removed.
  • bindings/objc/DOMCSSPrimitiveValue.mm:

(core): Deleted.

  • bindings/objc/DOMCSSPrimitiveValueInternal.h:
  • bindings/objc/DOMCSSRule.mm:

(core): Deleted.

  • bindings/objc/DOMCSSRuleInternal.h:
  • bindings/objc/DOMCSSRuleList.mm:

(core): Deleted.

  • bindings/objc/DOMCSSRuleListInternal.h:
  • bindings/objc/DOMCSSStyleRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSStyleRuleInternal.h: Removed.
  • bindings/objc/DOMCSSStyleSheet.mm:

(core): Deleted.

  • bindings/objc/DOMCSSStyleSheetInternal.h:
  • bindings/objc/DOMCSSUnknownRule.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSUnknownRuleInternal.h: Removed.
  • bindings/objc/DOMCSSValue.mm:

(core): Deleted.

  • bindings/objc/DOMCSSValueInternal.h:
  • bindings/objc/DOMCSSValueList.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCSSValueListInternal.h: Removed.
  • bindings/objc/DOMCharacterData.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMCharacterDataInternal.h: Removed.
  • bindings/objc/DOMComment.mm:

(core): Deleted.

  • bindings/objc/DOMCommentInternal.h:
  • bindings/objc/DOMCounter.mm:

(core): Deleted.

  • bindings/objc/DOMCounterInternal.h:
  • bindings/objc/DOMDOMImplementation.mm:

(core): Deleted.

  • bindings/objc/DOMDOMImplementationInternal.h:
  • bindings/objc/DOMDOMTokenList.mm:

(core): Deleted.

  • bindings/objc/DOMDOMTokenListInternal.h:
  • bindings/objc/DOMEntity.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMEntityInternal.h: Removed.
  • bindings/objc/DOMEntityReference.mm:

(core): Deleted.

  • bindings/objc/DOMEntityReferenceInternal.h:
  • bindings/objc/DOMFile.mm:

(core): Deleted.

  • bindings/objc/DOMFileInternal.h:
  • bindings/objc/DOMHTMLAnchorElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLAnchorElementInternal.h: Removed.
  • bindings/objc/DOMHTMLAppletElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLAppletElementInternal.h: Removed.
  • bindings/objc/DOMHTMLAreaElement.mm:

(kit): Deleted.

  • bindings/objc/DOMHTMLAreaElementInternal.h:
  • bindings/objc/DOMHTMLBRElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLBRElementInternal.h: Removed.
  • bindings/objc/DOMHTMLBaseElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLBaseElementInternal.h: Removed.
  • bindings/objc/DOMHTMLBaseFontElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLBaseFontElementInternal.h: Removed.
  • bindings/objc/DOMHTMLBodyElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLBodyElementInternal.h: Removed.
  • bindings/objc/DOMHTMLButtonElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLButtonElementInternal.h: Removed.
  • bindings/objc/DOMHTMLCanvasElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLCanvasElementInternal.h: Removed.
  • bindings/objc/DOMHTMLCollection.mm:

(core): Deleted.

  • bindings/objc/DOMHTMLCollectionInternal.h:
  • bindings/objc/DOMHTMLDListElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLDListElementInternal.h: Removed.
  • bindings/objc/DOMHTMLDirectoryElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLDirectoryElementInternal.h: Removed.
  • bindings/objc/DOMHTMLDivElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLDivElementInternal.h: Removed.
  • bindings/objc/DOMHTMLEmbedElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLEmbedElementInternal.h: Removed.
  • bindings/objc/DOMHTMLFieldSetElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLFieldSetElementInternal.h: Removed.
  • bindings/objc/DOMHTMLFontElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLFontElementInternal.h: Removed.
  • bindings/objc/DOMHTMLFormElement.mm:

(core): Deleted.

  • bindings/objc/DOMHTMLFormElementInternal.h:
  • bindings/objc/DOMHTMLFrameElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLFrameElementInternal.h: Removed.
  • bindings/objc/DOMHTMLFrameSetElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLFrameSetElementInternal.h: Removed.
  • bindings/objc/DOMHTMLHRElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLHRElementInternal.h: Removed.
  • bindings/objc/DOMHTMLHeadElement.mm:

(core): Deleted.

  • bindings/objc/DOMHTMLHeadElementInternal.h:
  • bindings/objc/DOMHTMLHeadingElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLHeadingElementInternal.h: Removed.
  • bindings/objc/DOMHTMLHtmlElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLHtmlElementInternal.h: Removed.
  • bindings/objc/DOMHTMLIFrameElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLIFrameElementInternal.h: Removed.
  • bindings/objc/DOMHTMLImageElement.mm:

(kit): Deleted.

  • bindings/objc/DOMHTMLImageElementInternal.h:
  • bindings/objc/DOMHTMLLIElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLLIElementInternal.h: Removed.
  • bindings/objc/DOMHTMLLabelElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLLabelElementInternal.h: Removed.
  • bindings/objc/DOMHTMLLegendElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLLegendElementInternal.h: Removed.
  • bindings/objc/DOMHTMLLinkElement.mm:

(kit): Deleted.

  • bindings/objc/DOMHTMLLinkElementInternal.h:
  • bindings/objc/DOMHTMLMapElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLMapElementInternal.h: Removed.
  • bindings/objc/DOMHTMLMarqueeElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLMarqueeElementInternal.h: Removed.
  • bindings/objc/DOMHTMLMediaElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLMediaElementInternal.h: Removed.
  • bindings/objc/DOMHTMLMenuElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLMenuElementInternal.h: Removed.
  • bindings/objc/DOMHTMLMetaElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLMetaElementInternal.h: Removed.
  • bindings/objc/DOMHTMLModElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLModElementInternal.h: Removed.
  • bindings/objc/DOMHTMLOListElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLOListElementInternal.h: Removed.
  • bindings/objc/DOMHTMLObjectElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLObjectElementInternal.h: Removed.
  • bindings/objc/DOMHTMLOptGroupElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLOptGroupElementInternal.h: Removed.
  • bindings/objc/DOMHTMLOptionsCollection.mm:

(core): Deleted.

  • bindings/objc/DOMHTMLOptionsCollectionInternal.h:
  • bindings/objc/DOMHTMLParagraphElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLParagraphElementInternal.h: Removed.
  • bindings/objc/DOMHTMLParamElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLParamElementInternal.h: Removed.
  • bindings/objc/DOMHTMLPreElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLPreElementInternal.h: Removed.
  • bindings/objc/DOMHTMLQuoteElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLQuoteElementInternal.h: Removed.
  • bindings/objc/DOMHTMLScriptElement.mm:

(core): Deleted.

  • bindings/objc/DOMHTMLScriptElementInternal.h:
  • bindings/objc/DOMHTMLSelectElement.mm:

(kit): Deleted.

  • bindings/objc/DOMHTMLSelectElementInternal.h:
  • bindings/objc/DOMHTMLStyleElement.mm:

(kit): Deleted.

  • bindings/objc/DOMHTMLStyleElementInternal.h:
  • bindings/objc/DOMHTMLTableColElement.mm:

(kit): Deleted.

  • bindings/objc/DOMHTMLTableColElementInternal.h:
  • bindings/objc/DOMHTMLTableElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLTableElementInternal.h: Removed.
  • bindings/objc/DOMHTMLTableRowElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLTableRowElementInternal.h: Removed.
  • bindings/objc/DOMHTMLTitleElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLTitleElementInternal.h: Removed.
  • bindings/objc/DOMHTMLUListElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLUListElementInternal.h: Removed.
  • bindings/objc/DOMHTMLVideoElement.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMHTMLVideoElementInternal.h: Removed.
  • bindings/objc/DOMKeyboardEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMKeyboardEventInternal.h: Removed.
  • bindings/objc/DOMMediaError.mm:

(core): Deleted.

  • bindings/objc/DOMMediaErrorInternal.h:
  • bindings/objc/DOMMediaList.mm:

(core): Deleted.

  • bindings/objc/DOMMediaListInternal.h:
  • bindings/objc/DOMMouseEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMMouseEventInternal.h: Removed.
  • bindings/objc/DOMMutationEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMMutationEventInternal.h: Removed.
  • bindings/objc/DOMNamedNodeMap.mm:

(core): Deleted.

  • bindings/objc/DOMNamedNodeMapInternal.h:
  • bindings/objc/DOMNodeIterator.mm:

(core): Deleted.

  • bindings/objc/DOMNodeIteratorInternal.h:
  • bindings/objc/DOMNodeList.mm:

(core): Deleted.

  • bindings/objc/DOMNodeListInternal.h:
  • bindings/objc/DOMOverflowEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMOverflowEventInternal.h: Removed.
  • bindings/objc/DOMProgressEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMProgressEventInternal.h: Removed.
  • bindings/objc/DOMRGBColor.mm:

(core): Deleted.

  • bindings/objc/DOMRGBColorInternal.h:
  • bindings/objc/DOMRect.mm:

(core): Deleted.

  • bindings/objc/DOMRectInternal.h:
  • bindings/objc/DOMStyleSheet.mm:

(core): Deleted.

  • bindings/objc/DOMStyleSheetInternal.h:
  • bindings/objc/DOMStyleSheetList.mm:

(core): Deleted.

  • bindings/objc/DOMStyleSheetListInternal.h:
  • bindings/objc/DOMText.mm:

(core): Deleted.

  • bindings/objc/DOMTextEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMTextEventInternal.h: Removed.
  • bindings/objc/DOMTextInternal.h:
  • bindings/objc/DOMTimeRanges.mm:

(core): Deleted.

  • bindings/objc/DOMTimeRangesInternal.h:
  • bindings/objc/DOMTreeWalker.mm:

(core): Deleted.

  • bindings/objc/DOMTreeWalkerInternal.h:
  • bindings/objc/DOMUIEvent.mm:

(core): Deleted.
(kit): Deleted.

  • bindings/objc/DOMUIEventInternal.h: Removed.
  • bindings/objc/DOMWheelEvent.mm:

(kit): Deleted.

  • bindings/objc/DOMWheelEventInternal.h:
  • bindings/objc/DOMXPathExpression.mm:

(core): Deleted.

  • bindings/objc/DOMXPathExpressionInternal.h:
2:08 PM Changeset in webkit [204102] by bshafiei@apple.com
  • 19 edits
    2 deletes in branches/safari-602-branch

Roll out r203982 via r204068. rdar://problem/27547583

2:08 PM Changeset in webkit [204101] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Roll out r204082 via r204086. rdar://problem/27547583

1:57 PM Changeset in webkit [204100] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Work around AVPlayer setMuted bug
https://bugs.webkit.org/show_bug.cgi?id=160519
<rdar://problem/27310475>

Reviewed by Dean Jackson.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: Only override

supportsMuting on iOS.

1:49 PM Changeset in webkit [204099] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cmd-L shortcut for Jump to Line conflicts with selecting URL of inspected page
https://bugs.webkit.org/show_bug.cgi?id=158028
<rdar://problem/26516663>

Reviewed by Timothy Hatcher.

Remove Command-L shortcut for opening the Line Number dialog, since
we already support Control-G.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor): Deleted.

1:23 PM Changeset in webkit [204098] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 10

Added a tag for Safari Technology Preview release 10.

1:06 PM Changeset in webkit [204097] by Michael Catanzaro
  • 4 edits in trunk/Source/WebKit2

[SOUP] Deduplicate WebProcessPool::setIgnoreTLSErrors
https://bugs.webkit.org/show_bug.cgi?id=160489

Reviewed by Alex Christensen.

WebProcessPool::setIgnoreTLSErrors has identical implementation in WebProcessPoolEfl.cpp
and WebProcessPoolGtk.cpp. We have WebProcessPoolSoup.cpp and this function is specific to
the soup network backend, so move it there.

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted.

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted.

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::setIgnoreTLSErrors):

12:40 PM Changeset in webkit [204096] by Ryan Haddad
  • 11 edits
    1 copy
    1 delete in trunk/LayoutTests

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Renamed from LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt:
12:10 PM Changeset in webkit [204095] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r204074. rdar://problem/25856238

12:10 PM Changeset in webkit [204094] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r204089. rdar://problem/27313234

11:50 AM Changeset in webkit [204093] by fpizlo@apple.com
  • 4 edits
    1 add in trunk

REGRESSION(r203368): broke some test262 tests
https://bugs.webkit.org/show_bug.cgi?id=160479

Reviewed by Mark Lam.

JSTests:

Added a stress test for this case, since we don't always run test262.

  • stress/freeze-setter.js: Added.

(let.o.set foo):

Source/JavaScriptCore:

The optimization in r203368 overlooked a subtle detail: freezing should not set ReadOnly on
Accessor properties.

  • runtime/Structure.cpp:

(JSC::Structure::nonPropertyTransition):

  • runtime/StructureTransitionTable.h:

(JSC::setsDontDeleteOnAllProperties):
(JSC::setsReadOnlyOnNonAccessorProperties):
(JSC::setsReadOnlyOnAllProperties): Deleted.

11:44 AM Changeset in webkit [204092] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Revise a TestWebKitAPI comment to mention the actual underlying problem

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

Note that this is because of https://bugs.webkit.org/show_bug.cgi?id=160516

11:43 AM Changeset in webkit [204091] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

[bmalloc] Merging of XLargeRanges can leak the upper range
https://bugs.webkit.org/show_bug.cgi?id=160403

Reviewed by Michael Saboff.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavengeLargeObjects): Don't use removePhysical().
Recorded physical size is a performance optimization. It is not the
truth. So it might be zero even if a range contains physical pages.

Instead, iterate each range in the map unconditionally.

The map can shrink when we release the lock, so we must clamp our
iterator each time through the loop.

The map can grow when we release the lock, but we don't care because
growth restarts the scavenger from the beginning.

  • bmalloc/XLargeMap.cpp:

(bmalloc::XLargeMap::removePhysical): Deleted. Not used anymore.

  • bmalloc/XLargeMap.h:

(bmalloc::XLargeMap::ranges): Added direct access for the sake of
scavengeLargeObjects. (This violates our naming conventions -- I'll do
a rename in a follow-up patch.)

11:35 AM Changeset in webkit [204090] by Chris Dumez
  • 230 edits in trunk/LayoutTests

Fix logging in W3C tests
https://bugs.webkit.org/show_bug.cgi?id=160513

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C tests.

  • web-platform-tests/XMLHttpRequest/open-url-about-blank-window-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-javascript-window-2-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-javascript-window-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-4-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-5-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-content-type-string-expected.txt:
  • web-platform-tests/dom/collections/domstringmap-supported-property-names-expected.txt:
  • web-platform-tests/dom/collections/namednodemap-supported-property-names-expected.txt:
  • web-platform-tests/dom/nodes/Comment-constructor-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElement-null-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElement-null-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-childElementCount-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-children-expected.txt:
  • web-platform-tests/dom/nodes/Element-firstElementChild-entity-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-firstElementChild-expected.txt:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-firstElementChild-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-insertAdjacentElement-expected.txt:
  • web-platform-tests/dom/nodes/Element-insertAdjacentText-expected.txt:
  • web-platform-tests/dom/nodes/Element-lastElementChild-expected.txt:
  • web-platform-tests/dom/nodes/Element-lastElementChild-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-nextElementSibling-expected.txt:
  • web-platform-tests/dom/nodes/Element-nextElementSibling-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-previousElementSibling-expected.txt:
  • web-platform-tests/dom/nodes/Element-previousElementSibling-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Element-siblingElement-null-expected.txt:
  • web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Node-appendChild-expected.txt:
  • web-platform-tests/dom/nodes/Node-contains-xml-expected.txt:
  • web-platform-tests/dom/nodes/Node-isEqualNode-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Node-removeChild-expected.txt:
  • web-platform-tests/dom/nodes/Text-constructor-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-19-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-20-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-21-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-22-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-23-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-24-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-25-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-26-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-27-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-28-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-29-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt:
  • web-platform-tests/dom/nodes/getElementsByClassName-31-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-basic-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-currentNode-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-reject-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree-expected.txt:
  • web-platform-tests/domparsing/innerhtml-05-expected.txt:
  • web-platform-tests/fetch/nosniff/image-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-xhtml-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param-xhtml-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.images-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-01-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-02-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-06-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/049-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/050-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/051-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-02-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-02-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-03-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/001-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/005-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/006-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/007-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/008-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/009-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-expected.txt:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-expected.txt:
  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/dom/reflection-forms-expected.txt:
  • web-platform-tests/html/dom/reflection-grouping-expected.txt:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:
  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:
  • web-platform-tests/html/dom/reflection-sections-expected.txt:
  • web-platform-tests/html/dom/reflection-tabular-expected.txt:
  • web-platform-tests/html/dom/reflection-text-expected.txt:
  • web-platform-tests/html/semantics/disabled-elements/disabledElement-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_multiple-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/activeCues-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/addCue-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/removeCue-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/endTime-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/id-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/pauseOnExit-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/startTime-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/track-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/getCueById-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/getter-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/length-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_008-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_volume_check-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-dimension-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/error-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-media-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-handler-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-video-element/video-tabindex-expected.txt:
  • web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-customError-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-patternMismatch-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-tooLong-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-tooShort-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-typeMismatch-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
  • web-platform-tests/html/semantics/forms/the-button-element/button-validation-expected.txt:
  • web-platform-tests/html/semantics/forms/the-datalist-element/datalistoptions-expected.txt:
  • web-platform-tests/html/semantics/forms/the-fieldset-element/disabled-001-expected.txt:
  • web-platform-tests/html/semantics/forms/the-fieldset-element/disabled-002-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-elements-matches-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-01-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-02-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-elements-sameobject-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-indexed-element-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-nameditem-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/button-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/reset-expected.txt:
  • web-platform-tests/html/semantics/forms/the-option-element/option-text-backslash-expected.txt:
  • web-platform-tests/html/semantics/forms/the-output-element/output-expected.txt:
  • web-platform-tests/html/semantics/forms/the-progress-element/progress-expected.txt:
  • web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt:
  • web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem-expected.txt:
  • web-platform-tests/html/semantics/forms/the-select-element/select-named-getter-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-close-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_003-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_004-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_005-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_006-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_007-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_008-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_010-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/checked-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/default-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/dir-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/dir01-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/disabled-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/enabled-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/focus-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/required-optional-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/valid-invalid-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/caption-methods-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/tBodies-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/insertRow-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-tr-element/cells-expected.txt:
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.text-getter-01-expected.txt:
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.text-setter-01-expected.txt:

LayoutTests:

Fix logging in W3C tests. Some W3C tests have no visible output or
output in the wrong order because we fail to use the test's "log"
<div> and always append the log lines to the body.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback):

11:17 AM Changeset in webkit [204089] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Cleanup HTMLMediaElement track lists.
https://bugs.webkit.org/show_bug.cgi?id=160470

Reviewed by Brent Fulgham.

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::willRemove): Remove unnecessary ASSERT and NULL check.

  • html/track/TextTrackList.cpp:

(TextTrackList::~TextTrackList): Call clearElement so media element and client pointers are
cleared.

11:11 AM Changeset in webkit [204088] by adachan@apple.com
  • 11 edits in trunk

[Mac] media/pip-video-going-into-fullscreen.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=160469

Reviewed by Eric Carlson.

Source/WebCore:

When going from picture-in-picture directly to fullscreen, fix the issue where the
presentation mode unexpectedly changes back to inline after changing to fullscreen.

On Mac, standard fullscreen is not handled by WebVideoFullscreenManager.
When going from picture-in-picture directly to fullscreen, we call
WebVideoFullscreenInterfaceMac::exitFullscreenWithoutAnimationToMode().
We should update m_mode to VideoFullscreenModeStandard there to keep it in sync
with the fullscreen mode in HTMLMediaElement. Otherwise, we'll inadvertently
update the mode to inline when we clear the VideoFullscreenModePictureInPicture mode
in -[WebVideoFullscreenInterfaceMacObjC pipDidClose:].

Since standard fullscreen on Mac doesn't make use of the video fullscreen layer,
we need to make sure we return the video layer back to inline when the presentation
mode changes to "fullscreen". We only do this on Mac because iOS does use
the video fullscreen layer for standard fullscreen.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::setPreparedToReturnVideoLayerToInline):
Renamed from MediaControlsHost::setPreparedForInline to make it clear this is about
whether the video layer should be inline.
(WebCore::MediaControlsHost::setPreparedForInline): Deleted.

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldReturnVideoLayerToInline):
On Mac, the video layer is inline when the presentation mode is "inline" or "fullscreen".
(Controller.prototype.handlePresentationModeChange):
Call shouldReturnVideoLayerToInline() to determine whether the video layer should be inline.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.shouldReturnVideoLayerToInline):
Override this method since on iOS, the video layer is only inline when the presentation
mode is "inline".

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::setPreparedToReturnVideoLayerToInline):
(WebCore::HTMLMediaElement::setPreparedForInline): Deleted.

  • html/HTMLMediaElement.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::enterFullscreen):
Remove the assertion that the mode must be "picture-in-picture". I've run into this
assertion in layout tests. Since the EnterFullscreen message is sent in a dispatch_async
block in WebVideoFullscreenManager::didSetupFullscreen(), there's a chance that the
fullscreen mode tracked in WebVideoFullscreenInterfaceMac has already changed to
something else when WebVideoFullscreenInterfaceMac::enterFullscreen() is called.
(WebCore::WebVideoFullscreenInterfaceMac::exitFullscreenWithoutAnimationToMode):
If exiting to standard fullscreen, update m_mode to VideoFullscreenModeStandard.

LayoutTests:

Re-enable media/pip-video-going-into-fullscreen.html on Sierra.

  • platform/mac-wk2/TestExpectations:
11:05 AM Changeset in webkit [204087] by clopez@igalia.com
  • 2 edits
    1 add in trunk/Tools

Benchmark test content-animation timeouts always
https://bugs.webkit.org/show_bug.cgi?id=160057

Reviewed by Simon Fraser.

  • Scripts/webkitpy/benchmark_runner/data/plans/Skipped: Added.
  • Scripts/webkitpy/benchmark_runner/run_benchmark.py:

(start):

10:22 AM Changeset in webkit [204086] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r204082. rdar://problem/27547583

10:15 AM Changeset in webkit [204085] by commit-queue@webkit.org
  • 4 edits in trunk

http/tests/fetch/fetch-in-worker-crash.html is sometimes crashing
https://bugs.webkit.org/show_bug.cgi?id=160498

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

Source/WebCore:

Covered by http/tests/fetch/fetch-in-worker-crash.html.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Taking a reference of the client wrapper to ensure it can be cleaned-up successfully.

LayoutTests:

  • http/tests/fetch/fetch-in-worker.js:

(onmessage): Reducing flakiness risk by making fetch http load being delayed.

10:12 AM Changeset in webkit [204084] by Csaba Osztrogonác
  • 6 edits
    2 adds in trunk

Lacking support on a arm-traditional disassembler.
https://bugs.webkit.org/show_bug.cgi?id=123717

Reviewed by Mark Lam.

.:

  • Source/cmake/FindLLVM.cmake: Added back the r196749 state.
  • Source/cmake/OptionsCommon.cmake: Added back the r196749 state.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • disassembler/ARMLLVMDisassembler.cpp: Added, based on pre r196729 LLVMDisassembler, but it is ARM traditional only now.

(JSC::tryToDisassemble):

Source/WTF:

  • wtf/Platform.h:
9:53 AM Changeset in webkit [204083] by andersca@apple.com
  • 4 edits
    40 copies
    11 adds in trunk/Source/WebCore

Freeze the last of the Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160482

Reviewed by Darin Adler.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMAttr.h: Added.
  • bindings/objc/DOMAttr.mm: Added.
  • bindings/objc/DOMAttrInternal.h: Added.
  • bindings/objc/DOMCDATASection.h: Added.
  • bindings/objc/DOMCDATASection.mm: Added.
  • bindings/objc/DOMCDATASectionInternal.h: Added.
  • bindings/objc/DOMCharacterData.h
  • bindings/objc/DOMCharacterData.mm: Added.
  • bindings/objc/DOMCharacterDataInternal.h: Added.
  • bindings/objc/DOMComment.h: Added.
  • bindings/objc/DOMComment.mm: Added.
  • bindings/objc/DOMCommentInternal.h: Added.
  • bindings/objc/DOMDOMImplementation.h: Added.
  • bindings/objc/DOMDOMImplementation.mm: Added.
  • bindings/objc/DOMDOMImplementationInternal.h: Added.
  • bindings/objc/DOMDocument.h: Added.
  • bindings/objc/DOMDocument.mm: Added.
  • bindings/objc/DOMDocumentFragment.h: Added.
  • bindings/objc/DOMDocumentFragment.mm: Added.
  • bindings/objc/DOMDocumentFragmentInternal.h: Added.
  • bindings/objc/DOMDocumentFragmentPrivate.h: Added.
  • bindings/objc/DOMDocumentInternal.h: Added.
  • bindings/objc/DOMDocumentPrivate.h: Added.
  • bindings/objc/DOMDocumentType.h: Added.
  • bindings/objc/DOMDocumentType.mm: Added.
  • bindings/objc/DOMDocumentTypeInternal.h: Added.
  • bindings/objc/DOMElement.h: Added.
  • bindings/objc/DOMElement.mm: Added.
  • bindings/objc/DOMElementInternal.h: Added.
  • bindings/objc/DOMEntity.h: Added.
  • bindings/objc/DOMEntity.mm: Added.
  • bindings/objc/DOMEntityInternal.h: Added.
  • bindings/objc/DOMEntityReference.h: Added.
  • bindings/objc/DOMEntityReference.mm: Added.
  • bindings/objc/DOMEntityReferenceInternal.h: Added.
  • bindings/objc/DOMNamedNodeMap.h: Added.
  • bindings/objc/DOMNamedNodeMap.mm: Added.
  • bindings/objc/DOMNamedNodeMapInternal.h: Added.
  • bindings/objc/DOMNode.h: Added.
  • bindings/objc/DOMNode.mm: Added.
  • bindings/objc/DOMNodeInternal.h: Added.
  • bindings/objc/DOMNodeList.h: Added.
  • bindings/objc/DOMNodeList.mm: Added.
  • bindings/objc/DOMNodeListInternal.h: Added.
  • bindings/objc/DOMNodePrivate.h: Added.
  • bindings/objc/DOMProcessingInstruction.h: Added.
  • bindings/objc/DOMProcessingInstruction.mm: Added.
  • bindings/objc/DOMProcessingInstructionInternal.h: Added.
  • bindings/objc/DOMText.h: Added.
  • bindings/objc/DOMText.mm: Added.
  • bindings/objc/DOMTextEvent.mm:
  • bindings/objc/DOMTextEventInternal.h:
  • bindings/objc/DOMTextInternal.h: Added.
9:33 AM Changeset in webkit [204082] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac][iOS] Adopt MediaRemote "seek to playback position"
https://bugs.webkit.org/show_bug.cgi?id=160405
<rdar://problem/27547583>

Reviewed by Dean Jackson.

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Fix a typo.

9:12 AM Changeset in webkit [204081] by Chris Dumez
  • 1 edit
    2 moves in trunk/LayoutTests

Unreviewed, move LayoutTest out of platform/ios-simulator/ios.

  • fast/events/touch/ios/Touch-attributes-prototype-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/touch/Touch-attributes-prototype-expected.txt.
  • fast/events/touch/ios/Touch-attributes-prototype.html: Renamed from LayoutTests/platform/ios-simulator/ios/touch/Touch-attributes-prototype.html.
7:35 AM Changeset in webkit [204080] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Document how to initialize WebKitFaviconDatabase
https://bugs.webkit.org/show_bug.cgi?id=160391

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
3:41 AM Changeset in webkit [204079] by commit-queue@webkit.org
  • 61 edits
    2 copies
    22 adds
    4 deletes in trunk/LayoutTests/imported/w3c

Refresh wpt tests up to d686014
https://bugs.webkit.org/show_bug.cgi?id=160446

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

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/XMLHttpRequest/FormData-append.html:
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js: Added.

(test):
(string_appeared_here.test):
(string_appeared_here.async_test):

  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.html: Removed.
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js: Removed.
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js: Removed.
  • web-platform-tests/XMLHttpRequest/headers-normalize-response-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/headers-normalize-response.htm: Added.
  • web-platform-tests/XMLHttpRequest/open-url-multi-window.htm:
  • web-platform-tests/XMLHttpRequest/resources/last-modified.py:

(main):

  • web-platform-tests/XMLHttpRequest/resources/parse-headers.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties-expected.txt:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-empty-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-empty.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-get-head-async-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-get-head-async.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-get-head-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-get-head.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-none-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-none.htm:
  • web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/dom/events/AddEventListenerOptions-once-expected.txt: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-once.html: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/lists/DOMTokenList-iteration-expected.txt: Added.
  • web-platform-tests/dom/lists/DOMTokenList-iteration.html: Added.
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/Node-childNodes-expected.txt:
  • web-platform-tests/dom/nodes/Node-childNodes.html:
  • web-platform-tests/domparsing/insert_adjacent_html-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:
  • web-platform-tests/fetch/api/basic/request-referrer-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/request-referrer.html: Added.
  • web-platform-tests/fetch/api/basic/request-referrer.js: Added.

(testReferrer):

  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-no-referrer-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-no-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-no-referrer.html.headers:
  • web-platform-tests/fetch/api/policies/referrer-no-referrer.js.headers:
  • web-platform-tests/fetch/api/policies/referrer-origin-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-expected.txt.
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-expected.txt.
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js: Added.

(promise_test):

  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin.html.headers:
  • web-platform-tests/fetch/api/policies/referrer-origin.js.headers:
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url-worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url.html.headers:
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url.js.headers:
  • web-platform-tests/fetch/api/policies/w3c-import.log:
  • web-platform-tests/fetch/api/request/request-cache-expected.txt:
  • web-platform-tests/fetch/api/request/resources/get-host-info.sub.js: Removed.
  • web-platform-tests/fetch/nosniff/resources/image.py:

(main):

  • web-platform-tests/fetch/nosniff/stylesheet-expected.txt:
  • web-platform-tests/fetch/nosniff/stylesheet.html:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-open-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-open.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-03-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-03.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/caption-methods-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/caption-methods.html:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/remove-row-expected.txt: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/remove-row.html: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/w3c-import.log:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/service-workers/tools/blink-import.py:

(main):

12:50 AM Changeset in webkit [204078] by sbarati@apple.com
  • 13 edits
    2 adds in trunk

Implement nested rest destructuring w.r.t the ES7 spec
https://bugs.webkit.org/show_bug.cgi?id=160423

Reviewed by Filip Pizlo.

JSTests:

  • stress/destructuring-rest-element.js: Added.

(assert):
(test):
(arr):
(eq):
(gen):
(fakeGen.return.Symbol.iterator):
(fakeGen):

  • stress/rest-elements.js:

(testSyntaxError.String.raw):

  • stress/rest-parameter-is-destructuring.js: Added.

(assert):
(test):
(foo):
(bar):

  • test262.yaml:

Source/JavaScriptCore:

The spec has updated the BindingRestElement grammar production to be:
BindingRestElement:

BindingIdentifier
BindingingPattern.

It used to only allow BindingIdentifier in the grammar production.
I've updated our engine to account for this. The semantics are exactly
what you'd expect. For example:
let [a, ...[b, ...c]] = expr();
means that we create an array for the first rest element ...[b, ...c]
and then perform the binding of [b, ...c] to that array. And so on,
applied recursively through the pattern.

  • bytecompiler/NodesCodegen.cpp:

(JSC::RestParameterNode::collectBoundIdentifiers):
(JSC::RestParameterNode::toString):
(JSC::RestParameterNode::bindValue):
(JSC::RestParameterNode::emit):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createBindingLocation):
(JSC::ASTBuilder::createRestParameter):
(JSC::ASTBuilder::createAssignmentElement):

  • parser/NodeConstructors.h:

(JSC::AssignmentElementNode::AssignmentElementNode):
(JSC::RestParameterNode::RestParameterNode):
(JSC::DestructuringAssignmentNode::DestructuringAssignmentNode):

  • parser/Nodes.h:

(JSC::RestParameterNode::name): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseFormalParameters):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
12:38 AM Changeset in webkit [204077] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix Windows build after r204065

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::observeTransitions):
AbstractValue is bigger on Windows for an unknown reason.

12:07 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:06 AM Changeset in webkit [204076] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Activate directory index generation for Apache test server
https://bugs.webkit.org/show_bug.cgi?id=160451

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-03
Reviewed by Alexey Proskuryakov.

  • http/conf/apache2.4-httpd.conf:
12:00 AM Changeset in webkit [204075] by fred.wang@free.fr
  • 10 edits in trunk/Source/WebCore

Move determination of operator direction into DOM class and reduce relayout
https://bugs.webkit.org/show_bug.cgi?id=160339

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

We move the determination of operator direction into MathMLOperatorElement. We also simplify
a bit RenderMathMLFencedOperator so that the update of operator properties are done
immediately in updateOperatorContent and the resolution of to LayoutUnit is implemented
in leadingSpace, trailingSpace, minSize and maxSize. After that, setOperatorProperties is no
longer necessary and we can remove many calls that used to update operator properties and
force relayout.

No new tests, already covered by existing tests.

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::childrenChanged): No need to call updateOperatorProperties.

  • mathml/MathMLOperatorElement.cpp: Change names from "text" to "char".

(WebCore::MathMLOperatorElement::parseOperatorChar): Parse character and isVertical in this function.
(WebCore::MathMLOperatorElement::operatorChar):
(WebCore::MathMLOperatorElement::childrenChanged):
(WebCore::MathMLOperatorElement::computeDictionaryProperty): Call operatorChar().character.
(WebCore::MathMLOperatorElement::parseOperatorText): Deleted.
(WebCore::MathMLOperatorElement::operatorText): Deleted.

  • mathml/MathMLOperatorElement.h: Use a new structure to hold both the character and direction

and change names from "text" to "char".

  • rendering/mathml/RenderMathMLFencedOperator.cpp:

(WebCore::RenderMathMLFencedOperator::updateOperatorContent): Update both the character and
direction using MathMLOperatorElement::parseOperatorChar. Then set the boolean properties
and leading/trailing space using the operator dictionary. minsize and maxsize are constant
so we do not need to set them any more.
(WebCore::RenderMathMLFencedOperator::leadingSpace): Resolve the spacing read from the
dictionary to LayoutUnit. Note that it can never be negative.
(WebCore::RenderMathMLFencedOperator::trailingSpace): Ditto.
(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Deleted.
(WebCore::RenderMathMLFencedOperator::setOperatorProperties): Deleted.

  • rendering/mathml/RenderMathMLFencedOperator.h: We use the new OperatorChar structure for

accessors and members. We make minSize and maxSize just return the default values and delete
the corresponding members. Finally, leading and trailing space are now stored as unsigned
short in MathUnit.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::textContent): Use the new OperatorChar structure.
(WebCore::RenderMathMLOperator::isVertical): Helper function forwarding to MathMLOperatorElement.
(WebCore::RenderMathMLOperator::stretchTo): Use isVertical() and remove setOperatorProperties().
(WebCore::RenderMathMLOperator::resetStretchSize): Ditto.
(WebCore::RenderMathMLOperator::updateMathOperator): Rename rebuildTokenContent as this is
now really only used to update MathOperator and hence replace the condition on
useMathOperator() with an ASSERT.
(WebCore::RenderMathMLOperator::updateTokenContent): Call updateMathOperator instead of
rebuildTokenContent.
(WebCore::RenderMathMLOperator::verticalStretchedOperatorShift): We use isVertical().
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::setOperatorProperties): Deleted. This is no longer needed.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Deleted.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Deleted. Renamed updateMathOperator.
(WebCore::RenderMathMLOperator::styleDidChange): No need to call updateOperatorProperties.
(WebCore::RenderMathMLOperator::updateOperatorProperties): Ditto..

  • rendering/mathml/RenderMathMLOperator.h: Update some declaration and remove m_isVertical.

(WebCore::RenderMathMLOperator::isVertical): Deleted.

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::updateOperatorProperties): Deleted. This is no longer needed.

  • rendering/mathml/RenderMathMLRow.h: Ditto.

Aug 2, 2016:

11:35 PM Changeset in webkit [204074] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Update breaking rules to match ICU 57
https://bugs.webkit.org/show_bug.cgi?id=160488
<rdar://problem/25856238>

Reviewed by Darin Adler.

Source/WTF:

This patch fixes a typo in the uax14AssignmentsAfter rules which
was causing flag emoji to have line breaking opportunities in their
middles. It also fixes significant language issues for languages
such as Hebrew, and adds correct breaking opportunities around
hyphens.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):
(WTF::uax14AssignmentsAfter):
(WTF::uax14Forward):
(WTF::uax14Reverse):

LayoutTests:

  • fast/text/flag-emoji-line-break-expected.html: Added.
  • fast/text/flag-emoji-line-break.html: Added.
  • platform/mac/TestExpectations: Mark the test as failing on Yosemite.
11:16 PM Changeset in webkit [204073] by bshafiei@apple.com
  • 8 edits
    2 adds in branches/safari-602-branch

Merge r204050. rdar://problem/27313234

11:16 PM Changeset in webkit [204072] by bshafiei@apple.com
  • 8 edits
    2 moves in branches/safari-602-branch

Merge r204062. rdar://problem/27592936

11:16 PM Changeset in webkit [204071] by bshafiei@apple.com
  • 9 edits
    2 adds in branches/safari-602-branch

Merge r203955. rdar://problem/27629346

11:15 PM Changeset in webkit [204070] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r204057. rdar://problem/27534205

11:15 PM Changeset in webkit [204069] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203984. rdar://problem/27409854

11:15 PM Changeset in webkit [204068] by bshafiei@apple.com
  • 19 edits
    2 adds in branches/safari-602-branch

Merge r203982. rdar://problem/27547583

10:38 PM Changeset in webkit [204067] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:33 PM Changeset in webkit [204066] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix 32bits jsc after r204065

Default constructed JSValue() are not equal to zero in 32bits.

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::AbstractValue):

8:45 PM Changeset in webkit [204065] by benjamin@webkit.org
  • 7 edits in trunk/Source

[JSC] Simplify the initialization of AbstractValue in the AbstractInterpreter
https://bugs.webkit.org/show_bug.cgi?id=160370

Reviewed by Saam Barati.

Source/JavaScriptCore:

We use a ton of AbstractValue to run the Abstract Interpreter.

When we set up the initial values, the compiler sets
a zero on a first word, a one on a second word, and a zero
again on a third word.
Since no vector or double-store can deal with 3 words, unrolling
is done by repeating those instructions.

The reason for the one was TinyPtrSet. It needed a flag for
empty value to identify the set as thin. I flipped the flag to "fat"
to make sure TinyPtrSet is initialized to zero.

With that done, I just had to clean some places to make
the initialization shorter.
It makes the binary easier to follow but this does not help with
the bigger problem: the time spent per block on Abstract Interpreter.

  • bytecode/Operands.h:

The traits were useless, no client code defines it.

(JSC::Operands::Operands):
(JSC::Operands::ensureLocals):
Because of the size of the function, llvm is not inlining it.
We were literally loading 3 registers from memory and storing
them in the vector.
Now that AbstractValue has a VectorTraits, we should just rely
on the memset of Vector when possible.

(JSC::Operands::getLocal):
(JSC::Operands::setArgumentFirstTime):
(JSC::Operands::setLocalFirstTime):
(JSC::Operands::clear):
(JSC::OperandValueTraits::defaultValue): Deleted.
(JSC::OperandValueTraits::isEmptyForDump): Deleted.

  • bytecode/OperandsInlines.h:

(JSC::Operands<T>::dumpInContext):
(JSC::Operands<T>::dump):
(JSC::Traits>::dumpInContext): Deleted.
(JSC::Traits>::dump): Deleted.

  • dfg/DFGAbstractValue.cpp:
  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::AbstractValue):

Source/WTF:

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::isThin):
(WTF::TinyPtrSet::set):

7:56 PM Changeset in webkit [204064] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop custom bindings code for HTMLSelectElement.remove()
https://bugs.webkit.org/show_bug.cgi?id=160477

Reviewed by Darin Adler.

Drop custom bindings code for HTMLSelectElement.remove() and use
overloading instead.

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::JSHTMLSelectElement::remove): Deleted.

  • html/HTMLSelectElement.idl:
7:56 PM Changeset in webkit [204063] by Chris Dumez
  • 10 edits in trunk

Drop custom bindings code for HTMLOptionsCollection.remove()
https://bugs.webkit.org/show_bug.cgi?id=160475

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Drop custom bindings code for HTMLOptionsCollection.remove() and use
overloading instead. The overload that take an HTMLOptionElement is
WebKit-specific and should probably be dropped at some point:

This patch also fixes several bugs:

  • The parameter is now mandatory. This is consistent with the specification, Firefox and Chrome.
  • HTMLOptionsCollection.prototype.remove.length is now 1 instead of 0.

No new tests, rebaselined existing tests.

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::remove): Deleted.

  • html/HTMLOptionsCollection.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
  • js/dom/select-options-remove-expected.txt:
  • js/resources/select-options-remove.js:
7:38 PM Changeset in webkit [204062] by n_wang@apple.com
  • 8 edits
    2 moves in trunk

AX: Simulated touch events are not working on iOS
https://bugs.webkit.org/show_bug.cgi?id=160395
<rdar://problem/27633597>

Reviewed by Chris Fleizach.

Source/WebCore:

We should mark the simulated touch as a potential tap otherwise it won't
be handled on iOS. Also, we need to dispatch both touch start and touch end
to mimic the real touch events. Last, added a has event listeners check,
because iOS is dispatching mouse click events for elements without touch event
listeners.

Test: accessibility/ios-simulator/press-fires-touch-events.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchTouchEvent):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::dispatchSimulatedTouchEvent):

  • platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):

Tools:

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChild):

LayoutTests:

  • accessibility/ios-simulator/press-fires-touch-events-expected.txt: Added.
  • accessibility/ios-simulator/press-fires-touch-events.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/ios/accessibility/press-fires-touch-events-expected.txt: Removed.
  • platform/ios-simulator/ios/accessibility/press-fires-touch-events.html: Removed.
7:20 PM Changeset in webkit [204061] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Clean up some useless AtomicString atoms
https://bugs.webkit.org/show_bug.cgi?id=160471

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-02
Reviewed by Geoffrey Garen.

Source/WebCore:

The only uses of "commentAtom" and "textAtom" where for their
respective overload of Node::nodeName().
Those methods return a string, we should not keep them in the atomic
string table just to hold a small String alive. They were also the only
two nodes to behave that way.

The atom xlinkAtom was only used by createForeignAttributesMap(), which
is itself only invoked once. There is no need for the symbol xlinkAtom.

  • dom/CDATASection.cpp:

(WebCore::CDATASection::nodeName):

  • dom/Comment.cpp:

(WebCore::Comment::nodeName):

  • dom/Document.cpp:

(WebCore::Document::nodeName):

  • dom/Text.cpp:

(WebCore::Text::nodeName):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

Source/WTF:

  • wtf/text/AtomicString.h:
  • wtf/text/StringStatics.cpp:

(WTF::AtomicString::init): Deleted.

6:57 PM Changeset in webkit [204060] by fpizlo@apple.com
  • 2 edits in trunk/Tools

run-javascriptcore-tests should accept multiple --extra-tests
https://bugs.webkit.org/show_bug.cgi?id=160486

Reviewed by Saam Barati.

We want to be able to pass --extra-tests multiple times, to supply an arbitrary number of extra
test suites. This does it by using GetOpt::Long's array support.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

6:46 PM Changeset in webkit [204059] by sbarati@apple.com
  • 1 add
    1 delete in trunk/JSTests

Rename Changelog to ChangeLog

Rubber stamped by Keith Miller.

  • Changelog: Removed.
6:28 PM Changeset in webkit [204058] by sbarati@apple.com
  • 15 edits
    1 add in trunk

update a class extending null w.r.t the ES7 spec
https://bugs.webkit.org/show_bug.cgi?id=160417

Reviewed by Keith Miller.

Source/JavaScriptCore:

When a class extends null, it should not be marked as a derived class.
This was changed in the ES2016 spec, and this patch makes the needed
changes in JSC to follow the spec. This allows classes to extend
null and have their default constructor invoked without throwing an exception.
This also prevents |this| from being under TDZ at the start of the constructor.
Because ES6 allows arbitrary expressions in the class <ident> extends <expr>
syntax, we don't know statically if a constructor is extending null or not.
Therefore, we don't always know statically if it's a base or derived constructor.
I solved this by putting a boolean on the constructor function under a private
symbol named isDerivedConstructor when doing class construction. We only need
to put this boolean on constructors that may extend null. Constructors that are
declared in a class with no extends syntax can tell statically that they are a base constructor.

I've also renamed the ConstructorKind::Derived enum value to be
ConstructorKind::Extends to better indicate that we can't answer
the "am I a derived constructor?" question statically.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):

  • builtins/BuiltinNames.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::ensureThis):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/ParserModes.h:

LayoutTests:

  • js/class-syntax-extends-expected.txt:
  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-extends.js:
  • js/script-tests/class-syntax-super.js:
6:22 PM Changeset in webkit [204057] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r203385): Frequent RELEASE_ASSERT in WebKit::RemoteLayerTreeDrawingArea::flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=160481
<rdar://problem/27534205>

Reviewed by Simon Fraser.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
If the UI process sends a didUpdate message while the Web process is in
the middle of flushing on a background thread, the drawing area will
allow another commit to start on the main thread, which then (rightfully)
causes the RELEASE_ASSERT.

This is normally not a problem, because didRefreshDisplay (which sends the didUpdate)
bails if m_didUpdateMessageState is anything other than NotSent, and m_didUpdateMessageState
is only NotSent if the Web process has sent a commit (and thus will not commit again until
it gets a didUpdate). This is the fundamental mechanism that avoids multiple commits being
in flight at once.

In r203385, I added a path where didRefreshDisplay could be called
before the first commit arrived (by way of
_applicationWillEnterForeground -> viewStateDidChange -> waitForDidUpdateViewState).

This caused trouble because m_didUpdateMessageState is initialized to NotSent,
which means that we could end up sending a didUpdate immediately, before the first
commit arrives - even worse, while the first commit is being flushed on a background thread,
leading the aforementioned RELEASE_ASSERT to fire.

Instead, initialize it to Sent (which I've renamed to DoesNotNeedDidUpdate), so that
we won't send a didUpdate until after the first commit arrives (at which point
the two processes are in agreement about the order of things).

It's not currently possible to API test this for multiple reasons, though it is fairly
easy to write a test app that reproduces reliably (by simulating suspend/resume notifications
inside the didFinishNavigation: callback).

6:14 PM Changeset in webkit [204056] by Ryan Haddad
  • 2 edits
    1 copy
    1 add in branches/safari-602-branch/LayoutTests

Merge r203992. rdar://problem/27611932

5:43 PM Changeset in webkit [204055] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip media/track/track-remove-crash.html on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=160367

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:31 PM Changeset in webkit [204054] by andersca@apple.com
  • 3 edits
    80 adds in trunk/Source/WebCore

Freeze the Objective-C DOM Event and CSS bindings
https://bugs.webkit.org/show_bug.cgi?id=160476

Reviewed by Tim Horton.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCSSCharsetRule.h: Added.
  • bindings/objc/DOMCSSCharsetRule.mm: Added.
  • bindings/objc/DOMCSSCharsetRuleInternal.h: Added.
  • bindings/objc/DOMCSSFontFaceRule.h: Added.
  • bindings/objc/DOMCSSFontFaceRule.mm: Added.
  • bindings/objc/DOMCSSFontFaceRuleInternal.h: Added.
  • bindings/objc/DOMCSSImportRule.h: Added.
  • bindings/objc/DOMCSSImportRule.mm: Added.
  • bindings/objc/DOMCSSImportRuleInternal.h: Added.
  • bindings/objc/DOMCSSMediaRule.h: Added.
  • bindings/objc/DOMCSSMediaRule.mm: Added.
  • bindings/objc/DOMCSSMediaRuleInternal.h: Added.
  • bindings/objc/DOMCSSPageRule.h: Added.
  • bindings/objc/DOMCSSPageRule.mm: Added.
  • bindings/objc/DOMCSSPageRuleInternal.h: Added.
  • bindings/objc/DOMCSSPrimitiveValue.h: Added.
  • bindings/objc/DOMCSSPrimitiveValue.mm: Added.
  • bindings/objc/DOMCSSPrimitiveValueInternal.h: Added.
  • bindings/objc/DOMCSSRule.h: Added.
  • bindings/objc/DOMCSSRule.mm: Added.
  • bindings/objc/DOMCSSRuleInternal.h: Added.
  • bindings/objc/DOMCSSRuleList.h: Added.
  • bindings/objc/DOMCSSRuleList.mm: Added.
  • bindings/objc/DOMCSSRuleListInternal.h: Added.
  • bindings/objc/DOMCSSStyleDeclaration.h: Added.
  • bindings/objc/DOMCSSStyleDeclaration.mm: Added.
  • bindings/objc/DOMCSSStyleDeclarationInternal.h: Added.
  • bindings/objc/DOMCSSStyleRule.h: Added.
  • bindings/objc/DOMCSSStyleRule.mm: Added.
  • bindings/objc/DOMCSSStyleRuleInternal.h: Added.
  • bindings/objc/DOMCSSStyleSheet.h: Added.
  • bindings/objc/DOMCSSStyleSheet.mm: Added.
  • bindings/objc/DOMCSSStyleSheetInternal.h: Added.
  • bindings/objc/DOMCSSUnknownRule.h: Added.
  • bindings/objc/DOMCSSUnknownRule.mm: Added.
  • bindings/objc/DOMCSSUnknownRuleInternal.h: Added.
  • bindings/objc/DOMCSSValue.h: Added.
  • bindings/objc/DOMCSSValue.mm: Added.
  • bindings/objc/DOMCSSValueInternal.h: Added.
  • bindings/objc/DOMCSSValueList.h: Added.
  • bindings/objc/DOMCSSValueList.mm: Added.
  • bindings/objc/DOMCSSValueListInternal.h: Added.
  • bindings/objc/DOMCounter.h: Added.
  • bindings/objc/DOMCounter.mm: Added.
  • bindings/objc/DOMCounterInternal.h: Added.
  • bindings/objc/DOMEvent.h: Added.
  • bindings/objc/DOMEvent.mm: Added.
  • bindings/objc/DOMEventInternal.h: Added.
  • bindings/objc/DOMEventListener.h: Added.
  • bindings/objc/DOMEventTarget.h: Added.
  • bindings/objc/DOMKeyboardEvent.h: Added.
  • bindings/objc/DOMKeyboardEvent.mm: Added.
  • bindings/objc/DOMKeyboardEventInternal.h: Added.
  • bindings/objc/DOMMouseEvent.h: Added.
  • bindings/objc/DOMMouseEvent.mm: Added.
  • bindings/objc/DOMMouseEventInternal.h: Added.
  • bindings/objc/DOMMutationEvent.h: Added.
  • bindings/objc/DOMMutationEvent.mm: Added.
  • bindings/objc/DOMMutationEventInternal.h: Added.
  • bindings/objc/DOMOverflowEvent.h: Added.
  • bindings/objc/DOMOverflowEvent.mm: Added.
  • bindings/objc/DOMOverflowEventInternal.h: Added.
  • bindings/objc/DOMProgressEvent.h: Added.
  • bindings/objc/DOMProgressEvent.mm: Added.
  • bindings/objc/DOMProgressEventInternal.h: Added.
  • bindings/objc/DOMRGBColor.h: Added.
  • bindings/objc/DOMRGBColor.mm: Added.
  • bindings/objc/DOMRGBColorInternal.h: Added.
  • bindings/objc/DOMRect.h: Added.
  • bindings/objc/DOMRect.mm: Added.
  • bindings/objc/DOMRectInternal.h: Added.
  • bindings/objc/DOMTextEvent.h: Added.
  • bindings/objc/DOMTextEvent.mm: Added.

(-[DOMTextEvent data]):
(-[DOMTextEvent initTextEvent:canBubbleArg:cancelableArg:viewArg:dataArg:]):

  • bindings/objc/DOMTextEventInternal.h: Added.
  • bindings/objc/DOMUIEvent.h: Added.
  • bindings/objc/DOMUIEvent.mm: Added.
  • bindings/objc/DOMUIEventInternal.h: Added.
  • bindings/objc/DOMWheelEvent.h: Added.
  • bindings/objc/DOMWheelEvent.mm: Added.
  • bindings/objc/DOMWheelEventInternal.h: Added.
5:00 PM Changeset in webkit [204053] by enrica@apple.com
  • 20 edits in trunk

Allow building with content filtering disabled.
https://bugs.webkit.org/show_bug.cgi?id=160454

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • platform/PlatformContentFilter.h:

(WebCore::PlatformContentFilter::unblockRequestDeniedScript):

  • platform/cocoa/NetworkExtensionContentFilter.h:
  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::unblockHandler):

  • platform/cocoa/ParentalControlsContentFilter.h:
  • testing/MockContentFilter.h:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::blockedByContentFilterError):

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<KeypressCommand>::decode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::decode):

  • WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

(WebKit::blockedByContentFilterError):

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:43 PM Changeset in webkit [204052] by dino@apple.com
  • 15 edits in trunk

Reapply fixes for webkit.org/b/159450 and webkit.org/b/157569
https://bugs.webkit.org/show_bug.cgi?id=160474
<rdar://problem/27668170>

Reviewed by Simon Fraser.

The fixes are behaviour we want. They just caused a regression
on medium.com (reverted in http://trac.webkit.org/r203380).

Now that we've branched, revert the reversion (which itself
was a reversion), so we can fix the actual bug:
https://bugs.webkit.org/show_bug.cgi?id=160478

Source/WebCore:

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::addPropertyWithPrefixingVariant):
(WebCore::CSSParser::parseTransitionShorthand):

  • css/CSSPropertyNames.in:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeShorthandProperty):
(WebCore::StyleProperties::asText):
(WebCore::MutableStyleProperties::removeProperty): Deleted.
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty): Deleted.
(WebCore::MutableStyleProperties::setProperty): Deleted.
(WebCore::getIndexInShorthandVectorForPrefixingVariant): Deleted.
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty): Deleted.
(WebCore::MutableStyleProperties::setPrefixingVariantProperty): Deleted.

  • css/StyleProperties.h:

LayoutTests:

  • animations/fill-mode-forwards-zero-duration.html:
  • animations/play-state-start-paused.html:
  • animations/script-tests/spring-parsing.js:

(testSpring):

  • animations/spring-parsing-expected.txt:
  • animations/unprefixed-properties-expected.txt:
  • animations/unprefixed-properties.html:
  • fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt:
  • fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt:
4:29 PM Changeset in webkit [204051] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.46

New tag.

4:03 PM Changeset in webkit [204050] by eric.carlson@apple.com
  • 8 edits
    2 adds in trunk

Cleanup HTMLMediaElement track lists.
https://bugs.webkit.org/show_bug.cgi?id=160470

Reviewed by David Kilzer.

Source/WebCore:

Test: media/range-extract-contents-crash.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::willRemove): ASSERT if media element is NULL.

  • html/track/TextTrackList.cpp:

(TextTrackList::clearElement): Clear track media element pointers and client.

  • html/track/TextTrackList.h:
  • html/track/TrackListBase.cpp:

(TrackListBase::~TrackListBase): Call clearElement.
(TrackListBase::clearElement): Clear track media element pointers and client.

  • html/track/TrackListBase.h:

LayoutTests:

  • media/range-extract-contents-crash-expected.txt: Added.
  • media/range-extract-contents-crash.html: Added.
3:59 PM Changeset in webkit [204049] by andersca@apple.com
  • 5 edits in trunk/Source/WebCore

Remove more Objective-C bindings that are not used
https://bugs.webkit.org/show_bug.cgi?id=160473

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCSS.mm:

(kitClass):

  • dom/Document.idl:
3:55 PM Changeset in webkit [204048] by Chris Dumez
  • 10 edits in trunk

Drop custom bindings for FormData.append()
https://bugs.webkit.org/show_bug.cgi?id=160466

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:

Source/WebCore:

Drop custom bindings for FormData.append(). We no longer need them now
that we have proper support for overloads after r204028.

This patch also fixes the fact that FormData.prototype.append.length
was 0 instead of 2.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMFormDataCustom.cpp:

(WebCore::JSDOMFormData::append): Deleted.

  • html/DOMFormData.cpp:

(WebCore::DOMFormData::append):

  • html/DOMFormData.h:
  • html/DOMFormData.idl:
  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData):

  • html/FormDataList.cpp:

(WebCore::FormDataList::appendBlob):

  • html/FormDataList.h:

(WebCore::FormDataList::Item::Item):
(WebCore::FormDataList::appendBlob):

3:42 PM Changeset in webkit [204047] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r203799.
https://bugs.webkit.org/show_bug.cgi?id=160467

Decided on a different solution (Requested by jonlee_ on
#webkit).

Reverted changeset:

"Captions do not render in PiP window when element is hidden"
https://bugs.webkit.org/show_bug.cgi?id=160265
http://trac.webkit.org/changeset/203799

3:23 PM Changeset in webkit [204046] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unused functions in URL
https://bugs.webkit.org/show_bug.cgi?id=160468

Reviewed by Geoffrey Garen.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::extractInnerURL):

  • platform/URL.cpp:

(WebCore::mimeTypeFromURL):
(WebCore::URL::stringCenterEllipsizedToLength):
(WebCore::URL::isSafeToSendToAnotherThread): Deleted.

  • platform/URL.h:

(WebCore::URL::operator NSString*):
(WebCore::URL::innerURL): Deleted.

3:23 PM Changeset in webkit [204045] by Chris Dumez
  • 14 edits in trunk

Named / Indexed properties should be configurable
https://bugs.webkit.org/show_bug.cgi?id=160457

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:

Source/WebCore:

Report Named / Indexed properties as being configurable to comply with
the Web IDL specification:

Firefox and Chrome also report them as being configurable.

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):

LayoutTests:

Update / rebaseline existing tests to reflect behavior change.

  • fast/dom/NodeList/nodelist-name-getter-properties-expected.txt:
  • fast/dom/NodeList/nodelist-name-getter-properties.html:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/resources/getOwnPropertyDescriptor.js:
3:16 PM Changeset in webkit [204044] by andersca@apple.com
  • 13 edits in trunk

Remove more unused/uninstalled Objective-C DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=160464

Reviewed by Darin Adler.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCSS.mm:

(kitClass):

  • bindings/objc/DOMEvents.h:
  • bindings/objc/DOMEvents.mm:

(kitClass): Deleted.

  • dom/Document.idl:

Source/WebKit/mac:

Stop installing unused headers.

  • MigrateHeaders.make:

LayoutTests:

Update test results.

  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
  • platform/mac/fast/dom/wrapper-classes-objc.html:
2:44 PM Changeset in webkit [204043] by Chris Dumez
  • 9 edits in trunk

[WebIDL] Extend new overload resolution algorithm support to constructors
https://bugs.webkit.org/show_bug.cgi?id=160455

Reviewed by Ryosuke Niwa.

Source/WebCore:

Extend new overload resolution algorithm support (added in r204028) to
constructors as well. It was only used for operations. Remove code that
is now dead from the bindings generator.

We now share the same code of generating the overload resolution code
for operations and constructors.

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGenerator.pm:

(LinkOverloadedFunctions):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOverloadedFunctionOrConstructor):
(GenerateImplementation):
(GenerateConstructorDefinitions):
(GenerateConstructorDefinition):
(GetFunctionLength): Deleted.
(LengthOfLongestFunctionParameterList): Deleted.
(GetNativeTypeForConversions): Deleted.
(GetGnuVTableNameForInterface): Deleted.
(GetGnuMangledNameForInterface): Deleted.
(GetGnuVTableOffsetForType): Deleted.
(GenerateConstructorHelperMethods): Deleted.

  • bindings/scripts/IDLParser.pm:

(applyExtendedAttributeList): Deleted.

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::construct):

  • bindings/scripts/test/TestOverloadedConstructors.idl:

LayoutTests:

Update / rebaseline existing test as we now provide slightly different
exception messages when given bad overloaded constructor parameters.

  • fast/canvas/canvas-imageData-expected.txt:
  • fast/canvas/script-tests/canvas-imageData.js:
2:33 PM Changeset in webkit [204042] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203917. rdar://problem/27430381

2:28 PM Changeset in webkit [204041] by beidson@apple.com
  • 5 edits in trunk

Removing IndexedDB WebsiteData can fail for some users.
https://bugs.webkit.org/show_bug.cgi?id=160463

Reviewed by Alex Christensen.

Source/WebCore:

Covered by changes to API test IndexedDB.StoreBlobThenDelete.

For a few months in trunk WebKit, deleting an IndexedDB using WebsiteDataStore API would only
delete the "IndexedDB.sqlite3" file, but would leave the "-wal" and "-shm" files behind.

We'd then fail to delete the directory itself, tricking API clients to think there are still
databases in the given origin.

Furthermore, the code to delete a database first checks for the existence of "IndexedDB.sqlite3"
then refuses to do any further cleanup if it doesn't exist.

We should just always run the entire delete procedure even if IndexedDB.sqlite does not exist.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::removeAllDatabasesForOriginPath):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::deleteDatabaseFile):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm:
2:17 PM Changeset in webkit [204040] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Mac CMake build.

  • PlatformMac.cmake:

Some ObjC bindings have been frozen.

2:15 PM Changeset in webkit [204039] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two media tests as flaky crashes on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=160367

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
1:26 PM Changeset in webkit [204038] by fred.wang@free.fr
  • 6 edits in trunk/Source/WebCore

More cleanup of MathML operator parsing
https://bugs.webkit.org/show_bug.cgi?id=160336

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

No new tests, behavior is unchanged.

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::parseMathMLLength): Deleted. This function is no longer used.

  • rendering/mathml/RenderMathMLBlock.h: Ditto.
  • rendering/mathml/RenderMathMLFencedOperator.h: Move some length members from

RenderMathMLOperator and override the accessors. Also override useMathOperator() since it is
always true for anonymous mfenced operators.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::textContent): No need to ASSERT !isAnonymous since this
function is overriden by RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::isInvisibleOperator): Use a temporary variable to call
textContent only once.
(WebCore::RenderMathMLOperator::leadingSpace): Helper function to determine the leading space.
(WebCore::RenderMathMLOperator::trailingSpace): Helper function to determine the trailing space.
(WebCore::RenderMathMLOperator::minSize): Helper function to determine the min space.
(WebCore::RenderMathMLOperator::maxSize): Helper function to determine the max space.
(WebCore::RenderMathMLOperator::setOperatorProperties): This is now only used to set m_isVertical.
(WebCore::RenderMathMLOperator::stretchTo): Call maxSize and minSize when necessary.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Call leadingSpace and trailingSpace.
(WebCore::RenderMathMLOperator::layoutBlock): Ditto.
(WebCore::RenderMathMLOperator::useMathOperator): Remove the case for anonymous operators as
this is now handled in the derived class.
(WebCore::RenderMathMLOperator::paint): Call leadingSpace.

  • rendering/mathml/RenderMathMLOperator.h: Remove length members and declare helper functions

to get these lengths from MathMLOperatorElement.
(WebCore::RenderMathMLOperator::setLeadingSpace): Deleted. This is no longer used.
(WebCore::RenderMathMLOperator::setTrailingSpace): Deleted. This is no longer used.

12:53 PM Changeset in webkit [204037] by fred.wang@free.fr
  • 9 edits in trunk

Move parsing of operator length attributes to MathMLOperatorElement
https://bugs.webkit.org/show_bug.cgi?id=160301

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

Source/WebCore:

We move parsing of operator attributes lspace, rspace minsize, maxsize into the class
MathMLOperatorElement. We rely on the existing MathMLElement::Length structure and expand
it to handle the "infinity" case of maxsize that we always resolve as intMaxForLayoutUnit.
We also improve the resolution of a negative value for minsize and maxsize since the MathML
recommendation says it should be rounded up to the nearest valid value (which is zero)
instead of ignoring the attribute and using the default value. This is similar to r203285
for mfrac@linethickness. We also update the existing test for minsize/maxsize to take into
account that change.

No new tests, already covered by existing tests.

  • mathml/MathMLElement.h: Add an "Infinity" type for MathML Length.
  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::leadingSpace): Helper function to retrieve the cached value
for the lspace attribute, parse it if necessary.
(WebCore::MathMLOperatorElement::trailingSpace): Ditto for rspace.
(WebCore::MathMLOperatorElement::minSize): Ditto for minsize.
(WebCore::MathMLOperatorElement::maxSize): Ditto for maxsize. This attribute also accepts the
"infinity" value.
(WebCore::MathMLOperatorElement::parseAttribute): Mark attributes dirty.

  • mathml/MathMLOperatorElement.h: Declare Length members and accessors.
  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::toUserUnits): Resolve Infinity as intMaxForLayoutUnit.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorProperties): We use toUserUnits to resolve the
lengths. Negative maxsize and minsize values now fallback to 0 instead of their default
values. We also remove the !isAnonymous() check since setOperatorProperties is overriden
in the RenderMathMLFencedOperator class.

LayoutTests:

  • mathml/presentation/stretchy-minsize-maxsize-expected.html: Update the test for negative

minsize and maxsize to align on the behavior suggested in the MathML recommendation.

  • mathml/presentation/stretchy-minsize-maxsize.html: Ditto.
12:23 PM Changeset in webkit [204036] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Unreviewed build error fix.

  • mathml/MathMLOperatorElement.cpp:

(WebCore::propertyFlagToAttributeName): Return a nullQName to avoid warnings on some platforms.

12:16 PM Changeset in webkit [204035] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Stop building Objective-C bindings that aren't exposed anywhere
https://bugs.webkit.org/show_bug.cgi?id=160458

Reviewed by Darin Adler.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
12:13 PM Changeset in webkit [204034] by Chris Dumez
  • 5 edits in trunk

HTMLCollection's named getter should only do 'name' attribute matching for HTMLElements
https://bugs.webkit.org/show_bug.cgi?id=160456

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:

Rebaseline. We are still failing but on the next check.

  • web-platform-tests/dom/nodes/Element-children-expected.txt:

Rebaseline now that one more check is passing.

Source/WebCore:

HTMLCollection's named getter should only do 'name' attribute matching for HTMLElements:

Our slow path which relies on HTMLCollection::updateNamedElementCache() does the right
thing. However, we have a fast path in
CachedHTMLCollection<HTMLCollectionClass, traversalType>::namedItem() that was missing a
check.

Firefox and Chrome both behave correctly here.

No new tests, rebaselined existing tests.

  • html/CachedHTMLCollection.h:

(WebCore::traversalType>::namedItem):

12:12 PM WebKitIDL edited by Chris Dumez
StrictTypeChecking no longer exists as of r204033 (diff)
12:11 PM Changeset in webkit [204033] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Kill [StrictTypeChecking] IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=160382

Reviewed by Darin Adler.

Kill [StrictTypeChecking] IDL extended attribute. Its only remaining
use was on DOMString parameters for a few CanvasRenderingContext2D
operations in order to work around a bug in our overload resolution.

However, as of r204028, we implement the Web IDL overload resolution
algorithm and [StrictTypeChecking] is now a no-op and is no longer
needed.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheckExpression):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
11:47 AM Changeset in webkit [204032] by fred.wang@free.fr
  • 8 edits in trunk/Source/WebCore

Move parsing of boolean operator properties into MathMLOperatorElement
https://bugs.webkit.org/show_bug.cgi?id=160190

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

No new tests, already covered by existing tests.

  • mathml/MathMLOperatorDictionary.h: Add a bit mask with all the property flags set.
  • mathml/MathMLOperatorElement.cpp:

(WebCore::attributeNameToPropertyFlag): helper function to map from attribute name to flag.
(WebCore::MathMLOperatorElement::computeOperatorFlag): Helper function to update one
bit of m_properties.flags from the corresponding boolean attribute. The default value is
taken from the operator dictionary data stored in m_dictionaryProperty.flags.
(WebCore::MathMLOperatorElement::hasProperty): Returns whether the operator has a property,
parsing it again if the corresponding attribute is dirty.
(WebCore::MathMLOperatorElement::childrenChanged): Make all properties dirty.
(WebCore::propertyFlagToAttributeName): helper function to map from flag to attribute name.
(WebCore::MathMLOperatorElement::parseAttribute): Make all properties dirty if the form
attribute changed. Make each property dirty when the corresponding attribute changed.
(WebCore::MathMLOperatorElement::flags): Deleted. Replaced with the finer hasProperty function.

  • mathml/MathMLOperatorElement.h: Define new structure, member and functions to handle

operator properties.

  • rendering/mathml/RenderMathMLFencedOperator.cpp:

(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Move m_operatorFlags from
the base class to the derived class.

  • rendering/mathml/RenderMathMLFencedOperator.h: Ditto.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Ditto.
(WebCore::RenderMathMLOperator::hasOperatorFlag): Just call hasOperatorFlag from the
MathMLOperatorElement class.
(WebCore::RenderMathMLOperator::setOperatorProperties): We do not initialize m_operatorFlags
since it has been removed from the base class. We also do not parse attributes since this
has been moved to the MathMLOperatorElement class.
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute): Deleted.
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue): Deleted.

  • rendering/mathml/RenderMathMLOperator.h: Move m_operatorFlags from the base class to the

derived class, remove some parsing helper functions and update hasOperatorFlag to make it
overridable.

10:42 AM Changeset in webkit [204031] by andersca@apple.com
  • 4 edits
    28 adds in trunk/Source/WebCore

Freeze another bunch of Objective-C binding files
https://bugs.webkit.org/show_bug.cgi?id=160435

Reviewed by Alex Christensen.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMAbstractView.h: Added.
  • bindings/objc/DOMAbstractView.mm:
  • bindings/objc/DOMAbstractViewInternal.h: Added.
  • bindings/objc/DOMMediaList.h: Added.
  • bindings/objc/DOMMediaList.mm: Added.
  • bindings/objc/DOMMediaListInternal.h: Added.
  • bindings/objc/DOMNodeFilter.h: Added.
  • bindings/objc/DOMNodeIterator.h: Added.
  • bindings/objc/DOMNodeIterator.mm: Added.
  • bindings/objc/DOMNodeIteratorInternal.h: Added.
  • bindings/objc/DOMRange.h: Added.
  • bindings/objc/DOMRange.mm: Added.
  • bindings/objc/DOMRangeInternal.h: Added.
  • bindings/objc/DOMStyleSheet.h: Added.
  • bindings/objc/DOMStyleSheet.mm: Added.
  • bindings/objc/DOMStyleSheetInternal.h: Added.
  • bindings/objc/DOMStyleSheetList.h: Added.
  • bindings/objc/DOMStyleSheetList.mm: Added.
  • bindings/objc/DOMStyleSheetListInternal.h: Added.
  • bindings/objc/DOMTreeWalker.h: Added.
  • bindings/objc/DOMTreeWalker.mm: Added.
  • bindings/objc/DOMTreeWalkerInternal.h: Added.
  • bindings/objc/DOMXPathExpression.h: Added.
  • bindings/objc/DOMXPathExpression.mm: Added.
  • bindings/objc/DOMXPathExpressionInternal.h: Added.
  • bindings/objc/DOMXPathNSResolver.h: Added.
  • bindings/objc/DOMXPathResult.h: Added.
  • bindings/objc/DOMXPathResult.mm: Added.
  • bindings/objc/DOMXPathResultInternal.h: Added.
10:27 AM Changeset in webkit [204030] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[MathML] Use more auto for local variables
https://bugs.webkit.org/show_bug.cgi?id=160453

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

No new tests, behavior is unchanged.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::colSpan):
(WebCore::MathMLElement::rowSpan):
(WebCore::MathMLElement::childShouldCreateRenderer):
(WebCore::MathMLElement::defaultEventHandler):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

10:03 AM Changeset in webkit [204029] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Attempt to fix build after r204014.

Unreviewed build fix.

  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponse):

10:02 AM Changeset in webkit [204028] by Chris Dumez
  • 32 edits in trunk

[WebIDL] Implement overload resolution algorithm
https://bugs.webkit.org/show_bug.cgi?id=160394

Reviewed by Darin Adler.

Source/WebCore:

Implement overload resolution algorithm:

This means that our support for operation overloading in our IDL is
now a lot more extensive than it used to be and is now compliant with
the Web IDL specification.

In particular, overloading should now work for a lot more parameter
types which means that:

  • We should be able to drop some custom bindings code in a follow-up patch.
  • We will be able to drop the [StrictTypeChecking] attribute which was a hack used to make overloading work for parameters of type DOMString.

Also, the order of the overloads in the IDL no longer impacts the
generated bindings code. It used to be that you needed to put the
overloads with the more specific parameter types first in order for the
generated bindings code to be somewhat correct.

No new tests, rebaselined bindings tests.

  • bindings/scripts/CodeGenerator.pm:

(IsStringOrEnumType):

  • bindings/scripts/CodeGeneratorJS.pm:

(IsNullableType):
(StripNullable):
(ComputeEffectiveOverloadSet):
(AreTypesDistinguishableForOverloadResolution):
(GetDistinguishingArgumentIndex):
(GetOverloadThatMatches):
(GenerateOverloadedFunction):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12): Deleted.
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise): Deleted.

  • bindings/scripts/test/TestObj.idl:
  • dom/EventTarget.h:
  • dom/EventTarget.idl:
  • html/HTMLOptionsCollection.h:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.h:

(WebCore::HTMLSelectElement::add):

  • html/HTMLSelectElement.idl:

LayoutTests:

Update / Rebaseline existing test. There is no major behavior change.
We sometimes get a different exception message than we used to.

  • fast/canvas/canvas-clip-path-expected.txt:
  • fast/canvas/canvas-fill-path-expected.txt:
  • fast/canvas/canvas-path-addPath-expected.txt:
  • fast/canvas/canvas-path-isPointInPath-expected.txt:
  • fast/canvas/canvas-path-isPointInStroke-expected.txt:
  • fast/canvas/canvas-putImageData-expected.txt:
  • fast/canvas/canvas-putImageData.js:
  • fast/canvas/canvas-stroke-path-expected.txt:
  • fast/canvas/webgl/script-tests/texImageTest.js:
  • fast/canvas/webgl/texImageTest-expected.txt:
  • fast/dom/HTMLSelectElement/add-expected.txt:
  • fast/dom/HTMLSelectElement/add.html:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add.html:
  • fast/dom/incompatible-operations-expected.txt:
  • js/dom/select-options-add-expected.txt:
  • webaudio/audiobuffer-expected.txt:
  • webaudio/audiobuffer.html:
  • webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-invalid-data.html:
9:57 AM Changeset in webkit [204027] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Guard workaround in r203314 for only OSes which need it
https://bugs.webkit.org/show_bug.cgi?id=160440

Reviewed by Simon Fraser.

The workarond introduced in r203314 only needs to be applied on
certain OSes.

No new tests because there is no behavior change.

  • platform/text/mac/TextBoundaries.mm:

(WebCore::findNextWordFromIndex):

8:46 AM Changeset in webkit [204026] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove CachedResourceRequest initiatingDocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=160449

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

No change of behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): Removing call to setInitiator.

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setInitiator): Deleted.

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::initiatingDocumentLoader): Deleted.

8:37 AM Changeset in webkit [204025] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Disable Inline Caching on ARMv7 traditional until proper fix
https://bugs.webkit.org/show_bug.cgi?id=159759

Reviewed by Saam Barati.

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateInline):

8:15 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
6:22 AM Changeset in webkit [204024] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Update test expectations on Windows for many failing tests. These failures are tracked in
https://bugs.webkit.org/show_bug.cgi?id=160447.

  • platform/win/TestExpectations:
5:45 AM Changeset in webkit [204023] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Skip fetch API worker tests in Debug mode
https://bugs.webkit.org/show_bug.cgi?id=160448

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-02

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt: Rebasing

LayoutTests:

4:28 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
4:27 AM Changeset in webkit [204022] by fred.wang@free.fr
  • 10 edits in trunk/Source/WebCore

Move parsing of the form attribute to MathMLOperatorElement
https://bugs.webkit.org/show_bug.cgi?id=160239

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-28
Reviewed by Darin Adler.

We move the parsing of the mo@form attribute to the MathMLOperatorElement class. Note that
when the attribute is not explicit, the form may also be guessed by searching into the
operator dictionary. Hence we also start moving the determination of the default dictionary
properties. Moving the actual parsing of the corresponding attributes will be done in
follow-up commits.

No new tests, already covered by existing tests.

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::childrenChanged): Make the form of operators dirty
if its siblings have changed.

  • mathml/MathMLOperatorDictionary.cpp:

(WebCore::MathMLOperatorDictionary::search): Merge old getEntry functions into one helper
function that returns an Optional<Entry>.
(WebCore::MathMLOperatorDictionary::getEntry): Deleted

  • mathml/MathMLOperatorDictionary.h: Declare MathMLOperatorDictionary::find.
  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::dictionaryProperty): We determine the operator form by
parsing the corresponding attribute or by using heuristics if that attribute is not
specified. We also read dictionary the corresponding dictionary properties.
(WebCore::MathMLOperatorElement::flags): Return the flags read from the dictionary.
(WebCore::MathMLOperatorElement::defaultLeadingSpace): Return the space read from the dictionary.
(WebCore::MathMLOperatorElement::defaultTrailingSpace): Return the space read from the dictionary.
(WebCore::MathMLOperatorElement::childrenChanged): Make the dictionary properties dirty.
(WebCore::MathMLOperatorElement::parseAttribute): Make the dictionary properties dirty when
the form changes.

  • mathml/MathMLOperatorElement.h: New member to store dictionary properties and expose them.
  • rendering/mathml/RenderMathMLFencedOperator.cpp:

(WebCore::RenderMathMLFencedOperator::setOperatorProperties): We implement the case specific
to anonymous mfenced operators here.

  • rendering/mathml/RenderMathMLFencedOperator.h: Move the m_operatorForm member here and

declare the overriden function setOperatorProperties.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorProperties): Simplify this code since the logic
has been moved to the element classes.
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry): Deleted.

  • rendering/mathml/RenderMathMLOperator.h: Remove setOperatorPropertiesFromOpDictEntry, make

members accessible to RenderMathMLFencedOperator and remove m_operatorForm.

2:43 AM Changeset in webkit [204021] by fred.wang@free.fr
  • 17 edits in trunk/Source/WebCore

Use Optional members to store parsed MathML attributes.
https://bugs.webkit.org/show_bug.cgi?id=160400

Patch by Frederic Wang <fwang.igalia.com> on 2016-08-02
Reviewed by Darin Adler.

Parsed MathML attributes are stored on the element classes using the memoize pattern to
minimize the number of parsing updates. Currently, a dirty flag for each member
indicate when it must be parsed again. We change this to wrap these members into an
Optional<T> container instead, where a null value indicates that the member is dirty.

No new tests, behavior is unchanged.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::cachedMathMLLength):
(WebCore::MathMLElement::cachedBooleanAttribute):
(WebCore::MathMLElement::parseMathVariantAttribute):
(WebCore::MathMLElement::specifiedDisplayStyle):
(WebCore::MathMLElement::specifiedMathVariant):

  • mathml/MathMLElement.h:
  • mathml/MathMLFractionElement.cpp:

(WebCore::MathMLFractionElement::lineThickness):
(WebCore::MathMLFractionElement::cachedFractionAlignment):
(WebCore::MathMLFractionElement::parseAttribute):

  • mathml/MathMLFractionElement.h:
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::parseAttribute):

  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::specifiedDisplayStyle):
(WebCore::MathMLMathElement::parseAttribute):

  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::operatorText):

  • mathml/MathMLPaddedElement.cpp:

(WebCore::MathMLPaddedElement::parseAttribute):

  • mathml/MathMLPaddedElement.h:
  • mathml/MathMLScriptsElement.cpp:

(WebCore::MathMLScriptsElement::parseAttribute):

  • mathml/MathMLScriptsElement.h:
  • mathml/MathMLSpaceElement.cpp:

(WebCore::MathMLSpaceElement::parseAttribute):

  • mathml/MathMLSpaceElement.h:
  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute):

  • mathml/MathMLUnderOverElement.cpp:

(WebCore::MathMLUnderOverElement::parseAttribute):

  • mathml/MathMLUnderOverElement.h:
  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::resolveMathMLStyle):

  • rendering/mathml/MathMLStyle.h:
  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::mathVariant):
(WebCore::RenderMathMLToken::updateMathVariantGlyph):

1:07 AM Changeset in webkit [204020] by commit-queue@webkit.org
  • 8 edits
    5 adds in trunk

[Fetch API] Fetch promises should not reject or resolve when ActiveDOMObjects are being stopped
https://bugs.webkit.org/show_bug.cgi?id=160420

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/worker-expected.txt: Added.

Source/WebCore:

Test: http/tests/fetch/fetch-in-worker-crash.html

Promises should not be rejected when FetchResponse/FetchRequest are stopped as ActiveDOMObject.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::cleanConsumePromise): Allowing to nullify the promise used to consume body.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::stop): Nullifying the body consume promise if any.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::stop): Nullifying the fetch promise if any.

LayoutTests:

  • TestExpectations:
  • http/tests/fetch/fetch-in-worker-crash-expected.txt: Added.
  • http/tests/fetch/fetch-in-worker-crash.html: Added.
  • http/tests/fetch/fetch-in-worker.js: Added.

(onmessage):

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
12:20 AM Changeset in webkit [204019] by commit-queue@webkit.org
  • 23 edits
    5 adds in trunk

[Fetch API] Add support to ReferrerPolicy
https://bugs.webkit.org/show_bug.cgi?id=160404

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/referrer-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/referrer-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/referrer-worker.html: Added.
  • web-platform-tests/fetch/api/basic/referrer.html: Added.
  • web-platform-tests/fetch/api/basic/referrer.js: Added.

(runTest):

  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:

(corsPreflightReferrer): fix infrastructure bug in test and fix expected referrer policy in default case.

  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/basic/referrer-worker.html

imported/w3c/web-platform-tests/fetch/api/basic/referrer.html

Refactored ThreadableLoader API to take more references.

Updated loading code in CachedResource to take into account referrer policy, that can be set by fetch API.
To enable correct handling of OriginWhenCrossOrigin policy, the computation of the cross-origin status of a request is
moved from ResourceLoader to CachedResource.

Referrer is passed to the loading code through HTTP headers.
This was triggering preflighting for Workers request as WorkerThreadableLoader was setting the referrer.
It is now done in DocumentThreadableLoader::loadRequest so that preflighting is done before setting the referrer.
Note that this referrer setting is only a way to pass a specific referrer value to the loading code.
CachedResource code will compute the actual referer value based on the referrer policy.
It might be good in the future to have a different way of conveying this information to CachedResource, maybe
through CachedResourceRequest.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Refactoring of ThreadableLoader API.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::internalRequest): Setting referrer if it has a specific value.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): Ractoring of ThreadableLoader API.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight): Set referrer in the preflight request if any.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously): Refactoring of ThreadableLoader API.
(WebCore::DocumentThreadableLoader::create): Ditto.
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Ditto.
(WebCore::DocumentThreadableLoader::loadRequest): Ditto.

  • loader/DocumentThreadableLoader.h:

(WebCore::DocumentThreadableLoader::referrer): Storing referrer in case one is defined.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init): Removing of cross origin computation since it is done earlier in CachedResource.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create): Refactoring of ThreadableLoader API.
(WebCore::ThreadableLoader::loadResourceSynchronously): Ditto.

  • loader/ThreadableLoader.h:
  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::create): Ditto.
(WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper): Ditto.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader): Ditto.
(WebCore::WorkerThreadableLoader::loadResourceSynchronously): Removing setting of referrer in header and passing
it as a parameter.
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Ditto.

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create): Refactoring of ThreadableLoader API.

  • loader/cache/CachedResource.cpp:

(WebCore::addAdditionalRequestHeadersToRequest): Computation of referrer based on referrer policy.
(WebCore::CachedResource::addAdditionalRequestHeaders): Ditto.
(WebCore::CachedResource::load): Computation of cross origin status.
(WebCore::CachedResource::varyHeaderValuesMatch):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::options):

  • page/EventSource.cpp:

(WebCore::EventSource::connect): Refactoring of ThreadableLoader API.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously): Ditto.
(WebCore::WorkerScriptLoader::loadAsynchronously): Ditto.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Ditto.

12:19 AM Changeset in webkit [204018] by beidson@apple.com
  • 25 edits
    2 adds in trunk/Source

Refactor data passed along for a "GetRecord" request.
https://bugs.webkit.org/show_bug.cgi?id=160352

Reviewed by Tim Horton.

Source/WebCore:

No new tests (No behavior change).

Adding this new object lets us easily add new data passed along for GetRecord
requests going forward.

  • WebCore.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::getRecordOnServer):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::getRecord):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getRecord):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getRecord):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::getRecord):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/IDBGetRecordData.cpp: Added.

(WebCore::IDBGetRecordData::isolatedCopy):

  • Modules/indexeddb/shared/IDBGetRecordData.h: Added.

(WebCore::IDBGetRecordData::encode):
(WebCore::IDBGetRecordData::decode):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::getRecord):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::getRecord):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getRecord):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

Aug 1, 2016:

11:51 PM Changeset in webkit [204017] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/JavaScriptCore

Merge r204010. rdar://problem/27534844

11:51 PM Changeset in webkit [204016] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-602-branch

Merge r203990. rdar://problem/27534844

11:51 PM Changeset in webkit [204015] by bshafiei@apple.com
  • 5 edits
    3 adds in branches/safari-602-branch

Merge r203985. rdar://problem/26310261

11:46 PM Changeset in webkit [204014] by commit-queue@webkit.org
  • 34 edits in trunk/Source/WebCore

[Fetch API] Pass directly FetchRequest fetch options to ThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160407

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-01
Reviewed by Sam Weinig.

No change of behavior.

Added a ResourceLoaderOptions constructor that takes a FetchOptions as input.
Removed setters and getters of ResourceLoaderOptions as it is a struct.
Updated member fields accordingly.

Updated code accordingly.
Removed explicit option setting if it is the same as the default value.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::cachedFont):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cachedImage):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
(WebCore::CrossOriginPreflightChecker::startPreflight):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::setDataBufferingPolicy):
(WebCore::ResourceLoader::addDataOrBuffer):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveDataOrBuffer):
(WebCore::ResourceLoader::didFinishLoadingOnePart):
(WebCore::ResourceLoader::cleanupForError):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
(WebCore::ResourceLoader::setSendCallbackPolicy):
(WebCore::ResourceLoader::shouldSniffContent):
(WebCore::ResourceLoader::shouldIncludeCertificateInfo):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::sendLoadCallbacks): Deleted.
(WebCore::ResourceLoaderOptions::setSendLoadCallbacks): Deleted.
(WebCore::ResourceLoaderOptions::sniffContent): Deleted.
(WebCore::ResourceLoaderOptions::setSniffContent): Deleted.
(WebCore::ResourceLoaderOptions::dataBufferingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setDataBufferingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::allowCredentials): Deleted.
(WebCore::ResourceLoaderOptions::setAllowCredentials): Deleted.
(WebCore::ResourceLoaderOptions::securityCheck): Deleted.
(WebCore::ResourceLoaderOptions::setSecurityCheck): Deleted.
(WebCore::ResourceLoaderOptions::certificateInfoPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setCertificateInfoPolicy): Deleted.
(WebCore::ResourceLoaderOptions::contentSecurityPolicyImposition): Deleted.
(WebCore::ResourceLoaderOptions::setContentSecurityPolicyImposition): Deleted.
(WebCore::ResourceLoaderOptions::defersLoadingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setDefersLoadingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::cachingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setCachingPolicy): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::setDataBufferingPolicy):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::shouldSendResourceLoadCallbacks):
(WebCore::CachedResource::dataBufferingPolicy):
(WebCore::CachedResource::allowsCaching):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::allowsCaching):

  • loader/cache/CachedResourceRequestInitiators.cpp:

(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):

  • loader/cache/CachedResourceRequestInitiators.h:
  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponse):
(WebCore::ResourceLoader::didReceiveDataArray):

  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage):
(WebCore::Style::loadPendingSVGFilters):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::requestImageResource):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::loadFont):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateExternalDocument):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

11:42 PM Changeset in webkit [204013] by Carlos Garcia Campos
  • 31 edits
    1 move
    3 adds
    1 delete in trunk/Source

[GTK] Move the redirected XComposite window to the web process
https://bugs.webkit.org/show_bug.cgi?id=160389

Reviewed by Žan Doberšek.

Source/WebCore:

Add helper methods to PlatformDisplayX11 to query X extensions supported by the display.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsXComposite):
(WebCore::PlatformDisplayX11::supportsXDamage):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit2:

In the current code, the UI process creates the redirected window that the web process uses to render
accelerated contents. The redirected window is sent to the web process as native surface handle, and using
XDamage extension the UI process takes a pixmap of the redirected window to render into the widget when there
are updates. This requires several points of synchronization between UI and web processes. When the web view is
resized, the UI process first resizes the redirected window and then sends a new backing store ID to the web
process. The time between the redirected window is resized and the web process renders the new contents the UI
process keeps rendering the previous contents with the previous size in the new window with the new size. This
makes the resize process slow, and it produces rendering artifacts quite often. The redirected window is created
when the web view is realized, to be able to inherit the XVisual from the parent window, and the native window
handle is sent to the web process. The time until the window is realized, the web process doesn't have a context
to render into, so the UI process simply renders an empty page. When the web view is unrealized, for example if
the web view is reparented, the redirected window is destroyed, and a sync message is sent to the web process to
destroy the current gl context and stop drawing. This needs to happen synchronously, because the UI process
can't remove the redirected window until the web process has stopped rendering into it. This makes also the
reparenting process quite unstable and risky.
To all those synchronization points we now have to add the synchronization with the compositing thread when
using the threaded compositor. The threaded compositor made resizing, reparenting, etc. even worse. We can't
avoid the synchronization with the threaded compositor, but we can reduce the synchronization points and improve
the current ones by moving the redirected window to the web process. In this case is web process who creates the
redirected window, so we can be sure that it always has a valid native surface handle to render into. This means
we no longer need the IPC message to send the native surface handle from the UI process to the web process, nor
the sync message to destroy it either. This also means we no longer need to wait until the view is realized to
start rendering accelerated contents, and we don't need to stop when it's unrealized either. We don't really
need to inherit the XVisual from the parent window if the redirected window always uses always a RGBA visual
when available. That way we always render into a transparent window that is composed into the web view
widget. And when the web view is resized, we no longer need to destroy the GL context either, because we use the
same redirected window as the native handle, but create a new pixmap that is what we send to the UI process as
layer tree context ID. The layer tree context ID is already sent to the UI process by the drawing area as part
of the backing store update process, so we don't need any new IPC message for this. When the web view is
resized, the UI process sends a backing store state update message to the web process that updates its size,
relayouts and then renders the new contents, so that when the update backing store state reply gets to the UI
process, we already have a new pixmap with the new contents updated. This makes resizing smooth again, and
avoids flickering and rendering artifacts. And finally all this also prevents several race conditions that were
causing X errors and web process crashes.

  • PlatformGTK.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Make it possible to optionally pass a native surface handle for
compositing to the ThreadedCompositor contructor.
(WebKit::ThreadedCompositor::ThreadedCompositor): Initialize the native surface handle and make the scene active
after the thread initialization if we already have a valid handle.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Pass the layer tree context ID to the web view.
(WebKit::PageClientImpl::updateAcceleratedCompositingMode): Notify the web view about the update.
(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetAcceleratedCompositingPixmap): Helper function to update the pixmap used to render the
accelerated contents.
(webkitWebViewBaseRealize): Remove the code to create the redirected window.
(webkitWebViewBaseUnrealize): Remove the code to destroy the redirected window.
(webkitWebViewBaseDispose): Reset the accelerated compositing pixmap.
(webkitWebViewRenderAcceleratedCompositingResults): Use the accelerated compositing pixmap surface.
(webkitWebViewBaseSizeAllocate): Remove the code to resize the redirected window.
(webkitWebViewBaseEnterAcceleratedCompositingMode): Update the accelerated compositing pixmap.
(webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseExitAcceleratedCompositingMode): Reset the accelerated compositing pixmap.
(webkitWebViewBaseDidRelaunchWebProcess): Remove the code to send native surface handle to the web process.
(webkitWebViewBasePageClosed): Reset the accelerated compositing pixmap.
(_WebKitWebViewBasePrivate::updateViewStateTimerFired): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/DrawingAreaProxy.messages.in:
  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): Handle the case when the layer tree context ID
changes without leaving the accelerated compositing mode, calling updateAcceleratedCompositingMode().
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Let the web view know we are leaving accelerated
compositing mode even when it's forced, since in case of web process crash we need to leave the accelerated
compositing mode in the UI process.
(WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode): This message was added only to prepare the
redirected window when the web process was about to enter accelerated compositing mode, so it's no longer needed.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/WebView.h:
  • UIProcess/gtk/RedirectedXCompositeWindow.cpp: Removed.
  • UIProcess/gtk/XDamageNotifier.cpp: Helper class to be notified about XDamage events.

(WebKit::XDamageNotifier::singleton):
(WebKit::XDamageNotifier::XDamageNotifier):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::notify):

  • UIProcess/gtk/XDamageNotifier.h: Added.
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Remove code to send
WillEnterAcceleratedCompositingMode message.
(WebKit::AcceleratedDrawingArea::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Create a redirected window and
pass the window ID as native surface handle to the threaded compositor. Use the redirected window pixmap as
layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Destroy the redirected window.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Resize the redirected window and
update the layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Create a redirected window and texture mapper that uses the window
ID as native surface handle. Use the redirected window pixmap as layer tree context.
(WebKit::LayerTreeHostGtk::makeContextCurrent): Use the redirected window as native handle.
(WebKit::LayerTreeHostGtk::invalidate): Destroy the redirected window.
(WebKit::LayerTreeHostGtk::sizeDidChange): Resize the redirected window and update the layer tree context.
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::LayerTreeHostGtk::createTextureMapper): Helper function to create the texture mapper.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Use createTextureMapper().

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp: Added.

(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):

  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.h: Renamed from Source/WebKit2/UIProcess/gtk/RedirectedXCompositeWindow.h.

(WebKit::RedirectedXCompositeWindow::window):
(WebKit::RedirectedXCompositeWindow::pixmap):

11:00 PM Changeset in webkit [204012] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:40 PM Changeset in webkit [204011] by Carlos Garcia Campos
  • 10 edits in trunk/Source/WebKit2

Database Process: ASSERTION FAILED: filePaths.size() == result.handles().size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160398

Reviewed by Brady Eidson.

Same assert as in bug #160188, but this time in preregisterSandboxExtensionsIfNecessary.

  • DatabaseProcess/DatabaseProcess.cpp:
  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::handleGetResult):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):

  • UIProcess/Databases/DatabaseProcessProxy.cpp:
  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Databases/DatabaseProcessProxy.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::preregisterSandboxExtensionsIfNecessary):

10:38 PM Changeset in webkit [204010] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

REGRESSION (r203990): JSC Debug test stress/arity-check-ftl-throw.js failing
https://bugs.webkit.org/show_bug.cgi?id=160438

Reviewed by Mark Lam.

In r203990 I fixed a bug where CommonSlowPaths.h/arityCheckFor() was basically failing at
catching stack overflow due to large parameter count. It would only catch regular old stack
overflow, like if the frame pointer was already past the limit.

This had a secondary problem: unfortunately all of our tests for what happens when you overflow
the stack due to large parameter count were not going down that path at all, so we haven't had
test coverage for this in ages. There were bugs in all tiers of the engine when handling this
case.

We need to be able to roll back the topCallFrame on paths that are meant to throw an exception
from the caller. Otherwise, we'd crash in StackVisitor because it would see a busted stack
frame. Rolling back like this "just works" except when the caller is the VM entry frame. I had
some choices here. I could have forced anyone who is rolling back to always skip VM entry
frames. They can't do it in a way that changes the value of VM::topVMEntryFrame, which is what
a stack frame roll back normally does, since exception unwinding needs to see the current value
of topVMEntryFrame. So, we have a choice to either try to magically avoid all of the paths that
look at topCallFrame, or give topCallFrame a state that unambiguously signals that we are
sitting right on top of a VM entry frame without having succeeded at making a JS call. The only
place that really needs to know is StackVisitor, which wants to start scanning at topCallFrame.
To signal this, I could have either made topCallFrame point to the real top JS call frame
without also rolling back topVMEntryFrame, or I could make topCallFrame == topVMEntryFrame. The
latter felt somehow cleaner. I filed a bug (https://bugs.webkit.org/show_bug.cgi?id=160441) for
converting topCallFrame to a void*, which would give us a chance to harden the rest of the
engine against this case.

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::StackVisitor):
We may do ShadowChicken processing, which invokes StackVisitor, when we have topCallFrame
pointing at topVMEntryFrame. This teaches StackVisitor how to handle this case. I believe that
StackVisitor is the only place that needs to be taught about this at this time, because it's
one of the few things that access topCallFrame along this special path.

  • jit/JITOperations.cpp: Roll back the top call frame.
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL): Roll back the top call frame.

10:02 PM Changeset in webkit [204009] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[JSC][ARM64] Fix branchTest32/64 taking an immediate as mask
https://bugs.webkit.org/show_bug.cgi?id=160439

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-01
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchTest64):

  • b3/air/AirOpcode.opcodes:

Fix the ARM64 codegen to lower BitImm64 without using a scratch register.

Source/WTF:

  • wtf/MathExtras.h:

(getLSBSet):
This was not working at all for MacroAssembler.
Since TrustedImm32/64 are signed integers, the arithmetic shift would
never get rid of the top bit and we get an infinite loop.

8:59 PM Changeset in webkit [204008] by commit-queue@webkit.org
  • 11 edits in trunk

_WKDownloadDelegate.didReceiveResponse should be called before decideDestinationWithSuggestedFilename
https://bugs.webkit.org/show_bug.cgi?id=160437
<rdar://problem/27578272>

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-01
Reviewed by Brady Eidson.

Source/WebKit2:

This preserves the behavior of the NSURLConnection/NSURLDownload code path.
decideDestinationWithSuggestedFilename might need some information from the didReceiveResponse callback
in order to decide what the suggested filename should be.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::didReceiveAuthenticationChallenge):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::setPendingDownloadID):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):

  • NetworkProcess/NetworkLoad.h:

(WebKit::NetworkLoad::pendingDownloadID):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:

(-[DownloadDelegate _download:didReceiveResponse:]):
(-[DownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
(runTest):
Add a boolean to make sure that didReceiveResponse is called before decideDestinationWithSuggestedFilename.

6:50 PM Changeset in webkit [204007] by clopez@igalia.com
  • 2 edits in trunk/Tools

[Tools] The GDB backtrace report tool don't checks the gdb return code.
https://bugs.webkit.org/show_bug.cgi?id=160414

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._wait_for_corefile):

6:44 PM Changeset in webkit [204006] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Shrink MediaQuerySets to fit after parsing.
<https://webkit.org/b/160419>

Reviewed by Antti Koivisto.

Add shrinkToFit() helpers to MediaQuerySet and MediaQuery
and call it after parsing to remove extra capacity from their
internal vectors.

This reduces memory usage by 1.24MB on theverge.com.

  • css/CSSParser.cpp:

(WebCore::CSSParser::createMediaRule):

  • css/MediaList.cpp:

(WebCore::MediaQuerySet::parse):
(WebCore::MediaQuerySet::shrinkToFit):

  • css/MediaList.h:
  • css/MediaQuery.h:

(WebCore::MediaQuery::shrinkToFit):

6:39 PM Changeset in webkit [204005] by timothy_horton@apple.com
  • 5 edits
    2 adds in trunk

<attachment> action label doesn't wrap, but needs to for some localizations
https://bugs.webkit.org/show_bug.cgi?id=160431
<rdar://problem/27526464>

Reviewed by Simon Fraser.

Test: fast/attachment/attachment-wrapping-action.html

  • rendering/RenderThemeIOS.mm:

(WebCore::AttachmentInfo::buildWrappedLines):
(WebCore::AttachmentInfo::AttachmentInfo):
(WebCore::AttachmentInfo::buildTitleLines): Deleted.
Rework buildTitleLines into buildWrappedLines so that we have a
generic way to add lines that wrap up to N lines and then center-truncate.

Make use of it for the action text, and follow the same rules/width as
the title text already does.

  • fast/attachment/attachment-wrapping-action-expected-mismatch.html: Added.
  • fast/attachment/attachment-wrapping-action.html: Added.

Add a test that ensures that the action label wraps by filling one with
non-breaking and breaking spaces, which will wrap onto two lines, and one
with just a single space, which will always fit in one line, and ensuring
that they do not match.

5:31 PM Changeset in webkit [204004] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[iOS] Fix fast/events/touch/document-create-touch-list-ios.html
https://bugs.webkit.org/show_bug.cgi?id=160429

Reviewed by Ryosuke Niwa.

Fix several bugs in fast/events/touch/document-create-touch-list-ios.html:

  1. Use proper parameters to TouchEvent.initTouchEvent() so that it no longer throws.
  2. For the check testing passing bad parameters to createTouchList(), print PASS if it throws instead of FAIL since this is the expected behavior.
  • fast/events/touch/document-create-touch-list-ios-expected.txt:
  • fast/events/touch/script-tests/document-create-touch-list-ios.js:

(catch): Deleted.

5:27 PM Changeset in webkit [204003] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r204002.

2016-08-01 Alexey Proskuryakov <ap@apple.com>

Sierra test expectations gardening for editing/input/password-echo-textnode.html.

  • platform/mac/TestExpectations:
5:19 PM Changeset in webkit [204002] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Sierra test expectations gardening for editing/input/password-echo-textnode.html.

  • platform/mac/TestExpectations:
5:11 PM Changeset in webkit [204001] by andersca@apple.com
  • 4 edits in trunk/Source

Source/WebCore:
Build fix.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit/mac:
Bring back a file - it needs to be copied by WebCore.

  • MigrateHeaders.make:
4:51 PM Changeset in webkit [204000] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove another file.

  • MigrateHeaders.make:
4:47 PM Changeset in webkit [203999] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.45

New tag.

4:45 PM Changeset in webkit [203998] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Roll out r203799. rdar://problem/27556788

4:37 PM Changeset in webkit [203997] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove a file.

  • MigrateHeaders.make:
4:22 PM Changeset in webkit [203996] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[B3] Fusing immediates into test instructions should work again
https://bugs.webkit.org/show_bug.cgi?id=160073

Reviewed by Sam Weinig.

When we introduced BitImm, we forgot to change the Branch(BitAnd(value, constant))
fusion. This emits test instructions, so it should use BitImm for the constant. But it
was still using Imm! This meant that isValidForm() always returned false.

This fixes the code path to use BitImm, and turns off our use of BitImm64 on x86 since
it provides no benefit on x86 and has some risk (the code appears to play fast and loose
with the scratch register).

This is not an obvious progression on anything, so I added comprehensive tests to
testb3, which check that we selected the optimal instruction in a variety of situations.
We should add more tests like this!

Rolling this back in after fixing ARM64. The bug was that branchTest32|64 on ARM64 doesn't
actually support BitImm or BitImm64, at least not yet. Disabling that in AirOpcodes makes
this patch not a regression on ARM64. That change was reviewed by Benjamin Poulain.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

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

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::castToType):
(JSC::B3::Air::Arg::asNumber):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::compileAndRun):
(JSC::B3::lowerToAirForTesting):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testBranchBitAndImmFusion):
(JSC::B3::zero):
(JSC::B3::run):

4:21 PM Changeset in webkit [203995] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another build fix.

  • WebCore.xcodeproj/project.pbxproj:
4:04 PM Changeset in webkit [203994] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't set width:calc(100% - 0px); left:0px on console messages
https://bugs.webkit.org/show_bug.cgi?id=160428
<rdar://problem/27646033>

Reviewed by Timothy Hatcher.

Console messages inside console.group() are indented. Console messages outside of
console.group() aren't and there is no reason to set inline styles that do nothing
on each one of them.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):

3:51 PM Changeset in webkit [203993] by andersca@apple.com
  • 11 edits
    13 copies
    1 move
    4 adds in trunk/Source/WebCore

Freeze the last of the HTML Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160430

Reviewed by Tim Horton.

Also, remove a bunch of form validation related methods that were never exposed/used.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMBlob.h: Added.
  • bindings/objc/DOMBlob.mm: Added.
  • bindings/objc/DOMBlobInternal.h: Added.
  • bindings/objc/DOMDOMTokenList.h: Added.
  • bindings/objc/DOMDOMTokenList.mm: Added.
  • bindings/objc/DOMDOMTokenListInternal.h: Added.
  • bindings/objc/DOMFile.h: Added.
  • bindings/objc/DOMFile.mm: Added.
  • bindings/objc/DOMFileInternal.h: Added.
  • bindings/objc/DOMFileList.h: Added.
  • bindings/objc/DOMFileList.mm: Added.
  • bindings/objc/DOMFileListInternal.h: Added.
  • bindings/objc/DOMHTMLButtonElement.mm:
  • bindings/objc/DOMHTMLFieldSetElement.mm:
  • bindings/objc/DOMHTMLInputElement.mm:
  • bindings/objc/DOMHTMLInputElementPrivate.h:
  • bindings/objc/DOMHTMLObjectElement.mm:
  • bindings/objc/DOMHTMLSelectElement.mm:
  • bindings/objc/DOMHTMLTextAreaElement.mm:
  • bindings/objc/DOMHTMLTextAreaElementPrivate.h:
  • bindings/objc/DOMMediaError.h: Added.
  • bindings/objc/DOMMediaError.mm: Added.
  • bindings/objc/DOMMediaErrorInternal.h: Added.
  • bindings/objc/DOMTimeRanges.h: Added.
  • bindings/objc/DOMTimeRanges.mm: Added.
  • bindings/objc/DOMTimeRangesInternal.h: Added.
3:44 PM Changeset in webkit [203992] by Ryan Haddad
  • 3 edits
    1 copy
    1 add in trunk/LayoutTests

Land updated baseline for rdar://problem/27611932.

  • editing/mac/attributed-string/font-style-variant-effect-expected.txt:
  • platform/mac-elcapitan/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Copied from LayoutTests/editing/mac/attributed-string/font-style-variant-effect-expected.txt.
  • platform/mac-wk1/TestExpectations:
3:31 PM Changeset in webkit [203991] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Grid column resizer elements positioned incorrectly
https://bugs.webkit.org/show_bug.cgi?id=160311
<rdar://problem/27595586>

Reviewed by Brian Burg.

Perform a resize layout on a newly shown tab content view if the tab
browser was resized before showing the tab.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.layout):
Mark all recent tab content views (except for the current view)
as needing a resize layout.

(WebInspector.TabBrowser.prototype._tabBarItemSelected):
If the tab browser was resized while the view was hidden, update the
view's layout for the new content view container size.

3:20 PM Changeset in webkit [203990] by fpizlo@apple.com
  • 4 edits
    1 add in trunk

Rationalize varargs stack overflow checks
https://bugs.webkit.org/show_bug.cgi?id=160425

Reviewed by Michael Saboff.

  • ftl/FTLLink.cpp:

(JSC::FTL::link): AboveOrEqual 0 is a tautology. The code meant GreaterThanOrEqual, since the error code is -1.

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor): Use roundUpToMultipleOf(), which is almost certainly what we meant when we said %.

2:32 PM Changeset in webkit [203989] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build.

  • WebCore.xcodeproj/project.pbxproj:
2:16 PM Changeset in webkit [203988] by andersca@apple.com
  • 5 edits
    173 adds in trunk/Source

Freeze all the DOMHTML* Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160424

Reviewed by Tim Horton.

Source/WebCore:

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMHTMLAnchorElement.h: Added.
  • bindings/objc/DOMHTMLAnchorElement.mm: Added.
  • bindings/objc/DOMHTMLAnchorElementInternal.h: Added.
  • bindings/objc/DOMHTMLAppletElement.h: Added.
  • bindings/objc/DOMHTMLAppletElement.mm: Added.
  • bindings/objc/DOMHTMLAppletElementInternal.h: Added.
  • bindings/objc/DOMHTMLAreaElement.h: Added.
  • bindings/objc/DOMHTMLAreaElement.mm: Added.
  • bindings/objc/DOMHTMLAreaElementInternal.h: Added.
  • bindings/objc/DOMHTMLBRElement.h: Added.
  • bindings/objc/DOMHTMLBRElement.mm: Added.
  • bindings/objc/DOMHTMLBRElementInternal.h: Added.
  • bindings/objc/DOMHTMLBaseElement.h: Added.
  • bindings/objc/DOMHTMLBaseElement.mm: Added.
  • bindings/objc/DOMHTMLBaseElementInternal.h: Added.
  • bindings/objc/DOMHTMLBaseFontElement.h: Added.
  • bindings/objc/DOMHTMLBaseFontElement.mm: Added.
  • bindings/objc/DOMHTMLBaseFontElementInternal.h: Added.
  • bindings/objc/DOMHTMLBodyElement.h: Added.
  • bindings/objc/DOMHTMLBodyElement.mm: Added.
  • bindings/objc/DOMHTMLBodyElementInternal.h: Added.
  • bindings/objc/DOMHTMLButtonElement.h: Added.
  • bindings/objc/DOMHTMLButtonElement.mm: Added.
  • bindings/objc/DOMHTMLButtonElementInternal.h: Added.
  • bindings/objc/DOMHTMLCanvasElement.h: Added.
  • bindings/objc/DOMHTMLCanvasElement.mm: Added.
  • bindings/objc/DOMHTMLCanvasElementInternal.h: Added.
  • bindings/objc/DOMHTMLCollection.h: Added.
  • bindings/objc/DOMHTMLCollection.mm: Added.
  • bindings/objc/DOMHTMLCollectionInternal.h: Added.
  • bindings/objc/DOMHTMLDListElement.h: Added.
  • bindings/objc/DOMHTMLDListElement.mm: Added.
  • bindings/objc/DOMHTMLDListElementInternal.h: Added.
  • bindings/objc/DOMHTMLDirectoryElement.h: Added.
  • bindings/objc/DOMHTMLDirectoryElement.mm: Added.
  • bindings/objc/DOMHTMLDirectoryElementInternal.h: Added.
  • bindings/objc/DOMHTMLDivElement.h: Added.
  • bindings/objc/DOMHTMLDivElement.mm: Added.
  • bindings/objc/DOMHTMLDivElementInternal.h: Added.
  • bindings/objc/DOMHTMLDocument.h: Added.
  • bindings/objc/DOMHTMLDocument.mm: Added.
  • bindings/objc/DOMHTMLDocumentInternal.h: Added.
  • bindings/objc/DOMHTMLElement.h: Added.
  • bindings/objc/DOMHTMLElement.mm: Added.
  • bindings/objc/DOMHTMLElementInternal.h: Added.
  • bindings/objc/DOMHTMLEmbedElement.h: Added.
  • bindings/objc/DOMHTMLEmbedElement.mm: Added.
  • bindings/objc/DOMHTMLEmbedElementInternal.h: Added.
  • bindings/objc/DOMHTMLFieldSetElement.h: Added.
  • bindings/objc/DOMHTMLFieldSetElement.mm: Added.
  • bindings/objc/DOMHTMLFieldSetElementInternal.h: Added.
  • bindings/objc/DOMHTMLFontElement.h: Added.
  • bindings/objc/DOMHTMLFontElement.mm: Added.
  • bindings/objc/DOMHTMLFontElementInternal.h: Added.
  • bindings/objc/DOMHTMLFormElement.h: Added.
  • bindings/objc/DOMHTMLFormElement.mm: Added.
  • bindings/objc/DOMHTMLFormElementInternal.h: Added.
  • bindings/objc/DOMHTMLFrameElement.h: Added.
  • bindings/objc/DOMHTMLFrameElement.mm: Added.
  • bindings/objc/DOMHTMLFrameElementInternal.h: Added.
  • bindings/objc/DOMHTMLFrameSetElement.h: Added.
  • bindings/objc/DOMHTMLFrameSetElement.mm: Added.
  • bindings/objc/DOMHTMLFrameSetElementInternal.h: Added.
  • bindings/objc/DOMHTMLHRElement.h: Added.
  • bindings/objc/DOMHTMLHRElement.mm: Added.
  • bindings/objc/DOMHTMLHRElementInternal.h: Added.
  • bindings/objc/DOMHTMLHeadElement.h: Added.
  • bindings/objc/DOMHTMLHeadElement.mm: Added.
  • bindings/objc/DOMHTMLHeadElementInternal.h: Added.
  • bindings/objc/DOMHTMLHeadingElement.h: Added.
  • bindings/objc/DOMHTMLHeadingElement.mm: Added.
  • bindings/objc/DOMHTMLHeadingElementInternal.h: Added.
  • bindings/objc/DOMHTMLHtmlElement.h: Added.
  • bindings/objc/DOMHTMLHtmlElement.mm: Added.
  • bindings/objc/DOMHTMLHtmlElementInternal.h: Added.
  • bindings/objc/DOMHTMLIFrameElement.h: Added.
  • bindings/objc/DOMHTMLIFrameElement.mm: Added.
  • bindings/objc/DOMHTMLIFrameElementInternal.h: Added.
  • bindings/objc/DOMHTMLImageElement.h: Added.
  • bindings/objc/DOMHTMLImageElement.mm: Added.
  • bindings/objc/DOMHTMLImageElementInternal.h: Added.
  • bindings/objc/DOMHTMLInputElement.h: Added.
  • bindings/objc/DOMHTMLInputElement.mm: Added.
  • bindings/objc/DOMHTMLInputElementInternal.h: Added.
  • bindings/objc/DOMHTMLInputElementPrivate.h: Added.
  • bindings/objc/DOMHTMLLIElement.h: Added.
  • bindings/objc/DOMHTMLLIElement.mm: Added.
  • bindings/objc/DOMHTMLLIElementInternal.h: Added.
  • bindings/objc/DOMHTMLLabelElement.h: Added.
  • bindings/objc/DOMHTMLLabelElement.mm: Added.
  • bindings/objc/DOMHTMLLabelElementInternal.h: Added.
  • bindings/objc/DOMHTMLLegendElement.h: Added.
  • bindings/objc/DOMHTMLLegendElement.mm: Added.
  • bindings/objc/DOMHTMLLegendElementInternal.h: Added.
  • bindings/objc/DOMHTMLLinkElement.h: Added.
  • bindings/objc/DOMHTMLLinkElement.mm: Added.
  • bindings/objc/DOMHTMLLinkElementInternal.h: Added.
  • bindings/objc/DOMHTMLMapElement.h: Added.
  • bindings/objc/DOMHTMLMapElement.mm: Added.
  • bindings/objc/DOMHTMLMapElementInternal.h: Added.
  • bindings/objc/DOMHTMLMarqueeElement.h: Added.
  • bindings/objc/DOMHTMLMarqueeElement.mm: Added.
  • bindings/objc/DOMHTMLMarqueeElementInternal.h: Added.
  • bindings/objc/DOMHTMLMediaElement.h: Added.
  • bindings/objc/DOMHTMLMediaElement.mm: Added.
  • bindings/objc/DOMHTMLMediaElementInternal.h: Added.
  • bindings/objc/DOMHTMLMenuElement.h: Added.
  • bindings/objc/DOMHTMLMenuElement.mm: Added.
  • bindings/objc/DOMHTMLMenuElementInternal.h: Added.
  • bindings/objc/DOMHTMLMetaElement.h: Added.
  • bindings/objc/DOMHTMLMetaElement.mm: Added.
  • bindings/objc/DOMHTMLMetaElementInternal.h: Added.
  • bindings/objc/DOMHTMLModElement.h: Added.
  • bindings/objc/DOMHTMLModElement.mm: Added.
  • bindings/objc/DOMHTMLModElementInternal.h: Added.
  • bindings/objc/DOMHTMLOListElement.h: Added.
  • bindings/objc/DOMHTMLOListElement.mm: Added.
  • bindings/objc/DOMHTMLOListElementInternal.h: Added.
  • bindings/objc/DOMHTMLObjectElement.h: Added.
  • bindings/objc/DOMHTMLObjectElement.mm: Added.
  • bindings/objc/DOMHTMLObjectElementInternal.h: Added.
  • bindings/objc/DOMHTMLObjectElementPrivate.h: Added.
  • bindings/objc/DOMHTMLOptGroupElement.h: Added.
  • bindings/objc/DOMHTMLOptGroupElement.mm: Added.
  • bindings/objc/DOMHTMLOptGroupElementInternal.h: Added.
  • bindings/objc/DOMHTMLOptionElement.h: Added.
  • bindings/objc/DOMHTMLOptionElement.mm: Added.
  • bindings/objc/DOMHTMLOptionElementInternal.h: Added.
  • bindings/objc/DOMHTMLOptionsCollection.h: Added.
  • bindings/objc/DOMHTMLOptionsCollection.mm: Added.
  • bindings/objc/DOMHTMLOptionsCollectionInternal.h: Added.
  • bindings/objc/DOMHTMLParagraphElement.h: Added.
  • bindings/objc/DOMHTMLParagraphElement.mm: Added.
  • bindings/objc/DOMHTMLParagraphElementInternal.h: Added.
  • bindings/objc/DOMHTMLParamElement.h: Added.
  • bindings/objc/DOMHTMLParamElement.mm: Added.
  • bindings/objc/DOMHTMLParamElementInternal.h: Added.
  • bindings/objc/DOMHTMLPreElement.h: Added.
  • bindings/objc/DOMHTMLPreElement.mm: Added.
  • bindings/objc/DOMHTMLPreElementInternal.h: Added.
  • bindings/objc/DOMHTMLQuoteElement.h: Added.
  • bindings/objc/DOMHTMLQuoteElement.mm: Added.
  • bindings/objc/DOMHTMLQuoteElementInternal.h: Added.
  • bindings/objc/DOMHTMLScriptElement.h: Added.
  • bindings/objc/DOMHTMLScriptElement.mm: Added.
  • bindings/objc/DOMHTMLScriptElementInternal.h: Added.
  • bindings/objc/DOMHTMLSelectElement.h: Added.
  • bindings/objc/DOMHTMLSelectElement.mm: Added.
  • bindings/objc/DOMHTMLSelectElementInternal.h: Added.
  • bindings/objc/DOMHTMLStyleElement.h: Added.
  • bindings/objc/DOMHTMLStyleElement.mm: Added.
  • bindings/objc/DOMHTMLStyleElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableCaptionElement.h: Added.
  • bindings/objc/DOMHTMLTableCaptionElement.mm: Added.
  • bindings/objc/DOMHTMLTableCaptionElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableCellElement.h: Added.
  • bindings/objc/DOMHTMLTableCellElement.mm: Added.
  • bindings/objc/DOMHTMLTableCellElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableColElement.h: Added.
  • bindings/objc/DOMHTMLTableColElement.mm: Added.
  • bindings/objc/DOMHTMLTableColElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableElement.h: Added.
  • bindings/objc/DOMHTMLTableElement.mm: Added.
  • bindings/objc/DOMHTMLTableElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableRowElement.h: Added.
  • bindings/objc/DOMHTMLTableRowElement.mm: Added.
  • bindings/objc/DOMHTMLTableRowElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableSectionElement.h: Added.
  • bindings/objc/DOMHTMLTableSectionElement.mm: Added.
  • bindings/objc/DOMHTMLTableSectionElementInternal.h: Added.
  • bindings/objc/DOMHTMLVideoElement.h: Added.
  • bindings/objc/DOMHTMLVideoElement.mm: Added.
  • bindings/objc/DOMHTMLVideoElementInternal.h: Added.

Source/WebKit/mac:

Don't migrate DOMHTMLEmbedElementPrivate.h - it was just an empty header.

  • MigrateHeaders.make:
2:06 PM Changeset in webkit [203987] by Chris Dumez
  • 4 edits
    1 delete in trunk

Make wpt server generate its certificates in layout test results folder
https://bugs.webkit.org/show_bug.cgi?id=160422

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

LayoutTests/imported/w3c:

  • resources/_wpt_certs/.gitignore: Removed.
  • resources/_wpt_certs/localhost.key: Removed.
  • resources/_wpt_certs/localhost.pem: Removed.
  • resources/config.json:

Tools:

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._copy_webkit_test_files): Setting certificate folder to layout tests results directory.

2:03 PM Changeset in webkit [203986] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Waterfall graph in Network tab shows too much whitespace/dead time
https://bugs.webkit.org/show_bug.cgi?id=160373

Reviewed by Timothy Hatcher.

Track the start and end time separate from the ruler to remove
leading/trailing whitespace in the graph. Also prevent network
record bars from being clipped.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get zeroTime):
Set equal to the ruler start time.
(WebInspector.NetworkGridContentView.prototype.reset):
Reset start and end time.
(WebInspector.NetworkGridContentView.prototype.layout):
Set the initial values for ruler start/zero time if needed.
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Set the start time if needed.
Reduce debounce from 250ms to 150ms. This prevents the current time from
exceeding the end time by as wide a margin, while keeping the current
time "timer" from being restarted too frequently.

(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Update the ruler end time and schedule a layout.
Add padding equal to the time needed to draw a network bar at minimum width
to prevent bars from being clipped.

1:49 PM Changeset in webkit [203985] by Antti Koivisto
  • 5 edits
    3 adds in trunk

REGRESSION(r198943): drop-down menu navigation on fiddlevideo.com doesn't appear on iOS, works on OS X
https://bugs.webkit.org/show_bug.cgi?id=160406
Source/WebCore:

rdar://problem/26310261

Reviewed by Simon Fraser.

On iOS we generate synthetic mouse events from taps. Click event is generated on tap only if the move event
doesn't produce visible changes to the document. This is important to make certain types of drop down menus
work.

The information on mutations is passed via WKContentObservation side channel which is updated from varous parts
of the code. Newly visible elements are detected CheckForVisibilityChangeOnRecalcStyle during style resolution.
This got broken by the style refactoring because it assumes that renderer is mutated along with style computation.
However mutation is now a separate step performed by RenderTreeUpdater.

Fix by moving CheckForVisibilityChange to RenderTreeUpdater.

Test: fast/content-observation/click-event-suppression-on-content-change.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::Parent::Parent):
(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::RenderTreeUpdater::tearDownRenderer):
(WebCore::elementImplicitVisibility):
(WebCore::CheckForVisibilityChange::CheckForVisibilityChange):
(WebCore::CheckForVisibilityChange::~CheckForVisibilityChange):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::elementImplicitVisibility): Deleted.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::CheckForVisibilityChangeOnRecalcStyle): Deleted.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::~CheckForVisibilityChangeOnRecalcStyle): Deleted.

LayoutTests:

Reviewed by Simon Fraser.

This stuff has had zero test coverage. Adding a basic UIScript based test.

  • TestExpectations:
  • fast/content-observation/click-event-suppression-on-content-change-expected.txt: Added.
  • fast/content-observation/click-event-suppression-on-content-change.html: Added.
1:48 PM Changeset in webkit [203984] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] A video element that does not pause after exiting from fullscreen should be allowed to continue playing inline
https://bugs.webkit.org/show_bug.cgi?id=160416
<rdar://problem/27409854>

Reviewed by Alex Christensen.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen): If playback normally requires fullscreen but the
element was not paused when exiting from fullscreen, set the 'playsinline' attribute so we won't
force fullscreen if playback is paused and resumes, and set the 'controls' attribute so the
user can control playback.

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

Build fix.

  • WebCore.xcodeproj/project.pbxproj:
12:49 PM Changeset in webkit [203982] by eric.carlson@apple.com
  • 19 edits
    2 adds in trunk

[Mac][iOS] Adopt MediaRemote "seek to playback position"
https://bugs.webkit.org/show_bug.cgi?id=160405
<rdar://problem/27547583>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/remote-control-command-seek.html

  • Modules/webaudio/AudioContext.h: Update for didReceiveRemoteControlCommand argument change.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Support SeekToPlaybackPositionCommand.
Drive by fix, support Stop command.
(WebCore::HTMLMediaElement::supportsSeeking): New.

  • html/HTMLMediaElement.h:
  • platform/RemoteCommandListener.h:

(WebCore::RemoteCommandListenerClient::didReceiveRemoteControlCommand): Add command argument.
(WebCore::RemoteCommandListenerClient::supportsSeeking): New.
(WebCore::RemoteCommandListener::updateSupportedCommands): Ditto.
(WebCore::RemoteCommandListener::client): Ditto.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand): Add command argument.
(WebCore::PlatformMediaSession::supportsSeeking): New, pass through to client.

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::setCurrentSession): Tell remote command listener to
update supported commands.
(WebCore::PlatformMediaSessionManager::currentSession): Make const.
(WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand): Add command argument.
(WebCore::PlatformMediaSessionManager::supportsSeeking): New, pass through to session.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/ios/RemoteCommandListenerIOS.h:

(WebCore::RemoteCommandListenerIOS::createWeakPtr):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Support changePlaybackPositionCommand.
(WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS): Remove seekToTime target.
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands): Update changePlaybackPositionCommand.

  • platform/mac/MediaRemoteSoftLink.cpp:
  • platform/mac/MediaRemoteSoftLink.h:
  • platform/mac/RemoteCommandListenerMac.h:
  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::updateSupportedCommands): New, split out of constructor.
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): Split setup logic out into
updateSupportedCommands. Support MRMediaRemoteCommandSeekToPlaybackPosition. Don't assert when
receiving an unsupported command, it happens. Return error when a command isn't supported or
fails.

  • testing/Internals.cpp:

(WebCore::Internals::postRemoteControlCommand): Add command argument parameter. Support
seektoplaybackposition.

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

LayoutTests:

  • media/remote-control-command-seek-expected.txt: Added.
  • media/remote-control-command-seek.html: Added.
12:35 PM Changeset in webkit [203981] by andersca@apple.com
  • 4 edits
    6 adds in trunk/Source/WebCore

Freeze DOMHTMLTitleElement and DOMHTMLUListElement bindings
https://bugs.webkit.org/show_bug.cgi?id=160415

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMHTMLTitleElement.h: Added.
  • bindings/objc/DOMHTMLTitleElement.mm: Added.
  • bindings/objc/DOMHTMLTitleElementInternal.h: Added.
  • bindings/objc/DOMHTMLUListElement.h: Added.
  • bindings/objc/DOMHTMLUListElement.mm: Added.
  • bindings/objc/DOMHTMLUListElementInternal.h: Added.
11:51 AM Changeset in webkit [203980] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r203976. rdar://problem/27580049

11:48 AM Changeset in webkit [203979] by sbarati@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Sub should be a Math IC
https://bugs.webkit.org/show_bug.cgi?id=160270

Reviewed by Mark Lam.

This makes Sub an IC like Mul and Add. I'm seeing the following
improvements of average Sub size on Unity and JetStream:

| JetStream | Unity 3D |

------| -------------

Old | 202 bytes | 205 bytes |

------| -------------

New | 134 bytes | 134 bytes |

------------------------------------

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::dumpMathICStats):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithSub):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):
(JSC::JIT::emit_op_pow):

  • jit/JITMathIC.h:
  • jit/JITMathICForwards.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):
(JSC::JITSubGenerator::isLeftOperandValidConstant):
(JSC::JITSubGenerator::isRightOperandValidConstant):
(JSC::JITSubGenerator::arithProfile):
(JSC::JITSubGenerator::didEmitFastPath): Deleted.
(JSC::JITSubGenerator::endJumpList): Deleted.
(JSC::JITSubGenerator::slowPathJumpList): Deleted.

11:45 AM Changeset in webkit [203978] by commit-queue@webkit.org
  • 5 edits in trunk/PerformanceTests

Add an option to run the MotionMark tests with classic tile size (512x512)
https://bugs.webkit.org/show_bug.cgi?id=160371

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

Setting the body to large size (3000x3000) and overflow to scroll forces
the classic tile size (512x512). This option does not affect the canvas
tests because the canvas is displayed on one tile regardless of its size.

  • Animometer/developer.html:
  • Animometer/resources/debug-runner/animometer.css:

(body.showing-test-container.tiles-big):
(body.showing-test-container.tiles-classic):

  • Animometer/resources/debug-runner/animometer.js:
  • Animometer/resources/runner/animometer.js:

(window.benchmarkController.startBenchmark):

11:30 AM Changeset in webkit [203977] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Update Apache configuration for Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=160408

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-08-01
Reviewed by Ryosuke Niwa.

Arch Linux now ships Apache 2.4 and PHP 7, so the configuration file
used for the layout tests is updated to be compatible with the newer
versions.

  • http/conf/archlinux-httpd.conf: Updated.
11:05 AM WebKitGTK/2.12.x edited by Konstantin Tokarev
(diff)
11:00 AM Changeset in webkit [203976] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r196383): Drop down CSS menus not working on cnet.com, apmex.com
https://bugs.webkit.org/show_bug.cgi?id=160390

Reviewed by Simon Fraser.

Source/WebCore:

The case here is that we have a rule like

.enableHover:hover .child { ... }

and the "enableHover" class is added dynamically. The class change invalidation optimization code would figure out
that nothing needs to be invalidated as the class change doesn't make the rule match (since :hover doesn't match).

However for event driven hover to actually work the hover element needs to have its childrenAffectedByHover bit set.
This bits is set when the selector match is attempted, whether it actually matches or not. Since we optimized away
the style invalidation we never set the bit either.

Fix by treating :hover as always matching (==ignored) when collecting rules for invalidation optimization purposes.
Dynamic pseudo elements are already treated this way for similar reasons.

Test: fast/selectors/hover-invalidation-descendant-dynamic.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

Match always in CollectingRulesIgnoringVirtualPseudoElements mode (now slightly misnamed).

This mode is used for optimization purposes in StyleInvalidationAnalysis (which we care about here) and
StyleSharingResolver. The change is fine for both.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):

Same change for the slow path selector checker.

LayoutTests:

  • fast/selectors/hover-invalidation-descendant-dynamic-expected.txt: Added.
  • fast/selectors/hover-invalidation-descendant-dynamic.html: Added.
10:49 AM Changeset in webkit [203975] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Function Call on NULL Object
https://bugs.webkit.org/show_bug.cgi?id=160325

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-01
Reviewed by Darin Adler.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage): Changed removeAllWebNotificationPermissions() call to static function call.

  • WebKitTestRunner/InjectedBundle/TestRunner.h: Made all web-notification functions static.
10:49 AM Changeset in webkit [203974] by Darin Adler
  • 3 edits
    4 adds in trunk/Source/WebCore

[Cocoa] Freeze Objective-C bindings and stop autogenerating them: Step 1 - Convert a single file
https://bugs.webkit.org/show_bug.cgi?id=160386

Reviewed by Anders Carlsson.

No behavior change, no tests changed. I tested this locally by putting "#error" into the
files in the DerivedSources directory to make sure the build doesn't use those files even
if there are stale copies still sitting there.

Moving the bindings from WebCore to the legacy part of WebKit is something we also want to
do, but that is quite challenging to do one file at a time, so we will do that later.

For this first file, I did some hand edits to make the code in a the file a little less
peculiar. It's still awkward to have all those JSMainThreadNullState in there; should double
check that we really need them.

An important follow up step will be to cut down on the bindings. We have lots of bindings
that are only in the Private.h header, and it would be good to find a way to cut down on those.
And on iOS we would like eliminate these bindings entirely since they are not API there.

  • DerivedSources.make: Moved HTMLTextAreaElement from a list we use for both JavaScript and

Objective-C DOM bindings to a list we use only for JavaScript bindings.

  • WebCore.xcodeproj/project.pbxproj: Removed references to generated DOMHTMLTextAreaElement

files and instead reference the checked-in copies.

  • bindings/objc/DOMHTMLTextAreaElement.h: Added.
  • bindings/objc/DOMHTMLTextAreaElement.mm: Added.
  • bindings/objc/DOMHTMLTextAreaElementInternal.h: Added.
  • bindings/objc/DOMHTMLTextAreaElementPrivate.h: Added.
6:34 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:44 AM Changeset in webkit [203973] by fred.wang@free.fr
  • 8 edits
    2 copies in trunk/Source/WebCore

Introduce a RenderMathMLFencedOperator class
https://bugs.webkit.org/show_bug.cgi?id=160245

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-01
Reviewed by Darin Adler.

We introduce a class to handle all the code specific to anonymous mfenced operators. In
particular many members of the RenderMathMLOperator class are going to be removed while
fixing bug 156537 but they may still need to stored and exposed in some way by mfenced
operators.

No new tests, behavior is unchanged.

  • CMakeLists.txt: Add RenderMathMLFencedOperator.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLFencedOperator): Function to allow casting to
RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLFenced.cpp: Use RenderMathMLFencedOperator instead of

RenderMathMLOperator and use the new name updateOperatorContent.
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLFenced.h: Use RenderMathMLFencedOperator instead of

RenderMathMLOperator.

  • rendering/mathml/RenderMathMLFencedOperator.cpp: New class derived from RenderMathMLOperator

(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Init form and operator
flags with the specified parameters and init the text content.
(WebCore::RenderMathMLFencedOperator::updateOperatorContent): We move the
RenderMathMLOperator::updateTokenContent function used by anonymous operators here. It is
renamed to avoid build errors due to conflicts with the other
RenderMathMLOperator::updateTokenContent function.

  • rendering/mathml/RenderMathMLFencedOperator.h: New class for anonymous mfenced operators

with getter and setter for the m_textContent. Also override RenderMathMLFencedOperator to
allow casting to RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Simplify the constructors. Some
initializations is moved in RenderMathMLOperator.h while other code is moved to
RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::textContent): No need to handle the anonymous case here since
it is handled in RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::updateTokenContent): We delete the version used for anonymous
operators and move it into RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLOperator.h: Make the class and some members overridable and

exposed to the derived RenderMathMLFencedOperator class. We also move initialization of some
members here.

12:28 AM Changeset in webkit [203972] by keith_miller@apple.com
  • 6 edits
    1 move
    1 add in trunk

We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
https://bugs.webkit.org/show_bug.cgi?id=160372

Rubber stamped by Geoffrey Garen.

This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
a new top level directory, JSTests. Having the tests in the Source directory
was both confusing and inconvenient for people that just want to checkout the
source code of WebKit. Since there is no other obvious place to put all the
JavaScript tests a new top level directory seemed the most sensible.

  • JSTests/: Copied from Source/JavaScriptCore/tests.
  • Source/JavaScriptCore/tests/: Deleted.
  • Scripts/import-test262-tests:
  • Scripts/run-javascriptcore-tests:
  • Scripts/update-javascriptcore-test-res:
12:02 AM Changeset in webkit [203971] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebCore

Reduce the number of ResourceRequest copies in DocumentThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160338

Patch by Youenn Fablet <youennf@gmail.com> on 2016-08-01
Reviewed by Darin Adler.

No observable change of behavior.

Updating one of CachedResourceReques constructor to take a ResourceRequest&&.
This allows reducing a ResourceRequest copy in DocumentThreadableLoader.
Updating DocumentLoader and MediaResourceLoader accordingly (future optimization steps may look at making these
two loaders more efficient with regards to Resource Request).

Updating ThreadableLoader to take a ResourceRequest&&.
This allows reducing the number of copies in DocumentThreadableLoader.
Updating clients of ThreadableLoader accordingly.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • dom/Document.cpp:

(WebCore::Document::didLoadResourceSynchronously):

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):

  • dom/ScriptExecutionContext.h:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously):
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::CachedResourceRequest):

  • loader/cache/CachedResourceRequest.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Jul 31, 2016:

11:51 PM Changeset in webkit [203970] by bshafiei@apple.com
  • 13 edits
    2 adds in branches/safari-602-branch

Merge r203842. rdar://problem/27553464

11:51 PM Changeset in webkit [203969] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-602-branch

Merge r203931. rdar://problem/27317407

11:51 PM Changeset in webkit [203968] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r203928. rdar://problem/27179484

11:51 PM Changeset in webkit [203967] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203924. rdar://problem/27355214

11:51 PM Changeset in webkit [203966] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r203916. rdar://problem/27594995

11:51 PM Changeset in webkit [203965] by bshafiei@apple.com
  • 11 edits
    2 adds in branches/safari-602-branch

Merge r203913. rdar://problem/27558003

11:51 PM Changeset in webkit [203964] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203909. rdar://problem/27078089

11:51 PM Changeset in webkit [203963] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203905. rdar://problem/27610246

11:51 PM Changeset in webkit [203962] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203799. rdar://problem/27556788

11:00 PM Changeset in webkit [203961] by commit-queue@webkit.org
  • 5 edits in trunk

Fetch Response built-ins should use @makeThisTypeError
https://bugs.webkit.org/show_bug.cgi?id=160290

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-31
Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test.

Fixed type error checks.
Making use of @makeThisTypeError to have the correct error message.
Updating arrayBuffer, blob, json and text to return rejected promises in lieu of throwing
in case the 'this' value is not q Response object.

  • Modules/fetch/FetchResponse.js:

(clone): Updated instanceof check and making use of @makeThisTypeError.
(arrayBuffer): Ditto.
(blob): Ditto.
(formData): Ditto.
(json): Ditto.
(text): Ditto.

LayoutTests:

  • fetch/fetch-error-messages-expected.txt:
  • fetch/fetch-error-messages.html:
10:43 PM Changeset in webkit [203960] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Implement missing WebCore::moveFile() using GLib functions
https://bugs.webkit.org/show_bug.cgi?id=160363

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-07-31
Reviewed by Carlos Garcia Campos.

  • platform/glib/FileSystemGlib.cpp:

(WebCore::moveFile): Function added.

7:13 PM Changeset in webkit [203959] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.44.0.1/Source

Versioning.

7:11 PM Changeset in webkit [203958] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.44.0.1

New tag.

5:37 PM Changeset in webkit [203957] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Should check Test262Error correctly
https://bugs.webkit.org/show_bug.cgi?id=159862

Reviewed by Saam Barati.

Test262Error in the harness does not have "name" property.
Rather than checking "name" property, peforming instanceof is better to check the class of the exception.

  • jsc.cpp:

(checkUncaughtException):

  • runtime/JSObject.h:
  • tests/test262.yaml:
4:36 PM Changeset in webkit [203956] by Chris Dumez
  • 29 edits in trunk/Source/WebCore

Drop [StrictTypeChecking] in cases where it is a no-op
https://bugs.webkit.org/show_bug.cgi?id=160387

Reviewed by Darin Adler.

Drop [StrictTypeChecking] in cases where it is a no-op. After r203949 & r203950,
[StrictTypeChecking] only has an impact when used on operation parameters of
string types and is currently used as a workaround for bugs in our overload
resolution algorithm.

  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • html/canvas/ANGLEInstancedArrays.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLDebugShaders.idl:
  • html/canvas/WebGLLoseContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
  • svg/SVGAngle.idl:
  • svg/SVGColor.idl:
  • svg/SVGLength.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPaint.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPoint.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTransform.idl:
  • svg/SVGTransformList.idl:
1:02 PM Changeset in webkit [203955] by n_wang@apple.com
  • 9 edits
    2 adds in trunk

AX: Add a check for touch event listener on iOS accessibility object
https://bugs.webkit.org/show_bug.cgi?id=160388

Reviewed by Chris Fleizach.

Source/WebCore:

dispatchTouchEvent() is not working correctly within AXPress() sometimes. Need to
investigate it more in the future. Now, adding a check for the touch event listener
on the object's node so that iOS can handle dispatching the touch event instead.

Test: accessibility/ios-simulator/has-touch-event-listener.html

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
(WebCore::AccessibilityObject::hasTouchEventListener):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(appendStringToResult):
(-[WebAccessibilityObjectWrapper _accessibilityHasTouchEventListener]):
(-[WebAccessibilityObjectWrapper _accessibilityValueIsAutofilled]):

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::boolAttributeValue):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::boolAttributeValue):

LayoutTests:

  • accessibility/ios-simulator/has-touch-event-listener-expected.txt: Added.
  • accessibility/ios-simulator/has-touch-event-listener.html: Added.
1:31 AM Changeset in webkit [203954] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK][Unix] Implement missing WebKit::SharedMemory::create() function
https://bugs.webkit.org/show_bug.cgi?id=160364

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-07-31
Reviewed by Carlos Garcia Campos.

The WebKit::SharedMemory::create() function is missing for the Unix
platform, which is also used by the GTK+ port. The latter is going
to need this in place to use the common content filtering code.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::accessModeMMap): Added helper function to convert a
SharedMemory::Protection value into flags useable with mmap().
(WebKit::SharedMemory::create): Added. Implementation reuses code
existing in the SharedMemory::allocate() function.
(WebKit::SharedMemory::allocate): Reimplemented in terms of
SharedMemory::create().

12:04 AM Changeset in webkit [203953] by Yusuke Suzuki
  • 11 edits
    1 copy
    3 adds in trunk/Source/JavaScriptCore

[ES6] Module binding can be exported by multiple names
https://bugs.webkit.org/show_bug.cgi?id=160343

Reviewed by Saam Barati.

ES6 Module can export the same local binding by using multiple names.
For example,

`
var value = 42;

export { value };
export { value as value2 };
`

Currently, we only allowed one local binding to be exported with one name. So, in the above case,
the local binding "value" is exported as "value2" and "value" name is not exported. This is wrong.

To fix this issue, we collect the correspondence (local name => exported name) to the local bindings
in the parser. Previously, we only maintained the exported local bindings in the parser. And utilize
this information when creating the export entries in ModuleAnalyzer.

And this patch also moves ModuleScopeData from the Scope object to the Parser class since exported
names should be managed per-module, not per-scope.

This change fixes several test262 failures.

(JSC::ModuleAnalyzer::exportVariable):
(JSC::ModuleAnalyzer::analyze):
(JSC::ModuleAnalyzer::exportedBinding): Deleted.
(JSC::ModuleAnalyzer::declareExportAlias): Deleted.

  • parser/ModuleAnalyzer.h:
  • parser/ModuleScopeData.h: Copied from Source/JavaScriptCore/parser/ModuleAnalyzer.h.

(JSC::ModuleScopeData::create):
(JSC::ModuleScopeData::exportedBindings):
(JSC::ModuleScopeData::exportName):
(JSC::ModuleScopeData::exportBinding):

  • parser/Nodes.cpp:

(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):

  • parser/Nodes.h:

(JSC::ModuleProgramNode::moduleScopeData):

  • parser/NodesAnalyzeModule.cpp:

(JSC::ExportDefaultDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • parser/Parser.h:

(JSC::Parser::exportName):
(JSC::Parser<LexerType>::parse):
(JSC::ModuleScopeData::create): Deleted.
(JSC::ModuleScopeData::exportedBindings): Deleted.
(JSC::ModuleScopeData::exportName): Deleted.
(JSC::ModuleScopeData::exportBinding): Deleted.
(JSC::Scope::Scope): Deleted.
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::moduleScopeData): Deleted.
(JSC::Scope::setIsModule): Deleted.

  • tests/modules/aliased-names.js: Added.
  • tests/modules/aliased-names/main.js: Added.

(change):

  • tests/stress/modules-syntax-error-with-names.js:

(export.Cocoa):
(SyntaxError.Cannot.export.a.duplicate.name):

  • tests/test262.yaml:

Jul 30, 2016:

6:08 PM Changeset in webkit [203952] by mark.lam@apple.com
  • 5 edits
    2 adds in trunk

Assertion failure while setting the length of an ArrayClass array.
https://bugs.webkit.org/show_bug.cgi?id=160381
<rdar://problem/27328703>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

When setting large length values, we're currently treating ArrayClass as a
ContiguousIndexingType array. This results in an assertion failure. This is
now fixed.

There are currently only 2 places where we create arrays with indexing type
ArrayClass: ArrayPrototype and RuntimeArray. The fix in JSArray:;setLength()
takes care of ArrayPrototype.

RuntimeArray already checks for the setting of its length property, and will
throw a RangeError. Hence, there's no change is needed for the RuntimeArray.
Instead, I added some test cases ensure that the check and throw behavior does
not change without notice.

  • runtime/JSArray.cpp:

(JSC::JSArray::setLength):

  • tests/stress/array-setLength-on-ArrayClass-with-large-length.js: Added.

(toString):
(assertEqual):

  • tests/stress/array-setLength-on-ArrayClass-with-small-length.js: Added.

(toString):
(assertEqual):

LayoutTests:

Test that RuntimeArrays will throw an error if we try to set its length.

  • platform/mac/fast/dom/wrapper-classes-objc.html:
  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
5:46 PM Changeset in webkit [203951] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Unreviewed, rebaseline bindings tests.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_set_property): Deleted.
(webkit_dom_test_obj_get_property): Deleted.
(webkit_dom_test_obj_class_init): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjStrictTypeCheckingAttribute): Deleted.
(WebCore::jsTestObjStrictFloat): Deleted.
(WebCore::setJSTestObjStrictTypeCheckingAttribute): Deleted.
(WebCore::setJSTestObjStrictFloat): Deleted.

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj strictTypeCheckingAttribute]): Deleted.
(-[DOMTestObj setStrictTypeCheckingAttribute:]): Deleted.
(-[DOMTestObj strictFloat]): Deleted.
(-[DOMTestObj setStrictFloat:]): Deleted.

5:29 PM Changeset in webkit [203950] by Chris Dumez
  • 18 edits in trunk

Enable strict type checking for Window dictionary members
https://bugs.webkit.org/show_bug.cgi?id=160356

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:

Source/WebCore:

Enable strict type checking for Window dictionary members. Technically,
we should do strict type checking of all wrapper types but this patch
focuses on Window because it is common to pass a Window dictionary
member to Event constructors.

By strict type checking, I mean that we should throw a TypeError is
the value is not null/undefined and does not implement the Window
interface:

Firefox and Chrome comply with the specification already.

No new tests, updated / rebaselined existing tests.

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/events/constructors/composition-event-constructor-expected.txt:
  • fast/events/constructors/composition-event-constructor.html:
  • fast/events/constructors/focus-event-constructor-expected.txt:
  • fast/events/constructors/focus-event-constructor.html:
  • fast/events/constructors/keyboard-event-constructor-expected.txt:
  • fast/events/constructors/keyboard-event-constructor.html:
  • fast/events/constructors/mouse-event-constructor.html:
  • fast/events/constructors/ui-event-constructor-expected.txt:
  • fast/events/constructors/ui-event-constructor.html:
  • fast/events/constructors/wheel-event-constructor.html:
  • platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
  • platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:
  • resources/js-test-pre.js:

Add a shouldThrowErrorName() utility function that is similar to shouldThrow()
but only checks the error name instead of the full error message. Checking
only the error name has the benefit of working across browsers and facilitating
refactoring of error messages.

5:23 PM Changeset in webkit [203949] by Chris Dumez
  • 43 edits in trunk

[WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160375

Reviewed by Darin Adler.

Source/WebCore:

Enable strict type checking for nullable attribute setters of wrapper types:

For such attributes, if the JS tries to assign a value that is not null /
undefined and does not have the expected wrapper type, then we now throw a
TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps identify
bugs in JavaScript code.

No new tests, updated existing tests.

  • Modules/webaudio/AudioBufferSourceNode.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjTestNullableObjAttr):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):

  • bindings/scripts/test/TestObj.idl:
  • dom/Document.idl:
  • html/HTMLTableElement.idl:
  • svg/SVGAngle.idl:
  • svg/SVGAnimatedBoolean.idl:
  • svg/SVGAnimatedEnumeration.idl:
  • svg/SVGAnimatedInteger.idl:
  • svg/SVGAnimatedNumber.idl:
  • svg/SVGLength.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumber.idl:
  • svg/SVGPathSegArcAbs.idl:
  • svg/SVGPathSegArcRel.idl:
  • svg/SVGPathSegCurvetoCubicAbs.idl:
  • svg/SVGPathSegCurvetoCubicRel.idl:
  • svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
  • svg/SVGPathSegCurvetoCubicSmoothRel.idl:
  • svg/SVGPathSegCurvetoQuadraticAbs.idl:
  • svg/SVGPathSegCurvetoQuadraticRel.idl:
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
  • svg/SVGPathSegLinetoAbs.idl:
  • svg/SVGPathSegLinetoHorizontalAbs.idl:
  • svg/SVGPathSegLinetoHorizontalRel.idl:
  • svg/SVGPathSegLinetoRel.idl:
  • svg/SVGPathSegLinetoVerticalAbs.idl:
  • svg/SVGPathSegLinetoVerticalRel.idl:
  • svg/SVGPathSegMovetoAbs.idl:
  • svg/SVGPathSegMovetoRel.idl:
  • svg/SVGPoint.idl:
  • svg/SVGPreserveAspectRatio.idl:
  • svg/SVGRect.idl:

LayoutTests:

Rebaseline / update existing tests to reflect behavior change.

  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html:
  • webaudio/convolver-setBuffer-null-expected.txt:
  • webaudio/convolver-setBuffer-null.html:
2:12 PM Changeset in webkit [203948] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203947.

2016-07-30 Alexey Proskuryakov <ap@apple.com>

macOS Sierra test result gardening for media/video-loop.html.

  • platform/mac/TestExpectations:
2:08 PM Changeset in webkit [203947] by ap@apple.com
  • 2 edits in trunk/LayoutTests

macOS Sierra test result gardening for media/video-loop.html.

  • platform/mac/TestExpectations:
1:33 PM Changeset in webkit [203946] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203945.

2016-07-30 Alexey Proskuryakov <ap@apple.com>

macOS Sierra test result gardening.

  • platform/mac-wk1/TestExpectations:
1:30 PM Changeset in webkit [203945] by ap@apple.com
  • 2 edits in trunk/LayoutTests

macOS Sierra test result gardening.

  • platform/mac-wk1/TestExpectations:
12:27 PM Changeset in webkit [203944] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Xcode] WebKit.framework is touched on incremental build even if nothing’s changed
https://bugs.webkit.org/show_bug.cgi?id=160383

Reviewed by Tim Horton.

  • WebKit2.xcodeproj/project.pbxproj: Removed the output files listed under the Copy iOS Sandbox Profiles for Manual Sandboxing script build phase, because it doesn’t produce those files on macOS. With no outputs listed, the script will still run every time, but the fact that it has run won’t trigger touching the framework.
12:27 PM Changeset in webkit [203943] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Synchronous preflight should check for successful responses
https://bugs.webkit.org/show_bug.cgi?id=159350

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-30
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/xmlhttprequest/access-control-preflight-not-successful.html

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::doPreflight): Adding successful response check for synchronous
preflighting.

LayoutTests:

  • http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
  • http/tests/xmlhttprequest/access-control-preflight-not-successful.html: Added, not all tests are passing as CORS checks.

for redirections are not well supported for synchronous loading.

  • http/tests/xmlhttprequest/resources/status-404-without-body.php:
7:16 AM Changeset in webkit [203942] by Manuel Rego Casasnovas
  • 2 edits in trunk/Tools

Unreviewed: add myself to the reviewers list.

  • Scripts/webkitpy/common/config/contributors.json:
1:35 AM Changeset in webkit [203941] by Chris Dumez
  • 24 edits in trunk

[WebIDL] Enable strict type checking for operations' nullable parameters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160374

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

Enable strict type checking for operations' nullable parameters of
wrapper types to comply with the Web IDL specification:

For such parameters, if the JS passes a value that is not null /
undefined and does not have the expected wrapper type, then we now
throw a TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps
identify bugs in JavaScript code.

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapper):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNull):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolver):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod): Deleted.
(WebCore::jsTestObjPrototypeFunctionOrange): Deleted.

LayoutTests:

Update / rebaseline existing tests to reflect behavior change. Also fix
several bugs in tests that became obvious now that we throw.

  • editing/execCommand/indent-pre-expected.txt:
  • editing/execCommand/indent-pre.html:
  • editing/selection/4895428-2.html:
  • editing/selection/move-by-word-visually-null-box.html:
  • fast/dom/DOMImplementation/detached-doctype.html:
  • fast/dom/MutationObserver/observe-attributes.html:
  • fast/dom/Node/contains-method-expected.txt:
  • fast/dom/Node/script-tests/contains-method.js:
  • fast/dom/Window/webkitConvertPoint.html:
  • fast/dom/adopt-node-crash-2.html:
  • fast/dom/incompatible-operations-expected.txt:
  • fast/dom/incompatible-operations.html:
  • fast/events/selectstart-by-arrow-keys.html:
  • fast/images/image-copy-memory-usage.html:
  • fast/xsl/xslt-processor-expected.txt:
  • http/tests/misc/webtiming-cross-origin-and-back1.html:
  • platform/mac/fast/dom/Window/webkitConvertPoint-expected.txt:
  • svg/custom/unicode-in-tspan-multi-svg-crash.html:

Jul 29, 2016:

11:39 PM Changeset in webkit [203940] by ap@apple.com
  • 4 edits in trunk/Tools

Undo r203939, and copy over a rule that clips the logos.

Sierra wasn't the only logo without transparency.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
9:42 PM Changeset in webkit [203939] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

The Sierra asset at build.webkit.org/dashboard/images/Sierra*.png has a white background
https://bugs.webkit.org/show_bug.cgi?id=160377

Patch by Alan Sien Wei Hshieh <hshieh@apple.com> on 2016-07-29
Reviewed by Brian Weinstein.

Update assets to remove the white background and use a transparent background instead.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png:
8:22 PM Changeset in webkit [203938] by ddkilzer@apple.com
  • 12 edits in trunk/Source/ThirdParty/ANGLE

ANGLE: Fix global constructors and exit-time destructors
<https://webkit.org/b/160332>

Reviewed by Darin Adler.

  • Configurations/Base.xcconfig:
  • Add warning flags.
  • src/common/angleutils.cpp:

(FormatString):

  • src/common/angleutils.h:

(MakeStaticString):

  • src/common/debug.cpp:
  • src/common/mathutil.cpp:

(gl::g_sharedexp_max):
(gl::convertRGBFloatsTo999E5):

  • src/compiler/translator/ShaderLang.cpp:

(ShGetUniformRegisterMap):

  • src/libANGLE/Caps.cpp:

(gl::TextureCapsMap::get):

  • src/libANGLE/Device.cpp:

(egl::GetDeviceSet):

  • src/libANGLE/Display.cpp:

(egl::Display::getClientExtensionString):

  • src/libANGLE/formatutils.cpp:

(gl::BuildFormatMap):
(gl::BuildInternalFormatInfoMap):
(gl::GetInternalFormatMap):
(gl::BuildAllSizedInternalFormatSet):
(gl::GetSizedInternalFormat):
(gl::GetAllSizedInternalFormats):

  • src/libANGLE/validationES3.cpp:

(gl::BuildES3FormatSet):
(gl::ValidateTexImageFormatCombination):
(gl::BuildSizedEffectiveInternalFormatList):
(gl::BuildUnsizedEffectiveInternalFormatList):
(gl::GetEffectiveInternalFormat):
(gl::BuildValidES3CopyTexImageCombinations):
(gl::IsValidES3CopyTexImageCombination):

  • Fix global constructors and exit-time destructors.
7:02 PM Changeset in webkit [203937] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

TypedArray super constructor has some incompatabilities
https://bugs.webkit.org/show_bug.cgi?id=160369

Reviewed by Filip Pizlo.

This patch fixes the length proprety of the TypedArray super constructor.
Additionally, the TypedArray super constructor should no longer be callable.

Also, this patch fixes the expected result of some test262 tests.

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::finishCreation):
(JSC::constructTypedArrayView):
(JSC::JSTypedArrayViewConstructor::getCallData):

  • tests/test262.yaml:
6:25 PM Changeset in webkit [203936] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Ignore most check-webkit-style checks for ANGLE project
<https://webkit.org/b/160333>

Reviewed by Daniel Bates.

  • Scripts/webkitpy/style/checker.py: Ignore all checkers except:
  • No tabs.
  • No spaces at the end of lines.
  • No carriage returns (DOS line endings).
6:08 PM Changeset in webkit [203935] by Chris Dumez
  • 15 edits
    2 adds in trunk

Window's named properties should be exposed on a WindowProperties object in its prototype
https://bugs.webkit.org/show_bug.cgi?id=160354

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window's named properties should be exposed on a WindowProperties object
in its prototype:

Firefox and Chrome both comply with the specification. However, WebKit
had no "WindowProperties" object in the Window prototype chain and the
named properties are exposed on the Window object itself.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Deleted.
(WebCore::JSDOMWindow::put): Deleted.
(WebCore::JSDOMWindow::putByIndex): Deleted.
(WebCore::JSDOMWindow::getEnumerableLength): Deleted.

  • bindings/js/JSDOMWindowProperties.cpp: Added.

(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):

  • bindings/js/JSDOMWindowProperties.h: Added.

(WebCore::JSDOMWindowProperties::create):
(WebCore::JSDOMWindowProperties::createStructure):
(WebCore::JSDOMWindowProperties::JSDOMWindowProperties):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

LayoutTests:

  • fast/dom/Window/es52-globals-expected.txt:

Update / Rebaseline test now that named properties are no longer reported as "own"
properties on the Window object. I have verified that the test gives the
same result in Firefox and Chrome.

  • fast/loader/window-clearing-expected.txt:

Rebaseline test that prints one more line because there is one more
object in Window's prototype chain.

  • http/tests/security/window-named-proto-expected.txt:
  • http/tests/security/window-named-valueOf-expected.txt:

Rebaseline 2 security tests that give slightly different output. The new
output is identical to the one in Firefox and Chrome. The tests are not
failing since they are not alert'ing content from the other frame.
The reason those tests were logging a security error is because we would
previously prevent named property access if the frame name conflicts with
a property name in the Window prototype, and we now no longer
differentiate this case.

5:54 PM Changeset in webkit [203934] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/workers/methods-async.html as flaky on ios-simulator release WK2
https://bugs.webkit.org/show_bug.cgi?id=160368

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:53 PM Changeset in webkit [203933] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

5:39 PM Changeset in webkit [203932] by Ryan Haddad
  • 3 edits
    1 copy
    1 move in trunk/LayoutTests

Rebaseline fast/block/float/overhanging-tall-block.html for Sierra.

Unreviewed test gardening.

  • platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.png: Renamed from LayoutTests/platform/mac/fast/block/float/overhanging-tall-block-expected.png.
  • platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/overhanging-tall-block-expected.txt.
  • platform/mac/TestExpectations:
  • platform/mac/fast/block/float/overhanging-tall-block-expected.txt:
5:30 PM Changeset in webkit [203931] by dbates@webkit.org
  • 3 edits
    4 adds in trunk

Crash under HTMLMediaElement::{resolve, reject}PendingPlayPromises() when playback is interrupted
https://bugs.webkit.org/show_bug.cgi?id=160366
<rdar://problem/27317407>

Reviewed by Eric Carlson.

Source/WebCore:

Fixes a crash/assertion failure in DeferredWrapper::{resolve, rejectWithValue}() caused by a Promise
being settled twice. In particular, if a system interruption occurs when media.play() is invoked
the returned Promise may ultimately be settled twice upon cessation of the interruption.

A Promise can be settled (resolved) exactly once. When a system interruption occurs media
playback is paused and resumes on cessation of the interruption. Currently we also immediately
reject the Promise p retuned by media.play() if the interruption occurs during its invocation.
So, when we resume playback on cessation of an interruption we try to resolve p again. But a
Promise can only be resolved once and hence we violate the assertions that p has both a valid
reference to a JSPromiseDeferred object and a reference to the global object of the page.

Tests: media/non-existent-video-playback-interrupted.html

media/video-playback-interrupted.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::play): Modified to reject the Promise and return immediately if
playInternal() returns false.
(WebCore::HTMLMediaElement::playInternal): Treat an interruption as success and return true
so that HTMLMediaElement::play() adds the Promise to the end of the list of pending promises.
We treat an interruption as a success because we will resume playback (assuming the media
can be loaded and is well-formed) upon cessation of the interruption and therefore can either
fulfill or reject the Promise object returned by media.play().

LayoutTests:

  • media/non-existent-video-playback-interrupted-expected.txt: Added.
  • media/non-existent-video-playback-interrupted.html: Added.
  • media/video-playback-interrupted-expected.txt: Added.
  • media/video-playback-interrupted.html: Added.
5:13 PM Changeset in webkit [203930] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] HTMLMediaElement::updateVolume() calls MediaPlayer::volume() on null media player
https://bugs.webkit.org/show_bug.cgi?id=160353

Reviewed by Eric Carlson.

Using testing functions HTMLMediaElement::updateVolume() can be called on a <video> element
without an associated video. We should support this usage on iOS just as we do for non-iOS
ports.

The use of testing functions to call HTMLMediaElement::updateVolume() on a <video> element
without an associated video is demonstrated by the test LayoutTests/media/video-muted-after-setting-page-muted-state.html.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateVolume):

5:11 PM Changeset in webkit [203929] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27611932.

  • platform/mac-wk1/TestExpectations:
5:11 PM Changeset in webkit [203928] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Media controls are not displayed for some autoplaying videos at certain browser dimensions
https://bugs.webkit.org/show_bug.cgi?id=160360
<rdar://problem/27179484>

Reviewed by Myles C. Maxfield.

Source/WebCore:

Previously, if a video's aspect ratio fell outside of the range [0.5, 1.8], we would
not consider it main content and would subsequently not show media controls for it.
This meant that on many websites that scale video dimensions to match the mainframe,
if the mainframe is too wide (e.g. full bounds on a widescreen display) we would not
consider the video to be main content. To fix this, we only consider aspect ratio to
be a requirement if the video does not already take up most of the space in the
mainframe.

Covered by two new TestWebKitAPI unit tests.

  • html/MediaElementSession.cpp:

(WebCore::isElementLargeRelativeToMainFrame):
(WebCore::isElementLargeEnoughForMainContent):

Tools:

Adds two tests verifying that videos may be considered main content as long as they
are large enough and cover a majority of the mainframe's viewport.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/full-size-autoplaying-video-with-audio.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/skinny-autoplaying-video-with-audio.html: Added.
5:07 PM Changeset in webkit [203927] by Ryan Haddad
  • 2 edits
    23 adds in trunk/LayoutTests

Test gardening on ios-simualtor after some media tests were unskipped in r203906.

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/media/audio-controls-rendering-expected.txt: Added.
  • platform/ios-simulator/media/audio-repaint-expected.txt: Added.
  • platform/ios-simulator/media/controls-strict-expected.txt: Added.
  • platform/ios-simulator/media/controls-styling-strict-expected.txt: Added.
  • platform/ios-simulator/media/controls-without-preload-expected.txt: Added.
  • platform/ios-simulator/media/media-controls-clone-expected.txt: Added.
  • platform/ios-simulator/media/track/track-cue-rendering-horizontal-expected.txt: Added.
  • platform/ios-simulator/media/track/track-cue-rendering-vertical-expected.txt: Added.
  • platform/ios-simulator/media/video-aspect-ratio-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-localized-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-sorted-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-rendering-expected.txt: Added.
  • platform/ios-simulator/media/video-display-toggle-expected.txt: Added.
  • platform/ios-simulator/media/video-empty-source-expected.txt: Added.
  • platform/ios-simulator/media/video-layer-crash-expected.txt: Added.
  • platform/ios-simulator/media/video-no-audio-expected.txt: Added.
  • platform/ios-simulator/media/video-transformed-expected.txt: Added.
  • platform/ios-simulator/media/video-volume-slider-expected.txt: Added.
  • platform/ios-simulator/media/video-zoom-controls-expected.txt: Added.
  • platform/ios-simulator/media/video-zoom-expected.txt: Added.
5:07 PM Changeset in webkit [203926] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.44

New tag.

4:42 PM Changeset in webkit [203925] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Undefined Behavior in JSValue cast from NaN
https://bugs.webkit.org/show_bug.cgi?id=160322

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-07-29
Reviewed by Mark Lam.

JSValues can be constructed from doubles, and in some cases, are deliberately constructed with NaN values.

In circumstances where NaN is bound through the default JSValue constructor, however, an undefined conversion
to int32_t occurs. While the subsequent if statement should fail and construct the JSValue through the explicit
double constructor, given that the deliberate use of NaN is fairly common, it seems that the jsNaN() function
should immediately call the explicit double constructor both for efficiency and to prevent inadvertent
suppressing of any other bugs which may be instantiating a JSValue with a NaN double.

  • runtime/JSCJSValueInlines.h:

(JSC::jsNaN): Explicit double construction for NaN JSValues to avoid undefined behavior.

4:41 PM Changeset in webkit [203924] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not set negative rate on AVSampleBufferRenderSynchronizer.
https://bugs.webkit.org/show_bug.cgi?id=160326
<rdar://problem/27355214>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble):

LayoutTests:

Negative rate is not supported at the moment.

  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control-expected.txt: Added.
  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html: Added.
3:04 PM Changeset in webkit [203923] by msaboff@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Refactor DFG::Node::hasLocal() to accessesStack()
https://bugs.webkit.org/show_bug.cgi?id=160357

Reviewed by Filip Pizlo.

Refactoring in preparation for using register arguments for JavaScript calls.

Renamed Node::hasLocal() to Node::accessesStack() and changed all uses accordingly.
Also changed uses of Node::hasVariableAccessData() to accessesStack() where that
use guards stack operation logic associated with the Node's VariableAccessData.

The hasVariableAccessData() check now implies no more than the node has a
VariableAccessData and nothing about its use of that data to coordinate stack
accesses.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGLiveCatchVariablePreservationPhase.cpp:

(JSC::DFG::LiveCatchVariablePreservationPhase::handleBlock):

  • dfg/DFGMaximalFlushInsertionPhase.cpp:

(JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):

  • dfg/DFGNode.h:

(JSC::DFG::Node::containsMovHint):
(JSC::DFG::Node::accessesStack):
(JSC::DFG::Node::hasLocal): Deleted.

  • dfg/DFGPredictionInjectionPhase.cpp:

(JSC::DFG::PredictionInjectionPhase::run):

  • dfg/DFGValidate.cpp:
3:01 PM Changeset in webkit [203922] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

[macOS Sierra] Test gardening after r198859
https://bugs.webkit.org/show_bug.cgi?id=160358
<rdar://problem/26422274>

Reviewed by Zalan Bujtas.

RTL Scrollbars are not enabled on WK1, so this test should be marked in the
same way as all the other RTL scrollbars tests.

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:58 PM Changeset in webkit [203921] by benjamin@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Use the same data structures for DFG and Air Liveness Analysis
https://bugs.webkit.org/show_bug.cgi?id=160346

Reviewed by Geoffrey Garen.

In Air, we minimized memory accesses during liveness analysis
with a couple of tricks:
-Use a single Sparse Set ADT for the live value of each block.
-Manipulate compact positive indices instead of hashing values.

This patch brings the same ideas to DFG.

This patch still uses the same fixpoint algorithms.
The reason is Edge's KillStatus used by other phases. We cannot
use a block-boundary liveness algorithm and update KillStatus
simultaneously. It's something I'll probably revisit at some point.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::dump):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGGraph.h:

(JSC::DFG::Graph::maxNodeCount):
(JSC::DFG::Graph::nodeAt):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::setLiveValues):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):

  • dfg/DFGLivenessAnalysisPhase.cpp:

(JSC::DFG::LivenessAnalysisPhase::LivenessAnalysisPhase):
(JSC::DFG::LivenessAnalysisPhase::run):
(JSC::DFG::LivenessAnalysisPhase::processBlock):
(JSC::DFG::LivenessAnalysisPhase::addChildUse):
(JSC::DFG::LivenessAnalysisPhase::process): Deleted.

1:43 PM Changeset in webkit [203920] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Inactive/active network bar segments overlap when latency is zero
https://bugs.webkit.org/show_bug.cgi?id=160147
<rdar://problem/27516007>

Reviewed by Joseph Pecoraro.

TimelineRecordBar should hide the inactive segment when its duration
is less than the minimum displayable size. The active segment can
assume the whole width of the bar.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype.get secondsPerPixel):
Make secondsPerPixel available during TimelineRecordBars.refresh.

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar.prototype.refresh):
Check inactive duration against the minimum display size,
and add/remove DOM nodes and bar styles as needed.

1:29 PM Changeset in webkit [203919] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Remove a Sierra specific expectation for http/tests/navigation/forward-and-cancel.html,
we already have an identical one in platform/mac.

  • platform/mac-wk1/TestExpectations:
1:18 PM Changeset in webkit [203918] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Skip some media tests that fail on iOS

  • platform/ios-simulator/TestExpectations:
12:46 PM Changeset in webkit [203917] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[macOS Sierra] Unskip new emoji group candidates tests
https://bugs.webkit.org/show_bug.cgi?id=160351
<rdar://problem/27430381>

Reviewed by Alexey Proskuryakov.

  • platform/mac/TestExpectations:
12:45 PM Changeset in webkit [203916] by mmaxfield@apple.com
  • 6 edits in trunk

Backspace key removes only the rainbow from the rainbow flag
https://bugs.webkit.org/show_bug.cgi?id=160349
<rdar://problem/27594995>

Reviewed by Dean Jackson.

Source/WebCore:

In r203330 I added support for new emoji group candidates. I accidentally
missed one of the new emoji code points.

Test: editing/deleting/delete-emoji.html

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

LayoutTests:

  • platform/mac/editing/deleting/delete-emoji-expected.txt:
  • platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt:
  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:
12:27 PM Changeset in webkit [203915] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Gardening: removed unused variable.

Not reviewed.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

12:19 PM Changeset in webkit [203914] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebCore

Merge r203904. rdar://problem/27610935

12:11 PM Changeset in webkit [203913] by n_wang@apple.com
  • 11 edits
    2 adds in trunk

AX: Media controls accessibility improvement
https://bugs.webkit.org/show_bug.cgi?id=160223
<rdar://problem/27558003>

Reviewed by Eric Carlson.

Source/WebCore:

Changes in this patch:

  1. Added a change observer for volume slider so that it will handle accessibility increment/decrement functions correctly.
  2. Update the timer div's aria-label when time changes.
  3. Added a keydown handler for left/right arrow adjusting the timeline, so that the value increment/decrement in a reasonable way.
  4. Changed the mute button's role to checkbox since it only has on/off states.

Test: media/media-controls-accessibility.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.updatePictureInPictureButton):
(Controller.prototype.timelineStepFromVideoDuration):
(Controller.prototype.incrementTimelineValue):
(Controller.prototype.decrementTimelineValue):
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe):
(Controller.prototype.handleTimelineMouseUp):
(Controller.prototype.handleTimelineKeyDown):
(Controller.prototype.handleMuteButtonClicked):
(Controller.prototype.handleMinButtonClicked):
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.updateVideoVolume):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.handleVolumeSliderChange):
(Controller.prototype.handleVolumeSliderMouseDown):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):
(Controller.prototype.updateVolume):

LayoutTests:

  • accessibility/mac/video-volume-slider-accessibility-expected.txt:
  • accessibility/mac/video-volume-slider-accessibility.html:
  • accessibility/media-emits-object-replacement-expected.txt:
  • media/media-controls-accessibility-expected.txt: Added.
  • media/media-controls-accessibility.html: Added.
  • platform/efl/accessibility/media-element-expected.txt:
  • platform/efl/accessibility/media-emits-object-replacement-expected.txt:
  • platform/gtk/accessibility/media-element-expected.txt:
  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt:
  • platform/mac/accessibility/media-element-expected.txt:
11:58 AM Changeset in webkit [203912] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

REGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change sidebar's width
https://bugs.webkit.org/show_bug.cgi?id=159646
<rdar://problem/27286338>

Reviewed by Brian Burg.

Remember sidebar width on per tab basis. For example, Node, Styles, and Layers sidebar panels in
Elements tab should all have the same width, but Resource sidebar panel in Debugger tab should NOT
share its width Element tab's sidebar.

TabContentView stores the width but TabBrowser manages saving and restoring it.
The same way collapsed sidebar state is handled.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.set collapsed):
Don't change sidebar's width when sidebar panels change.

(WebInspector.Sidebar.prototype._recalculateWidth):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel): Deleted.
Pass newWidth as an argument so it can be saved in TabBrowser.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel): Deleted.
(WebInspector.SidebarPanel.prototype.get savedWidth): Deleted.
(WebInspector.SidebarPanel.prototype.sizeDidChange): Deleted.
Remove the per sidebar panel width setting that was added in r195456.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._detailsSidebarWidthDidChange):
(WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):

  • UserInterface/Views/TabContentView.js:

(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
Store details sidebar width on TabContentView.

11:52 AM Changeset in webkit [203911] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Make StringView capable of being passed or returned in only 2 registers.
https://bugs.webkit.org/show_bug.cgi?id=160344

Reviewed by Geoffrey Garen.

We just need to #if out copy and move constructors and assignment operators.

After this change, the following test code:

JS_EXPORT_PRIVATE StringView returnStringView(StringView sv)
{

return sv;

}

... compiles to the following for x86_64:

ZN3JSC16returnStringViewEN3WTF10StringViewE:
000000000093fb20 pushq %rbp
000000000093fb21 movq %rsp, %rbp
000000000093fb24 movq %rdi, %rax Copy from arg word 0 to ret word 0.
000000000093fb27 movq %rsi, %rdx
Copy from arg word 1 to ret word 1.
000000000093fb2a popq %rbp
000000000093fb2b retq

... and this for arm64:

ZN3JSC16returnStringViewEN3WTF10StringViewE:
0000000000818504 ret arg word 0 and 1 are in the same regs as ret word 0 and 1.

  • wtf/text/StringView.h:

(WTF::StringView::StringView):
(WTF::StringView::~StringView):
(WTF::StringView::operator=):

11:47 AM Changeset in webkit [203910] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Remove an unused line of code.
https://bugs.webkit.org/show_bug.cgi?id=160350

Reviewed by Simon Fraser.

No new tests because there's no behavior change. Just removing dead code.

SVGInlineTextBox::paintText() instantiates a local variable selectionTextRun.
Thanks to analysis by Said Abou-Hallawa, we know that selectionTextRun
was introduced in https://trac.webkit.org/changeset/61393, but was later
rendered unused in https://trac.webkit.org/changeset/62099 because we
switched to using paintTextWithShadows() with the selectionStyle. Hence,
selectionTextRun can be removed.

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintText):

11:45 AM Changeset in webkit [203909] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Crash with an Invalid Web Process IPC Message ID: WebPageProxy.AttributedStringForCharacterRangeCallback
https://bugs.webkit.org/show_bug.cgi?id=160334
<rdar://problem/27078089>

Reviewed by Alexey Proskuryakov.

The crash is most likely caused by an MESSAGE_CHECK failure in WebPageProxy::attributedStringForCharacterRangeCallback
which marks the currently dispatching message was invalid inside the macro.

Make sure we never fail this check by sending an empty EditingRange in attributedSubstringForCharacterRangeAsync when
the editing range we're about to send to the UIProcess is invalid in WebProcess.

Unfortunately, no new tests since we don't have any reproduction and I couldn't spot any code path in which we end up
with an invalid EditingRage here with multiple inspection of the relevant code.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):

11:40 AM Changeset in webkit [203908] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Assertion in NetworkGridContentView when updating data grid for the first time
https://bugs.webkit.org/show_bug.cgi?id=160330
<rdar://problem/27600905>

Reviewed by Brian Burg.

When the first grid node is added, a view layout and current time update
are scheduled. A view layout occurring before the current time is updated
should be skipped, since the ruler end time hasn't been set.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView.prototype.layout):
Skip layout until current time is updated.
(WebInspector.NetworkGridContentView.prototype._update):
Remove unused variables startTime and endTime. Don't force a layout
if the elapsed time is zero.

11:38 AM Changeset in webkit [203907] by Csaba Osztrogonác
  • 3 edits
    1 delete in trunk/Source

Remove PassRef.h after r177259
https://bugs.webkit.org/show_bug.cgi?id=160348

Reviewed by Andreas Kling.

Source/WebKit/win:

  • WebCoreSupport/WebVisitedLinkStore.h:

Source/WTF:

  • wtf/PassRef.h: Removed.
10:54 AM Changeset in webkit [203906] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Unskip some media tests on iOS when run in WebKitTestRunner

As a step towards running the various media tests on iOS, unskip LayoutTests/media
when run in WebKitTestRunner in the iOS Simulator. Incorporate the reasons we skip some
of the iOS tests from r189372. For now continue to skip LayoutTest/media when run in
DumpRenderTree in the iOS Simulator as many tests crash and are otherwise flaky. Further
investigation is required.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator/TestExpectations:
10:49 AM Changeset in webkit [203905] by Wenson Hsieh
  • 2 edits in trunk/Tools

Add TestWebKitAPI support for interacting with media controls
https://bugs.webkit.org/show_bug.cgi?id=160342
<rdar://problem/27610246>

Reviewed by Beth Dakin.

Adds support for testing interaction with some media controls, as well as a basic test
verifying that media control teardown after interaction does not result in a crash.

  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[WKWebView mouseDownAtPoint:]):
(-[WKWebView performAfterLoading:]):
(TestWebKitAPI::TEST):

10:47 AM Changeset in webkit [203904] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

Change internal AVCaptureDeviceType typedef name
https://bugs.webkit.org/show_bug.cgi?id=160345
<rdar://problem/27610935>

Reviewed by Dean Jackson.

  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::create): AVCaptureDeviceType -> AVCaptureDeviceTypedef
(WebCore::AVAudioCaptureSource::AVAudioCaptureSource): Ditto.

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::captureDeviceList): Ditto.
(WebCore::shouldConsiderDeviceInDeviceList): Ditto.
(WebCore::AVCaptureDeviceManager::refreshCaptureDeviceList): Ditto.
(WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints): Ditto.
(WebCore::AVCaptureDeviceManager::deviceConnected): Ditto.
(WebCore::AVCaptureDeviceManager::deviceDisconnected): Ditto.
(-[WebCoreAVCaptureDeviceManagerObserver deviceDisconnected:]): Ditto.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::globaVideoCaptureSerialQueue): Ditto.
(WebCore::AVMediaCaptureSource::AVMediaCaptureSource): Ditto.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.

10:38 AM Changeset in webkit [203903] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

color-gamut media query returns incorrect results
https://bugs.webkit.org/show_bug.cgi?id=160166
<rdar://problem/27537577>

Reviewed by Darin Adler.

While I was unable to reproduce the originator's issue,
we communicated via email and it might have been related
to a customized color space calibration on an external
display.

Anyway, I took this opportunity to update to use the
more appropriate API for detection on macOS Sierra.

Covered by the existing fast/media/mq-color-gamut.html test.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenSupportsExtendedColor): Use NSScreen canRepresentDisplayGamut.

10:19 AM Changeset in webkit [203902] by commit-queue@webkit.org
  • 4 edits in trunk

Crash Log Clobbering on Unbound Crashes
https://bugs.webkit.org/show_bug.cgi?id=160198
<rdar://problem/27472618>

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-07-29
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/system/crashlogs.py:

(CrashLogs): Fix header order.

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.output_filename): Only remove file extension if it is clearly a file extension.

10:00 AM Changeset in webkit [203901] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>

Patch by George Ruan <gruan@apple.com> on 2016-07-29
Reviewed by Eric Carlson.

Source/WebCore:

Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html

fast/mediastream/MediaStream-video-element-video-tracks-disabled.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks

that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.

  • fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the

frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.

  • platform/mac-wk2/TestExpectations: MediaStream-video-element-video-tracks-disabled.html fails on El

Capitan due to incorrect behavior of AVSampleBufferDisplayLayer's API call flushAndRemoveImage.

7:12 AM Changeset in webkit [203900] by commit-queue@webkit.org
  • 16 edits in trunk

[Fetch API] Activate credentials mode
https://bugs.webkit.org/show_bug.cgi?id=160292

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-29
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies.js: Fixin otherRemote computation.

(corsCookies): ensuring cookie clean-up is done in case of error before going to the next test.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/cookies-expected.txt:
  • web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt:

Source/WebCore:

Covered by updated and rebased tests.

Previously the allowCredentials option was computed by DocumentThreadableLoader clients.
This option is really similar to the credentials flag in the fetch specification and should be handled at lower levels.
In the future, it might be good to retire that option.

In case of Omit mode, we need to explicitely disable cookies in DocumentThreadableLoader.
This should be updated so that ResourceLoader does it, depending on credential flag being set or not.

Updated DocumentThreadableLoader clients to only use FetchOptions::Credentials.
This allows to link code more easely to specification.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Removing use of allowCredentials option. Using FetchOptions::Credentials instead.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): Ditto.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource): Ditto.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Computing allowCredentials from FetchOptions::Credentials.
(WebCore::DocumentThreadableLoader::loadRequest): Enabling cookie only if allowed to use credentials. This is in
particular useful for FetchOptions::Credentials::Omit mode.

  • page/EventSource.cpp:

(WebCore::EventSource::connect): Removing use of allowCredentials option. Using FetchOptions::Credentials instead.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously): Ditto.
(WebCore::WorkerScriptLoader::loadAsynchronously): Ditto.

  • xml/XMLHttpRequest.cpp: Ditto.

(WebCore::XMLHttpRequest::createRequest):

7:00 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
4:08 AM Changeset in webkit [203899] by commit-queue@webkit.org
  • 18 edits
    4 copies
    1 delete in trunk

CrossOrigin preflight checker should compute the right Access-Control-Request-Headers value
https://bugs.webkit.org/show_bug.cgi?id=160028

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-29
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-no-preflight.js:

(corsNoPreflight): fixing bugs in that test and adding new test to cover mime type checking that should ignore case.

  • web-platform-tests/fetch/api/cors/cors-preflight-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight.html:
  • web-platform-tests/fetch/api/cors/cors-preflight.js:

(corsPreflight): Adding safe headers to the request and checking more precisely sent Access-Control-Request-Headers header value.

Source/WebCore:

Covered by updated test.

Computing Access-Control-Request-Headers value according https://fetch.spec.whatwg.org/#cors-preflight-fetch:

  • Remove safe headers
  • lowercase header names
  • sort lexicographically header names

The only difference is that we keep separating headers with ', ' instead of ',' as per the spec.
Also, some headers that might be safe are still marked as unsafe (DPR, Downlink...).

Moved setting of Origin header after preflighting, consistently with fetch spec.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createAccessControlPreflightRequest): Implementing new computation of Access-Control-Request-Headers.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): Removing call to updateRequestForAccessControl (which sets Origin header value).
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Adding call to updateRequestForAccessControl.
(WebCore::DocumentThreadableLoader::preflightSuccess): Ditto.

  • platform/network/HTTPParsers.cpp:

(WebCore::isCrossOriginSafeRequestHeader): Helper routine to implement https://fetch.spec.whatwg.org/#cors-safelisted-request-header.

  • platform/network/HTTPParsers.h:

LayoutTests:

Rebasing regular tests. Also updating skipped worker tests.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • platform/mac/TestExpectations:
3:49 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:58 AM Changeset in webkit [203898] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Update for contributors.json
https://bugs.webkit.org/show_bug.cgi?id=160294

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2016-07-29

  • Scripts/webkitpy/common/config/contributors.json:
12:59 AM Changeset in webkit [203897] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, ByValInfo is only used in JIT enabled environments
https://bugs.webkit.org/show_bug.cgi?id=158908

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::stronglyVisitStrongReferences):

12:37 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:21 AM Changeset in webkit [203896] by fred.wang@free.fr
  • 6 edits in trunk/Source/WebCore

Parse the operator text on the MathMLOperatorElement class.
https://bugs.webkit.org/show_bug.cgi?id=160241

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-29
Reviewed by Darin Adler.

The text of the MathML operators is important to determine form or dictionary properties and
hence provide default values when no explicit attributes are privided. Since that text only
depends on the MathML DOM content, it makes sense to move its parsing into
MathMLOperatorElement. Anonymous operators created by the mfenced elements still need to be
handled specially and this will be true for all the operator properties that can just be
determined in MathMLOperatorElement. Hence in a follow-up patch we will introduce a class
to move all the code specific to mfenced in a class derived from RenderMathMLOperator while
we continue to move the corresponding code for non-anonymous into MathMLOperatorElement.

No new tests, behavior is unchanged.

  • mathml/MathMLOperatorElement.cpp: Include header for hyphenMinus/minusSign characters.

(WebCore::MathMLOperatorElement::parseOperatorText): Move that code from rebuildTokenContent
(WebCore::MathMLOperatorElement::operatorText): Helper function to get the cached text.
(WebCore::MathMLOperatorElement::childrenChanged): Make the cached text dirty.

  • mathml/MathMLOperatorElement.h: Update defitions and add a member for the operator text.
  • mathml/MathMLTextElement.h: Make childrenChanged overridable.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::element): Helper function to cast to a MathMLOperatorElement.
(WebCore::RenderMathMLOperator::textContent): Helper function to call
MathMLOperatorElement::operatorText or fallback to m_textContent for anonymous operators.
m_textContent and this special case can be moved into a derived class later.
(WebCore::RenderMathMLOperator::setOperatorProperties): Call textContent().
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Ditto.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Remove the string parameter and the
parsing of the operator text.
(WebCore::RenderMathMLOperator::updateTokenContent): Call textContent(). The special function
for anonymous operators also parses the text content but this could be moved into a derived
class later.
(WebCore::RenderMathMLOperator::shouldAllowStretching): Call textContent().
(WebCore::RenderMathMLOperator::useMathOperator): Ditto.
(WebCore::RenderMathMLOperator::RenderMathMLOperator): No need to initialize m_textContent
as it is not used anymore for non-anonymous renderers.

  • rendering/mathml/RenderMathMLOperator.h: Update definitions and call textContent().
12:15 AM Changeset in webkit [203895] by Yusuke Suzuki
  • 33 edits
    1 add in trunk/Source/JavaScriptCore

JSC::Symbol should be hash-consed
https://bugs.webkit.org/show_bug.cgi?id=158908

Reviewed by Filip Pizlo.

Previously, SymbolImpls held by symbols represent identity of symbols.
When we check the equality between symbols, we need to load SymbolImpls of symbols and compare them.

This patch performs hash-consing onto the symbols. We cache symbols in per-VM's SymbolImpl-keyed WeakGCMap.
When creating a new symbol from SymbolImpl, we first query to this map and reuse the previously created symbol
if it is found. This ensures that one-on-one correspondence between SymbolImpl and symbol. So now, we can use
pointer-comparison to query the equality of symbols.

This change drops SymbolImpl loads when checking the equality. Furthermore, we can use DFG CheckCell to symbol
when we would like to ensure that the given value is the expected symbol. This cleans up GetByVal's symbol-keyd
caching. Then, we changed CheckIdent to CheckStringIdent since it only checks the string case now. The symbol
case is handled by CheckCell.

Additionally, this patch also cleans up Map / Set implementation since we can use the logic for JSCell to symbols.

The performance effects in the related benchmarks are the followings.

baseline patch

bigswitch-indirect-symbol-or-undefined 85.6214+-1.0063 63.0522+-0.8615 definitely 1.3579x faster
bigswitch-indirect-symbol 84.9653+-0.6258 80.4900+-0.8008 definitely 1.0556x faster
fold-put-by-val-with-symbol-to-multi-put-by-offset

9.4396+-0.3726 9.2941+-0.3311 might be 1.0157x faster

inlined-put-by-val-with-symbol-transition

49.5477+-0.2401 ? 49.7533+-0.3369 ?

get-by-val-with-symbol-self-or-proto 11.9740+-0.0798 ? 12.1706+-0.2723 ? might be 1.0164x slower
get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple

4.1364+-0.0841 4.0872+-0.0925 might be 1.0120x faster

put-by-val-with-symbol 11.3709+-0.0223 11.3613+-0.0264
get-by-val-with-symbol-proto-or-self 11.8984+-0.0706 ? 11.9030+-0.0787 ?
polymorphic-put-by-val-with-symbol 31.4176+-0.0558 31.3825+-0.0447
implicit-bigswitch-indirect-symbol 61.3115+-0.6577 58.0098+-0.1212 definitely 1.0569x faster
get-by-val-with-symbol-bimorphic-check-structure-elimination-simple

3.3139+-0.0565 2.9947+-0.0732 definitely 1.1066x faster

get-by-val-with-symbol-chain-from-try-block

2.2316+-0.0179 2.2137+-0.0210

get-by-val-with-symbol-bimorphic-check-structure-elimination

10.6031+-0.2216 10.0939+-0.1977 definitely 1.0504x faster

get-by-val-with-symbol-check-structure-elimination

8.5576+-0.1521 7.7107+-0.1308 definitely 1.1098x faster

put-by-val-with-symbol-slightly-polymorphic

3.1957+-0.0538 2.9181+-0.0708 definitely 1.0951x faster

put-by-val-with-symbol-replace-and-transition

11.8253+-0.0757 11.6590+-0.0351 definitely 1.0143x faster

<geometric> 13.3911+-0.0527 12.7376+-0.0457 definitely 1.0513x faster

  • bytecode/ByValInfo.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::stronglyVisitStrongReferences):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasUidOperand):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileSymbolEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleSymbolEquality):
(JSC::DFG::SpeculativeJIT::compileCheckStringIdent):
(JSC::DFG::SpeculativeJIT::extractStringImplFromBinarySymbols): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIdent): Deleted.
(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStringIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::lowSymbolUID): Deleted.

  • jit/JIT.h:
  • jit/JITOperations.cpp:

(JSC::tryGetByValOptimize):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitByValIdentifierCheck):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
(JSC::JIT::emitIdentifierCheck): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline): Deleted.

  • runtime/JSFunction.cpp:

(JSC::JSFunction::setFunctionName):

  • runtime/MapData.h:
  • runtime/MapDataInlines.h:

(JSC::JSIterator>::clear): Deleted.
(JSC::JSIterator>::find): Deleted.
(JSC::JSIterator>::add): Deleted.
(JSC::JSIterator>::remove): Deleted.
(JSC::JSIterator>::replaceAndPackBackingStore): Deleted.

  • runtime/Symbol.cpp:

(JSC::Symbol::finishCreation):
(JSC::Symbol::create):

  • runtime/Symbol.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tests/stress/symbol-equality-over-gc.js: Added.

(shouldBe):
(test):

12:13 AM Changeset in webkit [203894] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203851. rdar://problem/27299339

12:13 AM Changeset in webkit [203893] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203825. rdar://problem/27578447

12:12 AM Changeset in webkit [203892] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203793. rdar://problem/27572612

12:12 AM Changeset in webkit [203891] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203790. rdar://problem/27328525

12:12 AM Changeset in webkit [203890] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203789. rdar://problem/27574519

12:12 AM Changeset in webkit [203889] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203780. rdar://problem/27569255

12:12 AM Changeset in webkit [203888] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203801. rdar://problem/26102954

12:12 AM Changeset in webkit [203887] by bshafiei@apple.com
  • 5 edits
    4 adds in branches/safari-602-branch

Merge r203764. rdar://problem/27434423

12:12 AM Changeset in webkit [203886] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203775. rdar://problem/23325160

12:12 AM Changeset in webkit [203885] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203755. rdar://problem/23325160

12:12 AM Changeset in webkit [203884] by bshafiei@apple.com
  • 16 edits
    2 adds in branches/safari-602-branch

Merge r203743. rdar://problem/23325160

12:12 AM Changeset in webkit [203883] by bshafiei@apple.com
  • 24 edits in branches/safari-602-branch

Merge r203855. rdar://problem/27557968

12:12 AM Changeset in webkit [203882] by bshafiei@apple.com
  • 28 edits
    2 adds in branches/safari-602-branch

Merge r203752. rdar://problem/27557968

12:12 AM Changeset in webkit [203881] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203746. rdar://problem/27527151

12:12 AM Changeset in webkit [203880] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r203741. rdar://problem/27480873

12:12 AM Changeset in webkit [203879] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203737. rdar://problem/21090897

12:12 AM Changeset in webkit [203878] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203724. rdar://problem/27536113

12:12 AM Changeset in webkit [203877] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch

Merge r203711. rdar://problem/27279453

12:11 AM Changeset in webkit [203876] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203706. rdar://problem/27457941

12:11 AM Changeset in webkit [203875] by bshafiei@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r203698. rdar://problem/26986673

12:11 AM Changeset in webkit [203874] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Tools

Merge r203700. rdar://problem/27010112

12:11 AM Changeset in webkit [203873] by bshafiei@apple.com
  • 3 edits
    2 moves
    1 add
    1 delete in branches/safari-602-branch

Merge r203695. rdar://problem/27010112

12:11 AM Changeset in webkit [203872] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203694. rdar://problem/27220338

12:11 AM Changeset in webkit [203871] by bshafiei@apple.com
  • 7 edits
    3 adds in branches/safari-602-branch

Merge r203690. rdar://problem/26668526

12:11 AM Changeset in webkit [203870] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebKit2

Merge r203687. rdar://problem/27399998

12:11 AM Changeset in webkit [203869] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203683. rdar://problem/27525634

12:11 AM Changeset in webkit [203868] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebInspectorUI

Merge r203673. rdar://problem/27517481

12:11 AM Changeset in webkit [203867] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r203671. rdar://problem/27409315

12:11 AM Changeset in webkit [203866] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203669. rdar://problem/27285070

12:11 AM Changeset in webkit [203865] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203667. rdar://problem/27506489

12:11 AM Changeset in webkit [203864] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebInspectorUI

Merge r203636. rdar://problem/27431121

12:11 AM Changeset in webkit [203863] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebKit2

Merge r203635. rdar://problem/27505943

12:11 AM Changeset in webkit [203862] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Source

Merge r203631. rdar://problem/24606557

12:11 AM Changeset in webkit [203861] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r203630. rdar://problem/27504958

12:11 AM Changeset in webkit [203860] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch

Merge r203629. rdar://problem/27438936

12:11 AM Changeset in webkit [203859] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r203622. rdar://problem/27495748

Jul 28, 2016:

11:45 PM Changeset in webkit [203858] by commit-queue@webkit.org
  • 21 edits in trunk

Binding generator should expose the visible interface name in error messages
https://bugs.webkit.org/show_bug.cgi?id=160192

Source/WebCore:

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-28
Reviewed by Darin Adler.

Covered by updated layout and binding tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Using visibleInterfaceName instead of interfaceName.
(GenerateFunctionCastedThis): Ditto.
(GenerateParametersCheck): Ditto.
(GenerateConstructorDefinition): Ditto.

  • bindings/scripts/test/JS/JSTestObj.cpp: Rebased.
  • bindings/scripts/test/TestObj.idl: Adding ConstructorCallWith to exercice change in GenerateConstructorDefinition.

LayoutTests:

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-28
Reviewed by Darin Adler.

  • editing/selection/extend-expected.txt:
  • fast/dom/Window/getComputedStyle-missing-parameter-expected.txt:
  • fast/dom/Window/getComputedStyle-missing-parameter.html:
  • fetch/fetch-error-messages-expected.txt:
  • fetch/fetch-error-messages.html: Adding test for Request.
  • js/dom/toString-and-valueOf-override-expected.txt:
  • js/getOwnPropertyDescriptor-unforgeable-attributes-expected.txt:
  • js/getOwnPropertyDescriptor-window-attributes-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax.html:
  • webaudio/createMediaStreamSource-null-expected.txt:
  • webaudio/createMediaStreamSource-null.html:
  • webaudio/decode-audio-data-basic-expected.txt:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/mediaelementaudiosourcenode-expected.txt:
  • webaudio/mediaelementaudiosourcenode.html:
10:22 PM Changeset in webkit [203857] by Carlos Garcia Campos
  • 17 edits in trunk/Source

Split calculateCacheSizes in two methods
https://bugs.webkit.org/show_bug.cgi?id=160237

Reviewed by Darin Adler.

Source/WebCore:

Rename getVolumeFreeSizeForPath as volumeFreeSizeForPath and make it available to all platforms adding an
implementation for mac.

  • platform/FileSystem.h:
  • platform/efl/FileSystemEfl.cpp:

(WebCore::volumeFreeSizeForPath):
(WebCore::getVolumeFreeSizeForPath): Deleted.

  • platform/glib/FileSystemGlib.cpp:

(WebCore::volumeFreeSizeForPath):
(WebCore::getVolumeFreeSizeForPath): Deleted.

  • platform/mac/FileSystemMac.mm:

(WebCore::volumeFreeSizeForPath):

  • platform/win/FileSystemWin.cpp:

(WebCore::volumeFreeSizeForPath):

Source/WebKit2:

It's used to calculate memory and disk cache sizes, but only the web process is interested in memory caches, and
the network process in disk cache. We can also avoid a lot of duplicated code between ports to set the cache model.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setCacheModel): Use calculateURLCacheSizes to set the disk cache size and call
platformSetURLCacheSize if not set to allow ports to setup platform specific cache.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::getCacheDiskFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().

  • Shared/CacheModel.cpp:

(WebKit::calculateMemoryCacheSizes): Calculate the memory and page cache sizes.
(WebKit::calculateURLCacheSizes): Calculate the disk cache size.
(WebKit::calculateCacheSizes): Deleted.

  • Shared/CacheModel.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess): Tell the page cache to clear backing stores for GTK+ port too. This was done before when
setting the cache model.
(WebKit::WebProcess::setCacheModel): Use calculateMemoryCacheSizes to setup memory caches and call
platformSetCacheModel to allow ports do more setup according to the cache model.
(WebKit::WebProcess::clearResourceCaches): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::WebProcess::platformClearResourceCaches): Deleted.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformClearResourceCaches): Deleted.

10:16 PM Changeset in webkit [203856] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

Database Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160188

Reviewed by Sergio Villar Senin.

This happens in ports with sandbox extensions disabled, and it's making several tests to crash in debug
builds. The SandboxExtension implementation is empty in case of building with sandbox extensions disabled, so
that we are actually allocating no extensions at all in
NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs(). When the message arrives to database
process, we have a list of paths, but an empty list of hanldes which causes the assertion. We can just avoid
that message entirely in case of building without sandbox extensions.

  • DatabaseProcess/DatabaseProcess.cpp:
  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):

10:14 PM UpdatingANGLE edited by ddkilzer@apple.com
(diff)
8:03 PM Changeset in webkit [203855] by mmaxfield@apple.com
  • 24 edits in trunk

Remove deprecated SPI for video inline / fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=160318

Reviewed by Tim Horton.

Source/WebCore:

r203752 deprecated the SPI allowsInlineMediaPlaybackWithPlaysInlineAttribute
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute (in favor of
inlineMediaPlaybackRequiresPlaysInlineAttribute). This patch removes the
deprecated SPI symbols.

No new tests because there is no behavior change.

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup): Deleted.
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.

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

(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Deleted.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp): Deleted.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration): Deleted.

7:09 PM Changeset in webkit [203854] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[iOS] TestWebKitAPI bundle targets are not code signed
https://bugs.webkit.org/show_bug.cgi?id=160328
<rdar://problem/27409246>

Patch by Daniel Bates <dabates@apple.com> on 2016-07-28
Reviewed by Andy Estes.

Workaround <rdar://problem/27459890> by explicitly defining Xcode build settings
CODE_SIGNING_ALLOWED and AD_HOC_CODE_SIGNING_ALLOWED to be YES so as to allow the
the TestWebKitAPI bundle targets to be code signed when building for the iOS simulator.

  • TestWebKitAPI/Configurations/Base.xcconfig:
6:23 PM Changeset in webkit [203853] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

ASSERTION FAILED in errorProtoFuncToString() when Error name is a single char string.
https://bugs.webkit.org/show_bug.cgi?id=160324
<rdar://problem/27389572>

Reviewed by Keith Miller.

The issue is that errorProtoFuncToString() was using jsNontrivialString() to
generate the error string even when the name string can be a single character
string. This is incorrect. We should be using jsString() instead.

  • runtime/ErrorPrototype.cpp:

(JSC::errorProtoFuncToString):

  • tests/stress/errors-with-simple-names-or-messages-should-not-crash-toString.js: Added.
6:19 PM Changeset in webkit [203852] by Chris Dumez
  • 9 edits
    2 adds in trunk

Add support for Element.getAttributeNames()
https://bugs.webkit.org/show_bug.cgi?id=160327

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/attributes-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Add support for Element.getAttributeNames():

Firefox already supports this, Chrome 52 does not yet.

Test: fast/dom/Element/getAttributeNames.html

  • bindings/js/JSDOMBinding.h:

(WebCore::JSValueTraits<AtomicString>::arrayJSValue):

  • dom/Element.cpp:

(WebCore::Element::getAttributeNames):

  • dom/Element.h:
  • dom/Element.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
Firefox 47.

  • fast/dom/Element/getAttributeNames-expected.txt: Added.
  • fast/dom/Element/getAttributeNames.html: Added.
5:30 PM Changeset in webkit [203851] by msaboff@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

ARM64: Fused left shift with a right shift can create NaNs from integers
https://bugs.webkit.org/show_bug.cgi?id=160329

Reviewed by Geoffrey Garen.

When we fuse a left shift and a right shift of integers where the shift amounts
are the same and the size of the quantity being shifted is 8 bits, we rightly
generate a sign extend byte instruction. On ARM64, we were sign extending
to a 64 bit quantity, when we really wanted to sign extend to a 32 bit quantity.

Checking the ARM64 marco assembler and we were extending to 64 bits for all
four combinations of zero / sign and 8 / 16 bits.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::zeroExtend16To32):
(JSC::MacroAssemblerARM64::signExtend16To32):
(JSC::MacroAssemblerARM64::zeroExtend8To32):
(JSC::MacroAssemblerARM64::signExtend8To32):

  • tests/stress/regress-160329.js: New test added.

(narrow):

4:52 PM Changeset in webkit [203850] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Disable WebKit2.ResizeWithHiddenContentDoesNotHang for now

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

(animatedResizeWebView):
(TEST):
This test times out only when run in the WebKit Testing simulator environment,
but not in a fresh simulator. Disabling to keep the bots green while under investigation.

4:29 PM Changeset in webkit [203849] by Chris Dumez
  • 8 edits in trunk

window.open.length should be 0
https://bugs.webkit.org/show_bug.cgi?id=160323

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

window.open.length should be 0 as all its parameters are optional:

It is 2 in WebKit. Firefox and Chrome agree with the specification and return 0.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::open):
Minor code optimization.

  • page/DOMWindow.idl:

Update IDL to match the specification and our custom implementation.
This makes us return the right "length" value.

LayoutTests:

Update existing test to reflect behavior change.

  • js/dom/function-length-expected.txt:
  • js/dom/function-length.html:
4:15 PM Changeset in webkit [203848] by Chris Dumez
  • 11 edits in trunk

Parameters to Event.initEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160320

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to Event.initEvent() should be mandatory:

Firefox agrees with the specification. Chrome does not.

No new tests, rebaselined existing tests.

  • dom/Event.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing tests to make sure they call initEvent() will all 3
parameters.

  • fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml:
  • fast/forms/form-submission-create-crash.xhtml:
  • js/arity-mismatch-at-vmentry.html:
3:21 PM Changeset in webkit [203847] by andersca@apple.com
  • 8 edits in trunk/Source

Move a Mail.app workaround closer to where it's actually needed
https://bugs.webkit.org/show_bug.cgi?id=160317

Reviewed by Tim Horton.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadArchive):

  • platform/network/cf/ResourceRequest.h:
  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.

  • platform/network/mac/ResourceRequestMac.mm:

(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchWillSendRequest):

  • WebView/WebFrame.mm:

(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]): Deleted.

3:17 PM Changeset in webkit [203846] by Chris Dumez
  • 4 edits in trunk

2 first parameters to window.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160319

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

2 first parameters to window.postMessage() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::handlePostMessage):

3:05 PM Changeset in webkit [203845] by Chris Dumez
  • 11 edits in trunk

First parameter to canvas.getContext() / probablySupportsContext() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160312

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.arguments.missing-expected.txt:

Source/WebCore:

First parameter to canvas.getContext() / probablySupportsContext()
should be mandatory:

Firefox and Chrome agree with the specification for getContext().
Neither of them supports probablySupportsContext().

No new tests, rebaselined existing tests.

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::getContext):
(WebCore::JSHTMLCanvasElement::probablySupportsContext):

  • html/HTMLCanvasElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/canvas/webgl/canvas-supports-context-expected.txt:
  • fast/canvas/webgl/canvas-supports-context.html:
2:51 PM Changeset in webkit [203844] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Hiding a column which contains a TimelineRuler as the headerview, doesn't hide the headerView
https://bugs.webkit.org/show_bug.cgi?id=160093
<rdar://problem/27499300>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype._positionHeaderViews):
Remove early return so that a header view in a hidden column will have
its width resized to zero, matching the column.

2:38 PM Changeset in webkit [203843] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Waterfall view should be visible in Network tab and Network Timeline
https://bugs.webkit.org/show_bug.cgi?id=160061

Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-07-28
Reviewed by Joseph Pecoraro.

Adds a Timeline-column (waterfall) to the Network tab and Network Timeline.

  • Localizations/en.lproj/localizedStrings.js:

Add "Timeline" localized string.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):
Add the Timeline-column with a TimelineRuler as the headerview,
and properties for updating current time.

(WebInspector.NetworkGridContentView.prototype.get secondsPerPixel):
(WebInspector.NetworkGridContentView.prototype.get startTime):
(WebInspector.NetworkGridContentView.prototype.get currentTime):
(WebInspector.NetworkGridContentView.prototype.get endTime):
Acting as a graphDataSource used by TimelineDataGridNode.

(WebInspector.NetworkGridContentView.prototype.shown):
(WebInspector.NetworkGridContentView.prototype.reset):
(WebInspector.NetworkGridContentView.prototype.layout):
Refresh graphs and update the TimelineRuler on layout changes.

(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Add listeners for when resources are finished to stop the timer.

(WebInspector.NetworkGridContentView.prototype._update):
(WebInspector.NetworkGridContentView.prototype._startUpdatingCurrentTime):
(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Adding a timer which updates the TimelineRuler and the layout
if any non-finished requests are running.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):
Add the Timeline-column with a TimelineRuler as the headerview.

(WebInspector.NetworkTimelineView.prototype.get secondsPerPixel):
(WebInspector.NetworkTimelineView.prototype.layout):
Refresh graphs on layout changes.

  • UserInterface/Views/TimelineDataGrid.css:

(.tree-outline.timeline-data-grid .item:hover .subtitle):
(.data-grid.timeline th):
(.data-grid.timeline th.graph-column > .timeline-ruler):
(.data-grid.timeline td.graph-column):
(.data-grid.timeline td.graph-column > .cell-content):
(.data-grid.timeline td.graph-column .timeline-record-bar):

2:19 PM Changeset in webkit [203842] by timothy_horton@apple.com
  • 13 edits
    2 adds in trunk

Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
https://bugs.webkit.org/show_bug.cgi?id=160289
<rdar://problem/27553464>

Reviewed by Simon Fraser.

API Tests: WebKit2.AnimatedResizeDoesNotHang, WebKit2.ResizeWithHiddenContentDoesNotHang

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
Avoid calling _endAnimatedResize when a commit comes in when we haven't yet received
a dynamic viewport update reply (and thus don't have a transaction ID to wait on).
Previously, in this case, _resizeAnimationTransformTransactionID would be 0,
and *any* commit would cause _endAnimatedResize to be called, causing us to always
fall into the worst-case sync wait.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
Make use of waitForDidUpdateViewState instead of having a separate waitForAndDispatchImmediately
here, because it knows to do things like dispatch the didUpdate message if it's still
pending. This also shortens the sync wait timeout from 1s to 500ms, which makes it
consistent with e.g. the newly-parented-view timeout duration, and should be nothing
but positive.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::timeoutRespectingIgnoreTimeoutsForTesting):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):

  • Platform/IPC/Connection.h:

(IPC::Connection::ignoreTimeoutsForTesting):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration ignoreSynchronousMessagingTimeoutsForTesting]):
(-[_WKProcessPoolConfiguration setIgnoreSynchronousMessagingTimeoutsForTesting:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching):
Add a mechanism for clients to cause all synchronous message timeouts to be effectively infinite.
The new API tests use this to ensure that the test will time out if they ever enter
the bad state (otherwise, the shorter sync wait timeout could make the test still pass).

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: Added.

(-[AnimatedResizeNavigationDelegate _webView:renderingProgressDidChange:]):
(-[AnimatedResizeWebView _endAnimatedResize]):
(animatedResizeWebView):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/blinking-div.html: Added.

Add two tests that ensure that hidden-content and animated resizes
don't cause unnecessary synchronous waits. Only the hidden-content
one fails before my patch, but it seemed reasonable to add both anyway.

2:17 PM Changeset in webkit [203841] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Use a RetainPtr in WebFrameLoaderClient::assignIdentifierToInitialRequest
https://bugs.webkit.org/show_bug.cgi?id=160315

Reviewed by Tim Horton.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::assignIdentifierToInitialRequest):

2:07 PM Changeset in webkit [203840] by Chris Dumez
  • 10 edits in trunk

Parameter to table.deleteRow() / body.deleteRow() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160307

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to table.deleteRow() / body.deleteRow() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • html/HTMLTableElement.idl:
  • html/HTMLTableSectionElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
2:02 PM Changeset in webkit [203839] by Ryan Haddad
  • 4 edits
    4 deletes in trunk

Unreviewed, rolling out r203826.
https://bugs.webkit.org/show_bug.cgi?id=160314

The test added with this change fails on El Capitan WK2.
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"HTMLVideoElement with MediaStream src shows paused image when
all video tracks are disabled"
https://bugs.webkit.org/show_bug.cgi?id=160222
http://trac.webkit.org/changeset/203826

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-28

1:56 PM Changeset in webkit [203838] by ap@apple.com
  • 3 edits in branches/safari-602-branch/LayoutTests

2016-07-28 Alexey Proskuryakov <ap@apple.com>

macOS Sierra test result gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
1:55 PM Changeset in webkit [203837] by ap@apple.com
  • 3 edits in trunk/LayoutTests

macOS Sierra test result gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
1:54 PM Changeset in webkit [203836] by Chris Dumez
  • 10 edits in trunk

2 first parameters to input.setSelectionRange() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160310

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

2 first parameters to input.setSelectionRange() should be mandatory:

Calling this method without the 2 first parameters makes little
sense.

Firefox agrees with the specification, Chrome does not.

No new tests, rebaselined existing test.

  • bindings/js/JSHTMLInputElementCustom.cpp:

(WebCore::JSHTMLInputElement::setSelectionRange):

  • html/HTMLInputElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
1:40 PM Changeset in webkit [203835] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Remove an unnecessary comment from UUID.h
https://bugs.webkit.org/show_bug.cgi?id=160313

Reviewed by Simon Fraser.

  • platform/UUID.h:
1:28 PM Changeset in webkit [203834] by mark.lam@apple.com
  • 3 edits
    1 add in trunk/Source

StringView should have an explicit m_is8Bit field.
https://bugs.webkit.org/show_bug.cgi?id=160282
<rdar://problem/27327943>

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • tests/stress/string-joining-long-strings-should-not-crash.js: Added.

(catch):

Source/WTF:

The current implementation reserves 1 bit in the 32-bit m_length field as an
is16Bit flag. As a result, a StringView is incapable of handling strings that
have a length of 32-bit in size. This results in a mismatch with the
expectations of String, StringImpl, and JavaScriptCore's JSString which all
support a 32-bit unsigned length.

This patch fixes this issue by introducing an explicit m_is8Bit field, thereby
allowing m_length to be a full 32-bit again.

We also introduced a clear() convenience method to set the fields of StringView
to empty values. Previously, we were duplicating the code for clearing those
fields. We now call clear() in all those places instead.

Note: in clear(), we set m_is8Bit to true because we want an empty StringView
to be 8-bit rather than 16-bit. This is consistent with what the empty() method
returns.

  • wtf/text/StringView.h:

(WTF::StringView::setUnderlyingString):
(WTF::StringView::StringView):
(WTF::StringView::operator=):
(WTF::StringView::initialize):
(WTF::StringView::clear):
(WTF::StringView::empty):
(WTF::StringView::length):
(WTF::StringView::operator bool):
(WTF::StringView::is8Bit):
(WTF::StringView::substring):
(WTF::StringView::getCharactersWithUpconvert):
(WTF::StringView::toString):
(WTF::StringView::toAtomicString):
(WTF::StringView::toFloat):
(WTF::StringView::toInt):
(WTF::StringView::toIntStrict):
(WTF::StringView::toStringWithoutCopying):
(WTF::StringView::find):

1:21 PM Changeset in webkit [203833] by Chris Dumez
  • 9 edits in trunk

Parameter to tr.deleteCell() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160308

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to tr.deleteCell() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLTableRowElement.idl:

Source/WebInspectorUI:

Report tr.deleteCell() parameter as mandatory.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
1:21 PM Changeset in webkit [203832] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

webkit-patch upload --suggest-reviewers shouldn't break in the presence of deleted or moved files
<https://webkit.org/b/83342>

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.revisions_changing_file): Remove code to raise an exception
when the file doesn't exist. If a file was moved or renamed,
then this caused the script to terminate, which was very
frustrating when you wanted a list of reviewers.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SCMTest._shared_test_revisions_changing_file): Update test
expectation to return an empty list of revisions.
(test_create_patch_is_full_patch): Drive-by fix when running all
webkitpy tests (including scm tests).

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN.revisions_changing_file): Catch ScriptError exceptions and
return an empty array of revisions if this occurs.

1:18 PM Changeset in webkit [203831] by Chris Dumez
  • 5 edits in trunk

[Bindings] "length" value of overloaded operations may be wrong
https://bugs.webkit.org/show_bug.cgi?id=160303

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

"length" value of overloaded operations may be wrong because we fail to
account for overloads when computing the length of a function:

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetFunctionLength):

  • bindings/scripts/test/JS/JSTestObj.cpp:
1:12 PM Changeset in webkit [203830] by aakash_jain@apple.com
  • 9 edits in trunk/Tools

EWS error message "Error: * did not process patch" should include explanation
https://bugs.webkit.org/show_bug.cgi?id=159903
<rdar://problem/27410788>

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._build_bubble): Display more detailed error message on bubbles when patch
is not processed.

  • QueueStatusServer/handlers/processingtimesjson.py:

(ProcessingTimesJSON._resultFromFinalStatus): Updated error message to match with rest
of the code.

  • Scripts/webkitpy/tool/bot/commitqueuetask.py:

(CommitQueueTask.validate): Add more information about validation failure.
(CommitQueueTask.run): Pass the error details in the PatchIsNotValid exception.

  • Scripts/webkitpy/tool/bot/earlywarningsystemtask.py:

(EarlyWarningSystemTask.validate): Add more information about validation failure.
(EarlyWarningSystemTask.run): Pass the error details in the PatchIsNotValid exception.

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchIsNotValid.init): Add the failure_message argument.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:

(AbstractEarlyWarningSystem.review_patch): Re-word the error message and include
failure details.

  • Scripts/webkitpy/tool/commands/queues.py:

(CommitQueue.process_work_item): Same.
(StyleQueue.review_patch): Same.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(test_non_valid_patch): Updated test-cases messages to match the above changes.

12:53 PM Changeset in webkit [203829] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.43.0.1/Source

Versioning.

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

Marking fast/dom/Window/child-window-focus.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=160309

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:50 PM Changeset in webkit [203827] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.43.0.1

New tag.

11:26 AM Changeset in webkit [203826] by Ryan Haddad
  • 4 edits
    4 adds in trunk

HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>

Patch by George Ruan <gruan@apple.com> on 2016-07-28
Reviewed by Eric Carlson.

Source/WebCore:

Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html

fast/mediastream/MediaStream-video-element-video-tracks-disabled.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks

that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.

  • fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the

frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.

11:19 AM Changeset in webkit [203825] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r202880): Default controls pip glyph inverted
https://bugs.webkit.org/show_bug.cgi?id=160304
<rdar://problem/27578447>

Reviewed by Eric Carlson.

I accidentally committed the "Exit Picture-in-picture" glyph
for the "Enter Picture-in-picture" buttons :(

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-panel .picture-in-picture-button):
Use the correct artwork.

11:17 AM Changeset in webkit [203824] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:17 AM Changeset in webkit [203823] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unskip some CSS tests that previously timed out on ios-simulator.

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:16 AM Changeset in webkit [203822] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.1

New tag.

11:14 AM Changeset in webkit [203821] by Chris Dumez
  • 3 edits
    2 adds in trunk

First parameter to SVGDocument.createEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160296

Reviewed by Alex Christensen.

Source/WebCore:

First parameter to SVGDocument.createEvent() should be mandatory:

This patch drops createEvent() from SVGDocument so that the spec-compliant
Document.createEvent() is used instead. In the specification, SVGDocument
no longer exists and is a simple Document.

Firefox and Chrome agree with the specification.

Test: svg/dom/SVGDocument-createEvent.html

  • svg/SVGDocument.idl:

LayoutTests:

Add test coverage.

  • svg/dom/SVGDocument-createEvent-expected.txt: Added.
  • svg/dom/SVGDocument-createEvent.html: Added.
11:04 AM Changeset in webkit [203820] by Chris Dumez
  • 6 edits in trunk

Parameters to CanvasGradient.addColorStop() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160297

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to CanvasGradient.addColorStop() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • html/canvas/CanvasGradient.idl:

LayoutTests:

Rebaseline existing test due to behavior change.

  • platform/mac/canvas/philip/tests/2d.missingargs-expected.txt:
11:01 AM Changeset in webkit [203819] by Ryan Haddad
  • 4 edits
    2 adds in trunk/LayoutTests

Unskip some compositing tests on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=152131

Unreviewed test gardening.

8:43 AM Changeset in webkit [203818] by commit-queue@webkit.org
  • 18 edits
    6 moves in trunk

[Streams API] Replace ReadableStreamController by ReadableStreamDefaultController
https://bugs.webkit.org/show_bug.cgi?id=160242

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-28
Reviewed by Youenn Fablet.

Replaced ReadableStreamController by ReadableStreamDefaultController to align
with updated Streams API specification.

No change in functionality.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamDefaultController.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamController.idl.
  • Modules/streams/ReadableStreamDefaultController.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamController.js.

(enqueue):
(error):
(close):
(desiredSize):

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamDefaultController):
(isReadableStreamDefaultController):

  • Modules/streams/ReadableStreamSource.h:

(WebCore::ReadableStreamSource::controller):
(WebCore::ReadableStreamSource::start):

  • Modules/streams/ReadableStreamSource.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamDefaultController):
(WebCore::JSBuiltinReadableStreamDefaultControllerPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultControllerPrivateConstructor):

  • bindings/js/JSReadableStreamPrivateConstructors.h:
  • bindings/js/JSReadableStreamSourceCustom.cpp:

(WebCore::JSReadableStreamSource::start):

  • bindings/js/ReadableStreamDefaultController.cpp: Renamed from Source/WebCore/bindings/js/ReadableStreamController.cpp.

(WebCore::callFunction):
(WebCore::ReadableStreamDefaultController::invoke):
(WebCore::ReadableStreamDefaultController::isControlledReadableStreamLocked):

  • bindings/js/ReadableStreamDefaultController.h: Renamed from Source/WebCore/bindings/js/ReadableStreamController.h.

(WebCore::ReadableStreamDefaultController::ReadableStreamDefaultController):
(WebCore::ReadableStreamDefaultController::close):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):
(WebCore::ReadableStreamDefaultController::globalObject):
(WebCore::ReadableStreamDefaultController::error<String>):

  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • streams/readable-stream-default-controller-error-expected.txt: Renamed from LayoutTests/streams/readable-stream-controller-error-expected.txt.
  • streams/readable-stream-default-controller-error.html: Renamed from LayoutTests/streams/readable-stream-controller-error.html.
  • streams/readable-stream-error-messages-expected.txt:
  • streams/readable-stream-error-messages.html:
  • streams/reference-implementation/readable-stream-expected.txt:
5:07 AM Changeset in webkit [203817] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Typo fix after r121885
https://bugs.webkit.org/show_bug.cgi?id=160288

Reviewed by Zoltan Herczeg.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::maxJumpReplacementSize):

2:28 AM Changeset in webkit [203816] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

64-bit alignment check isn't necessary in ARMAssembler::prepareExecutableCopy after r202214
https://bugs.webkit.org/show_bug.cgi?id=159711

Reviewed by Mark Lam.

  • assembler/ARMAssembler.cpp:

(JSC::ARMAssembler::prepareExecutableCopy):

2:27 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:30 AM Changeset in webkit [203815] by commit-queue@webkit.org
  • 35 edits in trunk

Compute fetch response type in case of cross-origin requests
https://bugs.webkit.org/show_bug.cgi?id=158565

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-28
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebasing fetch API tests as filtering is now done.
Rebasing XHR tests as console messages are no longer available when trying to access non-exposed headers.

  • web-platform-tests/XMLHttpRequest/getresponseheader-cookies-and-more-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache-expected.txt:

Source/WebCore:

Covered by rebased tests.

Implementing Response filtering based on Response tainting in ResourceResponse.
Refactoring code in FetchHeaders and CrossOriginAccessControl.cpp accordingly.

Computing response tainting in SubresourceLoader for all resources.
This is used by DocumentThreadableLoader which now filters responses accordingly for all its clients including fetch and XHR.

Response tainting notably allows computing the response type and filtering out headers in case of cross origin responses.

Removing the filtering implemented in XMLHttpRequest as this is done before it gets access to the headers.
This is triggering some rebasing in the XHR tests as error messages triggered by trying to access unsafe headers no longer happen.

This filtering currently requires creating a new ResourceResponse object from the one sent from CachedResource.
This is done so as the same ResourceResponse may be reused accross loads and may be filtered differently by given to two different DocumentThreadableLoader
This can be mitigated in the future by changing ThreadableLoaderClient API to pass a ResourceResponse&&.

  • Modules/fetch/FetchHeaders.cpp: Moving header checking in HTTParsers.h/.cpp

(WebCore::isForbiddenHeaderName): Deleted.
(WebCore::isForbiddenResponseHeaderName): Deleted.
(WebCore::isSimpleHeader): Deleted.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::parseAccessControlExposeHeadersAllowList): Deleted.

  • loader/CrossOriginAccessControl.h: Moving header checking in HTTParsers.h/.cpp
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::responseReceived):
(WebCore::DocumentThreadableLoader::didReceiveResponse): Doing response filtering. Since underlying loaders are
not yet aware that fetch mode may be cors (it is always no-cors currently), the tainting needs to be updated.
(WebCore::DocumentThreadableLoader::loadRequest): Computing response tainting in case of synchronous calls to ensure headers are filtered for synchronous XHR.

  • loader/DocumentThreadableLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init): Getting origin from its resource and setting response tainting accordingly
(WebCore::SubresourceLoader::willSendRequestInternal): Always calling checkRedirectionCrossOriginAccessControl
to ensure response tainting is computed, even for no-cors resources.
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl): Computing response tainting in case of redirection.

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load): Computing resource origin from the HTTP headers or from the document if none is
set in the HTTP headers.
(WebCore::CachedResource::setCrossOrigin): Helper routine to set response tainting.
(WebCore::CachedResource::isCrossOrigin): Helper routine to know whether resource is cross origin
(WebCore::CachedResource::isClean):
(WebCore::CachedResource::setResponse): Removing m_responseType

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::responseTainting):
(WebCore::CachedResource::origin):
(WebCore::CachedResource::setOpaqueRedirect): Deleted.

  • platform/network/HTTPParsers.cpp: Implementing safe response header checking

(WebCore::parseAccessControlExposeHeadersAllowList):
(WebCore::isForbiddenHeaderName):
(WebCore::isForbiddenResponseHeaderName):
(WebCore::isSimpleHeader):
(WebCore::isCrossOriginSafeHeader):

  • platform/network/HTTPParsers.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::hasHTTPOrigin): Added.
(WebCore::ResourceRequestBase::clearHTTPOrigin):

  • platform/network/ResourceRequestBase.h:
  • platform/network/ResourceResponseBase.cpp: Implementation of response filtering.

(WebCore::ResourceResponseBase::filterResponse):

  • platform/network/ResourceResponseBase.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::isSetCookieHeader): Deleted.
(WebCore::XMLHttpRequest::getAllResponseHeaders): Removing header filtering since DocumentThreadableLoader does it.
(WebCore::XMLHttpRequest::getResponseHeader): Ditto.

LayoutTests:

Rebasing fetch API tests as filtering is now done.
Rebasing XHR tests as console messages are no longer available when trying to access non-exposed headers.

  • http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt:
  • http/tests/xmlhttprequest/access-control-response-with-expose-headers-expected.txt:
  • http/tests/xmlhttprequest/get-dangerous-headers-expected.txt:
  • http/tests/xmlhttprequest/getResponseHeader-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:

Jul 27, 2016:

11:37 PM Changeset in webkit [203814] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Streams API] Use makeThisTypeError in ReadableStreamDefaultReader.js
https://bugs.webkit.org/show_bug.cgi?id=160254

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Darin Adler.

Use makeThisTypeError and makeGetterTypeError in ReadableStreamDefaultReader.js

No change in functionality.

  • Modules/streams/ReadableStreamDefaultReader.js:

(cancel):
(read):
(releaseLock):
(closed):

11:28 PM Changeset in webkit [203813] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[soup] Incorrect usage of relaxAdoptionRequirement in the constructor of SocketStreamHandle
https://bugs.webkit.org/show_bug.cgi?id=160281

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-27
Reviewed by Carlos Garcia Campos.

No new tests (No behavior change).

Incrementing refcount in a constructor causes an assertion failure
that it's not adopted yet. So, relaxAdoptionRequirement() was
used to avoid the problem in the constructors of
SocketStreamHandle. This is a incorrect solution. The correct
solution is to make SocketStreamHandle::create() increment the
refcount after calling the constructor.

  • platform/network/soup/SocketStreamHandle.h: Removed the second

constructor of SocketStreamHandle which is not used anymore.
Uninlined create() because this is not trivial anymore.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::create): Do the rest of jobs which
was done by the constructors.
(WebCore::SocketStreamHandle::SocketStreamHandle): Move the jobs
after initialization to create().
Removed the second constructor.

10:59 PM Changeset in webkit [203812] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove some unused code from FTL
https://bugs.webkit.org/show_bug.cgi?id=160285

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.

All the liveness and swapping is done inside B3,
this code is no longer needed.

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::doesNotKill): Deleted.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::doesKill): Deleted.

10:47 PM Changeset in webkit [203811] by ap@apple.com
  • 2 edits in trunk/Tools

LayoutTestRelay should wait for WebKitTestRunnerApp installation to complete
https://bugs.webkit.org/show_bug.cgi?id=160262

Reviewed by Daniel Bates.

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController installApp]):

9:45 PM Changeset in webkit [203810] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking http/tests/loading/basic-credentials-sent-automatically.html as flaky on mac and ios-sim wk2
https://bugs.webkit.org/show_bug.cgi?id=159427

Unreivewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
6:59 PM Changeset in webkit [203809] by aestes@apple.com
  • 4 edits in trunk/Source/WebKit2

[iOS] Add WKUIDelegate SPI for specifying that an attachment list is from a managed source
https://bugs.webkit.org/show_bug.cgi?id=160280
<rdar://problem/27471815>

Reviewed by Dan Bernstein.

  • Platform/spi/ios/UIKitSPI.h: Declared

UIPreviewItemTypeAttachment, UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared -_attachmentListForWebView:sourceIsManaged:.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Used UIPreviewItemTypeAttachment,
UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex. If uiDelegate responds to
-_attachmentListForWebView:sourceIsManaged:, called it instead of -_attachmentListForWebView:.
Set sourceIsManaged as the value for the UIPreviewDataAttachmentListSourceIsManaged key in dataForPreview.

6:36 PM Changeset in webkit [203808] by commit-queue@webkit.org
  • 23 edits
    4 deletes in trunk/Source/JavaScriptCore

[JSC] DFG::Node should not have its own allocator
https://bugs.webkit.org/show_bug.cgi?id=160098

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Geoffrey Garen.

We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets

and maps, it is a lot faster than hashing pointers.

-We should be able to subclass DFG::Node to specialize it.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAllocator.h: Removed.

(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):

  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):

  • dfg/DFGConstantHoistingPhase.cpp:
  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addNode):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGLongLivedState.cpp: Removed.

(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.

  • dfg/DFGLongLivedState.h: Removed.
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::index): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::index):

  • dfg/DFGNodeAllocator.h: Removed.

(operator new ): Deleted.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPlan.h:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::runThread):

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:
4:54 PM Changeset in webkit [203807] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual Styles Sidebar should have only one column when it's narrow
https://bugs.webkit.org/show_bug.cgi?id=159905
<rdar://problem/27413248>

Reviewed by Joseph Pecoraro.

Many CSS values often get clipped in the two colunm layout. Change the layout to one colunm
when visual style rows get too narrow.

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .metric-section-row):
Wrap all rows except for position/padding/margin controls.

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child): Deleted.
Margin between the first and the second column doesn't make sense one column layout.
Set the margin in .visual-style-property-container instead.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):

  • UserInterface/Views/VisualStylePropertyEditor.css:

(.visual-style-property-container):

4:50 PM Changeset in webkit [203806] by Chris Dumez
  • 9 edits in trunk

First parameter to HTMLMediaElement.canPlayType() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160275

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline w3c test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to HTMLMediaElement.canPlayType() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLMediaElement.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • media/encrypted-media/encrypted-media-can-play-type.html:
  • media/media-can-play-type-expected.txt:
  • media/media-can-play-type.html:
  • platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt:
4:50 PM Changeset in webkit [203805] by Chris Dumez
  • 5 edits in trunk

First parameter to setTimeout() / setInterval() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160277

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to setTimeout() / setInterval() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):

4:36 PM Changeset in webkit [203804] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

[Mac] Web Inspector: CodeMirror-based editor bindings for Home and End don't match system behavior
https://bugs.webkit.org/show_bug.cgi?id=160267
<rdar://problem/27575553>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-27
Reviewed by Brian Burg.

  • UserInterface/Views/CodeMirrorEditor.js:

(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):
Add some key map overrides for Home and End to better match system Mac
behavior. This scrolls to the start or end of a document and does not
change the cursor position.

4:28 PM Changeset in webkit [203803] by Chris Dumez
  • 3 edits
    2 adds in trunk

Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160274

Reviewed by Darin Adler.

Source/WebCore:

Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory:

Firefox and Chrome agree with the specification (although Firefox does not
have insertAdjacentText()).

Test: fast/dom/Element/insertAdjacentText-parameters.html

  • html/HTMLElement.idl:

LayoutTests:

Add test coverage.

  • fast/dom/Element/insertAdjacentText-parameters-expected.txt: Added.
  • fast/dom/Element/insertAdjacentText-parameters.html: Added.
4:22 PM Changeset in webkit [203802] by benjamin@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Fix a bunch of use-after-free of DFG::Node
https://bugs.webkit.org/show_bug.cgi?id=160228

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.

FTL had a few places where we use a node after it has been
deleted. The dangling pointers come from the SSA liveness information
kept on the basic blocks.

This patch fixes the issues I could find and adds liveness invalidation
to help finding dependencies like these.

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::SSAData::invalidate):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):
Constant folding phase was deleting nodes in the loop over basic blocks.
The problem is the deleted nodes can be referenced by other blocks.
When the abstract interpreter was manipulating the abstract values of those
it was doing so on the dead nodes.

  • dfg/DFGConstantHoistingPhase.cpp:

Just invalidation. Nothing wrong here since the useless nodes were
kept live while iterating the blocks.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::killUnreachableBlocks):
(JSC::DFG::Graph::invalidateNodeLiveness):

  • dfg/DFGGraph.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):
We had a lot of use-after-free in LCIM because we were using the stale
live nodes deleted by previous phases.

3:34 PM Changeset in webkit [203801] by Beth Dakin
  • 4 edits in trunk/Source/WebCore

Add localizable strings for inserting list types
https://bugs.webkit.org/show_bug.cgi?id=160233
-and corresponding-
rdar://problem/26102954

Reviewed by Dan Bernstein.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::insertListTypeNone):
(WebCore::insertListTypeNoneAccessibilityTitle):
(WebCore::insertListTypeBulleted):
(WebCore::insertListTypeBulletedAccessibilityTitle):
(WebCore::insertListTypeNumbered):
(WebCore::insertListTypeNumberedAccessibilityTitle):

  • platform/LocalizedStrings.h:
3:15 PM Changeset in webkit [203800] by Chris Dumez
  • 3 edits
    2 adds in trunk

Parameters to DOMParser.parseFromString() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160268

Reviewed by Ryosuke Niwa.

Source/WebCore:

Parameters to DOMParser.parseFromString() should be mandatory:

Firefox and Chrome agree with the specification.

Test: fast/parser/DOMParser-parameters.html

  • xml/DOMParser.idl:

LayoutTests:

Add test coverage.

  • fast/parser/DOMParser-parameters-expected.txt: Added.
  • fast/parser/DOMParser-parameters.html: Added.
3:06 PM Changeset in webkit [203799] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

Captions do not render in PiP window when element is hidden
https://bugs.webkit.org/show_bug.cgi?id=160265
<rdar://problem/27556788>

Reviewed by Simon Fraser.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): Pass new flag so
caption layers are always rendered.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents): Paint non-visible layers when PaintLayerIgnoreVisibility
flag is set.

  • rendering/RenderLayer.h: Define PaintLayerIgnoreVisibility.
2:59 PM Changeset in webkit [203798] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

concatAppendOne should allocate using the indexing type of the array if it cannot merge
https://bugs.webkit.org/show_bug.cgi?id=160261
<rdar://problem/27530122>

Reviewed by Mark Lam.

Before, if we could not merge the indexing types for copying, we would allocate the
the array as ArrayWithUndecided. Instead, we should allocate an array with the original
array's indexing type.

  • runtime/ArrayPrototype.cpp:

(JSC::concatAppendOne):

  • tests/stress/concat-append-one-with-sparse-array.js: Added.
2:51 PM Changeset in webkit [203797] by Chris Dumez
  • 11 edits in trunk

Parameter to named property getter should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160269

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to named property getter should be mandatory:

No new tests, rebaselined existing test.

  • Modules/mediastream/RTCStatsResponse.idl:
  • bindings/scripts/test/TestOverrideBuiltins.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:
2:36 PM Changeset in webkit [203796] by Chris Dumez
  • 4 edits in trunk

First parameter to Range.createContextualFragment() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160266

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/domparsing/createContextualFragment-expected.txt:

Source/WebCore:

First parameter to Range.createContextualFragment() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • dom/Range.idl:
2:33 PM Changeset in webkit [203795] by Chris Dumez
  • 5 edits
    4 adds in trunk

Align MediaList with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=160257

Reviewed by Ryosuke Niwa.

Source/WebCore:

Align MediaList with the CSSOM specification:

In particular, the parameter to item() / deleteMedium() and
appendMedium() is now mandatory.

Firefox and Chrome agree with the specification.

Test: fast/css/MediaList-mediaText-null.html

fast/css/MediaList-parameters.html

  • css/MediaList.idl:

LayoutTests:

  • fast/css/MediaList-mediaText-null-expected.txt: Added.
  • fast/css/MediaList-mediaText-null.html: Added.

Add test coverage for MediaList.mediaText to make sure it is not nullable
and treats null as the empty string. Our IDL did not match the
specification here but our behavior was correct. Therefore, this test is
passing with and without my change. I just wanted to make sure we had
good coverage since I updated our IDL to match the specification.

  • fast/css/MediaList-parameters-expected.txt: Added.
  • fast/css/MediaList-parameters.html: Added.

Add test coverage for mandatory parameters.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update existing test to reflect behavior change.

2:18 PM Changeset in webkit [203794] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Correct the syntax used to skip js/regress/script-tests/bigswitch-indirect-symbol.js

Unreviewed test gardening.

  • js/regress/script-tests/bigswitch-indirect-symbol.js:
2:11 PM Changeset in webkit [203793] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We don't optimize for-in properly in baseline JIT (maybe other JITs too) with an object with symbols
https://bugs.webkit.org/show_bug.cgi?id=160211
<rdar://problem/27572612>

Reviewed by Geoffrey Garen.

The fast for-in iteration mode assumes all inline/out-of-line properties
can be iterated in linear order. This is not true if we have Symbols
because Symbols should not be iterated by for-in.

  • runtime/Structure.cpp:

(JSC::Structure::add):

  • tests/stress/symbol-should-not-break-for-in.js: Added.

(assert):
(foo):

2:10 PM Changeset in webkit [203792] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fullscreen video zoom button does not work after rotating when aspect ratio matches display.
https://bugs.webkit.org/show_bug.cgi?id=160263
rdar://problem/27368872

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-27
Reviewed by Eric Carlson.

When video and display aspect ratio match, and rotating from landscape to protrait, the transform used in layout
will be Identity. This means checking the transform for identity is an insufficient test to see if the bounds
need to be resolved.

Instead, always attempt to resolve the bounds and do a more accurate test while doing so.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):

2:00 PM Changeset in webkit [203791] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Remove unused textContentType SPI from _WKFormInputSession
https://bugs.webkit.org/show_bug.cgi?id=160260

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-07-27
Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/_WKFormInputSession.h: Remove unused SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textInputTraits]): Set textContentType of _traits to whatever we classify it as based
on the assisted node info. The default textContentType is nil, and that is our fallback in our method
for determining textContentType.
(-[WKFormInputSession textContentType]): Deleted.
(-[WKFormInputSession setTextContentType:]): Deleted.

1:55 PM Changeset in webkit [203790] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

The second argument for Function.prototype.apply should be array-like or null/undefined.
https://bugs.webkit.org/show_bug.cgi?id=160212
<rdar://problem/27328525>

Reviewed by Filip Pizlo.

The spec for Function.prototype.apply says its second argument can only be null,
undefined, or must be array-like. See
https://tc39.github.io/ecma262/#sec-function.prototype.apply and
https://tc39.github.io/ecma262/#sec-createlistfromarraylike.

Our previous implementation was not handling this correctly for SymbolType.
This is now fixed.

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):

  • tests/stress/apply-second-argument-must-be-array-like.js: Added.
1:52 PM Changeset in webkit [203789] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Stop accepting the deprecated "requiredShippingAddressFields" and "requiredBillingAddressFields" properties
https://bugs.webkit.org/show_bug.cgi?id=160264
rdar://problem/27574519

Reviewed by Simon Fraser.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::createPaymentRequest):
(WebCore::isValidPaymentRequestPropertyName):

1:51 PM Changeset in webkit [203788] by Chris Dumez
  • 21 edits in trunk

First parameter to indexed property getters should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160259

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to indexed property getters should be mandatory:

No new tests, rebaselined existing tests.

  • Modules/gamepad/deprecated/GamepadList.idl:
  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::JSHTMLAllCollection::item):

  • css/CSSRuleList.idl:
  • css/CSSValueList.idl:
  • css/StyleSheetList.idl:
  • css/WebKitCSSFilterValue.idl:
  • css/WebKitCSSTransformValue.idl:
  • dom/ClientRectList.idl:
  • dom/DOMStringList.idl:
  • dom/DataTransferItemList.idl:
  • html/HTMLAllCollection.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/css/webkit-keyframes-crash.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
1:05 PM Changeset in webkit [203787] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27574303.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:56 PM Changeset in webkit [203786] by sbarati@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

MathICs should be able to emit only a jump along the inline path when they don't have any type data
https://bugs.webkit.org/show_bug.cgi?id=160110

Reviewed by Mark Lam.

This patch allows for MathIC fast-path generation to be delayed.
We delay when we don't see any observed type information for
the lhs/rhs operand, which implies that the MathIC has never
executed. This is profitable for two main reasons:

  1. If the math operation never executes, we emit much less code.
  2. Once we get type information for the lhs/rhs, we can emit better code.

To implement this, we just emit a jump to the slow path call
that will repatch on first execution.

New data for add:

| JetStream | Unity 3D |

------| -------------

Old | 148 bytes | 143 bytes |

------| -------------

New | 116 bytes | 113 bytes |

------------------------------------

New data for mul:

| JetStream | Unity 3D |

------| -------------

Old | 210 bytes | 185 bytes |

------| -------------

New | 170 bytes | 137 bytes |

------------------------------------

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):
(JSC::JITAddGenerator::arithProfile):

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
(JSC::JITMathIC::finalizeInlineCode):

  • jit/JITMathICInlineResult.h:
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::arithProfile):

  • jit/JITOperations.cpp:
11:46 AM Changeset in webkit [203785] by jfernandez@igalia.com
  • 2 edits in trunk/Source/WebCore

[css-grid] The isValidTransition function must not alter the GridSizingData object
https://bugs.webkit.org/show_bug.cgi?id=160252

Reviewed by Darin Adler.

It's not correct that a function which purpose is to check out the
validity of a state modifies such state.

That code was there to allow the extra row track sizing iteration
in the case of a grid container with indefinite height. We need to
do that in order to figure out its intrinsic height, which will be
used then to properly sizing the row tracks.

Since the intrinsic height computation uses directly the
computeUsedBreadthOfGridTracks function, it does not alter the
algorithm state-machine, hence, we can safely remove this code,
which was incorrect in any case.

No new tests, it's just a refactoring with no functionality change.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridSizingData::isValidTransition):

11:27 AM Changeset in webkit [203784] by Chris Dumez
  • 5 edits
    2 adds in trunk

First parameter to Document.execCommand() / queryCommand*() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160258

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to Document.execCommand() / queryCommand*() should be mandatory:

Firefox and Chrome agree with the specification.

Test: fast/dom/Document/editing-parameters.html

  • dom/Document.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/Document/editing-parameters-expected.txt: Added.
  • fast/dom/Document/editing-parameters.html: Added.
11:04 AM Changeset in webkit [203783] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Fix a typo in TestExpectations.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:04 AM Changeset in webkit [203782] by Chris Dumez
  • 8 edits
    2 adds in trunk

Align CSSSupportsRule with the specification
https://bugs.webkit.org/show_bug.cgi?id=160256

Reviewed by Darin Adler.

Source/WebCore:

Align CSSSupportsRule with the specification:

In particular:

  • Make the parameters to insertRule() / deleteRule() mandatory
  • Expose CSSSupportsRule on the global Window object

Both Firefox and Chrome agree with the specification here.

Test: fast/css/CSSSupportsRule-parameters.html

  • css/CSSSupportsRule.idl:

LayoutTests:

  • fast/css/CSSSupportsRule-parameters-expected.txt: Added.
  • fast/css/CSSSupportsRule-parameters.html: Added.

Add layout test coverage for mandatory parameters.

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:

Rebaseline existing test now that CSSSupportsRule is exposed on the
global Window object.

10:15 AM Changeset in webkit [203781] by Ryan Haddad
  • 2 edits in trunk/Tools

Disable WebCoreNSURLSessionTest API tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=160225

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm:
10:03 AM Changeset in webkit [203780] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Fix m_isInBackground initialization for Safari View Services
https://bugs.webkit.org/show_bug.cgi?id=160255
<rdar://problem/27569255>

Reviewed by Tim Horton.

Fix m_isInBackground initialization for Safari View Services. The
code was using m_applicationStateMonitor without initializing it.
Instead, use the local applicationStateMonitor and make sure we
invalidate it before it gets released.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):

9:18 AM Changeset in webkit [203779] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening: update expectations after r203770
https://bugs.webkit.org/show_bug.cgi?id=160253

Unreviewed gardening.

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-27

  • platform/gtk/TestExpectations:
9:14 AM Changeset in webkit [203778] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Regression(r203535): Uncaught Exception: TypeError: Not enough arguments at LayerTreeDataGridNode.js:47
https://bugs.webkit.org/show_bug.cgi?id=160187
<rdar://problem/27540435>

Reviewed by Eric Carlson.

After r203535, document.createTextNode() requires an argument.

  • UserInterface/Views/LayerTreeDataGridNode.js:

(WebInspector.LayerTreeDataGridNode.prototype.createCellContent):
Since this use-site is for creating a cell in an unknown column,
initialize it to '–'. Previously it would have been the string
"undefined" or empty.

9:00 AM Changeset in webkit [203777] by commit-queue@webkit.org
  • 7 edits
    5 adds in trunk

[GTK] Fix some video/canvas tests that should be passing
https://bugs.webkit.org/show_bug.cgi?id=160023

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-27
Reviewed by Carlos Garcia Campos.

Tools:

Add a platform identifier to the TestRunner's page user agent when the tests are run on the
EFL or GTK platforms.

  • WebKitTestRunner/efl/TestControllerEfl.cpp:

(WTR::TestController::platformConfigureViewForTest):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

Modify the tests to use a tolerance of 6 when running on the GTK or EFL platforms. Also,
added new expectations for the tests that need them.

  • fast/canvas/canvas-createPattern-video-loading.html:
  • fast/canvas/canvas-createPattern-video-modify.html:
  • media/video-canvas-createPattern.html:
  • platform/efl/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
  • platform/efl/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
  • platform/gtk/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
  • platform/gtk/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
  • resources/platform-helper.js: Added.

(isGtk):
(isEfl):
(videoCanvasPixelComparisonTolerance):

8:58 AM Changeset in webkit [203776] by Carlos Garcia Campos
  • 13 edits in trunk/Source/WebKit2

[Coordinated Graphics] Improve scheduling of tasks between threads in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=160238

Reviewed by Michael Catanzaro.

This patch makes the following improvements:

  • Avoid scheduling tasks to the main thread if the scene is detached.
  • Do not take references when not actually sending tasks to another threads.
  • Use Function instead of std::function on dispatch methods.
  • Remove purgeBackingStores that is actually never called. It's only scheduled from purgeGLResources() that is always called after detach.
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::updateViewport):
(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::renderNextFrame):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset):
(WebKit::CoordinatedGraphicsScene::detach):
(WebKit::CoordinatedGraphicsScene::setActive):
(WebKit::CoordinatedGraphicsScene::dispatchCommitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::purgeBackingStores): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::purgeBackingStores): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::invalidate):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
8:52 AM Changeset in webkit [203775] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Soup] Test http/tests/xmlhttprequest/auth-reject-protection-space.html fails since added in r203743
https://bugs.webkit.org/show_bug.cgi?id=160235

Reviewed by Michael Catanzaro.

It times out in release and crashes in debug due to an ASSERT_NOT_REACHED(). The soup backend doesn't really
support rejecting the protection space and continuing with the next one, but we can at least continue with the
request without crendential to make the test pass.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::ResourceHandle::receivedChallengeRejection):

8:50 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:49 AM Changeset in webkit [203774] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove network setup from web process
https://bugs.webkit.org/show_bug.cgi?id=160236

Reviewed by Michael Catanzaro.

We are still doing network init and finish in th web process. It's useless since we switched to mandatory
network process.

  • WebProcess/gtk/WebProcessMainGtk.cpp:
8:49 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:30 AM Changeset in webkit [203773] by clopez@igalia.com
  • 2 edits in trunk/Tools

[Tools] The built product doesn't contains the dwo files when DEBUG_FISSION is enabled.
https://bugs.webkit.org/show_bug.cgi?id=160247

Reviewed by Michael Catanzaro.

  • BuildSlaveSupport/built-product-archive:

(createZip):
(dirContainsdwo):
(archiveBuiltProduct):

3:40 AM Changeset in webkit [203772] by commit-queue@webkit.org
  • 23 edits
    4 moves in trunk

[Streams API] Replace ReadableStreamReader by ReadableStreamDefaultReader
https://bugs.webkit.org/show_bug.cgi?id=160194

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Youenn Fablet.

Replaced ReadableStreamReader by ReadableStreamDefaultReader to align
with updated Streams API specification.

No change in functionality.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/fetch/FetchInternals.js:

(consumeStream):

  • Modules/fetch/FetchResponse.js:

(body):

  • Modules/streams/ReadableStream.js:

(getReader):

  • Modules/streams/ReadableStreamDefaultReader.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.idl.
  • Modules/streams/ReadableStreamDefaultReader.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.js.

(cancel):
(read):
(releaseLock):
(closed):

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamDefaultReader):
(teeReadableStream):
(teeReadableStreamPullFunction):
(isReadableStreamDefaultReader):
(closeReadableStream):
(readFromReadableStreamDefaultReader):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamDefaultReader):
(WebCore::JSBuiltinReadableStreamDefaultReaderPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultReaderPrivateConstructor):

  • bindings/js/JSReadableStreamPrivateConstructors.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • features.json:

LayoutTests:

  • streams/brand-checks.html:
  • streams/readable-stream-controller-error-expected.txt:
  • streams/readable-stream-controller-error.html:
  • streams/readable-stream-default-reader-read-expected.txt: Renamed from LayoutTests/streams/readable-stream-reader-read-expected.txt.
  • streams/readable-stream-default-reader-read.html: Renamed from LayoutTests/streams/readable-stream-reader-read.html.
  • streams/readable-stream-error-messages-expected.txt:
  • streams/readable-stream-error-messages.html:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/shadowing-Promise-expected.txt:
  • streams/shadowing-Promise.html:
3:07 AM Changeset in webkit [203771] by jfernandez@igalia.com
  • 4 edits
    6 adds in trunk

[css-grid] Handle alignment with orthogonal flows
https://bugs.webkit.org/show_bug.cgi?id=159295

Reviewed by Darin Adler.

Now that grid sizing and positioning issues wrt orthogonal flows have
been clarified in the last spec draft, we can adapt now our alignment
logic to work with orthogonal flows.

Source/WebCore:

Even though basic alignment would work with orthogonal flows with
this patch, we still doesn't allow stretching in that case. I'll provide a
patch for that feature since it's a complex logic and better have an
isolated change.

Tests: fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html

fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html
fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html

  • rendering/RenderGrid.cpp:

(WebCore::computeOverflowAlignmentOffset): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::columnAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::rowAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::columnAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::rowAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::findChildLogicalPosition): Dealing with orthogonal flow cases.

LayoutTests:

These tests ensure that alignment works as expected in the cases where
grid and its children are orthogonal.

  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/resources/grid-alignment.css:

(.alignContentSpaceBetween):
(.alignContentSpaceAround):
(.alignContentSpaceEvenly):
(.alignContentStretch):
(.selfStart):
(.selfEnd):
(.selfCenter):
(.selfRight):
(.selfLeft):
(.selfSelfStart):
(.selfSelfEnd):
(.itemsSelfEnd): Deleted.

12:42 AM Changeset in webkit [203770] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit/win

Fix Win debug build after r203749.

  • WebView.cpp:
12:06 AM Changeset in webkit [203769] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.13.4

WebKitGTK+ 2.13.4

12:03 AM Changeset in webkit [203768] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.4 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.13.4.

Jul 26, 2016:

11:38 PM Changeset in webkit [203767] by commit-queue@webkit.org
  • 21 edits
    1 copy
    1 add in trunk

[Fetch API] Response constructor should be able to take a ReadableStream as body
https://bugs.webkit.org/show_bug.cgi?id=159804

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.

Source/WebCore:

Covered by existing and updated tests.

Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.

FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.

Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.

To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.

For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.

To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.

Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.

Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.

Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.

  • CMakeLists.txt: Adding FetchBodyConsumer.cpp. Removing WebCoreJSBuiltins.cpp from CMake list as it is not needed.
  • Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.

(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::consumer):

  • Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.

(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):

  • Modules/fetch/FetchBodyConsumer.h: Added.

(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.

  • Modules/fetch/FetchInternals.js:

(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.

  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:

(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolveWithNewValue):

  • bindings/js/WebCoreBuiltinNames.h:
11:37 PM Changeset in webkit [203766] by commit-queue@webkit.org
  • 10 edits
    4 adds in trunk

JS Built-ins should throw this-error messages consistently with binding generated code
https://bugs.webkit.org/show_bug.cgi?id=160191

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-26
Reviewed by Darin Adler.

Source/WebCore:

Introducing @makeThisTypeError and @makeGetterTypeError to create TypeError objects with a consistent error message.
Making use of these functions in streams API and fetch API related built-in code.

Refactored JSDOMBinding.cpp code by adding makeThisTypeErrorMessage and makeGetterTypeErrorMessage helper routines
These routines are used by both new built-in functions as well as binding generated code helper routine.

Tests: fetch/fetch-error-messages.html

streams/readable-stream-error-messages.html

  • Modules/fetch/FetchResponse.js:

(body): Adding an explicit check so that the error message is right. The previous error message was related to the call of Response.@isDisturbed.

  • Modules/streams/ReadableStream.js:

(cancel):
(getReader):
(pipeTo):
(tee):
(locked):

  • Modules/streams/ReadableStreamController.js:

(enqueue):
(error):
(close):
(desiredSize):

  • Modules/streams/ReadableStreamReader.js:

(cancel):
(read):
(releaseLock):
(closed):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::makeGetterTypeErrorMessage):
(WebCore::throwGetterTypeError):
(WebCore::makeThisTypeErrorMessage):
(WebCore::throwThisTypeError):
(WebCore::throwSequenceTypeError): Deleted.
(WebCore::throwSetterTypeError): Deleted.

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::makeThisTypeErrorForBuiltins):
(WebCore::makeGetterTypeErrorForBuiltins):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • fetch/fetch-error-messages-expected.txt: Added.
  • fetch/fetch-error-messages.html: Added.
  • streams/readable-stream-error-messages-expected.txt: Added.
  • streams/readable-stream-error-messages.html: Added.
11:35 PM Changeset in webkit [203765] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix GTK+ distcheck build.

wtf/spi/darwin/dyldSPI.h is not included in GTK+ release tarballs.

  • html/HTMLObjectElement.cpp: Include wtf/spi/darwin/dyldSPI.h only for iOS.
  • html/MediaElementSession.cpp: Ditto.
11:20 PM Changeset in webkit [203764] by mmaxfield@apple.com
  • 5 edits
    4 adds in trunk

[iOS] SF-Heavy is inaccessible by web content
https://bugs.webkit.org/show_bug.cgi?id=160186
<rdar://problem/27434423>

Reviewed by Dean Jackson.

Source/WebCore:

Once we create the system font, we need to modify it with the appropriate weight.
This is because the CoreText API we use to get the system font on iOS does not
let us choose the exact weight we want.

Test: fast/text/system-font-weight.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::baseSystemFontDescriptor):
(WebCore::systemFontModificationAttributes):
(WebCore::systemFontDescriptor):
(WebCore::platformFontWithFamilySpecialCase):

  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

  • platform/ios-simulator/TestExpectations: system-font-weight-italic.html

is expected to fail on iOS 9.

  • fast/text/system-font-weight-italic-expected.txt: Added.
  • fast/text/system-font-weight-italic.html: Added.
  • fast/text/system-font-weight-expected.txt: Added.
  • fast/text/system-font-weight.html: Added.
10:31 PM Changeset in webkit [203763] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip failing JSC test regress/script-tests/bigswitch-indirect-symbol.js
https://bugs.webkit.org/show_bug.cgi?id=160035

Unreviewed test gardening.

  • js/regress/script-tests/bigswitch-indirect-symbol.js:
10:20 PM Changeset in webkit [203762] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] ASSERTION FAILED: !m_adoptionIsRequired when Inspector Server is connected
https://bugs.webkit.org/show_bug.cgi?id=160229

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-26
Reviewed by Carlos Garcia Campos.

An assertion fails because refcount of SocketStreamHandle is
incremented before adoptRef, in the constructor of
SocketStreamHandle. The constructor of SocketStreamHandle needs
to increment recount because it passes this pointer to libsoup.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle): Do
relaxAdoptionRequirement() as well as the another constructor.

9:27 PM Changeset in webkit [203761] by Chris Dumez
  • 9 edits in trunk

Move 'dir' attribute from HTMLDocument to Document
https://bugs.webkit.org/show_bug.cgi?id=160231

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Move 'dir' attribute from HTMLDocument to Document to match the
specification:

Both Firefox and Chrome have 'dir' on Document already.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::dir):
(WebCore::Document::setDir):

  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::dir): Deleted.
(WebCore::HTMLDocument::setDir): Deleted.

  • html/HTMLDocument.h:
  • html/HTMLDocument.idl:
9:12 PM Changeset in webkit [203760] by Chris Dumez
  • 8 edits
    2 adds in trunk

Second parameter to History.pushState() / replaceState() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160230

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Second parameter to History.pushState() / replaceState() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

  • page/History.idl:

LayoutTests:

  • fast/history/state-api-parameters.html: Added.
  • fast/history/state-api-parameters-expected.txt: Added.

Add layout test coverage.

  • fast/history/replacestate-nocrash.html:
  • fast/loader/stateobjects/popstate-fires-with-page-cache.html:

Update existing tests to reflect behavior change.

8:42 PM Changeset in webkit [203759] by Chris Dumez
  • 4 edits in trunk

Align Node.isEqualNode() with the specification
https://bugs.webkit.org/show_bug.cgi?id=160224

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing. We are now
passing all the checks in this test like Firefox and Chrome.

  • web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt:

Source/WebCore:

Align our implementation for Node.isEqualNode() to match more closely
the text of the specification:

This also fixes a bug where isEqualNode() would sometimes return false
wrongly for elements because we were comparing the value returned by
nodeName() which returns the tagName of elements. The issue was that
the tagName's case may differ depending on the element being in an
HTMLDocument or not. We now compare Element::tagQName() instead which
ends up comparing namespace / namespace prefix and localName, as per
the specification. The new behavior matches Firefox and Chrome and
helps us pass an extra W3C test.

No new tests, rebaselined existing test.

  • dom/Node.cpp:

(WebCore::Node::isEqualNode):

6:23 PM Changeset in webkit [203758] by sbarati@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

rollout r203666
https://bugs.webkit.org/show_bug.cgi?id=160226

Unreviewed rollout.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

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

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::asNumber):
(JSC::B3::Air::Arg::castToType): Deleted.

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compileAndRun):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::zero):
(JSC::B3::run):
(JSC::B3::lowerToAirForTesting): Deleted.
(JSC::B3::testBranchBitAndImmFusion): Deleted.

5:45 PM Changeset in webkit [203757] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/memory/tracking.html as flaky on El Capitan Debug WK1
https://bugs.webkit.org/show_bug.cgi?id=160227

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:44 PM Changeset in webkit [203756] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Fix the Windows debug build.

WebResourceLoadScheduler's logging was a holdover from it being in WebCore,
and prior to r203749 WebKit was actually using a WebCore log channel.

For some reason this doesn't build on Windows debug, so just remove
this logging for now.

Source/WebKit:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::scheduleLoad): Deleted.
(WebResourceLoadScheduler::servePendingRequests): Deleted.
(WebResourceLoadScheduler::scheduleServePendingRequests): Deleted.
(WebResourceLoadScheduler::requestTimerFired): Deleted.
(WebResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.

Source/WebKit/mac:

  • Misc/WebKitLogging.h:
4:40 PM Changeset in webkit [203755] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix tests after r203743.
https://bugs.webkit.org/show_bug.cgi?id=156947

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
Reset the new boolean m_rejectsProtectionSpaceAndContinueForAuthenticationChallenges.

4:39 PM Changeset in webkit [203754] by Simon Fraser
  • 6 edits in trunk/Source

Sort the project files.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
4:37 PM Changeset in webkit [203753] by Chris Dumez
  • 4 edits
    4 adds in trunk

Align CSSKeyframesRule with the specification
https://bugs.webkit.org/show_bug.cgi?id=160219

Reviewed by Darin Adler.

Source/WebCore:

Align CSSKeyframesRule with the specification:

In particular, the parameter to insertRule() / appendRule() /
deleteRule() / findRule() should be mandatory. Both Firefox and Chrome
agree with the specification here.

Also, the CSSKeyframesRule.name attribute should not be nullable.
Chrome agrees with the specification. However, Firefox, has the
attribute nullable. This patch aligns our behavior with Chrome and
the specification.

Tests: animations/CSSKeyframesRule-name-null.html

animations/CSSKeyframesRule-parameters.html

  • css/CSSKeyframesRule.h:

(WebCore::StyleRuleKeyframes::name):
(WebCore::StyleRuleKeyframes::setName):

  • css/CSSKeyframesRule.idl:

LayoutTests:

Add layout test coverage.

  • animations/CSSKeyframesRule-name-null-expected.txt: Added.
  • animations/CSSKeyframesRule-name-null.html: Added.
  • animations/CSSKeyframesRule-parameters-expected.txt: Added.
  • animations/CSSKeyframesRule-parameters.html: Added.
4:36 PM Changeset in webkit [203752] by mmaxfield@apple.com
  • 28 edits
    2 adds in trunk

[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=160178
<rdar://problem/27535468>

Source/WebCore:

Reviewed by Eric Carlson and Dan Bernstein.

This patch re-implements r203520 in a much simpler way which doesn't involve a new SPI.
The biggest problem with r203520 is that it make it impossible for a WKWebView to match
MobileSafari's behavior. Instead of adding this new SPI, a simple version check should
be used to keep old apps working.

The new behavior is characterized by the following table:

| iOS | Non-iOS

=============================================================================================
requiresPlayInlineAttribute == true | Old app: honor -webkit-playsinline | honor playsinline

| New app: honor playsinline | honor playsinline


requiresPlayInlineAttribute == false | Always inline | Always inline

Specifically, this patch reverts r203545 which is the commit which actually removes
the old SPI. As soon as Safari is migrated back to this old SPI, I'll remove the two
new SPIs added in r203520.

Tests: media/video-playsinline.html

media/video-webkit-playsinline.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Reviewed by Eric Carlson and Dan Bernstein.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Reviewed by Eric Carlson and Dan Bernstein.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

LayoutTests:

Reviewed by Eric Carlson and Dan Bernstein.

  • media/video-playsinline-expected.txt:
  • media/video-playsinline.html:
  • media/video-webkit-playsinline-expected.txt: Added.
  • media/video-webkit-playsinline.html: Added.
4:33 PM Changeset in webkit [203751] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Move RenderView::shouldDisableLayoutStateForSubtree to SubtreeLayoutStateMaintainer.
https://bugs.webkit.org/show_bug.cgi?id=160215

Reviewed by Darin Adler and Simon Fraser.

No change in functionality.

  • page/FrameView.cpp:

(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):

  • rendering/RenderView.cpp:

(WebCore::RenderView::shouldDisableLayoutStateForSubtree):

  • rendering/RenderView.h:
4:31 PM Changeset in webkit [203750] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk/Source/WebKit2

Remove unused DownloadAuthenticationClient
https://bugs.webkit.org/show_bug.cgi?id=160220

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-26
Reviewed by Darin Adler.

  • CMakeLists.txt:
  • NetworkProcess/Downloads/Download.cpp:
  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadAuthenticationClient.cpp: Removed.
  • NetworkProcess/Downloads/DownloadAuthenticationClient.h: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
4:30 PM Changeset in webkit [203749] by Simon Fraser
  • 28 edits
    1 copy
    2 adds in trunk

Allow LOG macros to be used outside the namespace, and other logging cleanup
https://bugs.webkit.org/show_bug.cgi?id=160216

Reviewed by Anders Carlsson.
Source/WebCore:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/LogInitialization.h: Added.
  • platform/LogMacros.h: Added.
  • platform/Logging.cpp:

(WebCore::initializeLogChannelsIfNecessary):
(WebCore::initializeLoggingChannelsIfNecessary): Deleted.

  • platform/Logging.h:
  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::initializeLogChannelsIfNecessary):
(WebCoreTestSupport::initializeLoggingChannelsIfNecessary): Deleted.

  • testing/js/WebCoreTestSupport.h:

Source/WebKit:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

Source/WebKit/mac:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • Misc/WebKitLogging.h:
  • Misc/WebKitLogging.m:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit/win:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • WebKitLogging.cpp:
  • WebKitLogging.h:
  • WebView.cpp:

(WebView::initWithFrame):

Source/WebKit2:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • NetworkProcess/NetworkProcess.cpp:
  • Platform/LogInitialization.h: Copied from Source/WebKit2/Platform/foundation/LoggingFoundation.mm.
  • Platform/Logging.cpp:

(WebKit::initializeLogChannelsIfNecessary):

  • Platform/Logging.h:
  • Platform/foundation/LoggingFoundation.mm:
  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateContentRectsWithState:]):
(-[WKWebView _navigationGestureDidBegin]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_hiddenPageThrottlingTimer):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

initializeLoggingChannelsIfNecessary -> initializeLogChannelsIfNecessary

  • DumpRenderTree/TestRunner.cpp:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

4:15 PM Changeset in webkit [203748] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: Tooltip for analysis tasks doesn't show up on charts
https://bugs.webkit.org/show_bug.cgi?id=160221

Rubber-stamped by Chris Dumez.

The bug was caused by ChartPaneBase resetting annotation bars every time the current point has moved.
Avoid doing this in ChartPaneBase's _renderAnnotations().

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase):
(ChartPaneBase.prototype.fetchAnalysisTasks):
(ChartPaneBase.prototype._renderAnnotations):

4:06 PM Changeset in webkit [203747] by caitp@igalia.com
  • 3 edits
    2 moves in trunk/Source/JavaScriptCore

[JSC] Object.getOwnPropertyDescriptors should not add undefined props to result
https://bugs.webkit.org/show_bug.cgi?id=159409

Reviewed by Geoffrey Garen.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):

  • tests/es6.yaml:
  • tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js:

(testPropertiesIndexedSetterOnPrototypeThrows.set get var): Deleted.
(testPropertiesIndexedSetterOnPrototypeThrows): Deleted.

  • tests/stress/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js: Renamed from Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js.
  • tests/stress/Object_static_methods_Object.getOwnPropertyDescriptors.js: Renamed from Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js.
3:56 PM Changeset in webkit [203746] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

onpaymentauthorized callback not received when authorizing for a second time
https://bugs.webkit.org/show_bug.cgi?id=160218
rdar://problem/27527151

Reviewed by Tim Horton.

Only null out the active session if the status is a final state status.

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completePaymentSession):

3:42 PM Changeset in webkit [203745] by Chris Dumez
  • 4 edits in trunk

Range.prototype.compareBoundaryPoints.length should be 2
https://bugs.webkit.org/show_bug.cgi?id=160217

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Range.prototype.compareBoundaryPoints.length:

We had a bug in our IDL which caused length to be 0 even though
both parameters were effectively mandatory.

No new tests, rebaselined existing test.

  • dom/Range.idl:
3:38 PM Changeset in webkit [203744] by Chris Dumez
  • 6 edits
    4 adds in trunk

Align CSSStyleDeclaration with the specification
https://bugs.webkit.org/show_bug.cgi?id=160214

Reviewed by Darin Adler.

Source/WebCore:

Align CSSStyleDeclaration with the specification:

In particular, the parameters to removeProperty() / item() and
getPropertyPriority() should be mandatory.

Firefox and Chrome match the specification.

Tests: fast/css/CSSStyleDeclaration-cssText-null.html

fast/css/CSSStyleDeclaration-parameters.html

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):

  • css/CSSStyleDeclaration.idl:

LayoutTests:

  • fast/css/CSSStyleDeclaration-cssText-null-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-cssText-null.html: Added.

Add layout test coverage for setting cssText to null. This test
passes in WebKit, Firefox and Chrome, with or without my change.
Our IDL wrongly reported the cssText attribute as nullable but
WebKit was already behaving correctly.

  • fast/css/CSSStyleDeclaration-parameters-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-parameters.html: Added.

Add testing for omitting CSSStyleDeclaration API parameters, to
make sure they are mandatory. This test passes in Firefox and
Chrome.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update existing test to reflect behavior change.

3:31 PM Changeset in webkit [203743] by ddkilzer@apple.com
  • 16 edits
    2 adds in trunk

Networking process crash due to missing -[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:] implementation
https://bugs.webkit.org/show_bug.cgi?id=156947
<rdar://problem/23325160>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/xmlhttprequest/auth-reject-protection-space.html

  • platform/network/mac/AuthenticationMac.mm:

(-[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:]): Added.
(-[WebCoreAuthenticationClientAsChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]): Added.

Source/WebKit2:

  • UIProcess/API/C/WKAuthenticationDecisionListener.cpp:

(WKAuthenticationDecisionListenerRejectProtectionSpaceAndContinue):

  • UIProcess/API/C/WKAuthenticationDecisionListener.h:

Added new SPI for testing corresponding to calling the completion handler of
WKWebView.didReceiveAuthenticationChallenge with NSURLSessionAuthChallengeRejectProtectionSpace.

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::TestRunner):
(setRejectsProtectionSpaceAndContinueForAuthenticationChallengesCallback):

  • DumpRenderTree/TestRunner.h:

(TestRunner::rejectsProtectionSpaceAndContinueForAuthenticationChallenges):
(TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):

  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:didReceiveAuthenticationChallenge:fromDataSource:]):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::queueNonLoadingScript):
(WTR::TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveAuthenticationChallenge):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
Add TestRunner.setRejectsProtectionSpaceAndContinueForAuthenticationChallenges to use for testing.

LayoutTests:

  • http/tests/xmlhttprequest/auth-reject-protection-space-expected.txt: Added.
  • http/tests/xmlhttprequest/auth-reject-protection-space.html: Added.
3:04 PM Changeset in webkit [203742] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

check-for-exit-time-destructors should be usable outside Xcode
<https://webkit.org/b/160195>

Reviewed by Darin Adler.

  • Scripts/check-for-exit-time-destructors: Update to parse
-hhelp switch, or to take one argument to a binary to check

for exit time destructors on the command-line. The clang
compiler will find these at compile-time with the
-Wexit-time-destructors switch, but this script will check for
them after-the-fact.

3:03 PM Changeset in webkit [203741] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Payment session does not end if user closes all Safari windows
https://bugs.webkit.org/show_bug.cgi?id=160213
rdar://problem/27480873

Reviewed by Tim Horton.

Listen for the NSWindowWillCloseNotification of the sheet window and hide the payment UI when
the sheet window is going to be closed.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI):

3:00 PM Changeset in webkit [203740] by Chris Dumez
  • 11 edits
    2 adds in trunk

Parameters to CSSStyleSheet.insertRule() / deleteRule() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160210

Reviewed by Darin Adler.

Source/WebCore:

Parameters to CSSStyleSheet.insertRule() / deleteRule() should be mandatory:

They are mandatory in Firefox.
They are mandatory in Chrome except for the second parameter of insertRule()
which merely logs a deprecation warning.

This patch aligns our behavior with Chrome to move towards to specification
while limiting the risk of breakage.

Test: fast/css/stylesheet-parameters.html

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::deprecatedInsertRule):

  • css/CSSStyleSheet.h:
  • css/CSSStyleSheet.idl:

LayoutTests:

  • fast/css/stylesheet-parameters-expected.txt: Added.
  • fast/css/stylesheet-parameters.html: Added.

Add layout test coverage.

  • editing/selection/first-letter-selection-crash.html:
  • fast/css/counters/asterisk-counter-update-after-layout-crash.html:
  • fast/dom/HTMLElement/dynamic-editability-change.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update existing tests to reflect the behavior change.

2:52 PM Changeset in webkit [203739] by commit-queue@webkit.org
  • 21 edits
    2 adds in trunk

HTMLVideoElement frames do not update on iOS when src is a MediaStream blob
https://bugs.webkit.org/show_bug.cgi?id=159833
<rdar://problem/27379487>

Patch by George Ruan <gruan@apple.com> on 2016-07-26
Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-video-element-displays-buffer.html

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cf/CoreMediaSoftLink.cpp: Add CMSampleBufferCreateReadyWithImageBuffer and CMVideoFormatDescriptionCreateForImageBuffer

softlink.

  • platform/cf/CoreMediaSoftLink.h: Ditto.
  • platform/cocoa/CoreVideoSoftLink.cpp: Add CVPixelBufferCreate, kCVPixelBufferCGBitmapContextCompatibilityKey, and

kCVPixelBufferCGImageCompatibilityKey.

  • platform/cocoa/CoreVideoSoftLink.h: Ditto.
  • platform/graphics/avfoundation/MediaSampleAVFObjC.h: Change create to return a Ref<T> instead

of RefPtr<T>.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Make observer of

MediaStreamTrackPrivate and make MediaPlayer use an AVSampleBufferDisplayLayer instead of CALayer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Ditto.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Clean up
observers and AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ensures AVSampleBufferDisplayLayer
is available.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSampleBufferFromTrack): Placeholder.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Responsible
for enqueuing sample buffers to the active video track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Ensures that an AVSampleBufferDisplayLayer
exists.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Destroys the AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Replace CALayer with AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Call updateReadyState as a deferred task.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): readyState is bumped to HAVE_ENOUGH_DATA
only when the MediaPlayerPrivateMediaStreamAVFObjC has received a media sample.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Called from MediaStreamTrackPrivate when a
new SampleBuffer is available.
(WebCore::updateTracksOfType): Manage adding and removing self as observer from tracks.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Replace CALayer with AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::acceleratedRenderingStateChanged): Copied from
MediaPlayerPrivateMediaSourceAVFObjC.mm
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Deleted process of updating CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Deleted.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::updateActiveVideoTrack): Remove redundant check.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Called from RealtimeMediaSource when a new SampleBuffer
is available.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated): Relays to MediaPlayerPrivateMediaStreamAVFObjC that
a new SampleBuffer is available to enqueue to the AVSampleBufferDisplayLayer.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::settingsDidChange): Fix grammatical mistake in function name settingsDidChanged().
(WebCore::RealtimeMediaSource::mediaDataUpdated): Relays to all observers that a new SampleBuffer is available.
(WebCore::RealtimeMediaSource::settingsDidChanged): Deleted.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame): Calls mediaDataUpdated when a new SampleBuffer is captured.

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

(WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): Convert CVPixelBuffer to CMSampleBuffer.
(WebCore::MockRealtimeVideoSourceMac::pixelBufferFromCGImage): Convert CGImage to CVPixelBuffer.
(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Creates a CMSampleBuffer from current imageBuffer and
sends the CMSampleBuffer to MediaPlayerPrivateMediaStreamAVFObjC

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::setFrameRate): Fix grammar of settingsDidChanged() to settingsDidChange().
(WebCore::MockRealtimeVideoSource::setSize): Ditto.
(WebCore::MockRealtimeVideoSource::generateFrame): Call updateSampleBuffer().

  • platform/mock/MockRealtimeVideoSource.h: Change elapsedTime() from private to protected.

(WebCore::MockRealtimeVideoSource::updateSampleBuffer): Overriden by MockRealtimeVideoSourceMac.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-displays-buffer-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-displays-buffer.html: Added. Checks that

a video element with a mediastream source displays frames that are neither black or transparent.

  • fast/mediastream/resources/getUserMedia-helper.js:

(setupVideoElementWithStream): Sets up video element with global variable mediastream.

2:49 PM Changeset in webkit [203738] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Move ControlStates HashMap to RenderBox.
https://bugs.webkit.org/show_bug.cgi?id=160206

Reviewed by Simon Fraser.

Move and modernize it.

No change in functionality.

  • platform/ControlStates.h:

(WebCore::ControlStates::ControlStates): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::controlStatesRendererMap):
(WebCore::controlStatesForRenderer):
(WebCore::removeControlStatesForRenderer):
(WebCore::RenderBox::~RenderBox):
(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderElement.cpp:

(WebCore::controlStatesRendererMap): Deleted.
(WebCore::RenderElement::hasControlStatesForRenderer): Deleted.
(WebCore::RenderElement::controlStatesForRenderer): Deleted.
(WebCore::RenderElement::removeControlStatesForRenderer): Deleted.
(WebCore::RenderElement::addControlStatesForRenderer): Deleted.

  • rendering/RenderElement.h:
2:35 PM Changeset in webkit [203737] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Occasional crash in WebCore::RenderVTTCue::initializeLayoutParameters
https://bugs.webkit.org/show_bug.cgi?id=160208

Reviewed by Darin Adler.

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::initializeLayoutParameters): Return when firstChild is NULL so a
release build will not crash.

2:01 PM Changeset in webkit [203736] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: The arrow indicating the current page doesn't get updated
https://bugs.webkit.org/show_bug.cgi?id=160185

Reviewed by Chris Dumez.

The bug was caused by Heading's render() function not updating the DOM more than once. I don't understand
how this has ever worked. Fixed the bug by rendering DOM whenever the current page has changed.

  • public/v3/pages/heading.js:

(Heading):
(Heading.prototype.render):

1:59 PM Changeset in webkit [203735] by rniwa@webkit.org
  • 6 edits
    1 delete in trunk/LayoutTests

Remove the tests for legacy custom elements API
https://bugs.webkit.org/show_bug.cgi?id=160209

Reviewed by Chris Dumez.

Removed the tests for legacy custom elements v0 API. The tests for the new v1 API is at fast/custom-elements.

  • fast/dom/custom: Removed.
  • fast/dom/custom/document-register-basic-expected.txt: Removed.
  • fast/dom/custom/document-register-basic.html: Removed.
  • fast/dom/custom/document-register-namespace-expected.txt: Removed.
  • fast/dom/custom/document-register-namespace.html: Removed.
  • fast/dom/custom/document-register-reentrant-null-constructor-expected.txt: Removed.
  • fast/dom/custom/document-register-reentrant-null-constructor.html: Removed.
  • fast/dom/custom/document-register-reentrant-returning-fake-expected.txt: Removed.
  • fast/dom/custom/document-register-reentrant-returning-fake.html: Removed.
  • fast/dom/custom/document-register-reentrant-throwing-constructor-expected.txt: Removed.
  • fast/dom/custom/document-register-reentrant-throwing-constructor.html: Removed.
  • fast/dom/custom/document-register-type-extensions-expected.txt: Removed.
  • fast/dom/custom/document-register-type-extensions.html: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-recursion-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-recursion.html: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-reentrancy-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-reentrancy.html: Removed.
  • fast/dom/custom/lifecycle-ready-creation-api-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-creation-api.html: Removed.
  • fast/dom/custom/lifecycle-ready-innerHTML-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-innerHTML.html: Removed.
  • fast/dom/custom/lifecycle-ready-parser-only-expected.html: Removed.
  • fast/dom/custom/lifecycle-ready-parser-only.html: Removed.
  • fast/dom/custom/lifecycle-ready-parser-script-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-parser-script.html: Removed.
  • fast/dom/custom/lifecycle-ready-paste-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-paste.html: Removed.
  • fast/dom/custom/resources: Removed.
  • fast/dom/custom/resources/document-register-fuzz.js: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
1:57 PM Changeset in webkit [203734] by Chris Dumez
  • 4 edits in trunk

Parameters to CustomEvent.initCustomEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160205

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to CustomEvent.initCustomEvent() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • dom/CustomEvent.idl:
1:54 PM Changeset in webkit [203733] by Chris Dumez
  • 13 edits in trunk

Second parameter to Range.isPointInRange() / comparePoint() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160202

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Second parameter to Range.isPointInRange() / comparePoint() should be mandatory
and be of type "unsigned long":

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::removeMarkers):
(WebCore::DocumentMarkerController::markersInRange):
(DocumentMarkerController::setMarkersActive):

  • dom/Range.cpp:

(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::toString):
(WebCore::Range::absoluteTextRects):
(WebCore::Range::absoluteTextQuads):
(WebCore::boundaryTextNodesMerged):
(WebCore::Range::getBorderAndTextQuads):

  • dom/Range.h:

(WebCore::Range::startOffset):
(WebCore::Range::endOffset):

  • dom/Range.idl:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::ensureOffsetIsValid):
(WebCore::RangeBoundaryPoint::toPosition):
(WebCore::RangeBoundaryPoint::offset):
(WebCore::RangeBoundaryPoint::setOffset):
(WebCore::RangeBoundaryPoint::setToBeforeChild):
(WebCore::RangeBoundaryPoint::setToAfterChild):
(WebCore::RangeBoundaryPoint::setToEndOfNode):
(WebCore::RangeBoundaryPoint::childBeforeWillBeRemoved):
(WebCore::RangeBoundaryPoint::invalidateOffset):

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
1:18 PM Changeset in webkit [203732] by commit-queue@webkit.org
  • 23 edits
    8 copies
    11 adds in trunk

[Fetch API] Add support for fetch mode, in particular cors
https://bugs.webkit.org/show_bug.cgi?id=156753

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebasing tests.

  • web-platform-tests/fetch/api/basic/integrity-expected.txt:
  • web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache-expected.txt:

Source/WebCore:

Covered by rebased tests.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Passing fetch mode to ThreadableLoader.
Disabling as a temp fix credentials in case of CORS mode as credential options is not yet supported and would make several tests fail.

LayoutTests:

Rebasing specific expectations as Maci/iOS WK2 does not like https tests.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
12:09 PM Changeset in webkit [203731] by Chris Dumez
  • 10 edits
    2 adds
    4 deletes in trunk

Align NamedNodeMap with the specification
https://bugs.webkit.org/show_bug.cgi?id=160204

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Align NamedNodeMap with the specification:

In particular, mark parameters as mandatory when they should be, and
use tighter "Attr" typing instead of Node.

Chrome and Firefox agree with the specification.

Test: fast/dom/NamedNodeMap-parameters.html

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::getNamedItem):
(WebCore::NamedNodeMap::getNamedItemNS):
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::item):

  • dom/NamedNodeMap.h:
  • dom/NamedNodeMap.idl:

LayoutTests:

  • dom/html/level2/core/hc_namednodemapinvalidtype1-expected.txt: Removed.
  • dom/html/level2/core/hc_namednodemapinvalidtype1.html: Removed.
  • dom/xhtml/level2/core/hc_namednodemapinvalidtype1-expected.txt: Removed.
  • dom/xhtml/level2/core/hc_namednodemapinvalidtype1.xhtml: Removed.

Drop outdated DOM level 2 tests that expect the wrong exception type to
be thrown when passing a non-Attr node in.

  • fast/dom/NamedNodeMap-parameters-expected.txt: Added.
  • fast/dom/NamedNodeMap-parameters.html: Added.

Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.

  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update / rebaseline existing tests to reflect behavior change.

11:58 AM Changeset in webkit [203730] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unused DEBUG_WITH_BREAKPOINT configuration.
https://bugs.webkit.org/show_bug.cgi?id=160203

Reviewed by Keith Miller.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDebugHook):

11:58 AM Changeset in webkit [203729] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Infinite Canvas context save() causes WebKit to crash
https://bugs.webkit.org/show_bug.cgi?id=159586
<rdar://problem/26759984>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-07-26
Reviewed by Simon Fraser.

Source/WebCore:

Limit the size of the canvas context state stack to 1024 * 16 saves. All
the saves which come after that limit will stay unrealized. The restore()
should not have any effect till there is no unrealized saves.

Test: fast/canvas/canvas-context-save-limit.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::realizeSaves):
(WebCore::CanvasRenderingContext2D::realizeSavesLoop):

  • html/canvas/CanvasRenderingContext2D.h:

LayoutTests:

  • fast/canvas/canvas-context-save-limit-expected.txt: Added.
  • fast/canvas/canvas-context-save-limit.html: Added.
11:00 AM Changeset in webkit [203728] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

DOMTokenList should be iterable
https://bugs.webkit.org/show_bug.cgi?id=160183

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Chris Dumez.

Source/WebCore:

DOMTokenList should be iterable as per https://dom.spec.whatwg.org/#interface-domtokenlist

Test: fast/dom/domTokenListIterator.html

  • html/DOMTokenList.idl: Added iterable to the interface description.

LayoutTests:

  • fast/dom/domTokenListIterator-expected.txt: Added.
  • fast/dom/domTokenListIterator.html: Added.
  • fast/dom/iterable-tests.js: Added.
  • fast/dom/nodeListIterator-expected.txt:
  • fast/dom/nodeListIterator.html: Making use of iterable-tests.js
10:26 AM Changeset in webkit [203727] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Threaded Compositor] ASSERTION FAILED: canAccessThreadLocalDataForThread(m_thread) after r203718
https://bugs.webkit.org/show_bug.cgi?id=160201

Reviewed by Michael Catanzaro.

I forgot to call purgeGLResources() before invalidating the scene in the compositing thread.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::invalidate):

10:13 AM Changeset in webkit [203726] by commit-queue@webkit.org
  • 21 edits
    2 deletes in trunk

Unreviewed, rolling out r203719.
https://bugs.webkit.org/show_bug.cgi?id=160200

It is breaking win build (Requested by youenn on #webkit).

Reverted changeset:

"[Fetch API] Response constructor should be able to take a
ReadableStream as body"
https://bugs.webkit.org/show_bug.cgi?id=159804
http://trac.webkit.org/changeset/203719

9:57 AM Changeset in webkit [203725] by wilander@apple.com
  • 3 edits
    6 adds in trunk

Stop supporting compressed character sets BOCU-1 and SCSU
https://bugs.webkit.org/show_bug.cgi?id=159581

Reviewed by Brent Fulgham.

WebKit should not support the compressed character sets BOCU-1 and SCSU.
Chrome and Firefox don't and these old formats may pass server-side character
filters while still rendering in WebKit.

The HTML specification says "The above prohibits supporting, for example,
CESU-8, UTF-7, BOCU-1, SCSU, EBCDIC, and UTF-32."
https://html.spec.whatwg.org/#character-encodings

Source/WebCore:

Tests: http/tests/misc/char-encoding-bocu-1-blacklisted.html

http/tests/misc/char-encoding-scsu-blacklisted.html

  • platform/text/TextEncodingRegistry.cpp:

Blacklisted BOCU-1 and SCSU character sets.

LayoutTests:

  • http/tests/misc/char-encoding-bocu-1-blacklisted-expected.txt: Added.
  • http/tests/misc/char-encoding-bocu-1-blacklisted.html: Added.
  • http/tests/misc/char-encoding-scsu-blacklisted-expected.txt: Added.
  • http/tests/misc/char-encoding-scsu-blacklisted.html: Added.
  • http/tests/misc/resources/bocu-1-cyrillic.php: Added.
  • http/tests/misc/resources/scsu-cyrillic.php: Added.
9:32 AM Changeset in webkit [203724] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/27536113

Reviewed by Tim Horton.

Autocapitalization should be enabled/disabled regardless of whether
we are using advance spelling feature.

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):

9:29 AM Changeset in webkit [203723] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore
ASSERTION FAILED: !m_frame->page()->defersLoading()
InspectorInstrumentation::isDebuggerPaused(m_frame)

https://bugs.webkit.org/show_bug.cgi?id=160193

Reviewed by Michael Catanzaro.

This is happening in the GTK+ Debug bot when running test loader/load-defer.html (note that the assert is inside
a !USE(CF) block).
The test is creating an iframe with load deferred, then in a timeout it disables the deferred load and checks
that the load actually happens. What happens is that the initial empty document is what calls
DocumentLoader::finishedLoading() when load is still deferred. The onload handler is not called because load
events are disabled for the initial empty document in SubframeLoader::loadSubframe(), but
DocumentLoader::finishedLoading() is called unconditionally from maybeLoadEmpty(). I think it's fine to call
DocumentLoader::finishedLoading() for the initial empty document even when load is deferred, so we can simply
update the assert to handle that case.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading): Do not assert if called for the initial empty document when load is
deferred.

9:26 AM Changeset in webkit [203722] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[Coordinated Graphics] Test fast/fixed-layout/fixed-layout.html crashes in debug
https://bugs.webkit.org/show_bug.cgi?id=160117

Reviewed by Michael Catanzaro.

The problem is that WebPage has its own m_useFixedLayout that is only updated when changed from the UI
process. However, layout tests doing internals.setUseFixedLayout() change the frame view directly, and the
WebPage doesn't notice it.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setFixedVisibleContentRect): Deleted.
(WebKit::WebPage::sendViewportAttributesChanged): Change the assert to check the main FrameView is in fixed
layout mode.

  • WebProcess/WebPage/WebPage.h:
9:25 AM Changeset in webkit [203721] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] ASSERTION FAILED: isMainThread() when ThreadedCompositor is destroyed since r203718
https://bugs.webkit.org/show_bug.cgi?id=160197

Reviewed by Žan Doberšek.

ThreadedCompositor can be destroyed from a secondary thread, for example, when a task takes a reference and the
main threads derefs it, when the task finishes in the secondary thread the lambda ends up deleting the threaded
compositor. This is ok for the Threaded compositor but not for the CompositingRunLoop class. this was not a
problem before r203718 because the CompositingRunLoop object was created and destroyed in the same thread
always, but now it's part of the ThreadedCompositor class. This patch uses std:unique_ptr again to explicitly
create the CompositingRunLoop in the ThreadedCompositor constructor and delete in the invalidate() method to
make sure it happens in the main thread in both cases.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
9:23 AM Changeset in webkit [203720] by commit-queue@webkit.org
  • 25 edits in trunk

Remove ClientCredentialPolicy cross-origin option from ResourceLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159413

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Below test changes as ResourceLoader is now computing whether to request credentials to clients if:

  • request is authorized to request credentials (DocumentThreadableLoader only allows same-origin to make such thing)
  • credential policy is Include or Same-Origin and request is same-origin.

This test changes as current fetch loader sets the credential mode to Omit, thus disabling credential request.

To be noted that only fetch API is allowing to disable credentials sending for same-origin request using "Omit"
credential mode.

  • web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Rebasing test.

Source/WebCore:

ClientCredentialPolicy had three values (not ask, ask, ask only for same origin).
The distinction between allowing cross-origin or same-origin credentials is misleading as it is not supported
for synchronous loads and not supported by Network process.
It is best replaced by a boolean option (ask or not ask).

Same-origin ClientCredentialPolicy option was only used by DocumentThreadableLoader for asynchronous loads.
Since DocumentThreadableLoader is already computing whether the request is cross-origin, it can also compute
whether credentials may be requested or not. In case of cross-origin redirections, credentials are omitted, thus
disabling any possibility for requesting credentials for cross-origin resources after redirections.

Moving ClientCredentialPolicy to ResourceLoaderOptions since it is not used by platform code except for some
mac-specific code that is already using ResourceLoaderOptions.

Covered by existing tests.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight): Setting clearly credential mode to Omit credentials.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): AskClientForAllCredentials ->
ClientCredentialPolicy::MayAskClientForCredentials.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest): Disabling requesting credentials for any cross-origin request.

  • loader/FrameLoader.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): Ditto.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::isAllowedToAskUserForCredentials): Disabling client credential request if ClientCredentialPolicy is CannotAskClientForCredentials.
Otherwise, returns true if fetch credentials mode allows it.

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::clientCredentialPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setClientCredentialPolicy): Deleted.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
(WebCore::CachedResourceLoader::defaultCachedResourceOptions): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading): DoNotAskClientForAnyCredentials -> ClientCredentialPolicy::CannotAskClientForCredentials.

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading): DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::CannotAskClientForCredentials.
This is ok as credentials mode is omit and stored credentials are not allowed.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading): Ditto.

  • platform/network/ResourceHandleTypes.h:
  • xml/XSLTProcessorLibxslt.cpp: DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.

This is ok as this is a synchronous load.
(WebCore::docLoaderFunc):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc): DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
This is ok as this is a synchronous load.

Source/WebKit2:

Renaming of ClientCredentialPolicy values.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkLoad::didReceiveAuthenticationChallenge):

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest):

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
9:03 AM Changeset in webkit [203719] by commit-queue@webkit.org
  • 21 edits
    1 copy
    1 add in trunk

[Fetch API] Response constructor should be able to take a ReadableStream as body
https://bugs.webkit.org/show_bug.cgi?id=159804

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.

Source/WebCore:

Covered by existing and updated tests.

Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.

FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.

Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.

To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.

For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.

To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.

Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.

Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.

Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.

  • CMakeLists.txt: Adding FetchBodyConsumer.
  • Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.

(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::consumer):

  • Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.

(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):

  • Modules/fetch/FetchBodyConsumer.h: Added.

(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.

  • Modules/fetch/FetchInternals.js:

(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.

  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:

(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolveWithNewValue):

  • bindings/js/WebCoreBuiltinNames.h:
6:26 AM Changeset in webkit [203718] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] Crashes and deadlocks in single web process mode
https://bugs.webkit.org/show_bug.cgi?id=160160

Reviewed by Žan Doberšek.

Every WebPage has its own threaded compositor that runs its own compositing thread. That means that when there's
more than one WebPage in the same process, we are running OpenGL stuff in different secondary threads. That's
causing crashes and deadlocks in X and graphics drivers. We should ensure there's a single compositing thread
per process when multiple threads is not supported. This is causing unit test
WebKit2.WKPageGetScaleFactorNotZero to time out since we switched to the threaded compositor. That test is
creating two pages in the same web process, and most of the times the web process crashes or deadlocks causing
the test to never finish and time out.
This patch makes CompositingRunLoop use a thread pool that spawns the compositing threads and schedules the tasks
there.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::WorkQueuePool::singleton):
(WebKit::WorkQueuePool::dispatch):
(WebKit::WorkQueuePool::runLoop):
(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::WorkQueuePool):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):
(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::~CompositingRunLoop):
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::purgeBackingStores):
(WebKit::ThreadedCompositor::renderNextFrame):
(WebKit::ThreadedCompositor::commitScrollOffset):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):
(WebKit::ThreadedCompositor::tryEnsureGLContext): Deleted.
(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::updateSceneState): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
4:08 AM Changeset in webkit [203717] by svillar@igalia.com
  • 19 edits in trunk

[css-grid] repeat() syntax should take a <track-list> argument
https://bugs.webkit.org/show_bug.cgi?id=160162

Reviewed by Darin Adler.

Source/WebCore:

The repeat() notation used to allow just 1 <track-size> as second argument. Specs have been
recently modified so that a <track-list> is now supported, meaning that we can pass an
arbitrary number of track sizes and line numbers.

It has been working for some time for repeat() if the first argument was a positive integer,
but it requires some changes for the auto repeat cases (auto-fill and auto-fit).

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector): Store the total number of
auto repeat tracks and the length of a single repetition instead of the number of
repetitions.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex): Do not assume that there is
only 1 repeat track.
(WebCore::valueForGridTrackList):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTrackRepeatFunction): Allow multiple tracks in repeat().

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::rawGridTrackSize): Renamed repetitions -> autoRepeatTracksCount.
(WebCore::RenderGrid::computeAutoRepeatTracksCount): Use all the repeat tracks to compute
the total track size of a single repetition.
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::NamedLineCollection::NamedLineCollection): Renamed m_repetitions ->
m_autoRepeatTotalTracks. Added m_autoRepeatTrackListLength (it was always 1 before).
(WebCore::NamedLineCollection::find): Resolve lines inside multiple repeat tracks.
(WebCore::NamedLineCollection::firstPosition): Ditto.

  • rendering/style/GridPositionsResolver.h:

LayoutTests:

Added new test cases with multiple tracks inside repeat() notation, both for fixed an
automatic (auto-fill & auto-fit) repetitions.

  • fast/css-grid-layout/grid-auto-fill-columns-expected.txt:
  • fast/css-grid-layout/grid-auto-fill-columns.html:
  • fast/css-grid-layout/grid-auto-fill-rows-expected.txt:
  • fast/css-grid-layout/grid-auto-fill-rows.html:
  • fast/css-grid-layout/grid-auto-fit-columns-expected.txt:
  • fast/css-grid-layout/grid-auto-fit-columns.html:
  • fast/css-grid-layout/grid-auto-fit-rows-expected.txt:
  • fast/css-grid-layout/grid-auto-fit-rows.html:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-repeat-get-set.html:
2:37 AM Changeset in webkit [203716] by svillar@igalia.com
  • 15 edits in trunk

[css-grid] grid-auto-flow|row should take a <track-size>+
https://bugs.webkit.org/show_bug.cgi?id=160158

Reviewed by Darin Adler.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackSizeList):
(WebCore::ComputedStyleExtractor::propertyValue): Return a list of <track-size> instead of
just one.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Use the new values of TrackListType;
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Ditto.
(WebCore::CSSParser::parseGridTemplateShorthand): Ditto.
(WebCore::CSSParser::parseGridShorthand): Ditto.
(WebCore::CSSParser::parseGridTrackList): Changed behavior depending on the value of
TrackSizeList.

  • css/CSSParser.h: TrackListType has now 3 different values which determine the behavior of

parseGridTrackList.

  • css/CSSPropertyNames.in: Use a new converter for lists.
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertGridTrackSizeList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::rawGridTrackSize): Resolve the size of the auto track.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::gridAutoColumns): Return a Vector.
(WebCore::RenderStyle::gridAutoRows): Ditto.
(WebCore::RenderStyle::setGridAutoColumns): Store a Vector.
(WebCore::RenderStyle::setGridAutoRows): Ditto.
(WebCore::RenderStyle::initialGridAutoColumns): Return a Vector with one auto track.
(WebCore::RenderStyle::initialGridAutoRows): Ditto.

  • rendering/style/StyleGridData.h: Store a Vector of GridTrackSize instead of just one.

LayoutTests:

  • fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
  • svg/css/getComputedStyle-basic-expected.txt: CSSPrimitiveValue -> CSSValueList.
1:06 AM Changeset in webkit [203715] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test svn.webkit.org functionality after maintenance.

12:51 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:46 AM Changeset in webkit [203714] by fred.wang@free.fr
  • 6 edits
    3 adds in trunk

MathOperator: Add a mapping from combining to non-combining equivalents
https://bugs.webkit.org/show_bug.cgi?id=159513

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-25
Reviewed by Darin Adler.

Source/WebCore:

Many math fonts provide stretch variants and assemblies for combining characters but not for
their non-combining equivalent. In the MathML recommendation, it is suggested to use
non-combining charaters, so we allow the operator stretching code to look for constructions
associated to these non-combining characters in order to still be able to stretch the
combining ones.

Test: mathml/presentation/bug159513.html

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::getGlyph): New function extending getBaseGlyph to retrieve the glyph
data for an arbitrary character.
(WebCore::MathOperator::getMathVariantsWithFallback): This helper function calls
getMathVariants for the base glyph. If no constructions are available, it calls
getMathVariants for the glyph associated to equivalent fallback characters as listed in the
small characterFallback table.
(WebCore::MathOperator::calculateStretchyData): Call getMathVariantsWithFallback instead of
getMathVariants. Note that we do not need to do that for calculateDisplayStyleLargeOperator
as we do not use fallback for large operators.

  • rendering/mathml/MathOperator.h:

(WebCore::MathOperator::getBaseGlyph): Use getGlyph to implement this function.

LayoutTests:

  • mathml/presentation/bug159513.html: Added.
  • platform/gtk/mathml/presentation/bug159513-expected.png: Added.
  • platform/gtk/mathml/presentation/bug159513-expected.txt: Added.
  • platform/ios-simulator/TestExpectations: Skip this test on iOS.
  • platform/mac/TestExpectations: Skip this test on Mac.

Jul 25, 2016:

10:46 PM Changeset in webkit [203713] by Chris Dumez
  • 12 edits in trunk

Second parameter to Range.setStart() / setEnd() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160184

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Second parameter to Range.setStart() / setEnd() should be mandatory:

Also use "unsigned long" instead of "long" type for the parameter,
as per the specification.

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::checkNodeWOffset):

  • dom/Range.h:
  • dom/Range.idl:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::set):

LayoutTests:

Update tests to reflect behavior change.

  • editing/deleting/delete-uneditable-style.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
  • fast/regions/simplified-layout-no-regions.html:
10:27 PM Changeset in webkit [203712] by Chris Dumez
  • 4 edits in trunk

DOMTokenList.prototype.toString should be enumerable
https://bugs.webkit.org/show_bug.cgi?id=160182

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

DOMTokenList.prototype.toString should be enumerable:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • html/DOMTokenList.idl:
10:27 PM Changeset in webkit [203711] by n_wang@apple.com
  • 7 edits in trunk

AX: Expose autoFillButtonType to accessibility
https://bugs.webkit.org/show_bug.cgi?id=160179

Reviewed by Chris Fleizach.

Source/WebCore:

Added a new attribute on Mac to expose the auto-fill button type.

Changes are covered in modified test.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isValueAutofillAvailable):
(WebCore::AccessibilityObject::valueAutofillButtonType):
(WebCore::AccessibilityObject::isValueAutofilled):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::passwordFieldValue):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/auto-fill-types-expected.txt:
  • accessibility/auto-fill-types.html:
8:04 PM Changeset in webkit [203710] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix for Safari 9.

  • public/v3/models/build-request.js:

(BuildRequest.prototype.waitingTime): Don't use "const" in strict mode.

7:45 PM Changeset in webkit [203709] by rniwa@webkit.org
  • 15 edits
    2 adds in trunk/Websites/perf.webkit.org

Perf dashboard should show the list of a pending A/B testing jobs
https://bugs.webkit.org/show_bug.cgi?id=160138

Rubber-stamped by Chris Dumez.

Add a page to show the list of A/B testing build requests per triggerable. Ideally, we would like to
see a queue per builder but that would require changes to database tables and syncing scripts.

Because this page is most useful when the analysis task with which each build request is associated,
JSON API at /api/build-requests/ has been modified to return the analysis task ID for each request.

Also streamlined the page that shows the list of analysis tasks per Chris' feedback by consolidating
"Bisecting" and "Identified" into "Investigated" and moving the toolbar from the upper left corner
inside the heading to right beneath the heading above the table. Also made the category page serialize
the filter an user had typed in so that reloading the page doesn't clear it.

  • public/api/analysis-tasks.php:

(fetch_associated_data_for_tasks): Removed 'category' from the list of columns returned as the notion
of 'category' is only relevant in UI, and it's better computed in the front-end.
(format_task): Ditto.
(determine_category): Deleted.

  • public/api/test-groups.php:

(main):

  • public/include/build-requests-fetcher.php:

(BuildRequestsFetcher::fetch_for_task): Include the analysis task ID in the rows.
(BuildRequestsFetcher::fetch_for_group): Ditto. Ditto.
(BuildRequestsFetcher::fetch_incomplete_requests_for_triggerable): Ditto.
(BuildRequestsFetcher::results_internal): Ditto.

  • public/v3/index.html:
  • public/v3/main.js:

(main): Create a newly introduced BuildRequestQueuePage as a subpage of AnalysisCategoryPage.

  • public/v3/components/ratio-bar-graph.js:

(RatioBarGraph.prototype.update): Fixed a bogus assertion here. ratio can be any number. The coercion
into [-1, 1] is done inside RatioBarGraph's render() function.

  • public/v3/models/analysis-task.js:

(AnalysisTask.prototype.category): Moved the code to compute the analysis task's category from
determine_category in analysis-tasks.php. Also merged "bisecting" and "identified" into "investigated".
(AnalysisTask.categories): Merged "bisecting" and "identified" into "investigated".

  • public/v3/models/build-request.js:

(BuildRequest): Remember the triggerable and the analysis task associated with this request as well as
the time at when this request was created.
(BuildRequest.prototype.analysisTaskId): Added.
(BuildRequest.prototype.statusLabel): Use a shorter label: "Waiting" for "pending" status.
(BuildRequest.prototype.createdAt): Added.
(BuildRequest.prototype.waitingTime): Added. Returns a human readable time duration since the creation
of this build request such as "2 hours 21 minutes" against a reference time.
(BuildRequest.fetchTriggerables): Added.
(BuildRequest.cachedRequestsForTriggerableID): Added. Used when navigating back to

  • public/v3/pages/analysis-category-page.js:

(AnalysisCategoryPage): Construct AnalysisCategoryToolbar and store it in this._categoryToolbar since it
no longer inherits from Toolbar class, which PageWithHeading recognizes and stores.
(AnalysisCategoryPage.prototype.title):
(AnalysisCategoryPage.prototype.serializeState): Added.
(AnalysisCategoryPage.prototype.stateForCategory): Added. Include the filter in the serialization.
(AnalysisCategoryPage.prototype.updateFromSerializedState): Restore the filter from the URL state.
(AnalysisCategoryPage.prototype.filterDidChange): Added. Called by AnalysisCategoryToolbar to update
the URL state in addition to calling render() as done previously via setFilterCallback.
(AnalysisCategoryPage.prototype.render): Always call _categoryToolbar.render() since the hyperlinks for
the category pages now include the filter, which can be updated in each call.
(AnalysisCategoryPage.cssTemplate):

  • public/v3/pages/analysis-category-toolbar.js:

(AnalysisCategoryToolbar): Inherits from ComponentBase instead of Toolbar since AnalysisCategoryToolbar
no longer works with Heading class unlike other subclasses of Toolbar class.
(AnalysisCategoryToolbar.prototype.setCategoryPage): Added.
(AnalysisCategoryToolbar.prototype.setFilterCallback): Deleted.
(AnalysisCategoryToolbar.prototype.setFilter): Added. Used to restore from a serialized URL state.
(AnalysisCategoryToolbar.prototype.render): Don't recreate the input element as it clears the value as
well as the selection of the element. Also use AnalysisCategoryPage's stateForCategory to serialize the
category name and the current filter for each hyperlink.
(AnalysisCategoryToolbar.prototype._filterMayHaveChanged): Now takes an boolean argument specifying
whether the URL state should be updated or not. We update the URL only when a change event is fired to
avoid constantly updating it while an user is still typing.
(AnalysisCategoryToolbar.cssTemplate): Added.
(AnalysisCategoryToolbar.htmlTemplate): Added a button to open the newly added queue page.

  • public/v3/pages/build-request-queue-page.js:

(BuildRequestQueuePage): Added.
(BuildRequestQueuePage.prototype.routeName): Added.
(BuildRequestQueuePage.prototype.pageTitle): Added.
(BuildRequestQueuePage.prototype.open): Added. Fetch open build requests for every triggerables using
the same API as the syncing scripts.
(BuildRequestQueuePage.prototype.render): Added.
(BuildRequestQueuePage.prototype._constructBuildRequestTable): Added. Construct a table for the list of
pending, scheduled or running build requests in the order syncing scripts would see. Note that the list
of build requests returned by /api/build-requests/* can contain completed, canceled, or failed requests
since the JSON returns all build requests associated with each test group if one of the requests of the
group have not finished. This helps syncing scripts picking the right builder for A/B testing when it
had previously been unloaded or crashed in the middle of processing a test group. This characteristics
of the API actually helps us here because we can reliably compute the total number of build requests in
the group. The first half of this function does this counting as well as collapses all but the first
unfinished build requests into a "contraction" row, which just shows the number of build requests that
are remaining in the group.
(BuildRequestQueuePage.cssTemplate): Added.
(BuildRequestQueuePage.htmlTemplate): Added.

  • public/v3/pages/summary-page.js:

(SummaryPage.prototype.open): Use one-day median instead of seven-day median to compute the status.
(SummaryPageConfigurationGroup): Initialize _ratio to NaN. This was causing assertion failures in
RatioBarGraph's update() while measurement sets are being fetched.

  • server-tests/api-build-requests-tests.js: Updated the tests per change in BuildRequest's statusLabel.
  • unit-tests/analysis-task-tests.js: Ditto.
  • unit-tests/test-groups-tests.js: Ditto.
  • unit-tests/build-request-tests.js: Added tests for BuildRequest's waitingTime.
7:40 PM Changeset in webkit [203708] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

Cleanup RenderTable*::createAnonymous*
https://bugs.webkit.org/show_bug.cgi?id=160175

Reviewed by Simon Fraser.

This patch

  1. tightens the type on createAnonymousBoxWithSameTypeAs, createAnonymousWithParentRendererAndDisplay and

createAnonymousWithParentRenderer from RenderObject to the appropriate type.

  1. changes the return type of create* function from raw pointer to std::unique_ptr<>
  2. decouples createAnonymousBoxWithSameTypeAs and createAnonymousWithParentRenderer.

createAnonymousBoxWithSameTypeAs misleadingly calls createAnonymousWithParentRenderer
while it is never the parent in case of table items.
(std::unique_ptr::release() vs. WTFMove() will be addressed in a separate patch)

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::createAnonymousBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBox.h:

(WebCore::RenderBox::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::addChild):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::splitFlow):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addChild):
(WebCore::RenderTable::createTableWithStyle):
(WebCore::RenderTable::createAnonymousWithParentRenderer):

  • rendering/RenderTable.h:

(WebCore::RenderTable::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::createTableCellWithStyle):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::addChild):
(WebCore::RenderTableRow::createTableRowWithStyle):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):

  • rendering/RenderTableRow.h:

(WebCore::RenderTableRow::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::createTableSectionWithStyle):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):

  • rendering/RenderTableSection.h:

(WebCore::RenderTableSection::createAnonymousBoxWithSameTypeAs):

7:24 PM Changeset in webkit [203707] by Chris Dumez
  • 3 edits
    2 adds in trunk

Touch properties should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=160174

Reviewed by Ryosuke Niwa.

Source/WebCore:

Touch properties should be on the prototype:

Chrome agrees with the specification.

Test: platform/ios-simulator/ios/touch/Touch-attributes-prototype.html

  • bindings/scripts/CodeGeneratorJS.pm:

(InterfaceRequiresAttributesOnInstanceForCompatibility): Deleted.

LayoutTests:

Add layout test coverage.

  • platform/ios-simulator/ios/touch/Touch-attributes-prototype-expected.txt: Added.
  • platform/ios-simulator/ios/touch/Touch-attributes-prototype.html: Added.
7:18 PM Changeset in webkit [203706] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Set MediaRemote playback state based on MediaSession playback state.
https://bugs.webkit.org/show_bug.cgi?id=160177

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-25
Reviewed by Eric Carlson.

Use playback session state to update media remote playback state instead of
unconditionally setting it to playing.

  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::updateNowPlayingInfo):

7:15 PM Changeset in webkit [203705] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

RenderBox::haveSameDirection is used only by table items.
https://bugs.webkit.org/show_bug.cgi?id=160141

Reviewed by Simon Fraser.

Remove RenderBox::haveSameDirection() since it's used only by RenderTable*
classes. The new stand alone function (with 2 arguments) now checks if both of
the objects are valid.

No change in functionality.

  • rendering/RenderBox.h:

(WebCore::RenderBox::hasSameDirectionAs): Deleted.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):

  • rendering/RenderTable.h:

(WebCore::haveSameDirection):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
(WebCore::RenderTableCell::hasEndBorderAdjoiningTable):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::borderAdjoiningTableStart):
(WebCore::RenderTableCell::borderAdjoiningTableEnd):

  • rendering/RenderTableRow.h:

(WebCore::RenderTableRow::borderAdjoiningTableStart):
(WebCore::RenderTableRow::borderAdjoiningTableEnd):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):

  • rendering/RenderTableSection.h:

(WebCore::RenderTableSection::borderAdjoiningTableStart):
(WebCore::RenderTableSection::borderAdjoiningTableEnd):

6:05 PM Changeset in webkit [203704] by benjamin@webkit.org
  • 23 edits
    4 copies in trunk/Source/JavaScriptCore

Unreviewed, rolling out r203703.

It breaks some internal tests

Reverted changeset:

"[JSC] DFG::Node should not have its own allocator"
https://bugs.webkit.org/show_bug.cgi?id=160098
http://trac.webkit.org/changeset/203703

5:27 PM Changeset in webkit [203703] by commit-queue@webkit.org
  • 23 edits
    4 deletes in trunk/Source/JavaScriptCore

[JSC] DFG::Node should not have its own allocator
https://bugs.webkit.org/show_bug.cgi?id=160098

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-25
Reviewed by Geoffrey Garen.

We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets

and maps, it is a lot faster than hashing pointers.

-We should be able to subclass DFG::Node to specialize it.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAllocator.h: Removed.

(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):

  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):

  • dfg/DFGConstantHoistingPhase.cpp:
  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addNode):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGLongLivedState.cpp: Removed.

(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.

  • dfg/DFGLongLivedState.h: Removed.
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::index): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::index):

  • dfg/DFGNodeAllocator.h: Removed.

(operator new ): Deleted.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPlan.h:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::runThread):

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:
5:21 PM Changeset in webkit [203702] by Chris Dumez
  • 8 edits
    5 adds in trunk

ClientRect properties should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=160165

Reviewed by Geoffrey Garen.

Source/WebCore:

Move ClientRect properties from the instance to the prototype. This
matches the specification, Firefox and Chrome.

Also add a serializer to ClientRect in order to match the specification:

This avoids breaking content that relies on JSON.stringify() to
serialize ClientRect objects.

Tests: fast/css/ClientRect-attributes-prototype.html

fast/css/ClientRect-serialization.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSClientRectCustom.cpp: Added.

(WebCore::JSClientRect::toJSON):

  • bindings/scripts/CodeGeneratorJS.pm:
  • dom/ClientRect.idl:

LayoutTests:

  • fast/css/ClientRect-attributes-prototype-expected.txt: Added.
  • fast/css/ClientRect-attributes-prototype.html: Added.

Add layout test to check that ClientRect's properties are on the
prototype.

  • fast/css/ClientRect-serialization-expected.txt: Added.
  • fast/css/ClientRect-serialization.html: Added.

Add layout test to check that ClientRect has a serializer.

2:53 PM Changeset in webkit [203701] by Chris Dumez
  • 8 edits
    2 adds in trunk

Parameters to DOMImplementation.createDocumentType() should be mandatory and non-nullable
https://bugs.webkit.org/show_bug.cgi?id=160167

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline a W3C test now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to DOMImplementation.createDocumentType() should be mandatory
and non-nullable:

Firefox and Chrome both agree with the specification. However, those
parameters were nullable and optional in WebKit.

Test: fast/dom/DOMImplementation/createDocumentType-parameters.html

  • dom/DOMImplementation.idl:

LayoutTests:

  • editing/selection/script-tests/DOMSelection-DocumentType.js:
  • fast/dom/DOMImplementation/createDocumentType-err-expected.txt:
  • fast/dom/DOMImplementation/script-tests/createDocumentType-err.js:

Update existing tests to reflect the behavior change.

  • fast/dom/DOMImplementation/createDocumentType-parameters-expected.txt: Added.
  • fast/dom/DOMImplementation/createDocumentType-parameters.html: Added.

Add layout test coverage. I have verified that this test passes on both
Firefox and Chrome.

2:38 PM Changeset in webkit [203700] by beidson@apple.com
  • 7 edits in trunk/Tools

Modern IDB: Make sure IndexedDB works from file:// url documents by default
https://bugs.webkit.org/show_bug.cgi?id=153783

Reviewed by Alex Christensen.

Previously, to grant IndexedDB access to file:// urls for testing purposes,
we had to call the SPI [WKWebViewConfiguration _setAllowUniversalAccessFromFileURLs:].

As of https://trac.webkit.org/changeset/203695 this is no longer required.

Change the relevant API tests to make sure this continues to be no longer required.

  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm:
2:03 PM Changeset in webkit [203699] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

AssemblyHelpers should own all of the cell allocation methods
https://bugs.webkit.org/show_bug.cgi?id=160171

Reviewed by Saam Barati.

Prior to this change we had some code in DFGSpeculativeJIT.h and some code in JIT.h that
did cell allocation.

This change moves all of that code into AssemblyHelpers.h.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):
(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocate):
(JSC::AssemblyHelpers::emitAllocateJSCell):
(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSized):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::isOperandConstantChar):
(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitAllocateJSObject): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):

1:51 PM Changeset in webkit [203698] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

Media controls should not be displayed for a video until it starts playing
https://bugs.webkit.org/show_bug.cgi?id=160092
<rdar://problem/26986673>

Reviewed by Beth Dakin.

Source/WebCore:

For videos that have never played back yet, we should not show media controls. To ensure this
behavior, we ensure that the playback behavior restriction is set upon creating the media
element. This restriction is then removed when the media element begins to play.

Added two new WebKit API tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

Tools:

Verify that multiple videos do or don't show the media controller depending on whether videos
are playing. Also tweaks an existing API test (VideoControlsManagerSingleLargeVideo) that was
passing because we were always showing media controls for large videos with audio, even if they
had not played back yet. This change ensures that large videos with audio show media controls
only after they begin to play back, and not by virtue of being large enough for main content.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio-autoplay.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio.html: Added.
1:40 PM Changeset in webkit [203697] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

MathICs should be able to take and dump stats about code size
https://bugs.webkit.org/show_bug.cgi?id=160148

Reviewed by Filip Pizlo.

This will make testing changes on MathIC going forward much easier.
We will be able to easily see if modifications to MathIC will lead
to us generating smaller code. We now only dump average size when we
regenerate any MathIC. This works out for large tests/pages, but is not
great for testing small programs. We can add more dump points later if
we find that we want to dump stats while running small small programs.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jitSoon):
(JSC::CodeBlock::dumpMathICStats):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::isStrictMode):
(JSC::CodeBlock::ecmaMode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMathIC):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):

  • jit/JITMathIC.h:

(JSC::JITMathIC::finalizeInlineCode):
(JSC::JITMathIC::codeSize):

  • jit/JITOperations.cpp:
1:35 PM Changeset in webkit [203696] by jiewen_tan@apple.com
  • 16 edits
    10 moves
    1 add in trunk

Rename SubtleCrypto to WebKitSubtleCrypto
https://bugs.webkit.org/show_bug.cgi?id=160067
<rdar://problem/27483617>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: crypto/webkitSubtle/gc-2.html

crypto/webkitSubtle/gc-3.html
crypto/webkitSubtle/gc.html

Rename Class SubtleCrypto to WebKitSubtleCrypto, and Crypto.subtle to Crypto.webkitSubtle in order
to let the new implementation to reuse the name SubtleCrypto. This renaming should match what our
current JSBindings use, and therefore should not introduce any change of behavoir.

  • CMakeLists.txt:

Revise project files for for new file names.

  • DerivedSources.cpp:
  • DerivedSources.make:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Revise project files for for new file names.

  • bindings/js/JSWebKitSubtleCryptoCustom.cpp: Renamed from Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp.
  • crypto/WebKitSubtleCrypto.cpp: Renamed from Source/WebCore/crypto/SubtleCrypto.cpp.
  • crypto/WebKitSubtleCrypto.h: Renamed from Source/WebCore/crypto/SubtleCrypto.h.
  • crypto/WebKitSubtleCrypto.idl: Renamed from Source/WebCore/crypto/SubtleCrypto.idl.
  • page/Crypto.cpp:

(WebCore::Crypto::webkitSubtle):
(WebCore::Crypto::subtle): Deleted.

  • page/Crypto.h:
  • page/Crypto.idl:

LayoutTests:

Move tests involving crypto.webkitSubtle from crypto/subtle to crypto/webkitSubtle.

  • crypto/webkitSubtle/gc-2-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-2-expected.txt.
  • crypto/webkitSubtle/gc-2.html: Renamed from LayoutTests/crypto/subtle/gc-2.html.
  • crypto/webkitSubtle/gc-3-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-3-expected.txt.
  • crypto/webkitSubtle/gc-3.html: Renamed from LayoutTests/crypto/subtle/gc-3.html.
  • crypto/webkitSubtle/gc-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-expected.txt.
  • crypto/webkitSubtle/gc.html: Renamed from LayoutTests/crypto/subtle/gc.html.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:57 PM Changeset in webkit [203695] by beidson@apple.com
  • 3 edits
    2 moves
    1 add
    1 delete in trunk

Allow LocalStorage by default for file URLs.
https://bugs.webkit.org/show_bug.cgi?id=160169

Reviewed by Brent Fulgham.

Source/WebCore:

Test: storage/domstorage/localstorage/file-can-access.html

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canAccessStorage): Remove the m_universalAccess check for local URLs.

LayoutTests:

  • storage/domstorage/localstorage/blocked-file-access-expected.txt: Removed.
  • storage/domstorage/localstorage/file-can-access-expected.txt: Added.
  • storage/domstorage/localstorage/file-can-access.html: Renamed from LayoutTests/storage/domstorage/localstorage/blocked-file-access.html.
  • storage/domstorage/localstorage/resources/unblocked-example.html: Renamed from LayoutTests/storage/domstorage/localstorage/resources/blocked-example.html.
12:15 PM Changeset in webkit [203694] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: AccessibilityRenderObject is adding duplicated children when CSS first-letter is being used.
https://bugs.webkit.org/show_bug.cgi?id=160155

Reviewed by Chris Fleizach.

Source/WebCore:

We were adding the same text node twice if CSS first-letter selector was being used. Added a
check for the inline continuation so that we only add it once.

Test: accessibility/mac/css-first-letter-children.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::firstChildConsideringContinuation):

LayoutTests:

  • accessibility/mac/css-first-letter-children-expected.txt: Added.
  • accessibility/mac/css-first-letter-children.html: Added.
12:04 PM Changeset in webkit [203693] by sbarati@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

op_mul/ArithMul(Untyped,Untyped) should be an IC
https://bugs.webkit.org/show_bug.cgi?id=160108

Reviewed by Mark Lam.

This patch makes Mul a type based IC in much the same way that we made
Add a type-based IC. I implemented Mul in the same way. I abstracted the
implementation of the Add IC in the various JITs to allow for it to
work over arbitrary IC snippets. This will make adding Div/Sub/Pow in the
future easy. This patch also adds a new boolean argument to the various
snippet generateFastPath() methods to indicate if we should emit result profiling.
I added this because we want this profiling to be emitted for Mul in
the baseline, but not in the DFG. We used to indicate this through passing
in a nullptr for the ArithProfile, but we no longer do that in the upper
JIT tiers. So we are passing an explicit request from the JIT tier about
whether or not it's worth it for the IC to emit profiling.

We now emit much less code for Mul. Here is some data on the average
Mul snippet/IC size:

| JetStream | Unity 3D |

------| -------------

Old | ~280 bytes | ~280 bytes |

------| -------------

New | 210 bytes | 185 bytes |

------------------------------------

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::findStubInfo):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::GPRTemporary::adopt):
(JSC::DFG::FPRTemporary::FPRTemporary):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileArithMul):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::GPRTemporary::GPRTemporary):
(JSC::DFG::GPRTemporary::operator=):
(JSC::DFG::FPRTemporary::~FPRTemporary):
(JSC::DFG::FPRTemporary::fpr):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithMul):

  • jit/JIT.h:

(JSC::JIT::getSlowCase):

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):
(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITMathIC.h:

(JSC::JITMathIC::slowPathStartLocation):
(JSC::JITMathIC::slowPathCallLocation):
(JSC::JITMathIC::isLeftOperandValidConstant):
(JSC::JITMathIC::isRightOperandValidConstant):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):

  • jit/JITMathICForwards.h:
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):
(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::didEmitFastPath): Deleted.
(JSC::JITMulGenerator::endJumpList): Deleted.
(JSC::JITMulGenerator::slowPathJumpList): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
11:45 AM Changeset in webkit [203692] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix assertion.

  • NetworkProcess/cache/NetworkCacheCodersCocoa.cpp:

(WebKit::NetworkCache::encodeCertificateChain):

11:01 AM Changeset in webkit [203691] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/WebKit2

Split platform specific parts of NetworkCacheCoders.cpp into separate files
https://bugs.webkit.org/show_bug.cgi?id=160151

Patch by Sam Weinig <sam@webkit.org> on 2016-07-25
Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.

  • NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.

(WebKit::NetworkCache::encodeCFData): Moved.
(WebKit::NetworkCache::decodeCFData): Moved.
(WebKit::NetworkCache::encodeSecTrustRef): Moved.
(WebKit::NetworkCache::decodeSecTrustRef): Moved.
(WebKit::NetworkCache::encodeCertificateChain): Moved.
(WebKit::NetworkCache::decodeCertificateChain): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.

  • NetworkProcess/cache/NetworkCacheCodersSoup.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.

(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.

  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

10:49 AM Changeset in webkit [203690] by Wenson Hsieh
  • 7 edits
    3 adds in trunk

Media controls on apple.com don't disappear when movie finishes playing
https://bugs.webkit.org/show_bug.cgi?id=160068
<rdar://problem/26668526>

Reviewed by Darin Adler.

Source/WebCore:

When a video ends, it should cause media controls to hide. While current logic
mostly accounts for this, it does not account for programmatic seeks causing
the video to lose its 'ended' status before querying for whether or not to
show media controls.

Three new API tests: large-video-seek-after-ending.html
large-video-hides-controls-after-seek-to-end.html
large-video-seek-to-beginning-and-play-after-ending.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::setPlaying):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

  • html/MediaElementSession.h:

Tools:

Adds new API tests. Please see WebCore ChangeLog for more details.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[MediaPlaybackMessageHandler initWithWKWebView:finalMessageString:]):
(-[MediaPlaybackMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
(-[DidPlayMessageHandler initWithWKWebView:]): Deleted.
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-hides-controls-after-seek-to-end.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-after-ending.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-to-beginning-and-play-after-ending.html: Added.
10:21 AM Changeset in webkit [203689] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:13 AM Changeset in webkit [203688] by commit-queue@webkit.org
  • 9 edits
    2 copies in trunk/Source/WebCore

Introduce a MathMLOperatorElement class
https://bugs.webkit.org/show_bug.cgi?id=160034

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-25
Reviewed by Darin Adler.

No new tests, rendering is unchaned.

  • CMakeLists.txt: Add MathMLOperatorElement to the build file.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLOperatorElement.cpp: New DOM class for <mo> element.

(WebCore::MathMLOperatorElement::MathMLOperatorElement):
(WebCore::MathMLOperatorElement::create):
(WebCore::MathMLOperatorElement::parseAttribute): Handle mo attributes.
(WebCore::MathMLOperatorElement::createElementRenderer): Create RenderMathMLOperator.

  • mathml/MathMLOperatorElement.h: Declare a class deriving from MathMLTextElement.
  • mathml/MathMLTextElement.cpp: Remove all the RenderMathMLOperator parts.

(WebCore::MathMLTextElement::MathMLTextElement): Remove inline keyword so that the class can
be overriden.
(WebCore::MathMLTextElement::parseAttribute): Remove code handled in MathMLOperatorElement.
(WebCore::MathMLTextElement::createElementRenderer): Ditto.

  • mathml/MathMLTextElement.h: Make class and members overridable.
  • mathml/mathtags.in: Map mo to MathMLOperatorElement.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Make the constructor take a
MathMLOperatorElement.

  • rendering/mathml/RenderMathMLOperator.h: Ditto.
9:57 AM Changeset in webkit [203687] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

[iOS] Make sure we call the ProcessAssertion invalidation handler on the main thread
https://bugs.webkit.org/show_bug.cgi?id=160140
<rdar://problem/27399998>

Reviewed by Darin Adler.

Based on crash traces, it appears BKSProcessAssertion is calling our
invalidation handler on a background thread. This was not anticipated
and therefore, this would lead to thread safety issues and crashes.

We now make sure to call our invalidation handler on the main thread.
We also use a WeakPtr to ensure that the ProcessAssertion is still
alive once on the main thread and before calling the invalidation
handler.

  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::ProcessAssertion):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::createWeakPtr):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::markAsInvalidated):

9:37 AM Changeset in webkit [203686] by Darin Adler
  • 4 edits in trunk/Source

Speed up make process slightly by improving "list of files" idiom
https://bugs.webkit.org/show_bug.cgi?id=160164

Reviewed by Mark Lam.

  • DerivedSources.make: Change rules that build lists of files to only run when

DerivedSources.make has been modified since the last time they were run. Since the
list of files are inside this file, this is safe, and this is faster than always
comparing and regenerating the file containing the list of files each time.

9:30 AM Changeset in webkit [203685] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, fix test-webkitpy after r203674.

  • Scripts/webkitpy/port/linux_get_crash_log_unittest.py:

(GDBCrashLogGeneratorTest.test_generate_crash_log):

9:03 AM Changeset in webkit [203684] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

The web process hangs when computing elements-based snap points for a container with large max scroll offset
https://bugs.webkit.org/show_bug.cgi?id=152605
<rdar://problem/25353661>

Reviewed by Simon Fraser.

Source/WebCore:

Fixes a bug in the computation of axis snap points. The ScrollSnapPoints object, which tracks
snap points along a particular axis, has two flags, hasRepeat and usesElements. For elements-
based snapping, both flags would be turned on, since StyleBuilderConverter::convertScrollSnapPoints
short-circuits for elements-based snapping and does not default usesRepeat to false. To address this,
we make ScrollSnapPoints not repeat(100%) by default.

Test: css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertScrollSnapPoints): Deleted.

  • rendering/style/StyleScrollSnapPoints.cpp:

(WebCore::ScrollSnapPoints::ScrollSnapPoints):

LayoutTests:

Adds a scroll snap offset computation test case that would have previously
caused the web process to hang before this patch.

  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html: Added.
8:02 AM Changeset in webkit [203683] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r200931): Invalid cast in highestAncestorToWrapMarkup()
https://bugs.webkit.org/show_bug.cgi?id=160163

Reviewed by Michael Catanzaro.

Since r200931 the result of enclosingNodeOfType() in highestAncestorToWrapMarkup() is downcasted to Element, but
the result of enclosingNodeOfType() can be a Node that is not an Element, in this case is Text. The cast is not
needed at all since that node is passed to editingIgnoresContent() and selectionFromContentsOfNode() and both
receive a Node not an Element.

  • editing/markup.cpp:

(WebCore::highestAncestorToWrapMarkup): Remove invalid cast.

8:01 AM Changeset in webkit [203682] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Coordinated Graphics] ASSERTION FAILED: m_coordinator->isFlushingLayerChanges() in fast/repaint/animation-after-layer-scroll.html
https://bugs.webkit.org/show_bug.cgi?id=160156

Reviewed by Michael Catanzaro.

So, we fixed an assertion in r203663, but now is hitting the next one. As explained in bug #160142, flush
compositing state can be triggered in tests by RenderLayerCompositor::layerTreeAsText(), without the coordinator
even noticing it, so the assert can be just removed.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): Remove incorrect assert.

7:33 AM Changeset in webkit [203681] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

EllipsisBox ctor's isVertical parameter should read isHorizontal.
https://bugs.webkit.org/show_bug.cgi?id=160153

Reviewed by Andreas Kling.

It indicates whether the ellipsis box is horizontal. (both the callsites
and the parent class use isHorizontal)

No change in functionality.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::EllipsisBox):

  • rendering/EllipsisBox.h:
5:25 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:57 AM Changeset in webkit [203680] by svillar@igalia.com
  • 21 edits
    1 copy
    2 moves
    5 adds in trunk

[css-grid] Implement repeat(auto-fit)
https://bugs.webkit.org/show_bug.cgi?id=159771

Reviewed by Darin Adler.

Source/WebCore:

The auto-fit keyword works exactly as the already implemented auto-fill except that all
empty tracks collapse (became 0px). Absolutely positioned items do not participate on the
layout of the grid so they are not considered (a grid with only absolutely positioned items
is considered an empty grid).

Whenever a track collapses the gutters on either side do also collapse. When a collapsed
track's gutters collapse, they coincide exactly. If one side of a collapsed track does not
have a gutter then collapsing its gutters results in no gutter on either "side" of the
collapsed track.

In practice this means that is not possible to know the gap between 2 consecutive auto
repeat tracks without examining some others whenever there are collapsed tracks.

Uncommented the auto-fit cases from Mozilla tests. They have to be adapted as the reftest
machinery requires all the content to be rendered in the original 800x600 viewport.

Tests: fast/css-grid-layout/grid-auto-fit-columns.html
fast/css-grid-layout/grid-auto-fit-rows.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList): Use the newly added trackSizesForComputedStyle().

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::isEmptyAutoRepeatTrack):
(WebCore::RenderGrid::gridGapForDirection): Returns the gap directly from the style.
(WebCore::RenderGrid::guttersSize): Computes the gap between a startLine and an
endLine. This method may need to inspect some other surrounding tracks to compute the gap.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat): Returns a Vector with the auto
repeat tracks that are going to be collapsed because they're empty.
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::trackSizesForComputedStyle): Used by ComputedStyle logic to print the
size of tracks. Added in order to hide the actual contents of m_columnPositions and
m_rowPositions to the outter world.
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositionsForDirection): Added some extra code to compute
gaps as they cannot be directly added between tracks in case of having collapsed tracks.
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::offsetBetweenTracks): Deleted.

  • rendering/RenderGrid.h: Made some API private. Added new required methods/attributes.
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::hasAutoRepeatEmptyTracks):
(WebCore::RenderGrid::isEmptyAutoRepeatTrack):
(WebCore::RenderGrid::gridGapForDirection):
(WebCore::RenderGrid::guttersSize):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::trackSizesForComputedStyle):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositionsForDirection):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::offsetBetweenTracks): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

Uncommented the auto-fit cases. Split the Mozilla's 005 test in two because it was not
possible to fit all the content in a viewport without scrollbars.

  • fast/css-grid-layout/grid-auto-fit-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fit-columns.html: Added.
  • fast/css-grid-layout/grid-auto-fit-rows-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fit-rows.html: Added.
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/grid-only-abspos-item-computed-style-crash-expected.txt:
  • fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html:
  • fast/css-grid-layout/grid-positioned-items-padding-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-padding.html:
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment-expected.txt:
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1-expected.html: Renamed from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-expected.html.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html: Copied from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html: Renamed from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html.
12:21 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:18 AM Changeset in webkit [203679] by fred.wang@free.fr
  • 12 edits in trunk/Source/WebCore

Move parsing of display, displaystyle and mathvariant attributes into MathML element classes
https://bugs.webkit.org/show_bug.cgi?id=159623

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-24
Reviewed by Brent Fulgham.

No new tests, already covered by existing tests.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::parseMathVariantAttribute): Move helper function to parse the
mathvariant attribute.
(WebCore::MathMLElement::getSpecifiedDisplayStyle): Helper function to set the displaystyle
value from the attribute specified on the MathML element.
(WebCore::MathMLElement::getSpecifiedMathVariant): Helper function to set the mathvariant
value from the attribute specified on the MathML element.

  • mathml/MathMLElement.h: Move the enum for mathvariant values and declare new members.

(WebCore::MathMLElement::acceptsDisplayStyleAttribute): Indicate whether the element accepts
displaystyle attribute (false for most of them).
(WebCore::MathMLElement::acceptsMathVariantAttribute): Indicate whether the element accepts
mathvariant attribute (false for most of them).

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::acceptsDisplayStyleAttribute): Add mstyle and mtable
to the list of elements accepting the displaystyle attribute.
(WebCore::MathMLInlineContainerElement::acceptsMathVariantAttribute): Add mstyle to the list
of elements accepting the mathvariant attribute.
(WebCore::MathMLInlineContainerElement::parseAttribute): Mark displaystyle and mathvariant
dirty if necessary. Also use the new accepts*Attribute function.

  • mathml/MathMLInlineContainerElement.h: Declare overridden accepts*Attribute members.
  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::getSpecifiedDisplayStyle): Override acceptsDisplayStyleAttribute
so that the display attribute is also used to set the default value if the displaystyle
attribute is absent.
(WebCore::MathMLMathElement::parseAttribute): Mark displaystyle and mathvariant dirty if
necessary. We directly MathMLElement::parseAttribute to avoid duplicate work.

  • mathml/MathMLMathElement.h: Add the math tag to the list of elements accepting the

displaystyle and mathvariant attributes. Declare overridden getSpecifiedDisplayStyle.

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Mark mathvariant as dirty.

  • mathml/MathMLTextElement.h: Add token elements to the list of elements accepting the

mathvariant attribute.

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): Use the new MathMLElement::MathVariant enum.
(WebCore::MathMLStyle::resolveMathMLStyle): We no longer parse the display value to
initialize the default value on the math tag, because this is handled in
getSpecifiedDisplayStyle. In general, we also just call getSpecifiedDisplayStyle and
getSpecifiedMathVariant on the MathML elements instead of parsing the displaystyle and
mathvariant attributes here.
(WebCore::MathMLStyle::parseMathVariant): Deleted. This is moved into MathMLElement.

  • rendering/mathml/MathMLStyle.h: Use the new MathMLElement::MathVariant enum.
  • rendering/mathml/RenderMathMLToken.cpp: Ditto.

(WebCore::mathVariant): Ditto.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Ditto.

12:10 AM Changeset in webkit [203678] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Remove unneeded header includes from CoordinatedGraphicsLayer.

Not only thjey are not needed, they are a layer violation, CoordinatedGraphicsLayer shouldn't know anything
about Page, Frame and FrameView.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Jul 24, 2016:

11:34 PM Changeset in webkit [203677] by Philippe Normand
  • 1 edit
    1 add in trunk/Tools

Unreviewed, forgot to commit this file in r203674.

  • Scripts/process-linux-coredump: Added.

(main):

11:33 PM Changeset in webkit [203676] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] ASSERTION FAILED: !!handle !!m_nativeSurfaceHandle with several layout tests
https://bugs.webkit.org/show_bug.cgi?id=160143

Reviewed by Michael Catanzaro.

We have a message to set the native surface handle and another one for destroying it, the former is a normal
message while the latter is sync. This assertion happens if the web view is realized before the web process is
launched. This is the sequence:

1.- DrawingAreaProxyImpl sends SetNativeSurfaceHandleForCompositing message to the web process, since the
process hasn't been launched yet, the message is queued.
2.- Web process is launched and queued messages are now sent to the web process.
3.- The page is closed right after the web process is launched, and DrawingAreaProxyImpl sends
DestroyNativeSurfaceHandleForCompositing to the web process.
4.- The web process processes incoming messages, and DestroyNativeSurfaceHandleForCompositing is processed before
SetNativeSurfaceHandleForCompositing because it's sync.
5.- The web process processes SetNativeSurfaceHandleForCompositing message.

This is not only producing the assertion, it's also setting a handle for a X window already destroyed in the UI
process, so this could be producing the X errors we have seen in other tests. So, we need to make sure
SetNativeSurfaceHandleForCompositing and DestroyNativeSurfaceHandleForCompositing are handled in order by the
web process. We could make SetNativeSurfaceHandleForCompositing sync as well, but sync messages are just ignored
when sent before the web process has been launched (only normal messages are queued for obvious reasons). The
other option is sending the SetNativeSurfaceHandleForCompositing message with the
IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. In this case the message is queued and dispatched on
process launch, but it's dispatched before other messages also queued without that flag, like
CreateWebPage. Since there's no WebPage the web process doesn't find a valid message receiver for it and
it's discarded. We need to ensure the DrawinArea object has been created before sending the
SetNativeSurfaceHandleForCompositing with the PC::DispatchMessageEvenWhenWaitingForSyncReply flag.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): If we have received the first update and there's a
SetNativeSurfaceHandleForCompositing message pending, send it.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): Do not send the message before the first
update is received.
(WebKit::DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing): If there was a
SetNativeSurfaceHandleForCompositing message pending, just ignore this destroy since the web process never
received the handle.

  • UIProcess/DrawingAreaProxyImpl.h:
11:28 PM Changeset in webkit [203675] by commit-queue@webkit.org
  • 27 edits
    3 copies
    1 delete in trunk

[Fetch API] Request should be created with any HeadersInit data
https://bugs.webkit.org/show_bug.cgi?id=159672

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-24
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Test was previously

failing due to lack of support for HeadersInit data in Request constructor.

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
  • web-platform-tests/fetch/api/request/request-headers-expected.txt:
  • web-platform-tests/fetch/api/request/request-headers.html: Adding new test.

Source/JavaScriptCore:

  • Scripts/builtins/builtins_generator.py:

(WK_lcfirst): Synchronized with CodeGenerator.pm version.

Source/WebCore:

Made Request use JSBuiltinConstructor.
This allows initializing newly created Request with a JS built-in function, initializeFetchRequest.
initializeFetchRequest can call @fillFetchHeaders internal built-in to handle any HeadersInit data.
Future effort should be made to migrate more initialization code in initializeFetchRequest.

Made window and worker fetch function as a JS built-in.
This becomes more handy as these new functions can construct the Request object.
They can then call a single private function that takes a Request object as input.
Updated DOMWindowFetch and WorkerGlobalScopeFetch code accordingly.

To enable this, the binding generator is updated to support runtime-enabled JS built-in functions and
private functions atttached to global objects.

Covered by existing and modified tests.
Binding generator test covered by updated binding tests.

  • CMakeLists.txt: Adding DOMWindowFetch.js, FetchRequest.js and WorkerGlobalScopeFetch.js built-in files.
  • DerivedSources.make: Ditto.
  • Modules/fetch/DOMWindowFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::DOMWindowFetch::fetch):

  • Modules/fetch/DOMWindowFetch.h: Ditto.
  • Modules/fetch/DOMWindowFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/DOMWindowFetch.js: Added.

(fetch):

  • Modules/fetch/FetchHeaders.h:

(WebCore::FetchHeaders::setGuard): Used by FetchRequest when initializing headers.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::buildHeaders): Removed as implemented in JS.
(WebCore::FetchRequest::initializeOptions): Added to handle most of the dictionary initialization.
(WebCore::FetchRequest::initializeWith): Method called from built-in constructor function.
(WebCore::FetchRequest::setBody): Corresponding to @setBody private method.
(WebCore::buildBody): Deleted.

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchRequest.js: Added.

(initializeFetchRequest): Implements fetch Request(input, init) constructor.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Removed the construction of FetchRequest in fetch method since it is done by JS built-in code.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WorkerGlobalScopeFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::WorkerGlobalScopeFetch::fetch):

  • Modules/fetch/WorkerGlobalScopeFetch.h: Ditto.
  • Modules/fetch/WorkerGlobalScopeFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/WorkerGlobalScopeFetch.js: Added.

(fetch):

  • bindings/js/WebCoreBuiltinNames.h: Adding fetchRequest, setBody and Request private identifiers.
  • bindings/scripts/CodeGenerator.pm:

(WK_lcfirst): Replacing dOM by dom.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Adding support for runtime-enabled built-in methods and private methods.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):

  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm:

(-[DOMTestGlobalObject testJSBuiltinFunction]):

  • bindings/scripts/test/TestGlobalObject.idl: Adding tests for runtime-enabled global built-in methods and private methods.
11:07 PM Changeset in webkit [203674] by Philippe Normand
  • 16 edits in trunk

Improve GDB backtrace generation for GTK/EFL
https://bugs.webkit.org/show_bug.cgi?id=128928

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Move the Web, Database and Network ProcessIdentifier functions to
the cross-platform WKContext and WKPage implementations.

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetNetworkProcessIdentifier):
(WKContextGetDatabaseProcessIdentifier):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageGetProcessIdentifier):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:
  • UIProcess/API/C/mac/WKPagePrivateMac.h:
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

Tools:

The PID of the crashed process is now correctly supplied to the
crash log reporter. The kernel core_pattern needs to be updated
after this change to something like:

echo "|/home/phil/WebKit/Tools/Scripts/process-linux-coredump /tmp/core-pid_%p.dump" > /proc/sys/kernel/core_pattern

  • Scripts/process-linux-coredump: Added.

(main): Minimal python script reading coredump data on stdin and writing it to a file in /tmp/.

  • Scripts/webkitpy/port/efl.py:

(EflPort._get_crash_log): Supply path of the process-linux-coredump script.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._get_crash_log): Ditto.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator.init): New argument for supplying the path of a coredump processor script.
(GDBCrashLogGenerator.generate_crash_log): Update error message, the core_pattern should now be set to pipe coredumps to a script.
(GDBCrashLogGenerator): Deleted.

  • Scripts/webkitpy/port/linux_get_crash_log_unittest.py:

(GDBCrashLogGeneratorTest.test_generate_crash_log): Update test expectations.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::networkProcessDidCrash): Supply PID of crash process.
(WTR::TestController::databaseProcessDidCrash): Ditto.
(WTR::TestController::processDidCrash): Ditto.

8:42 PM Changeset in webkit [203673] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtering is broken in the Overview timeline view
https://bugs.webkit.org/show_bug.cgi?id=160152
<rdar://problem/27517481>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:

(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.filterableDataForColumn):
Non-resource nodes should be filtered based on their display name.

6:14 PM Changeset in webkit [203672] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/LayoutTests

Merge r203665. rdar://problem/27453479

5:48 PM Changeset in webkit [203671] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Add specialization for encoding/decoding WebCore::CertificateInfos in the Network Cache
<rdar://problem/27409315>
https://bugs.webkit.org/show_bug.cgi?id=160144

Reviewed by Chris Dumez.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::encodeCFData):
(WebKit::NetworkCache::decodeCFData):
(WebKit::NetworkCache::encodeSecTrustRef):
(WebKit::NetworkCache::decodeSecTrustRef):
(WebKit::NetworkCache::encodeCertificateChain):
(WebKit::NetworkCache::decodeCertificateChain):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode):

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::version):
Bump the version and lastStableVersion to account for the format change.

1:33 PM Changeset in webkit [203670] by fpizlo@apple.com
  • 33 edits
    2 adds in trunk

B3 should support multiple entrypoints
https://bugs.webkit.org/show_bug.cgi?id=159391

Reviewed by Saam Barati.
Source/JavaScriptCore:


This teaches B3 how to compile procedures with multiple entrypoints in the best way ever.

Multiple entrypoints are useful. We could use them to reduce the cost of compiling OSR
entrypoints. We could use them to implement better try/catch.

Multiple entrypoints are hard to support. All of the code that assumed that the root block
is the entrypoint would have to be changed. Transformations like moveConstants() would have
to do crazy things if the existence of multiple entrypoints prevented it from finding a
single common dominator.

Therefore, we want to add multiple entrypoints without actually teaching the compiler that
there is such a thing. That's sort of what this change does.

This adds a new opcode to both B3 and Air called EntrySwitch. It's a terminal that takes
one or more successors and no value children. The number of successors must match
Procedure::numEntrypoints(), which could be arbitrarily large. The semantics of EntrySwitch
are:

  • Each of the entrypoints sets a hidden Entry variable to that entrypoint's index and jumps to the procedure's root block.


  • An EntrySwitch is a switch statement over this hidden Entry variable.


The way that we actually implement this is that Air has a very late phase - after all
register and stack layout - that clones all code where the Entry variable is live; i.e all
code in the closure over predecessors of all blocks that do EntrySwitch.

Usually, you would use this by creating an EntrySwitch in the root block, but you don't
have to do that. Just remember that the code before EntrySwitch gets cloned for each
entrypoint. We allow cloning of an arbitrarily large amount of code because restricting it,
and so restricing the placement of EntrySwitches, would be unelegant. It would be hard to
preserve this invariant. For example we wouldn't be able to lower any value before an
EntrySwitch to a control flow diamond.

This patch gives us an easy-to-use way to use B3 to compile code with multiple entrypoints.
Inside the compiler, only code that runs very late in Air has to know about this feature.
We get the best of both worlds!

Also, I finally got rid of the requirement that you explicitly cast BasicBlock* to
FrequentedBlock. I can no longer remember why I thought that was a good idea. Removing it
doesn't cause any problems and it makes code easier to write.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3BasicBlockUtils.h:

(JSC::B3::updatePredecessorsAfter):
(JSC::B3::clearPredecessors):
(JSC::B3::recomputePredecessors):

  • b3/B3FrequencyClass.h:

(JSC::B3::maxFrequency):

  • b3/B3Generate.h:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3MoveConstants.cpp:
  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::isFastConstant):
(JSC::B3::Procedure::entrypointLabel):
(JSC::B3::Procedure::addDataSection):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::numEntrypoints):
(JSC::B3::Procedure::setNumEntrypoints):
(JSC::B3::Procedure::setLastPhaseName):

  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):
(JSC::B3::Value::typeFor):

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

(JSC::B3::Air::Code::cCallSpecial):
(JSC::B3::Air::Code::isEntrypoint):
(JSC::B3::Air::Code::resetReachability):
(JSC::B3::Air::Code::dump):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::setFrameSize):
(JSC::B3::Air::Code::numEntrypoints):
(JSC::B3::Air::Code::entrypoints):
(JSC::B3::Air::Code::entrypoint):
(JSC::B3::Air::Code::setEntrypoints):
(JSC::B3::Air::Code::entrypointLabel):
(JSC::B3::Air::Code::setEntrypointLabels):
(JSC::B3::Air::Code::calleeSaveRegisters):

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::isTerminal):
(JSC::B3::Air::PatchCustom::hasNonArgEffects):
(JSC::B3::Air::PatchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::CommonCustomBase::hasNonArgEffects):
(JSC::B3::Air::CCallCustom::forEachArg):
(JSC::B3::Air::ColdCCallCustom::forEachArg):
(JSC::B3::Air::ShuffleCustom::forEachArg):
(JSC::B3::Air::EntrySwitchCustom::forEachArg):
(JSC::B3::Air::EntrySwitchCustom::isValidFormStatic):
(JSC::B3::Air::EntrySwitchCustom::isValidForm):
(JSC::B3::Air::EntrySwitchCustom::admitsStack):
(JSC::B3::Air::EntrySwitchCustom::isTerminal):
(JSC::B3::Air::EntrySwitchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::EntrySwitchCustom::generate):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generate):

  • b3/air/AirLowerEntrySwitch.cpp: Added.

(JSC::B3::Air::lowerEntrySwitch):

  • b3/air/AirLowerEntrySwitch.h: Added.
  • b3/air/AirOpcode.opcodes:
  • b3/air/AirOptimizeBlockOrder.cpp:

(JSC::B3::Air::blocksInOptimizedOrder):

  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::isTerminal):
(JSC::B3::Air::Special::hasNonArgEffects):
(JSC::B3::Air::Special::hasNonArgNonControlEffects):

  • b3/air/AirSpecial.h:
  • b3/air/AirValidate.cpp:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

Source/WTF:

  • wtf/GraphNodeWorklist.h: Expose some handy functionality.

(WTF::GraphNodeWorklist::pop):
(WTF::GraphNodeWorklist::saw):
(WTF::GraphNodeWorklist::seen):

  • wtf/VectorTraits.h: Fix a bug! Otherwise filling a vector of byte-sized enum classes doesn't work.

Websites/webkit.org:


Update some statements about ControlValue (which doesn't exist anymore) and add a blurb
about EntrySwitch.

  • docs/b3/index.html:
  • docs/b3/intermediate-representation.html:
12:53 PM Changeset in webkit [203669] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Video Controls: Volume cannot be adjusted using VO.
https://bugs.webkit.org/show_bug.cgi?id=160107

Reviewed by Dean Jackson.

Source/WebCore:

The volume slider in video tag had 0.01 step which caused the screen reader adjusting it slowly.
Changed the step to 0.05 and added the aria-valuetext attribute to the slider, so that the value
is spoken in percentage.

Test: accessibility/mac/video-volume-slider-accessibility.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.updateVolume):

LayoutTests:

  • accessibility/mac/video-volume-slider-accessibility-expected.txt: Added.
  • accessibility/mac/video-volume-slider-accessibility.html: Added.
11:59 AM Changeset in webkit [203668] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix broken test. I don't know why I goofed this up without seeing it before landing.

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::run):

10:47 AM Changeset in webkit [203667] by ddkilzer@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r203106): Crash in WebCore::MathMLElement::parseMathMLLength()
<https://webkit.org/b/160111>
<rdar://problem/27506489>

Reviewed by Chris Dumez.

Source/WebCore:

Test: mathml/mpadded-crash.html

  • mathml/MathMLElement.cpp:

(WebCore::skipLeadingAndTrailingWhitespace): Change to take
StringView parameter instead of String to avoid creating a
temporary String that's released on return.

LayoutTests:

  • mathml/mpadded-crash-expected.txt: Added.
  • mathml/mpadded-crash.html: Added.
10:36 AM Changeset in webkit [203666] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

[B3] Fusing immediates into test instructions should work again
https://bugs.webkit.org/show_bug.cgi?id=160073

Reviewed by Sam Weinig.

When we introduced BitImm, we forgot to change the Branch(BitAnd(value, constant))
fusion. This emits test instructions, so it should use BitImm for the constant. But it
was still using Imm! This meant that isValidForm() always returned false.

This fixes the code path to use BitImm, and turns off our use of BitImm64 on x86 since
it provides no benefit on x86 and has some risk (the code appears to play fast and loose
with the scratch register).

This is not an obvious progression on anything, so I added comprehensive tests to
testb3, which check that we selected the optimal instruction in a variety of situations.
We should add more tests like this!

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

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

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::castToType):
(JSC::B3::Air::Arg::asNumber):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::compileAndRun):
(JSC::B3::lowerToAirForTesting):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testBranchBitAndImmFusion):
(JSC::B3::zero):
(JSC::B3::run):

10:25 AM Changeset in webkit [203665] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening after r203626.
https://bugs.webkit.org/show_bug.cgi?id=160102
<rdar://problem/27453479>

Unreviewed.

  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:
  • platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt:
8:53 AM Changeset in webkit [203664] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, update the exponentiation expression error message
https://bugs.webkit.org/show_bug.cgi?id=159969

Follow up patch for r203499.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseBinaryExpression):

  • tests/stress/pow-expects-update-expression-on-lhs.js:

(throw.new.Error):

6:08 AM Changeset in webkit [203663] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Coordinated Graphics] ASSERTION FAILED: !m_flushingLayers in fast/repaint/animation-after-layer-scroll.html
https://bugs.webkit.org/show_bug.cgi?id=160142

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-07-24
Reviewed by Michael Catanzaro.

This only happens in layout tests, because it happens when RenderLayerCompositor::layerTreeAsText() is
called. The thing is that CoordinatedGraphicsLayer::flushCompositingState() calls notifyFlushRequired() that
checks if the coordinator is flusing layers and if not it calls RenderLayerCompositor::notifyFlushRequired() and
returns early. This normally works because the coodinator is the one starting the layer flush, so that when
RenderLayerCompositor::flushPendingLayerChanges() is called the coordinator is always flusing layers. But
RenderLayerCompositor::layerTreeAsText() calls RenderLayerCompositor::flushPendingLayerChanges() directly, so at
that moment the coordinator is not flusing layers, what causes that
CoordinatedGraphicsLayer::flushCompositingState() ends up calling RenderLayerCompositor::notifyFlushRequired()
that schedules a new flush while flusing layers causing the
assertion. CoordinatedGraphicsLayer::flushCompositingState() is always called from
CompositingCoordinator::flushPendingLayerChanges() or RenderLayerCompositor::flushPendingLayerChanges() so we
never need to call RenderLayerCompositor::notifyFlushRequired() from there.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::notifyFlushRequired): This is void now since the return value is not checked anywhere.
(WebCore::CoordinatedGraphicsLayer::flushCompositingState): Remove the call to notifyFlushRequired().

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
6:04 AM Changeset in webkit [203662] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

[GTK] Layout test security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html timing out
https://bugs.webkit.org/show_bug.cgi?id=160128

Unreviewed, skip the tests.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
4:10 AM Changeset in webkit [203661] by Darin Adler
  • 3 edits
    2 deletes in trunk/Source

Adding a new WebCore JavaScript built-in source file does not trigger rebuild of WebCoreJSBuiltins*
https://bugs.webkit.org/show_bug.cgi?id=160115

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • make-generated-sources.sh: Removed. Was unused.

Source/WebCore:

  • DerivedSources.make: Added a missing dependency so the rule that builds WebCore_BUILTINS_WRAPPERS

kicks in when the list of WebCore_BUILTINS_SOURCES is modified. Also added another missing dependency
so that changes to the JavaScript built-ins Python scripts will also trigger WebCore_BUILTINS_WRAPPERS.

  • make-generated-sources.sh: Removed. Was unused.

Jul 23, 2016:

8:11 PM Changeset in webkit [203660] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

Stop isEmpty() from leaking out of SVG.
https://bugs.webkit.org/show_bug.cgi?id=160121

Reviewed by Simon Fraser.

It's unclear what isEmpty() actually means and it doesn't bring any value to Render* classes.

No change in functionality.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):

  • rendering/RenderElement.h:
  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::isEmpty): Deleted.

  • rendering/RenderListItem.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject::isEmpty): Deleted.

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::removeChild):
(WebCore::RenderRubyRun::isEmpty): Deleted.

  • rendering/RenderRubyRun.h:
  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paint):

  • rendering/svg/RenderSVGShape.h:
7:16 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:15 PM Changeset in webkit [203659] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test expectations fixups

  • platform/gtk/TestExpectations:
7:12 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:11 PM Changeset in webkit [203658] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Even more unreviewed flaky GTK test gardening

6:39 PM Changeset in webkit [203657] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

table*BorderAdjoiningCell and borderAdjoiningCell* should take reference instead of RenderTableCell*.
https://bugs.webkit.org/show_bug.cgi?id=160123

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):

  • rendering/RenderTable.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeCollapsedStartBorder):
(WebCore::RenderTableCell::computeCollapsedEndBorder):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::borderAdjoiningCellBefore):
(WebCore::RenderTableCell::borderAdjoiningCellAfter):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::borderAdjoiningCellStartBorder):
(WebCore::RenderTableCol::borderAdjoiningCellEndBorder):
(WebCore::RenderTableCol::borderAdjoiningCellBefore):
(WebCore::RenderTableCol::borderAdjoiningCellAfter):

  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::borderAdjoiningStartCell):
(WebCore::RenderTableRow::borderAdjoiningEndCell):

  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):

  • rendering/RenderTableSection.h:
6:38 PM Changeset in webkit [203656] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Remove unused enum and stale comment from RenderObject.
https://bugs.webkit.org/show_bug.cgi?id=160122

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderBox.h:
4:13 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
4:10 PM Changeset in webkit [203655] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed flaky test gardening for GTK

Mostly more fallout from threaded compositor

3:02 PM Changeset in webkit [203654] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

More unreviewed GTK gardening

Update expectations for tests timing out

  • platform/gtk/TestExpectations:
2:47 PM Changeset in webkit [203653] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

More unreviewed GTK gardening

Mark more flaky crashes after enabling threaded compositor

  • platform/gtk/TestExpectations:
2:32 PM Changeset in webkit [203652] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

More unreviewed GTK gardening, mark even more new passes after enabling threaded compositor

  • platform/gtk/TestExpectations:
2:09 PM Changeset in webkit [203651] by Chris Dumez
  • 2 edits in trunk/Source/WebKit/win

Unreviewed, fix Windows build after r203623.

  • DOMCoreClasses.cpp:

(DOMDocument::getComputedStyle):

11:21 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
11:14 AM Changeset in webkit [203650] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, mark many emoji gender tests passing

  • platform/gtk/TestExpectations:
11:05 AM Changeset in webkit [203649] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening

These tests are flaky now on GTK, passing about half the time.

10:51 AM Changeset in webkit [203648] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening new passes after enabling threaded compositor

  • platform/gtk/TestExpectations:
9:41 AM Changeset in webkit [203647] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed test expectation gardening

Skip layout test editing/deleting/delete-emoji.html

  • platform/gtk/TestExpectations:
9:31 AM Changeset in webkit [203646] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, move some GTK expectations to more appropriate locations

  • platform/gtk/TestExpectations:
9:28 AM Changeset in webkit [203645] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, add GTK expectations for threaded compositor regressions

  • platform/gtk/TestExpectations:
8:25 AM Changeset in webkit [203644] by commit-queue@webkit.org
  • 5 edits in trunk

[Coordinated Graphics] Lots of flaky tests
https://bugs.webkit.org/show_bug.cgi?id=160118

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-07-23
Reviewed by Michael Catanzaro.

Source/WebCore:

Since the GTK+ ported to threaded compositor (coordinated graphics) there are a lot of flaky tests in the
bots. In manu of the cases the diff shows a different size in the FrameView layer.

This happens for tests run in the same WTR after fast/fixed-layout/fixed-layout.html. This is what happens:

1.- Test fast/fixed-layout/fixed-layout.html runs and sets fixed layout to true and fixed layout size to 400x400
2.- When it finishes TestController::resetStateToConsistentValues() is called.
3.- Blank URL is loaded after state has been updated
4.- Then Reset message is handled in the web process and Internals::resetToConsistentState() resets the fixed

layout state and size.

5.- onresize happens and the handler set in fast/fixed-layout/fixed-layout.html is invoked setting the fixed

layout to true and size to 400x400 again.

6.- about_blank is then loaded with the fixed layout enabled, as well as other tests after this one.

In addition to this, coordinated graphics uses a fixedVisibleContentRect in ScrollView that is never reset.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea): Only use m_fixedVisibleContentRect when
fixed layout is enabled.
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize): Ditto.
(WebCore::ScrollView::visibleContentRectInternal): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Reset also the m_fixedVisibleContentRect.

LayoutTests:

  • fast/fixed-layout/fixed-layout.html: Remove the onresize handler when the test finishes to ensure it can't be

called later affecting other tests.

8:23 AM Changeset in webkit [203643] by commit-queue@webkit.org
  • 4 edits in trunk

[Coordinated Graphics] Test imported/blink/svg/custom/svg-image-layers-crash.html crashes
https://bugs.webkit.org/show_bug.cgi?id=160078

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-07-23
Reviewed by Michael Catanzaro.

Source/WebCore:

This is a merge of Blink r155373.
https://chromiumcodereview.appspot.com/20789004

Disable accelerated compositing for SVGImage content layers. SVGImageChromeClient does not support it.

Fixes imported/blink/svg/custom/svg-image-layers-crash.html.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

LayoutTests:

  • platform/efl/TestExpectations: Remove imported/blink/svg/custom/svg-image-layers-crash.html.
2:58 AM Changeset in webkit [203642] by commit-queue@webkit.org
  • 28 edits
    7 adds
    3 deletes in trunk

Unreviewed, rolling out r203641.
https://bugs.webkit.org/show_bug.cgi?id=160116

It broke make-based builds (Requested by youenn on #webkit).

Reverted changeset:

"[Fetch API] Request should be created with any HeadersInit
data"
https://bugs.webkit.org/show_bug.cgi?id=159672
http://trac.webkit.org/changeset/203641

1:55 AM Changeset in webkit [203641] by commit-queue@webkit.org
  • 27 edits
    3 copies
    1 delete in trunk

[Fetch API] Request should be created with any HeadersInit data
https://bugs.webkit.org/show_bug.cgi?id=159672

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-23
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Test was previously

failing due to lack of support for HeadersInit data in Request constructor.

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
  • web-platform-tests/fetch/api/request/request-headers-expected.txt:
  • web-platform-tests/fetch/api/request/request-headers.html: Adding new test.

Source/JavaScriptCore:

  • Scripts/builtins/builtins_generator.py:

(WK_lcfirst): Synchronized with CodeGenerator.pm version.

Source/WebCore:

Made Request use JSBuiltinConstructor.
This allows initializing newly created Request with a JS built-in function, initializeFetchRequest.
initializeFetchRequest can call @fillFetchHeaders internal built-in to handle any HeadersInit data.
Future effort should be made to migrate more initialization code in initializeFetchRequest.

Made window and worker fetch function as a JS built-in.
This becomes more handy as these new functions can construct the Request object.
They can then call a single private function that takes a Request object as input.
Updated DOMWindowFetch and WorkerGlobalScopeFetch code accordingly.

To enable this, the binding generator is updated to support runtime-enabled JS built-in functions and
private functions atttached to global objects.

Covered by existing and modified tests.
Binding generator test covered by updated binding tests.

  • CMakeLists.txt: Adding DOMWindowFetch.js, FetchRequest.js and WorkerGlobalScopeFetch.js built-in files.
  • DerivedSources.make: Ditto.
  • Modules/fetch/DOMWindowFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::DOMWindowFetch::fetch):

  • Modules/fetch/DOMWindowFetch.h: Ditto.
  • Modules/fetch/DOMWindowFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/DOMWindowFetch.js: Added.

(fetch):

  • Modules/fetch/FetchHeaders.h:

(WebCore::FetchHeaders::setGuard): Used by FetchRequest when initializing headers.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::buildHeaders): Removed as implemented in JS.
(WebCore::FetchRequest::initializeOptions): Added to handle most of the dictionary initialization.
(WebCore::FetchRequest::initializeWith): Method called from built-in constructor function.
(WebCore::FetchRequest::setBody): Corresponding to @setBody private method.
(WebCore::buildBody): Deleted.

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchRequest.js: Added.

(initializeFetchRequest): Implements fetch Request(input, init) constructor.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Removed the construction of FetchRequest in fetch method since it is done by JS built-in code.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WorkerGlobalScopeFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::WorkerGlobalScopeFetch::fetch):

  • Modules/fetch/WorkerGlobalScopeFetch.h: Ditto.
  • Modules/fetch/WorkerGlobalScopeFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/WorkerGlobalScopeFetch.js: Added.

(fetch):

  • bindings/js/WebCoreBuiltinNames.h: Adding fetchRequest, setBody and Request private identifiers.
  • bindings/scripts/CodeGenerator.pm:

(WK_lcfirst): Replacing dOM by dom.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Adding support for runtime-enabled built-in methods and private methods.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):

  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm:

(-[DOMTestGlobalObject testJSBuiltinFunction]):

  • bindings/scripts/test/TestGlobalObject.idl: Adding tests for runtime-enabled global built-in methods and private methods.
1:39 AM Changeset in webkit [203640] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Reset font-style on the <math> element
https://bugs.webkit.org/show_bug.cgi?id=160074

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-23
Reviewed by Darin Adler.

Source/WebCore:

Mathematical formulas with italic font-style render poorly (slanted operators, mathvariant
italic etc). We align on Gecko and make the user agent stylesheet reset the font-style to
'normal' by default. This addresses the concrete use case of formula inside theorem or
proposition statements, which are often written in italic.

Test: mathml/presentation/math-font-style.html

  • css/mathml.css:

(math): Reset the font-style to normal.

LayoutTests:

  • mathml/presentation/math-font-style-expected.html: Added.
  • mathml/presentation/math-font-style.html: Added.
1:19 AM Changeset in webkit [203639] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Source/WebCore:
[MathML] PaintInfo state is not properly restored after applyTransform.
https://bugs.webkit.org/show_bug.cgi?id=160077

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-23
Reviewed by Simon Fraser.

PaintInfo::applyTransform modifies PaintInfo::rect and the original state is not properly
restored by GraphicsContextStateSaver. To avoid some weird rendering bugs in MathOperator
and RenderMathMLMenclose, we follow what is done in SVG renderers and make a copy of the
original PaintInfo before applying the transform.

Test: mathml/presentation/bug160077.html

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::paint):

LayoutTests:
[MathML] PaintInfo state not properly restored after applyTransform.
https://bugs.webkit.org/show_bug.cgi?id=160077

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-23
Reviewed by Simon Fraser.

  • mathml/presentation/bug160077-expected-mismatch.html: Added.
  • mathml/presentation/bug160077.html: Added.
1:07 AM Changeset in webkit [203638] by commit-queue@webkit.org
  • 9 edits in trunk

WPT stash server should be kept running when launching wpt server
https://bugs.webkit.org/show_bug.cgi?id=160052

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-23
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage-expected.txt:

Tools:

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:

(main): waiting to read stdin while stash server is started.

12:46 AM Changeset in webkit [203637] by commit-queue@webkit.org
  • 8 edits in trunk

[Fetch API] Fetch response stream should enqueue Uint8Array
https://bugs.webkit.org/show_bug.cgi?id=160083

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-23
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/resources/utils.js:

Source/WebCore:

Covered by updated tests.

Before enqueuing, ReadableStreamController::enqueue will convert ArrayBuffer as Uint8Array.
It also returns a boolean whether the operation is successful or not.

If returned value is false, calling code will stop loading or if everything is loaded it will refrain from closing the stream.
The enqueuing should be succesful except in OutOfMemory cases. This case is not yet handled in test cases.

Updated the code to remove templated enqueuing as Fetch has no use of it.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consumeAsStream): Do not close the stream if enqueuing failed.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::blobChunk): Stop blob loading if enqueuing failed.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveData): Stop resource loading if enqueuing failed.
(WebCore::FetchResponse::consumeBodyAsStream): Ditto.

  • Modules/fetch/FetchResponseSource.h:
  • bindings/js/ReadableStreamController.h:

(WebCore::ReadableStreamController::enqueue):
(WebCore::ReadableStreamController::enqueue<RefPtr<JSC::ArrayBuffer>>): Deleted.

12:17 AM Changeset in webkit [203636] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r202876): Web Inspector: Switching away from Console tab with a lot of messages is slow
https://bugs.webkit.org/show_bug.cgi?id=160112

Reviewed by Joseph Pecoraro.

Showing NavigationSidebar before removing previous TabContentView can be very slow when
TabContentView is ConsoleTabContentView with a lot of messages. The order of operations
(show sidebar, change content view, show sidebar) caused more forced layouts. This patch
reduces the number of forced layouts by changes the order to: show content view, show sidebar,
show sidebar.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.prototype._tabBarItemSelected):

Jul 22, 2016:

11:15 PM Changeset in webkit [203635] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebKit2

Web Automation: All key events should be processed before sending response
https://bugs.webkit.org/show_bug.cgi?id=160114
<rdar://problem/27505943>

Reviewed by Darin Adler.

When evaluating performKeyboardInteractions, we were sending all
NSEvents synchronously, but because WebPageProxy was doing its
own queueing and asynchronous processing of those key events, we
would receive and respond to the next Automation command before
having completed all of the key events.

This change makes performKeyboardInteractions asynchronous. It
will be notified only after WebPageProxy has exhausted its queue
of key events.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::keyboardEventsFlushedForPage):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::performKeyboardInteractions):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveEvent):

11:15 PM Changeset in webkit [203634] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebKit2

Web Automation: WebAutomationSession::deleteAllCookies never calls callback, hangs automation session
https://bugs.webkit.org/show_bug.cgi?id=160113
<rdar://problem/27308124>

Reviewed by Darin Adler.

Delete all cookies appears to be a straightforward action
where we don't need to wait for a callback. So drop the
async altogether and implicitly complete the action.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::deleteAllCookies):

  • UIProcess/Automation/WebAutomationSession.h:
11:11 PM Changeset in webkit [203633] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

REGRESSION(r203035): Marking points as an outlier no longer updates charts
https://bugs.webkit.org/show_bug.cgi?id=160106

Reviewed by Darin Adler.

The bug was caused by MeasurementSet's fetchBetween clearing previously registered callbacks when noCache
option is specified.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype.setSourceList): Clear this._fetchedTimeSeries when changing chart options.
e.g. need to start including or excluding outliers.
(TimeSeriesChart.prototype.fetchMeasurementSets): Don't skip the fetching when noCache is true.

  • public/v3/models/measurement-set.js:

(MeasurementSet): Added this._callbackMap as an instance variable to keep track of all callbacks on every
cluster since we may need to call each callback multiple times per cluster when noCache option is used.
(MeasurementSet.prototype.fetchBetween): Moved the code to add _primaryClusterPromise to _allFetches here
so that now this function and _ensureClusterPromise are only functions that touch _allFetches.
(MeasurementSet.prototype._ensureClusterPromise): Extracted out of fetchBetween. Queue up all callbacks
for each cluster when creating a new promise.
(MeasurementSet.prototype._fetchPrimaryCluster): Removed the code to add _primaryClusterPromise now that
it's done in fetchBetween.

  • public/v3/remote.js:

(RemoteAPI.postJSONWithStatus): Removed superfluous call to console.log.

  • unit-tests/measurement-set-tests.js: Updated the test case for noCache. The callback registered before

fetchBetween is called with noCache=true is now invoked so callCount must be 3 instead of 2.

11:01 PM Changeset in webkit [203632] by commit-queue@webkit.org
  • 8 edits
    1 delete in trunk/Source/WebCore

Use a private property to implement FetchResponse.body getter
https://bugs.webkit.org/show_bug.cgi?id=159808

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-22
Reviewed by Sam Weinig.

Covered by existing test sets.

Previously, body was handled as a CachedAttribute.
Using a private property will allow direct use of this property from JS built-ins which will allow easier
handling of ReadableStream cloning in Response.clone.
Also, this allows removing some binding custom code.

Updated redirect and error static methods to take NewObject keyword, as this removes a search into cached wrappers.
Ditto for createReadableStreamSource.

  • CMakeLists.txt: Removing JSFetchResponseCustom.cpp.
  • Modules/fetch/FetchResponse.idl: Adding createReadableStreamSource and isDisturbed private functions.

Making body getter a JSBuiltin.

  • Modules/fetch/FetchResponse.js:

(body): Adding getter which will call createReadableStreamSource if needed.

  • WebCore.xcodeproj/project.pbxproj: Removing JSFetchResponseCustom.cpp.
  • bindings/js/JSFetchResponseCustom.cpp: Removed.
  • bindings/js/ReadableStreamController.cpp:

(WebCore::createReadableStream): Deleted.
(WebCore::getReadableStreamReader): Deleted.

  • bindings/js/ReadableStreamController.h: Removing unneeded ReadableStream helper routine now that they can be

handled within JS built-in code.

  • bindings/js/WebCoreBuiltinNames.h: Adding @createReadableStreamSource, @isDisturbed and @Response identifiers.
6:56 PM Changeset in webkit [203631] by Alan Bujtas
  • 7 edits in trunk/Source

Handle cases when IOSurface initialization fails.
https://bugs.webkit.org/show_bug.cgi?id=160006
<rdar://problem/27495102>

Reviewed by Tim Horton and Simon Fraser.

This is an additional fix to r203514 to check if IOSurface initialization was successful.

Unable to test.

Source/WebCore:

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/cocoa/IOSurface.h: Merge 2 c'tors.
  • platform/graphics/cocoa/IOSurface.mm: Remove redundant IOSurface::create() code.

(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromImage):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::convertToFormat):

Source/WebKit2:

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

6:19 PM Changeset in webkit [203630] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Clients should be able to decide if they want secure text entry in a form field
https://bugs.webkit.org/show_bug.cgi?id=160109
rdar://problem/27504958

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-07-22
Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession forceSecureTextEntry]): Getter.
(-[WKFormInputSession setForceSecureTextEntry:]): Setter.
(-[WKContentView textInputTraits]): If the form input session has specified that secure text
entry is desired, we should use secure text entry.

5:47 PM Changeset in webkit [203629] by Wenson Hsieh
  • 4 edits in trunk

Media controls should be displayed for media in media documents
https://bugs.webkit.org/show_bug.cgi?id=160104
<rdar://problem/27438936>

Reviewed by Myles C. Maxfield.

Source/WebCore:

Make videos that would otherwise not have been large enough or have the right
aspect ratio cause media controls to appear. This is because media elements in
a media document are implied to be main content.

Added a new API test.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

Tools:

Verifies that even a small video with audio in a media document gets media controls.

  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

4:48 PM Changeset in webkit [203628] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.43

New tag.

4:48 PM Changeset in webkit [203627] by bshafiei@apple.com
  • 11 edits in branches/safari-602-branch

Merge r203626. rdar://problem/27453479

4:45 PM Changeset in webkit [203626] by mmaxfield@apple.com
  • 11 edits in trunk

All dancers with bunny ears are female
https://bugs.webkit.org/show_bug.cgi?id=160102
<rdar://problem/27453479>

Reviewed by Simon Fraser.

Source/WebCore:

In r203330 I added support for new emoji group candidates. I accidentally
missed one of the new emoji code points.

Tests: editing/deleting/delete-emoji.html:

fast/text/emoji-gender-2-9.html:
fast/text/emoji-gender-9.html:
fast/text/emoji-gender-fe0f-9.html:

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

LayoutTests:

  • editing/deleting/delete-emoji.html:
  • platform/mac/editing/deleting/delete-emoji-expected.txt:
  • fast/text/emoji-gender-2-9-expected.html:
  • fast/text/emoji-gender-2-9.html:
  • fast/text/emoji-gender-9-expected.html:
  • fast/text/emoji-gender-9.html:
  • fast/text/emoji-gender-fe0f-9-expected.html:
  • fast/text/emoji-gender-fe0f-9.html:
4:17 PM Changeset in webkit [203625] by msaboff@apple.com
  • 2 edits in trunk/Tools

REGRESSION(203616): no FTL testing was inadvertently removed
https://bugs.webkit.org/show_bug.cgi?id=160100

Rubber-stamped by Filip Pizlo.

Added runNoFTL back into the set of tests we run on FTL enabled platforms.
Renamed runLayoutTestNoFTL to runLayoutTestDefault. Restructured the test
logic for the runLayout and runNoisy variants to match the run test logic,
that is we always invoke runXXXDefault and invoke runXXXNoFTL for FTL
enabled platforms.

  • Scripts/run-jsc-stress-tests:
4:13 PM Changeset in webkit [203624] by Chris Dumez
  • 11 edits in trunk

Parameter to HTMLCollection.item() / namedItem() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160099

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to HTMLCollection.item() / namedItem() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • bindings/js/JSHTMLFormControlsCollectionCustom.cpp:

(WebCore::JSHTMLFormControlsCollection::namedItem):

  • html/HTMLCollection.idl:
  • html/HTMLFormControlsCollection.idl:
  • html/HTMLOptionsCollection.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
3:56 PM Changeset in webkit [203623] by Chris Dumez
  • 12 edits
    2 adds in trunk

First parameter to Window.getComputedStyle() should be mandatory and non-nullable
https://bugs.webkit.org/show_bug.cgi?id=160097

Reviewed by Ryosuke Niwa.

Source/WebCore:

First parameter to Window.getComputedStyle() should be mandatory and
non-nullable:

Firefox and Chrome agree with the specification.

Test: fast/dom/Window/getComputedStyle-missing-parameter.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::ComputedStyleExtractor):
(WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSComputedStyleDeclaration::copyProperties):
(WebCore::CSSComputedStyleDeclaration::length):
(WebCore::CSSComputedStyleDeclaration::item):
(WebCore::CSSComputedStyleDeclaration::getPropertyValue):

  • css/CSSComputedStyleDeclaration.h:
  • dom/Document.idl:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getComputedStyleForNode):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::getComputedStyle):

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

(WebCore::Internals::computedStyleIncludingVisitedInfo):

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

LayoutTests:

Add test coverage.

  • fast/dom/Window/getComputedStyle-missing-parameter-expected.txt: Added.
  • fast/dom/Window/getComputedStyle-missing-parameter.html: Added.
3:32 PM Changeset in webkit [203622] by beidson@apple.com
  • 4 edits
    2 adds in trunk

Removing IndexedDatabases that have stored blobs doesn't remove the blob files.
https://bugs.webkit.org/show_bug.cgi?id=160089

Reviewed by Darin Adler.

Source/WebCore:

Tested by API test IndexedDB.StoreBlobThenDelete.

Blob filenames exist in the IDB directory with the name "[0-9]+.blob".

That is, one or more digits, followed by ".blob".

So when we delete an IndexedDB.sqlite3 and related files, we should delete those blob files as well.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::removeAllDatabasesForOriginPath):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobToBeDeleted.html: Added.
3:14 PM Changeset in webkit [203621] by fpizlo@apple.com
  • 10 edits
    4 adds in trunk/Source/JavaScriptCore

Teach MarkedSpace how to allocate auxiliary storage
https://bugs.webkit.org/show_bug.cgi?id=160053

Reviewed by Sam Weinig.

Previously, we had two kinds of subspaces in MarkedSpace: destructor and non-destructor. This
was described using "bool needsDestruction" that would get passed around. We'd iterate over
these spaces using duplicated code - one loop for destructors and one for non-destructors, or
a single loop that does one thing for destructors and one for non-destructors.

But now we want a third subspace: non-destructor non-JSCell, aka Auxiliary.

So, this changes all of the reflection and iteration over subspaces to use functors, so that
the looping is written once and reused. Most places don't even have to know that there is a
third subspace; they just know that they must do things for each subspace, for each
allocator, or for each block - and the functor magic handles it for you.

To make this somewhat nice, this change also fixes how we describe subspaces. Instead of a
bool, we now have AllocatorAttributes, which is a struct. If we ever add more subspaces, we
can add fields to AllocatorAttributes to describe how those subspaces differ. For now it just
contains two properties: a DestructionMode and a HeapCell::Kind. The DesctructionMode
replaces bool needsDestruction. I deliberately used a non-class enum to avoid tautologies.
DestructionMode has two members: NeedsDestruction and DoesNotNeedDestruction. I almost went
with DestructionMode::Needed and DestructionMode::NotNeeded, but I felt like that involves
more typing and doesn't actually avoid any kind of namespace issues.

This is intended to have no behavior change other than the addition of a totally unused
space, which should always be empty. So hopefully it doesn't cost anything.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/AllocatorAttributes.cpp: Added.

(JSC::AllocatorAttributes::dump):

  • heap/AllocatorAttributes.h: Added.

(JSC::AllocatorAttributes::AllocatorAttributes):

  • heap/DestructionMode.cpp: Added.

(WTF::printInternal):

  • heap/DestructionMode.h: Added.
  • heap/Heap.h:
  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateBlock):
(JSC::MarkedAllocator::addBlock):

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::cellSize):
(JSC::MarkedAllocator::attributes):
(JSC::MarkedAllocator::needsDestruction):
(JSC::MarkedAllocator::destruction):
(JSC::MarkedAllocator::cellKind):
(JSC::MarkedAllocator::heap):
(JSC::MarkedAllocator::takeLastActiveBlock):
(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::init):
(JSC::MarkedAllocator::allocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::create):
(JSC::MarkedBlock::destroy):
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::callDestructor):
(JSC::MarkedBlock::sweep):
(JSC::MarkedBlock::stopAllocating):
(JSC::MarkedBlock::didRetireBlock):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::cellSize):
(JSC::MarkedBlock::attributes):
(JSC::MarkedBlock::needsDestruction):
(JSC::MarkedBlock::destruction):
(JSC::MarkedBlock::cellKind):
(JSC::MarkedBlock::size):
(JSC::MarkedBlock::forEachCell):
(JSC::MarkedBlock::forEachLiveCell):
(JSC::MarkedBlock::forEachDeadCell):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::~MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::stopAllocating):
(JSC::MarkedSpace::resumeAllocating):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::freeBlock):
(JSC::MarkedSpace::shrink):
(JSC::MarkedSpace::clearNewlyAllocated):
(JSC::clearNewlyAllocatedInBlock): Deleted.

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::subspaceForObjectsWithDestructor):
(JSC::MarkedSpace::subspaceForObjectsWithoutDestructor):
(JSC::MarkedSpace::subspaceForAuxiliaryData):
(JSC::MarkedSpace::allocatorFor):
(JSC::MarkedSpace::destructorAllocatorFor):
(JSC::MarkedSpace::auxiliaryAllocatorFor):
(JSC::MarkedSpace::allocateWithoutDestructor):
(JSC::MarkedSpace::allocateWithDestructor):
(JSC::MarkedSpace::allocateAuxiliary):
(JSC::MarkedSpace::forEachBlock):
(JSC::MarkedSpace::didAddBlock):
(JSC::MarkedSpace::capacity):
(JSC::MarkedSpace::forEachSubspace):

3:14 PM Changeset in webkit [203620] by Konstantin Tokarev
  • 2 edits in trunk/Tools

[GTK] Improved exclusion patterns in make-dist.py manifest.
https://bugs.webkit.org/show_bug.cgi?id=160094

Reviewed by Michael Catanzaro.

  • gtk/manifest.txt.in:

Exclude Platform*.cmake files for more ports.
Removed obsolete .gyp and .pro.user patterns.
Exclude 'Configurations' and 'spi' directories.
Exclude CMakeLists.txt.user (Qt Creator IDE).

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

Marking webaudio/audionode-connect-order.html as a flaky crash on mac-wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=105870

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:06 PM Changeset in webkit [203618] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Get rid of an unused API typedef
https://bugs.webkit.org/show_bug.cgi?id=160103

Reviewed by Sam Weinig.

  • Shared/API/c/WKSharedAPICast.h:
2:58 PM Changeset in webkit [203617] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking userscripts/window-onerror-for-isolated-world-3.html as a flaky failure on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=160101

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:53 PM Changeset in webkit [203616] by msaboff@apple.com
  • 2 edits in trunk/Tools

Don't run FTL related JSC stress tests on non-FTL platforms
https://bugs.webkit.org/show_bug.cgi?id=160033

Reviewed by Mark Lam.

Added check for running tests on platforms that don't enable FTL to not run FTL tests.
Refactored several of the runXXX test methods to always runXXXDefault and made those
runXXXDefault to pass FTL_OPTIONS. For platforms that don't enable the FTL, FTL_OPTIONS
doesn't cause a problem.

  • Scripts/run-jsc-stress-tests:
1:38 PM Changeset in webkit [203615] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r203537): It made many tests crash on ARMv7 Linux platforms
https://bugs.webkit.org/show_bug.cgi?id=160082

Reviewed by Keith Miller.

We were improperly linking the Jump in the link buffer.
It caused us to be linking against the executable address
which always has bit 0 set. We shouldn't be doing that.
This patch fixes this, by using the same idiom that
PolymorphicAccess uses to link a jump to out of line code.

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateOutOfLine):

1:36 PM Changeset in webkit [203614] by Matt Baker
  • 3 edits in trunk/LayoutTests

Web Inspector: Remove unused code from Debounce layout test
https://bugs.webkit.org/show_bug.cgi?id=160049
<rdar://problem/27479713>

Reviewed by Joseph Pecoraro.

  • inspector/unit-tests/debounce-expected.txt:

Updated with new delay times.

  • inspector/unit-tests/debounce.html:

Remove unused code that was copy-pasted from other tests, and reduced
delay times from 100ms to 10ms to speed up test.

1:35 PM Changeset in webkit [203613] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r203603.
https://bugs.webkit.org/show_bug.cgi?id=160096

Caused CLoop tests to fail with assertions (Requested by
perarne on #webkit).

Reverted changeset:

"[Win] jsc.exe sometimes never exits."
https://bugs.webkit.org/show_bug.cgi?id=158073
http://trac.webkit.org/changeset/203603

1:34 PM Changeset in webkit [203612] by Chris Dumez
  • 6 edits in trunk

Fix default parameter values for window.alert() / prompt() / confirm()
https://bugs.webkit.org/show_bug.cgi?id=160085

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix default parameter values for window.alert() / prompt() / confirm() to
match the specification:

They should default to the empty string, not the string "undefined".

Firefox and chrome agree with the specification.

No new tests, updated existing test.

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/Window/alert-undefined-expected.txt:
  • fast/dom/Window/alert-undefined.html:
1:33 PM Changeset in webkit [203611] by dbates@webkit.org
  • 8 edits
    16 adds in trunk

CSP: object-src and plugin-types directives are not respected for plugin replacements
https://bugs.webkit.org/show_bug.cgi?id=159761
<rdar://problem/27365724>

Reviewed by Brent Fulgham.

Source/WebCore:

Apply the Content Security Policy (CSP) object-src and plugin-types directives to content that will
load with a plugin replacement.

Tests: security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement.html

security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::allowedToLoadPluginContent): Added.
(WebCore::HTMLPlugInImageElement::requestObject): Only request loading plugin content if we
are allowed to load such content.

  • html/HTMLPlugInImageElement.h:
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::pluginIsLoadable): Removed code to check CSP as we will check CSP
earlier in HTMLPlugInImageElement::requestObject().
(WebCore::SubframeLoader::requestPlugin): Ditto.
(WebCore::SubframeLoader::isPluginContentAllowedByContentSecurityPolicy): Deleted; moved implementation
to HTMLPlugInImageElement::allowedToLoadPluginContent().
(WebCore::SubframeLoader::requestObject): Deleted.

  • loader/SubframeLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded): Changed signature from a non-const
function to a const function since these functions do not modify |this|.

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

Add layout tests to ensure that we apply the CSP object-src and plugin-types directives to content
that loads with either the QuickTime plugin replacement or YouTube plugin replacement.

  • security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Added.
12:54 PM Changeset in webkit [203610] by Chris Dumez
  • 11 edits in trunk

Parameters to Node.replaceChild() / insertBefore() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160091

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to Node.replaceChild() / insertBefore() should be mandatory:

The compatibility risk should be low since Firefox and Chrome both agree
with the specification and because it does not make much sense to omit
parameters when using this API.

No new tests, rebaselined existing tests.

  • bindings/js/JSNodeCustom.cpp:

(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):

LayoutTests:

Update existing tests due to the behavior change.

  • fast/block/basic/empty-anonymous-block-remove-crash.html:
  • fast/html/details-summary-document-child.html:
  • fast/repaint/focus-ring-with-negative-offset-repaint.html:
  • svg/animations/mpath-remove-from-dependents-on-delete-crash.html:
12:34 PM Changeset in webkit [203609] by Chris Dumez
  • 5 edits in trunk

Parameter to Node.contains() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160084

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to Node.contains() should be mandatory as per the
specification:

The compatibility risk should be low because both Firefox and Chrome
both agree with the specification. Also, it does not make much sense
to call this API without parameter.

No new tests, rebaselined existing tests.

  • dom/Node.idl:
11:58 AM Changeset in webkit [203608] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203606. rdar://problem/27430450

11:58 AM Changeset in webkit [203607] by bshafiei@apple.com
  • 10 edits
    2 adds in branches/safari-602-branch

Merge r203378. rdar://problem/25876032

11:45 AM Changeset in webkit [203606] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] REGRESSION(203378): PDFDocumentImage::updateCachedImageIfNeeded() uses the unscaled size when deciding whether to cache the PDF image
https://bugs.webkit.org/show_bug.cgi?id=159933

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-07-22
Reviewed by Simon Fraser.

We need to use the scaled size when deciding whether to cache the PDF image
or not. This is because ImageBuffer takes the display resolution into account
which gives higher resolution for the image when zooming.

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):

11:39 AM Changeset in webkit [203605] by Chris Dumez
  • 7 edits
    2 adds in trunk

First parameter to getElementById() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160087

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to getElementById() should be mandatory:

Both Firefox and Chrome agree with the specification.

Test: svg/dom/SVGSVGElement-getElementById.html

  • dom/NonElementParentNode.idl:
  • svg/SVGSVGElement.idl:

LayoutTests:

Add layout test coverage for SVGSVGElement.getElementById().

  • svg/dom/SVGSVGElement-getElementById-expected.txt: Added.
  • svg/dom/SVGSVGElement-getElementById.html: Added.
11:34 AM Changeset in webkit [203604] by Chris Dumez
  • 5 edits in trunk

Parameter to Node.lookupPrefix() / lookupNamespaceURI() / isDefaultNamespace() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160086

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to Node.lookupPrefix() / lookupNamespaceURI() / isDefaultNamespace()
should be mandatory:

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • dom/Node.idl:
11:26 AM Changeset in webkit [203603] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win] jsc.exe sometimes never exits.
https://bugs.webkit.org/show_bug.cgi?id=158073

Reviewed by Mark Lam.

Make sure the VM is deleted after the test has finished. This will gracefully stop the sampling profiler thread,
and give the thread the opportunity to release the machine thread lock aquired in SamplingProfiler::takeSample.
If the sampling profiler thread was terminated while holding the machine thread lock, the machine thread will
not be able to grab the lock afterwards.

  • jsc.cpp:

(jscmain):

9:57 AM Changeset in webkit [203602] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Correct a TestExpectation by changing it from Failure to ImageOnlyFailure

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:01 AM Changeset in webkit [203601] by Chris Dumez
  • 12 edits in trunk

Parameter to Node.compareDocumentPosition() should be mandatory and non-nullable
https://bugs.webkit.org/show_bug.cgi?id=160071

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to Node.compareDocumentPosition() should be mandatory and
non-nullable:

Firefox and Chrome agree with the specification so the compatibility
risk should be low. Also, it does not make much sense to call this
operation without parameter.

No new tests, rebaselined existing tests.

  • accessibility/AccessibilityObject.cpp:

(WebCore::rangeClosestToRange):

  • dom/AuthorStyleSheets.cpp:

(WebCore::AuthorStyleSheets::addStyleSheetCandidateNode):

  • dom/Node.cpp:

(WebCore::compareDetachedElementsPosition):
(WebCore::Node::compareDocumentPosition):

  • dom/Node.h:
  • dom/Node.idl:
  • dom/Position.h:

(WebCore::operator<):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
(WebCore::HTMLFormElement::formElementIndex):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::nextRendererForElement):
(WebCore::compareRenderNamedFlowFragments):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):

8:55 AM Changeset in webkit [203600] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix the Windows 64-bit build after r203537
https://bugs.webkit.org/show_bug.cgi?id=160080

Reviewed by Csaba Osztrogonác.

Added new version of setupArgumentsWithExecState method.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

8:52 AM Changeset in webkit [203599] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

[cmake] Removed obsolete plugins/win directory
https://bugs.webkit.org/show_bug.cgi?id=160081

Reviewed by Per Arne Vollan.

It was removed in r178219.

No new tests needed.

  • PlatformWin.cmake:
8:11 AM Changeset in webkit [203598] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

run-safari doesn't work with Safari 10 on 10.11
https://bugs.webkit.org/show_bug.cgi?id=159958
<rdar://problem/27422805>

Reviewed by Alexey Proskuryakov.

Safari’s injected bundle may depend on the newer versions of frameworks installed in a
staging location. Have the engineering builds of the Web Content service look for newer
versions in that location.

  • Configurations/BaseTarget.xcconfig: Shortened a linker flag.
  • Configurations/BaseXPCService.xcconfig: Increased Mach-O header padding in production builds to allow for more dyld environment commands to be added after the fact.
  • Configurations/DebugRelease.xcconfig: Have the new WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG set to YES for macOS engineering builds.
  • Configurations/WebContentService.xcconfig: Include the versioned frameworks whenever WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG is set to YES. Have the value of WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG default to the value of USE_STAGING_INSTALL_PATH, while letting DebugRelease.xcconfig override it.
5:40 AM Changeset in webkit [203597] by pvollan@apple.com
  • 4 edits in trunk

IWebView::mainFrame crashes if called after IWebView::close
https://bugs.webkit.org/show_bug.cgi?id=32868

Reviewed by Brent Fulgham.

Source/WebKit/win:

After deleting the page in WebView::close the mainframe object may be deleted.

Test: Tools/TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp (CloseThenGetMainFrame).

  • WebView.cpp:

(WebView::close): set mainframe pointer member to null.

Tools:

  • TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp:

(TestWebKitAPI::TEST_F): Added test.

3:24 AM Changeset in webkit [203596] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Enable threaded compositor by default
https://bugs.webkit.org/show_bug.cgi?id=160079

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
3:00 AM Changeset in webkit [203595] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Unreviewed EABI buildfix after r203537.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState): Added.

2:50 AM Changeset in webkit [203594] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203548. rdar://problem/27474031

2:50 AM Changeset in webkit [203593] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch

Merge r203511. rdar://problem/27474031

2:38 AM Changeset in webkit [203592] by bshafiei@apple.com
  • 24 edits in branches/safari-602-branch

Merge r203545. rdar://problem/26964090

2:38 AM Changeset in webkit [203591] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Tools

Merge r203540. rdar://problem/26964090

2:38 AM Changeset in webkit [203590] by bshafiei@apple.com
  • 26 edits
    2 deletes in branches/safari-602-branch

Merge r203520. rdar://problem/26964090

2:26 AM Changeset in webkit [203589] by bshafiei@apple.com
  • 1 edit
    1 move
    1 add in branches/safari-602-branch/LayoutTests

Merge r203536. rdar://problem/27430111

2:26 AM Changeset in webkit [203588] by bshafiei@apple.com
  • 3 edits
    2 copies
    1 move
    1 add in branches/safari-602-branch

Merge r203533. rdar://problem/27430111

2:26 AM Changeset in webkit [203587] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203473. rdar://problem/27180657

2:26 AM Changeset in webkit [203586] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203468. rdar://problem/27180657

2:26 AM Changeset in webkit [203585] by bshafiei@apple.com
  • 5 edits
    1 add in branches/safari-602-branch

Merge r203464. rdar://problem/27180657

2:26 AM Changeset in webkit [203584] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203483. rdar://problem/27455589

2:26 AM Changeset in webkit [203583] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203462. rdar://problem/27453189

2:26 AM Changeset in webkit [203582] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203447. rdar://problem/27056844

2:26 AM Changeset in webkit [203581] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203436. rdar://problem/27056844

2:26 AM Changeset in webkit [203580] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203429. rdar://problem/27056844

2:26 AM Changeset in webkit [203579] by bshafiei@apple.com
  • 3 edits
    2 moves
    3 adds in branches/safari-602-branch/Tools

Merge r203426. rdar://problem/27056844

2:26 AM Changeset in webkit [203578] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Merge r203392. rdar://problem/27056844

2:26 AM Changeset in webkit [203577] by bshafiei@apple.com
  • 3 edits
    3 adds in branches/safari-602-branch

Merge r203543. rdar://problem/27429465

2:26 AM Changeset in webkit [203576] by bshafiei@apple.com
  • 4 edits
    1 add in branches/safari-602-branch

Merge r203541. rdar://problem/27450825

2:25 AM Changeset in webkit [203575] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203538. rdar://problem/27462960

2:25 AM Changeset in webkit [203574] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203518. rdar://problem/21400186

2:25 AM Changeset in webkit [203573] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203514. rdar://problem/27208636

2:25 AM Changeset in webkit [203572] by bshafiei@apple.com
  • 9 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203488. rdar://problem/27439330

2:25 AM Changeset in webkit [203571] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r203482. rdar://problem/27442806

2:25 AM Changeset in webkit [203570] by bshafiei@apple.com
  • 2 edits
    2 adds in branches/safari-602-branch/Tools

Merge r203478. rdar://problem/27411085

2:25 AM Changeset in webkit [203569] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203450. rdar://problem/21439264

2:25 AM Changeset in webkit [203568] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203442. rdar://problem/27376446

2:25 AM Changeset in webkit [203567] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r203435. rdar://problem/27438734

2:25 AM Changeset in webkit [203566] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203425. rdar://problem/27488703

2:25 AM Changeset in webkit [203565] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r203424. rdar://problem/27391012

2:25 AM Changeset in webkit [203564] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203415. rdar://problem/27409483

2:25 AM Changeset in webkit [203563] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Source

Merge r203414. rdar://problem/26756701

2:25 AM Changeset in webkit [203562] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r203412. rdar://problem/26898984

2:25 AM Changeset in webkit [203561] by bshafiei@apple.com
  • 3 edits
    6 adds in branches/safari-602-branch

Merge r203409. rdar://problem/27182267

2:25 AM Changeset in webkit [203560] by bshafiei@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r203388. rdar://problem/25740804

2:25 AM Changeset in webkit [203559] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203387. rdar://problem/27018065

2:25 AM Changeset in webkit [203558] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203385. rdar://problem/27192350

2:25 AM Changeset in webkit [203557] by bshafiei@apple.com
  • 15 edits in branches/safari-602-branch

Merge r203380. rdar://problem/27391725

2:25 AM Changeset in webkit [203556] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebKit2

Merge r203371. rdar://problem/26973202

2:24 AM Changeset in webkit [203555] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r203362. rdar://problem/27371624

1:32 AM Changeset in webkit [203554] by commit-queue@webkit.org
  • 12 edits
    1 copy
    2 adds in trunk

run-builtins-generator-tests should be able to test WebCore builtins wrapper with more than one file
https://bugs.webkit.org/show_bug.cgi?id=159921

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-22
Reviewed by Brian Burg.

Source/JavaScriptCore:

Updated built-in generator to generate only wrapper files when passed the --wrappers-only option.
When this option is used, wrapper files are generated but no individual file is generated.
When this option is not used, individual files are generated but not wrapper file is generated.
This allows the builtin generator test runner to generate a single WebCore-Wrappers.h-result generated for all
WebCore test files, like used for real in WebCore.
Previously wrapper code was generated individually for each WebCore test file.

Added new built-in test file to cover the case of concatenating several guards in generated WebCore wrapper files.

  • Scripts/generate-js-builtins.py:

(concatenated_output_filename): Compute a decent name for wrapper files in case of test mode.
(generate_bindings_for_builtins_files): When --wrappers-only is activated, this generates only the wrapper files, not the individual files.

  • Scripts/tests/builtins/WebCore-AnotherGuardedInternalBuiltin-Separate.js: Added.
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result: Added.
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Removed wrapper code.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Removed wrapper code.
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result: Added, contains wrapper code for all WebCore valid test cases.

Source/WebCore:

Covered by existing and added built-ins tests.

Updating built system according ---wrappers-only new meaning.
builtin generator is now called for each individual built-in file plus once for WebCore wrapper files.
WebCore wrapper files allow handling things like conditionally guarded features.
They also remove the need to use built-ins macros outside generated code.

  • CMakeLists.txt:
  • DerivedSources.make:

Tools:

Updated builtin generator test runner to generate WebCore wrapper files based on all WebCore valid separate files.

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Passing a list of builtin files to the script.
(BuiltinsGeneratorTests):
(BuiltinsGeneratorTests.single_builtin_test): Added to handle the case of single builtin generation.
(BuiltinsGeneratorTests.wrappers_builtin_test): Added to handle the case of WebCore wrappers builtin generation.
(BuiltinsGeneratorTests.run_test): Helper routine to run a test in reset mode or normal check mode.
(BuiltinsGeneratorTests.run_tests): Updated to add WebCore wrappers builtin generation test.

Jul 21, 2016:

10:36 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
10:33 PM Changeset in webkit [203553] by fred.wang@free.fr
  • 19 edits
    2 copies in trunk/Source/WebCore

Move parsing of accentunder and accent attributes from renderer to element classes
https://bugs.webkit.org/show_bug.cgi?id=159625

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-21
Reviewed by Brent Fulgham.

We introduce a new MathMLUnderOverElement that is used for elements munder, mover and
munderover in order to create RenderMathMLUnderOver and parse and expose the values of the
accent and accentunder attributes. This is one more step toward moving MathML attribute
parsing to the DOM (bug 156536). We also do minor clean-up for this and previous renderer
classes that no longer do attribute parsing: the MathMLNames namespace is no longer necessary
and constructors can take a more accurate element type.

No new tests, already covered by existing test.

  • CMakeLists.txt: Add MathMLUnderOverElement files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::cachedBooleanAttribute): Add parsing of boolean attributes.

  • mathml/MathMLElement.h: New type and helper functions for boolean attributes.
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::createElementRenderer): Remove handling of
under/over/underover elements.

  • mathml/MathMLScriptsElement.cpp:

(WebCore::MathMLScriptsElement::MathMLScriptsElement): Remove inline keyword to avoid link
errors now that MathMLUnderOverElement overrides that class.

  • mathml/MathMLScriptsElement.h: Allow MathMLUnderOverElement to override this class.
  • mathml/MathMLUnderOverElement.cpp:

(WebCore::MathMLUnderOverElement::MathMLUnderOverElement):
(WebCore::MathMLUnderOverElement::create):
(WebCore::MathMLUnderOverElement::accent): Helper function to access the accent value.
(WebCore::MathMLUnderOverElement::accentUnder): Helper function to access the accentunder value.
(WebCore::MathMLUnderOverElement::parseAttribute): Make accent and accentunder dirty.
(WebCore::MathMLUnderOverElement::createElementRenderer): Create RenderMathMLUnderOver

  • mathml/MathMLUnderOverElement.h:
  • mathml/mathtags.in: Map under/over/underover to MathMLUnderOverElement.
  • rendering/mathml/RenderMathMLFraction.cpp: Remove MathMLNames and make the constructor

take a MathMLFractionElement.
(WebCore::RenderMathMLFraction::RenderMathMLFraction):

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLPadded.cpp: Remove MathMLNames and make the constructor

take a MathMLPaddedElement.
(WebCore::RenderMathMLPadded::RenderMathMLPadded):

  • rendering/mathml/RenderMathMLPadded.h:
  • rendering/mathml/RenderMathMLScripts.cpp: Remove MathMLNames and make the constructor

take a MathMLScriptsElement. Also rename scriptsElement() to element().
(WebCore::RenderMathMLScripts::RenderMathMLScripts):
(WebCore::RenderMathMLScripts::element):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::scriptsElement): Deleted.

  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp: Remove MathMLNames and make the constructor

take a RenderMathMLUnderOver.
(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver):
(WebCore::RenderMathMLUnderOver::element):
(WebCore::RenderMathMLUnderOver::hasAccent): Use the helper functions for accent and accentunder.

  • rendering/mathml/RenderMathMLUnderOver.h:
9:51 PM Changeset in webkit [203552] by Chris Dumez
  • 5 edits in trunk

Parameter to Node.isSameNode() / isEqualNode() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160070

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to Node.isSameNode() / isEqualNode() should be mandatory as
per the specification:

Chrome and Firefox agree with the specification (although Firefox does
not support isSameNode()).

No new tests, rebaselined existing tests.

  • dom/Node.idl:
9:45 PM Changeset in webkit [203551] by mitz@apple.com
  • 2 edits in trunk/Tools

[Mac] webkitdirs.pm contains unused code to support outdated OS X and Xcode versions
https://bugs.webkit.org/show_bug.cgi?id=160072

Reviewed by Andy Estes.

  • Scripts/webkitdirs.pm:

(readXcodeUserDefault): Changed to take a defaults key rather than a suffix. Removed support

for old Xcode versions.

(determineBaseProductDir): Removed support for old Xcode versions. Updated for the change

to readXcodeUserDefault.

(debugger): Deleted. This was only used for Darwin, where LLDB is now the only supported

debugger.

(determineDebugger): Ditto.
(checkRequiredSystemConfig): Updated to require at least OS X Yosemite v10.10.5 and Xcode

7.0.

(printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Removed --use-gdb and --use-lldb

switches.

(execMacWebKitAppForDebugging): Removed support for GDB.

8:29 PM Changeset in webkit [203550] by Chris Dumez
  • 5 edits in trunk

Parameter to Document.createEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160065

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to Document.createEvent() should be mandatory as per the
specification:

We already throw anyway when the parameter is omitted because we use
"undefined" as event type, which is invalid. However, we throw the
wrong exception.

Firefox and Chrome agree with the specification here.

No new tests, rebaselined existing tests.

  • dom/Document.idl:
8:00 PM Changeset in webkit [203549] by BJ Burg
  • 2 edits in trunk/Source/WebCore

REGRESSION(r62549): Objective-C DOM bindings sometimes fail to regenerate when CodeGenerator.pm is modified
https://bugs.webkit.org/show_bug.cgi?id=160031

Reviewed by Darin Adler.

This bug was caused by a refactoring 6 years ago. Not all uses of a variable
were renamed, so the ObjC bindings target pattern was not specifying any
build scripts as target dependencies.

  • DerivedSources.make: Standardize on {COMMON,JS,DOM}_BINDINGS_SCRIPTS.
7:43 PM Changeset in webkit [203548] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove unneeded content attribute name "playsinline"
https://bugs.webkit.org/show_bug.cgi?id=160069

Reviewed by Chris Dumez.

  • html/HTMLVideoElement.idl: Removed explicit content attribute name on Reflect

attribute since it is the same as the name that the code generator will generate.

7:42 PM Changeset in webkit [203547] by Chris Dumez
  • 6 edits in trunk

Make parameters to Element.getElementsBy*() operations mandatory
https://bugs.webkit.org/show_bug.cgi?id=160060

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Make parameters to Element.getElementsBy*() operations mandatory to
match the specification:

Firefox and Chrome agree with the specification so the compatibility
risk should be low.

It makes very little sense to call these operations without parameter,
especially considering WebKit uses the string "undefined" if the
parameter is omitted.

No new tests, rebaselined existing tests.

  • dom/Element.idl:

LayoutTests:

Drop cases that were calling the operation without parameter.

  • fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt:
  • fast/dom/getElementsByClassName/dumpHTMLCollection.html:
7:21 PM Changeset in webkit [203546] by Chris Dumez
  • 16 edits in trunk

Make parameters mandatory for attribute-related API on Element
https://bugs.webkit.org/show_bug.cgi?id=160059

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Make parameters mandatory for attribute-related API on Element to match
the specification:

Firefox and Chrome agree with the specification. Calling this API
without the parameters does not make much sense, especially considering
WebKit uses the string "undefined" when the parameter is omitted.

No new tests, rebaselined existing tests.

  • dom/Element.idl:

LayoutTests:

Update existing layout tests to reflect the behavior change.

  • fast/dom/Element/script-tests/setAttributeNS-namespace-err.js:
  • fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
  • fast/dom/HTMLHrElement/hr-color-noshade-attribute.html:
  • fast/dom/attribute-downcast-right.html:
  • fast/images/style-access-during-imageChanged-style-freeze.html:
  • fast/selectors/read-only-read-write-input-basics.html:
  • fast/selectors/read-only-read-write-textarea-basics.html:
  • media/video-playsinline-expected.txt:
  • media/video-playsinline.html:
6:40 PM Changeset in webkit [203545] by mmaxfield@apple.com
  • 24 edits in trunk

Remove support for deprecated SPI inlineMediaPlaybackRequiresPlaysInlineAttribute
https://bugs.webkit.org/show_bug.cgi?id=160066

Reviewed by Dean Jackson.

Source/WebCore:

r203520 deprecated inlineMediaPlaybackRequiresPlaysInlineAttribute in favor of
allowsInlineMediaPlaybackWithPlaysInlineAttribute and
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute. The old
inlineMediaPlaybackRequiresPlaysInlineAttribute is SPI and was never released
to the public. Therefore, it can be removed safely.

No new tests because there is no behavior change.

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup): Deleted.
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Deleted.
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]): Deleted.
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): Deleted.

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

(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Deleted.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp): Deleted.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration): Deleted.

6:01 PM Changeset in webkit [203544] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

callOperation(.) variants in the DFG that explicitly take a tag/payload register should take a JSValueRegs instead
https://bugs.webkit.org/show_bug.cgi?id=160007

Reviewed by Filip Pizlo.

This patch is the first step in my plan to remove all callOperation(.) variants
in the various JITs and to unify them using a couple template variations.
The steps are as follows:

  1. Replace all explicit tag/payload pairs with JSValueRegs in the DFG
  2. Replace all explicit tag/payload pairs with JSValueRegs in the baseline
  3. remove callOperation(.) variants and teach setupArgumentsWithExecState about JSValueRegs.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::generateInternal):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

5:48 PM Changeset in webkit [203543] by dino@apple.com
  • 3 edits
    3 adds in trunk

REGRESSION (r202927): The internal size of the ImageBuffer is scaled twice by the context scaleFactor
https://bugs.webkit.org/show_bug.cgi?id=159981
<rdar://problem/27429465>

Reviewed by Myles Maxfield.

Source/WebCore:

The change to propagate color spaces through ImageBuffers created an
alternate version of createCompatibleBuffer. This version accidentally
attempted to take the display resolution (i.e. hidpi) into account
when creating the buffer, which meant it was being applied twice.

The fix is simply to remove that logic. The caller of the method
will take the resolution into account, the same way they did
with the old createCompatibleBuffer method.

Test: fast/hidpi/pdf-image-scaled.html

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer): Don't calculate
a resolution - just use the value of 1.0.

LayoutTests:

  • fast/hidpi/pdf-image-scaled-expected.html: Added.
  • fast/hidpi/pdf-image-scaled.html: Added.
  • fast/hidpi/resources/circle.pdf: Added.
5:44 PM Changeset in webkit [203542] by wilander@apple.com
  • 3 edits
    3 adds in trunk

Block mixed content synchronous XHR
https://bugs.webkit.org/show_bug.cgi?id=105462
<rdar://problem/13666424>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

LayoutTests:

  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html: Added.
  • http/tests/security/mixedContent/resources/insecure-xhr-sync-in-main-frame-window.html: Added.
5:11 PM Changeset in webkit [203541] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[iOS] Apps using WKWebView will crash if they set the scroll view's delegate and don't nil it out later
https://bugs.webkit.org/show_bug.cgi?id=159980
rdar://problem/27450825

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-07-21
Reviewed by Dan Bernstein.

Source/WebKit2:

The root cause of this crash is that we are not abiding the UIScrollView API that the scroll view
delegate property should be weak. If setters of this delegate do not know that, since the WKWebView
exposes the scroll view as a UIScrollView, they may forget to nil out the delegate they set and will
then crash.

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollViewDelegateForwarder methodSignatureForSelector:]): Get a RetainPtr holding the
external delegate and use where needed.
(-[WKScrollViewDelegateForwarder respondsToSelector:]): Ditto.
(-[WKScrollViewDelegateForwarder forwardInvocation:]): Ditto.
(-[WKScrollViewDelegateForwarder forwardingTargetForSelector:]): Ditto. When returning a reference
to the external delegate, get a retained and autoreleased reference so the caller needn't release
the object when done.
(-[WKScrollView delegate]): Ditto.
(-[WKScrollView _updateDelegate]): Get a RetainPtr holding the external delegate that can be
used throughout this method. Use the RetainPtr to get the external delegate for setting super's
delegate as well as creating the delegate forwarder.
(-[WKScrollView setDelegate:]): Get a RetainPtr holding the external delegate and use its value for
comparison to the object we are setting the external delegate to.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/WKScrollViewDelegateCrash.mm: Added.

(-[TestDelegateForScrollView dealloc]): Update delegateIsDeallocated to true so that we can tell
when our delegate has hit -dealloc.
(TestWebKitAPI::TEST): Ensure that after an object has been set as the scroll view's delegate,
and has then been deallocated, that the scroll view's delegate is nil and the deallocated delegate
will not be messaged.

4:55 PM Changeset in webkit [203540] by mmaxfield@apple.com
  • 3 edits in trunk/Tools

Follow-up patch to r203520
https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>

Unreviewed.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

4:52 PM Changeset in webkit [203539] by Chris Dumez
  • 8 edits in trunk

Make parameters to Document.getElementsBy*() operations mandatory
https://bugs.webkit.org/show_bug.cgi?id=160050

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Make parameters to Document.getElementsBy*() operations mandatory to
match the specification:

Firefox and Chrome agree with the specification so the compatibility
risk should be low.

It makes very little sense to call these operations without parameter,
especially considering WebKit uses the string "undefined" if the
parameter is omitted.

No new tests, rebaselined existing tests.

  • dom/Document.idl:

LayoutTests:

Drop cases that were calling the operation without parameter.

  • fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt:
  • fast/dom/getElementsByClassName/dumpHTMLCollection.html:
4:47 PM Changeset in webkit [203538] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: aria-label not being used correctly in accessible name calculation of heading
https://bugs.webkit.org/show_bug.cgi?id=160009

Reviewed by Chris Fleizach.

Source/WebCore:

Actually we are exposing the correct information for heading objects. On macOS,
VoiceOver should handle the logic that picks the right information to speak.
On iOS, VoiceOver is speaking the static text child instead of the heading object.
So we should set the accessibilityLabel of the static text based on the parent's
alternate label.

Test: accessibility/ios-simulator/heading-with-aria-label.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):

LayoutTests:

  • accessibility/ios-simulator/heading-with-aria-label-expected.txt: Added.
  • accessibility/ios-simulator/heading-with-aria-label.html: Added.
4:41 PM Changeset in webkit [203537] by sbarati@apple.com
  • 40 edits
    7 adds in trunk/Source

op_add/ValueAdd should be an IC in all JIT tiers
https://bugs.webkit.org/show_bug.cgi?id=159649

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch makes Add an IC inside all JIT tiers. It does so in a
simple, but effective, way. We will try to generate an int+int add
that will repatch itself if its type checks fail. Sometimes though,
we have runtime type data saying that the add won't be int+int.
In those cases, we will just generate a full snippet that doesn't patch itself.
Other times, we may generate no inline code and defer to making a C call. A lot
of this patch is just refactoring ResultProfile into what we're now calling ArithProfile.
ArithProfile does everything ResultProfile used to do, and more. It records simple type
data about the LHS/RHS operands it sees. This allows us to determine if an op_add
has only seen int+int operands, etc. ArithProfile will also contain the ResultType
for the LHS/RHS that the parser feeds into op_add. ArithProfile now fits into 32-bits.
This means instead of having a side table like we did for ResultProfile, we just
inject the ArithProfile into the bytecode instruction stream. This makes asking
for ArithProfile faster; we no longer need to lock around this operation.

The size of an Add has gone down on average, but we can still do better.
We still generate a lot of code because we generate calls to the slow path.
I think we can make this better by moving the slow path to a shared thunk
system. This patch mostly lays the foundation for future improvements to Add,
and a framework to move all other arithmetic operations to be typed-based ICs.

Here is some data I took on the average op_add/ValueAdd size on various benchmarks:

| JetStream | Speedometer | Unity 3D |

------| -------------

Old | 189 bytes | 169 bytes | 192 bytes |

------| -------------

New | 148 bytes | 124 bytes | 143 bytes |

---------------------------------------------------

Making an arithmetic IC is now easy. The JITMathIC class will hold a snippet
generator as a member variable. To make a snippet an IC, you need to implement
a generateInline(.) method, which generates the inline IC. Then, you need to
generate the IC where you used to generate the snippet. When generating the
IC, we need to inform JITMathIC of various data like we do with StructureStubInfo.
We need to tell it about where the slow path starts, where the slow path call is, etc.
When generating a JITMathIC, it may tell you that it didn't generate any code inline.
This is a request to the user of JITMathIC to just generate a C call along the
fast path. JITMathIC may also have the snippet tell it to just generate the full
snippet instead of the int+int path along the fast path.

In subsequent patches, we can improve upon how we decide to generate int+int or
the full snippet. I tried to get clever by having double+double, double+int, int+double,
fast paths, but they didn't work out nearly as well as the int+int fast path. I ended up
generating a lot of code when I did this and ended up using more memory than just generating
the full snippet. There is probably some way we can be clever and generate specialized fast
paths that are more successful than what I tried implementing, but I think that's worth deferring
this to follow up patches once the JITMathIC foundation has landed.

This patch also fixes a bug inside the slow path lambdas in the DFG.
Before, it was not legal to emit an exception check inside them. Now,
it is. So it's now easy to define arbitrary late paths using the DFG
slow path lambda API.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/ArithProfile.cpp: Added.

(JSC::ArithProfile::emitObserveResult):
(JSC::ArithProfile::shouldEmitSetDouble):
(JSC::ArithProfile::emitSetDouble):
(JSC::ArithProfile::shouldEmitSetNonNumber):
(JSC::ArithProfile::emitSetNonNumber):
(WTF::printInternal):

  • bytecode/ArithProfile.h: Added.

(JSC::ObservedType::ObservedType):
(JSC::ObservedType::sawInt32):
(JSC::ObservedType::isOnlyInt32):
(JSC::ObservedType::sawNumber):
(JSC::ObservedType::isOnlyNumber):
(JSC::ObservedType::sawNonNumber):
(JSC::ObservedType::isOnlyNonNumber):
(JSC::ObservedType::isEmpty):
(JSC::ObservedType::bits):
(JSC::ObservedType::withInt32):
(JSC::ObservedType::withNumber):
(JSC::ObservedType::withNonNumber):
(JSC::ObservedType::withoutNonNumber):
(JSC::ObservedType::operator==):
(JSC::ArithProfile::ArithProfile):
(JSC::ArithProfile::fromInt):
(JSC::ArithProfile::lhsResultType):
(JSC::ArithProfile::rhsResultType):
(JSC::ArithProfile::lhsObservedType):
(JSC::ArithProfile::rhsObservedType):
(JSC::ArithProfile::setLhsObservedType):
(JSC::ArithProfile::setRhsObservedType):
(JSC::ArithProfile::tookSpecialFastPath):
(JSC::ArithProfile::didObserveNonInt32):
(JSC::ArithProfile::didObserveDouble):
(JSC::ArithProfile::didObserveNonNegZeroDouble):
(JSC::ArithProfile::didObserveNegZeroDouble):
(JSC::ArithProfile::didObserveNonNumber):
(JSC::ArithProfile::didObserveInt32Overflow):
(JSC::ArithProfile::didObserveInt52Overflow):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumber):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::addressOfBits):
(JSC::ArithProfile::observeResult):
(JSC::ArithProfile::lhsSawInt32):
(JSC::ArithProfile::lhsSawNumber):
(JSC::ArithProfile::lhsSawNonNumber):
(JSC::ArithProfile::rhsSawInt32):
(JSC::ArithProfile::rhsSawNumber):
(JSC::ArithProfile::rhsSawNonNumber):
(JSC::ArithProfile::observeLHSAndRHS):
(JSC::ArithProfile::bits):
(JSC::ArithProfile::hasBits):
(JSC::ArithProfile::setBit):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpRareCaseProfile):
(JSC::CodeBlock::dumpArithProfile):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::addStubInfo):
(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::dumpValueProfiles):
(JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::arithProfileForBytecodeOffset):
(JSC::CodeBlock::arithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialFastCase):
(JSC::CodeBlock::dumpResultProfile): Deleted.
(JSC::CodeBlock::resultProfileForBytecodeOffset): Deleted.
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset): Deleted.
(JSC::CodeBlock::ensureResultProfile): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):
(JSC::CodeBlock::couldTakeSlowCase):
(JSC::CodeBlock::numberOfResultProfiles): Deleted.

  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue):

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecode/ValueProfile.cpp:

(JSC::ResultProfile::emitDetectNumericness): Deleted.
(JSC::ResultProfile::emitSetDouble): Deleted.
(JSC::ResultProfile::emitSetNonNumber): Deleted.
(WTF::printInternal): Deleted.

  • bytecode/ValueProfile.h:

(JSC::getRareCaseProfileBytecodeOffset):
(JSC::ResultProfile::ResultProfile): Deleted.
(JSC::ResultProfile::bytecodeOffset): Deleted.
(JSC::ResultProfile::specialFastPathCount): Deleted.
(JSC::ResultProfile::didObserveNonInt32): Deleted.
(JSC::ResultProfile::didObserveDouble): Deleted.
(JSC::ResultProfile::didObserveNonNegZeroDouble): Deleted.
(JSC::ResultProfile::didObserveNegZeroDouble): Deleted.
(JSC::ResultProfile::didObserveNonNumber): Deleted.
(JSC::ResultProfile::didObserveInt32Overflow): Deleted.
(JSC::ResultProfile::didObserveInt52Overflow): Deleted.
(JSC::ResultProfile::setObservedNonNegZeroDouble): Deleted.
(JSC::ResultProfile::setObservedNegZeroDouble): Deleted.
(JSC::ResultProfile::setObservedNonNumber): Deleted.
(JSC::ResultProfile::setObservedInt32Overflow): Deleted.
(JSC::ResultProfile::setObservedInt52Overflow): Deleted.
(JSC::ResultProfile::addressOfFlags): Deleted.
(JSC::ResultProfile::addressOfSpecialFastPathCount): Deleted.
(JSC::ResultProfile::detectNumericness): Deleted.
(JSC::ResultProfile::hasBits): Deleted.
(JSC::ResultProfile::setBit): Deleted.
(JSC::getResultProfileBytecodeOffset): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitBinaryOp):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::exceptionCheck):

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::SlowPathGenerator::generate):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
(JSC::DFG::SpeculativeJIT::compileValueAdd):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::silentSpillAllRegistersImpl):
(JSC::DFG::SpeculativeJIT::silentSpillAllRegisters):
(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):
(JSC::CCallHelpers::setupArguments):

  • jit/JIT.h:
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):
(JSC::JITAddGenerator::didEmitFastPath): Deleted.
(JSC::JITAddGenerator::endJumpList): Deleted.
(JSC::JITAddGenerator::slowPathJumpList): Deleted.

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_jless):
(JSC::JIT::emitSlow_op_urshift):
(JSC::getOperandTypes):
(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITMathIC.h: Added.

(JSC::JITMathIC::doneLocation):
(JSC::JITMathIC::slowPathStartLocation):
(JSC::JITMathIC::slowPathCallLocation):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
(JSC::JITMathIC::finalizeInlineCode):

  • jit/JITMathICForwards.h: Added.
  • jit/JITMathICInlineResult.h: Added.
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

  • jit/Repatch.cpp:

(JSC::readCallTarget):
(JSC::ftlThunkAwareRepatchCall):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::appropriateGenericPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):
(JSC::linkSlowFor):
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::repatchCall): Deleted.

  • jit/Repatch.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):
(JSC::ResultType::isInt32):
(JSC::ResultType::definitelyIsNumber):
(JSC::ResultType::definitelyIsString):
(JSC::ResultType::definitelyIsBoolean):
(JSC::ResultType::mightBeNumber):
(JSC::ResultType::isNotNumber):
(JSC::ResultType::forBitOp):
(JSC::ResultType::bits):
(JSC::OperandTypes::OperandTypes):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):
(JSC::updateArithProfileForBinaryArithOp):
(JSC::updateResultProfileForBinaryArithOp): Deleted.

  • tests/stress/op-add-exceptions.js: Added.

(assert):
(f1):
(f2):
(f3):
(let.oException.valueOf):
(foo):
(ident):
(bar):

Source/WebCore:

  • ForwardingHeaders/jit/JITMathICForwards.h: Added.
4:32 PM Changeset in webkit [203536] by Ryan Haddad
  • 1 edit
    1 copy
    1 add
    1 delete in trunk/LayoutTests

Move expected.txt file for editing/deleting/delete-emoji.html from mac-elcapitan to mac-yosemite

Unreviewed test gardening.

  • platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt: Renamed from LayoutTests/platform/mac-elcapitan/editing/deleting/delete-emoji-expected.txt.
3:56 PM Changeset in webkit [203535] by Chris Dumez
  • 18 edits in trunk

Make parameters mandatory for Document.create*() operations
https://bugs.webkit.org/show_bug.cgi?id=160047

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Make parameters mandatory for Document.create*() operations:
createTextNode(), createComment(), createCDataSection(),
createAttribute() and createProcessingInstruction().

This matches the specification:

Firefox and Chrome both agree with the specification so the
compatibility risk should be low. Also WebKit uses the string
"undefined" when the parameter is omitted, which is not very
helpful.

No new tests, rebaselined existing tests.

  • dom/Document.idl:

LayoutTests:

Update existing tests to reflect the behavior change.

  • compositing/geometry/assert-marquee-timer.html:
  • editing/style/bold-with-dom-changes.html:
  • fast/dom/MutationObserver/observe-characterdata.html:
  • fast/dom/normalize-attributes-mutation-event-crash.html:
  • fast/dom/null-chardata-crash.html:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/forms/basic-textareas.html:
  • fast/inspector-support/uncaught-dom1-exception-expected.txt:
  • fast/inspector-support/uncaught-dom1-exception.html:
3:49 PM Changeset in webkit [203534] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.html as flaky on mac
https://bugs.webkit.org/show_bug.cgi?id=160056

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:34 PM Changeset in webkit [203533] by mmaxfield@apple.com
  • 3 edits
    2 copies
    1 move
    1 add in trunk

[macOS] Caret placement occurs in the middle of new emoji group candidates
https://bugs.webkit.org/show_bug.cgi?id=160008
<rdar://problem/27430111>

Reviewed by Simon Fraser.

Source/WTF:

r203330 added support for new emoji group candidates. This patch updates the rules
governing caret placement around these new emoji groups.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

Update expected results.

The new emoji support is behind the ADDITIONAL_EMOJI_SUPPORT guard, which
means it only occurs on El Capitan and higher. Similarly, these new rules
are not used for iOS.

  • editing/deleting/delete-emoji-expected.txt: Deleted.
  • platform/mac/editing/deleting/delete-emoji-expected.txt: Added.
  • platform/mac-elcapitan/editing/deleting/delete-emoji-expected.txt: Added.
  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt: Added.
3:16 PM Changeset in webkit [203532] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27475162.

  • platform/mac/TestExpectations:
2:31 PM Changeset in webkit [203531] by Chris Dumez
  • 6 edits
    2 adds in trunk

Fix null handling of SVGAngle/SVGLength.valueAsString attribute
https://bugs.webkit.org/show_bug.cgi?id=160025

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix null handling of SVGAngle/SVGLength.valueAsString attribute
to match the specification:

In particular, this patch drops [TreatNullAs=EmptyString] IDL
extended attribute from this attribute. This is not supposed
to change behavior given that both "" and "null" are invalid
numbers and the specification says to throw a SYNTAX_ERR in
this case.

However, WebKit currently ignores assignments to "" instead
of throwing. As a result, assigning to null will now throw
instead of being ignored. The compatibility risk should be
low because both Firefox and Chrome throw when assigning
null.

I did not change the behavior when assigning to "" because
it is a bit out of scope for this patch and browsers to not
seem to agree:

  • Firefox throws
  • Chrome set value to "0"
  • WebKit ignores the assignment

The specification seems to agree with Firefox as far as I
can tell given that "" is not a valid number as per:

Test: svg/dom/valueAsString-null.html

  • svg/SVGAngle.idl:
  • svg/SVGLength.idl:

LayoutTests:

Add test coverage.

  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:
  • svg/dom/valueAsString-null-expected.txt: Added.
  • svg/dom/valueAsString-null.html: Added.

There are a couple of failures in this test because WebKit ignores
assignments to "" instead of throwing. Firefox passes all the checks.

2:25 PM Changeset in webkit [203530] by Chris Dumez
  • 7 edits in trunk

Fix null handling of HTMLFontElement.color
https://bugs.webkit.org/show_bug.cgi?id=160036

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:

Source/WebCore:

Fix null handling of HTMLFontElement.color to match the specification:

We are supposed to treat null as the empty string. Both Firefox and
Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLFontElement.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:25 PM Changeset in webkit [203529] by Chris Dumez
  • 7 edits in trunk

Fix null handling for several HTMLTableElement attributes
https://bugs.webkit.org/show_bug.cgi?id=160041

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-tabular-expected.txt:

Source/WebCore:

Fix null handling for several HTMLTableElement attributes to match the
specification:

The attributes in question are 'bicolor', 'cellSpacing' and
'cellPadding'. We are supposed to treat null as the empty string for
these attributes.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLTableElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:23 PM Changeset in webkit [203528] by Chris Dumez
  • 8 edits in trunk

Fix null handling for HTMLObjectElement.border
https://bugs.webkit.org/show_bug.cgi?id=160040

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling for HTMLObjectElement.border to match the specification:

We are supposed to treat null as the empty string.

Both Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLObjectElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:22 PM Changeset in webkit [203527] by Chris Dumez
  • 8 edits in trunk

Fix null handling for td.bgColor / tr.bgColor
https://bugs.webkit.org/show_bug.cgi?id=160043

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-tabular-expected.txt:

Source/WebCore:

Fix null handling for td.bgColor / tr.bgColor to match the
specification:

We are supposed to treat null as the empty string.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLTableCellElement.idl:
  • html/HTMLTableRowElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:19 PM Changeset in webkit [203526] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Test platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160002

Reviewed by Alexey Proskuryakov.

The file platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html tests loading
plugin content from the main frame and from a subframe. Depending on timing the plugin
content loaded in the subframe may complete before plugin content loaded in the main frame.
We should test loading plugin content in a subframe after perform all main frame sub-tests
so as to ensure a well-defined sub-test order.

Add logic to ensure that an embedded YouTube flash video loaded in a subframe actually creates
a shadow DOM. Additionally, simplify the test logic by making use window.jsTestIsAsync/finishJSTest()
to mark the test as asynchronous and notify test completion instead of calling
window.testRunner.{waitUntilDone, notifyDone}(), remove the call to
testRunner.dumpAsText() (js-test-pre.js calls this for us), remove all of the DOM elements
used in the test to avoid noise in the expected results, and fix some style nits.

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-expected.txt:
  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html:
2:11 PM Changeset in webkit [203525] by Chris Dumez
  • 7 edits in trunk

Fix null handling for several HTMLBodyElement attributes
https://bugs.webkit.org/show_bug.cgi?id=160044

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-sections-expected.txt:

Source/WebCore:

Fix null handling for several HTMLBodyElement attributes to match the
specification:

The attributes in question are: 'text', 'link', 'vlink', 'alink' and
'bgcolor'.

We are supposed to treat null as the empty string for these attributes.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLBodyElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:10 PM Changeset in webkit [203524] by Chris Dumez
  • 8 edits in trunk

Fix null handling for HTMLIFrameElement.marginWidth / marginHeight
https://bugs.webkit.org/show_bug.cgi?id=160037

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling for HTMLIFrameElement.marginWidth / marginHeight to
match the specification:

We are supposed to treat null as the empty string. Both Firefox and
Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLIFrameElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:09 PM Changeset in webkit [203523] by Chris Dumez
  • 8 edits in trunk

Fix null handling for HTMLImageElement.border
https://bugs.webkit.org/show_bug.cgi?id=160039

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling for HTMLImageElement.border to match the specification:

We are supposed to treat null as the empty string.

Both Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLImageElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:06 PM Changeset in webkit [203522] by dbates@webkit.org
  • 9 edits in trunk

REGRESSION: Plugin replaced YouTube Flash videos always have the same width
https://bugs.webkit.org/show_bug.cgi?id=159998
<rdar://problem/27462285>

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue where the width of a plugin replaced YouTube video loaded via an HTML embed
element would always have the same width regardless of value of the width attribute.

For YouTube Flash videos the YouTube plugin replacement substitutes a shadow DOM subtree
for the default renderer of an HTML embed element. The root of this shadow DOM subtree
is an HTML div element. Currently we set inline styles on this <div> when it is instantiated.
In particular, we set inline display and position to "inline-block" and "relative", respectively,
and set an invalid height and width (we specify a font weight value instead of a CSS length value

  • this causes an ASSERT_NOT_REACHED() assertion failure in StyleBuilderConverter::convertLengthSizing()

in a debug build). These styles never worked as intended and we ultimately created an inline
renderer (ignoring display "inline-block") that had auto width and height. Instead it is sufficient
to remove all these inline styles and create a RenderBlockFlow renderer for this <div> so that it
renders as a block, non-replaced element to achieve the intended illusion that the <embed> is a
single element.

  • html/shadow/YouTubeEmbedShadowElement.cpp: Remove unused header HTMLEmbedElement.h and include

header RenderBlockFlow.h. Also update copyright in license block.
(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement): Remove inline styles as these
never worked as intended.
(WebCore::YouTubeEmbedShadowElement::createElementRenderer): Override; create a block-flow
renderer for us so that we layout as a block, non-replaced element.

  • html/shadow/YouTubeEmbedShadowElement.h:

LayoutTests:

Unskip existing iOS layout tests, update tests and expected results.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-expected.txt: Updated expected result based on the

changes to test youtube-flash-plugin-iframe.html.

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-no-height-or-width-expected.txt: Updated expected result

based on the changes to test youtube-flash-plugin-iframe-no-height-or-width.html.

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-no-height-or-width.html: Modified to check the

width of each embedded YouTube video to ensure that we respect it (if specified).

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html: Substitute pseudo id -webkit-plugin-replacement

for -apple-youtube-shadow-iframe as the later was renamed to the former in <https://trac.webkit.org/changeset/168442>.
Fix misspelling of the word "embed" in a comment.

2:05 PM Changeset in webkit [203521] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/codemirror/prettyprinting-javascript.html as a flaky timeout on mac debug.
https://bugs.webkit.org/show_bug.cgi?id=160048

Unreviewed test gardening.

Added TestExpectation and reordered alphabetically.

  • platform/mac/TestExpectations:
1:19 PM Changeset in webkit [203520] by mmaxfield@apple.com
  • 26 edits
    2 deletes in trunk

[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>

Reviewed by Jon Lee, Jeremy Jones, and Anders Carlsson.

Source/WebCore:

WebKit recently starting honoring the playsinline and webkit-playsinline
attribute on iPhones. However, because these attributes previously did
nothing, some sites (such as Todou) were setting them on their content
and expecting that they are not honored. In this specific case, the
video is absolutely positioned to be 1 pixel x 1 pixel.

Previously, with iOS 9, apps could set the allowsInlineMediaPlayback
property on their WKWebView, which would honor the webkit-playsinline
attribute. Safari on iPhones didn't do this.

In order to not break these existing apps, it's important that the
allowsInlineMediaPlayback preference still allows webkit-playsinline
videos to play inline in apps using WKWebView. However, in Safari, these
videos should play fullscreen. (Todou videos have webkit-playsinline
but not playsinline.)

Therefore, in Safari, videos with playsinline should be inline, but
videos with webkit-playsinline should be fullscreen. In apps using
WKWebViews, if the app sets allowsInlineMediaPlayback, then videos with
playsinline should be inline, and videos with webkit-playsinline should
also be inline. Videos on iPad and Mac should all be inline by default.

We can create some truth tables for the cases which need to be covered:

All apps on Mac / iPad:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Inline
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

Safari on iPhone:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Fullscreen
Present | Present | Inline

App on iPhone which sets allowsInlineMediaPlayback:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

The way to distinguish Safari from another app is to create an SPI
boolean preference which Safari can set. This is already how the
iPhone and iPad are differentiated using the requiresPlayInlineAttribute
which Safari sets but other apps don't. However, this preference is
no longer sufficient because Safari should now be discriminating
between the playsinline and webkit-playsinline attributes. Therefore,
this preference should be extended to two boolean preferences, which
this patch adds:

allowsInlineMediaPlaybackWithPlaysInlineAttribute
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute

Safari on iPhone will set
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to true,
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to
false. Other apps on iPhone will get their defaults values (because they
are SPI) which means they will both be true. On iPad and Mac, apps will
use the defaults values where both are false.

This patch adds support for these two preferences, but does not remove
the existing inlineMediaPlaybackRequiresPlaysInlineAttribute preference.
I will remove the exising preference as soon as I update Safari to migrate
off of it.

Test: media/video-playsinline.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Add the two preferences to WebPreferences.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Migrate tests to use new SPI.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

LayoutTests:

  • media/video-playsinline.html: Updated.
  • media/video-webkit-playsinline-expected.txt: Removed.
  • media/video-webkit-playsinline.html: Removed.
1:04 PM Changeset in webkit [203519] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking accessibility/mac/value-change/value-change-user-info-contenteditable.html as flaky on El Capitan WK2
https://bugs.webkit.org/show_bug.cgi?id=160042

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:41 PM Changeset in webkit [203518] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash accessing null renderer inside WebCore::DeleteSelectionCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=160011

Reviewed by Chris Dumez.

Add a null pointer check for renderer() call.

Unfortunately no new tests since we don't have a reproduction.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::doApply):

12:04 PM Changeset in webkit [203517] by Chris Dumez
  • 13 edits in trunk

The 2 first parameters to DOMImplementation.createDocument() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160030

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

The 2 first parameters to DOMImplementation.createDocument() should be mandatory
as per the specification:

Firefox and Chrome both agree with the specification. However, those
parameters were marked as optional in WebKit. Calling this function
without parameters would create a document element whose tag is the
string "undefined", which does not seem helpful. This patch thus
aligns our behavior with the specification and other browsers.

No new tests, rebaselined existing tests.

  • dom/DOMImplementation.idl:

LayoutTests:

Rebaseline / update existing test to reflect the behavior change.

  • fast/css/zoom-on-unattached.html:
  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/script-tests/createDocument-namespace-err.js:
  • fast/dom/HTMLLinkElement/prefetch-detached.html:
  • fast/dom/node-move-to-new-document-crash-main.html:
  • fast/forms/change-form-element-document-crash.html:
11:40 AM Changeset in webkit [203516] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Kill legacy valueToStringWithNullCheck() utility function
https://bugs.webkit.org/show_bug.cgi?id=159991

Reviewed by Sam Weinig.

Kill legacy valueToStringWithNullCheck() utility function. Treating null as
a null string is legacy behavior so drop this function so that people are
not tempted to use it. We should be using either:

  1. JSValue::toWTFString() for non-nullable DOMStrings
  2. valueToStringWithUndefinedOrNullCheck() for nullable DOMStrings
  3. valueToStringTreatingNullAsEmptyString() for strings with [TreatNullAs=EmptyString]

No new tests, no web-exposed behavior change.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::valueToStringWithNullCheck): Deleted.

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSHTMLFrameElementCustom.cpp:

(WebCore::JSHTMLFrameElement::setLocation):

  • html/HTMLFrameElement.idl:
11:23 AM Changeset in webkit [203515] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203506. rdar://problem/27353750

11:20 AM Changeset in webkit [203514] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Do not keep invalid IOSurface in ImageBufferData.
https://bugs.webkit.org/show_bug.cgi?id=160005
<rdar://problem/27208636>

Reviewed by Simon Fraser.

When we fail to initialize the IOSurface for the accelerated context, we switch over to
the non-accelerated code path. Since ImageBufferData::surface is used to indicate whether
the graphics context is in accelerated mode, we need to reset it when the initialization fails.

Unable to create a test case.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

11:17 AM Changeset in webkit [203513] by bshafiei@apple.com
  • 4 edits
    1 add in branches/safari-602-branch

Merge r203508. rdar://problem/27392691

11:08 AM Changeset in webkit [203512] by Csaba Osztrogonác
  • 54 edits in trunk

Clarify testing mode names in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=160021

Reviewed by Mark Lam.

Default should mean really default, not default with disabled FTL, renamed

  • runMozillaTestDefault to runMozillaTestNoFTL
  • runMozillaTestDefaultFTL to runMozillaTestDefault
  • runDefault to runNoFTL
  • runDefaultFTL to runDefault
  • runLayoutTestDefault to runLayoutTestNoFTL
  • runLayoutTestDefaultFTL to runLayoutTestDefault
  • runNoisyTestDefault to runNoisyTestNoFTL
  • runNoisyTestDefaultFTL to runNoisyTestDefault

Source/JavaScriptCore:

  • tests/mozilla/mozilla-tests.yaml:
  • tests/stress/lift-tdz-bypass-catch.js:
  • tests/stress/obscure-error-message-dont-crash.js:
  • tests/stress/shadow-chicken-disabled.js:

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • js/regress/script-tests/DataView-custom-properties.js:
  • js/regress/script-tests/HashMap-put-get-iterate-keys.js:
  • js/regress/script-tests/HashMap-put-get-iterate.js:
  • js/regress/script-tests/HashMap-string-put-get-iterate.js:
  • js/regress/script-tests/array-nonarray-polymorhpic-access.js:
  • js/regress/script-tests/basic-set.js:
  • js/regress/script-tests/bug-153431.js:
  • js/regress/script-tests/destructuring-arguments.js:
  • js/regress/script-tests/destructuring-swap.js:
  • js/regress/script-tests/inline-arguments-local-escape.js:
  • js/regress/script-tests/method-on-number.js:
  • js/regress/script-tests/new-array-buffer-push.js:
  • js/regress/script-tests/new-array-push.js:
  • js/regress/script-tests/poly-stricteq.js:
  • js/regress/script-tests/polymorphic-array-call.js:
  • js/regress/script-tests/regexp-prototype-is-not-instance.js:
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects.js:
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects2.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js:
  • js/regress/script-tests/regexp-prototype-test-observable-side-effects.js:
  • js/regress/script-tests/regexp-prototype-test-observable-side-effects2.js:
  • js/regress/script-tests/string-equality.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects2.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects3.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects4.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects2.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects4.js:
  • js/regress/script-tests/string-repeat-arith.js:
  • js/regress/script-tests/string-sub.js:
  • js/slow-stress/script-tests/destructuring-arguments-length.js:
10:54 AM Changeset in webkit [203511] by Chris Dumez
  • 5 edits in trunk

playsInline IDL attribute has the wrong casing
https://bugs.webkit.org/show_bug.cgi?id=160029
<rdar://problem/27474031>

Reviewed by Jon Lee.

Source/WebCore:

Fix case from video.playsinline to video.playsInline in order to match
the specification:

It still reflects the "playsinline" content attribute though, as per
the specification:

No new tests, updated existing test.

  • html/HTMLVideoElement.idl:

LayoutTests:

Update test to use the correct case.

  • media/video-playsinline-expected.txt:
  • media/video-playsinline.html:
10:24 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
10:23 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
10:20 AM Changeset in webkit [203510] by Chris Dumez
  • 3 edits
    2 adds in trunk

Drop [TreatNullAs=EmptyString] from CanvasRenderingContext2D.globalCompositeOperation
https://bugs.webkit.org/show_bug.cgi?id=160026

Reviewed by Sam Weinig.

Source/WebCore:

Drop [TreatNullAs=EmptyString] from CanvasRenderingContext2D.globalCompositeOperation
attribute as it does not match the specification:

It does not change web-exposed behavior because assigning to "" or "null"
gets ignored as those are not valid operations.

Test: fast/canvas/context-globalCompositeOperation-null.html

  • html/canvas/CanvasRenderingContext2D.idl:

LayoutTests:

Add test coverage.

  • fast/canvas/context-globalCompositeOperation-null-expected.txt: Added.
  • fast/canvas/context-globalCompositeOperation-null.html: Added.
10:12 AM Changeset in webkit [203509] by clopez@igalia.com
  • 8 edits in trunk/LayoutTests

[GTK] Gardening: Layout tests expectations updates and test rebaselines.

Unreviewed.

  • TestExpectations: js/regress-139548.html is ~10x slower since r203142.
  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Rebaseline after r203333.
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt: Rebaseline after r203333.
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt: Rebaseline after r203333.
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt: Rebaseline after r203333.
  • platform/efl/TestExpectations: workers/bomb.html is slow.
  • platform/gtk/TestExpectations: workers/bomb.html is slow, media/media-source/media-source-small-gap.html timeouts and new failure on platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html.
10:01 AM Changeset in webkit [203508] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

WebBackForwardList's currentIndex could get out of bounds when filtering items.
https://bugs.webkit.org/show_bug.cgi?id=159986

Source/WebKit2:

When generating a new BackForwardListState object, if we filter out multiple items in the list, the currentIndex could get
out of bounds.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2016-07-21
Reviewed by Dan Bernstein.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::backForwardListState): Make currentIndex point to the last item if it is out of bounds.

Tools:

Add a test to verify filtering out 2 items from a 3-item list will set the currentIndex
to 0.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2016-07-21
Reviewed by Dan Bernstein.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/WKBackForwardList.mm: Added.

(-[WKBackForwardListTestNavigationDelegate webView:didFinishNavigation:]):
(TEST):

9:59 AM Changeset in webkit [203507] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Web Automation: Allow JavaScript evaluation to return an InvalidElementState error
https://bugs.webkit.org/show_bug.cgi?id=160015
<rdar://problem/27434529>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-21
Reviewed by Brian Burg.

  • UIProcess/Automation/Automation.json:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):

9:21 AM Changeset in webkit [203506] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update test expectations for rdar://problem/27353750.

  • platform/mac/TestExpectations:
9:05 AM Changeset in webkit [203505] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][Threaded Compositor] Overlay scrollbars shouldn't be a requirement of the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=160020

Reviewed by Michael Catanzaro.

It has been a requirement only because we didn't really know why frame scrollbars were not rendered when using
the threaded compositor. The reason is that RenderView doesn't use layers for FrameView scrollbars by default,
unless using overlay scrollbars. When using the threaded compositor we really need layers for the FrameView
scrollbars even when not using overlay scrollbars.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk): Stop enforcing overlay scrollbars when threaded compositor is enabled.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls): Always use layers for scrollbars when
threaded compositor is enabled.

9:02 AM Changeset in webkit [203504] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] WTR generates fully white images for pixel tests most of the time
https://bugs.webkit.org/show_bug.cgi?id=160016

Reviewed by Žan Doberšek.

WTR sends a force repaint message to the web process before taking a snapshot of the web view. With the threaded
compositor, the UI process is notified about the force repaint callback before the contents have been actually
painted. We need to ensure that the contents are rendered before the UI process is notified.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::forceRepaint): Synchronously render the layer tree.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewRenderAcceleratedCompositingResults): Always mark the redirected window surface as dirty before
rendering, since it can be modified by the web process at any time.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::XDamageNotifier::add):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Do not mark the surface as dirty on every
damage since the view will do it before rendering.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::forceRepaint): Call ThreadedCompositor::forceRepaint().

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
9:01 AM Changeset in webkit [203503] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] Fix a crash in fast/canvas/canvas-getImageData-invalid-result-buffer-crash.html
https://bugs.webkit.org/show_bug.cgi?id=160014

Reviewed by Michael Catanzaro.

In r202887 some null checks were added for JSArray::createUninitialized (and related) but not for the
ImageBuffer cairo implementation.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::getImageData): Return early if Uint8ClampedArray::createUninitialized() returns nullptr.

6:03 AM Changeset in webkit [203502] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] The GSTREAMER_GL path in MediaPlayerPrivateGStreamerBase::paintToTextureMapper() is missing a mutex lock
https://bugs.webkit.org/show_bug.cgi?id=160018

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-21
Reviewed by Philippe Normand.

Lock the video sample mutex while accessing it.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):

4:36 AM Changeset in webkit [203501] by jfernandez@igalia.com
  • 1 edit
    12 adds in trunk/LayoutTests

[css-grid] Handle min-content/max-content with orthogonal flows
https://bugs.webkit.org/show_bug.cgi?id=159294

Reviewed by Darin Adler.

New layout tests to evaluate basic positioning and sizing using orthogonal flows.

  • fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html: Added.
12:35 AM Changeset in webkit [203500] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] White page when loaded tab is visited until it's hovered when AC mode is always on
https://bugs.webkit.org/show_bug.cgi?id=159512

Reviewed by Michael Catanzaro.

The redirected window is always mapped, but offscreen, to ensure that the web process can always render
there. When the web process renders something into the offscreen window, we receive a damage event in the UI
process and queue a redraw of the web view. However, when the web view is not mapped, even if we still receive
the damage events, the web view redraws are ignored until the view is mapped again (gtk_widget_queue_draw()
returns early when the widget is not visible). The redirected window updates its pixmap on demand when the
surface is requested, which happens when the web view draws its contents. So when the web view becames visible,
the redirected window creates a new pixmap and surface (the first time or if the web view was resized), that we
initialize to avoid artifacts when the web process hasn't render anything yet. That initialization is actually
overwriting anything rendered into the redirected window while the view was unmapped. That's why see white pages
the first time, and previous contents after a resize, and we don't see the actual contents until the web process
renders again and we reuse the existing pixmap. The white page didn't happen for tabs with accelerated content,
because in those cases the web process was rendering a new frame every 16ms, but instead there was a flickering
effect due to the current frame being overwritten when the view is mapped until the next frame.
So, instead of lazily create and initialize the redirected window pixmap and surface, we should always create
the new pixmap as soon as the window is created or resized (and not empty) This fixes the issues but also makes
resizing the window a bit smoother when AC mode is enabled.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Create the pixmap and surface if the window is
not empty.
(WebKit::RedirectedXCompositeWindow::resize): Ditto.
(WebKit::RedirectedXCompositeWindow::createNewPixampAndPixampSurface): Create the pixmap and surface.
(WebKit::RedirectedXCompositeWindow::surface): Deleted.

  • UIProcess/gtk/RedirectedXCompositeWindow.h:

(WebKit::RedirectedXCompositeWindow::surface):

12:33 AM Changeset in webkit [203499] by Yusuke Suzuki
  • 23 edits
    2 copies
    9 adds in trunk/Source/JavaScriptCore

[ES7] Introduce exponentiation expression
https://bugs.webkit.org/show_bug.cgi?id=159969

Reviewed by Saam Barati.

This patch implements the exponentiation expression, e.g. x ** y.
The exponentiation expression is introduced in ECMA262 2016 and ECMA262 2016
is already released. So this is not the draft spec.

The exponentiation expression has 2 interesting points.

  1. Right associative

To follow the Math expression, operator is right associative.
When we execute x ** y ** z, this is handled as x ** (y ** z), not (x ** y) ** z.
This patch introduces the right associativity to the binary operator and handles it
in the operator precedence parser in Parser.cpp.

  1. LHS of the exponentiation expression is UpdateExpression

ExponentiationExpression[Yield]:

UnaryExpression?Yield
UpdateExpression?Yield ExponentiationExpression?Yield

As we can see, the left hand side of the ExponentiationExpression is UpdateExpression, not UnaryExpression.
It means that +x ** y becomes a syntax error. This is intentional. Without superscript in JS,
-x**y is confusing between -(x ** y) and (-x) ** y. So ECMA262 intentionally avoids UnaryExpression here.
If we need to use a negated value, we need to write parentheses explicitly e.g. (-x) ** y.
In this patch, we ensure that the left hand side is not an unary expression by checking an operator in
parseBinaryExpression. This works since ** has the highest operator precedence in the binary operators.

We introduce a new bytecode, op_pow. That simply works as similar as the other binary operators.
And it is converted to ArithPow in DFG and handled in DFG and FTL.
In this patch, we take the approach just introducing a new bytecode instead of calling Math.pow.
This is because we would like to execute ToNumber in the caller side, not in the callee (Math.pow) side.
And we don't want to compile into the following.

lhsNumber = to_number (lhs)
rhsNumber = to_number (rhs)
call Math.pow(lhsNumber, rhsNumber)

We ensure that this patch passes all the test262 tests related to the exponentiation expression.

The only sensitive part to the performance is the parser changes.
So we measured the code-load performance and it is neutral in my x64 Linux box (hanayamata).

Collected 30 samples per benchmark/VM, with 30 VM invocations per benchmark. Emitted a call to
gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used
the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark
execution times with 95% confidence intervals in milliseconds.

baseline patched

closure 0.60499+-0.00250 0.60180+-0.00244
jquery 7.89175+-0.02433 ? 7.91287+-0.04759 ?

<geometric> 2.18499+-0.00523 2.18207+-0.00689 might be 1.0013x faster

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitReadModifyAssignment):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_pow):

  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::operatorStackShouldReduce):
(JSC::ASTBuilder::makePowNode):
(JSC::ASTBuilder::makeMultNode):
(JSC::ASTBuilder::makeDivNode):
(JSC::ASTBuilder::makeModNode):
(JSC::ASTBuilder::makeSubNode):
(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::operatorStackHasHigherPrecedence): Deleted.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lex):

  • parser/NodeConstructors.h:

(JSC::PowNode::PowNode):

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

(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::isUnaryOpExcludingUpdateOp):
(JSC::Parser<LexerType>::parseBinaryExpression):
(JSC::isUnaryOp): Deleted.

  • parser/ParserTokens.h:

(JSC::isUpdateOp):
(JSC::isUnaryOp):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • tests/stress/pow-basics.js: Added.

(valuesAreClose):
(mathPowDoubleDouble1):
(mathPowDoubleInt1):
(test1):
(mathPowDoubleDouble2):
(mathPowDoubleInt2):
(test2):
(mathPowDoubleDouble3):
(mathPowDoubleInt3):
(test3):
(mathPowDoubleDouble4):
(mathPowDoubleInt4):
(test4):
(mathPowDoubleDouble5):
(mathPowDoubleInt5):
(test5):
(mathPowDoubleDouble6):
(mathPowDoubleInt6):
(test6):
(mathPowDoubleDouble7):
(mathPowDoubleInt7):
(test7):
(mathPowDoubleDouble8):
(mathPowDoubleInt8):
(test8):
(mathPowDoubleDouble9):
(mathPowDoubleInt9):
(test9):
(mathPowDoubleDouble10):
(mathPowDoubleInt10):
(test10):
(mathPowDoubleDouble11):
(mathPowDoubleInt11):
(test11):

  • tests/stress/pow-coherency.js: Added.

(pow42):
(build42AsDouble.opaqueAdd):
(build42AsDouble):
(powDouble42):
(clobber):
(pow42NoConstantFolding):
(powDouble42NoConstantFolding):

  • tests/stress/pow-evaluation-order.js: Added.

(shouldBe):
(throw.new.Error):

  • tests/stress/pow-expects-update-expression-on-lhs.js: Added.

(testSyntax):
(testSyntaxError):
(throw.new.Error):
(let.token.of.tokens.testSyntax.pow):
(testSyntax.pow):

  • tests/stress/pow-integer-exponent-fastpath.js: Added.

(valuesAreClose):
(mathPowDoubleDoubleTestExponentFifty):
(mathPowDoubleIntTestExponentFifty):
(testExponentFifty):
(mathPowDoubleDoubleTestExponentTenThousands):
(mathPowDoubleIntTestExponentTenThousands):
(testExponentTenThousands):

  • tests/stress/pow-nan-behaviors.js: Added.

(testIntegerBaseWithNaNExponentStatic):
(mathPowIntegerBaseWithNaNExponentDynamic):
(testIntegerBaseWithNaNExponentDynamic):
(testFloatingPointBaseWithNaNExponentStatic):
(mathPowFloatingPointBaseWithNaNExponentDynamic):
(testFloatingPointBaseWithNaNExponentDynamic):
(testNaNBaseStatic):
(mathPowNaNBaseDynamic1):
(mathPowNaNBaseDynamic2):
(mathPowNaNBaseDynamic3):
(mathPowNaNBaseDynamic4):
(testNaNBaseDynamic):
(infiniteExponentsStatic):
(mathPowInfiniteExponentsDynamic1):
(mathPowInfiniteExponentsDynamic2):
(mathPowInfiniteExponentsDynamic3):
(mathPowInfiniteExponentsDynamic4):
(infiniteExponentsDynamic):

  • tests/stress/pow-simple.js: Added.

(shouldBe):
(throw.new.Error):

  • tests/stress/pow-stable-results.js: Added.

(opaquePow):
(isIdentical):

  • tests/stress/pow-to-number-should-be-executed-in-code-side.js: Added.

(shouldBe):
(throw.new.Error):

  • tests/stress/pow-with-constants.js: Added.

(exponentIsZero):
(testExponentIsZero):
(exponentIsOne):
(testExponentIsOne):
(powUsedAsSqrt):
(testPowUsedAsSqrt):
(powUsedAsOneOverSqrt):
(testPowUsedAsOneOverSqrt):
(powUsedAsSquare):
(testPowUsedAsSquare):
(intIntConstantsSmallNumbers):
(intIntConstantsLargeNumbers):
(intIntSmallConstants):
(intDoubleConstants):
(doubleDoubleConstants):
(doubleIntConstants):
(testBaseAndExponentConstantLiterals):
(exponentIsIntegerConstant):
(testExponentIsIntegerConstant):
(exponentIsDoubleConstant):
(testExponentIsDoubleConstant):
(exponentIsInfinityConstant):
(testExponentIsInfinityConstant):
(exponentIsNegativeInfinityConstant):
(testExponentIsNegativeInfinityConstant):

  • tests/stress/pow-with-never-NaN-exponent.js: Added.

(exponentIsNonNanDouble1):
(exponentIsNonNanDouble2):
(testExponentIsDoubleConstant):

  • tests/test262.yaml:
12:29 AM Changeset in webkit [203498] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[Threaded Compositor] Flickering when zooming in/out in maps.google.com
https://bugs.webkit.org/show_bug.cgi?id=154069

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-21
Reviewed by Carlos Garcia Campos.

Add a new extra buffer to GraphicsContext3D when using the Threaded Compositor,
so it doesn't have to reuse the buffers that are still waiting for composition.

Covered by existing tests.

  • platform/graphics/GraphicsContext3D.h:

Add a new texture to use for the rendering. Remove the compositor fbo we were using.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
Initialize the new texture and remove the previous fbo related code.
(WebCore::GraphicsContext3D::~GraphicsContext3D):
Properly destroy the new texture and remove the previous fbo related code.

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Allocate the new texture and remove the previous fbo allocation.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture):
Use a single fbo with three textures instead of two fbos with a texture each.
Rotate the three textures usage so:

  • m_texture becomes m_compositorTexture to be pushed to the compositor.
  • m_intermediateTexture becomes m_texture to receive the next rendering.
  • m_compositorTexture becomes m_intermediateTexture.

And add a glFlush() to ensure that the gl commands are sent to the pipeline.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Allocate the new texture.

12:25 AM Changeset in webkit [203497] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[GTK][Threaded Compositor] Web view background colors don't work
https://bugs.webkit.org/show_bug.cgi?id=159465

Reviewed by Michael Catanzaro.

Source/WebCore:

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Initialize frame view layer opacity for platforms not
using the tiled cache layer.

Source/WebKit2:

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setDrawsBackground): Set m_drawsBackground in compositing thread and schedule a
layer flush.
(WebKit::ThreadedCompositor::renderLayerTree): Clear the area when not rendering backgrounds.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Notify the compositor.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
12:18 AM Changeset in webkit [203496] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Web view background colors don't work in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=159455

Reviewed by Michael Catanzaro.

Source/WebKit2:

In non AC mode it's the drawing area backing store the one drawing the background, and the web process just
renders into a transparent bitmap. In AC mode we need to make the redirected window pixmap transparent for the
web process to render there, and let the web view fill the background color before rendering the redirected
window pixmap on top. To be able to make the redirected window surface transparent, we need to ensure the parent
window has an RGBA visual, even when setting a fully opaque background, because we still need the web process
to render on the transparent xwindow.

  • UIProcess/API/gtk/WebKitWebView.cpp: Update documentation of webkit_web_view_set_background_color() since now

it's required to set the RGBA visual even for opaque colors in case AC mode is enabled.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewRenderAcceleratedCompositingResults): When a background color has been set, fill it before
rendering the redirected window surface.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Mark the surface as dirty after every damage
event, since the web process has modified it.
(WebKit::RedirectedXCompositeWindow::surface): Initialize the surface after creating it, to avoid flickering and
rendering artifacts when waiting for the first damage event from the web process.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::compositeLayersToContext): Use a fully transparent color to clear the context when the page
is resized or when a view background color has been set.

Tools:

Set always RGBA visual to the view widget when setting a background color.

  • MiniBrowser/gtk/BrowserWindow.c:

(browser_window_set_background_color):

12:04 AM Changeset in webkit [203495] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[GTK] Avoid the redirected window resize when the view is realized in AC mode
https://bugs.webkit.org/show_bug.cgi?id=159463

Reviewed by Michael Catanzaro.

We are always creating the redirected window at 1x1 and then resizing it if we are in AC mode. When the view is
realized and AC mode is already enabled, which happens for example when AC mode is forced, or when the threaded
compositor is enabled, we could just pass the initial size to the redirected window constructor to create the
XWindow at the right size.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseResizeRedirectedWindow): We no longer need to pass the device scale factor, since the
RedirectedXCompositeWindow already knows it.
(webkitWebViewBaseRealize): Pass the WebPageProxy and an initial size to the RedirectedXCompositeWindow
constructor instead of the parent GdkWindow. If AC mode is disabled, the initial size will be empty. With the
WebPageProxy the redirected window has access to the device scale factor and view widget to get the parent
GdkWindow.
(deviceScaleFactorChanged): Resize the redirected window when device scale factor changes.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):
(WebKit::RedirectedXCompositeWindow::surface):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):

  • UIProcess/gtk/RedirectedXCompositeWindow.h:

Jul 20, 2016:

11:51 PM Changeset in webkit [203494] by commit-queue@webkit.org
  • 11 edits
    1 add in trunk

[XHR] Cache response JS object in case of arraybuffer and blob response types
https://bugs.webkit.org/show_bug.cgi?id=128903

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-20
Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing and modified tests.

Making response getter a JS builtin that caches response in @response private slot.
Handling invalidation of cached response with @responseCacheIsValid new private method.
Handling creation of cached response with @retrieveResponse new private method which reuses most of
JSXMLHttpRequest::response previous code.

Caching of responses is activated whenever load ended without any error for blob and arraybuffer response types.

Caching of response for document is also activated in case the response getter is used but not if responseXML getter is used.

  • CMakeLists.txt: Adding XMLHttpRequest.js.
  • DerivedSources.make: Ditto.
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::retrieveResponse): Implements creation of to-be-cached response.
(WebCore::JSXMLHttpRequest::response): Deleted.

  • bindings/js/WebCoreBuiltinNames.h: Adding new private names.
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didCacheResponse): Renamed from didCacheResponseJSON as all response types are now cached.
(WebCore::XMLHttpRequest::didCacheResponseJSON): Deleted.

  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:

LayoutTests:

  • http/tests/xmlhttprequest/onabort-response-getters-expected.txt:
  • http/tests/xmlhttprequest/onabort-response-getters.html:
11:41 PM Changeset in webkit [203493] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] Web Process crash when the page is closed before the web view is realized
https://bugs.webkit.org/show_bug.cgi?id=159918

Reviewed by Michael Catanzaro.

When the web view is unrealized, we send a sync message to the web process to destroy the native surface handle
for compositing, and then we actually destroy the redirected window. But if the page is closed explicitly before
the web view is unrealized, the drawing area proxy is destroyed so that when the web view is unrealized we can't
notify the web process that keeps trying to render to a now deleted window handle. That produces a BadDrawable
X error and the web process crashes.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::pageClosed): Call webkitWebViewBasePageClosed().

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBasePageClosed): If the web view is still realized, destroy the native surface handle and the
redirected window.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add webkitWebViewBasePageClosed().
11:38 PM Changeset in webkit [203492] by fred.wang@free.fr
  • 1 edit
    10 adds in trunk/Websites/webkit.org

Unreviewed, new demo files for an up-coming blog post.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-20

  • demos/mathml/demo2016/LICENSE-amiri.txt: Added.
  • demos/mathml/demo2016/LICENSE-latinmodern-math.txt: Added.
  • demos/mathml/demo2016/LICENSE-libertinusmath.txt: Added.
  • demos/mathml/demo2016/README.txt: Added.
  • demos/mathml/demo2016/amiri-regular.woff: Added.
  • demos/mathml/demo2016/index.html: Added.
  • demos/mathml/demo2016/latinmodern-math.woff: Added.
  • demos/mathml/demo2016/libertinusmath-regular.woff: Added.
  • demos/mathml/demo2016/webfonts.css: Added.

(@namespace url('http://www.w3.org/1999/xhtml');):
(@font-face):
(m|math, m|mtext):
(m|math.libertinus):
(m|math.arabic):

11:23 PM Changeset in webkit [203491] by fpizlo@apple.com
  • 14 edits
    14 adds in trunk

Switching on symbols should be fast
https://bugs.webkit.org/show_bug.cgi?id=158892

Reviewed by Keith Miller.
Source/JavaScriptCore:


This does two things: fixes some goofs in our lowering of symbol equality and adds a new phase
to B3 to infer switch statements from linear chains of branches.

This changes how we compile equality to Symbols to constant-fold the load of the Symbol's UID.
This is necessary for making switches on Symbols inferrable. This also gives us the ability to
efficiently compile strict equality comparisons of SymbolUse and UntypedUse.

This adds a new phase to B3, which finds chains of branches that test for (in)equality on the
same value and constants, and turns them into a Switch. This can turn O(n) code into
O(log n) code, or even O(1) code if the switch cases are dense.

This can make a big difference in JS. Say you write a switch in which the case statements are
variable resolutions. The bytecode generator cannot use a bytecode switch in this case, since
we're required to evaluate the resolutions in order. But in DFG IR, we will often turn those
variable resolutions into constants, since we do that for any immutable singleton. This means
that B3 will see a chain of Branches: the else case of one Branch will point to a basic block
that does nothing but Branch on equality on the same value as the first Branch.

The inference algorithm is quite simple. The basic building block is the ability to summarize
a block's switch behavior. For a block that ends in a switch, this is just the collection of
switch cases. For a block that ends in a branch, we recognize Branch(Equal(value, const)),
Branch(NotEqual(value, const)), and Branch(value). Each of these are summarized as if they
were one-case switches. We infer a new switch if both some block and its sole predecessor
can be described as switches on the same value, nothing shady is going on (like loops), and
the block in question does no work other than this switch. In that case, the block is killed
and its cases (which we get from the summary) are added to the predecessor's switch. This
algorithm runs to fixpoint.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3InferSwitches.cpp: Added.

(JSC::B3::inferSwitches):

  • b3/B3InferSwitches.h: Added.
  • b3/B3Procedure.h:

(JSC::B3::Procedure::cfg):

  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::performSubstitution):
(JSC::B3::Value::isFree):
(JSC::B3::Value::dumpMeta):

  • b3/B3Value.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::lowSymbol):
(JSC::FTL::DFG::LowerDFGToB3::lowSymbolUID):
(JSC::FTL::DFG::LowerDFGToB3::lowNonNullObject):

LayoutTests:

  • js/regress/bigswitch-indirect-expected.txt: Added.
  • js/regress/bigswitch-indirect-symbol-expected.txt: Added.
  • js/regress/bigswitch-indirect-symbol-or-undefined-expected.txt: Added.
  • js/regress/bigswitch-indirect-symbol-or-undefined.html: Added.
  • js/regress/bigswitch-indirect-symbol.html: Added.
  • js/regress/bigswitch-indirect.html: Added.
  • js/regress/implicit-bigswitch-indirect-symbol-expected.txt: Added.
  • js/regress/implicit-bigswitch-indirect-symbol.html: Added.
  • js/regress/script-tests/bigswitch-indirect-symbol-or-undefined.js: Added.

(foo):

  • js/regress/script-tests/bigswitch-indirect-symbol.js: Added.

(foo):

  • js/regress/script-tests/bigswitch-indirect.js: Added.

(foo):

  • js/regress/script-tests/implicit-bigswitch-indirect-symbol.js: Added.

(foo):

11:12 PM Changeset in webkit [203490] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Remove crossOriginRequestPolicy from ThreadableLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159417

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-20
Reviewed by Alex Christensen.

No observable change.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Ditto.
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): UseAccessControl -> FetchOptions::Mode::Cors.
(WebCore::DocumentThreadableLoader::redirectReceived): Ditto.
(WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
(WebCore::DocumentThreadableLoader::loadRequest): Use NoCors as option passed to ResourceLoader. This allows
desactivating ResourceLoader CORS checks as they are done in DocumentThreadableLoader right now. In the future,
these checks should be moved to ResourceLoader and DocumentThreadableLoader should directly pass the fetch mode
option.
(WebCore::DocumentThreadableLoader::isAllowedRedirect): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Removing CrossOriginRequestPolicy.

  • loader/ThreadableLoader.h: Ditto.
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions): Ditto.

  • page/EventSource.cpp:

(WebCore::EventSource::connect): UseAccessControl -> FetchOptions::Mode::Cors.

  • workers/Worker.cpp:

(WebCore::Worker::create): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • workers/WorkerScriptLoader.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

11:09 PM Changeset in webkit [203489] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Bots should run built-ins generator tests
https://bugs.webkit.org/show_bug.cgi?id=159971

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-20
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunBuiltinsTests): New step to run built-in generator tests.
(TestFactory.init): Adding an additional step for bultin generator tests.

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Rebasing expectations.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Adding additional step for proper display.
10:24 PM Changeset in webkit [203488] by fpizlo@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

FTL snippet generators should be able to request a different register for output and input
https://bugs.webkit.org/show_bug.cgi?id=160010
rdar://problem/27439330

Reviewed by Saam Barati.

The BitOr and BitXor snippet generators have problems if the register for the right input is
the same as the register for the result. We could fix those generators, but I'm not convinced
that the other snippet generators don't have this bug. So, the approach that this patch takes
is to teach the FTL to request that B3 to use a different register for the result than for
any input to the snippet patchpoint.

Air already has the ability to let any instruction do an EarlyDef, which means exactly this.
But B3 did not expose this via ValueRep. This patch exposes this in ValueRep as
SomeEarlyRegister. That's most of the change.

This adds a testb3 test for SomeEarlyRegister and a regression test for this particular
problem. The regression test failed on trunk JSC before this.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::admitsStack):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):

  • b3/B3Validate.cpp:
  • b3/B3ValueRep.cpp:

(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::dump):
(WTF::printInternal):

  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::ValueRep):
(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::isAny):
(JSC::B3::ValueRep::isReg):
(JSC::B3::ValueRep::isSomeRegister): Deleted.

  • b3/testb3.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):

  • tests/stress/ftl-bit-xor-right-result-interference.js: Added.
8:30 PM Changeset in webkit [203487] by Chris Dumez
  • 5 edits
    2 adds in trunk

Fix null handling of several Document attributes
https://bugs.webkit.org/show_bug.cgi?id=159997

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix null handling of the following Document attributes: title, cookie
and domain.

In WebKit, they were all marked as [TreatNullAs=EmptyString], which
does not match the specification:

Details for each attribute:

  • title: null is now treated as the string "null", thus setting the document title to "null". This matches Firefox and Chrome.
  • cookie: adds a "null" cookie instead of being a no-op. This matches

both Firefox and Chrome.

  • domain: Calls setDomain(String("null")) instead of

setDomain(String()). This throws an exception because "null"
is not a suffix of the effective domain name. The behavior
is the same in Firefox and Chrome. Previously, we were
already throwing an exception since setting the domain to
the empty string throws, as per the specification.

Test: http/testsdom/document-attributes-null-handling.html

  • dom/Document.idl:

LayoutTests:

Add test coverage.

  • http/tests/dom/document-attributes-null-handling-expected.txt: Added.
  • http/tests/dom/document-attributes-null-handling.html: Added.
  • fast/dom/document-attribute-js-null-expected.txt:
  • fast/dom/document-attribute-js-null.html:
8:25 PM Changeset in webkit [203486] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Perf dashboard always re-generate measurement set JSON
https://bugs.webkit.org/show_bug.cgi?id=159951

Reviewed by Chris Dumez.

The bug was caused by manifest.json reporting the last modified date of a measurement set in floating point,
and a measurement set JSON reporting it as an integer. Fixed the bug by always using an integer.

  • public/api/measurement-set.php:

(main): Return 404 when the results is empty.
(MeasurementSetFetcher::execute_query): Use "extract(epoch from commit_time)" like ManifestGenerator to improve
the generation speed. This is ~10% runtime improvement.
(MeasurementSetFetcher::format_map): Updated to reflect the above change.
(MeasurementSetFetcher::parse_revisions_array): Ditto.

  • public/include/manifest.php:

(ManifestGenerator::platforms): Fixed the bug by coercing lastModified to integer (instead of float).

  • server-tests/api-measurement-set-tests.js: Added a test case for returning empty results, and a test case for

making sure lastModified dates in manifest.json and measurement sets match.

  • tools/js/remote.js:

(RemoteAPI.prototype.sendHttpRequest): Reject the promise when HTTP status code is not 200.

7:09 PM Changeset in webkit [203485] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Revert temporary fix r203417
https://bugs.webkit.org/show_bug.cgi?id=160001

Reviewed by Alexey Proskuryakov.

  • EWSTools/start-queue-mac.sh: Revert the temporary fix.
5:45 PM Changeset in webkit [203484] by commit-queue@webkit.org
  • 23 edits
    2 adds in trunk

Unreviewed, rolling out r203471.
https://bugs.webkit.org/show_bug.cgi?id=160003

many iOS-simulator tests are failing (Requested by litherum on
#webkit).

Reverted changeset:

"[iPhone] Playing a video on tudou.com plays only sound, no
video"
https://bugs.webkit.org/show_bug.cgi?id=159967
http://trac.webkit.org/changeset/203471

5:36 PM Changeset in webkit [203483] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r203189): Webpage snapshots are partially or fully blank when edge swiping back
https://bugs.webkit.org/show_bug.cgi?id=160000
rdar://problem/27455589

Reviewed by Zalan Bujtas.

r203189 triggered a call to -_updateContentRectsWithState: in the middle of a swipe,
during which we'd compute the visible rect of the view as having zero width, causing us
to not create tiles.

-_navigationGestureDidBegin already snapshots the visibleContentRect in _frozenVisibleContentRect,
but -_visibleContentRect then clipped that with ancestor views, causing the issue.

Fix by having -_visibleContentRect just return _frozenVisibleContentRect if we have one.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _visibleContentRect]):

5:23 PM Changeset in webkit [203482] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

iOS: Cannot paste images in RTF content
https://bugs.webkit.org/show_bug.cgi?id=159964
<rdar://problem/27442806>

Reviewed by Enrica Casucci.

The bug was caused by setDefersLoading(true) not deferring image loading for the parsed fragment.
Worked around this bug by disabling image loading while parsing the document fragment.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::createFragmentAndAddResources):

5:15 PM Changeset in webkit [203481] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Address a small FIXME in IDB code.
https://bugs.webkit.org/show_bug.cgi?id=159999

Reviewed by Andy Estes.

No new tests (No behavior change).

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier): Deleted.

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
4:28 PM Changeset in webkit [203480] by beidson@apple.com
  • 7 edits in trunk/Source/WebCore

Remove some "modernFoo"s from IndexedDB code.
https://bugs.webkit.org/show_bug.cgi?id=159985

Reviewed by Andy Estes.

No new tests (No known behavior change).

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted):
(WebCore::IDBCursor::effectiveObjectStore):
(WebCore::IDBCursor::transaction):
(WebCore::IDBCursor::direction):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::hasPendingActivity):
(WebCore::IDBIndex::name):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPath):
(WebCore::IDBIndex::unique):
(WebCore::IDBIndex::multiEntry):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::markAsDeleted):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::deleteFunction): Deleted.
(WebCore::IDBObjectStore::modernDelete): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • bindings/js/JSIDBIndexCustom.cpp:

(WebCore::JSIDBIndex::visitAdditionalChildren):

4:28 PM Changeset in webkit [203479] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

REGRESSION(r148588): ews classes might get garbage collected
https://bugs.webkit.org/show_bug.cgi?id=159990

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/tool/commands/init.py: Store the loaded ews classes

in a variable so that they do not get garbage collected.

4:24 PM Changeset in webkit [203478] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Tools

Add API test for layout constraints after exit fullscreen
https://bugs.webkit.org/show_bug.cgi?id=159900

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-20
Reviewed by Jon Lee.

Added Fullscreen.LaytoutConstraints API test.
Tests fix from https://bugs.webkit.org/show_bug.cgi?id=159731

This test compares layout constraints on the web view before and after fullscreen to make sure
they are preserved.

  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.mm: Added.

(-[FullscreenStateChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

4:23 PM Changeset in webkit [203477] by Ryan Haddad
  • 2 edits in trunk/Tools

Disable two failing API tests.

Unreviewed test gardening.

  • TestWebKitAPI/Tests/mac/CandidateTests.mm:

(TestWebKitAPI::TEST):

4:14 PM Changeset in webkit [203476] by jiewen_tan@apple.com
  • 5 edits
    2 adds in trunk/LayoutTests

Fix timeout of imported/w3c/WebCryptoAPI/idlharness.html
https://bugs.webkit.org/show_bug.cgi?id=159979

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Add missing resources.

  • WebCryptoAPI/idlharness-expected.txt:
  • WebCryptoAPI/idlharness.html:
  • resources/WebIDLParser.js: Added.

(tokenise):
(WebIDLParseError):
(WebIDLParseError.prototype.toString):
(error):
(consume):
(ws):
(all_ws):
(integer_type):
(float_type):
(primitive_type):
(const_value):
(type_suffix):
(single_type):
(union_type):
(type):
(argument):
(argument_list):
(type_pair):
(simple_extended_attr):
(extended_attrs):
(default_):
(const_):
(inheritance):
(operation_rest):
(callback):
(attribute):
(return_type):
(operation):
(identifiers):
(serialiser):
(iterable_type):
(readonly_iterable_type):
(iterable):
(interface_):
(partial):
(dictionary):
(exception):
(enum_):
(parse):

  • resources/idlharness.js: Added.

(constValue):
(minOverloadLength):
(throwOrReject):
(awaitNCallbacks):
(return.fround):
(fround):
(self.IdlArray):
(IdlArray.prototype.add_idls):
(IdlArray.prototype.add_untested_idls):
(IdlArray.prototype.internal_add_idls):
(IdlArray.prototype.add_objects):
(IdlArray.prototype.prevent_multiple_testing):
(IdlArray.prototype.recursively_get_implements):
(exposed_in):
(IdlArray.prototype.test):
(IdlArray.prototype.assert_type_is):
(IdlObject):
(IdlObject.prototype.test):
(IdlObject.prototype.has_extended_attribute):
(IdlInterface):
(IdlInterface.prototype.is_callback):
(IdlInterface.prototype.has_constants):
(IdlInterface.prototype.is_global):
(IdlInterface.prototype.test):
(IdlInterface.prototype.test_self):
(IdlInterface.prototype.test_member_const):
(IdlInterface.prototype.test_member_attribute):
(IdlInterface.prototype.test_member_operation):
(IdlInterface.prototype.do_member_operation_asserts):
(IdlInterface.prototype.test_member_stringifier):
(IdlInterface.prototype.test_members):
(IdlInterface.prototype.test_object):
(IdlInterface.prototype.test_primary_interface_of):
(IdlInterface.prototype.test_interface_of):
(IdlInterface.prototype.has_stringifier):
(IdlInterface.prototype.do_interface_attribute_asserts):
(IdlInterfaceMember):
(create_suitable_object):
(IdlEnum):
(IdlTypedef):

LayoutTests:

Remove the skip tuple of the test.

4:07 PM Changeset in webkit [203475] by Chris Dumez
  • 3 edits
    2 adds in trunk

Stop using valueToStringWithNullCheck() in JSCSSStyleDeclaration::putDelegate()
https://bugs.webkit.org/show_bug.cgi?id=159982

Reviewed by Ryosuke Niwa.

Source/WebCore:

valueToStringWithNullCheck() treats null as the null String() which is
legacy / non standard behavior. The specification says we should treat
null as the empty string:

Therefore, we should be using valueToStringTreatingNullAsEmptyString() instead.

In practice, there is no web-exposed behavior change because
MutableStyleProperties::setProperty() removes the property wether the
value is the null String or the empty String.

This behavior is correct since the specification says that we should
remove the property if the value is the empty string:

I added test coverage to make sure we behave according to specification.
This test is passing in Firefox, Chrome and in WebKit (before and after
my change).

Test: fast/css/CSSStyleDeclaration-property-setter.html

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):

LayoutTests:

Add layout test coverage for JSCSSStyleDeclaration::putDelegate(),
covering cases like setting to null or the empty String, to make
sure we behave according to specification.

  • fast/css/CSSStyleDeclaration-property-setter-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-property-setter.html: Added.
4:06 PM Changeset in webkit [203474] by Chris Dumez
  • 7 edits in trunk

Fix null handling of HTMLFrameElement.marginWidth / marginHeight
https://bugs.webkit.org/show_bug.cgi?id=159987

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:

Source/WebCore:

Fix null handling of HTMLFrameElement.marginWidth / marginHeight:

We are supposed to treat null as the empty string but we treat it as
the string "null".

Firefox and Chrome both match the specification.

No new tests, updated existing tests.

  • html/HTMLFrameElement.idl:

LayoutTests:

Update existing test to reflect the expected behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
3:56 PM Changeset in webkit [203473] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Pausing autoplayed media should not remove all restrictions for that media element
https://bugs.webkit.org/show_bug.cgi?id=159988

Reviewed by Jon Lee.

Localizes the removal of behavior restrictions introduced in r203464 upon pausing an
autoplaying video to just affect the hiding or showing of the media controller. This
prevents pages from using Javascript to start playing autoplaying videos that have
been paused by the user.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pause):

3:45 PM Changeset in webkit [203472] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge follow-up patch for rdar://problem/27360961.

3:41 PM Changeset in webkit [203471] by mmaxfield@apple.com
  • 23 edits
    2 deletes in trunk

[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>

Reviewed by Jon Lee.

Source/WebCore:

WebKit recently starting honoring the playsinline and webkit-playsinline
attribute on iPhones. However, because these attributes previously did
nothing, some sites (such as Todou) were setting them on their content
and expecting that they are not honored. In this specific case, the
video is absolutely positioned to be 1 pixel x 1 pixel.

Previously, with iOS 9, apps could set the allowsInlineMediaPlayback
property on their WKWebView, which would honor the webkit-playsinline
attribute. Safari on iPhones didn't do this.

In order to not break these existing apps, it's important that the
allowsInlineMediaPlayback preference still allows webkit-playsinline
videos to play inline in apps using WKWebView. However, in Safari, these
videos should play fullscreen. (Todou videos have webkit-playsinline
but not playsinline.)

Therefore, in Safari, videos with playsinline should be inline, but
videos with webkit-playsinline should be fullscreen. In apps using
WKWebViews, if the app sets allowsInlineMediaPlayback, then videos with
playsinline should be inline, and videos with webkit-playsinline should
also be inline. Videos on iPad and Mac should all be inline by default.

We can create some truth tables for the cases which need to be covered:

All apps on Mac / iPad:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Inline
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

Safari on iPhone:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Fullscreen
Present | Present | Inline

App on iPhone which sets allowsInlineMediaPlayback:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

The way to distinguish Safari from another app is to create an SPI
boolean preference which Safari can set. This is already how the
iPhone and iPad are differentiated using the requiresPlayInlineAttribute
which Safari sets but other apps don't. However, this preference is
no longer sufficient because Safari should now be discriminating
between the playsinline and webkit-playsinline attributes. Therefore,
this preference should be extended to two boolean preferences, which
this patch adds:

allowsInlineMediaPlaybackWithPlaysInlineAttribute
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute

Safari on iPhone will set
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to true,
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to
false. Other apps on iPhone will get their defaults values (because they
are SPI) which means they will both be true. On iPad and Mac, apps will
use the defaults values where both are false.

This patch adds support for these two preferences, but does not remove
the existing inlineMediaPlaybackRequiresPlaysInlineAttribute preference.
I will remove the exising preference as soon as I update Safari to migrate
off of it.

Test: media/video-playsinline.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Add the two preferences to WebPreferences.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • media/video-playsinline.html: Updated.
  • media/video-webkit-playsinline-expected.txt: Removed.
  • media/video-webkit-playsinline.html: Removed.
3:03 PM Changeset in webkit [203470] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Get rid of custom bindings code for XMLHttpRequest.open()
https://bugs.webkit.org/show_bug.cgi?id=159984

Reviewed by Ryosuke Niwa.

Get rid of custom bindings code for XMLHttpRequest.open() as the
bindings generator is able to generate it.

Relevant specification:

The issue is that legacy content prevents treating the 'async' argument
being undefined identical from it being omitted. However, this can be
achieved by using overloading in IDL, like in the specification.

No new tests, already covered by the following tests:

  • http/tests/xmlhttprequest/basic-auth.html
  • http/tests/xmlhttprequest/open-async-overload.html
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::SendFunctor::SendFunctor): Deleted.
(WebCore::SendFunctor::line): Deleted.
(WebCore::SendFunctor::column): Deleted.
(WebCore::SendFunctor::url): Deleted.
(WebCore::SendFunctor::operator()): Deleted.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):

  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:
2:21 PM Changeset in webkit [203469] by commit-queue@webkit.org
  • 83 edits in trunk/Source/WebCore

Mark overriden methods in WebCore/svg final classes as final
https://bugs.webkit.org/show_bug.cgi?id=159966

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-20
Reviewed by Michael Catanzaro.

Update WebCore/svg classes so that overriden methods in final classes are marked final.

  • svg/SVGAElement.h:
  • svg/SVGAltGlyphDefElement.h:
  • svg/SVGAltGlyphItemElement.h:
  • svg/SVGAnimateTransformElement.h:
  • svg/SVGAnimatedColor.h:
  • svg/SVGCircleElement.h:
  • svg/SVGClipPathElement.h:
  • svg/SVGCursorElement.h:
  • svg/SVGDefsElement.h:
  • svg/SVGDescElement.h:
  • svg/SVGEllipseElement.h:
  • svg/SVGFEMergeNodeElement.h:
  • svg/SVGFilterElement.h:
  • svg/SVGFontElement.h:
  • svg/SVGFontFaceElement.h:
  • svg/SVGFontFaceFormatElement.h:
  • svg/SVGFontFaceNameElement.h:
  • svg/SVGFontFaceSrcElement.h:
  • svg/SVGFontFaceUriElement.h:
  • svg/SVGForeignObjectElement.h:
  • svg/SVGGElement.h:
  • svg/SVGGlyphElement.h:
  • svg/SVGGlyphRefElement.h:
  • svg/SVGHKernElement.h:
  • svg/SVGImageElement.h:
  • svg/SVGLineElement.h:
  • svg/SVGMPathElement.h:
  • svg/SVGMaskElement.h:
  • svg/SVGMetadataElement.h:
  • svg/SVGMissingGlyphElement.h:
  • svg/SVGPathBuilder.h:
  • svg/SVGPathByteStreamBuilder.h:
  • svg/SVGPathByteStreamSource.h:
  • svg/SVGPathElement.h:
  • svg/SVGPathSegArcAbs.h:
  • svg/SVGPathSegArcRel.h:
  • svg/SVGPathSegClosePath.h:
  • svg/SVGPathSegCurvetoCubicAbs.h:
  • svg/SVGPathSegCurvetoCubicRel.h:
  • svg/SVGPathSegCurvetoCubicSmoothAbs.h:
  • svg/SVGPathSegCurvetoCubicSmoothRel.h:
  • svg/SVGPathSegCurvetoQuadraticAbs.h:
  • svg/SVGPathSegCurvetoQuadraticRel.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
  • svg/SVGPathSegLinetoAbs.h:
  • svg/SVGPathSegLinetoHorizontalAbs.h:
  • svg/SVGPathSegLinetoHorizontalRel.h:
  • svg/SVGPathSegLinetoRel.h:
  • svg/SVGPathSegLinetoVerticalAbs.h:
  • svg/SVGPathSegLinetoVerticalRel.h:
  • svg/SVGPathSegListBuilder.h:
  • svg/SVGPathSegListSource.h:
  • svg/SVGPathSegMovetoAbs.h:
  • svg/SVGPathSegMovetoRel.h:
  • svg/SVGPathStringSource.h:
  • svg/SVGPathTraversalStateBuilder.h:
  • svg/SVGPatternElement.h:
  • svg/SVGRectElement.h:
  • svg/SVGScriptElement.h:
  • svg/SVGStopElement.h:
  • svg/SVGStyleElement.h:
  • svg/SVGSwitchElement.h:
  • svg/SVGTRefElement.cpp:
  • svg/SVGTitleElement.h:
  • svg/SVGToOTFFontConversion.cpp:
  • svg/SVGUnknownElement.h:
  • svg/SVGVKernElement.h:
  • svg/SVGViewElement.h:
  • svg/SVGZoomEvent.h:
  • svg/animation/SVGSMILElement.cpp:
  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageClients.h:
  • svg/graphics/SVGImageForContainer.h:
  • svg/graphics/filters/SVGFEImage.h:
  • svg/graphics/filters/SVGFilter.h:
  • svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
  • svg/properties/SVGAnimatedPropertyTearOff.h:
  • svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
  • svg/properties/SVGMatrixTearOff.h:
  • svg/properties/SVGPathSegListPropertyTearOff.h:
1:28 PM Changeset in webkit [203468] by Wenson Hsieh
  • 2 edits in trunk/Tools

Fix the build after 41dade3

1:03 PM Changeset in webkit [203467] by ChangSeok Oh
  • 2 edits in trunk/Source/WebKit2

Fix a linking failure caused by NetworkCache::Data::~Data()
https://bugs.webkit.org/show_bug.cgi?id=159931

Linking is failed with clang 3.6. It says WebKit::NetworkCache::Data::~Data is undefined.
It is fixed by adding a destructor for NetworkCache::Data.

Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheData.h:

(WebKit::NetworkCache::Data::~Data):

1:00 PM Changeset in webkit [203466] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Remove unnecessary if check from ParkingLot.cpp
https://bugs.webkit.org/show_bug.cgi?id=159961

Patch by Rajeev Misra <rajeevmisraforapple@gmail.com> on 2016-07-20
Reviewed by Alex Christensen.

A good practice is to have as less conditional statement
or special cases as possible in code. This change
simply removes a unnecessary "if" statement for
condition which was already evaluated by switch/case
and thus there was no need to evaluate again.

  • wtf/ParkingLot.cpp:
12:42 PM Changeset in webkit [203465] by beidson@apple.com
  • 19 edits in trunk/Source/WebCore

Transition most IDB interfaces from ScriptExecutionContext to ExecState.
https://bugs.webkit.org/show_bug.cgi?id=159975

Reviewed by Alex Christensen.

No new tests (No known behavior change).

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::doGetKey):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::only): Deleted.

  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):

  • Modules/indexeddb/IDBTransaction.h:
  • inspector/InspectorIndexedDBAgent.cpp:
12:25 PM Changeset in webkit [203464] by Wenson Hsieh
  • 5 edits
    1 add in trunk

Media controls don't appear when pausing a small autoplaying video
https://bugs.webkit.org/show_bug.cgi?id=159972
<rdar://problem/27180657>

Reviewed by Beth Dakin.

Source/WebCore:

When pausing an autoplaying video, remove behavior restrictions for the
initial user gesture and show media controls.

New WebKit API test. See VideoControlsManagerSingleSmallAutoplayingVideo.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pause):

Tools:

Adds a new test that verifies media controls show up when pausing a small autoplayed video. Also adds mechanisms
for simulating basic user interaction in VideoControlsManager.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[WKWebView mouseDownAtPoint:]):
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]):
(-[OnLoadMessageHandler initWithWKWebView:handler:]):
(-[OnLoadMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/autoplaying-video-with-audio.html: Added.
12:21 PM Changeset in webkit [203463] by Chris Dumez
  • 7 edits in trunk

Fix null handling of HTMLMediaElement.mediaGroup
https://bugs.webkit.org/show_bug.cgi?id=159974

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling of HTMLMediaElement.mediaGroup to match the specification:

null is supposed to be treated as the String "null". This patch aligns
our behavior with the specification. I tested Firefox and Chrome but both
do not have this attribute on HTMLMediaElement.

Also remove support for [TreatNullAs=LegacyNullString] from our bindings
generator as HTMLMediaElement.mediaGroup was the last user.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):

  • bindings/scripts/IDLAttributes.txt:
  • html/HTMLMediaElement.idl:
11:59 AM Changeset in webkit [203462] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Explain the default value of WKWebViewConfiguration's ignoresViewportScaleLimits
https://bugs.webkit.org/show_bug.cgi?id=159978
<rdar://problem/27453189>

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:

This defaults to NO.

11:10 AM Changeset in webkit [203461] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 9

Added a tag for Safari Technology Preview release 9.

11:01 AM Changeset in webkit [203460] by Chris Dumez
  • 4 edits
    2 adds in trunk

CSSStyleDeclaration.setProperty() should be able to unset "important" on a property
https://bugs.webkit.org/show_bug.cgi?id=159959

Reviewed by Alexey Proskuryakov.

Source/WebCore:

CSSStyleDeclaration.setProperty() should be able to unsert "important"
on a property as per the latest specification:

Firefox and Chrome match the specification here but WebKit was ignoring calls
to setProperty() if there is already an "important" property wit this name
and if the new property does not have the "important" flag set.

This behavior was added a long time ago via Bug 60007. However, it does not
match the latest specification or other browsers.

Test: fast/css/CSSStyleDeclaration-setProperty-unset-important.html

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::addParsedProperty):
Drop code that was added via Bug 60007 as this behavior no longer matches the
specification or other browsers. The layout test added in Bug 60007 fails in
other browsers and was updated in this patch to match the specification.

LayoutTests:

  • fast/css/CSSStyleDeclaration-setProperty-unset-important-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-setProperty-unset-important.html: Added.

Add layout test coverage.

  • fast/css/important-js-override.html:

The test covered our 'wrong' behavior and was failing in Firefox / Chrome.
I updated the test to match the behavior in the specification. The test
now passed in Chrome and Firefox.

10:55 AM Changeset in webkit [203459] by Ryan Haddad
  • 13 edits
    2 deletes in trunk

Unreviewed, rolling out r203423.
https://bugs.webkit.org/show_bug.cgi?id=159977

The test for this change is failing on Mac Release WK2
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"HTMLVideoElement frames do not update on iOS when src is a
MediaStream blob"
https://bugs.webkit.org/show_bug.cgi?id=159833
http://trac.webkit.org/changeset/203423

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-20

10:54 AM Changeset in webkit [203458] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27434307.

  • platform/mac/TestExpectations:
10:18 AM Changeset in webkit [203457] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] MathML fonts are not found.
https://bugs.webkit.org/show_bug.cgi?id=159920

Reviewed by Alex Christensen.

When looking up a font in the registry, use the /v option of the Windows 'reg query' command to query
for a specific registry key value.

  • Scripts/webkitdirs.pm:

(fontExists):

9:44 AM WebKitGTK/2.12.x edited by clopez@igalia.com
(diff)
9:37 AM Changeset in webkit [203456] by Chris Dumez
  • 4 edits
    2 adds in trunk

Fix null handling of HTMLSelectElement.value attribute
https://bugs.webkit.org/show_bug.cgi?id=159925

Reviewed by Benjamin Poulain.

Source/WebCore:

Fix null handling of HTMLSelectElement.value attribute:

We were treating null as the null String which would end up setting
selectedIndex to -1. However, we should treat null as the String "null"
which would set the selectedIndex to the index of the <option> element
whose value is "null".

Firefox and Chrome match the specification.

Test: fast/dom/HTMLSelectElement/value-null-handling.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setValue):

  • html/HTMLSelectElement.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.

  • fast/dom/HTMLSelectElement/value-null-handling-expected.txt: Added.
  • fast/dom/HTMLSelectElement/value-null-handling.html: Added.
8:50 AM Changeset in webkit [203455] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Consolidating duplicate TestExpectations for fast/images/animated-png.html.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:41 AM Changeset in webkit [203454] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pausing when Debugger tab is closed opens tab in wrong state
https://bugs.webkit.org/show_bug.cgi?id=159946
<rdar://problem/27429886>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-20
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
At the end of construction, update the UI to match the current state
of the world. Such as updating the UI if we are paused, or if the
Timeline is capturing and we are temporarily disabling breakpoints.

8:40 AM Changeset in webkit [203453] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Improve prepare-ChangeLog for @media blocks
https://bugs.webkit.org/show_bug.cgi?id=159907

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-20
Reviewed by Timothy Hatcher.

  • Scripts/prepare-ChangeLog:

(get_selector_line_ranges_for_css):
Get a range for @media blocks just like a selector.

Start Line = line with '{'
End line = line with '}'
Name = "@media ..."

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt:

Improved error messages for unbalanced portions.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css:

(.media-query::before):
(@media only screen and (max-width: 980px)):
(.media-query a):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.both a):
(.both b):
(.media-query b):
(.media-query::after):

7:50 AM Changeset in webkit [203452] by msaboff@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

CrashOnOverflow in JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets
https://bugs.webkit.org/show_bug.cgi?id=159954

Reviewed by Benjamin Poulain.

YarrPatternConstructor::setupAlternativeOffsets() is using the checked arithmetic class
Checked<>, for offset calculations. However the default use will just crash on
overflow. Instead we should stop processing and propagate the error up the call stack.

Consolidated explicit error string with the common RegExp parsing error logic.
Moved that logic to YarrPattern as that seems like a better common place to put it.

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • tests/stress/regress-159954.js: New test.
  • yarr/YarrParser.h:

(JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
(JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::isIdentityEscapeAnError):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseCharacterClass):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parseParenthesesEnd):
(JSC::Yarr::Parser::parseQuantifier):
(JSC::Yarr::Parser::parseTokens):
(JSC::Yarr::Parser::parse):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::disjunction):
(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
(JSC::Yarr::YarrPatternConstructor::setupOffsets):
(JSC::Yarr::YarrPattern::errorMessage):
(JSC::Yarr::YarrPattern::compile):

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::reset):

6:07 AM Changeset in webkit [203451] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Linux] MemoryPressureMonitor fallback code to get memory available in older linux kernels doesn't work
https://bugs.webkit.org/show_bug.cgi?id=159970

Reviewed by Antonio Gomes.

We are failing to detect zones when parsing /proc/zoneinfo.

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::lowWatermarkPages): Use strncmp since we want to know whether the line starts with "Node".
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor): Stop the polling if we fail to get the memory available,
because that means it's not sopported in the system for whatever reason.

6:02 AM Changeset in webkit [203450] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender is alive
https://bugs.webkit.org/show_bug.cgi?id=159962
<rdar://problem/21439264>

Reviewed by David Kilzer.

PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender
is alive. We have both PostResolutionCallbackDisabler and ResourceLoadSuspender that
call LoaderStrategy::suspendPendingRequests() / LoaderStrategy::resumePendingRequests().
However, PostResolutionCallbackDisabler and ResourceLoadSuspender are not aware of each
other. It is therefore possible for a PostResolutionCallbackDisabler object to get
destroyed, causing LoaderStrategy::resumePendingRequests() to be called while a
ResourceLoadSuspender object is alive.

This leads to hard to investigate crashes where we end up re-entering WebKit and killing
the style resolver.

This patch drops ResourceLoadSuspender and uses PostResolutionCallbackDisabler instead.
There was only one user of ResourceLoadSuspender and PostResolutionCallbackDisabler
is better because it manages a resolutionNestingDepth counter internally to make sure
it only calls LoaderStrategy::resumePendingRequests() once all
PostResolutionCallbackDisabler instances are destroyed.

No new tests, there is no easy way to reproduce the crashes.

  • dom/Document.cpp:

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • loader/LoaderStrategy.cpp:

(WebCore::ResourceLoadSuspender::ResourceLoadSuspender): Deleted.
(WebCore::ResourceLoadSuspender::~ResourceLoadSuspender): Deleted.

  • loader/LoaderStrategy.h:
5:17 AM Changeset in webkit [203449] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] Web Process crash when the layer tree host is destroyed
https://bugs.webkit.org/show_bug.cgi?id=159922

Reviewed by Sergio Villar Senin.

It happens when the layer tree host is destroyed after the didChangeVisibleRect is scheduled to be run in the
main thread, but before it's actually dispatched. In that case the threaded compositor client points to a
deleted object and crashes when trying to dereference it.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::~ThreadedCompositor): Add an assert to ensure invalidate is always called before
the object is deleted.
(WebKit::ThreadedCompositor::invalidate): Terminate the compositing thread and nullify the client.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Return early if the client is null when the task is
dispatched in the main thread.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Add invalidate().
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Invalidate the ThreadedCompositor and chain up.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
3:55 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:50 AM Changeset in webkit [203448] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Fix expectedFailErrorHandler in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=159811

Reviewed by Yusuke Suzuki.

  • Scripts/run-jsc-stress-tests:
1:49 AM Changeset in webkit [203447] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Unreviewed Mac cmake buildfix after r203426. Just for fun.

  • TestWebKitAPI/PlatformMac.cmake:
12:30 AM Changeset in webkit [203446] by Csaba Osztrogonác
  • 2 edits in trunk

JSC JIT Broken on ARMv7 Traditional (without Thumb2)
https://bugs.webkit.org/show_bug.cgi?id=159880

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsCommon.cmake: Use the BFD linker on ARM traditional because of a gold linker bug.

Jul 19, 2016:

11:23 PM Changeset in webkit [203445] by commit-queue@webkit.org
  • 10 edits
    1 copy in trunk/Source/WebCore

[Fetch API] Add a JS builtin to implement https://fetch.spec.whatwg.org/#concept-headers-fill
https://bugs.webkit.org/show_bug.cgi?id=159932

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Alex Christensen.

Covered by existing tests.

Refactoring Headers initializeWith to use the new built-in internal that implements
https://fetch.spec.whatwg.org/#concept-headers-fill.

Refactoring Response constructor to put more checks in the JS builtin fucntion called within constructor.
Making use of the new built-in internal that implements https://fetch.spec.whatwg.org/#concept-headers-fill.

  • CMakeLists.txt: Adding FetchHeadersInternals.js
  • DerivedSources.make: Ditto.
  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders): Using fillFetchHeaders new built-in internal.

  • Modules/fetch/FetchInternals.js: Added.

(fillFetchHeaders):

  • Modules/fetch/FetchResponse.cpp: Refactoring to do more in the JS built-in. Splitting of initializeWith so

that the checks are done in the order defined by the spec.
(WebCore::FetchResponse::setStatus):
(WebCore::FetchResponse::initializeWith):
(WebCore::isNullBodyStatus): Deleted.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse): New built-in internal.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
10:13 PM Changeset in webkit [203444] by Chris Dumez
  • 5 edits in trunk

Fix null handling of SVGScriptElement.type attribute
https://bugs.webkit.org/show_bug.cgi?id=159927

Reviewed by Benjamin Poulain.

Source/WebCore:

Fix null handling of SVGScriptElement.type attribute:

We were treating null as the null String which would end up removing
the 'type' content attribute. However, we should treat null as the
String "null".

Firefox and Chrome match the specification.

No new tests, updated existing test.

  • svg/SVGScriptElement.idl:

LayoutTests:

Rebaseline existing test to reflect the behavior change.

  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:
10:09 PM Changeset in webkit [203443] by Chris Dumez
  • 5 edits
    2 adds in trunk

Fix null handling of several HTMLDocument attributes
https://bugs.webkit.org/show_bug.cgi?id=159923

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-sections-expected.txt:

Source/WebCore:

Fix null handling of several HTMLDocument attributes:

In particular, null handling was incorrect in WebKit for 'dir',
'bgColor', 'fgColor', 'alinkColor', 'linkColor' and 'vlinkColor'.

Firefox and Chrome match the specification.

Test: fast/dom/HTMLDocument/null-handling.html

  • html/HTMLDocument.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.

  • fast/dom/HTMLDocument/null-handling-expected.txt: Added.
  • fast/dom/HTMLDocument/null-handling.html: Added.
8:23 PM Changeset in webkit [203442] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: WebAutomationSessionProxy's HashMaps should support '0' as valid keys
https://bugs.webkit.org/show_bug.cgi?id=159957
<rdar://problem/27376446>

Reviewed by Joseph Pecoraro.

  • WebProcess/Automation/WebAutomationSessionProxy.h:

Use UnsignedWithZeroKeyHashTraits to avoid problems with zero as a key.

6:45 PM Changeset in webkit [203441] by Chris Dumez
  • 13 edits in trunk

Document.createElementNS() / createAttributeNS() parameters should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=159938

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Document.createElementNS() / createAttributeNS() parameters should be mandatory:

They were optional in WebKit. However, Firefox and Chrome both match the
specification.

No new tests, rebaselined existing tests.

  • dom/Document.idl:

LayoutTests:

Update / rebaseline existing tests to reflect the behavior change.

  • fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
  • fast/dom/Document/createElementNS-namespace-err-expected.txt:
  • fast/dom/Document/script-tests/createAttributeNS-namespace-err.js:
  • fast/dom/Document/script-tests/createElementNS-namespace-err.js:
  • fast/dom/attribute-downcast-right.html:
6:45 PM Changeset in webkit [203440] by fpizlo@apple.com
  • 5 edits in trunk

The default testing mode should not involve disabling the FTL JIT
https://bugs.webkit.org/show_bug.cgi?id=159929

Rubber stamped by Mark Lam and Saam Barati.

Source/JavaScriptCore:

Use the new powers to make some tests run only in the default configuration (i.e. FTL,
concurrent JIT).

  • tests/mozilla/mozilla-tests.yaml:

Tools:

It used to be the case that most actively maintained ports did not have the FTL JIT enabled.
Heck, for most of the FTL's initial development, it wasn't enabled anywhere. So, testing the
FTL was not the default. You had to enable it with an option.

For some reason we have kept this arrangement even though the FTL JIT is now the default on
all of the major ports. This has become a serious pain. For example, it's useful to be able
to say that a test should only run in the default config that is representative of what a
normal user would see if they ran JSC. Clearly, this would be a config that does not
explicitly disable the FTL JIT on the command line. However, if you try to specify this then
your test won't run at all if the --ftl-jit option is not passed. That's dangerous!

So, this change gets rid of all of this logic. I think it's better to get rid of it then to
try to fix it, because:

  • I don't know what the fix would look like. Presumably it would ensure that ports that don't have the FTL enabled never run any tests that explicitly disable the FTL, since that doesn't do anything. The code is not really structured to allow this.


  • It benefits a minority of clients. Three build bots run tests in a config that has the FTL disabled in testing. On the other hand there are already build bots that do FTL tests despite having the FTL disabled by virtue of being a 32-bit platform. So, maybe rather than preserving this broken feature, we should create something that (a) acknowledges the fact that the FTL is the default on those platforms that support it and (b) avoids running no-ftl tests on precisely those platforms that don't have FTL.


  • To the extent that some bots benefited from disabling FTL tests, they were doing it by relying on a feature that was never meant to stick around. The FTL JIT is meant to be the default configuration. Disabling the FTL JIT is the non-default. So, we shouldn't be pretending that the FTL JIT is not the default just because some bots used that as an optimization.


This change allows me to speed up some debug tests and paint some bots green.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
6:29 PM Changeset in webkit [203439] by benjamin@webkit.org
  • 3 edits
    4 adds in trunk

Use getElementById for attribute matching if the attribute name is html's id
https://bugs.webkit.org/show_bug.cgi?id=159960

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-19
Reviewed by Chris Dumez.

Source/WebCore:

Elliott Sprehn discovered YUI makes heavy uses of querySelector with [id=value]
(https://bugs.chromium.org/p/chromium/issues/detail?id=627242).

If we are not in quirks mode, IdForStyleResolution has the same value
as the Id attribute. We can use the same optimization for both cases.

Tests: fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html

fast/selectors/id-attribute-querySelector-used-as-id-selector.html

  • dom/SelectorQuery.cpp:

(WebCore::canBeUsedForIdFastPath):
(WebCore::findIdMatchingType):
(WebCore::SelectorDataList::SelectorDataList):
(WebCore::selectorForIdLookup):
(WebCore::filterRootById):

LayoutTests:

  • fast/selectors/id-attribute-querySelector-used-as-id-selector-expected.txt: Added.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks-expected.txt: Added.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html: Added.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector.html: Added.
6:27 PM Changeset in webkit [203438] by Chris Dumez
  • 7 edits
    2 adds in trunk

Drop SVGElement.xmlbase attribute
https://bugs.webkit.org/show_bug.cgi?id=159926

Reviewed by Benjamin Poulain.

Source/WebCore:

Drop SVGElement.xmlbase attribute as it is no longer part of the
specification:

Both Firefox and Chrome have already dropped support for
SVGElement.xmlbase.

Chrome's intent to remove:
https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/TfwMq4d25hk/C-v_iC_wKfAJ

Test: svg/dom/SVGElement-xmlbase.html

  • svg/SVGElement.cpp:

(WebCore::SVGElement::removedFrom): Deleted.

  • svg/SVGElement.h:
  • svg/SVGElement.idl:

LayoutTests:

  • svg/dom/SVGElement-xmlbase-expected.txt: Added.
  • svg/dom/SVGElement-xmlbase.html: Added.

Check that SVGElement.xmlbase does not exist.

  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:

Drop obsolete testing for SVGElement.xmlbase.

6:20 PM Changeset in webkit [203437] by Chris Dumez
  • 5 edits
    2 adds in trunk

Align CSSStyleDeclaration.setProperty() with the specification
https://bugs.webkit.org/show_bug.cgi?id=159955

Reviewed by Benjamin Poulain.

Source/WebCore:

Align CSSStyleDeclaration.setProperty() with the specification:

In particular, the following changes were needed:

  1. The 'value' parameter should not be optional
  2. The 'priority' parameter should treat null as the empty string rather than the string "null".
  3. The 'priority' parameter's default value should be the empty string, not the string "undefined".
  4. CSSStyleDeclaration.setProperty() should return early if 'priority' is not the empty string and is not an ASCII case-insensitive match for the string "important".

Chrome matches the specification entirely.
Firefox matches the specification with the exception that it does a
case-sensitive match for "important".

Test: fast/css/CSSStyleDeclaration-setProperty.html

  • css/CSSStyleDeclaration.idl:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setProperty):

LayoutTests:

Add layout test coverage.

  • fast/css/CSSStyleDeclaration-setProperty-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-setProperty.html: Added.
  • fast/css/shorthand-priority.html:
5:29 PM Changeset in webkit [203436] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix API test after r203426.
https://bugs.webkit.org/show_bug.cgi?id=159949

  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(TEST):
If there is website data already on disk, the initial count after putting the AppCache data in place will not be exactly 1.
This is no problem. We want to verify that it is a nonzero number and that it decrements by one when we remove the 1 AppCache data.

5:09 PM Changeset in webkit [203435] by aestes@apple.com
  • 6 edits in trunk

Move WebKitErrorFrameLoadBlockedByContentFilter from WebKitErrors.h to WebKitErrorsPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=159956

Reviewed by Dan Bernstein.

Source/WebKit/mac:

  • Misc/WebKitErrors.h: Moved definition of WebKitErrorFrameLoadBlockedByContentFilter from here ...
  • Misc/WebKitErrorsPrivate.h: to here.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm: Included WKErrorRef.h.

(-[LoadAlternateNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
Used kWKErrorCodeFrameLoadBlockedByContentFilter instead of WebKitErrorFrameLoadBlockedByContentFilter.

  • TestWebKitAPI/Tests/mac/ContentFiltering.mm: Included WebKitErrorsPrivate.h instead of WebKitErrors.h.
4:38 PM Changeset in webkit [203434] by dbates@webkit.org
  • 5 edits
    56 adds in trunk

CSP: Improve support for multiple policies to more closely conform to the CSP Level 2 spec.
https://bugs.webkit.org/show_bug.cgi?id=159841
<rdar://problem/27381684>

Reviewed by Brent Fulgham.

Source/WebCore:

Implement a first pass at sending multiple violation reports so as to more closely
conform to section Enforcing multiple policies of the Content Security Policy Level 2 spec.,
<https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 25 April 2016).

Tests: http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php

http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html
http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allPoliciesWithDispositionAllow): Added. Returns whether the resource
is allowed by all of the policies with the specified disposition.
(WebCore::ContentSecurityPolicy::allPoliciesAllow): Added. Returns whether the resource is allowed by
all of the enforced policies.
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies): Formerly named foundHashOfContentInAllPolicies.
Modified to return a ("has found hash in all enforced policies, "has found hash in all report-only policies)-pair
so that we can differentiate whether the hash violated an enforced policy or a report-only policy.
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs): Write in terms of ContentSecurityPolicy::allPoliciesAllow().
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptWithNonce): For now only accept a nonce if it is allowed by
all enforced policies. As a side effect of this change is that we only send a CSP violation report when a
nonce violates a report-only policy only if the nonce also violates one or more enforced policies. We will
address this limitation in <https://bugs.webkit.org/show_bug.cgi?id=159830>.
(WebCore::ContentSecurityPolicy::allowStyleWithNonce): Ditto.
(WebCore::ContentSecurityPolicy::allowInlineScript): Differentiate between a hash/'unsafe-inline' that
matches/is contained in all enforce policies and a hash/'unsafe-inline' that matches/is contained in all
report-only policies so that we only allow the resource for the former. As a side effect of this change
we may report that a resource violated a policy even if it contained the hash. See <https://bugs.webkit.org/show_bug.cgi?id=159832>
for more details.
(WebCore::ContentSecurityPolicy::allowInlineStyle): Ditto.
(WebCore::ContentSecurityPolicy::allowEval): Write in terms of ContentSecurityPolicy::allPoliciesAllow().
(WebCore::ContentSecurityPolicy::allowFrameAncestors): Ditto.
(WebCore::ContentSecurityPolicy::allowPluginType): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildContextFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFormAction): Ditto.
(WebCore::ContentSecurityPolicy::allowBaseURI): Ditto.
(WebCore::ContentSecurityPolicy::foundHashOfContentInAllPolicies): Deleted.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::violatedDirectiveInAnyPolicy): Deleted.

LayoutTests:

  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-multiple-policies-expected.txt: Update expected result to reflect additional console

messages. We will remove these extraneous console messages as part of the fix for <https://bugs.webkit.org/show_bug.cgi?id=159832>.

  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies.html: Added.
4:30 PM Changeset in webkit [203433] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.42.1/Source

Versioning.

4:28 PM Changeset in webkit [203432] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.42.1

New tag.

4:27 PM Changeset in webkit [203431] by bshafiei@apple.com
  • 8 edits in branches/safari-602-branch/Source/JavaScriptCore

Merged r203419. rdar://problem/27420308

4:26 PM Changeset in webkit [203430] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merged r203404. rdar://problem/27420308

4:06 PM Changeset in webkit [203429] by achristensen@apple.com
  • 2 edits in trunk/Tools

Add regression test for r203392
https://bugs.webkit.org/show_bug.cgi?id=159949

Reviewed by Brady Eidson.

  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(fileSize):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):
(TEST):
(swizzledBundleIdentifierMobileSafari): Deleted.
This actually tests that webbookmarksd uses the path quirk in WebsiteDataStore::defaultApplicationCacheDirectory.
I wanted to verify that it uses the same path as MobileSafari, but swizzling out the bundleIdentifier twice caused
problems with the static bools that are set once in RuntimeApplicationChecks.mm.

3:55 PM Changeset in webkit [203428] by Chris Dumez
  • 6 edits in trunk

Fix null handling of HTMLScriptElement.text attribute
https://bugs.webkit.org/show_bug.cgi?id=159943

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-text-expected.txt:

Source/WebCore:

Fix null handling of HTMLScriptElement.text attribute:

We should treat null as the "null" String but we were treating it as
the empty string.

Firefox and Chrome match the specification.

No new tests, rebaselined existing test.

  • html/HTMLScriptElement.idl:
3:55 PM Changeset in webkit [203427] by Chris Dumez
  • 5 edits
    2 adds in trunk

autocapitalize attribute should not use [TreatNullAs=LegacyNullString]
https://bugs.webkit.org/show_bug.cgi?id=159934

Reviewed by Benjamin Poulain.

Source/WebCore:

autocapitalize attribute should not use [TreatNullAs=LegacyNullString]. This is
non-standard and we want to drop support for it from the bindings generator.

Instead, use [TreatNullAs=EmptyString] in order to maintain existing behavior
given that both a missing/empty attribute result in using the default
autocapitalization mode and that autocapitalize returns the empty string by
default.

Test: platform/ios-simulator/ios/fast/forms/autocapitalize-null.html

  • html/HTMLFormElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLTextAreaElement.idl:

LayoutTests:

Add layout test coverage.

  • platform/ios-simulator/ios/fast/forms/autocapitalize-null-expected.txt: Added.
  • platform/ios-simulator/ios/fast/forms/autocapitalize-null.html: Added.
3:51 PM Changeset in webkit [203426] by achristensen@apple.com
  • 3 edits
    2 moves
    3 adds in trunk/Tools

Add regression test for r203392
https://bugs.webkit.org/show_bug.cgi?id=159949

Reviewed by Brady Eidson.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-wal: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(TEST):
(fileSize):
(swizzledBundleIdentifierMobileSafari):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):

  • TestWebKitAPI/cocoa/InstanceMethodSwizzler.h: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.h.
  • TestWebKitAPI/cocoa/InstanceMethodSwizzler.mm: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.mm.
  • TestWebKitAPI/mac/InstanceMethodSwizzler.h: Removed.
  • TestWebKitAPI/mac/InstanceMethodSwizzler.mm: Removed.
3:50 PM Changeset in webkit [203425] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore
REGRESSION(r203415): ASSERTION FAILED: !m_layoutRoot->container()
!m_layoutRoot->container()->needsLayout()

https://bugs.webkit.org/show_bug.cgi?id=159952

Reviewed by Simon Fraser.

Update ASSERTs to reflect new functionality, that is, now we can end up in a state
where the container (RenderView) of one of the dirty subtrees is dirty.
See r203415.

Covered by editing/pasteboard/drag-drop-input-in-svg.svg

  • page/FrameView.cpp:

(WebCore::FrameView::scheduleRelayoutOfSubtree):

3:43 PM Changeset in webkit [203424] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(202927): The first slide is the only displayed slide when Quicklooking a Keynote file
https://bugs.webkit.org/show_bug.cgi?id=159948
<rdar://problem/27391012>

Reviewed by Simon Fraser.

There is an iOS bug (<rdar://problem/27416744>) that is causing us
to not always get a color space on CGContextRefs. Investigation of this
exposed some optimizations we can take when we are creating ImageBuffers.
In particular, if we have a bitmap context or an IOSurfaceContext we
can simply copy their color space using API. Otherwise we stick with
the existing CGContextCopyDeviceColorSpace.

Lastly, if for some reason we are unable to copy the device color space,
we should fall back to sRGB.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

  • platform/spi/cg/CoreGraphicsSPI.h: Add some SPI and enums.
3:35 PM Changeset in webkit [203423] by commit-queue@webkit.org
  • 13 edits
    2 adds in trunk

HTMLVideoElement frames do not update on iOS when src is a MediaStream blob
https://bugs.webkit.org/show_bug.cgi?id=159833
<rdar://problem/27379487>

Patch by George Ruan <gruan@apple.com> on 2016-07-19
Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-video-element-displays-buffer.html

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/avfoundation/MediaSampleAVFObjC.h: Change create to return a Ref<T> instead

of RefPtr<T>

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Make observer of

MediaStreamTrackPrivate and make MediaPlayer use an AVSampleBufferDisplayLayer instead of CALayer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Ditto.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Clean up
observers and AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ensures AVSampleBufferDisplayLayer
is available.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSampleBufferFromTrack): Placeholder.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Responsible
for enqueuing sample buffers to the active video track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Ensures that an AVSampleBufferDisplayLayer
exists.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Destroys the AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Replace CALayer with AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Called from MediaStreamTrackPrivate when a
new SampleBuffer is available.
(WebCore::updateTracksOfType): Manage adding and removing self as observer from tracks.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Replace CALayer with AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::acceleratedRenderingStateChanged): Copied from
MediaPlayerPrivateMediaSourceAVFObjC.mm
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Deleted process of updating CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Deleted.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::updateActiveVideoTrack): Remove redundant check.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Called from RealtimeMediaSource when a new SampleBuffer
is available.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated): Relays to MediaPlayerPrivateMediaStream that
a new SampleBuffer is available to enqueue to the AVSampleBufferDisplayLayer.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::mediaDataUpdated): Relays to all observers that a new SampleBuffer is available.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame): Calls mediaDataUpdated when a new SampleBuffer is captured.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-displays-buffer-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-displays-buffer.html: Added. Checks that

a video element with a mediastream source displays frames that are neither black or transparent.

  • fast/mediastream/resources/getUserMedia-helper.js:

(setupVideoElementWithStream): Sets up video element with global variable mediastream.

2:55 PM Changeset in webkit [203422] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Get rid of a #define private public hack in WebCore
https://bugs.webkit.org/show_bug.cgi?id=159953

Reviewed by Dan Bernstein.

Use @package instead.

  • bindings/objc/DOMInternal.h:
  • bindings/objc/DOMObject.h:
2:27 PM Changeset in webkit [203421] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

Test262 should have a file with the revision and url
https://bugs.webkit.org/show_bug.cgi?id=159937

Reviewed by Mark Lam.

Source/JavaScriptCore:

The file.

  • tests/test262/test262-Revision.txt: Added.

Tools:

The import script should update the information from
the path to the test262 repository it gets.

  • Scripts/import-test262-tests:
2:14 PM Changeset in webkit [203420] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix SharedBuffer leak in MockContentFilter::replacementData().
<https://webkit.org/b/159945>

Reviewed by Andy Estes.

Spotted on leaks bot. This code was pretty explicit about how it's going to leak.
Since this is in the mock filter, it only affected layout tests.

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::replacementData):

1:52 PM Changeset in webkit [203419] by andersca@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

WebCore-7602.1.42 fails to build: error: private field 'm_vm' is not used
https://bugs.webkit.org/show_bug.cgi?id=159944
rdar://problem/27420308

Reviewed by Dan Bernstein.

Wrap the m_vm declaration and initialization in conditional guards.

  • Scripts/builtins/builtins_generate_internals_wrapper_header.py:

(generate_members):

  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_constructor):
Add guards.

  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:

Update expected results.

1:43 PM Changeset in webkit [203418] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27356144.

  • platform/mac/TestExpectations:
1:32 PM Changeset in webkit [203417] by ap@apple.com
  • 2 edits in trunk/Tools

Temporary workaround for iOS EWS failing after the fix for bug 159539.
To be deleted once the root cause is found and addressed.

  • EWSTools/start-queue-mac.sh:
1:15 PM Changeset in webkit [203416] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r203348-r203368): ASSERTION FAILED: from.isCell() && from.asCell()->JSCell::inherits(std::remove_pointer<To>::type::info())
https://bugs.webkit.org/show_bug.cgi?id=159930

Reviewed by Geoffrey Garen.

The problem is that the 32-bit DFG can flush the scope register as an unboxed cell, but the
Register::scope() method was causing us to assert that it's a JSValue with proper cell
boxing. We could have forced the DFG to flush it as a boxed JSValue, but I don't think that
would have made anything better. This fixes the issue by teaching Register::scope() that it
might see unboxed cells.

  • runtime/JSScope.h:

(JSC::Register::scope):
(JSC::ExecState::lexicalGlobalObject):

1:10 PM Changeset in webkit [203415] by Alan Bujtas
  • 3 edits
    2 adds in trunk

theguardian.co.uk crossword puzzles are sometimes not displaying text
https://bugs.webkit.org/show_bug.cgi?id=159924
<rdar://problem/27409483>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes the case when

  • 2 disjoint subtrees are dirty
  • RenderView is also dirty.

and we end up not laying out one of the 2 subtrees.

In FrameView::scheduleRelayoutOfSubtree, we assume that when the RenderView is dirty
we already have a pending full layout which means that any previous subtree layouts have already been
converted to full layouts.
However this assumption is incorrect. RenderView can get dirty without checking if there's
already a pending subtree layout.
One option to solve this problem would be to override RenderObject::setNeedsLayout in RenderView
so that when the RenderView gets dirty, we could also convert any pending subtree layout to full layout.
However RenderObject::setNeedsLayout is a hot function and making it virtual would impact performance.
The other option is to always normalize subtree layouts in FrameView::scheduleRelayoutOfSubtree().
This patch implements the second option.

Test: fast/misc/subtree-layouts.html

  • page/FrameView.cpp:

(WebCore::FrameView::scheduleRelayoutOfSubtree):

LayoutTests:

  • fast/misc/subtree-layouts-expected.html: Added.
  • fast/misc/subtree-layouts.html: Added.
1:07 PM Changeset in webkit [203414] by andersca@apple.com
  • 7 edits in trunk/Source

Some payment authorization status values should keep the sheet active
https://bugs.webkit.org/show_bug.cgi?id=159936
rdar://problem/26756701

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::completePayment):
Keep the sheet active if the status isn't a final state status.

  • Modules/applepay/PaymentAuthorizationStatus.h:

(WebCore::isFinalStateStatus):
Add a new helper function that returns whether a given payment authorization status is "final",
meaning that once that status has been passed to completePayment, the session is finished.

Source/WebKit2:

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):
If the status isn't a final state status, bounce the current state back to active.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:

Rename the _authorized ivar to _didReachFinalState.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):
Set _didReachFinalState based on the return value of isFinalStateStatus.

12:20 PM Changeset in webkit [203413] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

B3 methods that mutate the successors array should take FrequentedBlock by value
https://bugs.webkit.org/show_bug.cgi?id=159935

Reviewed by Michael Saboff.

This bug was found by ASan testing. setSuccessors() takes a const FrequentedBlock&, and the
caller that caused the ASan crash was doing:

block->setSuccessors(block->notTaken())

So, inside setSuccessors(), after we resize() the successors array, the const
FrequentedBlock& points to nonsense.

The fix is to pass FrequentedBlock by value in all of these kinds of methods.

No new tests, but ASan testing catches this instantly for anything that triggers CFG
simplification in B3. So like half of our tests.

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::clearSuccessors):
(JSC::B3::BasicBlock::appendSuccessor):
(JSC::B3::BasicBlock::setSuccessors):

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successors):
(JSC::B3::BasicBlock::successorBlock):

  • b3/B3Value.cpp:

(JSC::B3::Value::replaceWithPhi):
(JSC::B3::Value::replaceWithJump):
(JSC::B3::Value::replaceWithOops):

  • b3/B3Value.h:
11:14 AM Changeset in webkit [203412] by n_wang@apple.com
  • 4 edits
    2 adds in trunk

AX: Incorrect behavior for word related text marker functions when there's collapsed whitespace
https://bugs.webkit.org/show_bug.cgi?id=159910

Reviewed by Chris Fleizach.

Source/WebCore:

We are getting a bad CharacterOffset when there's collapsed whitespace. Added a TraverseOptionValidateOffset
option to make sure we are getting the correct CharacterOffset based on the corresponding Range offset. And
fixed a word navigation issue based on that.

Test: accessibility/mac/text-marker-word-nav-collapsed-whitespace.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::rightWordRange):
(WebCore::AXObjectCache::previousBoundary):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::isNodeInUse):

LayoutTests:

  • accessibility/mac/text-marker-word-nav-collapsed-whitespace-expected.txt: Added.
  • accessibility/mac/text-marker-word-nav-collapsed-whitespace.html: Added.
10:27 AM Changeset in webkit [203411] by commit-queue@webkit.org
  • 7 edits in trunk

[Streams API] ReadableStreamController methods should throw if its stream is not readable
https://bugs.webkit.org/show_bug.cgi?id=159871

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/bad-underlying-sources.https-expected.txt:

Source/WebCore:

Spec now mandates close and enqueue to throw if ReadableStream is not readable.
Covered by rebased and/or modified tests.

  • Modules/streams/ReadableStreamController.js:

(enqueue): Throwing a TypeError if controlled stream is not readable.
(close): Ditto.

LayoutTests:

  • streams/reference-implementation/pipe-to-options.html: Updated test case according whatwg original test.
  • streams/reference-implementation/readable-stream-templated.html: Ditto.
10:23 AM Changeset in webkit [203410] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Adjust margins for first-line floating elements and add preset floating video sizing
https://bugs.webkit.org/show_bug.cgi?id=159898

Reviewed by Benjamin Poulain.

  • wp-content/themes/webkit/style.css:

(article video.alignright):
(article .alignright:first-child):
(@media only screen and (max-width: 690px)):

(article .alignright:first-child):

(@media only screen and (max-width: 415px)):

(article video.alignright):
(article .alignright:first-child):

9:10 AM Changeset in webkit [203409] by Simon Fraser
  • 3 edits
    6 adds in trunk

Bubbles appear split for a brief moment in Messages
https://bugs.webkit.org/show_bug.cgi?id=159915
rdar://problem/27182267

Reviewed by David Hyatt.

Source/WebCore:

RenderView::repaintRootContents() had a long-standing bug in WebView when the
view is scrolled. repaint() uses visualOverflowRect() but, for the
RenderView, the visualOverflowRect() is the initial containing block
which is anchored at 0,0. When the view is scrolled it's clipped out and
calls to repaintRootContents() have no effect.

Change repaintRootContents() to use layoutOverflowRect(). ScrollView::repaintContentRectangle()
will clip it to the view if necessary.

Test: fast/repaint/scrolled-view-full-repaint.html

  • rendering/RenderView.cpp:

(WebCore::RenderView::repaintRootContents):

LayoutTests:

  • fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
  • fast/repaint/scrolled-view-full-repaint.html: Added.
  • platform/ios-simulator-wk1/fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
  • platform/mac-wk1/fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
9:08 AM Changeset in webkit [203408] by commit-queue@webkit.org
  • 44 edits
    1 add in trunk/LayoutTests/imported/w3c

Refresh WPT tests up to 98ec1ad
https://bugs.webkit.org/show_bug.cgi?id=159879

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-19
Reviewed by Alex Christensen.

This refresh concerns fetch API tests with a number of test fixes.
Rebasing both window and worker expectations.

  • resources/TestRepositories:
  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker.html:
  • web-platform-tests/fetch/api/basic/mode-same-origin.html:
  • web-platform-tests/fetch/api/basic/mode-same-origin.js:
  • web-platform-tests/fetch/api/cors/cors-basic-worker.html:
  • web-platform-tests/fetch/api/cors/cors-basic.html:
  • web-platform-tests/fetch/api/cors/cors-basic.js:

(cors):

  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker.html:
  • web-platform-tests/fetch/api/cors/cors-cookies.html:
  • web-platform-tests/fetch/api/cors/cors-cookies.js:

(corsCookies):

  • web-platform-tests/fetch/api/cors/cors-no-preflight-worker.html:
  • web-platform-tests/fetch/api/cors/cors-no-preflight.html:
  • web-platform-tests/fetch/api/cors/cors-no-preflight.js:

(corsNoPreflight):

  • web-platform-tests/fetch/api/cors/cors-origin-worker.html:
  • web-platform-tests/fetch/api/cors/cors-origin.html:
  • web-platform-tests/fetch/api/cors/cors-origin.js:

(corsOrigin):

  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.js:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:

(corsPreflightReferrer):

  • web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-status.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-status.js:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.html:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.js:
  • web-platform-tests/fetch/api/cors/cors-redirect-worker.html:
  • web-platform-tests/fetch/api/cors/cors-redirect.html:
  • web-platform-tests/fetch/api/cors/cors-redirect.js:
  • web-platform-tests/fetch/api/request/request-cache.html:
  • web-platform-tests/fetch/api/request/resources/w3c-import.log:
  • web-platform-tests/fetch/api/resources/get-host-info.sub.js: Added.

(get_host_info):

  • web-platform-tests/fetch/api/resources/utils.js:

(validateBufferFromString):

  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.html:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
7:33 AM Changeset in webkit [203407] by fred.wang@free.fr
  • 2 edits in trunk/Tools

[win] Fixup the register name for STIX Math and Latin Modern Math

Unreviewed follow-up of r203406

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-19

  • Scripts/webkitdirs.pm:

(checkInstalledTools):

7:18 AM Changeset in webkit [203406] by fred.wang@free.fr
  • 2 edits in trunk/Tools

[win] Update the list of MathML fonts
https://bugs.webkit.org/show_bug.cgi?id=156838

The set of recommended math fonts is now described at
https://trac.webkit.org/wiki/MathML/Fonts
We update the Perl script to use the latest list of fonts.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-19
Reviewed by Brent Fulgham.

  • Scripts/webkitdirs.pm:

(checkInstalledTools):

7:12 AM Changeset in webkit [203405] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[Release WK2] LayoutTest imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm failing
https://bugs.webkit.org/show_bug.cgi?id=159724

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19

  • TestExpectations: Marking test as failure,passs,crash.
  • platform/ios-simulator-wk2/TestExpectations: Removing specific expectation.
  • platform/mac-wk2/TestExpectations: Ditto.
7:12 AM Changeset in webkit [203404] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/27420308> WebCore-7602.1.42 fails to build: error: unused parameter 'vm'

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals): Fixed the !ENABLE(STREAMS_API) build.

3:56 AM Changeset in webkit [203403] by pvollan@apple.com
  • 5 edits in trunk

[Win] The test fast/scrolling/overflow-scroll-past-max.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=159342

Reviewed by Darin Adler.

Source/WebKit/win:

  • WebFrame.h: Link fix.

Tools:

Implement required functions in event sender.

  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/win/EventSender.cpp:

(monitorWheelEvents): Added.
(callAfterScrollingCompletes): Added.

12:59 AM Changeset in webkit [203402] by commit-queue@webkit.org
  • 8 edits in trunk

[Streams API] Make ReadableStream properties not enumerable
https://bugs.webkit.org/show_bug.cgi?id=159868

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/general.https-expected.txt:
  • web-platform-tests/streams/readable-streams/readable-stream-reader.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Uopdating IDL definitions to mark all functions/attributes as not enumerable.
Updating IDL constructor definitions to correctly compute constructor length.
Updating built-in implementation to correctly compute pipeTo length to 1 (second parameter being optional).

  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStream.js:
  • Modules/streams/ReadableStreamController.idl:
  • Modules/streams/ReadableStreamReader.idl:
12:41 AM Changeset in webkit [203401] by Chris Dumez
  • 4 edits
    2 adds in trunk

form.enctype / encoding / method should treat null as "null" string
https://bugs.webkit.org/show_bug.cgi?id=159916

Reviewed by Ryosuke Niwa.

Source/WebCore:

form.enctype / encoding / method should treat null as "null" string:

Previously, WebKit would treat null as the null String, which would
end up removing the existing attribute.

Firefox and Chrome match the specification.

Test: fast/dom/HTMLFormElement/null-handling.html

  • html/HTMLFormElement.h:
  • html/HTMLFormElement.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLFormElement/null-handling-expected.txt: Added.
  • fast/dom/HTMLFormElement/null-handling.html: Added.
12:38 AM Changeset in webkit [203400] by commit-queue@webkit.org
  • 9 edits
    1 add in trunk

Add new aliases to http test server
https://bugs.webkit.org/show_bug.cgi?id=159878

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Darin Adler.

Tools:

Adding testharness.css, testharness.js and testharnessreport.js new aliases to http test servers.
Adding explicitly these links to perl script.
Extracting default alias in an aliases.json file.
Reading that file from python scripts to initialize aliases from that file.

Python script changes covered by unit tests and changed layout test.

  • Scripts/webkitperl/httpd.pm:

(getDefaultConfigForTestDirectory): Adding 3 new aliases

  • Scripts/webkitpy/layout_tests/servers/aliases.json: Added.
  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Setting upper class tests_dir member if needed and according constructor parameter.
Adding -c directives for each alias.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:

(TestLayoutTestApacheHttpd.test_start_cmd): Adding aliases.json mock-up file.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd.init): Setting upper class tests_dir member if needed and according constructor parameter.
Adding alias directive for each alias.
(Lighttpd._prepare_config):

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase.init): Adding tests_dir member with a default value being layout tests directory.
(HttpServerBase.aliases): Computing of alias from the json file, paths to the real files being relative to
layout tests directory.

  • Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:

(TestHttpServer.test_start_cmd): Adding aliases.json mock-up file and updating test expectation.
(TestHttpServer.test_win32_start_and_stop): Adding aliases.json mock-up file.

LayoutTests:

  • http/tests/xmlhttprequest/set-bad-headervalue.html: Updating testharness.js and testharnessreport.js links to

ensure these new links are working on test servers.

Jul 18, 2016:

11:50 PM Changeset in webkit [203399] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

All-in-one buildfix after r202439
https://bugs.webkit.org/show_bug.cgi?id=159877

Reviewed by Chris Dumez.

  • Modules/webaudio/AudioDestinationNode.h:

(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):

11:50 PM Changeset in webkit [203398] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix the --minimal build fail in InjectedBundle.cpp
https://bugs.webkit.org/show_bug.cgi?id=159770

Reviewed by Benjamin Poulain.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:
10:55 PM Changeset in webkit [203397] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:42 PM Changeset in webkit [203396] by fred.wang@free.fr
  • 8 edits
    1 copy
    1 add in trunk/Source/WebCore

Move parsing of subscriptshift and superscriptshift from rendering to element classes
https://bugs.webkit.org/show_bug.cgi?id=159622

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-18
Reviewed by Darin Adler.

We introduce a new MathMLScriptsElement that is used for elements msub, msup, msubsup and
mmultiscripts in order to create RenderMathMLScripts and parse and expose the values of the
subscriptshift and superscriptshift attributes. This is one more step toward moving MathML
attribute parsing to the DOM (bug 156536).

No new tests, rendering is unchanged.

  • CMakeLists.txt: Add MathMLScriptsElement files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLInlineContainerElement.cpp: Remove handling of scripts.

(WebCore::MathMLInlineContainerElement::createElementRenderer): Deleted.

  • mathml/MathMLScriptsElement.cpp: Added. New class to handle scripted elements supporting

parsing for the subscriptshift and superscriptshift MathML lengths.
(WebCore::MathMLScriptsElement::MathMLScriptsElement):
(WebCore::MathMLScriptsElement::create):
(WebCore::MathMLScriptsElement::subscriptShift): Expose the cached length for the shift,
parsing the attribute again if necessary.
(WebCore::MathMLScriptsElement::superscriptShift): Ditto.
(WebCore::MathMLScriptsElement::parseAttribute): Mark attributes dirty.
(WebCore::MathMLScriptsElement::createElementRenderer): Create RenderMathMLScripts.

  • mathml/MathMLScriptsElement.h: Ditto.
  • mathml/mathtags.in: Map msub, msup, msubsup and mmultiscripts to MathMLScriptsElement.
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::scriptsElement): Helper function to cast the node to a
MathMLScriptsElement.
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded): Resolve the attributes
using the functions from the MathMLScriptsElement class.

  • rendering/mathml/RenderMathMLScripts.h: Declare scriptsElement.
10:36 PM Changeset in webkit [203395] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

Do not store gap and shift parameters on RenderMathMLFraction
https://bugs.webkit.org/show_bug.cgi?id=159876

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-18
Reviewed by Darin Adler.

After r203285, the stack and fraction layout parameters are only used in layoutBlock so we
do not need to store them on the class. We remove them and split updateLayoutParameters into
three functions: one to update the linethickness and two others to retrieve the fraction and
stack respectively.

No new tests, rendering is unchanged.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateLineThickness): Move code to update thickness members here.
(WebCore::RenderMathMLFraction::getFractionParameters): Move code to retrieve fraction parameters here.
(WebCore::RenderMathMLFraction::getStackParameters): Move code to retrieve stack parameters here.
(WebCore::RenderMathMLFraction::layoutBlock): Use the new helper functions and local variables
for fraction and stack parameters.
(WebCore::RenderMathMLFraction::updateLayoutParameters): Deleted.

  • rendering/mathml/RenderMathMLFraction.h: Declare new helper functions and remove members

for stack and fraction parameters.

10:22 PM MathML/Fonts edited by fred.wang@free.fr
(diff)
9:45 PM Changeset in webkit [203394] by Chris Dumez
  • 11 edits
    4 adds in trunk

input.formEnctype / formMethod and button.formEnctype / formMethod / type should treat null as "null"
https://bugs.webkit.org/show_bug.cgi?id=159908

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-forms-expected.txt:

Source/WebCore:

input.formEnctype / formMethod and button.formEnctype / formMethod / type
should treat null as "null" String:

In WebKit, we would treat null as a null String which would end up
removing the corresponding attribute. This does not match the
specification. Firefox and Chrome match the specification here.

Tests:

  • fast/dom/HTMLButtonElement/null-handling.html
  • fast/dom/HTMLInputElement/null-handling.html
  • html/HTMLButtonElement.idl:
  • html/HTMLInputElement.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLButtonElement/change-type-expected.txt:
  • fast/dom/HTMLButtonElement/change-type.html:
  • fast/dom/HTMLButtonElement/null-handling-expected.txt: Added.
  • fast/dom/HTMLButtonElement/null-handling.html: Added.
  • fast/dom/HTMLInputElement/null-handling-expected.txt: Added.
  • fast/dom/HTMLInputElement/null-handling.html: Added.
  • fast/forms/submit-form-attributes-expected.txt:
  • fast/forms/submit-form-attributes.html:
7:45 PM Changeset in webkit [203393] by commit-queue@webkit.org
  • 25 edits in trunk

Make builtin TypeErrors consistent
https://bugs.webkit.org/show_bug.cgi?id=159899

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-18
Reviewed by Keith Miller.

Source/JavaScriptCore:

Converge on the single TypeError for non-coercible this objects in builtins.
Also update some other style to be more consistent with-in builtins.

  • builtins/ArrayIteratorPrototype.js:

(next):

  • builtins/ArrayPrototype.js:

(values):
(keys):
(entries):
(reduce):
(reduceRight):
(every):
(forEach):
(filter):
(map):
(some):
(fill):
(find):
(findIndex):
(includes):
(sort):
(concatSlowPath):
(copyWithin):

  • builtins/StringPrototype.js:

(match):
(repeat):
(padStart):
(padEnd):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(localeCompare):
(search):
(split):

  • tests/es6/String.prototype_methods_String.prototype.padEnd.js:
  • tests/es6/String.prototype_methods_String.prototype.padStart.js:
  • tests/stress/array-iterators-next-error-messages.js:

(catch):

  • tests/stress/array-iterators-next-with-call.js:
  • tests/stress/regexp-match.js:

(shouldThrow):

  • tests/stress/regexp-search.js:

(shouldThrow):

LayoutTests:

  • js/array-find-expected.txt:
  • js/array-findIndex-expected.txt:
  • js/array-includes-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/dom/script-tests/string-prototype-properties.js:
  • js/dom/string-prototype-properties-expected.txt:
  • js/script-tests/array-find.js:
  • js/script-tests/array-findIndex.js:
  • js/script-tests/string-localeCompare.js:
  • js/string-localeCompare-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.11_String.prototype.replace/S15.5.4.11_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
7:02 PM Changeset in webkit [203392] by achristensen@apple.com
  • 5 edits in trunk/Source

webbookmarksd needs to use the same AppCache directory as MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=159912
Source/WebCore:

Reviewed by Alexey Proskuryakov.

No new tests. This only changes behavior for webbookmarksd.

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isWebBookmarksD): Added.

Source/WebKit2:

<rdar://problem/27056844>

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
Make webbookmarksd match MobileSafari by adding a matching runtime exception.

6:18 PM Changeset in webkit [203391] by Chris Dumez
  • 11 edits in trunk

EventTarget.dispatchEvent() parameter should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=159897

Reviewed by Benjamin Poulain.

Source/WebCore:

EventTarget.dispatchEvent() parameter should not be nullable:

Even though the parameter was marked as nullable in our IDL, our
implementation does a null check and we already throw a TypeError
when calling dispatchEvent(null).

Update our IDL so that it matches the specification and so that
the null check is generated in the bindings instead.

No new tests, rebaseline existing tests.

  • dom/EventTarget.cpp:

(WebCore::EventTarget::dispatchEventForBindings):

  • dom/EventTarget.h:
  • dom/EventTarget.idl:

LayoutTests:

Update layout tests as the message of the TypeError exception being
thrown when calling dispatchEvent(null) is now more helpful.

  • fast/dom/Window/dispatchEvent-expected.txt:
  • fast/events/dispatchEvent-crash-expected.txt:
6:16 PM Changeset in webkit [203390] by fpizlo@apple.com
  • 52 edits
    6 adds
    2 deletes in trunk

Implement table-based switches in B3/Air
https://bugs.webkit.org/show_bug.cgi?id=151141

Reviewed by Benjamin Poulain.
Source/JavaScriptCore:

If a switch statement gets large, it's better to express it as an indirect jump rather than
using a binary switch (divide-and-conquer tree of comparisons leading to O(log n) branches to
get to the switch case). When dealing with integer switches, FTL will already use the B3
Switch and expect this to get lowered as efficiently as possible; it's a bug that B3 will
always use a binary switch rather than indirect jumps. When dealing with switches over some
more sophisticated types, we'd want FTL to build an indirect jump table itself and use
something like a hashtable to feed it. In that case, there will be no B3 Switch; we'll want
some way for the FTL to directly express an indirection jump when emitting B3.

This implies that we want B3 to have the ability to lower Switch to indirect jumps and to
expose those indirect jumps in IR so that the FTL could do its own indirect jumps for
switches over more complicated things like strings. But indirect jumps are tough to express
in IR. For example, the LLVM approach ("indirectbr" and "blockaddress", see
http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html) means that some
control flow edges cannot be split. Indirectbr takes an address as input and jumps to it, and
blockaddress lets you build jump tables out of basic block addresses. This means that the
compiler can never change any successor of an indirectbr, since the client will have already
arranged for that indirectbr to jump to exactly those successors. We don't want such
restrictions in B3, since B3 relies on being able to break critical edges for SSA conversion.
Also, indirectbr is not cloneable, which would break any hope of doing specialization-based
transformations like we want to do for multiple entrypoints (bug 159391). The goal of this
change is to let clients do indirect jumps without placing any restrictions on IR.

The trick is to allow Patchpoints to be used as block terminals. Patchpoints already allow
clients of B3 to emit whatever code they like. Patchpoints are friendly to B3's other
transformations because the client of the patchpoint has to play along with whatever
decisions B3 had made around the patchpoint: what registers got used, what the control flow
looks like, etc. Patchpoints can even be cloned by B3, and the client has to accommodate this
in their patchpoint generator. It turns out that using Patchpoints as terminals is quite
natural. We accomplish this by moving the successor edges out of ControlValue and into
BasicBlock, and removing ControlValue entirely. This way, any Value subclass can be a
terminal. It was already true that a Value is a terminal if value->effects().terminal, which
works great with Patchpoints since they control their effects via PatchpointValue::effects.
You can make your Patchpoint into a terminal by placing it at the end of a block and doing:

patchpoint->effects.terminal = true;

A Patchpoints in terminal position gets access to additional API in StackmapGenerationParams.
The generator can get a Box<Label> for each successor to its owning block. For example, to
implement a jump-table-based switch, you would make your patchpoint take the table index as
its sole input. Inside the generator, you allocate the jump table and emit a BaseIndex jump
that uses the jump table pointer (which will be a constant known to the generator since it
just allocated it) as the base and the patchpoint input as an index. The jump table can be
populated by MacroAssemblerCodePtr's computed by installing a link task to resolve the labels
to concrete locations. This change makes LowerMacros do such a lowering for Switches that can
benefit from jump tables. This happens recursively: if the original Switch is too sparse, we
will divide-and-conquer as before. If at any recursion step we find that the remaining cases
are dense and large enough to profit from a jump table, then those cases will be lowered to a
Patchpoint that does the table jump. This is a fun way to do stepwise lowering: LowerMacros
is essentially pre-lowering the Switch directly to machine code, and wrapping that machine
code in a Patchpoint so that the rest of the compiler doesn't have to know anything about
what happened. I suspect that in the future we will want to do other pre-lowerings this way,
whenever the B3 IR phases have some special knowledge about what machine code should be
emitted and it would be annoying to drag that knowledge through the rest of the compiler.

One downside of this change is that we used ControlValue in so many places. Most of this
patch involves removing references to ControlValue. It would be less than 100kb if it wasn't
for that. To make this a bit easier, I added "appendNewControlValue" methods to BasicBlock,
which allocate a Value and set the successors as if you had done "appendNew<ControlValue>".
This made for an easy search-and-replace in testb3 and FTLOutput. I filed bug 159440 to
remove this ugly stopgap method.

I think that we will also end up using this facility to extend our use of snippets. We
already use shared snippet generators for the generic forms of arithmetic. We will probably
also want to do this for generic forms of branches. This wouldn't have been possible prior to
this change, since there would have been no way to emit a control snippet in FTL. Now we can
emit control snippets using terminal patchpoints.

This is a ~30% speed-up on microbenchmarks that have big switch statements (~60 cases). It's
not a speed-up on mainstream benchmarks.

This also adds a new test to testb3 for terminal Patchpoints, Get, and Set. The FTL does not
currently use terminal Patchpoints directly, but we want this to be possible. It also doesn't
use Get/Set directly even though we want this to be possible. It's important to test these
since opcodes that result from lowering don't affect early phases, so we could have
regressions in early phases related to these opcodes that wouldn't be caught by any JS test.
So, this adds a very basic threaded interpreter to testb3 for a Brainfuck-style language, and
tests it by having it run a program that prints the numbers 1..100 in a loop. Unlike a real
threaded interpreter, it uses a common dispatch block rather than having dispatch at the
terminus of each opcode. That's necessary because PolyJump is not cloneable. The state of the
interpreter is represented using Variables that we Get and Set, so it tests Get/Set as well.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::jump):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::jump):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::jmp_m):

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::append):
(JSC::B3::BasicBlock::appendNonTerminal):
(JSC::B3::BasicBlock::removeLast):
(JSC::B3::BasicBlock::appendIntConstant):
(JSC::B3::BasicBlock::clearSuccessors):
(JSC::B3::BasicBlock::appendSuccessor):
(JSC::B3::BasicBlock::setSuccessors):
(JSC::B3::BasicBlock::replaceSuccessor):
(JSC::B3::BasicBlock::addPredecessor):
(JSC::B3::BasicBlock::deepDump):
(JSC::B3::BasicBlock::appendNewControlValue):

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::numSuccessors):
(JSC::B3::BasicBlock::successor):
(JSC::B3::BasicBlock::successors):
(JSC::B3::BasicBlock::successorBlock):
(JSC::B3::BasicBlock::successorBlocks):
(JSC::B3::BasicBlock::numPredecessors):
(JSC::B3::BasicBlock::predecessor):
(JSC::B3::BasicBlock::frequency):

  • b3/B3BasicBlockInlines.h:

(JSC::B3::BasicBlock::replaceLastWithNew):
(JSC::B3::BasicBlock::taken):
(JSC::B3::BasicBlock::notTaken):
(JSC::B3::BasicBlock::fallThrough):
(JSC::B3::BasicBlock::numSuccessors): Deleted.
(JSC::B3::BasicBlock::successor): Deleted.
(JSC::B3::BasicBlock::successors): Deleted.
(JSC::B3::BasicBlock::successorBlock): Deleted.
(JSC::B3::BasicBlock::successorBlocks): Deleted.

  • b3/B3BlockInsertionSet.cpp:

(JSC::B3::BlockInsertionSet::splitForward):

  • b3/B3BreakCriticalEdges.cpp:

(JSC::B3::breakCriticalEdges):

  • b3/B3CaseCollection.cpp: Added.

(JSC::B3::CaseCollection::dump):

  • b3/B3CaseCollection.h: Added.

(JSC::B3::CaseCollection::CaseCollection):
(JSC::B3::CaseCollection::operator[]):
(JSC::B3::CaseCollection::iterator::iterator):
(JSC::B3::CaseCollection::iterator::operator*):
(JSC::B3::CaseCollection::iterator::operator++):
(JSC::B3::CaseCollection::iterator::operator==):
(JSC::B3::CaseCollection::iterator::operator!=):
(JSC::B3::CaseCollection::begin):
(JSC::B3::CaseCollection::end):

  • b3/B3CaseCollectionInlines.h: Added.

(JSC::B3::CaseCollection::fallThrough):
(JSC::B3::CaseCollection::size):
(JSC::B3::CaseCollection::at):

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::CheckSpecial):
(JSC::B3::CheckSpecial::hiddenBranch):

  • b3/B3Common.h:

(JSC::B3::is64Bit):

  • b3/B3ControlValue.cpp: Removed.
  • b3/B3ControlValue.h: Removed.
  • b3/B3DataSection.cpp:

(JSC::B3::DataSection::DataSection):

  • b3/B3DuplicateTails.cpp:
  • b3/B3FixSSA.cpp:
  • b3/B3FoldPathConstants.cpp:
  • b3/B3LowerMacros.cpp:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3MathExtras.cpp:

(JSC::B3::powDoubleInt32):

  • b3/B3Opcode.h:

(JSC::B3::isConstant):
(JSC::B3::isDefinitelyTerminal):

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::generate):
(JSC::B3::PatchpointSpecial::isTerminal):
(JSC::B3::PatchpointSpecial::dumpImpl):

  • b3/B3PatchpointSpecial.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::resetReachability):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::lastPhaseName):
(JSC::B3::Procedure::byproducts):

  • b3/B3ReduceStrength.cpp:
  • b3/B3StackmapGenerationParams.cpp:

(JSC::B3::StackmapGenerationParams::unavailableRegisters):
(JSC::B3::StackmapGenerationParams::successorLabels):
(JSC::B3::StackmapGenerationParams::fallsThroughToSuccessor):
(JSC::B3::StackmapGenerationParams::proc):

  • b3/B3StackmapGenerationParams.h:

(JSC::B3::StackmapGenerationParams::gpScratch):
(JSC::B3::StackmapGenerationParams::fpScratch):

  • b3/B3SwitchValue.cpp:

(JSC::B3::SwitchValue::~SwitchValue):
(JSC::B3::SwitchValue::removeCase):
(JSC::B3::SwitchValue::hasFallThrough):
(JSC::B3::SwitchValue::setFallThrough):
(JSC::B3::SwitchValue::appendCase):
(JSC::B3::SwitchValue::dumpSuccessors):
(JSC::B3::SwitchValue::dumpMeta):
(JSC::B3::SwitchValue::cloneImpl):
(JSC::B3::SwitchValue::SwitchValue):

  • b3/B3SwitchValue.h:

(JSC::B3::SwitchValue::accepts):
(JSC::B3::SwitchValue::caseValues):
(JSC::B3::SwitchValue::cases):
(JSC::B3::SwitchValue::fallThrough): Deleted.
(JSC::B3::SwitchValue::size): Deleted.
(JSC::B3::SwitchValue::at): Deleted.
(JSC::B3::SwitchValue::operator[]): Deleted.
(JSC::B3::SwitchValue::iterator::iterator): Deleted.
(JSC::B3::SwitchValue::iterator::operator*): Deleted.
(JSC::B3::SwitchValue::iterator::operator++): Deleted.
(JSC::B3::SwitchValue::iterator::operator==): Deleted.
(JSC::B3::SwitchValue::iterator::operator!=): Deleted.
(JSC::B3::SwitchValue::begin): Deleted.
(JSC::B3::SwitchValue::end): Deleted.

  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::replaceWithPhi):
(JSC::B3::Value::replaceWithJump):
(JSC::B3::Value::replaceWithOops):
(JSC::B3::Value::dump):
(JSC::B3::Value::deepDump):
(JSC::B3::Value::dumpSuccessors):
(JSC::B3::Value::negConstant):
(JSC::B3::Value::typeFor):

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

(JSC::B3::Air::Code::addFastTmp):
(JSC::B3::Air::Code::addDataSection):
(JSC::B3::Air::Code::jsHash):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::isFastTmp):
(JSC::B3::Air::Code::setLastPhaseName):

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):
(JSC::B3::Air::PatchCustom::isTerminal):
(JSC::B3::Air::PatchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::CCallCustom::admitsStack):
(JSC::B3::Air::CCallCustom::isTerminal):
(JSC::B3::Air::CCallCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::ShuffleCustom::admitsStack):
(JSC::B3::Air::ShuffleCustom::isTerminal):
(JSC::B3::Air::ShuffleCustom::hasNonArgNonControlEffects):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/air/AirGenerationContext.h:
  • b3/air/AirInst.h:

(JSC::B3::Air::Inst::hasNonControlEffects):

  • b3/air/AirSimplifyCFG.cpp:

(JSC::B3::Air::simplifyCFG):

  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::shouldTryAliasingDef):
(JSC::B3::Air::Special::isTerminal):
(JSC::B3::Air::Special::hasNonArgNonControlEffects):

  • b3/air/AirSpecial.h:
  • b3/air/AirValidate.cpp:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:
  • ftl/FTLLowerDFGToB3.cpp:
  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::jump):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::ret):
(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::speculate):
(JSC::FTL::Output::trap):
(JSC::FTL::Output::anchor):
(JSC::FTL::Output::decrementSuperSamplerCount):
(JSC::FTL::Output::addIncomingToPhi):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::constIntPtr):
(JSC::FTL::Output::callWithoutSideEffects):
(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::phi):
(JSC::FTL::Output::addIncomingToPhi):

Websites/webkit.org:


Update documentation to reflect Patchpoint's new powers.

  • docs/b3/intermediate-representation.html:

LayoutTests:

  • js/regress/bigswitch-expected.txt: Added.
  • js/regress/bigswitch.html: Added.
  • js/regress/script-tests/bigswitch.js: Added.

(foo):

5:57 PM Changeset in webkit [203389] by Chris Dumez
  • 6 edits
    2 adds in trunk

DocType's publicId / systemId should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=159901

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline now that more checks regarding DocumentType serialization
are passing.

  • web-platform-tests/domparsing/xml-serialization-expected.txt:

Source/WebCore:

DocType's publicId / systemId should not be nullable. While they were
not marked as nullable in our IDL, they could be stored as null Strings
in our implementation depending on how the Node was constructed. This
led to subtle bugs where String() != emptyString().

In particular, Node.isEqualNode() would return false when DocumentType
nodes would mismatch because of their publicId / systemId being null
instead of the emptyString.

Serialization would DocumentType nodes would also be wrong when
publicId / systemId were empty Strings instead of null strings. The
new behavior now matches:

To address these issues, we now always store publicId / systemId as
non-null Strings inside the DocumentType class.

Test: fast/dom/DocumentType/isEqualNode.html

  • dom/DocumentType.cpp:

(WebCore::DocumentType::DocumentType):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendDocumentType):

LayoutTests:

Add test coverage for comparison of DocumentType nodes
using isEqualNode(). This tests used to fail and now passes.
The test passes in Firefox and Chrome as well.

  • fast/dom/DocumentType/isEqualNode-expected.txt: Added.
  • fast/dom/DocumentType/isEqualNode.html: Added.
5:47 PM Changeset in webkit [203388] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

If previous media session interruptions were prevented, still allow subsequent interruptions to try.
https://bugs.webkit.org/show_bug.cgi?id=157553
rdar://problem/25740804

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-18
Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/ios-simulator/media/video-interruption-suspendunderlock.html

When suspending under lock on iOS, there is first a resign active event, then a
suspend under lock. PiP prevents resign active from interrupting playback. But it should allow the
suspend under lock to interrupt playback.

Currently if there are nested interruptions only the first one is acted upon.

This change allows subsequent, nested interruptions to have a chance to interrupt playback if the
previous interruptions were ignored.

This test is for iPad only, so it must be run manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::beginInterruption):

  • testing/Internals.cpp:

(WebCore::Internals::beginMediaSessionInterruption):

LayoutTests:

When suspending under lock on iOS, there is first a resign active event, then a
suspend under lock. PiP prevents resign active from interrupting playback. But it should allow the
suspend under lock to interrupt playback.

Currently if there are nested interruptions only the first one is acted upon.

This change allows subsequent, nested interruptions to have a chance to interrupt playback if the
previous interruptions were ignored.

This test is for iPad only, so it must be run manually.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/media/video-interruption-suspendunderlock-expcted.txt: Added.
  • platform/ios-simulator/media/video-interruption-suspendunderlock.html: Added.
5:38 PM Changeset in webkit [203387] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't null out the IPC::Connection's XPC connection
https://bugs.webkit.org/show_bug.cgi?id=159911
rdar://problem/27018065

Reviewed by Alex Christensen.

The function that nulls out the XPC connection, platformInvalidate(), is called from the connection queue,
whereas the XPC connection is normally accessed from the main thread leading to inconsistencies when the
connection is being invalidated while the main thread is trying to access it.

Fix this by simply never nulling out the XPC connection. It will be released when the IPC::Connection is destroyed anyway.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::platformInvalidate):

5:24 PM Changeset in webkit [203386] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

EWS console logs doesn't go to log file
https://bugs.webkit.org/show_bug.cgi?id=159539
<rdar://problem/24464570>

Reviewed by David Kilzer.

  • Scripts/webkitpy/common/system/logutils.py:

(configure_logger_to_log_to_file): Added method to configure the logger to log to file.
(FileSystemHandler): Added class which uses logging.FileHandler as base class and supports writing
to filesystem. It also supports passing MockFilesystem.
(FileSystemHandler.init): Initialize the class and calls base class init.
(FileSystemHandler._open): Overrides the base class _open method to use filesystem object.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(AbstractEarlyWarningSystemTest.test_failing_tests_message): Added MockHost() parameter.
(_test_ews): Same.

  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue.begin_work_queue): Configure the logger to log to file.
(AbstractQueue._log_directory): Using filesystem object instead of os.
(AbstractQueue.queue_log_path): Same.
(AbstractQueue.init): Passed host parameter.
(PatchProcessingQueue.init): Same.
(CommitQueue.init): Same.
(AbstractReviewQueue.init): Same.
(StyleQueue.init): Same.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(TestCommitQueue): Passed MockHost() as host.
(TestCommitQueue.init): Same.
(TestQueue.init): Same.
(TestReviewQueue.init): Same.
(TestFeederQueue.init): Same.
(AbstractPatchQueueTest.test_next_patch): Same.
(PatchProcessingQueueTest.test_upload_results_archive_for_patch): Same.
(test_commit_queue_failure): Same.
(MockCommitQueueTask.results_from_patch_test_run): Same.
(test_rollout_lands): Same.
(test_non_valid_patch): Same.
(test_auto_retry): Same.
(test_style_queue_with_watch_list_exception): Same.

5:24 PM Changeset in webkit [203385] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Tapping on an apple.com tab in tab overview stutters when switching to it
https://bugs.webkit.org/show_bug.cgi?id=159904
<rdar://problem/27192350>

Reviewed by Simon Fraser.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
In any case where we get to waitForDidUpdateViewState (usually a tab switch),
if we have an outstanding didUpdate message, the Web process will not commit
a new layer tree until it receives the didUpdate message. However, since
waitForDidUpdateViewState synchronously blocks the UI process, we also
won't *send* the didUpdate message, so we block for the full timeout duration.

Instead, if we get to waitForDidUpdateViewState, just send the didUpdate without
waiting for the DisplayLink or anything else, because calling rAF slightly too
quickly, once, is certainly better than blocking the UI process for a whole second.

5:20 PM Changeset in webkit [203384] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

[GTK] ENABLE_OPENGL=OFF build broken since r201802
https://bugs.webkit.org/show_bug.cgi?id=159909

Reviewed by Antonio Gomes.

  • WebProcess/WebPage/LayerTreeHost.h: Add missing include.
5:13 PM Changeset in webkit [203383] by Brent Fulgham
  • 5 edits
    4 adds in trunk

Don't associate form-associated elements with forms in other trees.
https://bugs.webkit.org/show_bug.cgi?id=119451
<rdar://problem/27382946>

Change is based on the Blink change (patch by <adamk@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/0b33128be67e7845d495d5219614c02ccfe7a414>

Reviewed by Chris Dumez.

Source/WebCore:

Prevent elements from being associated with forms that are not part of the same home subtree.
This brings us in line with the WhatWG HTML specification as of September, 2013.

Tests: fast/forms/image-disconnected-during-parse.html

fast/forms/input-disconnected-during-parse.html

  • dom/Element.h:

(WebCore::Node::rootElement): Added.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::insertedInto): If the element is associated with a form that
is not part of the same tree, remove the association.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::insertedInto): Ditto.

LayoutTests:

  • fast/forms/image-disconnected-during-parse-expected.txt: Added.
  • fast/forms/image-disconnected-during-parse.html: Added.
  • fast/forms/input-disconnected-during-parse-expected.txt: Added.
  • fast/forms/input-disconnected-during-parse.html: Added.
4:56 PM Changeset in webkit [203382] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.42

New tag.

4:54 PM Changeset in webkit [203381] by andersca@apple.com
  • 14 edits
    5 adds in trunk/Source

WebKit nightly fails to build on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159902
rdar://problem/27365672

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

Source/WebCore:

  • Modules/applepay/cocoa/PaymentCocoa.mm:
  • Modules/applepay/cocoa/PaymentContactCocoa.mm:
  • Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

Use new PassKitSPI header.

  • WebCore.xcodeproj/project.pbxproj:

Add new PassKitSPI header.

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

  • platform/spi/cocoa/PassKitSPI.h: Added.

Add new PassKitSPI header.

Source/WebKit/mac:

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

Source/WebKit2:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

Use new PassKitSPI header.

Source/WTF:

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

4:39 PM Changeset in webkit [203380] by dino@apple.com
  • 15 edits in trunk

REGRESSION (r202950): Image zoom animations are broken at medium.com (159861)
https://bugs.webkit.org/show_bug.cgi?id=159906
<rdar://problem/27391725>

Reviewed by Simon Fraser.

The fix for webkit.org/b/157569 in r200769 broke AMP pages.
The followup fix for webkit.org/b/159450 in r202950 broke Medium pages.

Revert them both until we have better testing.

Source/WebCore:

  • css/CSSParser.cpp:

(WebCore::CSSParser::addPropertyWithPrefixingVariant):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::parseTransitionShorthand): Deleted.

  • css/CSSPropertyNames.in:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeShorthandProperty):
(WebCore::MutableStyleProperties::removeProperty):
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty):
(WebCore::MutableStyleProperties::setProperty):
(WebCore::getIndexInShorthandVectorForPrefixingVariant):
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty):
(WebCore::MutableStyleProperties::setPrefixingVariantProperty):
(WebCore::StyleProperties::asText): Deleted.

  • css/StyleProperties.h:

LayoutTests:

  • animations/fill-mode-forwards-zero-duration.html:
  • animations/play-state-start-paused.html:
  • animations/script-tests/spring-parsing.js:

(testSpring):

  • animations/spring-parsing-expected.txt:
  • animations/unprefixed-properties-expected.txt:
  • animations/unprefixed-properties.html:
  • fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt:
  • fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt:
4:16 PM Changeset in webkit [203379] by akling@apple.com
  • 8 edits
    3 adds in trunk

There should be a way to simulate memory pressure in layout tests
<https://webkit.org/b/159743>

Reviewed by Simon Fraser.

Source/WebCore:

Add three window.internal APIs:

  • boolean isUnderMemoryPressure (readonly attribute)
  • void beginSimulatedMemoryPressure()
  • void endSimulatedMemoryPressure()

These make it possible to write tests that exercise behaviors that only
occur during memory pressure situations.

I also implemented the "org.WebKit.lowMemory" notification handler using the new API.

Test: memory/memory-pressure-simulation.html

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::beginSimulatedMemoryPressure):
(WebCore::MemoryPressureHandler::endSimulatedMemoryPressure):

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::isUnderMemoryPressure):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::MemoryPressureHandler::install):

  • testing/Internals.cpp:

(WebCore::Internals::isUnderMemoryPressure):
(WebCore::Internals::beginSimulatedMemoryPressure):
(WebCore::Internals::endSimulatedMemoryPressure):

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

LayoutTests:

Add a basic test for the new APIs.

  • memory/memory-pressure-simulation-expected.txt: Added.
  • memory/memory-pressure-simulation.html: Added.
3:46 PM Changeset in webkit [203378] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

[iOS] PDFDocumentImage should cache only a sub image of the PDF when caching the whole image is expensive
https://bugs.webkit.org/show_bug.cgi?id=158715

Source/WebCore:

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-07-18
Reviewed by Dean Jackson.

Test: fast/images/displaced-non-cached-pdf.html

For iOS, we need to ensure the size of the cached PDF images will not
exceed some limit. Also we should be caching only a sub image of the PDF
if caching the whole image will exceed the memory limit.

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::setCachedPDFImageEnabled):

  • page/Settings.h:

(WebCore::Settings::isCachedPDFImageEnabled):

Add an option to disable caching the PDF images.

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::setCachedPDFImageEnabled):

Allow the caller of draw() to disable caching the PDF images.

(WebCore::PDFDocumentImage::cacheParametersMatch):

Match the context dirty rectangle with the cached image rectangle.

(WebCore::transformContextForPainting):

When preparing the context for drawing the PDF, take the location
of the destination rectangle into account. We do not need to scale
the location of the source rectangle because we scale the size of
the rectangle but we don't scale the whole coordinate system.

(WebCore::cachedImageRect):

Calculate the rectangle of the cached image such that it does not
exceed the limit. Start from the center of the dirty rectangle and
then expand around it.

(WebCore::PDFDocumentImage::decodedSizeChanged):

In addition to notifying the ImageObserver, it keeps track of the size
of all the cached PDF images.

(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):

Ensure the size of all the cached images does not exceed the limit

(WebCore::PDFDocumentImage::destroyDecodedData):

  • platform/graphics/cg/PDFDocumentImage.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

Pass the option to disable caching the PDF images to PDFDocumentImage.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setCachedPDFImageEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Add an internal option to disable caching the PDF images.

LayoutTests:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-07-18
Reviewed by Dean Jackson.

Make sure the PDF image will be displayed at the correct position if caching
the PDF image is disabled.

  • fast/images/displaced-non-cached-pdf-expected.html: Added.
  • fast/images/displaced-non-cached-pdf.html: Added.
3:33 PM Changeset in webkit [203377] by Chris Dumez
  • 9 edits
    2 adds
    6 deletes in trunk

The 2 first parameters to addEventListener() / removeEventListener() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=158008

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

The 2 first parameters to addEventListener() / removeEventListener() should be
mandatory:

Firefox 46 and Chrome 50 both match the specification and throw an exception when those
parameters are omitted. However, those parameters were marked as optional in WebKit and
the calls were no-ops if those parameters were omitted. This patch aligns our behavior
with the specification and other browsers.

Test: fast/dom/eventtarget-api-parameters.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GetFunctionLength): Deleted.

  • dom/EventTarget.idl:

LayoutTests:

  • fast/dom/Window/window-legacy-event-listener-expected.txt: Removed.
  • fast/dom/Window/window-legacy-event-listener.html: Removed.
  • fast/dom/XMLHttpRequest-legacy-event-listener-expected.txt: Removed.
  • fast/dom/XMLHttpRequest-legacy-event-listener.html: Removed.
  • fast/dom/node-legacy-event-listener-expected.txt: Removed.
  • fast/dom/node-legacy-event-listener.html: Removed.

Drop legacy tests that expect the addEventListener() / removeEventListener()
parameters to be optional.

  • fast/dom/eventtarget-api-parameters-expected.txt: Added.
  • fast/dom/eventtarget-api-parameters.html: Added.

Add layout test to check that the 2 first parameters of addEventListener()
and removeEventListener() are now mandatory. It also checks that the
second parameter is nullable.

  • media/video-remote-control-playpause.html:

Drop useless call to addEventListener() without a listener as it now throws.

3:20 PM Changeset in webkit [203376] by msaboff@apple.com
  • 3 edits
    1 add in trunk/Source
ASSERTION FAILED: : (year >= 1970 && yearday >= 0)
(year < 1970 && yearday < 0) -- WTF/wtf/DateMath.cpp

https://bugs.webkit.org/show_bug.cgi?id=159883

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

New test.

  • tests/stress/regress-159883.js: Added.

Source/WTF:

The function daysFrom1970ToYear() takes an integer year and returns a double result.
The calculation uses 1970 as a baseline year and subtracts 1970 from the argument year.
It does that subtraction using integer arithmetic, which given negative years close to
INT_MIN can underflow as a result of subtracting 1970. Since we want a double result,
the fix is to cast year as a double before the subtraction, which eliminates the underflow.

  • wtf/DateMath.cpp:

(WTF::daysFrom1970ToYear):

2:33 PM Changeset in webkit [203375] by fpizlo@apple.com
  • 21 edits
    2 adds in trunk/Source/JavaScriptCore

MarkedBlocks should know that they can be used for more than JSCells
https://bugs.webkit.org/show_bug.cgi?id=159643

Reviewed by Geoffrey Garen.

This teaches the Heap that a MarkedBlock may hold either JSCells, or Auxiliary, which is
not a JSCell. It teaches the heap and all of the things that walk the heap to ignore
non-JSCells whenever they are looking for global objects, JSObjects, and things to trace
for debugging or profiling. The idea is that we will be able to allocate butterflies and
typed array backing stores as Auxiliary in MarkedSpace rather than allocating those things
in CopiedSpace. That's what bug 159658 is all about.

This gives us a new type, called HeapCell, which is just meant to be a class distinct from
JSCell or any type we would use for Auxiliary. For convenience, JSCell is a subclass of
HeapCell. HeapCell has an enum called HeapCell::Kind, which is either HeapCell::JSCell or
HeapCell::Auxiliary. MarkedSpace no longer speaks of JSCells directly except when dealing
with destruction.

This change required doing a lot of stuff to all of those functor callbacks, since they
now take HeapCell* instead of JSCell* and they take an extra HeapCell::Kind argument to
tell them if they are dealing with JSCells or Auxiliary. I figured that this would be as
good a time as any to convert those functors to being lambda-compatible. This means that
operator() must be const. In some cases, converting the operator() to be const would have
taken more work than just turning the whole thing into a lambda. Whenever this was the
case, I converted the code to use lambdas. I left a lot of functors alone. In cases where
the functor would benefit from being a lambda, for example because it would get rid of
const_casts or mutables, I put in a FIXME referencing bug 159644.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • debugger/Debugger.cpp:

(JSC::Debugger::SetSteppingModeFunctor::SetSteppingModeFunctor):
(JSC::Debugger::SetSteppingModeFunctor::operator()):
(JSC::Debugger::ToggleBreakpointFunctor::ToggleBreakpointFunctor):
(JSC::Debugger::ToggleBreakpointFunctor::operator()):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::ClearCodeBlockDebuggerRequestsFunctor):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::operator()):
(JSC::Debugger::ClearDebuggerRequestsFunctor::ClearDebuggerRequestsFunctor):
(JSC::Debugger::ClearDebuggerRequestsFunctor::operator()):

  • heap/CodeBlockSet.h:

(JSC::CodeBlockSet::iterate):

  • heap/HandleSet.h:

(JSC::HandleNode::next):
(JSC::HandleSet::forEachStrongHandle):

  • heap/Heap.cpp:

(JSC::GatherHeapSnapshotData::GatherHeapSnapshotData):
(JSC::GatherHeapSnapshotData::operator()):
(JSC::RemoveDeadHeapSnapshotNodes::RemoveDeadHeapSnapshotNodes):
(JSC::RemoveDeadHeapSnapshotNodes::operator()):
(JSC::Heap::protectedGlobalObjectCount):
(JSC::Heap::globalObjectCount):
(JSC::Heap::protectedObjectCount):
(JSC::Heap::protectedObjectTypeCounts):
(JSC::Heap::objectTypeCounts):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::MarkedBlockSnapshotFunctor::MarkedBlockSnapshotFunctor):
(JSC::MarkedBlockSnapshotFunctor::operator()):
(JSC::Zombify::visit):
(JSC::Zombify::operator()):
(JSC::Heap::zombifyDeadObjects):
(JSC::Heap::flushWriteBarrierBuffer):

  • heap/Heap.h:

(JSC::Heap::handleSet):
(JSC::Heap::handleStack):

  • heap/HeapCell.cpp: Added.

(WTF::printInternal):

  • heap/HeapCell.h: Added.

(JSC::HeapCell::HeapCell):
(JSC::HeapCell::zap):
(JSC::HeapCell::isZapped):

  • heap/HeapInlines.h:

(JSC::Heap::deprecatedReportExtraMemory):
(JSC::Heap::forEachCodeBlock):
(JSC::Heap::forEachProtectedCell):
(JSC::Heap::allocateWithDestructor):

  • heap/HeapStatistics.cpp:

(JSC::StorageStatistics::visit):
(JSC::StorageStatistics::operator()):

  • heap/HeapVerifier.cpp:

(JSC::GatherLiveObjFunctor::visit):
(JSC::GatherLiveObjFunctor::operator()):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateBlock):
(JSC::MarkedAllocator::addBlock):
(JSC::MarkedAllocator::reset):
(JSC::MarkedAllocator::lastChanceToFinalize):
(JSC::LastChanceToFinalize::operator()): Deleted.

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::takeLastActiveBlock):
(JSC::MarkedAllocator::resumeAllocating):
(JSC::MarkedAllocator::forEachBlock):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::create):
(JSC::MarkedBlock::destroy):
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::callDestructor):
(JSC::MarkedBlock::specializedSweep):
(JSC::SetNewlyAllocatedFunctor::SetNewlyAllocatedFunctor):
(JSC::SetNewlyAllocatedFunctor::operator()):
(JSC::MarkedBlock::stopAllocating):
(JSC::MarkedBlock::didRetireBlock):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::CountFunctor::CountFunctor):
(JSC::MarkedBlock::CountFunctor::count):
(JSC::MarkedBlock::CountFunctor::returnValue):
(JSC::MarkedBlock::needsDestruction):
(JSC::MarkedBlock::cellKind):
(JSC::MarkedBlock::size):
(JSC::MarkedBlock::clearNewlyAllocated):
(JSC::MarkedBlock::isMarkedOrNewlyAllocated):
(JSC::MarkedBlock::isLive):
(JSC::MarkedBlock::isLiveCell):
(JSC::MarkedBlock::forEachCell):
(JSC::MarkedBlock::forEachLiveCell):
(JSC::MarkedBlock::forEachDeadCell):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::~MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::sweep):
(JSC::MarkedSpace::zombifySweep):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::stopAllocating):
(JSC::MarkedSpace::resumeAllocating):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::shrink):
(JSC::clearNewlyAllocatedInBlock):
(JSC::MarkedSpace::clearNewlyAllocated):
(JSC::MarkedSpace::clearMarks):
(JSC::Free::Free): Deleted.
(JSC::Free::operator()): Deleted.
(JSC::FreeOrShrink::FreeOrShrink): Deleted.
(JSC::FreeOrShrink::operator()): Deleted.
(JSC::VisitWeakSet::VisitWeakSet): Deleted.
(JSC::VisitWeakSet::operator()): Deleted.
(JSC::ReapWeakSet::operator()): Deleted.
(JSC::LastChanceToFinalize::operator()): Deleted.
(JSC::StopAllocatingFunctor::operator()): Deleted.
(JSC::ResumeAllocatingFunctor::operator()): Deleted.
(JSC::ClearNewlyAllocated::operator()): Deleted.
(JSC::VerifyNewlyAllocated::operator()): Deleted.

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::forEachLiveCell):
(JSC::MarkedSpace::forEachDeadCell):
(JSC::MarkedSpace::allocatorFor):
(JSC::MarkedSpace::allocateWithDestructor):
(JSC::MarkedSpace::forEachBlock):
(JSC::MarkedSpace::didAddBlock):
(JSC::MarkedSpace::objectCount):
(JSC::MarkedSpace::size):
(JSC::MarkedSpace::capacity):
(JSC::ClearMarks::operator()): Deleted.
(JSC::Sweep::operator()): Deleted.
(JSC::ZombifySweep::operator()): Deleted.
(JSC::MarkCount::operator()): Deleted.
(JSC::Size::operator()): Deleted.

  • runtime/JSCell.h:

(JSC::JSCell::zap): Deleted.
(JSC::JSCell::isZapped): Deleted.

  • runtime/JSCellInlines.h:

(JSC::allocateCell):
(JSC::JSCell::isObject):
(JSC::isZapped): Deleted.

  • runtime/JSGlobalObject.cpp:
  • tools/JSDollarVMPrototype.cpp:

(JSC::CellAddressCheckFunctor::CellAddressCheckFunctor):
(JSC::CellAddressCheckFunctor::operator()):

2:15 PM Changeset in webkit [203374] by Brent Fulgham
  • 5 edits
    4 deletes in trunk

Unreviewed, rolling out r203373.

Unaddressed

Reverted changeset:

"Don't associate form-associated elements with forms in other
trees."
https://bugs.webkit.org/show_bug.cgi?id=119451
http://trac.webkit.org/changeset/203373

2:12 PM Changeset in webkit [203373] by Brent Fulgham
  • 5 edits
    4 adds in trunk

Don't associate form-associated elements with forms in other trees.
https://bugs.webkit.org/show_bug.cgi?id=119451
<rdar://problem/27382946>

Change is based on the Blink change (patch by <adamk@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/0b33128be67e7845d495d5219614c02ccfe7a414>

Reviewed by Zalan Bujtas.

Source/WebCore:

Prevent elements from being associated with forms that are not part of the same home subtree.
This brings us in line with the WhatWG HTML specification as of September, 2013.

Tests: fast/forms/image-disconnected-during-parse.html

fast/forms/input-disconnected-during-parse.html

  • dom/NodeTraversal.h:

(WebCore::NodeTraversal::highestAncestorOrSelf): Added.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::insertedInto): If the element is associated with a form that
is not part of the same tree, remove the association.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::insertedInto): Ditto.

LayoutTests:

  • fast/forms/image-disconnected-during-parse-expected.txt: Added.
  • fast/forms/image-disconnected-during-parse.html: Added.
  • fast/forms/input-disconnected-during-parse-expected.txt: Added.
  • fast/forms/input-disconnected-during-parse.html: Added.
1:59 PM Changeset in webkit [203372] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/handle-user-delete.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=159896

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:41 PM Changeset in webkit [203371] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit2

Mail contents are temporarily obscured by black rectangles when returning from suspend and in app switcher
https://bugs.webkit.org/show_bug.cgi?id=159894
<rdar://problem/26973202>

Reviewed by Simon Fraser.

  • UIProcess/ApplicationStateTracker.h:
  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidCreateWindowContext):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didMoveToWindow]):
(-[WKContentView _applicationDidCreateWindowContext]):
(-[WKContentView _applicationWillEnterForeground]): Deleted.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView didMoveToWindow]):
(-[WKPDFView _applicationDidCreateWindowContext]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
Hide content at window context creation time, instead of when the application
becomes foregrounded. Otherwise, background snapshots (which create/destroy
window contexts, but do not bring the app into the foreground) can have
parented layers that have volatile surfaces in them. In the normal case,
we will subsequently get foregrounded and re-build the layer tree; in the
background snapshot case, we will just have an empty layer tree.

In the future, we should consider making ApplicationStateTracker use
window context creation/destruction to drive web process lifetime, so
that we can actually paint correctly for background snapshots.

1:31 PM Changeset in webkit [203370] by fpizlo@apple.com
  • 8 edits
    38 adds in trunk

Source/JavaScriptCore:
Repeatedly creating and destroying workers that enqueue DFG plans can outpace the DFG worklist, which then causes VM shutdown to stall, which then causes memory growth
https://bugs.webkit.org/show_bug.cgi?id=159754

Reviewed by Geoffrey Garen.

If you create and destroy workers at a high rate and those workers enqueue some DFG plans
that are still not compiled at the time that the worker is closed, then the closed workers
end up stalling in VM::~VM waiting for the DFG worklist thread to finish those plans. Since
we don't actually cancel the plans, it's easy to create a situation where the workers
outpace the DFG worklist, especially if you create many workers at a time and each one
finishes just after enqueueing those plans.

The solution is to allow VM::~VM to remove plans from the DFG worklist that are related to
that VM but aren't currently being worked on. That turns out to be an easy change.

I have a test that repros this, but it's quite long-running. I call it workers/bomb.html. We
may want to exclude it from test runs because of how long it takes.

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::removeNonCompilingPlansForVM):
(JSC::DFG::Worklist::queueLength):
(JSC::DFG::Worklist::runThread):

  • dfg/DFGWorklist.h:
  • runtime/VM.cpp:

(JSC::VM::~VM):

LayoutTests:
Repeatedly creating and destroying workers that enqueue DFG plans can outpace the DFG worklist, which then causes VM shutdown to stall, which then causes a memory growth
https://bugs.webkit.org/show_bug.cgi?id=159754

Reviewed by Geoffrey Garen.

Adds two tests that create a lot of workers that do sophisticated things. These are
long-running tests so we may want to skip them. It's OK if we end up only running them
manually occasionally.

  • workers: Added.
  • workers/bomb.html: Added.
  • workers/bomb-expected.txt: Added.
  • workers/bomb-with-v8.html: Added.
  • workers/tests: Added.
  • workers/tests/3d-cube.js: Added.
  • workers/tests/3d-morph.js: Added.
  • workers/tests/3d-raytrace.js: Added.
  • workers/tests/access-binary-trees.js: Added.
  • workers/tests/access-fannkuch.js: Added.
  • workers/tests/access-nbody.js: Added.
  • workers/tests/access-nsieve.js: Added.
  • workers/tests/bitops-3bit-bits-in-byte.js: Added.
  • workers/tests/bitops-bits-in-byte.js: Added.
  • workers/tests/bitops-bitwise-and.js: Added.
  • workers/tests/bitops-nsieve-bits.js: Added.
  • workers/tests/controlflow-recursive.js: Added.
  • workers/tests/crypto-aes.js: Added.
  • workers/tests/crypto-md5.js: Added.
  • workers/tests/crypto-sha1.js: Added.
  • workers/tests/date-format-tofte.js: Added.
  • workers/tests/date-format-xparb.js: Added.
  • workers/tests/math-cordic.js: Added.
  • workers/tests/math-partial-sums.js: Added.
  • workers/tests/math-spectral-norm.js: Added.
  • workers/tests/regexp-dna.js: Added.
  • workers/tests/string-base64.js: Added.
  • workers/tests/string-fasta.js: Added.
  • workers/tests/string-tagcloud.js: Added.
  • workers/tests/string-unpack-code.js: Added.
  • workers/tests/string-validate-input.js: Added.
  • workers/tests/v8-crypto.js: Added.
  • workers/tests/v8-deltablue.js: Added.
  • workers/tests/v8-earley-boyer.js: Added.
  • workers/tests/v8-raytrace.js: Added.
  • workers/tests/v8-regexp.js: Added.
  • workers/tests/v8-richards.js: Added.
  • workers/tests/v8-splay.js: Added.
1:16 PM Changeset in webkit [203369] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/abort-requests-cancelled.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=156070

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:12 PM Changeset in webkit [203368] by fpizlo@apple.com
  • 6 edits
    9 adds in trunk

Object.preventExtensions/seal/freeze makes code much slower
https://bugs.webkit.org/show_bug.cgi?id=143247

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This has been a huge pet peeve of mine for a long time, but I was always afraid of fixing
it because I thought that it would be hard. Well, it looks like it's not hard at all.

The problem is that you cannot mutate a structure that participates in transition caching.
You can only clone the structure and mutate that one. But if you do this, you have to make
a hard choice:

1) Clone the structure without caching the transition. This is what the code did before

this change. It's the most obvious choice, but it introduces an uncacheable transition
that leads to an explosion of structures, which then breaks all inline caches.


2) Perform one of the existing cacheable transitions. Cacheable transitions can either add

properties or they can do one of the NonPropertyTransitions, which until now have been
restricted to just IndexingType transitions. So, only adding transitions or making
certain prescribed changes to the indexing type count as cacheable transitions.


This change decouples NonPropertyTransition from IndexingType and adds three new kinds of
transitions: PreventExtensions, Seal, and Freeze. We have to give any cacheable transition
a name that fully disambiguates this transition from any other, so that the transition can
be cached. Since we're already giving them names in an enum, I figured that the most
pragmatic way to implement them is to have Structure::nonPropertyTransition() case on the
NonPropertyTransition and implement all of the mutations associated with that transition.
The alternative would have been to allow callers of nonPropertyTransition() to supply
something like a lambda that describes the mutation, but this seemed awkward since each
set of mutations has to anyway be tied to one of the NonPropertyTransition members.

This is an enormous speed-up on microbenchmarks that use Object.preventExtensions(),
Object.seal(), or Object.freeze(). I don't know if "real" benchmarks use these features
and I don't really care. This should be fast.

  • runtime/JSObject.cpp:

(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::switchToSlowPutArrayStorage):

  • runtime/Structure.cpp:

(JSC::Structure::suggestedArrayStorageTransition):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::toUncacheableDictionaryTransition):
(JSC::Structure::sealTransition):
(JSC::Structure::freezeTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::pin):
(JSC::Structure::pinForCaching):
(JSC::Structure::allocateRareData):

  • runtime/Structure.h:
  • runtime/StructureTransitionTable.h:

(JSC::toAttributes):
(JSC::changesIndexingType):
(JSC::newIndexingType):
(JSC::preventsExtensions):
(JSC::setsDontDeleteOnAllProperties):
(JSC::setsReadOnlyOnAllProperties):

LayoutTests:

These tests now run ~25x faster.

  • js/regress/freeze-and-do-work-expected.txt: Added.
  • js/regress/freeze-and-do-work.html: Added.
  • js/regress/prevent-extensions-and-do-work-expected.txt: Added.
  • js/regress/prevent-extensions-and-do-work.html: Added.
  • js/regress/script-tests/freeze-and-do-work.js: Added.

(Foo):

  • js/regress/script-tests/prevent-extensions-and-do-work.js: Added.

(Foo):

  • js/regress/script-tests/seal-and-do-work.js: Added.

(Foo):

  • js/regress/seal-and-do-work-expected.txt: Added.
  • js/regress/seal-and-do-work.html: Added.
1:12 PM Changeset in webkit [203367] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm as flaky on mac-debug WK1
https://bugs.webkit.org/show_bug.cgi?id=159893

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:03 PM Changeset in webkit [203366] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/video-load-preload-metadata.html as flaky on Mac.
https://bugs.webkit.org/show_bug.cgi?id=128312

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:51 PM Changeset in webkit [203365] by fpizlo@apple.com
  • 10 edits in trunk/Source

RegisterSet should use a Bitmap instead of a BitVector so that it never allocates memory and is trivial to copy
https://bugs.webkit.org/show_bug.cgi?id=159863

Reviewed by Saam Barati.

Source/JavaScriptCore:

Switch RegisterSet set to Bitmap because Bitmap doesn't ever allocate memory and can be
assigned by memcpy. This should be a performance improvement for compiler code that does a
lot of things with RegisterSet. For example, it's one of the fundamental data structures in
Air. The previous use of BitVector meant that almost every operation on RegisterSet would
have a slow path call. On ARM64, it would mean memory allocation for any RegisterSet that
used all available registers.

This meant adding even more GPR/FPR reflection to the MacroAssembler API: we now have consts
called numGPRs and numFPRs. This is necessary to statically size the Bitmap in RegisterSet.

Here's the breakdown of sizes of RegisterSet on different CPUs:

x86-32: 8 bits (GPRs) + 8 bits (FPRs) + 1 bit (is deleted) = 1x uint32_t.
x86-64: 16 bits + 16 bits + 1 bit = 2x uint32_t.
ARMv7: 16 bits + 16 bits + 1 bit = 2x uint32_t.
ARM64: 32 bits + 32 bits + 1 bit = 3x uint32_t.

  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerX86.h:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::scratchRegister):

  • assembler/MacroAssemblerX86_64.h:
  • jit/RegisterSet.h:

(JSC::RegisterSet::set):
(JSC::RegisterSet::get):
(JSC::RegisterSet::setAll):
(JSC::RegisterSet::merge):
(JSC::RegisterSet::filter):
(JSC::RegisterSet::exclude):
(JSC::RegisterSet::numberOfSetRegisters):
(JSC::RegisterSet::RegisterSet):
(JSC::RegisterSet::isEmptyValue):
(JSC::RegisterSet::isDeletedValue):
(JSC::RegisterSet::operator==):
(JSC::RegisterSet::operator!=):
(JSC::RegisterSet::hash):
(JSC::RegisterSet::forEach):
(JSC::RegisterSet::setMany):

Source/WTF:

Give Bitmap all of the power of BitVector (except for automatic resizing). This means a
variant of set() that takes a bool, and a bunch of helper methods (merge, filter, exclude,
forEachSetBit, ==, !=, and hash).

  • wtf/Bitmap.h:

(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::isFull):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::forEachSetBit):
(WTF::=):
(WTF::WordType>::hash):

12:32 PM Changeset in webkit [203364] by fpizlo@apple.com
  • 31 edits
    12 adds in trunk

DFG and FTL should support op_call_eval
https://bugs.webkit.org/show_bug.cgi?id=159786

Reviewed by Saam Barati.
Source/JavaScriptCore:


This adds support for op_call_eval in DFG and FTL by brute force:

  • There is now a CallEval() node type, which compiles exactly the same way that we do in baseline.


  • We teach the DFG and bytecode liveness that the scope register and 'this' are read by CallEval()/op_call_eval.


We can compile eval quite well, except that right now we cannot inline functions that use
eval. It would be nice to do that, but the payoff is probably smaller. "Don't inline users
of eval" may even be an OK inlining heuristic. Not inlining users of eval allows me to
reuse the baseline implementation, which is really great. Otherwise, I'd have to get rid
of things like the rogue reads of scope register and 'this'.

The goal here is to produce speed-ups for code that has functions that do both eval and
some computational stuff. Obviously, we're not producing any benefit for the eval itself.
But now the other stuff in a function that uses eval will get to participate in
optimization.

This is a huge speed-up on microbenchmarks.

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printCallOp):
(JSC::CodeBlock::dumpBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::setLocal):
(JSC::DFG::ByteCodeParser::setArgument):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::needsScopeRegister):
(JSC::DFG::Graph::needsFlushedThis):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitDumbVirtualCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitTypeOf):

  • jit/JITCall.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITOperations.cpp:
  • tests/stress/exit-then-eval.js: Added.

(foo):

  • tests/stress/force-exit-then-eval-dfg.js: Added.

(foo):

  • tests/stress/force-exit-then-eval.js: Added.

(foo):

LayoutTests:

  • js/regress/eval-compute-expected.txt: Added.
  • js/regress/eval-compute.html: Added.
  • js/regress/eval-not-eval-compute-args-expected.txt: Added.
  • js/regress/eval-not-eval-compute-args.html: Added.
  • js/regress/eval-not-eval-compute-expected.txt: Added.
  • js/regress/eval-not-eval-compute.html: Added.
  • js/regress/script-tests/eval-compute.js: Added.

(foo):

  • js/regress/script-tests/eval-not-eval-compute-args.js: Added.

(foo):
(i.result.foo):

  • js/regress/script-tests/eval-not-eval-compute.js: Added.

(foo):
(i.result.foo):

12:23 PM Changeset in webkit [203363] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/WebCore

Move MediaSampleAVFObjC into its own file
https://bugs.webkit.org/show_bug.cgi?id=159796
<rdar://problem/27362488>

In preparation for a feature that uses MediaSampleAVFObjC, but does
not need SourceBufferPrivateAVFObjC, it is beneficial to move
MediaSampleAVFObjC to its own file.

Patch by George Ruan <gruan@apple.com> on 2016-07-18
Reviewed by Eric Carlson.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h: Allow setting trackID to associate

MediaSample id with MediaStreamTrackPrivate id.

  • platform/graphics/avfoundation/MediaSampleAVFObjC.h: Added.
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: Moved

from MediaSampleAVFObjC
(WebCore::MediaSampleAVFObjC::presentationTime):
(WebCore::MediaSampleAVFObjC::decodeTime):
(WebCore::MediaSampleAVFObjC::duration):
(WebCore::MediaSampleAVFObjC::sizeInBytes):
(WebCore::MediaSampleAVFObjC::platformSample):
(WebCore::CMSampleBufferIsRandomAccess):
(WebCore::MediaSampleAVFObjC::flags):
(WebCore::MediaSampleAVFObjC::presentationSize):
(WebCore::MediaSampleAVFObjC::dump):
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy):
(WebCore::MediaSampleAVFObjC::setTimestamps):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

Moved MediaSampleAVFObjC to its own file.
(WebCore::MediaSampleAVFObjC::platformSample): Deleted.
(WebCore::CMSampleBufferIsRandomAccess): Deleted.
(WebCore::MediaSampleAVFObjC::flags): Deleted.
(WebCore::MediaSampleAVFObjC::presentationSize): Deleted.
(WebCore::MediaSampleAVFObjC::dump): Deleted.
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy): Deleted.
(WebCore::MediaSampleAVFObjC::setTimestamps): Deleted.

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:
12:18 PM Changeset in webkit [203362] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[MSE][Mac] Pass AVSampleBufferDisplayLayer HDCP status to a newly created key session
https://bugs.webkit.org/show_bug.cgi?id=159812
<rdar://problem/27371624>

Reviewed by Jon Lee.

No new tests, it isn't possible to test this with our current testing infrastructure.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::setCDMSession): Call layerDidReceiveError if there has
been an HDCP error.
(WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError): Remember an HDCP error.

12:12 PM Changeset in webkit [203361] by fpizlo@apple.com
  • 25 edits
    6 adds in trunk

DFG should really support jneq_ptr
https://bugs.webkit.org/show_bug.cgi?id=159700

Reviewed by Keith Miller.

Source/JavaScriptCore:

Prior to this change, DFG statically speculated that jneq_ptr would always fall through. This
meant that programs that called o.apply() or o.call() where apply or call weren't the
expected ones (i.e. the function.prototype.apply/call) would rage-recompile forever.

This adds profiling to jneq_ptr. We now know if it always falls through or sometimes doesn't.
If it sometimes doesn't, we now emit an actual control flow diamond. I decided to add a new
NodeType for "equal pointer", since none of the existing ones really captured that. For
example, there was no way to express "equal pointer" for strings or symbols. We don't use it
for that right now, but we might, and if we did, then it would be hugely surprising that the
DFG interpreted this as value equality. So, the DFG now has CompareEqPtr, which means exactly
what jneq_ptr means by "equal pointer".

This is an enormous speed-up on microbenchmarks. I would assume that it's a speed-up on some
real things, too, but I don't know that for a fact.

  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
(JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
(JSC::BytecodeGenerator::emitExpectedFunctionSnippet):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):

  • dfg/DFGNodeType.h:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileRecordRegExpCachedResult):
(JSC::DFG::SpeculativeJIT::compileCompareEqPtr):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEqPtr):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareLess):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEqConstant): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

LayoutTests:

These tests now run super fast.

  • js/regress/apply-not-apply-expected.txt: Added.
  • js/regress/apply-not-apply.html: Added.
  • js/regress/call-or-not-call-expected.txt: Added.
  • js/regress/call-or-not-call.html: Added.
  • js/regress/script-tests/apply-not-apply.js: Added.

(let.o.apply):
(foo):

  • js/regress/script-tests/call-or-not-call.js: Added.

(let.o.call):
(foo):

12:12 PM Changeset in webkit [203360] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/JavaScriptCore

Merged r203351. rdar://problem/27327111

12:07 PM Changeset in webkit [203359] by bshafiei@apple.com
  • 12 edits in branches/safari-602-branch/Source

Merge patch for rdar://problem/27360961.

11:57 AM Changeset in webkit [203358] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-002.html as flaky on ios-sim
https://bugs.webkit.org/show_bug.cgi?id=159881

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:57 AM Changeset in webkit [203357] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking http/tests/loading/basic-auth-resend-wrong-credentials.html as flaky on Mac and iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=159884

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:55 AM Changeset in webkit [203356] by fpizlo@apple.com
  • 7 edits
    3 adds in trunk

OSR entry into DFG has problems with lexical scoping
https://bugs.webkit.org/show_bug.cgi?id=159687

Reviewed by Saam Barati.
Source/JavaScriptCore:


What a fun bug! It turns out that uses of lexical scoping, like "let", may sometimes cause us
to not be able to OSR enter into a loop from baseline to DFG. The bug is in a mitigation for
a different bug, which in turn had a mitigation for yet another bug, so the story here is a
long one.

DFG OSR entry has long had a mitigation for the following bug: the DFG bytecode parser may
choose to make us always OSR exit at some instruction if it thinks that it doesn't have
enough profiling for that instruction. We will do this if some kinds of put_by_id only
execute once, for example. This causes problems for loopy benchmarks like this:

put_by_id(something crazy);
for (var i = 0; i < bigNumber; ++i) simpleMath;


In this case, the put_by_id will have only executed once, and since it did something crazy
that one time, the bytecode parser will replace it with ForceOSRExit.

This creates an OSR entry bug: DFG CFA will then prove that the loop is unreachable, and will
tell OSR entry that it's impossible to enter into that loop.

We mitigated this bug a long time ago by recording mustHandleValues for loops at which we
want to enter. We inject these values into DFG CFA and we force CFA to recognize that the
loop is reachable even if CFA wanted to prove that it wasn't.

But this leads to another bug: we need to scrape the values from the stack inside
operationOptimize() and then we need to reason about them in the compiler. Some of those
values may be garbage, which would cause pandemonium inside the compiler. We also mitigated
this bug, by only recording the "vars", since those are guaranteed to be reset by op_enter.

And that's where the lexical scoping bug happens: "let" bound variables aren't part of the
"vars". DFG will see that they are live, but mustHandleValues will not have anything for
those variables, so CFA will prove that the values are Bottom. Then OSR entry will always
fail because no value is ever a subset of Bottom.

The first part of the fix is to ensure that mustHandleValues record all of the values on the
stack (i.e. within m_numCalleeLocals, rather than just m_numVars). But this creates a second
problem: we may record garbage. This patch includes a better fix for the garbage: before
touching mustHandleValues we run the bytecode liveness analysis and clear any values that are
not live. This ensures that we clear the garbage.

This is an enormous speed-up on microbenchmarks that use lexical scoping and have some crazy
put_by_id in the lead-up to the hot loop.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::canTierUpAndOSREnter):

  • jit/JITOperations.cpp:

LayoutTests:

  • js/regress/script-tests/strict-osr-entry.js: Added.

(let.o.apply_):

  • js/regress/strict-osr-entry-expected.txt: Added.
  • js/regress/strict-osr-entry.html: Added.
11:51 AM Changeset in webkit [203355] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Source/JavaScriptCore

Merged r203353. rdar://problem/27405849

11:48 AM Changeset in webkit [203354] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:47 AM Changeset in webkit [203353] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

REGRESSION(r202975): --minimal build is broken
https://bugs.webkit.org/show_bug.cgi?id=159765

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

Covered partially by builtin generated test code.

Updating generator to add a global compilation guard around the code that generates all global internal properties.
Split the generate_methods function in two, one dedicated to the visit method and the second one dedicated to
the initialize method.

  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_section_for_object): Use splitted generation functions.
(BuiltinsInternalsWrapperImplementationGenerator.generate_visit_method): Response to generate the visit method.
(BuiltinsInternalsWrapperImplementationGenerator._generate_initialize_static_globals): Responsible to generate
the code to initialize the internal globals. This code is put in a global compilation guard in case all
internals are compiled out by specific builds.
(BuiltinsInternalsWrapperImplementationGenerator):
(BuiltinsInternalsWrapperImplementationGenerator.generate_initialize_method): Responsible to generate the
initialize method.
(BuiltinsInternalsWrapperImplementationGenerator.generate_methods): Deleted.

  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Copyright change.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Reflects partially the built-in

generator change.

11:46 AM Changeset in webkit [203352] by bshafiei@apple.com
  • 1 copy in branches/safari-602-branch

New Branch.

11:38 AM Changeset in webkit [203351] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix bad assertions in genericTypedArrayViewPrivateFuncSubarrayCreate
https://bugs.webkit.org/show_bug.cgi?id=159882
<rdar://problem/27327111>

Reviewed by Mark Lam.

According the spec toInteger can return values we don't consider ints.
Such as, -0 and +/-Infinity. This broke some assertions in
genericTypedArrayViewPrivateFuncSubarrayCreate.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • tests/stress/typedarray-subarray.js:
11:32 AM Changeset in webkit [203350] by fpizlo@apple.com
  • 10 edits in trunk

WTF::Lock should be fair eventually
https://bugs.webkit.org/show_bug.cgi?id=159384

Reviewed by Geoffrey Garen.
Source/WTF:


In https://webkit.org/blog/6161/locking-in-webkit/ we showed how relaxing the fairness of
locks makes them fast. That post presented lock fairness as a trade-off between two
extremes:

  • Barging. A barging lock, like WTF::Lock, releases the lock in unlock() even if there was a thread on the queue. If there was a thread on the queue, the lock is released and that thread is made runnable. That thread may then grab the lock, or some other thread may grab the lock first (it may barge). Usually, the barging thread is the thread that released the lock in the first place. This maximizes throughput but hurts fairness. There is no good theoretical bound on how unfair the lock may become, but empirical data suggests that it's fair enough for the cases we previously measured.


  • FIFO. A FIFO lock, like HandoffLock in ToyLocks.h, does not release the lock in unlock() if there is a thread waiting. If there is a thread waiting, unlock() will make that thread runnable and inform it that it now holds the lock. This ensures perfect round-robin fairness and allows us to reason theoretically about how long it may take for a thread to grab the lock. For example, if we know that only N threads are running and each one may contend on a critical section, and each one may hold the lock for at most S seconds, then the time it takes to grab the lock is N * S. Unfortunately, FIFO locks perform very badly in most cases. This is because for the common case of short critical sections, they force a context switch after each critical section if the lock is contended.


This change makes WTF::Lock almost as fair as FIFO while still being as fast as barging.
Thanks to this new algorithm, you can now have both of these things at the same time.

This change makes WTF::Lock eventually fair. We can almost (more on the caveats below)
guarantee that the time it takes to grab a lock is N * max(1ms, S). In other words, critical
sections that are longer than 1ms are always fair. For shorter critical sections, the amount
of time that any thread waits is 1ms times the number of threads. There are some caveats
that arise from our use of randomness, but even then, in the limit as the critical section
length goes to infinity, the lock becomes fair. The corner cases are unlikely to happen; our
experiments show that the lock becomes exactly as fair as a FIFO lock for any critical
section that is 1ms or longer.

The fairness mechanism is broken into two parts. WTF::Lock can now choose to unlock a lock
fairly or unfairly thanks to the new ParkingLot token mechanism. WTF::Lock knows when to use
fair unlocking based on a timeout mechanism in ParkingLot called timeToBeFair.

ParkingLot::unparkOne() and ParkingLot::parkConditionally() can now communicate with each
other via a token. unparkOne() can pass a token, which parkConditionally() will return. This
change also makes parkConditionally() a lot more precise about when it was unparked due to a
call to unparkOne(). If unparkOne() is told that a thread was unparked then this thread is
guaranteed to report that it was unparked rather than timing out, and that thread is
guaranteed to get the token that unparkOne() passed. The token is an intptr_t. We use it as
a boolean variable in WTF::Lock, but you could use it to pass arbitrary data structures. By
default, the token is zero. WTF::Lock's unlock() will pass 1 as the token if it is doing
fair unlocking. In that case, unlock() will not release the lock, and lock() will know that
it holds the lock as soon as parkConditionally() returns. Note that this algorithm relies
on unparkOne() invoking WTF::Lock's callback while the queue lock is held, so that WTF::Lock
can make a decision about unlock strategy and inject a token while it has complete knowledge
over the state of the queue. As such, it's not immediately obvious how to implement this
algorithm on top of futexes. You really need ParkingLot!

WTF::Lock does not use fair unlocking every time. We expose a new API, Lock::unlockFairly(),
which forces the fair unlocking behavior. Additionally, ParkingLot now maintains a
per-bucket stochastic fairness timeout. When the timeout fires, the unparkOne() callback
sees UnparkResult::timeToBeFair = true. This timeout is set to be anywhere from 0ms to 1ms
at random. When a dequeue happens and there are threads that actually get dequeued, we check
if the time since the last unfair unlock (the last time timeToBeFair was set to true) is
more than the timeout amount. If so, then we set timeToBeFair to true and reset the timeout.
This means that in the absence of ParkingLot collisions, unfair unlocking is guaranteed to
happen at least once per millisecond. It will happen at 2 KHz on average. If there are
collisions, then each collision adds one millisecond to the worst case (and 0.5 ms to the
average case). The reason why we don't just use a fixed 1ms timeout is that we want to avoid
resonance. Imagine a program in which some thread acquires a lock at 1 KHz in-phase with the
timeToBeFair timeout. Then this thread would be the benefactor of fairness to the detriment
of everyone else. Randomness ensures that we aren't too fair to any one thread.

Empirically, this is neutral on our major benchmarks like JetStream but it's an enormous
improvement in LockFairnessTest. It's common for an unfair lock (either our BargingLock, the
old WTF::Lock, any of the other futex-based locks that barge, or new os_unfair_lock) to
allow only one thread to hold the lock during a whole second in which each thread is holding
the lock for 1ms at a time. This is because in a barging lock, releasing a lock after
holding it for 1ms and then reacquiring it immediately virtually ensures that none of the
other threads can wake up in time to grab it before it's relocked. But the new WTF::Lock
handles this case like a champ: each thread gets equal turns.

Here's some data. If we launch 10 threads and have each of them run for 1 second while
repeatedly holding a critical section for 1ms, then here's how many times each thread gets
to hold the lock using the old WTF::Lock algorithm:

799, 6, 1, 1, 1, 1, 1, 1, 1, 1

One thread hogged the lock for almost the whole time! With the new WTF::Lock, the lock
becomes totally fair:

80, 79, 79, 79, 79, 79, 79, 80, 80, 79

I don't know of anyone creating such an automatically-fair adaptive lock before, so I think
that this is a pretty awesome advancement to the state of the art!

This change is good for three reasons:

  • We do have long critical sections in WebKit and we don't want to have to worry about starvation. This reduces the likelihood that we will see starvation due to our lock strategy.


  • I was talking to ggaren about bmalloc's locking needs, and he wanted unlockFairly() or lockFairly() or some moral equivalent for the scavenger thread.


  • If we use a WTF::Lock to manage heap access in a multithreaded GC, we'll need the ability to unlock and relock without barging.
  • benchmarks/LockFairnessTest.cpp:

(main):

  • benchmarks/ToyLocks.h:
  • wtf/Condition.h:

(WTF::ConditionBase::waitUntil):
(WTF::ConditionBase::notifyOne):

  • wtf/Lock.cpp:

(WTF::LockBase::lockSlow):
(WTF::LockBase::unlockSlow):
(WTF::LockBase::unlockFairlySlow):
(WTF::LockBase::unlockSlowImpl):

  • wtf/Lock.h:

(WTF::LockBase::try_lock):
(WTF::LockBase::unlock):
(WTF::LockBase::unlockFairly):
(WTF::LockBase::isHeld):
(WTF::LockBase::isFullyReset):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkOneImpl):
(WTF::ParkingLot::unparkAll):

  • wtf/ParkingLot.h:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::compareAndPark):
(WTF::ParkingLot::unparkOne):

Tools:

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
10:43 AM Changeset in webkit [203349] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

Add preload to features.json
https://bugs.webkit.org/show_bug.cgi?id=159872

Reviewed by Darin Adler.

No new tests but no functional change.

  • features.json:
9:17 AM Changeset in webkit [203348] by ap@apple.com
  • 2 edits in trunk

"make ARCHS=x86_64" fails to build
https://bugs.webkit.org/show_bug.cgi?id=159867

Reviewed by Dan Bernstein.

  • Makefile.shared: Override VALID_ARCHS when ARCHS is set, so that even projects

that normally customize VALID_ARCHS wouldn't fail to build.

6:41 AM Changeset in webkit [203347] by commit-queue@webkit.org
  • 6 edits in trunk

[Streams API] ReadableStream should throw a RangeError in case of NaN highWaterMark
https://bugs.webkit.org/show_bug.cgi?id=159870

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-18
Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/bad-strategies.https-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/streams/StreamInternals.js:

(validateAndNormalizeQueuingStrategy): Throwing a RangeError in lieu of a TypeError in case of NaN highWaterMark.

LayoutTests:

  • streams/reference-implementation/bad-strategies.html: Reflecting isNaN change in WritableStream test.
6:24 AM MathML/Fonts edited by fred.wang@free.fr
Update supported MATH constants (diff)
5:41 AM Changeset in webkit [203346] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Windows buildfix after r203338
https://bugs.webkit.org/show_bug.cgi?id=159875

Unreviewed buildfix.

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::addDestructionObserver):

3:39 AM Changeset in webkit [203345] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.13.3

WebKitGTK+ 2.13.3

3:35 AM Changeset in webkit [203344] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.13.3.
2:24 AM Changeset in webkit [203343] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[Mac][cmake] Unreviewed buildfix after r203338. Just for fun.

  • PlatformMac.cmake:
2:04 AM Changeset in webkit [203342] by Carlos Garcia Campos
  • 18 edits
    1 copy
    2 adds in trunk/Source

MemoryPressureHandler doesn't work if cgroups aren't present in Linux
https://bugs.webkit.org/show_bug.cgi?id=155255

Reviewed by Sergio Villar Senin.

Source/WebCore:

Allow to pass an eventFD file descriptor to the MemoryPressureHandler to be monitorized in case cgroups are not
available.

  • platform/MemoryPressureHandler.h:
  • platform/linux/MemoryPressureHandlerLinux.cpp:

Source/WebKit2:

There's no way to get notifications about memory pressure in Linux without using cgroups that doesn't require a
manual polling. We can get that information from /proc/meminfo, but that's not pollable so it requires to
manually check its contents in a loop sleeping for a while between checks. This means we would be waking up the
process on every poll iteration, most of the times for nothing. That's specially problematic on devices running
on battery. And taking into account that there's a memory pressure handler in every secondary process (Web,
Network and Plugin), we would be waking up all those process all the time. However, not having a memory pressure
handler is even more problematic than the manual polling.
This patch adds a class MemoryPressureMonitor to the manual polling of /proc/meminfo, but runs in the UI
process, to avoid the weakups in all other secondary processes, and uses an eventFD to notify all other
processes. It's only used in case cgroups is not available. The eventFD descriptor is sent to all other
processes at startup, and passed to the MemoryPressureHandler before install() is called for the first
time. To minimize the wakeups even in the UI process, the poll interval is calculated from 1 to 5 seconds
depending on the current memory used, so in case of low memory level we sleep for a longer time.
It's also important to make the memory calculations as accurate as possible to avoid cleaning resources in the
secondary processes unnecessarily.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::NetworkProcessCreationParameters::decode): Decode memory pressure monitor handle.

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • PlatformEfl.cmake: Add new file to compilation, and update include dirs.
  • PlatformGTK.cmake: Ditto.
  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::initializePluginProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.

  • Shared/Plugins/PluginProcessCreationParameters.cpp:

(WebKit::PluginProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::PluginProcessCreationParameters::decode): Decode memory pressure monitor handle.

  • Shared/Plugins/PluginProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::WebProcessCreationParameters::decode): Decode memory pressure monitor handle.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching): Create the memory pressure monitor handle for the plugin
process if needed.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Create the memory pressure monitor handle for the network
process if needed.
(WebKit::WebProcessPool::createNewWebProcess): Create the memory pressure monitor handle for the web process if
needed.

  • UIProcess/linux/MemoryPressureMonitor.cpp: Added.

(WebKit::lowWatermarkPages):
(WebKit::systemPageSize):
(WebKit::calculateMemoryAvailable):
(WebKit::systemMemoryUsedAsPercentage):
(WebKit::pollIntervalForUsedMemoryPercentage):
(WebKit::isSystemdMemoryPressureMonitorAvailable):
(WebKit::MemoryPressureMonitor::isEnabled):
(WebKit::MemoryPressureMonitor::singleton):
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):
(WebKit::MemoryPressureMonitor::createHandle):

  • UIProcess/linux/MemoryPressureMonitor.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.

Jul 17, 2016:

11:53 PM Changeset in webkit [203341] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r202855): [GTK] ASSERTION FAILED: m_webPage.bounds().contains(bounds)
https://bugs.webkit.org/show_bug.cgi?id=159806

Reviewed by Žan Doberšek.

The problem is that since r202855, in case of non accelerated mode, the dirty region is updated too late when
updating backing store state.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updateBackingStoreState): Update the dirty region to the new size when not in
accelerated compositing mode.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setSize): Update the WebPage size before resizing the frame and calling setNeedsDisplay() to
ensure that any call to setNeedsDisplay() uses the new web page bounds. This is actually a regression introduced
in r143472, where setNeedsDisplay was changed to use the web page bounds as directy rectangle. Before r143472
the dirty rectangle was passed to setNeedsDisplay and it passed the right one.

11:13 PM Changeset in webkit [203340] by Gyuyoung Kim
  • 21 edits in trunk/Source/WebCore

Clean up PassRefPtr uses in Modules/encryptedmedia, Modules/speech, and Modules/quota
https://bugs.webkit.org/show_bug.cgi?id=159701

Reviewed by Alex Christensen.

No new tests, no behavior changes.

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/quota/DOMWindowQuota.cpp:
  • Modules/quota/StorageErrorCallback.cpp:

(WebCore::StorageErrorCallback::CallbackTask::CallbackTask):

  • Modules/quota/StorageErrorCallback.h:
  • Modules/quota/StorageInfo.h:
  • Modules/quota/StorageQuota.h:
  • Modules/speech/DOMWindowSpeechSynthesis.cpp:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::getVoices):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):

  • Modules/speech/SpeechSynthesis.h:
  • Modules/speech/SpeechSynthesisEvent.h:
  • Modules/speech/SpeechSynthesisUtterance.h:
  • Modules/speech/SpeechSynthesisVoice.cpp:

(WebCore::SpeechSynthesisVoice::create):
(WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):

  • Modules/speech/SpeechSynthesisVoice.h:
  • platform/PlatformSpeechSynthesizer.h:
  • platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:

(WebCore::PlatformSpeechSynthesisProviderEfl::fireSpeechEvent):

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
(WebCore::PlatformSpeechSynthesizerMock::cancel):
(WebCore::PlatformSpeechSynthesizerMock::pause):
(WebCore::PlatformSpeechSynthesizerMock::resume):

11:08 PM Changeset in webkit [203339] by fred.wang@free.fr
  • 6 edits in trunk/LayoutTests

Rebaseline Windows and EFL MathML pixel tests after r203289.
https://bugs.webkit.org/show_bug.cgi?id=158866

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-17

  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
6:07 PM Changeset in webkit [203338] by weinig@apple.com
  • 51 edits
    6 adds in trunk

[WebKit API] Add SPI to track multiple navigations caused by a single user gesture
<rdar://problem/26554137>
https://bugs.webkit.org/show_bug.cgi?id=159856

Reviewed by Dan Bernstein.

Source/WebCore:

  • Adds a new RefCounted object to represent a unique user gesture, called UserGestureToken.
  • Makes UserGestureIndicator track UserGestureToken.
  • Refines UserGestureIndicator's interface to use Optional and a smaller enum set to represent the different initial states.
  • Stores UserGestureTokens on objects that want to forward user gesture state (DOMTimer, postMessage, and ScheduledNavigation) rather than just a boolean.
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):
(WebCore::ScriptController::executeScript):
Update for new UserGestureIndicator interface.

  • dom/UserGestureIndicator.cpp:

(WebCore::currentToken):
(WebCore::UserGestureToken::~UserGestureToken):
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::~UserGestureIndicator):
(WebCore::UserGestureIndicator::currentUserGesture):
(WebCore::UserGestureIndicator::processingUserGesture):
(WebCore::UserGestureIndicator::processingUserGestureForMedia):
(WebCore::isDefinite): Deleted.

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::create):
(WebCore::UserGestureToken::state):
(WebCore::UserGestureToken::processingUserGesture):
(WebCore::UserGestureToken::processingUserGestureForMedia):
(WebCore::UserGestureToken::addDestructionObserver):
(WebCore::UserGestureToken::UserGestureToken):
Add UserGestureToken and track the current one explicitly.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorFrontendHost.cpp:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):
Update for new UserGestureIndicator interface.

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::userGestureToken):
(WebCore::NavigationAction::processingUserGesture):

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledNavigation::ScheduledNavigation):
(WebCore::ScheduledNavigation::~ScheduledNavigation):
(WebCore::ScheduledNavigation::lockBackForwardList):
(WebCore::ScheduledNavigation::wasDuringLoad):
(WebCore::ScheduledNavigation::isLocationChange):
(WebCore::ScheduledNavigation::userGestureToForward):
(WebCore::ScheduledNavigation::clearUserGesture):
(WebCore::NavigationScheduler::mustLockBackForwardList):
(WebCore::NavigationScheduler::scheduleFormSubmission):
(WebCore::ScheduledNavigation::wasUserGesture): Deleted.

  • page/DOMTimer.cpp:

(WebCore::shouldForwardUserGesture):
(WebCore::userGestureTokenToForward):
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::fired):

  • page/DOMTimer.h:
  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer):
Store the active UserGestureToken rather than just a bit.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTouchEvent):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::toggleMediaFullscreenState):
(WebCore::HitTestResult::enterFullscreenForVideo):
(WebCore::HitTestResult::toggleEnhancedFullscreenForVideo):
Update for new UserGestureIndicator interface.

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::evaluate):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):
Update for new UserGestureIndicator interface.

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::performRequest):

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::searchWithGoogle):
Update for new UserGestureIndicator interface.

Source/WebKit2:

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/APIUserInitiatedAction.h: Added.

Add new APIObject type, UserInitiatedAction.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:

Expose a _WKUserInitiatedAction on the WKNavigationAction.

  • UIProcess/API/Cocoa/_WKUserInitiatedAction.h: Added.
  • UIProcess/API/Cocoa/_WKUserInitiatedAction.mm: Added.

(-[_WKUserInitiatedAction consume]):
(-[_WKUserInitiatedAction isConsumed]):
(-[_WKUserInitiatedAction _apiObject]):

  • UIProcess/API/Cocoa/_WKUserInitiatedActionInternal.h: Added.

Add new _WKUserInitiatedAction type wrapping API::UserInitiatedAction.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:

Store the userGestureTokenIdentifier (as determined from the WebProcess's map) rather
than just a single bit. This allows us to track if a user gesture is used for multiple navigations.

  • UIProcess/API/APINavigationAction.h:

Add UserInitiatedAction member and re-implement isProcessingUserGesture in terms of it.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
Get the API::UserInitiatedAction from the WebProcessProxy (if it exists), and pass
it along to the API::NavigationAction.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::userInitiatedActivity):
(WebKit::WebProcessProxy::didDestroyUserGestureToken):

  • UIProcess/WebProcessProxy.h:

Keep a map of active userInitiatedActivity objects.

  • UIProcess/WebProcessProxy.messages.in:

Add DidDestroyUserGestureToken message to manager API::UserInitiatedActivity lifetimes.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

  • WebProcess/Notifications/WebNotificationManager.cpp:

(WebKit::WebNotificationManager::didClickNotification):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::evaluate):

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):
Update for new UserGestureIndicator interface.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
Get an identifier for the UserGestureToken from the WebProcess singleton
to pass to the WebProcess.

  • WebProcess/WebProcess.cpp:

(WebKit::nextUserGestureTokenIdentifier):
(WebKit::WebProcess::userGestureTokenIdentifier):
(WebKit::WebProcess::userGestureTokenDestroyed):

  • WebProcess/WebProcess.h:

Track UserGestureToken lifetimes utilizing the destructionObserver mechanism
off the tokens to indicate destruction. When destroyed, notify the UIProcess
to avoid leaks.

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
Add basic window.open implementation.

(-[WK2BrowserWindowController webView:decidePolicyForNavigationAction:decisionHandler:]):
Add basic navigation policy implementation which implements a rule where a user gesture is only allowed
to open a single non-web URL, all others are dropped.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/UserInitiatedActionInNavigationAction.mm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/open-multiple-external-url.html: Added.

Add API for the new SPI.

5:39 PM Changeset in webkit [203337] by rniwa@webkit.org
  • 54 edits in trunk/Source

Rename fastHasAttribute to hasAttributeWithoutSynchronization
https://bugs.webkit.org/show_bug.cgi?id=159864

Reviewed by Chris Dumez.

Source/WebCore:

Renamed Rename fastHasAttribute to hasAttributeWithoutSynchronization for clarity.

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isEnabled):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::hasAttribute):
(WebCore::AccessibilityObject::getAttribute):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • bindings/scripts/CodeGenerator.pm:

(GetterExpression):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):

  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj reflectedBooleanAttr]):
(-[DOMTestObj setReflectedBooleanAttr:]):
(-[DOMTestObj reflectedCustomBooleanAttr]):
(-[DOMTestObj setReflectedCustomBooleanAttr:]):

  • dom/Document.cpp:

(WebCore::Document::hasManifest):
(WebCore::Document::doctype):

  • dom/Element.h:

(WebCore::Node::parentElement):
(WebCore::Element::hasAttributeWithoutSynchronization):
(WebCore::Element::fastHasAttribute): Deleted.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):

  • editing/markup.cpp:

(WebCore::createMarkupInternal):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::shouldShowSuggestions):

  • html/FileInputType.cpp:

(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::receiveDroppedFiles):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::didMoveToNewDocument):
(WebCore::FormAssociatedElement::insertedInto):
(WebCore::FormAssociatedElement::removedFrom):
(WebCore::FormAssociatedElement::formAttributeChanged):

  • html/FormController.cpp:

(WebCore::ownerFormForState):

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):
(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::sendPings):

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::rendererIsNeeded):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::elementAffectsDirectionality):
(WebCore::setHasDirAutoFlagRecursively):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::rendererIsNeeded):

  • html/HTMLFieldSetElement.cpp:

(WebCore::updateFromControlElementsAncestorDisabledStateUnder):
(WebCore::HTMLFieldSetElement::disabledAttributeChanged):
(WebCore::HTMLFieldSetElement::disabledStateChanged):
(WebCore::HTMLFieldSetElement::childrenChanged):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::formNoValidate):
(WebCore::HTMLFormControlElement::formAction):
(WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
(WebCore::shouldAutofocus):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::formElementIndex):
(WebCore::HTMLFormElement::noValidate):

  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::noResize):
(WebCore::HTMLFrameElement::didAttachRenderers):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::parseAttribute):
(WebCore::HTMLFrameElementBase::location):

  • html/HTMLHRElement.cpp:

(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isServerMap):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::finishParsingChildren):
(WebCore::HTMLInputElement::matchesDefaultPseudoClass):
(WebCore::HTMLInputElement::isActivatedSubmit):
(WebCore::HTMLInputElement::reset):
(WebCore::HTMLInputElement::multiple):
(WebCore::HTMLInputElement::setSize):
(WebCore::HTMLInputElement::shouldUseMediaCapture):

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::minimumDelay):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::insertedInto):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::autoplay):
(WebCore::HTMLMediaElement::preload):
(WebCore::HTMLMediaElement::loop):
(WebCore::HTMLMediaElement::setLoop):
(WebCore::HTMLMediaElement::controls):
(WebCore::HTMLMediaElement::setControls):
(WebCore::HTMLMediaElement::muted):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::sourceWasAdded):
(WebCore::HTMLMediaElement::mediaSessionTitle):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parseAttribute):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::isDisabledFormControl):
(WebCore::HTMLOptGroupElement::isFocusable):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::matchesDefaultPseudoClass):
(WebCore::HTMLOptionElement::text):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::isDeterminate):
(WebCore::HTMLProgressElement::didElementStateChange):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::async):
(WebCore::HTMLScriptElement::setCrossOrigin):
(WebCore::HTMLScriptElement::asyncAttributeValue):
(WebCore::HTMLScriptElement::deferAttributeValue):
(WebCore::HTMLScriptElement::hasSourceAttribute):
(WebCore::HTMLScriptElement::dispatchLoadEvent):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::reset):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::isDefault):
(WebCore::HTMLTrackElement::ensureTrack):
(WebCore::HTMLTrackElement::loadTimerFired):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::searchEventsShouldBeDispatched):
(WebCore::SearchInputType::didSetValueByUserEdit):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForNode):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldTreatURLAsSrcdocDocument):
(WebCore::FrameLoader::findFrameForNavigation):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::notifyFinished):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computePreferredLogicalWidths):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustMenuListButtonStyle):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::updateAnimationPath):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::insertedInto):

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

3:00 PM Changeset in webkit [203336] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG CSE is broken for MultiGetByOffset
https://bugs.webkit.org/show_bug.cgi?id=159858

Reviewed by Saam Barati.

This disabled CSE for MultiGetByOffset. I opened bug 159859 for the long-term fix, which
would teach CSE (and other passes also) how to decay a removed MultiGetByOffset to a
CheckStructure. Since we currently just decay MultiGetByOffset to Check, we forget the
structure checks. So, if we CSE a MultiGetByOffset that checks for one set of structures with
a heap access on the same property and base that checks for different structures, then we
will forget some structure checks that we had previously. It's unsound to forget checks in
DFG IR.

This bug mostly manifested as a high-volume crash at Unreachable in FTL, because we'd prove
that the code after the MultiGetByOffset was unreachable due to the structure checks and then
CSE would remove everything but the Unreachable.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Remove the def() for MultiGetByOffset to disable CSE for this node for now.

  • tests/stress/cse-multi-get-by-offset-remove-checks.js: Added. This used to fail with FTL eanbled.

(Cons1):
(Cons2):
(Cons3):
(foo):
(bar):

1:35 PM Changeset in webkit [203335] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r191907): Maxthon Browser -After exit full screen video playback the browser window is blank with audio running
https://bugs.webkit.org/show_bug.cgi?id=159731
<rdar://problem/26674003>

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-17
Reviewed by Tim Horton.

Primarily written by Jer Noble <jer.noble@apple.com>.

When a view is removed from it's superview, and that superview's constraints property references
the removed superview, those constraints are removed as well. Make sure to save off a copy of
the superview's constraints before swapping in the placeholder view, and reapply those constraints
when swapping the web view back into its original superview.

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController setSavedConstraints:]):
(-[WKFullScreenWindowController savedConstraints]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

12:12 PM Changeset in webkit [203334] by beidson@apple.com
  • 7 edits in trunk/Source/WebCore

Exceptions logged to the JS console should use toString().
https://bugs.webkit.org/show_bug.cgi?id=159855

Reviewed by Darin Adler.

No new tests (No change in behavior).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • dom/DOMCoreException.h:

(WebCore::DOMCoreException::DOMCoreException):

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):
(WebCore::ExceptionBase::consoleErrorMessage): Deleted.

  • dom/ExceptionBase.h:

(WebCore::ExceptionBase::description): Deleted.

  • svg/SVGException.h:
  • xml/XPathException.h:

(WebCore::XPathException::XPathException):

9:47 AM Changeset in webkit [203333] by beidson@apple.com
  • 477 edits in trunk

Update DOMCoreException to use the description in toString().
https://bugs.webkit.org/show_bug.cgi?id=159857

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin.sub-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-name-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-value-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-scripts-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-synconworker-expected.txt:
  • web-platform-tests/dom/events/ProgressEvent-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/dom/nodes/Element-closest-expected.txt:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/insert-adjacent-expected.txt:
  • web-platform-tests/domparsing/createContextualFragment-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/volume_nonfinite-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/month-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/range-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • web-platform-tests/html/semantics/forms/the-meter-element/meter-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):

  • dom/DOMCoreException.h:

(WebCore::DOMCoreException::DOMCoreException):
(WebCore::DOMCoreException::createWithDescriptionAsMessage): Deleted.

LayoutTests:

  • canvas/philip/tests/2d.missingargs.html:
  • crypto/crypto-random-values-limits-expected.txt:
  • crypto/crypto-random-values-types-expected.txt:
  • crypto/subtle/aes-cbc-wrong-key-class-expected.txt:
  • crypto/subtle/aes-kw-key-manipulation-expected.txt:
  • crypto/subtle/argument-conversion-expected.txt:
  • crypto/subtle/hmac-check-algorithm-expected.txt:
  • crypto/subtle/hmac-generate-key-expected.txt:
  • crypto/subtle/rsa-oaep-key-manipulation-expected.txt:
  • crypto/subtle/sha-1-expected.txt:
  • crypto/subtle/unwrapKey-check-usage-expected.txt:
  • crypto/subtle/wrapKey-check-usage-expected.txt:
  • css3/supports-cssom-expected.txt:
  • editing/pasteboard/data-transfer-items-expected.txt:
  • editing/selection/extend-expected.txt:
  • fast/canvas/canvas-createImageData-expected.txt:
  • fast/canvas/canvas-ellipse-negative-radius-expected.txt:
  • fast/canvas/canvas-getImageData-invalid-expected.txt:
  • fast/canvas/canvas-getImageData-invalid-result-buffer-crash-expected.txt:
  • fast/canvas/canvas-gradient-addStop-error-expected.txt:
  • fast/canvas/canvas-imageData-expected.txt:
  • fast/canvas/canvas-overloads-drawImage-expected.txt:
  • fast/canvas/canvas-pattern-behaviour-expected.txt:
  • fast/canvas/gradient-addColorStop-with-invalid-color-expected.txt:
  • fast/canvas/script-tests/canvas-createImageData.js:
  • fast/canvas/script-tests/canvas-getImageData-invalid.js:
  • fast/canvas/script-tests/canvas-imageData.js:
  • fast/canvas/script-tests/canvas-overloads-drawImage.js:
  • fast/canvas/script-tests/gradient-addColorStop-with-invalid-color.js:
  • fast/css/CSSPrimitiveValue-exceptions-expected.txt:
  • fast/css/css3-nth-tokens-script-expected.txt:
  • fast/css/css3-nth-tokens-script.html:
  • fast/css/getFloatValueForUnit-expected.txt:
  • fast/css/getFloatValueForUnit.html:
  • fast/css/insert-rule-overflow-rule-data-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-2-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-3-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-3.html:
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax-expected.txt:
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html:
  • fast/css/parsing-css-matches-5-expected.txt:
  • fast/css/parsing-css-matches-5.html:
  • fast/css/parsing-css-matches-6-expected.txt:
  • fast/css/parsing-css-matches-6.html:
  • fast/css/parsing-css-matches-7-expected.txt:
  • fast/css/parsing-css-matches-7.html:
  • fast/css/parsing-css-matches-8-expected.txt:
  • fast/css/parsing-css-matches-8.html:
  • fast/css/parsing-css-not-5-expected.txt:
  • fast/css/parsing-css-not-5.html:
  • fast/css/parsing-css-not-6-expected.txt:
  • fast/css/parsing-css-not-6.html:
  • fast/css/parsing-css-not-7-expected.txt:
  • fast/css/parsing-css-not-7.html:
  • fast/css/parsing-css-not-8-expected.txt:
  • fast/css/parsing-css-not-8.html:
  • fast/css/parsing-css-not-9-expected.txt:
  • fast/css/parsing-css-not-9.html:
  • fast/css/parsing-css-nth-child-of-3-expected.txt:
  • fast/css/parsing-css-nth-child-of-3.html:
  • fast/css/parsing-css-nth-child-of-4-expected.txt:
  • fast/css/parsing-css-nth-child-of-4.html:
  • fast/css/parsing-css-nth-last-child-of-3-expected.txt:
  • fast/css/parsing-css-nth-last-child-of-3.html:
  • fast/css/parsing-css-nth-last-child-of-4-expected.txt:
  • fast/css/parsing-css-nth-last-child-of-4.html:
  • fast/css/resources/CSSPrimitiveValue-exceptions.js:
  • fast/dom/DOMException/prototype-object-expected.txt:
  • fast/dom/DOMException/prototype-object.html:
  • fast/dom/DOMException/stack-trace-expected.txt:
  • fast/dom/DOMException/stack-trace.html:
  • fast/dom/Document/createElement-invalid-names-expected.txt:
  • fast/dom/Document/createElement-invalid-names.html:
  • fast/dom/Document/invalid-domain-change-throws-exception-expected.txt:
  • fast/dom/Document/replace-child-expected.txt:
  • fast/dom/Document/script-tests/invalid-domain-change-throws-exception.js:
  • fast/dom/Element/class-list-toggle-expected.txt:
  • fast/dom/Element/class-list-toggle.html:
  • fast/dom/Element/prefix-setter-exception-expected.txt:
  • fast/dom/Geolocation/argument-types-expected.txt:
  • fast/dom/Geolocation/not-enough-arguments-expected.txt:
  • fast/dom/Geolocation/script-tests/argument-types.js:

(test):

  • fast/dom/HTMLElement/insertAdjacentHTML-errors-expected.txt:
  • fast/dom/HTMLElement/script-tests/insertAdjacentHTML-errors.js:
  • fast/dom/HTMLElement/set-invalid-value-expected.txt:
  • fast/dom/HTMLElement/set-invalid-value.html:
  • fast/dom/HTMLInputElement/input-size-attribute-expected.txt:
  • fast/dom/HTMLInputElement/input-size-attribute.html:
  • fast/dom/HTMLMeterElement/script-tests/set-meter-properties.js:
  • fast/dom/HTMLMeterElement/set-meter-properties-expected.txt:
  • fast/dom/HTMLProgressElement/script-tests/set-progress-properties.js:
  • fast/dom/HTMLProgressElement/set-progress-properties-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/select-add-optgroup-expected.txt:
  • fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt:
  • fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt:
  • fast/dom/HTMLTableElement/nullable-attributes-expected.txt:
  • fast/dom/HTMLTableElement/nullable-attributes.html:
  • fast/dom/HTMLTemplateElement/cycles-expected.txt:
  • fast/dom/HTMLTemplateElement/cycles-in-shadow-expected.txt:
  • fast/dom/Node/initial-values-expected.txt:
  • fast/dom/ParentNode-append-expected.txt:
  • fast/dom/ParentNode-prepend-expected.txt:
  • fast/dom/Range/31684-expected.txt:
  • fast/dom/Range/clone-contents-document-type-expected.txt:
  • fast/dom/Range/clone-contents-document-type.html:
  • fast/dom/Range/compareBoundaryPoints-1.html:
  • fast/dom/Range/compareBoundaryPoints-compareHow-exception-expected.txt:
  • fast/dom/Range/compareBoundaryPoints-compareHow-exception.html:
  • fast/dom/Range/extract-contents-document-type-expected.txt:
  • fast/dom/Range/extract-contents-document-type.html:
  • fast/dom/Range/range-comparePoint-detached-nodes-expected.txt:
  • fast/dom/Range/range-comparePoint-detached-nodes.html:
  • fast/dom/Range/range-exceptions-expected.txt:
  • fast/dom/Range/range-intersectsNode-expected.txt:
  • fast/dom/Range/script-tests/31684.js:
  • fast/dom/Range/script-tests/range-exceptions.js:
  • fast/dom/Range/surroundContents-1.html:
  • fast/dom/Selection/collapseToX-empty-selection-expected.txt:
  • fast/dom/Selection/script-tests/collapseToX-empty-selection.js:
  • fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt:
  • fast/dom/SelectorAPI/dumpNodeList-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
  • fast/dom/Text/splitText-expected.txt:
  • fast/dom/Text/splitText.html:
  • fast/dom/Window/anonymous-slot-with-changes-expected.txt:
  • fast/dom/Window/atob-btoa-expected.txt:
  • fast/dom/Window/custom-constructors-expected.txt:
  • fast/dom/Window/dispatchEvent-expected.txt:
  • fast/dom/Window/invalid-protocol-expected.txt:
  • fast/dom/Window/window-postmessage-clone-expected.txt:
  • fast/dom/computed-style-set-property-expected.txt:
  • fast/dom/createElementNS-namespace-errors-expected.txt:
  • fast/dom/createElementNS-namespace-errors.html:
  • fast/dom/css-mediarule-functions-expected.txt:
  • fast/dom/css-mediarule-functions.html:
  • fast/dom/custom/document-register-basic-expected.txt:
  • fast/dom/custom/document-register-basic.html:
  • fast/dom/custom/document-register-type-extensions-expected.txt:
  • fast/dom/custom/document-register-type-extensions.html:
  • fast/dom/dataset-expected.txt:
  • fast/dom/dataset-xhtml-expected.txt:
  • fast/dom/document-set-body-null-expected.txt:
  • fast/dom/document-set-body-null.html:
  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/insertAdjacentHTML-DocumentFragment-crash-expected.txt:
  • fast/dom/node-prefix-setter-namespace-exception-expected.txt:
  • fast/dom/outerText-no-element-expected.txt:
  • fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
  • fast/dom/processing-instruction-appendChild-exceptions.xhtml:
  • fast/dom/rel-list-expected.txt:
  • fast/dom/script-tests/dataset-xhtml.js:
  • fast/dom/script-tests/dataset.js:
  • fast/dom/setAttributeNS-namespace-errors-expected.txt:
  • fast/dom/setAttributeNS-namespace-errors.html:
  • fast/dom/setPrimitiveValue-exceptions-expected.txt:
  • fast/dom/setPrimitiveValue-expected.txt:
  • fast/dynamic/insertAdjacentElement-expected.txt:
  • fast/dynamic/insertAdjacentHTML-expected.txt:
  • fast/dynamic/insertAdjacentText-expected.txt:
  • fast/dynamic/outerHTML-no-element-expected.txt:
  • fast/events/dispatch-event-being-dispatched-expected.txt:
  • fast/events/dispatch-event-being-dispatched.html:
  • fast/events/message-port-clone-expected.txt:
  • fast/events/message-port-multi-expected.txt:
  • fast/events/mutation-during-append-child-expected.txt:
  • fast/events/mutation-during-append-child.html:
  • fast/events/mutation-during-insert-before-expected.txt:
  • fast/events/mutation-during-insert-before.html:
  • fast/events/mutation-during-replace-child-2-expected.txt:
  • fast/events/mutation-during-replace-child-2.html:
  • fast/events/mutation-during-replace-child-expected.txt:
  • fast/events/mutation-during-replace-child.html:
  • fast/eventsource/eventsource-constructor-expected.txt:
  • fast/forms/color/color-setrangetext-expected.txt:
  • fast/forms/date/date-setrangetext-expected.txt:
  • fast/forms/date/date-stepup-stepdown-expected.txt:
  • fast/forms/date/date-stepup-stepdown.html:
  • fast/forms/date/input-valueasnumber-date-expected.txt:
  • fast/forms/date/input-valueasnumber-date.html:
  • fast/forms/datetime/datetime-setrangetext-expected.txt:
  • fast/forms/datetime/datetime-stepup-stepdown-expected.txt:
  • fast/forms/datetime/datetime-stepup-stepdown.html:
  • fast/forms/datetime/input-valueasnumber-datetime-expected.txt:
  • fast/forms/datetime/input-valueasnumber-datetime.html:
  • fast/forms/datetimelocal/datetimelocal-setrangetext-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown.html:
  • fast/forms/datetimelocal/input-valueasnumber-datetimelocal-expected.txt:
  • fast/forms/datetimelocal/input-valueasnumber-datetimelocal.html:
  • fast/forms/file/file-setrangetext-expected.txt:
  • fast/forms/file/input-file-value-expected.txt:
  • fast/forms/hidden/hidden-setrangetext-expected.txt:
  • fast/forms/image/image-setrangetext-expected.txt:
  • fast/forms/input-maxlength-expected.txt:
  • fast/forms/input-maxlength.html:
  • fast/forms/input-stepup-stepdown-expected.txt:
  • fast/forms/input-stepup-stepdown.html:
  • fast/forms/input-valueasnumber-unsupported-expected.txt:
  • fast/forms/input-valueasnumber-unsupported.html:
  • fast/forms/month/input-valueasdate-expected.txt:
  • fast/forms/month/input-valueasdate.html:
  • fast/forms/month/input-valueasnumber-month-expected.txt:
  • fast/forms/month/input-valueasnumber-month.html:
  • fast/forms/month/month-setrangetext-expected.txt:
  • fast/forms/month/month-stepup-stepdown-expected.txt:
  • fast/forms/month/month-stepup-stepdown.html:
  • fast/forms/number/number-setrangetext-expected.txt:
  • fast/forms/number/number-size-expected.txt:
  • fast/forms/number/number-size.html:
  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown-from-renderer.html:
  • fast/forms/number/number-stepup-stepdown.html:
  • fast/forms/number/number-valueasnumber-expected.txt:
  • fast/forms/number/number-valueasnumber.html:
  • fast/forms/range/input-valueasnumber-range-expected.txt:
  • fast/forms/range/input-valueasnumber-range.html:
  • fast/forms/range/range-setrangetext-expected.txt:
  • fast/forms/range/range-stepup-stepdown-expected.txt:
  • fast/forms/range/range-stepup-stepdown-from-renderer.html:
  • fast/forms/range/range-stepup-stepdown.html:
  • fast/forms/search/search-setrangetext-expected.txt:
  • fast/forms/setrangetext-expected.txt:
  • fast/forms/textarea-maxlength-expected.txt:
  • fast/forms/textarea-maxlength.html:
  • fast/forms/textarea/textarea-setrangetext-expected.txt:
  • fast/forms/time/time-setrangetext-expected.txt:
  • fast/forms/time/time-stepup-stepdown-expected.txt:
  • fast/forms/time/time-stepup-stepdown.html:
  • fast/forms/time/time-valueasnumber-expected.txt:
  • fast/forms/time/time-valueasnumber.html:
  • fast/forms/week/input-valueasnumber-week-expected.txt:
  • fast/forms/week/input-valueasnumber-week.html:
  • fast/forms/week/week-setrangetext-expected.txt:
  • fast/forms/week/week-stepup-stepdown-expected.txt:
  • fast/forms/week/week-stepup-stepdown.html:
  • fast/frames/adopt-iframe-into-itself-expected.txt:
  • fast/frames/adopt-object-into-itself-expected.txt:
  • fast/frames/resources/sandboxed-iframe-storage-disallowed.html:
  • fast/frames/sandboxed-iframe-storage-expected.txt:
  • fast/html/marquee-element-expected.txt:
  • fast/innerHTML/innerHTML-changing-document-properties-expected.txt:
  • fast/inspector-support/uncaught-dom1-exception-expected.txt:
  • fast/inspector-support/uncaught-dom3-exception-expected.txt:
  • fast/inspector-support/uncaught-dom8-exception-expected.txt:
  • fast/loader/stateobjects/pushstate-frequency-expected.txt:
  • fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt:
  • fast/loader/stateobjects/replacestate-frequency-expected.txt:
  • fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
  • fast/media/mq-js-media-except-01-expected.html:
  • fast/media/mq-js-media-except-02-expected.html:
  • fast/media/mq-js-media-except-03-expected.html:
  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
  • fast/mediastream/RTCPeerConnection-closed-state-expected.txt:
  • fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-createOffer-expected.txt:
  • fast/mediastream/RTCPeerConnection-datachannel-expected.txt:
  • fast/mediastream/RTCPeerConnection-dtmf-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
  • fast/mediastream/RTCRtpSender-replaceTrack-expected.txt:
  • fast/notifications/notifications-document-close-crash-expected.txt:
  • fast/regions/selection/crash-deselect-expected.txt:
  • fast/selectors/closest-general-expected.txt:
  • fast/selectors/invalid-functional-pseudo-class-expected.txt:
  • fast/selectors/lang-empty-expected.txt:
  • fast/selectors/lang-extended-filtering-expected.txt:
  • fast/selectors/lang-extended-filtering-with-string-arguments-expected.txt:
  • fast/selectors/lang-invalid-expected.txt:
  • fast/selectors/lang-multiple-expected.txt:
  • fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not-expected.txt:
  • fast/text/font-face-empty-string-expected.txt:
  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • fast/workers/atob-btoa-expected.txt:
  • fast/workers/worker-constructor-expected.txt:
  • fast/workers/worker-context-multi-port-expected.txt:
  • fast/workers/worker-multi-port-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-document-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-set-at-headers-received-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-text-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-sync-disabled-expected.txt:
  • fast/xpath/attr-namespace-expected.txt:
  • fast/xpath/detached-subtree-invalidate-iterator-expected.txt:
  • fast/xpath/py-dom-xpath/nodetests-expected.txt:
  • http/tests/contentextensions/sync-xhr-blocked-expected.txt:
  • http/tests/loading/state-object-security-exception-expected.txt:
  • http/tests/local/fileapi/send-sliced-dragged-file-expected.txt:
  • http/tests/notifications/legacy/show-expected.txt:
  • http/tests/security/canvas-remote-read-data-url-image-redirect-expected.txt:
  • http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
  • http/tests/security/canvas-remote-read-remote-image-expected.txt:
  • http/tests/security/canvas-remote-read-remote-image-redirect-expected.txt:
  • http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin-expected.txt:
  • http/tests/security/canvas-remote-read-remote-video-localhost-expected.txt:
  • http/tests/security/canvas-remote-read-remote-video-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-importscripts-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-importscripts-blocked.html:
  • http/tests/security/history-username-password-expected.txt:
  • http/tests/security/postMessage/invalid-origin-throws-exception-expected.txt:
  • http/tests/security/postMessage/target-origin-expected.txt:
  • http/tests/security/resources/canvas-video-crossorigin.js:

(testDataRetrievalAllowed):
(testDataRetrievalForbidden):

  • http/tests/security/setDomainRelaxationForbiddenForURLScheme-expected.txt:
  • http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
  • http/tests/websocket/tests/hybi/bad-sub-protocol-control-chars-expected.txt:
  • http/tests/websocket/tests/hybi/bad-sub-protocol-empty-expected.txt:
  • http/tests/websocket/tests/hybi/bad-sub-protocol-non-ascii-expected.txt:
  • http/tests/websocket/tests/hybi/binary-type-expected.txt:
  • http/tests/websocket/tests/hybi/binary-type.html:
  • http/tests/websocket/tests/hybi/invalid-subprotocol-characters-expected.txt:
  • http/tests/websocket/tests/hybi/invalid-subprotocol-characters.html:
  • http/tests/websocket/tests/hybi/invalid-subprotocols-expected.txt:
  • http/tests/websocket/tests/hybi/invalid-subprotocols.html:
  • http/tests/websocket/tests/hybi/url-parsing-expected.txt:
  • http/tests/workers/worker-importScripts-expected.txt:
  • http/tests/workers/worker-redirect-expected.txt:
  • http/tests/xmlhttprequest/XMLHttpRequestException-expected.txt:
  • http/tests/xmlhttprequest/XMLHttpRequestException.html:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • http/tests/xmlhttprequest/connection-error-sync-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/exceptions-expected.txt:
  • http/tests/xmlhttprequest/inject-header-expected.txt:
  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt:
  • http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-open-empty-method-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-setrequestheader-no-name-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • inspector/debugger/command-line-api-exception-expected.txt:
  • inspector/debugger/regress-133182-expected.txt:
  • inspector/debugger/resources/exceptions.js:

(triggerUncaughtDOMException):

  • inspector/debugger/setPauseOnExceptions-all-expected.txt:
  • inspector/debugger/setPauseOnExceptions-none-expected.txt:
  • inspector/debugger/setPauseOnExceptions-uncaught-expected.txt:
  • inspector/model/remote-object-expected.txt:
  • js/dom/dfg-custom-getter-throw-expected.txt:
  • js/dom/reflect-set-onto-dom-expected.txt:
  • js/dom/script-tests/dfg-custom-getter-throw-inlined.js:

(i.dfgIncrement):

  • js/dom/script-tests/dfg-custom-getter-throw.js:
  • loader/stateobjects/pushstate-size-expected.txt:
  • loader/stateobjects/pushstate-size-iframe-expected.txt:
  • loader/stateobjects/replacestate-size-expected.txt:
  • loader/stateobjects/replacestate-size-iframe-expected.txt:
  • media/track/regions-webvtt/vtt-region-constructor-expected.txt:
  • media/track/regions-webvtt/vtt-region-list-expected.txt:
  • platform/efl/fast/dynamic/015-expected.txt:
  • platform/gtk/fast/dynamic/015-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-2-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-2-left-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-right-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-2-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-2-left-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-right-expected.txt:
  • platform/ios-simulator/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/ios-simulator/fast/dynamic/015-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/ios-simulator/webaudio/analyser-exception-expected.txt:
  • platform/ios-simulator/webaudio/audiobuffersource-exception-expected.txt:
  • platform/ios-simulator/webaudio/delaynode-maxdelaylimit-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/canvas/philip/tests/2d.missingargs-expected.txt:
  • platform/mac/fast/dynamic/015-expected.txt:
  • platform/mac/inspector/model/remote-object-expected.txt:
  • platform/win/fast/dynamic/015-expected.txt:
  • security/contentSecurityPolicy/worker-inherits-blocks-xhr-expected.txt:
  • storage/domstorage/localstorage/blocked-file-access-expected.txt:
  • storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
  • storage/domstorage/sessionstorage/private-browsing-affects-storage-expected.txt:
  • storage/indexeddb/removed-expected.txt:
  • storage/indexeddb/removed-private-expected.txt:
  • storage/websql/open-database-set-empty-version-expected.txt:
  • svg/animations/animate-gradient-transform-expected.txt:
  • svg/as-image/svg-canvas-pattern-with-link-tainted-expected.txt:
  • svg/as-image/svg-canvas-svg-with-feimage-with-link-tainted-expected.txt:
  • svg/as-image/svg-canvas-svg-with-image-with-link-tainted-expected.txt:
  • svg/as-image/svg-canvas-xhtml-tainted-expected.txt:
  • svg/custom/acid3-test-77-expected.txt:
  • svg/custom/baseval-animval-equality-expected.txt:
  • svg/custom/getSubStringLength-expected.txt:
  • svg/custom/selectSubString-expected.txt:
  • svg/dom/SVGAngle-expected.txt:
  • svg/dom/SVGColor-expected.txt:
  • svg/dom/SVGLength-expected.txt:
  • svg/dom/SVGLength-px-expected.txt:
  • svg/dom/SVGLengthList-appendItem-expected.txt:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGLengthList-getItem-expected.txt:
  • svg/dom/SVGLengthList-initialize-expected.txt:
  • svg/dom/SVGLengthList-insertItemBefore-expected.txt:
  • svg/dom/SVGLengthList-removeItem-expected.txt:
  • svg/dom/SVGLengthList-replaceItem-expected.txt:
  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGPaint-expected.txt:
  • svg/dom/SVGPathSegList-clear-and-initialize-expected.txt:
  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGPreserveAspectRatio-expected.txt:
  • svg/dom/SVGStringList-basics-expected.txt:
  • svg/dom/SVGTransformList-basics-expected.txt:
  • svg/dom/SVGTransformList-expected.txt:
  • svg/dom/SVGViewSpec-defaults-expected.txt:
  • svg/dom/altGlyph-dom-expected.txt:
  • svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
  • transforms/cssmatrix-2d-interface-expected.txt:
  • transforms/cssmatrix-3d-interface-expected.txt:
  • webaudio/analyser-exception-expected.txt:
  • webaudio/analyser-exception.html:
  • webaudio/audiobuffersource-channels-expected.txt:
  • webaudio/audiobuffersource-exception-expected.txt:
  • webaudio/audiobuffersource-exception.html:
  • webaudio/convolver-channels-expected.txt:
  • webaudio/convolver-channels.html:
  • webaudio/convolver-setBuffer-different-samplerate-expected.txt:
  • webaudio/convolver-setBuffer-different-samplerate.html:
  • webaudio/delaynode-maxdelaylimit-expected.txt:
  • webaudio/offlineaudiocontext-constructor-expected.txt:
7:39 AM Changeset in webkit [203332] by Yusuke Suzuki
  • 5 edits in trunk

[JSC] Enable test262 module tests
https://bugs.webkit.org/show_bug.cgi?id=159854

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch enables test262 module tests. Before this patch, the modules tests in test262 do not work fine.
This patch fixes the following 2 things.

  1. Test harness

Before this patch, there is only one global switch "-m" in jsc shell. So we cannot load the test262 test harness before evaluating the module tests.
This patch adds a new option, "--module-file=". It is similar to "--strict-file=". When we specify the file with "--module-file=", it is evaluated as
a module, while the other files are evaluated by following the JSC's default manner. This option allows us to load the test harness files into the
global context before loading the module tests.

  1. Module's asynchronous errors

Before this patch, the errors caused in the module evaluation are not handled as the same to the usual sync files. In synchronous execution, we have
"--exception=" option to pass the expected exception to the JSC shell. But this option does not work in the module evaluation.
This patch correctly handles this expected exception in the module evaluation promise's fulfill and reject handlers.

And we fix the YAML file. Now the recorded :fail and :normal are the correct test results for the module tests.

  • jsc.cpp:

(Script::Script):
(checkUncaughtException):
(runWithScripts):
(printUsageStatement):
(CommandLine::parseArguments):
(dumpException): Deleted.

  • tests/test262.yaml:

Tools:

Use --module-file instead.

  • Scripts/run-jsc-stress-tests:
7:33 AM Changeset in webkit [203331] by Yusuke Suzuki
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Mask TrustedImm32 to 8bit in MacroAssembler for 8bit operations
https://bugs.webkit.org/show_bug.cgi?id=159334

Reviewed by Filip Pizlo.

Previously, in 8bit operations (like add8, compare8, test8, branch8, branchTest8 etc.),
we require that the given TrustedImm32 is in range of 8bit. While achieving this in
the manual MacroAssembler calling is easy, in Air, we don't guarantee that the higher bit
of the 8bit argument is cleared. So the current assertions are invalid.

This patch relaxes the above restriction. By removing this assertion,
8bit operations can take arbitrary 32bit imms. And only lower 8bit are effective when
emitting the code in these methods.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::branchTest8):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::store8):
(JSC::MacroAssemblerARM::branch8):
(JSC::MacroAssemblerARM::branchTest8):
(JSC::MacroAssemblerARM::compare8):
(JSC::MacroAssemblerARM::test8):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::branch8):
(JSC::MacroAssemblerARM64::branchTest8):
(JSC::MacroAssemblerARM64::compare8):
(JSC::MacroAssemblerARM64::test8):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::branch8):
(JSC::MacroAssemblerARMv7::branchTest8):
(JSC::MacroAssemblerARMv7::compare8):
(JSC::MacroAssemblerARMv7::test8):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::branch8):
(JSC::MacroAssemblerMIPS::compare8):
(JSC::MacroAssemblerMIPS::branchTest8):
(JSC::MacroAssemblerMIPS::test8):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::store8):
(JSC::MacroAssemblerSH4::branchTest8):
(JSC::MacroAssemblerSH4::branch8):
(JSC::MacroAssemblerSH4::compare8):
(JSC::MacroAssemblerSH4::test8):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::store8):
(JSC::MacroAssemblerX86::branch8):
(JSC::MacroAssemblerX86::branchTest8):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::add8):
(JSC::MacroAssemblerX86Common::store8):
(JSC::MacroAssemblerX86Common::branch8):
(JSC::MacroAssemblerX86Common::branchTest8):
(JSC::MacroAssemblerX86Common::compare8):
(JSC::MacroAssemblerX86Common::test8):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::store8):
(JSC::MacroAssemblerX86_64::branch8):
(JSC::MacroAssemblerX86_64::branchTest8):

12:16 AM Changeset in webkit [203330] by mmaxfield@apple.com
  • 9 edits
    52 adds in trunk

Support new emoji group candidates
https://bugs.webkit.org/show_bug.cgi?id=159755
<rdar://problem/27325521>

Reviewed by Dean Jackson.

Source/WebCore:

There are a few code points which should be able to be joined (with ZWJ) to
either U+2640 or U+2642 to change the gender of the emoji. These patterns
should also work with an additional 0xFE0F variation selector. This patch
adds these new patterns to our existing emoji group candidate infrastructure.

Tests: fast/text/emoji-gender-2-3.html

fast/text/emoji-gender-2-4.html
fast/text/emoji-gender-2-5.html
fast/text/emoji-gender-2-6.html
fast/text/emoji-gender-2-7.html
fast/text/emoji-gender-2-8.html
fast/text/emoji-gender-2-9.html
fast/text/emoji-gender-2.html
fast/text/emoji-gender-3.html
fast/text/emoji-gender-4.html
fast/text/emoji-gender-5.html
fast/text/emoji-gender-6.html
fast/text/emoji-gender-7.html
fast/text/emoji-gender-8.html
fast/text/emoji-gender-9.html
fast/text/emoji-gender-fe0f-3.html
fast/text/emoji-gender-fe0f-4.html
fast/text/emoji-gender-fe0f-5.html
fast/text/emoji-gender-fe0f-6.html
fast/text/emoji-gender-fe0f-7.html
fast/text/emoji-gender-fe0f-8.html
fast/text/emoji-gender-fe0f-9.html
fast/text/emoji-gender.html
fast/text/emoji-num-glyphs.html
fast/text/emoji-single-parent-family-2.html
fast/text/emoji-single-parent-family.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Removed incorrect ASSERT()s.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

Source/WTF:

This patch doesn't update the rules for our cursor movement iterator, because
I don't know the language used for implementing these rules. These rules will
be updated in the near future. When they do,
editing/deleting/delete-emoji-expected.txt will need to be updated.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

Because this patch doesn't update the rules for our cursor movement
iterator, the new expected result for editing/deleting/delete-emoji.html
expects incorrect results. In the patch where we update these rules,
the expected result should also be updated.

Because these new emoji require system support, TestExpectations has
been updated to mark the tests as failing until the system support has
been added.

  • TestExpectations:
  • editing/deleting/delete-emoji-expected.txt:
  • fast/text/emoji-gender-2-3-expected.html: Added.
  • fast/text/emoji-gender-2-3.html: Added.
  • fast/text/emoji-gender-2-4-expected.html: Added.
  • fast/text/emoji-gender-2-4.html: Added.
  • fast/text/emoji-gender-2-5-expected.html: Added.
  • fast/text/emoji-gender-2-5.html: Added.
  • fast/text/emoji-gender-2-6-expected.html: Added.
  • fast/text/emoji-gender-2-6.html: Added.
  • fast/text/emoji-gender-2-7-expected.html: Added.
  • fast/text/emoji-gender-2-7.html: Added.
  • fast/text/emoji-gender-2-8-expected.html: Added.
  • fast/text/emoji-gender-2-8.html: Added.
  • fast/text/emoji-gender-2-9-expected.html: Added.
  • fast/text/emoji-gender-2-9.html: Added.
  • fast/text/emoji-gender-2-expected-mismatch.html: Added.
  • fast/text/emoji-gender-2.html: Added.
  • fast/text/emoji-gender-3-expected.html: Added.
  • fast/text/emoji-gender-3.html: Added.
  • fast/text/emoji-gender-4-expected.html: Added.
  • fast/text/emoji-gender-4.html: Added.
  • fast/text/emoji-gender-5-expected.html: Added.
  • fast/text/emoji-gender-5.html: Added.
  • fast/text/emoji-gender-6-expected.html: Added.
  • fast/text/emoji-gender-6.html: Added.
  • fast/text/emoji-gender-7-expected.html: Added.
  • fast/text/emoji-gender-7.html: Added.
  • fast/text/emoji-gender-8-expected.html: Added.
  • fast/text/emoji-gender-8.html: Added.
  • fast/text/emoji-gender-9-expected.html: Added.
  • fast/text/emoji-gender-9.html: Added.
  • fast/text/emoji-gender-expected-mismatch.html: Added.
  • fast/text/emoji-gender-fe0f-3-expected.html: Added.
  • fast/text/emoji-gender-fe0f-3.html: Added.
  • fast/text/emoji-gender-fe0f-4-expected.html: Added.
  • fast/text/emoji-gender-fe0f-4.html: Added.
  • fast/text/emoji-gender-fe0f-5-expected.html: Added.
  • fast/text/emoji-gender-fe0f-5.html: Added.
  • fast/text/emoji-gender-fe0f-6-expected.html: Added.
  • fast/text/emoji-gender-fe0f-6.html: Added.
  • fast/text/emoji-gender-fe0f-7-expected.html: Added.
  • fast/text/emoji-gender-fe0f-7.html: Added.
  • fast/text/emoji-gender-fe0f-8-expected.html: Added.
  • fast/text/emoji-gender-fe0f-8.html: Added.
  • fast/text/emoji-gender-fe0f-9-expected.html: Added.
  • fast/text/emoji-gender-fe0f-9.html: Added.
  • fast/text/emoji-gender.html: Added.
  • fast/text/emoji-num-glyphs-expected.txt: Added.
  • fast/text/emoji-num-glyphs.html: Added.
  • fast/text/emoji-single-parent-family-2-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family-2.html: Added.
  • fast/text/emoji-single-parent-family-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family.html: Added.

Jul 16, 2016:

5:19 PM Changeset in webkit [203329] by Chris Dumez
  • 5 edits in trunk

Unreviewed, rolling out r203318.

Regressed most JS Benchmarks on MacBook Air by ~2% (7% on
SunSpider)

Reverted changeset:

"[JSC] Change some parameters based on a random search"
https://bugs.webkit.org/show_bug.cgi?id=158514
http://trac.webkit.org/changeset/203318

2:33 PM Changeset in webkit [203328] by beidson@apple.com
  • 36 edits in trunk

Update SVGException to use the description in toString().
https://bugs.webkit.org/show_bug.cgi?id=159847

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException): use consoleErrorMessage for now.

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::consoleErrorMessage):

  • dom/ExceptionBase.h:
  • svg/SVGException.h:

LayoutTests:

  • svg/animations/animate-marker-orient-from-angle-to-autostartreverse-expected.txt:
  • svg/custom/SVGException-expected.txt:
  • svg/custom/polyline-points-crash-expected.txt:
  • svg/custom/script-tests/SVGException.js:
  • svg/dom/SVGAnimatedEnumeration-SVGClipPathElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEColorMatrixElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFECompositeElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEDisplacementMapElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEMorphologyElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFETurbulenceElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFilterElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGGradientElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMaskElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGPatternElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGTextContentElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGTextPathElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-expected.txt:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGMatrix-interface-expected.txt:
  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGTransformList-basics-expected.txt:
  • svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
  • svg/filters/feBlend-invalid-mode-expected.txt:
  • svg/filters/feComponentTransfer-style-crash-expected.txt:
  • svg/filters/feDisplacementMap-crash-test-expected.txt:
11:31 AM Changeset in webkit [203327] by ddkilzer@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

Use secure (https) links on enter_bug.cgi
<https://webkit.org/b/159853>

Reviewed by Alexey Proskuryakov.

  • template/en/default/global/choose-product.html.tmpl:

Use https instead of http for links to webkit.org.

10:21 AM Changeset in webkit [203326] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Use fastHasAttribute() when possible
https://bugs.webkit.org/show_bug.cgi?id=159838

Reviewed by Ryosuke Niwa.

Use fastHasAttribute() when possible, for performance.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):

  • editing/markup.cpp:

(WebCore::createMarkupInternal):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::parseAttribute):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustMenuListButtonStyle):

9:33 AM Changeset in webkit [203325] by Chris Dumez
  • 4 edits in trunk

Add move constructor / assignment operator to ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=159837

Reviewed by Darin Adler.

Source/WTF:

Add move constructor / assignment operator to ListHashSet.

  • wtf/ListHashSet.h:

(WTF::ListHashSetConstIterator::operator++):
(WTF::U>::ListHashSet):
(WTF::=):
(WTF::U>::clear):
(WTF::U>::appendNode):
(WTF::U>::prependNode):
(WTF::U>::deleteAllNodes):
(WTF::ListHashSetNode::ListHashSetNode): Deleted.

Tools:

Add API tests.

  • TestWebKitAPI/Tests/WTF/ListHashSet.cpp:

(TestWebKitAPI::TEST):

8:21 AM Changeset in webkit [203324] by rniwa@webkit.org
  • 133 edits in trunk/Source

Rename fastGetAttribute to attributeWithoutSynchronization
https://bugs.webkit.org/show_bug.cgi?id=159852

Reviewed by Darin Adler.

Source/WebCore:

Renamed fastGetAttribute to attributeWithoutSynchronization for clarity.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::findAriaModalNodes):
(WebCore::nodeHasRole):
(WebCore::AXObjectCache::handleLiveRegionCreated):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::handleAriaModalChange):
(WebCore::isNodeAriaVisible):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::siblingWithAriaRole):
(WebCore::AccessibilityNodeObject::titleElementText):
(WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::stringValue):
(WebCore::accessibleNameForNode):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
(WebCore::AccessibilityObject::getAttribute):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::exposesTitleUIElement):

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage):
(WebCore::AccessibilitySVGElement::accessibilityDescription):

  • bindings/objc/DOM.mm:

(-[DOMHTMLLinkElement _mediaQueryMatches]):

  • bindings/scripts/CodeGenerator.pm:

(GetterExpression):

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjReflectedStringAttr):

  • dom/AuthorStyleSheets.cpp:

(WebCore::AuthorStyleSheets::collectActiveStyleSheets):

  • dom/Document.cpp:

(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::processBaseElement):

  • dom/DocumentOrderedMap.cpp:

(WebCore::DocumentOrderedMap::getElementByLabelForAttribute):

  • dom/Element.cpp:

(WebCore::Element::imageSourceURL):
(WebCore::Element::rendererIsNeeded):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::pseudo):
(WebCore::Element::setPseudo):
(WebCore::Element::spellcheckAttributeState):
(WebCore::Element::canContainRangeEndPoint):
(WebCore::Element::completeURLsInAttributeValue):

  • dom/Element.h:

(WebCore::Element::fastHasAttribute):
(WebCore::Element::attributeWithoutSynchronization):
(WebCore::Element::fastGetAttribute): Deleted.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):

  • dom/SlotAssignment.cpp:

(WebCore::slotNameFromSlotAttribute):
(WebCore::SlotAssignment::SlotAssignment):
(WebCore::recursivelyFireSlotChangeEvent):
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::hostChildElementDidChange):
(WebCore::SlotAssignment::assignedNodesForSlot):
(WebCore::SlotAssignment::resolveAllSlotElements):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::labelElementForId):

  • dom/VisitedLinkState.cpp:

(WebCore::linkAttribute):

  • editing/ApplyStyleCommand.cpp:

(WebCore::isLegacyAppleStyleSpan):
(WebCore::hasNoAttributeOrOnlyStyleAttribute):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isInterchangeNewlineNode):
(WebCore::isInterchangeConvertedSpaceSpan):
(WebCore::positionAvoidingPrecedingNodes):
(WebCore::isMailPasteAsQuotationNode):
(WebCore::isHeaderElement):
(WebCore::isInlineNodeWithStyle):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::requiresExtendedContext):
(WebCore::DataDetection::dataDetectorIdentifier):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):

  • editing/gtk/EditorGtk.cpp:

(WebCore::elementURL):

  • editing/htmlediting.cpp:

(WebCore::isTabSpanNode):
(WebCore::isTabSpanTextNode):
(WebCore::isMailBlockquote):
(WebCore::caretMinOffset):

  • editing/markup.cpp:

(WebCore::createFragmentFromMarkup):

  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/BaseTextInputType.cpp:

(WebCore::BaseTextInputType::patternMismatch):

  • html/DateInputType.cpp:

(WebCore::DateInputType::createStepRange):

  • html/DateTimeInputType.cpp:

(WebCore::DateTimeInputType::createStepRange):

  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::createStepRange):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::findAssociatedForm):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):
(WebCore::FormAssociatedElement::formAttributeTargetChanged):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):
(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::setHref):
(WebCore::HTMLAnchorElement::target):
(WebCore::HTMLAnchorElement::origin):
(WebCore::HTMLAnchorElement::sendPings):
(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLAnchorElement.h:

(WebCore::HTMLAnchorElement::visitedLinkHash):

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::updateWidget):

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::target):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::attachmentTitle):
(WebCore::HTMLAttachmentElement::attachmentType):

  • html/HTMLBaseElement.cpp:

(WebCore::HTMLBaseElement::target):
(WebCore::HTMLBaseElement::href):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::addSubresourceAttributeURLs):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::value):
(WebCore::HTMLButtonElement::computeWillValidate):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::reset):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::vlinkColor):
(WebCore::HTMLDocument::setVlinkColor):

  • html/HTMLElement.cpp:

(WebCore::contentEditableType):
(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::HTMLElement::dir):
(WebCore::HTMLElement::setDir):
(WebCore::HTMLElement::draggable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::title):
(WebCore::HTMLElement::tabIndex):
(WebCore::HTMLElement::translateAttributeMode):
(WebCore::HTMLElement::hasDirectionAuto):
(WebCore::HTMLElement::directionality):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::imageSourceURL):
(WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::formEnctype):
(WebCore::HTMLFormControlElement::formMethod):
(WebCore::HTMLFormControlElement::formAction):
(WebCore::HTMLFormControlElement::autocorrect):
(WebCore::HTMLFormControlElement::autocapitalizeType):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::autocorrect):
(WebCore::HTMLFormElement::autocapitalizeType):
(WebCore::HTMLFormElement::autocapitalize):
(WebCore::HTMLFormElement::action):
(WebCore::HTMLFormElement::setAction):
(WebCore::HTMLFormElement::target):
(WebCore::HTMLFormElement::wasUserSubmitted):
(WebCore::HTMLFormElement::shouldAutocomplete):
(WebCore::HTMLFormElement::finishParsingChildren):
(WebCore::HTMLFormElement::autocomplete):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::location):
(WebCore::HTMLFrameElementBase::setLocation):

  • html/HTMLHtmlElement.cpp:

(WebCore::HTMLHtmlElement::insertedByParser):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::imageSourceURL):
(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::selectImageSource):
(WebCore::HTMLImageElement::altText):
(WebCore::HTMLImageElement::createElementRenderer):
(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::alt):
(WebCore::HTMLImageElement::draggable):
(WebCore::HTMLImageElement::setHeight):
(WebCore::HTMLImageElement::src):
(WebCore::HTMLImageElement::setSrc):
(WebCore::HTMLImageElement::addSubresourceAttributeURLs):
(WebCore::HTMLImageElement::didMoveToNewDocument):
(WebCore::HTMLImageElement::isServerMap):
(WebCore::HTMLImageElement::crossOrigin):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::value):
(WebCore::HTMLInputElement::defaultValue):
(WebCore::HTMLInputElement::setDefaultValue):
(WebCore::HTMLInputElement::acceptMIMETypes):
(WebCore::HTMLInputElement::acceptFileExtensions):
(WebCore::HTMLInputElement::accept):
(WebCore::HTMLInputElement::alt):
(WebCore::HTMLInputElement::effectiveMaxLength):
(WebCore::HTMLInputElement::src):
(WebCore::HTMLInputElement::setAutoFilled):
(WebCore::HTMLInputElement::dataList):
(WebCore::HTMLInputElement::resetListAttributeTargetObserver):

  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::isKeytypeRSA):
(WebCore::HTMLKeygenElement::appendFormData):

  • html/HTMLLIElement.cpp:

(WebCore::HTMLLIElement::didAttachRenderers):
(WebCore::HTMLLIElement::parseValue):

  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::control):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::crossOrigin):
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::href):
(WebCore::HTMLLinkElement::rel):
(WebCore::HTMLLinkElement::target):
(WebCore::HTMLLinkElement::type):
(WebCore::HTMLLinkElement::iconType):

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::scrollAmount):
(WebCore::HTMLMarqueeElement::setScrollAmount):
(WebCore::HTMLMarqueeElement::scrollDelay):
(WebCore::HTMLMarqueeElement::setScrollDelay):
(WebCore::HTMLMarqueeElement::loop):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::insertedInto):
(WebCore::HTMLMediaElement::crossOrigin):
(WebCore::HTMLMediaElement::networkState):
(WebCore::HTMLMediaElement::mediaSessionTitle):
(WebCore::HTMLMediaElement::doesHaveAttribute):

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::process):
(WebCore::HTMLMetaElement::content):
(WebCore::HTMLMetaElement::httpEquiv):
(WebCore::HTMLMetaElement::name):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::min):
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::max):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::value):
(WebCore::HTMLMeterElement::low):
(WebCore::HTMLMeterElement::high):
(WebCore::HTMLMeterElement::optimum):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
(WebCore::HTMLObjectElement::hasValidClassId):
(WebCore::HTMLObjectElement::imageSourceURL):
(WebCore::HTMLObjectElement::renderFallbackContent):
(WebCore::HTMLObjectElement::containsJavaApplet):
(WebCore::HTMLObjectElement::addSubresourceAttributeURLs):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::groupLabelText):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::value):
(WebCore::HTMLOptionElement::label):

  • html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::value):
(WebCore::HTMLParamElement::isURLParameter):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::value):
(WebCore::HTMLProgressElement::max):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::crossOrigin):
(WebCore::HTMLScriptElement::src):
(WebCore::HTMLScriptElement::sourceAttributeValue):
(WebCore::HTMLScriptElement::charsetAttributeValue):
(WebCore::HTMLScriptElement::typeAttributeValue):
(WebCore::HTMLScriptElement::languageAttributeValue):
(WebCore::HTMLScriptElement::forAttributeValue):
(WebCore::HTMLScriptElement::eventAttributeValue):
(WebCore::HTMLScriptElement::asyncAttributeValue):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::insertedInto):
(WebCore::HTMLSlotElement::removedFrom):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::colSpanForBindings):
(WebCore::HTMLTableCellElement::rowSpan):
(WebCore::HTMLTableCellElement::rowSpanForBindings):
(WebCore::HTMLTableCellElement::cellIndex):
(WebCore::HTMLTableCellElement::abbr):
(WebCore::HTMLTableCellElement::axis):
(WebCore::HTMLTableCellElement::setColSpanForBindings):
(WebCore::HTMLTableCellElement::headers):
(WebCore::HTMLTableCellElement::setRowSpanForBindings):
(WebCore::HTMLTableCellElement::scope):
(WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):
(WebCore::HTMLTableCellElement::cellAbove):

  • html/HTMLTableColElement.cpp:

(WebCore::HTMLTableColElement::width):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::rules):
(WebCore::HTMLTableElement::summary):
(WebCore::HTMLTableElement::addSubresourceAttributeURLs):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::align):
(WebCore::HTMLTableSectionElement::setAlign):
(WebCore::HTMLTableSectionElement::ch):
(WebCore::HTMLTableSectionElement::setCh):
(WebCore::HTMLTableSectionElement::chOff):
(WebCore::HTMLTableSectionElement::setChOff):
(WebCore::HTMLTableSectionElement::vAlign):
(WebCore::HTMLTableSectionElement::setVAlign):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::appendFormData):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::strippedPlaceholder):
(WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
(WebCore::HTMLTextFormControlElement::directionForFormData):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::srclang):
(WebCore::HTMLTrackElement::label):
(WebCore::HTMLTrackElement::isDefault):
(WebCore::HTMLTrackElement::ensureTrack):
(WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::parseAttribute):
(WebCore::HTMLVideoElement::imageSourceURL):

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):

  • html/MonthInputType.cpp:

(WebCore::MonthInputType::createStepRange):

  • html/NumberInputType.cpp:

(WebCore::NumberInputType::createStepRange):
(WebCore::NumberInputType::sizeShouldIncludeDecoration):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createStepRange):
(WebCore::RangeInputType::handleKeydownEvent):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::appendFormData):
(WebCore::TextFieldInputType::updateAutoFillButton):

  • html/TimeInputType.cpp:

(WebCore::TimeInputType::createStepRange):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::updateValidationMessage):

  • html/WeekInputType.cpp:

(WebCore::WeekInputType::createStepRange):

  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::createEquivalentHTMLElement):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::buildObjectForFrame):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::defaultSubstituteDataForURL):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::isPluginContentAllowedByContentSecurityPolicy):

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::colSpan):
(WebCore::MathMLElement::rowSpan):
(WebCore::MathMLElement::childShouldCreateRenderer):
(WebCore::MathMLElement::defaultEventHandler):
(WebCore::MathMLElement::cachedMathMLLength):

  • mathml/MathMLFractionElement.cpp:

(WebCore::MathMLFractionElement::lineThickness):
(WebCore::MathMLFractionElement::cachedFractionAlignment):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):
(WebCore::MathMLSelectElement::defaultEventHandler):
(WebCore::MathMLSelectElement::willRespondToMouseClickEvents):
(WebCore::MathMLSelectElement::toggle):

  • page/EventHandler.cpp:

(WebCore::findDropZone):

  • page/Frame.cpp:

(WebCore::Frame::matchLabelsAgainstElement):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeImageToDataObject):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::altDisplayString):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::isOpen):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageMap):
(WebCore::RenderImage::nodeAtPoint):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::itemAccessibilityText):
(RenderMenuList::itemToolTip):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::autosaveName):

  • rendering/RenderThemeIOS.mm:

(WebCore::getAttachmentProgress):
(WebCore::AttachmentInfo::AttachmentInfo):

  • rendering/RenderThemeMac.mm:

(WebCore::AttachmentLayout::layOutSubtitle):
(WebCore::RenderThemeMac::paintAttachment):

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::resolveMathMLStyle):

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue):
(WebCore::RenderMathMLOperator::setOperatorProperties):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::hasAccent):

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::title):
(WebCore::SVGAElement::defaultEventHandler):

  • svg/SVGAltGlyphElement.cpp:

(WebCore::SVGAltGlyphElement::glyphRef):
(WebCore::SVGAltGlyphElement::setFormat):
(WebCore::SVGAltGlyphElement::format):
(WebCore::SVGAltGlyphElement::childShouldCreateRenderer):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::toValue):
(WebCore::SVGAnimationElement::byValue):
(WebCore::SVGAnimationElement::fromValue):
(WebCore::SVGAnimationElement::isAdditive):
(WebCore::SVGAnimationElement::isAccumulated):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::xmlbase):
(WebCore::SVGElement::setXmlbase):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::unitsPerEm):
(WebCore::SVGFontFaceElement::xHeight):
(WebCore::SVGFontFaceElement::capHeight):
(WebCore::SVGFontFaceElement::horizontalOriginX):
(WebCore::SVGFontFaceElement::horizontalOriginY):
(WebCore::SVGFontFaceElement::horizontalAdvanceX):
(WebCore::SVGFontFaceElement::verticalOriginX):
(WebCore::SVGFontFaceElement::verticalOriginY):
(WebCore::SVGFontFaceElement::verticalAdvanceY):
(WebCore::SVGFontFaceElement::ascent):
(WebCore::SVGFontFaceElement::descent):

  • svg/SVGFontFaceNameElement.cpp:

(WebCore::SVGFontFaceNameElement::srcValue):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::srcValue):

  • svg/SVGGlyphRefElement.cpp:

(WebCore::SVGGlyphRefElement::glyphRef):
(WebCore::SVGGlyphRefElement::setGlyphRef):

  • svg/SVGHKernElement.cpp:

(WebCore::SVGHKernElement::buildHorizontalKerningPair):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::contentScriptType):
(WebCore::SVGSVGElement::contentStyleType):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::media):
(WebCore::SVGStyleElement::title):
(WebCore::SVGStyleElement::setTitle):

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::appendCFFTable):
(WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable):
(WebCore::SVGToOTFFontConverter::appendVORGTable):
(WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

  • svg/SVGVKernElement.cpp:

(WebCore::SVGVKernElement::buildVerticalKerningPair):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::insertedInto):
(WebCore::SVGSMILElement::parseAttribute):
(WebCore::SVGSMILElement::svgAttributeChanged):
(WebCore::SVGSMILElement::restart):
(WebCore::SVGSMILElement::fill):
(WebCore::SVGSMILElement::dur):
(WebCore::SVGSMILElement::repeatDur):
(WebCore::SVGSMILElement::repeatCount):
(WebCore::SVGSMILElement::maxValue):
(WebCore::SVGSMILElement::minValue):

Source/WebKit/mac:

  • WebView/WebHTMLRepresentation.mm:

(matchLabelsAgainstElement):

Source/WebKit/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::idName):

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::getAssistedNodeInformation):

4:33 AM Changeset in webkit [203323] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: isMainThread() in ~UniqueIDBDatabase() since r201997
https://bugs.webkit.org/show_bug.cgi?id=159809

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-07-16
Reviewed by Brady Eidson.

In r201997 the UniqueIDBDatabase was protected in executeNextDatabaseTask() because the last reference could be
removed while the task is performed. However UniqueIDBDatabase is expected to be deleted in the main thread, and
the destructor asserts when not called in the main thread, but executeNextDatabaseTask() is always called on a
secondary thread. So, if the protector contains the last reference, the object is deleted in the secondary thread.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask): Use callOnMainThread to ensure the object is
deleted in the main thread in case the protector contains the last reference.

Jul 15, 2016:

9:51 PM Changeset in webkit [203322] by Chris Dumez
  • 49 edits in trunk/Source

Use emptyString() / nullAtom when possible
https://bugs.webkit.org/show_bug.cgi?id=159850

Reviewed by Ryosuke Niwa.

Use emptyString() / nullAtom when possible, for performance.

Source/WebCore:

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::channelCountMode):
(WebCore::AudioNode::channelInterpretation):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::tracker):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::didConnect):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::subprotocol):
(WebCore::WebSocketChannel::extensions):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsPressAction):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

  • css/CSSPropertySourceData.cpp:

(WebCore::CSSPropertySourceData::CSSPropertySourceData):

  • css/PageRuleCollector.cpp:

(WebCore::PageRuleCollector::pageName):

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker):

  • dom/Element.cpp:

(WebCore::Element::setPrefix):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord):
(WebCore::AlternativeTextController::markerDescriptionForAppliedAlternativeText):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeNodeAttribute):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::positionInsideTextNode):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparator):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::styleForSelectionStart):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::stringSelectionForPasteboard):
(WebCore::Editor::stringSelectionForPasteboardWithImageAltText):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::FileReaderLoader):

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::HTMLOutputElement):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::handleKeydownEvent):

  • html/TextFieldInputType.cpp:

(WebCore::autoFillButtonTypeToAccessibilityLabel):

  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::getTranslatedShaderSource):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):

  • html/canvas/WebGLShader.cpp:

(WebCore::WebGLShader::WebGLShader):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlStatusDisplayElement::update):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem):
(WebCore::TextTrack::captionMenuAutomaticItem):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::scroll):

  • html/track/VTTRegion.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::toErrorString):
(WebCore::InspectorDOMAgent::resolveNode):
(WebCore::InspectorDOMAgent::documentURLString):
(WebCore::documentBaseURLString):

  • inspector/InspectorDOMDebuggerAgent.cpp:

(WebCore::domTypeName):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::localizedStringsURL):

  • inspector/InspectorHistory.cpp:

(WebCore::InspectorHistory::Action::mergeId):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::reload):
(WebCore::InspectorPageAgent::frameId):
(WebCore::InspectorPageAgent::loaderId):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::ruleSelector):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::referrer):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::clearFailedLoadURL):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/FrameTree.cpp:

(WebCore::FrameTree::setName):
(WebCore::FrameTree::clearName):

  • page/Location.cpp:

(WebCore::Location::port):

  • platform/network/ProtectionSpaceBase.cpp:

(WebCore::ProtectionSpaceBase::ProtectionSpaceBase):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::handleElementAttributes):

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::convertASCIICase):

9:17 PM Changeset in webkit [203321] by benjamin@webkit.org
  • 4 edits
    2 deletes in trunk/LayoutTests

[mac] LayoutTest fast/css/ancestor-of-hovered-element-detached.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=159173

Reviewed by Alexey Proskuryakov.

The test ancestor-of-hovered-element-detached.html is not reliably
covering r202324.

In the case of that test, the first style update is done with
the flag TeardownType::KeepHoverAndActive. This keeps the ":hover" state
set despite the subtree losing their renderer.
This looks like a serious issue that should be tested separately.

  • fast/css/ancestor-of-hovered-element-removed.html:

The :hover update timer is actually a zero timer.
It is reasonable to expect a full update after one frame update.

  • fast/css/ancestor-of-hovered-element-detached-expected.txt: Removed.
  • fast/css/ancestor-of-hovered-element-detached.html: Removed.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
9:16 PM Changeset in webkit [203320] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Convert the remaining createOutOfMemoryError()+throwException() into throwOutOfMemoryError()
https://bugs.webkit.org/show_bug.cgi?id=159665

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-15
Reviewed by Saam Barati.

  • API/JSTypedArray.cpp:

(createTypedArray):

  • runtime/Error.cpp:

(JSC::createOutOfMemoryError):

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

(JSC::throwOutOfMemoryError):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::constructArrayBuffer):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):

7:50 PM Changeset in webkit [203319] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening after r203314
https://bugs.webkit.org/show_bug.cgi?id=159842

Unreviewed.

7:12 PM Changeset in webkit [203318] by commit-queue@webkit.org
  • 5 edits in trunk

[JSC] Change some parameters based on a random search
https://bugs.webkit.org/show_bug.cgi?id=158514

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-15
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::optimizationThresholdScalingFactor):

  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
6:43 PM Changeset in webkit [203317] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Repaints rects drawn incorrectly when inspecting a WebView on a Retina display
https://bugs.webkit.org/show_bug.cgi?id=159824
rdar://problem/27376305

Reviewed by Brian Burg.

InspectorOverlayPage.js set up the canvases with a deviceScaleFactor passed into
reset(), which comes from the overlay's m_page.deviceScaleFactor(). However, updatePaintRects()
used window.devicePixelRatio which was always 1.

Fix by setting the deviceScaleFactor on the m_overlayPage.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

6:19 PM Changeset in webkit [203316] by timothy@apple.com
  • 3 edits in trunk/Source/WebKit2

Web Automation: Fix element and event coord space issues
https://bugs.webkit.org/show_bug.cgi?id=159851
rdar://problem/27375780

Reviewed by Brian Burg.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performMouseInteraction): Subtract topContentInset() before
it goes back out to WebDriver.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout): When using useViewportCoordinates,
subtract topContentInset() so it matches expectations.

6:14 PM Changeset in webkit [203315] by mark.lam@apple.com
  • 2 edits
    5 adds in trunk/Source/JavaScriptCore

Assertion failures and crashes with missing TDZ checks for catch-node bindings.
https://bugs.webkit.org/show_bug.cgi?id=158797

Reviewed by Saam Barati.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::emitPopCatchScope):

  • tests/stress/catch-clause-should-be-under-tdz1.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz2.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz3.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz4.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz5.js: Added.
5:55 PM Changeset in webkit [203314] by mmaxfield@apple.com
  • 5 edits in trunk

[macOS] Work around crash in [NSAttributedString nextWordFromIndex:forward:]
https://bugs.webkit.org/show_bug.cgi?id=159842

Reviewed by Jon Lee.

Source/WebCore:

<rdar://problem/27380532> describes a crash inside [NSAttributedString nextWordFromIndex:forward:].
This must be worked around for https://bugs.webkit.org/show_bug.cgi?id=159755 and
<rdar://problem/27325521>.

  • platform/text/mac/TextBoundaries.mm:

(WebCore::findNextWordFromIndex):

LayoutTests:

  • editing/deleting/delete-emoji-expected.txt:
  • editing/deleting/delete-emoji.html:
5:46 PM Changeset in webkit [203313] by beidson@apple.com
  • 9 edits in trunk

Update XPathException to use the description in toString().
https://bugs.webkit.org/show_bug.cgi?id=159848

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):

  • xml/XPathException.h:

(WebCore::XPathException::XPathException):

LayoutTests:

  • fast/dom/DOMException/XPathException-expected.txt:
  • fast/dom/DOMException/resources/XPathException.js:
  • fast/xpath/4XPath/Core/test_parser-expected.txt:
  • fast/xpath/invalid-functions-expected.txt:
  • fast/xpath/py-dom-xpath/expressions-expected.txt:
5:39 PM Changeset in webkit [203312] by Beth Dakin
  • 15 edits in trunk/Source/WebKit2

Mac UI process needs to know about element focus and blur, much like iOS
https://bugs.webkit.org/show_bug.cgi?id=159843
-and corresponding-
rdar://problem/27229504

Reviewed by Tim Horton.

This patch makes the existing iOS machinery to handle focus and blurring of
elements cross-platform. Instead of using the existing iOS messages for
startAssistingNode/stopAssistingNode, this patch adds a new message that
require only a boolean parameter: setEditableElementIsFocused.

Now that more of this code is shared, this patch teases
m_hasFocusedDueToUserInteraction out into two variables. I realized that it
was being used to mean two slightly different things on Mac and iOS, which
was very confusing. Now we have m_isAssistingNodeDueToUserInteraction to
represent the way iOS was using the variable, and we have
m_hasEverFocusedElementDueToUserInteractionSincePageTransition to represent
how Mac was using the variable. There should not be any behavior changes with
this re-name, just added clarity.

WebViewImpl has a new member variable m_editableElementIsFocused.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setEditableElementIsFocused):

Pipe the new setEditableElementIsFocused message to WebViewImpl.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setEditableElementIsFocused):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setEditableElementIsFocused):

elementDidFocus() and elementDidBlur() are now PLATFORM(COCOA) instead of
PLATFORM(IOS)

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::elementDidFocus):
(WebKit::WebChromeClient::elementDidBlur):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::elementDidFocus): Deleted.
(WebKit::WebChromeClient::elementDidBlur): Deleted.

m_hasPendingBlurNotification is no longer iOS-only.

  • WebProcess/WebPage/WebPage.cpp:

Use our two new bools m_isAssistingNodeDueToUserInteraction and
m_hasEverFocusedElementDueToUserInteractionSincePageTransition
(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didChangeSelection):

These functions are all newly cross-platform. The Messages they send are
still platform-specific, but otherwise the logic is the same. We
dispatch_async the blur messages so that the UI process features won’t be
flashy when the user is tapping, tabbing, or clicking through form fields.
(WebKit::WebPage::resetAssistedNodeForFrame):
(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):

resetAssistedNodeForFrame() is no longer iOS-only.
(WebKit::WebPage::didCommitLoad):

Move variables and functions around so that they are defined for the right
platform, and declare the two new bools in place of the old one.

  • WebProcess/WebPage/WebPage.h:

These functions are now defined in WebPage.cpp

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetAssistedNodeForFrame): Deleted.
(WebKit::WebPage::elementDidFocus): Deleted.
(WebKit::WebPage::elementDidBlur): Deleted.

5:09 PM Changeset in webkit [203311] by beidson@apple.com
  • 2 edits in trunk

Revert double ChangeLog entries

5:06 PM Changeset in webkit [203310] by beidson@apple.com
  • 2 edits in trunk

Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
https://bugs.webkit.org/show_bug.cgi?id=159839

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • IndexedDB-private-browsing/idbindex_get7-expected.txt:
  • IndexedDB-private-browsing/idbindex_getKey7-expected.txt:
  • IndexedDB-private-browsing/idbindex_openCursor2-expected.txt:
  • IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

This is the first step towards extended exception messages for all exception types.

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):

  • dom/ExceptionBase.h:

LayoutTests:

  • storage/indexeddb/modern/createobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/createobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/double-abort-expected.txt:
  • storage/indexeddb/modern/double-abort-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
5:04 PM Changeset in webkit [203309] by beidson@apple.com
  • 21 edits in trunk

Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
https://bugs.webkit.org/show_bug.cgi?id=159839

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • IndexedDB-private-browsing/idbindex_get7-expected.txt:
  • IndexedDB-private-browsing/idbindex_getKey7-expected.txt:
  • IndexedDB-private-browsing/idbindex_openCursor2-expected.txt:
  • IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

This is the first step towards extended exception messages for all exception types.

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):

  • dom/ExceptionBase.h:

LayoutTests:

  • storage/indexeddb/modern/createobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/createobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/double-abort-expected.txt:
  • storage/indexeddb/modern/double-abort-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
4:50 PM Changeset in webkit [203308] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Merge background parser Blink test case
https://bugs.webkit.org/show_bug.cgi?id=116503

Test case is from the Blink change (patch by <apavlov@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/3044d8c22b6ab5653fe572aad656ae1325725dc9>

  • fast/css/background-parser-crash-expected.txt: Added.
  • fast/css/background-parser-crash.html: Added.
  • inspector/styles: Added.
  • inspector/styles/background-parsing-crash-expected.txt: Added.
  • inspector/styles/background-parsing-crash.html: Added.
4:25 PM Changeset in webkit [203307] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge First-letter Blink test case
https://bugs.webkit.org/show_bug.cgi?id=123961

Test case is from the Blink change (patch by <leviw@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/c8ff8df9fc2ad81580526d53304c281df5d93e97%5E%21/#F1>

  • fast/css-generated-content/empty-first-letter-with-columns-crash-expected.txt: Added.
  • fast/css-generated-content/empty-first-letter-with-columns-crash.html: Added.
3:38 PM Changeset in webkit [203306] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r203304.

This is wrong because of Node* entries in the internal HashMap

Reverted changeset:

"Add move constructor / assignment operator to ListHashSet"
https://bugs.webkit.org/show_bug.cgi?id=159837
http://trac.webkit.org/changeset/203304

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

Marking http/tests/cache/disk-cache/disk-cache-request-max-stale.html as a flaky timeout on ios-simulator WK2 Release
https://bugs.webkit.org/show_bug.cgi?id=159840

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:25 PM Changeset in webkit [203304] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Add move constructor / assignment operator to ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=159837

Reviewed by Alex Christensen.

Add move constructor / assignment operator to ListHashSet.

  • wtf/ListHashSet.h:
2:51 PM Changeset in webkit [203303] by ggaren@apple.com
  • 38 edits in trunk/Source

Added a makeRef<T> helper
https://bugs.webkit.org/show_bug.cgi?id=159835

Reviewed by Andreas Kling.

Anders told me to!

Source/JavaScriptCore:

  • inspector/InjectedScriptHost.cpp:

(Inspector::InjectedScriptHost::wrapper):

Source/WebCore:

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::didDeleteDatabase):
(WebCore::InProcessIDBServer::openDatabase):
(WebCore::InProcessIDBServer::didOpenDatabase):
(WebCore::InProcessIDBServer::didAbortTransaction):
(WebCore::InProcessIDBServer::didCommitTransaction):
(WebCore::InProcessIDBServer::didCreateObjectStore):
(WebCore::InProcessIDBServer::didDeleteObjectStore):
(WebCore::InProcessIDBServer::didClearObjectStore):
(WebCore::InProcessIDBServer::didCreateIndex):
(WebCore::InProcessIDBServer::didDeleteIndex):
(WebCore::InProcessIDBServer::didPutOrAdd):
(WebCore::InProcessIDBServer::didGetRecord):
(WebCore::InProcessIDBServer::didGetCount):
(WebCore::InProcessIDBServer::didDeleteRecord):
(WebCore::InProcessIDBServer::didOpenCursor):
(WebCore::InProcessIDBServer::didIterateCursor):
(WebCore::InProcessIDBServer::abortTransaction):
(WebCore::InProcessIDBServer::commitTransaction):
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::createObjectStore):
(WebCore::InProcessIDBServer::deleteObjectStore):
(WebCore::InProcessIDBServer::clearObjectStore):
(WebCore::InProcessIDBServer::createIndex):
(WebCore::InProcessIDBServer::deleteIndex):
(WebCore::InProcessIDBServer::putOrAdd):
(WebCore::InProcessIDBServer::getRecord):
(WebCore::InProcessIDBServer::getCount):
(WebCore::InProcessIDBServer::deleteRecord):
(WebCore::InProcessIDBServer::openCursor):
(WebCore::InProcessIDBServer::iterateCursor):
(WebCore::InProcessIDBServer::establishTransaction):
(WebCore::InProcessIDBServer::fireVersionChangeEvent):
(WebCore::InProcessIDBServer::didStartTransaction):
(WebCore::InProcessIDBServer::didCloseFromServer):
(WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
(WebCore::InProcessIDBServer::databaseConnectionClosed):
(WebCore::InProcessIDBServer::abortOpenAndUpgradeNeeded):
(WebCore::InProcessIDBServer::didFireVersionChangeEvent):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
(WebCore::InProcessIDBServer::confirmDidCloseFromServer):
(WebCore::InProcessIDBServer::getAllDatabaseNames):
(WebCore::InProcessIDBServer::didGetAllDatabaseNames):

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::constraintsValidated):
(WebCore::UserMediaRequest::userMediaAccessGranted):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::isPlayingAudioDidChange):
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::jsFunction):

  • dom/Node.cpp:

(WebCore::Node::setTextContent):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::layoutSizeChanged):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::wrapper):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::prepare):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::invalidate):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::invalidate):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setExternalPlayback):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::start):
(WebCore::BlobResourceHandle::notifyFinish):

  • platform/network/SocketStreamHandleBase.cpp:

(WebCore::SocketStreamHandleBase::disconnect):

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::didReceiveHeader):

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::receiveSourceEventHandler):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::didChangeVisibleRect):

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::ProcessLauncher):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::pluginThreadAsyncCall):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):

Source/WTF:

  • wtf/Ref.h:

(WTF::makeRef): Helper function to do type inference for you.

2:35 PM Changeset in webkit [203302] by Chris Dumez
  • 66 edits in trunk/Source

Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
https://bugs.webkit.org/show_bug.cgi?id=159793

Reviewed by Ryosuke Niwa.

Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.

Source/WebCore:

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • dom/Element.h:

(WebCore::Element::setIdAttribute):

  • editing/ApplyStyleCommand.cpp:

(WebCore::hasNoAttributeOrOnlyStyleAttribute):
(WebCore::createFontElement):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):

  • editing/Editor.cpp:

(WebCore::Editor::setBaseWritingDirection):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isMailPasteAsQuotationNode):
(WebCore::isInlineNodeWithStyle):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • editing/htmlediting.cpp:

(WebCore::createTabSpanElement):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::WebContentReader::readURL):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::WebContentReader::readURL):

  • editing/markup.cpp:

(WebCore::createFragmentFromText):

  • html/BaseButtonInputType.cpp:

(WebCore::BaseButtonInputType::setValue):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::setValue):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::setHref):
(WebCore::HTMLAnchorElement::target):

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::target):

  • html/HTMLBaseElement.cpp:

(WebCore::HTMLBaseElement::setHref):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::setType):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
(WebCore::HTMLDetailsElement::toggleOpen):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::setVlinkColor):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setDir):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::setSpellcheck):
(WebCore::HTMLElement::setTranslate):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::setFormEnctype):
(WebCore::HTMLFormControlElement::setFormMethod):
(WebCore::HTMLFormControlElement::setAutocorrect):
(WebCore::HTMLFormControlElement::setAutocapitalize):
(WebCore::HTMLFormControlElement::setAutocomplete):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::setAutocorrect):
(WebCore::HTMLFormElement::setAutocapitalize):
(WebCore::HTMLFormElement::setAction):
(WebCore::HTMLFormElement::setEnctype):
(WebCore::HTMLFormElement::setMethod):
(WebCore::HTMLFormElement::target):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::setSrc):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setType):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::setDefaultValue):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::href):
(WebCore::HTMLLinkElement::target):
(WebCore::HTMLLinkElement::type):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSrc):
(WebCore::HTMLMediaElement::setPreload):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::min):
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::max):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::value):
(WebCore::HTMLMeterElement::setValue):
(WebCore::HTMLMeterElement::low):
(WebCore::HTMLMeterElement::setLow):
(WebCore::HTMLMeterElement::high):
(WebCore::HTMLMeterElement::setHigh):
(WebCore::HTMLMeterElement::optimum):
(WebCore::HTMLMeterElement::setOptimum):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::containsJavaApplet):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor):
(WebCore::HTMLOptionElement::setValue):
(WebCore::HTMLOptionElement::setLabel):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::setValue):
(WebCore::HTMLProgressElement::setMax):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::typeAttributeValue):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setMultiple):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::setSrc):
(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::setAlign):
(WebCore::HTMLTableSectionElement::setCh):
(WebCore::HTMLTableSectionElement::chOff):
(WebCore::HTMLTableSectionElement::setChOff):
(WebCore::HTMLTableSectionElement::setVAlign):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::imageSourceURL):

  • html/HiddenInputType.cpp:

(WebCore::HiddenInputType::restoreFormControlState):
(WebCore::HiddenInputType::setValue):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createAutoFillButton):
(WebCore::TextFieldInputType::updateAutoFillButton):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::tryCreate):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::tryCreate):

  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::createEquivalentHTMLElement):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTTreeBuilder::constructTreeFromToken):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::buildObjectForFrame):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::toggle):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::isOpen):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateFromElement):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::setXmlbase):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::setContentScriptType):
(WebCore::SVGSVGElement::setContentStyleType):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::setMedia):
(WebCore::SVGStyleElement::setTitle):

Source/WebKit/mac:

  • WebView/WebHTMLRepresentation.mm:

(matchLabelsAgainstElement):

Source/WebKit/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::idName):

Source/WebKit2:

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::createPasswordEntryForm):

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:

(WebKit::PDFPluginAnnotation::attach):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

2:34 PM Changeset in webkit [203301] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Modernize StaticNodeList / StaticElementList
https://bugs.webkit.org/show_bug.cgi?id=159831

Reviewed by Ryosuke Niwa.

Modernize StaticNodeList / StaticElementList. Pass vector to adopt
as an rvalue reference instead of a non-const reference.

  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::namedItems):

  • dom/ChildListMutationScope.cpp:

(WebCore::ChildListMutationAccumulator::enqueueMutationRecord):

  • dom/MutationRecord.cpp:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::queryAll):

  • dom/StaticNodeList.h:
  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):

  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect):

2:18 PM Changeset in webkit [203300] by Brent Fulgham
  • 3 edits
    3 adds in trunk

Block insecure script running in a data: frame when the top-level page is HTTPS
https://bugs.webkit.org/show_bug.cgi?id=125806
<rdar://problem/27331825>

Reviewed by Brady Eidson.

Fix based on a Blink change (patch by <tsepez@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/33e553bd96e040151c1472289a0d80803bfca3a5>

Source/WebCore:

Test: http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::checkInsecureContent): Check the top-level frame's security state
before allowing insecure scripts to be used.

LayoutTests:

  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html: Added.
  • http/tests/security/mixedContent/resources/frame-with-data-url-frame-with-script.html: Added.
2:17 PM Changeset in webkit [203299] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FunctionOverride's parseClause() needs to keep the CString instance in scope while its data is being used.
https://bugs.webkit.org/show_bug.cgi?id=159828

Reviewed by Saam Barati.

Otherwise, we'll have a use after free. This issue was caught when running an
ASan debug build of testapi.

  • tools/FunctionOverrides.cpp:

(JSC::parseClause):

2:01 PM Changeset in webkit [203298] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Let the compiler generate QualifiedName copy constructor and assignment operator
https://bugs.webkit.org/show_bug.cgi?id=159826

Reviewed by Alex Christensen.

Let the compiler generate QualifiedName copy constructor and assignment operator
as our custom implementation does nothing special. This also makes QualifiedName
movable as the compiler is now able to generate the move constructor / assignment
operator as well.

  • dom/QualifiedName.h:

(WebCore::QualifiedName::QualifiedName): Deleted.
(WebCore::QualifiedName::operator=): Deleted.

1:58 PM Changeset in webkit [203297] by keith_miller@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

%TypedArray%.prototype.indexOf is coercing non-integers or non-floats to numbers wrongly
https://bugs.webkit.org/show_bug.cgi?id=159400

Reviewed by Geoffrey Garen.

This patch fixes coercion of non-numbers in indexOf/lastIndexOf.
Additionally, this patch fixes an issue with includes where it
would not check that the buffer remained non-neutered after
calling the toInteger() function. Lastly, some extra release
asserts have been added in some places to inform us of any issues
in the future.

Additionally, this patch changes bool toNativeFromDouble to
Optional<Type> toNativeFromDoubleWithoutCoercion. This makes it a
little clearer what the function does and also removes the return
argument. The only behavior change is that the function no longer
coerces non-numbers into numbers. That behavior was unused (maybe
unintended), however.

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValueWithoutCoercion):
(JSC::JSGenericTypedArrayView::sort):
(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValue): Deleted.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

  • runtime/ToNativeFromValue.h:

(JSC::toNativeFromValueWithoutCoercion):
(JSC::toNativeFromValue): Deleted.

  • runtime/TypedArrayAdaptors.h:

(JSC::IntegralTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromUint32WithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::FloatTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::FloatTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::Uint8ClampedAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::Uint8ClampedAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromInt32): Deleted.
(JSC::IntegralTypedArrayAdaptor::toNativeFromUint32): Deleted.
(JSC::IntegralTypedArrayAdaptor::toNativeFromDouble): Deleted.
(JSC::FloatTypedArrayAdaptor::toNativeFromInt32): Deleted.
(JSC::FloatTypedArrayAdaptor::toNativeFromDouble): Deleted.
(JSC::Uint8ClampedAdaptor::toNativeFromInt32): Deleted.
(JSC::Uint8ClampedAdaptor::toNativeFromDouble): Deleted.

  • tests/stress/resources/typedarray-test-helper-functions.js:
  • tests/stress/typedarray-functions-with-neutered.js:

(callWithArgs):

  • tests/stress/typedarray-includes.js: Added.
  • tests/stress/typedarray-indexOf.js:
  • tests/stress/typedarray-lastIndexOf.js:
1:56 PM Changeset in webkit [203296] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Disable custom elements in Safari Tech Preview
https://bugs.webkit.org/show_bug.cgi?id=159829

Reviewed by Chris Dumez.

Disable custom elements API in Safari Technology Preview. Our implementation is so out of sync
with the latest spec that it's actively harmful to have this feature enabled.

  • Shared/WebPreferencesDefinitions.h:
1:42 PM Changeset in webkit [203295] by dino@apple.com
  • 3 edits in trunk/Source/WebKit2

Full screen ePub embedded video is playing on 1/4 screen, cut off
https://bugs.webkit.org/show_bug.cgi?id=159737
<rdar://problem/26259404>

Patch by Jer Noble <jer.noble@apple.com> on 2016-07-15
Reviewed by Tim Horton.

Set the fixedLayoutSize to CGSizeZero when disabling fixed layout due to the
WebView not supporting arbitrary layout modes, and reset to the saved value
when the view does begin supporting arbitrary layout modes.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setFixedLayoutSize):
(WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes):

1:19 PM Changeset in webkit [203294] by tonikitoo@webkit.org
  • 3 edits in trunk/Source/WebCore

ScrollView::setHasHorizontalScrollbar / setHasVerticalScrollbar duplicate their logic
https://bugs.webkit.org/show_bug.cgi?id=159825

Patch introduces a (private) method to ScrollView
to share the code/logic of setHas{Horizontal,Vertical}Scrollbar.

Patch by Antonio Gomes <tonikitoo@igalia.com> on 2016-07-15
Reviewed by Simon Fraser.

No new tests needed.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::setHasScrollbarInternal):
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):

  • platform/ScrollView.h:
1:03 PM Changeset in webkit [203293] by Csaba Osztrogonác
  • 3 edits in trunk/Source/JavaScriptCore

Add new functions to ARMAssembler after r202214
https://bugs.webkit.org/show_bug.cgi?id=159713

Reviewed by Saam Barati.

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::fillNops):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::patchableBranch32):
(JSC::MacroAssemblerARM::internalCompare32):

12:38 PM Changeset in webkit [203292] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping test from r203288 on ios-simulator due to reliance upon mouse events.
https://bugs.webkit.org/show_bug.cgi?id=159818

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:27 PM Changeset in webkit [203291] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed content overflow and missing build information behavior.
https://bugs.webkit.org/show_bug.cgi?id=159820

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/nightly-start.php:
12:01 PM Changeset in webkit [203290] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make Open Quickly and Goto Line dialogs match Xcode 8
https://bugs.webkit.org/show_bug.cgi?id=159823
rdar://problem/27376501

Reviewed by Brian Burg.

  • UserInterface/Views/GoToLineDialog.css:

(.go-to-line-dialog):
(.go-to-line-dialog > div > input):
(.go-to-line-dialog > div > input::placeholder):
(.go-to-line-dialog > div > img):
(.go-to-line-dialog > div): Deleted.

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog):
(.open-resource-dialog > .field):
(.open-resource-dialog > .field > input):
(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .field > img):
(.open-resource-dialog > .tree-outline .item): Deleted.
(.open-resource-dialog > .tree-outline .item:first-child): Deleted.

11:47 AM Changeset in webkit [203289] by fred.wang@free.fr
  • 17 edits in trunk

MathOperator: Improve alignment for vertical size variant
https://bugs.webkit.org/show_bug.cgi?id=158866

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-15
Reviewed by Brent Fulgham.

Source/WebCore:

The MathOperator class may stretch operators with either a large glyph or a glyph assembly.
In the latter case, the assembly is adjusted to match the stretch ascent and descent
requested by the callers. But in the former case the glyph ascent and descent are used
instead. We solve this by making MathOperator::stretchTo only take a targetSize and let
callers do the vertical alignment they want. This improves the rendering of fences with some
math fonts (e.g. XITS) and allows to pass the two cases of mo-axis-height-1.html.

Test: imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::stretchTo): Merge vertical and horizontal stretching into the same
function with only the targetSize as a parameter.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo): Updated to use the new signature.
(WebCore::RenderMathMLOperator::verticalStretchedOperatorShift): Helper function to calculate
the shift necessary to align the baseline of the MathOperator instance with the one of the
RenderMathMLOperator.
(WebCore::RenderMathMLOperator::firstLineBaseline): Adjust the baseline.

  • rendering/mathml/RenderMathMLOperator.h: Declare verticalStretchedOperatorShift.
  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::layoutBlock): Use the new signature. This function aligns the top
of the radical with the overbar so we do not need to adjust baseline alignment here.

LayoutTests:

We import the latest version of mo-axis-height-1.html and update the expectation now that we
pass the two cases (size variant and glyph assembly). We also rebaseline some pixel tests.

  • imported/mathml-in-html5/fonts/math/axisheight5000-verticalarrow14000.woff: Updated.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt: Updated to expect PASS.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html: Updated to include the two tests.
  • platform/gtk/mathml/opentype/vertical-expected.png: Rebaseline to take into account better alignment of size variant.
  • platform/gtk/mathml/opentype/vertical-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.png: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
11:39 AM Changeset in webkit [203288] by beidson@apple.com
  • 3 edits
    2 adds in trunk

WebKit should prevent push/replace state with username in URL.
<rdar://problem/27361737> and https://bugs.webkit.org/show_bug.cgi?id=159818

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/history-username-password.html

  • page/History.cpp:

(WebCore::History::stateObjectAdded): Don't allow URLs with usernames/passwords.

LayoutTests:

  • http/tests/security/history-username-password-expected.txt: Added.
  • http/tests/security/history-username-password.html: Added.
11:33 AM Changeset in webkit [203287] by Ryan Haddad
  • 10 edits
    52 deletes in trunk

Unreviewed, rolling out r203266.

This change caused editing/deleting/delete-emoji.html to time
out on El Capitan, crash under GuardMalloc

Reverted changeset:

"Support new emoji group candidates"
https://bugs.webkit.org/show_bug.cgi?id=159755
http://trac.webkit.org/changeset/203266

11:31 AM Changeset in webkit [203286] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Stack overflow error for deeply nested classes.
https://bugs.webkit.org/show_bug.cgi?id=157086

Reviewed by Geoffrey Garen.

Changed the StructureStubClearingWatchpoint destructor to iteratively destruct
its chain of next StructureStubClearingWatchpoints instead of recursively doing
so.

The added deep-StructureStubClearingWatchpoint-destructor-recursion.js test
produces a crash before the fix is applied, but takes about 14 minutes to run.
Hence, it is skipped.

  • bytecode/StructureStubClearingWatchpoint.cpp:

(JSC::StructureStubClearingWatchpoint::~StructureStubClearingWatchpoint):

  • tests/stress/deep-StructureStubClearingWatchpoint-destructor-recursion.js: Added.
11:30 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
11:24 AM Changeset in webkit [203285] by fred.wang@free.fr
  • 11 edits
    2 adds in trunk

Source/WebCore:
Move parsing of mfrac attributes into a MathMLFractionElement class
https://bugs.webkit.org/show_bug.cgi?id=159624

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-15
Reviewed by Brent Fulgham.

We move the parsing of mfrac attributes to a MathMLFractionElement class. This allows to
minimize the updates in RenderMathMLFraction and to remove the alignment members. Many of
the members in updateLayoutParameters are actually only used in layoutBlock and could be
removed in a follow-up patch. We also improve the resolution of negative line thickness value
since the MathML recommendation says it should be rounded up to the nearest valid
value (which is zero) instead of ignoring the attribute and using the line thickness.

No new tests, already covered by existing tests.

  • CMakeLists.txt: Add MathMLFractionElement.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLFractionElement.cpp: Added.

(WebCore::MathMLFractionElement::MathMLFractionElement):
(WebCore::MathMLFractionElement::create):
(WebCore::MathMLFractionElement::lineThickness): Return the cached linethickness length,
parsing it again if it is dirty. This handles the special values "thin", "medium" and "thick"
or fallback to the general parseMathMLLength for MathML lengths.
(WebCore::MathMLFractionElement::cachedFractionAlignment): Return the cached alignment value,
parsing it again if it is dirty.
(WebCore::MathMLFractionElement::numeratorAlignment): Return the cached alignment.
(WebCore::MathMLFractionElement::denominatorAlignment): Ditto.
(WebCore::MathMLFractionElement::parseAttribute): Make attributes dirty.
(WebCore::MathMLFractionElement::createElementRenderer): Create a RenderMathMLFraction.

  • mathml/MathMLFractionElement.h: Added.
  • mathml/MathMLInlineContainerElement.cpp: We no longer need to handle fraction here.

(WebCore::MathMLInlineContainerElement::createElementRenderer):

  • mathml/mathtags.in: Use MathMLFractionElement for mfrac.
  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateLayoutParameters): New helper function to set the
layout parameters, replacing updateFromElement. We no longer parse and store the alignment
values here. We also change the resolution of negative values.
(WebCore::RenderMathMLFraction::horizontalOffset): Use the enum from MathMLFractionElement.
(WebCore::RenderMathMLFraction::layoutBlock): We call updateLayoutParameters instead of
updateFromElement. The numerator and denominator alignments are resolved here.
(WebCore::RenderMathMLFraction::parseAlignmentAttribute): Deleted. Parsing of alignment
attribute is now handled in MathMLFractionElement.
(WebCore::RenderMathMLFraction::updateFromElement): Deleted. Attribute changes are now
handled in MathMLFractionElement.
(WebCore::RenderMathMLFraction::styleDidChange): Deleted. Font changes are properly handled.

  • rendering/mathml/RenderMathMLFraction.h: Update declarations.

LayoutTests:
Move parsing of mfrac attributes into a MathMLFractionElementClass
https://bugs.webkit.org/show_bug.cgi?id=159624

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-15
Reviewed by Brent Fulgham.

We update the expectation for negative linethickness. As indicated in the MathML
recommendation, it should be rounded up to the nearest valid value, which is 0.

  • mathml/presentation/mfrac-linethickness2.html: Update the comment to reflect the new behavior.
  • mathml/presentation/mfrac-linethickness2-expected.html: Use 0px as the reference for negative values.
11:06 AM Changeset in webkit [203284] by Jon Davis
  • 2 edits in trunk/Tools

Changed the start page URL for WebKit Nightly builds.
https://bugs.webkit.org/show_bug.cgi?id=159816

Reviewed by Timothy Hatcher.

  • WebKitLauncher/start.html:
10:41 AM Changeset in webkit [203283] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge InlineBidiResolver end-of-line Blink test case
https://bugs.webkit.org/show_bug.cgi?id=126201
<rdar://problem/27331789>

Test case is from the Blink change (patch by <igor.o@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/d34ca9bbbdf71905d61aa45def30063311508a64>

  • fast/text/international/bidi-crash-reached-end-of-line-expected.txt: Added.
  • fast/text/international/bidi-crash-reached-end-of-line.html: Added.
10:35 AM Changeset in webkit [203282] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge Blink test case
https://bugs.webkit.org/show_bug.cgi?id=123870

Patch is from the Blink change (patch by <morritaw@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/2abd63ccea97b1fcf25b337c76f12e6ad1bfc025>

  • fast/dom/mutation-details-focus-expected.txt: Added.
  • fast/dom/mutation-details-focus.html: Added.
10:30 AM Changeset in webkit [203281] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Updating TestExpectations after r203267
https://bugs.webkit.org/show_bug.cgi?id=159817

Unreviewed test gardening.

10:03 AM Changeset in webkit [203280] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Check whether font is nonnull for GlyphData instead of calling GlyphData::isValid()
https://bugs.webkit.org/show_bug.cgi?id=159783

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-15
Reviewed by Brent Fulgham.

GlyphData::isValid() returns true for GlyphData with null 'font' pointer when the 'glyph'
index is nonzero. This behavior is not expected by the MathML code and we have had crashes
in our test suite in the past on Windows (e.g. bug 140653). We thus replace the call to
GlyphData::isValid() with a stronger verification: Whether the 'font' pointer is nonzero.

No new tests, this only makes null pointer checks stronger.

  • rendering/mathml/MathOperator.cpp:

(WebCore::boundsForGlyph):
(WebCore::advanceWidthForGlyph):
(WebCore::MathOperator::getBaseGlyph):
(WebCore::MathOperator::setSizeVariant):
(WebCore::MathOperator::fillWithVerticalExtensionGlyph):
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph):
(WebCore::MathOperator::paintVerticalGlyphAssembly):
(WebCore::MathOperator::paintHorizontalGlyphAssembly):
(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::computePreferredLogicalWidths):
(WebCore::RenderMathMLToken::firstLineBaseline):
(WebCore::RenderMathMLToken::layoutBlock):
(WebCore::RenderMathMLToken::paint):
(WebCore::RenderMathMLToken::paintChildren):

9:51 AM Changeset in webkit [203279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add DejaVu Math TeX Gyre to the list of math fonts.
https://bugs.webkit.org/show_bug.cgi?id=159805

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-15
Reviewed by Brent Fulgham.

DejaVu 2.36 has a new math font that can be used for MathML rendering. Because this font is
likely to be installed on many systems (Linux, LibreOffice, etc) we include it in the default
list of font-families in mathml.css in order to increase the chance to find a math font.

No new tests, it only affects rendering when DejaVu Math TeX Gyre is installed on the system.

  • css/mathml.css:

(math):

9:48 AM Changeset in webkit [203278] by commit-queue@webkit.org
  • 3 edits
    41 adds in trunk/LayoutTests

Import more tests from the MathML in HTML5 test suite
https://bugs.webkit.org/show_bug.cgi?id=159715

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-15
Reviewed by Brent Fulgham.

  • imported/mathml-in-html5/fonts/math/lineheight5000-typolineheight2300.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-5-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-5.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-2-expected.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/color-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/color-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/visibility-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/visibility-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/color-attributes-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/color-attributes-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/display-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/display-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/dynamic-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/dynamic-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-2-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-3-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-3.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/namespace-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/namespace-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-2-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-3-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-3.html: Added.
  • imported/mathml-in-html5/mathml/relations/text-and-math/use-typo-metrics-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/text-and-math/use-typo-metrics-1.html: Added.
  • platform/ios-simulator/TestExpectations: Mark use-typo-metrics-1.html as failing.
  • platform/mac/TestExpectations: Ditto.
9:42 AM Changeset in webkit [203277] by eric.carlson@apple.com
  • 5 edits in trunk

[MSE] Increase the SourceBuffer "fudge factor"
https://bugs.webkit.org/show_bug.cgi?id=159813
<rdar://problem/27372033>

Reviewed by Jon Lee.
Source/WebCore:

Some media encoding/conversion pipelines are sloppy when doing sample time/timescale
math, and the error accumulation results in small gaps in the media timeline. r202641
increased the maximum allowable gap from 0.01 second to one 24fps frame, but it turns
out that at least one large provider has a significant amount of content encoded with
up to two 24fps frames.

No new tests, updated media/media-source/media-source-small-gap.html.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::currentTimeFudgeFactor): Increase maximum gap to 2002 / 24000 frames.

LayoutTests:

  • media/media-source/media-source-small-gap-expected.txt:
  • media/media-source/media-source-small-gap.html:
9:11 AM MathML edited by fred.wang@free.fr
(diff)
9:06 AM MathML/Fonts edited by fred.wang@free.fr
Add DejaVu font (diff)
7:52 AM Changeset in webkit [203276] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix expectations in test262.yaml
https://bugs.webkit.org/show_bug.cgi?id=159810

Reviewed by Keith Miller.

  • tests/test262.yaml:
5:46 AM Changeset in webkit [203275] by commit-queue@webkit.org
  • 53 edits in trunk/Source/WebCore

Add final keyword to WebCore/svg classes
https://bugs.webkit.org/show_bug.cgi?id=159802

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-15
Reviewed by Youenn Fablet.

Updated classes in the WebCore/svg directory to be marked as final where appropriate.

  • svg/SVGException.h:
  • svg/SVGLengthList.h:
  • svg/SVGMatrix.h:
  • svg/SVGNumberList.h:
  • svg/SVGPaint.h:
  • svg/SVGPathBuilder.h:
  • svg/SVGPathByteStreamBuilder.h:
  • svg/SVGPathByteStreamSource.h:
  • svg/SVGPathSegArcAbs.h:
  • svg/SVGPathSegArcRel.h:
  • svg/SVGPathSegClosePath.h:
  • svg/SVGPathSegCurvetoCubicAbs.h:
  • svg/SVGPathSegCurvetoCubicRel.h:
  • svg/SVGPathSegCurvetoCubicSmoothAbs.h:
  • svg/SVGPathSegCurvetoCubicSmoothRel.h:
  • svg/SVGPathSegCurvetoQuadraticAbs.h:
  • svg/SVGPathSegCurvetoQuadraticRel.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
  • svg/SVGPathSegLinetoAbs.h:
  • svg/SVGPathSegLinetoHorizontalAbs.h:
  • svg/SVGPathSegLinetoHorizontalRel.h:
  • svg/SVGPathSegLinetoRel.h:
  • svg/SVGPathSegLinetoVerticalAbs.h:
  • svg/SVGPathSegLinetoVerticalRel.h:
  • svg/SVGPathSegListBuilder.h:
  • svg/SVGPathSegListSource.h:
  • svg/SVGPathSegMovetoAbs.h:
  • svg/SVGPathSegMovetoRel.h:
  • svg/SVGPathStringSource.h:
  • svg/SVGPathTraversalStateBuilder.h:
  • svg/SVGPointList.h:
  • svg/SVGRenderingIntent.h:
  • svg/SVGStringList.h:
  • svg/SVGTRefElement.cpp:
  • svg/SVGToOTFFontConversion.cpp:
  • svg/SVGTransformList.h:
  • svg/SVGUnitTypes.h:
  • svg/SVGViewSpec.h:
  • svg/SVGZoomEvent.h:
  • svg/animation/SMILTimeContainer.h:
  • svg/animation/SVGSMILElement.cpp:
  • svg/graphics/filters/SVGFEImage.h:
  • svg/graphics/filters/SVGFilter.h:
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
  • svg/properties/SVGAnimatedPropertyTearOff.h:
  • svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
  • svg/properties/SVGMatrixTearOff.h:
  • svg/properties/SVGPathSegListPropertyTearOff.h:
  • svg/properties/SVGStaticListPropertyTearOff.h:
  • svg/properties/SVGStaticPropertyTearOff.h:
  • svg/properties/SVGTransformListPropertyTearOff.h:
5:38 AM Changeset in webkit [203274] by pvollan@apple.com
  • 5 edits
    1 add in trunk

Uninitialized variable in DIBPixelData can cause a dangerous memory write
https://bugs.webkit.org/show_bug.cgi?id=159414

Reviewed by Brent Fulgham.

Source/WebCore:

Initialize local BITMAP variable, in case the ::GetObject function that should initialize it
fails to do so, because the bitmap handle is invalid.

Tests: Tools/TestWebKitAPI/Tests/WebCore/win/DIBPixelData.cpp

  • platform/graphics/win/DIBPixelData.cpp:

(WebCore::DIBPixelData::initialize): Initialize local variable.
(WebCore::DIBPixelData::setRGBABitmapAlpha): Return early if we have no bitmap.

  • platform/graphics/win/DIBPixelData.h: Link fix.

Tools:

Add test to check that DIBPixelData::setRGBABitmapAlpha does not cause a crash
when the HDC parameter is invalid.

  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/Tests/WebCore/win/DIBPixelData.cpp: Added.

(TestWebKitAPI::TEST):

3:21 AM Changeset in webkit [203273] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

Revert r202560 to fix the ARMv7 build with ARM instruction set
https://bugs.webkit.org/show_bug.cgi?id=159707

Reviewed by Carlos Garcia Campos.

2:43 AM Changeset in webkit [203272] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Disable Inline Caching on ARMv7 traditional until proper fix
https://bugs.webkit.org/show_bug.cgi?id=159759

Reviewed by Saam Barati.

  • jit/Repatch.cpp:

(JSC::forceICFailure):

2:25 AM Changeset in webkit [203271] by Carlos Garcia Campos
  • 5 edits
    1 copy
    1 add in trunk/Tools

[GTK] Add basic tabs support to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=159803

Reviewed by Sergio Villar Senin.

It's quite common to have issues with web views loaded in secondary tabs, and we need to use an external browser
like epiphany to debug those issues. It would be a lot easier to work on those bugs if we could use the MiniBrowser.

  • MiniBrowser/gtk/BrowserTab.c: Added.

(titleChanged):
(isLoadingChanged):
(decidePolicy):
(removeChildIfInfoBar):
(loadChanged):
(createInfoBarQuestionMessage):
(tlsErrorsDialogResponse):
(loadFailedWithTLSerrors):
(permissionRequestDialogResponse):
(decidePermissionRequest):
(colorChooserRGBAChanged):
(popoverColorClosed):
(colorChooserRequestFinished):
(runColorChooserCallback):
(inspectorOpenedInWindow):
(inspectorClosed):
(browserTabSetProperty):
(browserTabFinalize):
(browser_tab_init):
(browserTabConstructed):
(browser_tab_class_init):
(getInternalURI):
(browser_tab_new):
(browser_tab_get_web_view):
(browser_tab_load_uri):
(browser_tab_get_title_widget):
(browser_tab_set_status_text):
(browser_tab_toggle_inspector):
(browser_tab_start_search):
(browser_tab_stop_search):
(browser_tab_add_accelerators):
(fullScreenMessageTimeoutCallback):
(browser_tab_enter_fullscreen):
(browser_tab_leave_fullscreen):

  • MiniBrowser/gtk/BrowserTab.h: Added.
  • MiniBrowser/gtk/BrowserWindow.c:

(getExternalURI):
(browserWindowSetStatusText):
(reloadOrStopCallback):
(goBackCallback):
(goForwardCallback):
(settingsCallback):
(webViewURIChanged):
(browserWindowHistoryItemActivated):
(browserWindowUpdateNavigationActions):
(webViewCreate):
(webViewEnterFullScreen):
(webViewLeaveFullScreen):
(webViewDecidePolicy):
(browserWindowCanZoomIn):
(browserWindowCanZoomOut):
(browserWindowZoomIn):
(browserWindowZoomOut):
(scrollEventCallback):
(faviconChanged):
(webViewIsLoadingChanged):
(defaultZoomCallback):
(searchCallback):
(newTabCallback):
(toggleWebInspector):
(reloadPage):
(reloadPageIgnoringCache):
(stopPageLoad):
(loadHomePage):
(editingCommandCallback):
(insertImageCommandCallback):
(insertLinkCommandCallback):
(browserWindowSetupEditorToolbar):
(browserWindowSwitchTab):
(browserWindowTabAddedOrRemoved):
(browser_window_init):
(browserWindowConstructed):
(browserWindowSaveSession):
(browserWindowDeleteEvent):
(browser_window_new):
(browser_window_append_view):
(browser_window_load_uri):
(browser_window_load_session):
(browser_window_set_background_color):
(resetStatusText): Deleted.
(activateUriEntryCallback): Deleted.
(webViewTitleChanged): Deleted.
(resetEntryProgress): Deleted.
(browserWindowCreateBackForwardMenu): Deleted.
(webViewReadyToShow): Deleted.
(webViewLoadFailed): Deleted.
(webViewMouseTargetChanged): Deleted.
(browserWindowUpdateZoomActions): Deleted.
(webViewZoomLevelChanged): Deleted.
(updateUriEntryIcon): Deleted.
(zoomInCallback): Deleted.
(zoomOutCallback): Deleted.
(toggleFullScreen): Deleted.
(browserWindowEditingCommandToggleButtonSetActive): Deleted.
(browserWindowFinalize): Deleted.
(browser_window_class_init): Deleted.

  • MiniBrowser/gtk/BrowserWindow.h:
  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/gtk/main.c:

(createBrowserTab):
(aboutURISchemeRequestCallback):
(main):
(parseBackgroundColor): Deleted.

Jul 14, 2016:

11:03 PM Changeset in webkit [203270] by keith_miller@apple.com
  • 1 edit
    24089 adds in trunk/Source/JavaScriptCore

Add Test262 test files and yaml

Rubber Stamped by Benjamin Poulain.

This patch adds all the test262 test files and the yaml that drives
run-jsc-stress-tests.

  • tests/test262.yaml: Added. Yaml file to drive the test262 test suite with our driver.
  • tests/test262/LICENSE: Added. License for the test262 test suite.
  • tests/test262/harness/: Added. Harness directory for the test262 tests.
  • tests/test262/test/: Added. Directory with all the actual test files.
10:49 PM Changeset in webkit [203269] by yoav@yoav.ws
  • 7 edits in trunk

Change CSSParser::sourceSize returning Optional<CSSParser::SourceSize>
https://bugs.webkit.org/show_bug.cgi?id=159666

Reviewed by Michael Catanzaro.

Source/WebCore:

Tests:

fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html

  • css/CSSGrammar.y.in: Avoid adding SourceSize to source_size_list when the value is a Nullopt.
  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize): Return a Nullopt when an invalid value is encountered.

  • css/CSSParser.h:

LayoutTests:

Added a test to make sure that an invalid source-size value is skipped, but the next one is properly picked.

  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt:
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html:
9:59 PM Changeset in webkit [203268] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Return the correct value from Heap::externalMemorySize
https://bugs.webkit.org/show_bug.cgi?id=159797
<rdar://problem/27362446>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-14
Reviewed by Timothy Hatcher.

  • heap/Heap.h:

(JSC::Heap::externalMemorySize):
We should have been returning m_externalMemorySize which is a subset
of m_extraMemorySize. In practice the difference can be small. A major
difference in "extra memory size" may be from deprecated memory size
and array buffer sizes.

8:56 PM Changeset in webkit [203267] by tonikitoo@webkit.org
  • 8 edits
    6 adds in trunk

[RTL Scrollbars] Frame scrollbars don't move to the right when text direction changes to RTL
https://bugs.webkit.org/show_bug.cgi?id=158252

Patch by Antonio Gomes <tonikitoo@igalia.com> on 2016-07-14
Reviewed by Myles C. Maxfield.

Source/WebCore:

When the 'dir' attribute changes either on body or on the document
element level, the associated FrameView does not trigger an update on
the frame level vertical scrollbar.

Patch adds a 'hook' so that RenderBox::styleDidChange can call in
order to get the document level scrollbar placed properly in the next
layout.

Test: fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement.html

fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html
fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement.html

  • page/FrameView.cpp:

(WebCore::FrameView::topContentDirectionDidChange):

  • page/FrameView.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

LayoutTests:

  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-expected.txt: Added.
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement-expected.txt: Added.
8:11 PM Changeset in webkit [203266] by mmaxfield@apple.com
  • 10 edits
    52 adds in trunk

Support new emoji group candidates
https://bugs.webkit.org/show_bug.cgi?id=159755
<rdar://problem/27325521>

Reviewed by Dean Jackson.

Source/WebCore:

There are a few code points which should be able to be joined (with ZWJ) to
either U+2640 or U+2642 to change the gender of the emoji. These patterns
should also work with an additional 0xFE0F variation selector. This patch
adds these new patterns to our existing emoji group candidate infrastructure.

Tests: fast/text/emoji-gender-2-3.html

fast/text/emoji-gender-2-4.html
fast/text/emoji-gender-2-5.html
fast/text/emoji-gender-2-6.html
fast/text/emoji-gender-2-7.html
fast/text/emoji-gender-2-8.html
fast/text/emoji-gender-2-9.html
fast/text/emoji-gender-2.html
fast/text/emoji-gender-3.html
fast/text/emoji-gender-4.html
fast/text/emoji-gender-5.html
fast/text/emoji-gender-6.html
fast/text/emoji-gender-7.html
fast/text/emoji-gender-8.html
fast/text/emoji-gender-9.html
fast/text/emoji-gender-fe0f-3.html
fast/text/emoji-gender-fe0f-4.html
fast/text/emoji-gender-fe0f-5.html
fast/text/emoji-gender-fe0f-6.html
fast/text/emoji-gender-fe0f-7.html
fast/text/emoji-gender-fe0f-8.html
fast/text/emoji-gender-fe0f-9.html
fast/text/emoji-gender.html
fast/text/emoji-num-glyphs.html
fast/text/emoji-single-parent-family-2.html
fast/text/emoji-single-parent-family.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Removed incorrect ASSERT()s.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

Source/WTF:

This patch doesn't update the rules for our cursor movement iterator, because
I don't know the language used for implementing these rules. These rules will
be updated in the near future. When they do,
editing/deleting/delete-emoji-expected.txt will need to be updated.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

Because this patch doesn't update the rules for our cursor movement
iterator, the new expected result for editing/deleting/delete-emoji.html
expects incorrect results. In the patch where we update these rules,
the expected result should also be updated.

Because these new emoji require system support, TestExpectations has
been updated to mark the tests as failing until the system support has
been added.

  • TestExpectations:
  • editing/deleting/delete-emoji-expected.txt:
  • editing/deleting/delete-emoji.html:
  • fast/text/emoji-gender-2-3-expected.html: Added.
  • fast/text/emoji-gender-2-3.html: Added.
  • fast/text/emoji-gender-2-4-expected.html: Added.
  • fast/text/emoji-gender-2-4.html: Added.
  • fast/text/emoji-gender-2-5-expected.html: Added.
  • fast/text/emoji-gender-2-5.html: Added.
  • fast/text/emoji-gender-2-6-expected.html: Added.
  • fast/text/emoji-gender-2-6.html: Added.
  • fast/text/emoji-gender-2-7-expected.html: Added.
  • fast/text/emoji-gender-2-7.html: Added.
  • fast/text/emoji-gender-2-8-expected.html: Added.
  • fast/text/emoji-gender-2-8.html: Added.
  • fast/text/emoji-gender-2-9-expected.html: Added.
  • fast/text/emoji-gender-2-9.html: Added.
  • fast/text/emoji-gender-2-expected-mismatch.html: Added.
  • fast/text/emoji-gender-2.html: Added.
  • fast/text/emoji-gender-3-expected.html: Added.
  • fast/text/emoji-gender-3.html: Added.
  • fast/text/emoji-gender-4-expected.html: Added.
  • fast/text/emoji-gender-4.html: Added.
  • fast/text/emoji-gender-5-expected.html: Added.
  • fast/text/emoji-gender-5.html: Added.
  • fast/text/emoji-gender-6-expected.html: Added.
  • fast/text/emoji-gender-6.html: Added.
  • fast/text/emoji-gender-7-expected.html: Added.
  • fast/text/emoji-gender-7.html: Added.
  • fast/text/emoji-gender-8-expected.html: Added.
  • fast/text/emoji-gender-8.html: Added.
  • fast/text/emoji-gender-9-expected.html: Added.
  • fast/text/emoji-gender-9.html: Added.
  • fast/text/emoji-gender-expected-mismatch.html: Added.
  • fast/text/emoji-gender-fe0f-3-expected.html: Added.
  • fast/text/emoji-gender-fe0f-3.html: Added.
  • fast/text/emoji-gender-fe0f-4-expected.html: Added.
  • fast/text/emoji-gender-fe0f-4.html: Added.
  • fast/text/emoji-gender-fe0f-5-expected.html: Added.
  • fast/text/emoji-gender-fe0f-5.html: Added.
  • fast/text/emoji-gender-fe0f-6-expected.html: Added.
  • fast/text/emoji-gender-fe0f-6.html: Added.
  • fast/text/emoji-gender-fe0f-7-expected.html: Added.
  • fast/text/emoji-gender-fe0f-7.html: Added.
  • fast/text/emoji-gender-fe0f-8-expected.html: Added.
  • fast/text/emoji-gender-fe0f-8.html: Added.
  • fast/text/emoji-gender-fe0f-9-expected.html: Added.
  • fast/text/emoji-gender-fe0f-9.html: Added.
  • fast/text/emoji-gender.html: Added.
  • fast/text/emoji-num-glyphs-expected.txt: Added.
  • fast/text/emoji-num-glyphs.html: Added.
  • fast/text/emoji-single-parent-family-2-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family-2.html: Added.
  • fast/text/emoji-single-parent-family-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family.html: Added.
7:31 PM Changeset in webkit [203265] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.WebContent at WebCore: WebCore::MediaQueryEvaluator::evaluate const
https://bugs.webkit.org/show_bug.cgi?id=159799
<rdar://problem/27346959>

Reviewed by Myles Maxfield.

Speculative fix for this crash, which seems to happen when asking for the Node's
renderer(). From the incoming crash logs, it is triggered by mutations on
a <picture> or <img> element, which would require choosing a new source,
and causing some media queries to evaluate.

The only place in MediaQueryEvaluator that has anything to do with
renderers is when gathering up some style information to pass to the
actual evaluation function. I put a guard against a missing documentElement
in there.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evaluate): Make sure documentElement is not
null.

7:17 PM Changeset in webkit [203264] by commit-queue@webkit.org
  • 55 edits in trunk/Source/WebCore

Update HTML*Element class override methods in final classes
https://bugs.webkit.org/show_bug.cgi?id=159456

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-14
Reviewed by Youenn Fablet.

Update HTML*Element classes so that overriden methods in final classes are marked final.
Also marked HTMLDivElement overriden methods as final since they are not overridden by derived classes.

  • html/HTMLAppletElement.h:
  • html/HTMLAreaElement.h:
  • html/HTMLAttachmentElement.h:
  • html/HTMLAudioElement.h:
  • html/HTMLBRElement.h:
  • html/HTMLBaseElement.h:
  • html/HTMLBodyElement.h:
  • html/HTMLButtonElement.h:
  • html/HTMLCanvasElement.h:
  • html/HTMLDataElement.h:
  • html/HTMLDetailsElement.h:
  • html/HTMLDivElement.h:
  • html/HTMLEmbedElement.h:
  • html/HTMLFieldSetElement.h:
  • html/HTMLFontElement.h:
  • html/HTMLFormElement.h:
  • html/HTMLFrameSetElement.h:
  • html/HTMLHRElement.h:
  • html/HTMLHtmlElement.h:
  • html/HTMLKeygenElement.h:
  • html/HTMLLIElement.h:
  • html/HTMLLabelElement.h:
  • html/HTMLLegendElement.h:
  • html/HTMLLinkElement.h:
  • html/HTMLMapElement.h:
  • html/HTMLMarqueeElement.h:
  • html/HTMLMetaElement.h:
  • html/HTMLMeterElement.h:
  • html/HTMLModElement.h:
  • html/HTMLOListElement.h:
  • html/HTMLObjectElement.h:
  • html/HTMLOptGroupElement.h:
  • html/HTMLOptionElement.h:
  • html/HTMLOutputElement.h:
  • html/HTMLParagraphElement.h:
  • html/HTMLParamElement.h:
  • html/HTMLPreElement.h:
  • html/HTMLProgressElement.h:
  • html/HTMLQuoteElement.h:
  • html/HTMLScriptElement.h:
  • html/HTMLSourceElement.h:
  • html/HTMLStyleElement.h:
  • html/HTMLSummaryElement.h:
  • html/HTMLTableCaptionElement.h:
  • html/HTMLTableColElement.h:
  • html/HTMLTableElement.h:
  • html/HTMLTableSectionElement.h:
  • html/HTMLTemplateElement.h:
  • html/HTMLTextAreaElement.h:
  • html/HTMLTitleElement.h:
  • html/HTMLUListElement.h:
  • html/HTMLUnknownElement.h:
  • html/HTMLVideoElement.h:
  • html/HTMLWBRElement.h:
7:11 PM Changeset in webkit [203263] by sbarati@apple.com
  • 8 edits in trunk

It should be a syntax error to have a 'use strict' directive inside a function that has a non-simple parameter list
https://bugs.webkit.org/show_bug.cgi?id=159790
<rdar://problem/27171636>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Is is a syntax error for a function's parameter list to be non-simple
and for the function to also contain a 'use strict' directive.

See section 14.2.1 of the spec:
https://tc39.github.io/ecma262/#sec-arrow-function-definitions-static-semantics-early-errors

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseFormalParameters):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::strictMode):
(JSC::Scope::isValidStrictMode):
(JSC::Scope::shadowsArguments):
(JSC::Scope::setHasNonSimpleParameterList):
(JSC::Scope::hasNonSimpleParameterList):
(JSC::Scope::copyCapturedVariablesToVector):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
7:07 PM Changeset in webkit [203262] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Modernize GlyphMetricsMap
https://bugs.webkit.org/show_bug.cgi?id=159788

Reviewed by Darin Adler.

Modernize GlyphMetricsMap a bit.

  • platform/graphics/GlyphMetricsMap.h:
  • Drop WTF_MAKE_NONCOPYABLE as the class is already non-copyable due to having to having a std::unique_ptr data member.
  • Drop GlyphMetricsMap default constructor and let the compiler generate it instead. This required using inline initialization for m_filledPrimaryPage.

(WebCore::GlyphMetricsMap::GlyphMetricsPage::GlyphMetricsPage):

  • Make m_metrics data member private as it does not need to be public.
  • Make setMetricsForIndex(unsigned index, const T& metrics) setter private as it does not need to be public.
  • Make GlyphMetricsPage(const T& initialValue) constructor explicit as it takes only 1 parameter.

(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):

  • Use HashMap::ensure() to make the code a bit nicer.
6:46 PM Changeset in webkit [203261] by Simon Fraser
  • 5 edits
    5 adds in trunk

[iOS WK2] When scrolling apple.com/music on iPad Pro in landscape, left-hand tiles appear first
https://bugs.webkit.org/show_bug.cgi?id=159798
rdar://problem/27362717

Reviewed by Tim Horton.
Source/WebCore:

In out-of-visible tiled layers, we always allocated the top-left tile, wasting
memory and causing ugliness when scrolling that layer into view. This happened
because getTileIndexRangeForRect() had no way to express the fact that no tiles
should be created.

Fix getTileIndexRangeForRect() to return a bool, and fix callers to respect the
return value.

Test: compositing/tiling/offscreen-tiled-layer.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::setNeedsDisplayInRect):
(WebCore::TileGrid::tilesWouldChangeForCoverageRect):
(WebCore::TileGrid::getTileIndexRangeForRect):
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::ensureTilesForRect):
(WebCore::TileGrid::extent):

  • platform/graphics/ca/TileGrid.h:

LayoutTests:

Test with an offscreen tiled layer.

  • compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
  • compositing/tiling/offscreen-tiled-layer.html: Added.
  • platform/ios-simulator-wk1/compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
  • platform/ios-simulator-wk2/compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
  • platform/mac-wk1/compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
5:52 PM Changeset in webkit [203260] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping editing/spelling/copy-paste-crash.html on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=142969

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
5:39 PM Changeset in webkit [203259] by Brent Fulgham
  • 1 edit
    4 adds in trunk/LayoutTests

Merge Blink test case
https://bugs.webkit.org/show_bug.cgi?id=117422

Patch is from a set of Blink changes (patches by <leviw@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/507e1576555bd2ce6688206f28339c25761893b1>
<https://chromium.googlesource.com/chromium/blink/+/4c95872f52340cf0cf9a2a7078bb63a94f38d302>

  • fast/list/list-style-position-inside-expected.txt: Added.
  • fast/list/list-style-position-inside.html: Added.
  • fast/sub-pixel/float-list-inside-expected.txt: Added.
  • fast/sub-pixel/float-list-inside.html: Added.
5:10 PM Changeset in webkit [203258] by wilander@apple.com
  • 3 edits
    2 adds in trunk

Remove credentials in URL when accessed through location.href
https://bugs.webkit.org/show_bug.cgi?id=139562
<rdar://problem/27331164>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/location-href-clears-username-password.html

The reason for this change is to not allow scripts on the page to
exfiltrate username and password from the URL.

  • page/Location.cpp:

(WebCore::Location::href):

Now checks if there is a username or password in the URL. If so,
it copies the URL and removes the username and password.

LayoutTests:

The reason for this change is to not allow scripts on the page to
exfiltrate username and password from the URL.

  • http/tests/security/location-href-clears-username-password-expected.txt: Added.
  • http/tests/security/location-href-clears-username-password.html: Added.

Test case adapted from https://src.chromium.org/viewvc/blink?revision=189367&view=revision.

5:00 PM Changeset in webkit [203257] by commit-queue@webkit.org
  • 4 edits in trunk

Allow RefPtrs of const RefCounted types
https://bugs.webkit.org/show_bug.cgi?id=158269

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-14
Reviewed by Anders Carlsson.

Source/WTF:

  • wtf/RefCounted.h:

(WTF::RefCountedBase::ref):
(WTF::RefCountedBase::~RefCountedBase):
(WTF::RefCountedBase::derefBase):
(WTF::RefCounted::deref):
Creating references to a const object does not really modify the object,
so everything in RefCounted is now mutable, and ref and deref are const.

Tools:

  • TestWebKitAPI/Tests/WTF/RefPtr.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::ConstRefCounted::create):
(TestWebKitAPI::returnConstRefCountedRef):
(TestWebKitAPI::returnRefCountedRef):

4:46 PM Changeset in webkit [203256] by Jon Davis
  • 4 edits in trunk/Websites/webkit.org

Improved WebKit Nightly start page design.
https://bugs.webkit.org/show_bug.cgi?id=159780

Reviewed by Timothy Hatcher.

Added better 404 handling, improved presentation of the
start page and new Apache rewrites for the P1 bug list.

  • .htaccess:
  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/nightly-start.php:
4:45 PM Changeset in webkit [203255] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge Blink test case
https://bugs.webkit.org/show_bug.cgi?id=116507

Patch is from a Blink change (patch by <ojan@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/6598fc75a7260643ecfc42856ef24bcf96380443>

  • compositing/iframes/crash-mouse-event-expected.txt: Added.
  • compositing/iframes/crash-mouse-event.html: Added.
4:38 PM Changeset in webkit [203254] by commit-queue@webkit.org
  • 7 edits
    1 copy in trunk/Source/WebInspectorUI

Web Inspector: Rename CCTNode to CallingContextTreeNode
https://bugs.webkit.org/show_bug.cgi?id=159782

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-14
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CallingContextTree.js:
  • UserInterface/Models/CallingContextTreeNode.js:

Extra to its own file and rename.

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/TestStub.html:

Include the new file.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode):

  • UserInterface/Views/ProfileDataGridTree.js:

(WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):
Rename shorthand "cctnode".

4:37 PM Changeset in webkit [203253] by Matt Baker
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: SidebarPanel classes should use View.layout instead of "refresh"
https://bugs.webkit.org/show_bug.cgi?id=159745
<rdar://problem/27335252>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:

(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.set applicationCacheFrame):
Use needsLayout.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.layout):
Move refresh logic to layout.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._styleSheetAddedOrRemoved):
Defer layout to coalesce updates.
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh): Deleted.

  • UserInterface/Views/DOMDetailsSidebarPanel.js:

(WebInspector.DOMDetailsSidebarPanel.prototype.set domNode):
Use needsLayout.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

Move refresh logic to layout.

  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel.prototype.shown): Deleted.
Base class already forces a layout when shown.
(WebInspector.DetailsSidebarPanel.prototype.needsRefresh): Deleted.
No longer needed.
(WebInspector.DetailsSidebarPanel.prototype.refresh): Deleted.
Renamed layout.
(WebInspector.DetailsSidebarPanel): Deleted.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype.supportsDOMNode):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._layerTreeDidChange):
Use needsLayout.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
Base class already forces a layout when shown.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
Use needsLayout.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.set callFrame):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._didEvaluateExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
Use needsLayout.

4:33 PM Changeset in webkit [203252] by jfernandez@igalia.com
  • 4 edits in trunk/Source/WebCore

[css-grid] Handle min-content/max-content with orthogonal flows
https://bugs.webkit.org/show_bug.cgi?id=159294

Reviewed by Darin Adler.

Currently there is no support for orthogonal flows in many aspects of the
Grid Layout logic.

The Grid sizing algorithm should be adapted to this scenario, hence this
patch focus on the min-content and max-content functions, used to resolve
content based track sizes.

There are still issues related to alignment and sizes using percentages,
but they will be addressed in different patches.

Tests: fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html

fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows.html
fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html
fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html
fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridSizingData::advanceNextState):
(WebCore::RenderGrid::GridSizingData::isValidTransitionForDirection):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::repeatTracksSizingIfNeeded): Added.
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::hasOverrideContainingBlockContentSizeForChild):
(WebCore::overrideContainingBlockContentSizeForChild):
(WebCore::setOverrideContainingBlockContentSizeForChild):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::isOrthogonalChild): Added.
(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::flowAwareDirectionForChild): Added.
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::updateOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::layoutPositionedObject):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild): Added.
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::columnAxisPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild):
(WebCore::RenderGrid::findChildLogicalPosition):

  • rendering/RenderGrid.h:

(WebCore::RenderGrid::SizingOperation): This enum has been moved to the header file.
(WebCore::RenderGrid::m_hasAnyOrthogonalChild): New class attribute to know if there are any orthogonal grid items.
(WebCore::RenderGrid::updateOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild):

4:21 PM Changeset in webkit [203251] by Ryan Haddad
  • 14 edits in trunk/Source/WebKit2

Unreviewed, rolling out r203248.

This change causes LayoutTests to crash and exit early

Reverted changeset:

"Use more Refs with WorkQueues"
https://bugs.webkit.org/show_bug.cgi?id=159792
http://trac.webkit.org/changeset/203248

4:17 PM Changeset in webkit [203250] by Chris Dumez
  • 25 edits in trunk/Source

Use emptyString() instead of "" when possible
https://bugs.webkit.org/show_bug.cgi?id=159789

Reviewed by Alex Christensen.

Use emptyString() instead of "" when possible to reduce String allocations.

Source/WebCore:

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performOpenAndVerify):

  • css/CSSSelector.h:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeProperty):
(WebCore::MutableStyleProperties::removeCustomProperty):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::findFirstBadGrammar):

  • editing/TypingCommand.h:

(WebCore::TypingCommand::create):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::cleanup):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::fillMediaListChain):

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::parse):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):

  • platform/gtk/DataObjectGtk.h:

(WebCore::DataObjectGtk::clearURIList):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):

  • platform/network/curl/ResourceHandleManager.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::updateContent):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::noneDashboardRegions):

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::SVGTextMetrics):

  • xml/XPathParser.cpp:

(WebCore::XPath::Parser::lexString):

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(populateSetting):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::parseRFC822HeaderFields):

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::pasteboardChangedOwner):

  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::parseRFC822HeaderFields):
(WebKit::NPN_Status):

4:15 PM Changeset in webkit [203249] by Brent Fulgham
  • 4 edits
    2 adds in trunk

editing/spelling/spellcheck-async.html sometimes crashes with GuardMalloc
https://bugs.webkit.org/show_bug.cgi?id=142969
<rdar://problem/27331095>

Reviewed by Alex Christensen.

Fix based on a Blink change (patch by <rouslan@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/c713736b122c2224804b2db72f1f711cb47ee260%5E%21/#F1>

Source/WebCore:

Test: editing/spelling/copy-paste-crash.html

editing/spelling/spellcheck-async.html

  • editing/SpellChecker.cpp:

(WebCore::SpellCheckRequest::didSucceed):
(WebCore::SpellCheckRequest::didCancel):

LayoutTests:

  • editing/spelling/copy-paste-crash-expected.txt: Added.
  • editing/spelling/copy-paste-crash.html: Added.
  • platform/platform/mac-wk2/TestExpectations: Skip test on mac-wk2 since all Spelling tests are

currently broken (see <https://webkit.org/b/105616>).

4:04 PM Changeset in webkit [203248] by achristensen@apple.com
  • 14 edits in trunk/Source/WebKit2

Use more Refs with WorkQueues
https://bugs.webkit.org/show_bug.cgi?id=159792

Reviewed by Brady Eidson.

  • NetworkProcess/CustomProtocols/CustomProtocolManager.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::setShouldExitOnSyncMessageSendFailure):
(IPC::Connection::addWorkQueueMessageReceiver):

  • Platform/IPC/Connection.h:
  • Shared/mac/SecItemShim.cpp:

(WebKit::SecItemShim::initializeConnection):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::create):
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):

  • UIProcess/Storage/LocalStorageDatabaseTracker.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded):
(WebKit::StorageManager::StorageManager):

  • UIProcess/Storage/StorageManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::processWillOpenConnection):
(WebKit::WebResourceLoadStatisticsStore::processDidCloseConnection):

  • UIProcess/mac/SecItemShimProxy.cpp:

(WebKit::SecItemShimProxy::initializeConnection):
(WebKit::SecItemShimProxy::secItemRequest):

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::initializeConnection):
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::initializeConnection):
(WebKit::EventDispatcher::wheelEvent):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::initializeConnection):
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):

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

Remove duplicate TestExpectations entry.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:05 PM Changeset in webkit [203246] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

ImageBuffer's succes flag should be set to false at the very beginning of the c'tor.
https://bugs.webkit.org/show_bug.cgi?id=159784

Reviewed by Simon Fraser.

No change in functionality.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

2:52 PM Changeset in webkit [203245] by timothy@apple.com
  • 6 edits in trunk/Source/WebKit2

Web Automation: FrameNotFound errors happen a lot for the main frame
https://bugs.webkit.org/show_bug.cgi?id=159777
rdar://problem/27224628

Send both pageID and frameID, and have the WebProcess side resolve the
mainFrame from 0 based on the known pageID. This avoids a race waiting
for the DidCreateMainFrame message.

Reviewed by Brian Burg.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::webFrameIDForHandle):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::webFrameProxyForHandle): Deleted.
(WebKit::WebAutomationSession::webFrameIDForHandle): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithName):
(WebKit::WebAutomationSessionProxy::resolveParentFrame):
(WebKit::WebAutomationSessionProxy::focusFrame):
(WebKit::WebAutomationSessionProxy::computeElementLayout):
(WebKit::WebAutomationSessionProxy::takeScreenshot):
(WebKit::WebAutomationSessionProxy::getCookiesForFrame):
(WebKit::WebAutomationSessionProxy::deleteCookie):

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:
2:43 PM Changeset in webkit [203244] by achristensen@apple.com
  • 26 edits
    2 adds
    4 deletes in trunk/Source

Use SocketProvider to create SocketStreamHandles
https://bugs.webkit.org/show_bug.cgi?id=159774

Source/WebCore:

Reviewed by Brady Eidson.

No new tests. No change in behaviour.

In r202930 I introduced the SocketProvider, but I used it to make a WebSocketChannel
instead of a SocketStreamHandle, which is the class I want to make into an interface
and proxy the web traffic over to the NetworkProcess.

  • CMakeLists.txt:
  • Modules/websockets/ThreadableWebSocketChannel.cpp: Added.

(WebCore::ThreadableWebSocketChannel::create):
I removed this in 202930, so this is restoring it from that patch, hence the old copyright.

  • Modules/websockets/ThreadableWebSocketChannel.h:

(WebCore::ThreadableWebSocketChannel::ThreadableWebSocketChannel):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::connect):

  • Modules/websockets/WebSocketChannel.h:

(WebCore::WebSocketChannel::create):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::resume):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::~Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:

(WebCore::WorkerThreadableWebSocketChannel::create):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::create):

  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/EmptyClients.cpp:

(WebCore::EmptyEditorClient::registerRedoStep):
(WebCore::EmptySocketProvider::createWebSocketChannel): Deleted.

  • loader/EmptyClients.h:
  • page/SocketProvider.cpp: Added.

(WebCore::SocketProvider::createSocketStreamHandle):

  • page/SocketProvider.h:

(WebCore::SocketProvider::~SocketProvider): Deleted.

  • platform/network/cf/SocketStreamHandle.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Source/WebKit:

Reviewed by Alex Christensen.

  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Reviewed by Brady Eidson.

  • Misc/WebSocketProvider.h: Removed.
  • Misc/WebSocketProvider.mm: Removed.
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKit/win:

Reviewed by Brady Eidson.

  • WebSocketProvider.cpp: Removed.
  • WebSocketProvider.h: Removed.
  • WebView.cpp: Replaced WebSocketProvider with SocketProvider as we did in WebCore.

Source/WebKit2:

Reviewed by Brady Eidson.

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createSocketStreamHandle):
(WebKit::WebSocketProvider::createWebSocketChannel): Deleted.

  • WebProcess/Network/WebSocketProvider.h:
2:42 PM Changeset in webkit [203243] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Maintain selected function when switching between different profile representations
https://bugs.webkit.org/show_bug.cgi?id=159778
<rdar://problem/27355913>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-14
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CallingContextTree.js:

(WebInspector.CCTNode):
(WebInspector.CCTNode.prototype.get hash):
(WebInspector.CCTNode.prototype.findOrMakeChild):
(WebInspector.CCTNode.prototype.equals):
Expose the hash so two nodes can be compared cheaply.

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView.prototype._repopulateDataGridFromTree):
(WebInspector.ProfileView.prototype._restoreSharedState):
(WebInspector.ProfileView.prototype._dataGridNodeSelected):
Share data between multiple ProfileViews. Currently just remembering
and restoring the selected function.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView):
(WebInspector.ScriptProfileTimelineView.prototype._showProfileViewForOrientation):
Include the shared data when constructing new ProfileViews.

2:39 PM Changeset in webkit [203242] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Potential null dereference under ViewGestureController::beginSwipeGesture()
https://bugs.webkit.org/show_bug.cgi?id=159776
<rdar://problem/22467100>

Reviewed by Tim Horton.

Potential null dereference under ViewGestureController::beginSwipeGesture() of:
m_webPageProxy.backForwardList().currentItem()

The client side is expected to call ViewGestureController::canSwipeInDirection() but
this only guarantees that the m_alternateBackForwardListSourceView's currentItem is
non-null when m_alternateBackForwardListSourceView is non-null. It does not guarantee
that m_webPageProxy's currentItem is non-null.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):

2:15 PM Changeset in webkit [203241] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

"User delete" tests are flakey timeouts (and/or DatabaseProcess crashes).
https://bugs.webkit.org/show_bug.cgi?id=158741

Reviewed by Alex Christensen.

No new tests (Covered by existing tests in some configurations)

  • Check if a database hard delete is complete in more places.
  • Asynchronously clear out the hard close protector instead of synchronously.
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformUnconditionalDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::maybeFinishHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::isDoneWithHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::doneWithHardClose): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

(WebCore::IDBServer::UniqueIDBDatabase::hardClosedForUserDelete):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):

2:01 PM Changeset in webkit [203240] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

CSSStyleSheet members should clear their owner node when destroyed
https://bugs.webkit.org/show_bug.cgi?id=117470

Reviewed by Chris Dumez.

Make sure that CSSStyleSheet members are detached from their owner node when
the owning object is destroyed.

I audited other CSSStyleSheet uses, and found one other place where the owner node was not
being cleared during destruction. The Inspector also uses CSSStyleSheet, but seems to
handle the node ownership properly.

Fix based on a Blink change (patch by <haraken@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/c4949bfdeb2a613701afa1410bdae70531b8f6bf>

Also includes a follow-up fix (patch by <haraken@chromium.org>):
<https://chromium.googlesource.com/chromium/blink/+/9c3932dc80b33429db3a5873cb266b726c8a19bf>

No test case. Was found by the Chromium team through review of their crash traces under minor DOM GC.

  • contentextensions/ContentExtensionStyleSheet.cpp:

(WebCore::ContentExtensions::ContentExtensionStyleSheet::~ContentExtensionStyleSheet):

  • contentextensions/ContentExtensionStyleSheet.h:
  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::~InlineStyleSheetOwner):
(WebCore::authorStyleSheetsForElement):

1:54 PM Changeset in webkit [203239] by ggaren@apple.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

ASSERTION FAILED: : this != replacement()
https://bugs.webkit.org/show_bug.cgi?id=159779

Reviewed by Michael Saboff.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison): If we jettison during GC, and our owner
is dead, we choose not to replace ourselves. (See
https://bugs.webkit.org/show_bug.cgi?id=159588.) So, it's possible to
invalidate and still be our owner's CodeBlock. Relax our ASSERT to allow
for this.

1:14 PM Changeset in webkit [203238] by Csaba Osztrogonác
  • 12 edits in trunk/Source

Fix the !ENABLE(WEB_SOCKETS) build after r202930
https://bugs.webkit.org/show_bug.cgi?id=159768

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/EmptyClients.cpp:
  • loader/EmptyClients.h:
  • page/SocketProvider.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):

Source/WebKit/mac:

  • Misc/WebSocketProvider.h:

Source/WebKit/win:

  • WebSocketProvider.h:

Source/WebKit2:

  • WebProcess/Network/WebSocketProvider.h:
12:46 PM Changeset in webkit [203237] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Add test to confirm we do not crash in media destruction
https://bugs.webkit.org/show_bug.cgi?id=122816

Test based on a Blink change (patch by <igor.o@sisa.samsung.com>):
<https://chromium.googlesource.com/chromium/blink/+/7a2b2dcefbc013003487d5055eeda7a57daafa93%5E%21/#F0>

We do not seem to have the bug that prompted the Chromium source change. Adding
test case to ensure we do not introduce this problem in the future.

  • editing/undo/audio-in-undo-stack-crash-expected.txt: Added.
  • editing/undo/audio-in-undo-stack-crash.html: Added.
12:45 PM Changeset in webkit [203236] by Chris Dumez
  • 3 edits in trunk/Source/WTF

Avoid an extra heap allocation when dispatching Functions to WorkQueue
https://bugs.webkit.org/show_bug.cgi?id=158367

Reviewed by Anders Carlsson.

Avoid an extra heap allocation when dispatching Functions to WorkQueue
by adding leakCallable() / adoptCallable() functions to Function.

  • wtf/Function.h:
  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

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

DOMIterators should be assigned a correct prototype
https://bugs.webkit.org/show_bug.cgi?id=159115

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-14
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/headers/headers-basic.html: Updating test (changes to be upstreamed to w3c wpt repo)

Source/WebCore:

Default iterator object internal prototype property is the Iterator prototype as defined in
http://heycam.github.io/webidl/#dfn-iterator-prototype-object.
Linking DOMIterator prototype to IteratorPrototype.
This allows adding @@iterator property to the result of entries, keys and values methods.
This in turns allow doing for-of loops on them.

Covered by updated test.

  • ForwardingHeaders/runtime/IteratorPrototype.h: Added.
  • bindings/js/JSDOMIterator.h: Setting correct prototype and marking next prototype property as enumerable.
12:30 PM Changeset in webkit [203234] by commit-queue@webkit.org
  • 5 edits in trunk

Remove support for value iterators from JSDOMIterator
https://bugs.webkit.org/show_bug.cgi?id=159293

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-14
Reviewed by Chris Dumez.

Source/WebCore:

Value iterators are now handled without using DOMIterator.
Since FontFaceSet is using DOMIterator as an intermediate step towards supporting set-like,
entries and forEach implementation should be made compliant with set-like.
This means that item value should be passed instead of an index in entries iterator and forEach callback.

Covered by updated test.

  • bindings/js/JSDOMIterator.h:

(WebCore::JSDOMIterator<JSWrapper>::asJS): Pass set item as entries value field.
(WebCore::appendForEachArguments): Pass set item as second parameter.
(WebCore::iteratorForEach): Remove index handling.

LayoutTests:

  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:
12:29 PM Changeset in webkit [203233] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(MATHML) build after r201739
https://bugs.webkit.org/show_bug.cgi?id=159767

Reviewed by Alex Christensen.

  • dom/Document.cpp:

(WebCore::Document::validateCustomElementName):

12:28 PM Changeset in webkit [203232] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(CSS_IMAGE_SET) build
https://bugs.webkit.org/show_bug.cgi?id=159766

Reviewed by Alex Christensen.

  • css/CSSParser.cpp:
12:09 PM Changeset in webkit [203231] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27353750.

  • platform/mac/TestExpectations:
11:33 AM Changeset in webkit [203230] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Possible crash under NavigationState::NavigationClient::processDidCrash()
https://bugs.webkit.org/show_bug.cgi?id=159773
<rdar://problem/19814215>

Reviewed by Anders Carlsson.

Add a m_navigationState.m_navigationDelegateMethods.webViewWebProcessDidCrash before
trying to call it to avoid crashing if the client does not implement it.

At the beginning of the method, we abort early only if both webViewWebContentProcessDidTerminate
and webViewWebProcessDidCrash are implemented. However, if webViewWebContentProcessDidTerminate
implemented but not webViewWebProcessDidCrash we can end up crashing as we fail to check later
on before trying to call it.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::processDidCrash):

11:18 AM Changeset in webkit [203229] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

JSONObject Walker::walk must save array length before processing array elements.
https://bugs.webkit.org/show_bug.cgi?id=153485

Reviewed by Darin Adler and Michael Saboff.

Source/JavaScriptCore:

According to https://tc39.github.io/ecma262/#sec-internalizejsonproperty,
JSON.parse() should cache the length of an array and use the cached length when
iterating array elements (see section 24.3.1.1 2.b.iii).

  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

  • tests/stress/JSON-parse-should-cache-array-lengths.js: Added.

(toString):
(shouldBe):
(test):
(test2):

LayoutTests:

  • js/JSON-parse-reviver-expected.txt:
  • js/script-tests/JSON-parse-reviver.js:
  • Fixed a bug in arrayReviver() where it was setting the array length to 3, but was immediately returning a value from the reviver for index 3. This effectively forces array.length to 4. As a result, case 4 always failed silently, and case 5 never executed.
  • Added tracking of cases visited by the revivers so that they can be verified.
10:59 AM Changeset in webkit [203228] by fred.wang@free.fr
  • 26 edits in trunk/Source/WebCore

Cleanup of MathML headers
https://bugs.webkit.org/show_bug.cgi?id=159336

Reviewed by Alex Christensen.

We do some cleanup in MathML headers:

  • Use #pragma once
  • Use final for class that are not extended.
  • Use final instead of override for virtual members that are not overridden by derived classes.
  • Try and reduce the visibility of function members to private or protected as appropriate.
  • Remove useless #include
  • Remove useless class or friendship declaration
  • Remove unused functions

No new tests, behavior is unchanged.

  • mathml/MathMLElement.h:
  • mathml/MathMLInlineContainerElement.h:
  • mathml/MathMLMathElement.h:
  • mathml/MathMLMencloseElement.h:
  • mathml/MathMLOperatorDictionary.h:
  • mathml/MathMLPaddedElement.h:
  • mathml/MathMLSelectElement.h:
  • mathml/MathMLSpaceElement.h:
  • mathml/MathMLTextElement.h:
  • rendering/mathml/MathOperator.h:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::RenderMathMLRow): Deleted. We no longer create anonymous row.

  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.h:
10:50 AM Changeset in webkit [203227] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix the DatabaseProcess build with disabled IDB
https://bugs.webkit.org/show_bug.cgi?id=159769

Reviewed by Alex Christensen.

  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::didClose):

10:38 AM Changeset in webkit [203226] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Handle properly unaligned halfword load
https://bugs.webkit.org/show_bug.cgi?id=153226

Patch by Julien Brianceau <jbriance@cisco.com> on 2016-07-14
Reviewed by Michael Catanzaro.

Waiting for the kernel to silently fix-up unaligned accesses is
not efficient, so let's provide an implementation of load16Unaligned
in mips macro assembler.

Performance improvement seen with SunSpider's regexp-dna test.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load16Unaligned):
(JSC::MacroAssemblerMIPS::load32WithUnalignedHalfWords):

10:26 AM Changeset in webkit [203225] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

Pass SessionID to WebSocketHandle constructor
https://bugs.webkit.org/show_bug.cgi?id=159772

Reviewed by Brady Eidson.

No new tests. No change in behavior.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):

  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/soup/SocketStreamHandle.h:
8:48 AM Changeset in webkit [203224] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GLib] Use a GSource instead of a thread to poll memory pressure eventFD in linux implementation
https://bugs.webkit.org/show_bug.cgi?id=159346

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-07-14
Reviewed by Antonio Gomes.

This is a follow up of r203216 to fix wrong use of Optional values.

  • platform/linux/MemoryPressureHandlerLinux.cpp:
5:33 AM Changeset in webkit [203223] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[ThreadedCompositor] Build fails in debug mode after r202040
https://bugs.webkit.org/show_bug.cgi?id=159757

Patch by Hyunjun Ko <Hyunjun Ko> on 2016-07-14
Reviewed by Michael Catanzaro.

Debug mode build failed due to call getter method, which is
removed, in ASSERT().

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Deleted.
(WebKit::ThreadedCompositor::renderLayerTree): Deleted.

4:16 AM Changeset in webkit [203222] by commit-queue@webkit.org
  • 13 edits
    15 adds in trunk

DOM value iterable interfaces should use Array prototype methods
https://bugs.webkit.org/show_bug.cgi?id=159296

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-14
Reviewed by Chris Dumez and Mark Lam.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj: Marking some header files as private so that they can be included in

WebCore.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation): copying iterable methods (entries, forEach, keys and values) to private slots.

Source/WebCore:

Test: fast/dom/NodeList/nodelist-iterable.html
Also covered by updated layout test and binding tests.

For value iterators, copy the iterator methods from Array prototype: as per https://heycam.github.io/webidl/#es-iterable,
[re: entries] If the interface has a value iterator, then the Function object is the initial value of the "entries" data property of %ArrayPrototype% ([ECMA-262], section 6.1.7.4).
[re: keys] If the interface has a value iterator, then the Function object is the initial value of the "keys" data property of %ArrayPrototype% ([ECMA-262], section 6.1.7.4).
[re: forEach] If the interface defines an indexed property getter, then the Function object is the initial value of the "forEach" data property of %ArrayPrototype% ([ECMA-262], section 6.1.7.4).
[re: Symbol.iterator] If the interface defines an indexed property getter, then the Function object is %ArrayProto_values% ([ECMA-262], section 6.1.7.4).
[re: values] If the interface has a value iterator, then the Function object is the value of the @@iterator property.

This change applies only to NodeList at the moment.
Copy of Array prototype iterator methods is disabled if the interface has no indexed getter.

  • CMakeLists.txt:
  • ForwardingHeaders/builtins/BuiltinNames.h: Added.
  • ForwardingHeaders/builtins/JSCBuiltins.h: Added.
  • ForwardingHeaders/runtime/CommonIdentifiers.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMIterator.cpp: Added.

(WebCore::addValueIterableMethods): Copy iterator methods from array prototype.

  • bindings/js/JSDOMIterator.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):
(IsValueIterableInterface): Introduced to only copy iterator methods if the interface has an indexed getter.
(IsKeyValueIterableInterface): Introduced to detect whether generating iterator methods.
(GenerateImplementationIterableFunctions):

  • bindings/scripts/test/GObject/WebKitDOMTestIterable.cpp: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestIterable.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestIterablePrivate.h: Added.
  • bindings/scripts/test/JS/JSTestIterable.cpp: Added.
  • bindings/scripts/test/JS/JSTestIterable.h: Added.
  • bindings/scripts/test/JS/JSTestObj.cpp: Updated as TestObj defines both iterable<> and indexed getter.
  • bindings/scripts/test/ObjC/DOMTestIterable.h: Added.
  • bindings/scripts/test/ObjC/DOMTestIterable.mm: Added.
  • bindings/scripts/test/ObjC/DOMTestIterableInternal.h: Added.
  • bindings/scripts/test/TestIterable.idl: Added to handle the case of value iterator without indexed getter defined.

Array prototype methods should not be copied.

  • bindings/scripts/test/TestObj.idl: Changing to be a value iterator (with indexed getter already defined).

Array prototype methods should be copied.

LayoutTests:

  • fast/dom/nodeListIterator-expected.txt:
  • fast/dom/nodeListIterator.html:
  • fast/dom/NodeList/nodelist-iterable-expected.txt: Added.
  • fast/dom/NodeList/nodelist-iterable.html: Added.
3:14 AM Changeset in webkit [203221] by commit-queue@webkit.org
  • 11 edits
    3 adds in trunk

[Fetch API] Request and Response url getter should use URL serialization
https://bugs.webkit.org/show_bug.cgi?id=159705

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-14
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/response-url-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.js: Added.

(checkResponseURL):

  • web-platform-tests/fetch/api/request/request-init-003.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-003.sub.html:

Source/WebCore:

Tests: fetch/fetch-url-serialization.html

imported/w3c/web-platform-tests/fetch/api/basic/response-url-worker.html
imported/w3c/web-platform-tests/fetch/api/basic/response-url.html

Implementing https://url.spec.whatwg.org/#concept-url-serializer and applying it to Request and Response getter.
Adding a temporary routine to compute url cannot-be-a-base-url flag. The parsing routine should store that
information in the URL itself.

Added tests to cover serialization routine. Failing tests are mostly due to limitations of the URL parser.
Tests do not check for URLs with username and password as Request constructor throws with such URLs.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::url): Adding request url serialization, fragment included.

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

(WebCore::FetchResponse::url): Adding response url serialization, fragment excluded.

  • Modules/fetch/FetchResponse.h:
  • platform/URL.cpp:

(WebCore::cannotBeABaseURL): Temporary helper function to have a coarse evaluation of url cannot-be-a-base-url flag.
(WebCore::URL::serialize): Implementation of https://url.spec.whatwg.org/#concept-url-serializer.

  • platform/URL.h:

(WebCore::URL::hasUser): Helper getter.
(WebCore::URL::hasPassword): Ditto.
(WebCore::URL::hasQuery): Ditto.
(WebCore::URL::hasFragment): Ditto.

LayoutTests:

  • fetch/fetch-url-serialization-expected.txt: Added.
  • fetch/fetch-url-serialization.html: Added.
  • fetch/fetch-urls.json: Added.
1:36 AM Changeset in webkit [203220] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[css-grid] Const-ify track sizing algorithm
https://bugs.webkit.org/show_bug.cgi?id=159716

Reviewed by Carlos Garcia Campos.

All the methods used to run the track sizing algorithm should not
modify the state of LayoutGrid. We can safely const-ify all of them
and remove the ugly const_cast in computeIntrinsicLogicalWidths().

No new tests needed as there is no change in behavior.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::updateOverrideContainingBlockContentLogicalWidthForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::distributeSpaceToTracks):

  • rendering/RenderGrid.h:
12:54 AM Changeset in webkit [203219] by jer.noble@apple.com
  • 4 edits in trunk

REGRESSION (r202918): LayoutTest media/video-main-content-allow-then-deny.html is flaky, failing almost every time on El Capitan
https://bugs.webkit.org/show_bug.cgi?id=159533

Reviewed by Eric Carlson.

Source/WebCore:

Move the contents of mainContentCheckTimerFired() into updateIsMainContent() so that the
results of changing the m_isMainContent ivar are acted upon no matter why m_isMainContent
changes.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::mainContentCheckTimerFired):
(WebCore::MediaElementSession::updateIsMainContent):

LayoutTests:

  • platform/mac/TestExpectations:
12:29 AM Changeset in webkit [203218] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebaseline test after r203204 and r203207.

  • js/typed-array-mutated-during-set-expected.txt:
12:05 AM Changeset in webkit [203217] by achristensen@apple.com
  • 14 edits in trunk/Source

Modernize WebSocket handle
https://bugs.webkit.org/show_bug.cgi?id=159750

Reviewed by Brady Eidson.

Source/WebCore:

No new tests. No change in behavior.
This patch just removes ThreadableWebSocketChannel::InvalidMessage which is never used
and makes our use of SocketStreamHandleClient a reference instead of a pointer.

  • Modules/websockets/ThreadableWebSocketChannel.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::send):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • platform/network/SocketStreamHandleBase.cpp:

(WebCore::SocketStreamHandleBase::SocketStreamHandleBase):
(WebCore::SocketStreamHandleBase::send):
(WebCore::SocketStreamHandleBase::disconnect):
(WebCore::SocketStreamHandleBase::sendPendingData):
(WebCore::SocketStreamHandleBase::setClient): Deleted.

  • platform/network/SocketStreamHandleBase.h:

(WebCore::SocketStreamHandleBase::~SocketStreamHandleBase):
(WebCore::SocketStreamHandleBase::bufferedAmount):
(WebCore::SocketStreamHandleBase::client):

  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::addCONNECTCredentials):
(WebCore::SocketStreamHandle::copyCFStreamDescription):
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):
(WebCore::SocketStreamHandle::reportErrorToClient):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::port):

  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/curl/SocketStreamHandleCurl.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::readData):
(WebCore::SocketStreamHandle::didReceiveData):
(WebCore::SocketStreamHandle::didOpenSocket):
(WebCore::SocketStreamHandle::createCopy):

  • platform/network/soup/SocketStreamHandle.h:
  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::connectedCallback):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::didFail):
(WebCore::SocketStreamHandle::writeReady):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability):

Source/WebKit2:

  • UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:

(WebKit::connectionCallback):

Jul 13, 2016:

11:36 PM Changeset in webkit [203216] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GLib] Use a GSource instead of a thread to poll memory pressure eventFD in linux implementation
https://bugs.webkit.org/show_bug.cgi?id=159346

Reviewed by Antonio Gomes.

The eventFD file descriptor is pollable, so it would be much better to use a poll instead of a blocking read in
a secondary thread and then communicate back to the main thread. This is very easy to do with GSource in GLib,
so we could use that when GLib is available and keep the current implementation as a fallback.

  • platform/MemoryPressureHandler.cpp:

(WebCore::m_holdOffTimer): Use a RunLoop timer.

  • platform/MemoryPressureHandler.h:
  • platform/linux/MemoryPressureHandlerLinux.cpp:

(WebCore::MemoryPressureHandler::EventFDPoller::EventFDPoller): Helper class do the eventFD polling.
(WebCore::MemoryPressureHandler::logErrorAndCloseFDs): Check if file descriptors are -1 not 0.
(WebCore::MemoryPressureHandler::install): Return early also if the hold off timer is active. Use EventFDPoller
to do the polling.
(WebCore::MemoryPressureHandler::uninstall): Stop the hold off timer and clear the EventFDPoller.

11:34 PM Changeset in webkit [203215] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r202273): [GTK] Redirected X window is resized to the previous size on size allocate
https://bugs.webkit.org/show_bug.cgi?id=159551

Reviewed by Michael Catanzaro.

In r202273 I added webkitWebViewBaseResizeRedirectedWindow() helper to remove duplicated code in all places
where we were resizing the redirected window to the current drawing area size. But on size allocate, we were
updating the redirected window first, and then the drawing area, to ensure that when the drawing area notifies
the web process the redirected window is already at the new size. This regression doesn't have any visual
effect, because we are ensure the right size always before rendering, but there's a small extra resize in this case.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSizeAllocate): Resize the redirected window before updating the drawing area size.

11:17 PM Changeset in webkit [203214] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Test WTF.StringViewIterators is crashing since r203119
https://bugs.webkit.org/show_bug.cgi?id=159710

Reviewed by Darin Adler.

There are two problems in the test case added in r203119. First is that it's testing
StringView::CodeUnits::Iterator instead of StringView::CodePoints::Iterator, and second is that
StringView::codePoints() returns a temporary, so the iterator created from the temporary ends up pointing to a
const reference to the string view member of the deleted CodePoints object.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

10:24 PM Changeset in webkit [203213] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the magic numbers for ARM traditional in InlineAccess.h
https://bugs.webkit.org/show_bug.cgi?id=159708

Reviewed by Saam Barati.

  • bytecode/InlineAccess.h:

(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):

9:55 PM Changeset in webkit [203212] by fred.wang@free.fr
  • 25 edits in trunk/LayoutTests

Rebaseline EFL and Windows MathML tests after r203171

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-13

  • platform/efl/mathml/opentype/horizontal-expected.txt:
  • platform/efl/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/efl/mathml/opentype/large-operators-expected.txt:
  • platform/efl/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/efl/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/menclose-notation-default-longdiv-expected.txt:
  • platform/efl/mathml/presentation/menclose-notation-values-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/efl/mathml/presentation/mspace-children-expected.txt:
  • platform/efl/mathml/presentation/roots-expected.txt:
  • platform/efl/mathml/radical-fallback-expected.txt:
  • platform/win/mathml/mathml-in-dashboard-expected.txt:
  • platform/win/mathml/opentype/horizontal-expected.txt:
  • platform/win/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/win/mathml/opentype/large-operators-expected.txt:
  • platform/win/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/win/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/menclose-notation-default-longdiv-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/presentation/mspace-children-expected.txt:
  • platform/win/mathml/presentation/roots-expected.txt:
  • platform/win/mathml/radical-fallback-expected.txt:
8:45 PM Changeset in webkit [203211] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

[CSS][ARMv7] :nth-child() do not reserve enough registers if it is in backtracking chain
https://bugs.webkit.org/show_bug.cgi?id=159746
rdar://problem/26156169

Reviewed by Andreas Kling.

The generator generateElementIsNthChild() requires 6 registers in style resolution
to mark previous siblings with generateAddStyleRelationIfResolvingStyle() in the loop.

We were only reserving 5, which is a problem is the sixth is taken by the backtracking
register. x86_64 was already requiring 6 for unrelated reasons and ARM64 has so many registers
that you cannot possibly run out of them in CSS JIT.

I generalized the x86_64 path to all architectures.
I did not limit this case to style resolution because the extra register is irrelevant
in most cases. The only difference is one extra push/pop on ARMv7 if you use querySelector
with :nth-child in a backtracking chain.

This problem is covered by the existing test fast/selectors/nth-child-with-backtracking.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::minimumRegisterRequirements): Deleted.

8:43 PM Changeset in webkit [203210] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary check from ContainerNode::removeChild()
https://bugs.webkit.org/show_bug.cgi?id=159747

Reviewed by Andreas Kling.

Drop unnecessary check from ContainerNode::removeChild() to make sure that
the parent of the node being removed is |this|. We already do this check
a few lines above. The only thing that happens in between is the ref'ing
of the node, which does not cause any JS execution.

This check was introduced in r55783 because there used to be a call to
document()->removeFocusedNodeOfSubtree(child.get());
between the two checks. However, this call has been removed since then
and the extra parentNode() check was left in.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeChild): Deleted.

7:38 PM Changeset in webkit [203209] by dbates@webkit.org
  • 3 edits in trunk/Tools

[iOS] Copy WebKitTestRunnerInjectedBundle.bundle into PlugIns subdirectory and code sign it
https://bugs.webkit.org/show_bug.cgi?id=159738
<rdar://problem/27304649>

Reviewed by Dan Bernstein.

The bundle WebKitTestRunnerInjectedBundle.bundle contains executable code and should be
code signed if applicable. We should also copy this bundle into the PlugIns subdirectory
of the WebKitTestRunnerApp.app bundle instead of the top-level bundle directory as the
PlugIns subdirectory is the directory where loadable bundles of an app are expected to live.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::initializeInjectedBundlePath): Modified code to look for the
bundle WebKitTestRunnerInjectedBundle.bundle in the plugin directory of the main bundle.

7:01 PM Changeset in webkit [203208] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

Addressing post-review comments after r203119
https://bugs.webkit.org/show_bug.cgi?id=159749

Unreviewed.

  • wtf/text/StringView.h:

(WTF::StringView::CodePoints::Iterator::Iterator):
(WTF::StringView::CodePoints::Iterator::operator*):
(WTF::StringView::CodePoints::Iterator::operator==):

6:45 PM Changeset in webkit [203207] by keith_miller@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline tests for ES6 TypedArray behavior.

  • js/typed-array-mutated-during-set-expected.txt:
  • js/typed-array-mutated-during-set.html:
6:20 PM Changeset in webkit [203206] by msaboff@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

YARR uses mixture of int and unsigned values to index into subject string
https://bugs.webkit.org/show_bug.cgi?id=159744

Reviewed by Benjamin Poulain.

In most cases, we refer to characters in subject strings using a negative index from the number of
"checked" characters in a subject string. The required length is compared against the actual length
and then we use that required length as the checked amount. For example, when matching the string of
4 digits in the RegExp /abc \d{4}/, we know that need 8 characters in the subject string. We refer
to the digits part of the expression from an already checked index of 8 and use negative offsets of
-4 through -1. In many cases we used a signed int for the negative offsets. There are other cases
where we used unsigned values as the amount of negative offset to use when accessing subject characters.

Changed all occurrances of character offsets to unsigned or Checked Arithmetic unsigned values. Note
that the pre-existing Checked class is used in other places to check for under/overflow with arithmetic
operations. Those unsigned offsets are always the number of characters before (negative) from the
current checked character offset. Also added some asserts for cases where arithmetic is not protected
by other checks or with Checked<> wrapped values.

In the case of the JIT, subject characters are accessed using base with scaled index and offset
addressing. The MacroAssembler provides this addressing using the BaseIndex struct. The offset for
this struct is a 32 bit signed quantity. Since we only care about negative offsets, we really only
have 31 bits. Changed the generation of a BaseOffset address to handle the case when the offset and
scaled combination will exceed the 31 bits of negative offset. This is done by moving the base value
into a temp register and biasing the temp base and offset to smaller values so that we can emit
instructions that can reference characters without exceeding the 31 bits of negative offset.

To abstract the character address generation, put the base with scaled index and offset into
one function and used that function everywhere the YARR JIT wants to access subject characters.
Also consilidated a few cases where we were generating inline what readCharacter() does. Usually
this was due to using a different index register.

Added a new regression test.

  • tests/stress/regress-159744.js: Added regression test.

(testRegExp):

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::recordParenthesesMatch):
(JSC::Yarr::Interpreter::resetMatches):
(JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
(JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
(JSC::Yarr::ByteCompiler::closeBodyAlternative):
(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
(JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
(JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
(JSC::Yarr::ByteCompiler::emitDisjunction):

  • yarr/YarrInterpreter.h:

(JSC::Yarr::ByteTerm::ByteTerm):
(JSC::Yarr::ByteTerm::BOL):
(JSC::Yarr::ByteTerm::UncheckInput):
(JSC::Yarr::ByteTerm::EOL):
(JSC::Yarr::ByteTerm::WordBoundary):
(JSC::Yarr::ByteTerm::BackReference):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::notAtEndOfInput):
(JSC::Yarr::YarrGenerator::negativeOffsetIndexedAddress):
(JSC::Yarr::YarrGenerator::readCharacter):
(JSC::Yarr::YarrGenerator::jumpIfCharNotEquals):
(JSC::Yarr::YarrGenerator::storeToFrame):
(JSC::Yarr::YarrGenerator::generateAssertionBOL):
(JSC::Yarr::YarrGenerator::backtrackAssertionBOL):
(JSC::Yarr::YarrGenerator::generateAssertionEOL):
(JSC::Yarr::YarrGenerator::matchAssertionWordchar):
(JSC::Yarr::YarrGenerator::generateAssertionWordBoundary):
(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce):
(JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
(JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
(JSC::Yarr::YarrGenerator::backtrackPatternCharacterNonGreedy):
(JSC::Yarr::YarrGenerator::generateCharacterClassOnce):
(JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
(JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):
(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::YarrGenerator):

  • yarr/YarrPattern.h:

(JSC::Yarr::PatternTerm::PatternTerm):

5:52 PM Changeset in webkit [203205] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.1.1

New tag.

5:15 PM Changeset in webkit [203204] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Crashes with detached ArrayBuffers
https://bugs.webkit.org/show_bug.cgi?id=157088
<rdar://problem/27327362>

Reviewed by Filip Pizlo.

TypedArray.prototype.fill was incorrect because it should perform
ToNumber coercion each time it tries to store the
object. Currently, we only perform the coercion once at the
beginning of the loop. If we find that we need to improve the
performance of this function, we can add a faster C++ path back
that only handles the primitive case.

This patch also moves the isNeutered() checks from put and
putByIndex into setIndex. This fixes an issue where setIndex might
store to a no longer valid offset.

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayClampArgumentToStartOrEnd):
(fill):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::setIndexQuickly):
(JSC::JSGenericTypedArrayView::setIndex):
(JSC::JSGenericTypedArrayView::setRangeToValue): Deleted.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::put): Deleted.
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex): Deleted.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncFill): Deleted.

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):
(JSC::typedArrayViewProtoFuncFill): Deleted.

  • tests/stress/typedarray-fill.js:
  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(test2):
(checkArgumentsForType): Deleted.
(checkArguments): Deleted.

5:12 PM Changeset in webkit [203203] by Beth Dakin
  • 2 edits in trunk/Tools

Attempted build fix.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
5:11 PM Changeset in webkit [203202] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

Some bad unicode regex escapes aren't flagged as errors
https://bugs.webkit.org/show_bug.cgi?id=158080

Reviewed by Saam Barati.

Source/JavaScriptCore:

If we have a partial unicode escape, eg /\u{1/u or /\u12|abc/u, we
didn't check for the closing '}' and processed the unicode escape with
the hex value provided.

Added a check that we properly terminated a \u{} unicode escape.
If we fail that check and there isn't a prior error, we record that we
have an invalid unicode escape. The next existing line in the code will
terminate parsing and bubble up the error.

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::parseEscape):

LayoutTests:

New tests.

  • js/regress-158080.html: Added.
  • js/script-tests/regress-158080.js: Added.
5:08 PM Changeset in webkit [203201] by jiewen_tan@apple.com
  • 3 edits
    118 adds in trunk/LayoutTests

Import W3C WebCryptoAPI tests
https://bugs.webkit.org/show_bug.cgi?id=159636

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • WebCryptoAPI/OWNERS: Added.
  • WebCryptoAPI/README.md: Added.
  • WebCryptoAPI/WebCryptoAPI.idl: Added.
  • WebCryptoAPI/digest/digest.js: Added.

(run_test.):
(run_test.copyBuffer):
(run_test.equalBuffers):
(run_test):

  • WebCryptoAPI/digest/digest.worker.js: Added.
  • WebCryptoAPI/digest/test_digest-expected.txt: Added.
  • WebCryptoAPI/digest/test_digest.html: Added.
  • WebCryptoAPI/digest/w3c-import.log: Added.
  • WebCryptoAPI/encrypt_decrypt/aes.js: Added.

(run_test.):
(run_test.importVectorKey):
(run_test):
(run_test.equalBuffers):

  • WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/aes_cbc_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/aes_ctr_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/aes_gcm_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/rsa.js: Added.

(run_test.):
(run_test.else):
(run_test.importVectorKeys):
(run_test.copyBuffer):
(run_test.equalBuffers):
(run_test):

  • WebCryptoAPI/encrypt_decrypt/rsa.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/rsa_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html: Added.
  • WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html: Added.
  • WebCryptoAPI/encrypt_decrypt/w3c-import.log: Added.
  • WebCryptoAPI/generateKey/failures.js: Added.

(run_test.parameterString):
(run_test.testError):
(run_test):
(run_test.invalidUsages):
(run_test.):

  • WebCryptoAPI/generateKey/failures.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-CBC.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-CTR.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-GCM.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-KW.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_ECDH.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_ECDSA.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_HMAC.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js: Added.
  • WebCryptoAPI/generateKey/successes.js: Added.

(run_test.parameterString):
(run_test.):
(run_test.testSuccess):
(run_test):

  • WebCryptoAPI/generateKey/successes.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-CBC.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-CTR.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-GCM.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-KW.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_ECDH.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_ECDSA.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_HMAC.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js: Added.
  • WebCryptoAPI/generateKey/test_aes-cbc-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_aes-cbc.html: Added.
  • WebCryptoAPI/generateKey/test_aes-ctr-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_aes-ctr.html: Added.
  • WebCryptoAPI/generateKey/test_failures-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CBC.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CTR.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-GCM.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-KW.html: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDH.html: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDSA.html: Added.
  • WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_HMAC.html: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS.html: Added.
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html: Added.
  • WebCryptoAPI/generateKey/test_successes-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CBC.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CTR.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-GCM.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-KW.html: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDH.html: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDSA.html: Added.
  • WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_HMAC.html: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS.html: Added.
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html: Added.
  • WebCryptoAPI/generateKey/w3c-import.log: Added.
  • WebCryptoAPI/getRandomValues.js: Added.

(run_test.):
(run_test):

  • WebCryptoAPI/getRandomValues.worker.js: Added.
  • WebCryptoAPI/idlharness-expected.txt: Added.
  • WebCryptoAPI/idlharness.html: Added.
  • WebCryptoAPI/idlharness.worker.js: Added.

(request.onload):

  • WebCryptoAPI/test_getRandomValues-expected.txt: Added.
  • WebCryptoAPI/test_getRandomValues.html: Added.
  • WebCryptoAPI/tools/generate.py: Added.
  • WebCryptoAPI/tools/w3c-import.log: Added.
  • WebCryptoAPI/util/helpers.js: Added.

(allNonemptySubsetsOf):
(objectToString.):
(objectToString):
(assert_goodCryptoKey):
(allAlgorithmSpecifiersFor):
(allValidUsages):
(allNameVariants):

  • WebCryptoAPI/util/w3c-import.log: Added.
  • WebCryptoAPI/w3c-import.log: Added.

LayoutTests:

Skip test cases for unimplemented features.

4:54 PM Changeset in webkit [203200] by Chris Dumez
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r203199.

Broke the build

Reverted changeset:

"Crashes with detached ArrayBuffers"
https://bugs.webkit.org/show_bug.cgi?id=157088
http://trac.webkit.org/changeset/203199

4:38 PM Changeset in webkit [203199] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Crashes with detached ArrayBuffers
https://bugs.webkit.org/show_bug.cgi?id=157088
<rdar://problem/27327362>

Reviewed by Filip Pizlo.

TypedArray.prototype.fill was incorrect because it should perform
ToNumber coercion each time it tries to store the
object. Currently, we only perform the coercion once at the
beginning of the loop. If we find that we need to improve the
performance of this function, we can add a faster C++ path back
that only handles the primitive case.

This patch also moves the isNeutered() checks from put and
putByIndex into setIndex. This fixes an issue where setIndex might
store to a no longer valid offset.

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayClampArgumentToStartOrEnd):
(fill):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::setIndexQuickly):
(JSC::JSGenericTypedArrayView::setIndex):
(JSC::JSGenericTypedArrayView::setRangeToValue): Deleted.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::put): Deleted.
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex): Deleted.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncFill): Deleted.

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):
(JSC::typedArrayViewProtoFuncFill): Deleted.

  • tests/stress/typedarray-fill.js:
  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(test2):
(checkArgumentsForType): Deleted.
(checkArguments): Deleted.

4:33 PM Changeset in webkit [203198] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'this._contentViewContainer.currentContentView.showsFilterBar')
https://bugs.webkit.org/show_bug.cgi?id=159696
<rdar://problem/27312356>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Early return if content view not visible, since the event is sent during
tab teardown and the current TimelineView may be invalid.

3:43 PM Changeset in webkit [203197] by Lucas Forschler
  • 1 delete in trunk/Websites/test-results

Remove test-results.

3:42 PM Changeset in webkit [203196] by Chris Dumez
  • 20 edits in trunk/Source/WebKit2

[WK2] Use more references for connections
https://bugs.webkit.org/show_bug.cgi?id=159739

Reviewed by Alex Christensen.

Use more references for connections to make it more obvious they cannot
be null.

  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):

  • DatabaseProcess/DatabaseToWebProcessConnection.h:

(WebKit::DatabaseToWebProcessConnection::connection):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::messageSenderConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::connection):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::messageSenderConnection):

  • Shared/mac/CookieStorageShim.mm:

(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::preregisterSandboxExtensionsIfNecessary):

  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):

  • WebProcess/Databases/WebToDatabaseProcessConnection.h:

(WebKit::WebToDatabaseProcessConnection::connection):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::connection):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::createPingHandle):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::messageSenderConnection):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::addCookie):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess):
(WebKit::WebProcess::networkConnection):
(WebKit::WebProcess::prefetchDNS):

  • WebProcess/WebProcess.h:
3:40 PM Changeset in webkit [203195] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Move WKPreferencesRef functions to the correct file
https://bugs.webkit.org/show_bug.cgi?id=159741

Reviewed by Sam Weinig.

Also, get rid of WKPreferencesGetPaymentsEnabled and WKPreferencesSetPaymentsEnabled.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetApplePayEnabled):
(WKPreferencesSetApplePayEnabled):
(WKPreferencesGetApplePayCapabilityDisclosureAllowed):
(WKPreferencesSetApplePayCapabilityDisclosureAllowed):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WKPreferencesGetApplePayEnabled): Deleted.
(WKPreferencesSetApplePayEnabled): Deleted.
(WKPreferencesGetApplePayCapabilityDisclosureAllowed): Deleted.
(WKPreferencesSetApplePayCapabilityDisclosureAllowed): Deleted.
(WKPreferencesGetPaymentsEnabled): Deleted.
(WKPreferencesSetPaymentsEnabled): Deleted.

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

Remove duplicated TestExpectation for perf/rel-list-remove.html on ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:02 PM Changeset in webkit [203193] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

Test gardening for fast/text/font-face-javascript.html
https://bugs.webkit.org/show_bug.cgi?id=156631

Unreviewed.

  • TestExpectations:
  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-javascript.html:
2:58 PM Changeset in webkit [203192] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Add _applePayCapabilityDisclosureAllowed SPI declaration
https://bugs.webkit.org/show_bug.cgi?id=159740

Reviewed by Dan Bernstein.

Also, delete an old method that is no longer used.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _paymentsEnabled]): Deleted.
(-[WKWebViewConfiguration _setPaymentsEnabled:]): Deleted.

2:56 PM Changeset in webkit [203191] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.41/Source/WebCore

Merged r203172. rdar://problem/27306545

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

Marking imported/blink/storage/indexeddb/blob-valid-after-deletion.html as flaky on Mac and ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=158640

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
2:33 PM Changeset in webkit [203189] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit2

Blank news article on kottke.org
https://bugs.webkit.org/show_bug.cgi?id=159733
<rdar://problem/26743065>

Reviewed by Simon Fraser.

This patch ensures that we update the visible content rect, when Auto Layout moves the WKWebView around.
We normally expect setFrameRect to be called to position WKWebView. However Auto Layout relies on layoutSubviews,
and in order to always have up-to-date visible content rect, we need to override layoutSubviews in WKWebView.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView layoutSubviews]):

2:14 PM Changeset in webkit [203188] by commit-queue@webkit.org
  • 1 edit
    4 adds in trunk/LayoutTests

Add test verifying detached iframes cannot set IDB values
https://bugs.webkit.org/show_bug.cgi?id=159736

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-13
Reviewed by Brady Eidson.

We match Chrome but not Firefox in this case.

  • storage/indexeddb/detached-iframe-expected.txt: Added.
  • storage/indexeddb/detached-iframe.html: Added.
  • storage/indexeddb/resources/detached-iframe.html: Added.
  • storage/indexeddb/resources/detached-iframe.js: Added.

(done):
(unexpectedErrorCallback):
(getRequestCallback):
(dbOpenedSecondTime):
(getValueFromIDB):
(makeDetachedFrame):
(prepareDatabase):

1:52 PM Changeset in webkit [203187] by rniwa@webkit.org
  • 8 edits
    3 copies
    5 adds in trunk

REGRESSION(r202953): Clicking on input[type=file] doesn't open a file picker
https://bugs.webkit.org/show_bug.cgi?id=159686
Source/WebCore:

Reviewed by Chris Dumez.

The bug was caused by DOMActivate event not propagating out of the user-agent shadow tree
of a file input, and FileInputType not receiving the event to open the file picker.

Made DOMActivate "composed" event which cross shadow boundaries to fix the bug. The feedback
was given back to W3C on https://github.com/w3c/webcomponents/issues/513#issuecomment-231851617

Test: fast/forms/file/open-file-panel.html

  • dom/Event.cpp:

(WebCore::Event::composed):

Tools:

Reviewed by Chris Dumez.

Added a code to print "OPEN FILE PANEL" in the text when runOpenPanel is called in the UI delegate.

  • WebKitTestRunner/TestController.cpp:

(WTR::runOpenPanel):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):

LayoutTests:

<rdar://problem/27263589>

Reviewed by Chris Dumez.

Added a regression test for opening a file picker on a type=file input element.

The test currently only works on WebKit2 since the support for logging "OPEN FILE PANEL"
was only added to WebKitTestRunner.

Also added WebKit2 specific expected results for some tests that tries to open file panel.

  • fast/forms/file/open-file-panel-expected.txt: Added.
  • fast/forms/file/open-file-panel.html: Added.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/accessibility: Added.
  • platform/wk2/accessibility/axpress-on-aria-button-expected.txt: Copied from LayoutTests/accessibility/axpress-on-aria-button-expected.txt.
  • platform/wk2/accessibility/file-upload-button-with-axpress-expected.txt: Copied from LayoutTests/accessibility/file-upload-button-with-axpress-expected.txt.
  • platform/wk2/fast: Added.
  • platform/wk2/fast/events: Added.
  • platform/wk2/fast/events/domactivate-sets-underlying-click-event-as-handled-expected.txt: Copied from LayoutTests/fast/events/domactivate-sets-underlying-click-event-as-handled-expected.txt.
1:51 PM Changeset in webkit [203186] by Beth Dakin
  • 5 edits
    1 move
    1 add in trunk

Add more candidate tests
https://bugs.webkit.org/show_bug.cgi?id=159730

Reviewed by Tim Horton.

Source/WebKit/mac:

Move shouldRequestCandidates from WebViewInternal to WebViewPrivate so that
we can use it in tests.

  • WebView/WebViewInternal.h:
  • WebView/WebViewPrivate.h:

Tools:

This patch re-names ViewWithEditableAreaLeak.mm to CandidateTests.mm and adds
two new tests to that file.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/focus-inputs.html: Added.
  • TestWebKitAPI/Tests/mac/CandidateTests.mm: Copied from TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm.

(-[CandidateRequestFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm: Removed.
1:33 PM Changeset in webkit [203185] by Lucas Forschler
  • 2 adds in trunk/Websites/test-results

Update results-safari config.

1:32 PM Changeset in webkit [203184] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.40.1-branch/Source/WebCore

Merged r203172. rdar://problem/27306545

1:31 PM Changeset in webkit [203183] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40.1-branch/Source

Versioning.

1:30 PM Changeset in webkit [203182] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.40.1-branch

New Branch.

1:26 PM Changeset in webkit [203181] by bshafiei@apple.com
  • 4 edits in tags/Safari-602.1.41

Merged r203167. rdar://problem/26358998

1:25 PM Changeset in webkit [203180] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

1:23 PM Changeset in webkit [203179] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

1:20 PM Changeset in webkit [203178] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.41

New tag.

1:09 PM Changeset in webkit [203177] by Lucas Forschler
  • 8 edits
    1 delete in trunk/Websites/test-results

Revert 203176.

1:04 PM Changeset in webkit [203176] by Lucas Forschler
  • 8 edits
    1 add in trunk/Websites/test-results

Update command for the results maintenance script.

1:02 PM Changeset in webkit [203175] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.7

New tag.

1:01 PM Changeset in webkit [203174] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

WebKit2 shouldn't signal custom protocol clients from the NSURLConnection loader thread.
https://bugs.webkit.org/show_bug.cgi?id=159725
<rdar://problem/27323131>

Reviewed by Andy Estes.

WebKit2 shouldn't signal custom protocol clients from the NSURLConnection
loader thread. Instead, use the RunLoop the WKCustomProtocol was initialized
on.

  • NetworkProcess/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(-[WKCustomProtocol initWithRequest:cachedResponse:client:]):
(WebKit::dispatchOnInitializationRunLoop):
(WebKit::CustomProtocolManager::didFailWithError):
(WebKit::CustomProtocolManager::didLoadData):
(WebKit::CustomProtocolManager::didReceiveResponse):
(WebKit::CustomProtocolManager::didFinishLoading):
(WebKit::CustomProtocolManager::wasRedirectedToRequest):
(WebKit::dispatchOnResourceLoaderRunLoop): Deleted.

1:00 PM Changeset in webkit [203173] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.40-branch

Merged r203167. rdar://problem/26358998

12:17 PM Changeset in webkit [203172] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

v2: WebContent crash due to RELEASE_ASSERT(!m_inLoadPendingImages) in StyleResolver::~StyleResolver()
https://bugs.webkit.org/show_bug.cgi?id=159722

Reviewed by Andreas Kling.

We have crashes where a StyleResolver is deleted underneath pseudoStyleForElement (key parts of the stack):

0 WebCore::StyleResolver::~StyleResolver
3 WebCore::AuthorStyleSheets::updateActiveStyleSheets
4 WebCore::Document::styleResolverChanged
5 WebKit::WebPage::viewportConfigurationChanged()
6 WebKit::WebPage::mainFrameDidLayout()
9 WebCore::FrameLoader::checkCompleted
13 WebCore::ResourceLoader::cancel
19 WebKit::WebLoaderStrategy::loadResource
24 WebCore::Style::loadPendingImage
27 WebCore::StyleResolver::pseudoStyleForElement
29 WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement
33 WebCore::Document::recalcStyle

This appears to be happening when a content blocker blocks a resource load for an image referenced from a stylesheet
and triggers synchronous cancellation of the load. With engine in suitable state this can clear style resolver.

No test, don't know how to make one. This is very timing and engine state dependent.

  • dom/AuthorStyleSheets.cpp:

(WebCore::AuthorStyleSheets::updateActiveStyleSheets):

We have an existing check here that prevents destruction of the style resolver when we are in the middle of
a style resolution. However the old inStyleRecalc() bit no longer covers the render tree update phase. Pseudo
elements are resolved during render tree update.

Fix by adding a check for inRenderTreeUpdate() bit too.

This just fixes a regression. A proper fix would be to gather all resources during style resolution
and trigger the loads afterwards.

12:14 PM Changeset in webkit [203171] by fred.wang@free.fr
  • 68 edits in trunk

Remove padding and margin around the <math> element
https://bugs.webkit.org/show_bug.cgi?id=157989

Source/WebCore:

Reviewed by Brent Fulgham.

No new tests, already covered by existing tests.

  • css/mathml.css:

(math): Remove padding.
(math[display="block"]): Remove margin.

LayoutTests:

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-13
Reviewed by Brent Fulgham.

  • imported/mathml-in-html5/mathml/relations/html5-tree/href-click-1.html: Remove spacing hack.
  • imported/mathml-in-html5/mathml/relations/html5-tree/href-click-2.html: Ditto.
  • mathml/presentation/fractions-box-expected.html: Ditto.
  • mathml/presentation/fractions-box.html: Ditto.
  • mathml/presentation/href-enter.html: Ditto.
  • mathml/presentation/maction-toggle-href.html: Ditto.
  • mathml/presentation/mpadded-1-2.html: Ditto.
  • mathml/presentation/mpadded-1.html: Ditto.
  • mathml/presentation/mpadded-2.html: Ditto.
  • mathml/presentation/mpadded-3.html: Ditto.
  • mathml/presentation/mpadded-4-expected.html: Ditto.
  • mathml/presentation/mpadded-4.html: Ditto.
  • mathml/presentation/mspace-prefered-width.html: Ditto.
  • mathml/presentation/mspace-units-expected.html: Ditto.
  • mathml/presentation/mspace-units.html: Ditto.
  • mathml/presentation/mspace.html: Ditto.
  • mathml/presentation/scripts-height-expected.html: Ditto.
  • mathml/presentation/scripts-subsup-expected.html: Ditto.
  • mathml/presentation/scripts-subsup.html: Ditto.
  • mathml/presentation/scripts-underover-expected.html: Ditto.
  • mathml/presentation/scripts-underover.html: Ditto.
  • mathml/presentation/semantics-2.html: Ditto.
  • mathml/presentation/semantics-3.html: Ditto.
  • mathml/presentation/semantics-4.html: Ditto.
  • mathml/presentation/semantics-href.html: Ditto.
  • mathml/presentation/style-border-padding-background.html: Ditto.
  • platform/gtk/mathml/opentype/horizontal-expected.png: Rebaseline due to spacing change around the math tag.
  • platform/gtk/mathml/opentype/horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.png: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/large-operators-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/vertical-expected.png: Ditto.
  • platform/gtk/mathml/opentype/vertical-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.png: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-values-expected.png: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.png: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mspace-children-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.png: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
  • platform/gtk/mathml/radical-fallback-expected.png: Ditto.
  • platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/menclose-notation-default-longdiv-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mspace-children-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/mac/mathml/presentation/menclose-notation-default-longdiv-expected.txt: Ditto.
  • platform/mac/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mspace-children-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/radical-fallback-expected.txt: Ditto.
  • mathml/mathml-in-dashboard-expected.txt: Ditto
12:11 PM Changeset in webkit [203170] by jdiggs@igalia.com
  • 5 edits in trunk

AX: [ATK] spinbutton-crash.html fails
https://bugs.webkit.org/show_bug.cgi?id=159723

Reviewed by Chris Fleizach.

Tools:

Implement support for AXDecrementButton and AXIncrementButton in
ATK's AccessibilityUIElement::uiElementAttributeValue().

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::uiElementAttributeValue):

LayoutTests:

In ATK, the accessible object for an input element has no children for
the text component. As a result, the spinner is the first and only child.
In AXAPI, the input element has an AXGroup child for the text component.
As a result, the spinner is the second of two children. Therefore, add a
helper method to accessibility-helper.js to retrieve the correct child
for the current platform use it in spinbutton-crash.html.

  • accessibility/spinbutton-crash.html: Modified.
  • resources/accessibility-helper.js:

(spinnerForTextInput): Added.

11:44 AM Changeset in webkit [203169] by enrica@apple.com
  • 14 edits in trunk/Source

Update supported platforms in xcconfig files to match the sdk names.
https://bugs.webkit.org/show_bug.cgi?id=159728

Reviewed by Tim Horton.

  • Configurations/Base.xcconfig:
11:36 AM Changeset in webkit [203168] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

"requiredShippingAddressFields" has been deprecated error thrown when using "requiredBillingAddressFields"
https://bugs.webkit.org/show_bug.cgi?id=159729
rdar://problem/27314974

Reviewed by Tim Horton.

Fix a paste-o.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::createPaymentRequest):

10:49 AM Changeset in webkit [203167] by pvollan@apple.com
  • 4 edits in trunk

[Win] DLLs are missing version information.
https://bugs.webkit.org/show_bug.cgi?id=159349

Reviewed by Alex Christensen.

Avoid using environment variable WEBKIT_LIBRARIES when finding version stamper utility,
in case it is not defined. Instead, use the location of the perl script to find the
utility.

.:

  • Source/cmake/tools/scripts/version-stamp.pl:

WebKitLibraries:

  • win/tools/scripts/version-stamp.pl:
10:40 AM Changeset in webkit [203166] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm as failing on Mac and ios-sim Release WK2
https://bugs.webkit.org/show_bug.cgi?id=159724

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:25 AM Changeset in webkit [203165] by Brent Fulgham
  • 3 edits
    3 adds in trunk

[WK1][iOS] Crash when WebSocket attempts to dispatch a mixed content blocker event
https://bugs.webkit.org/show_bug.cgi?id=159680
<rdar://problem/22102028>

Reviewed by Zalan Bujtas.

Source/WebCore:

WK1 on iOS should not use RunLoop::main(). Instead, it should be dispatching events
on the WebThread.

Test: http/tests/ssl/mixedContent/insecure-websocket.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Do not use RunLoop::main() when we should be using
the WebThread.

LayoutTests:

  • http/tests/ssl/mixedContent: Added.
  • http/tests/ssl/mixedContent/insecure-websocket-expected.txt: Added.
  • http/tests/ssl/mixedContent/insecure-websocket.html: Added.
9:30 AM Changeset in webkit [203164] by commit-queue@webkit.org
  • 44 edits
    117 adds in trunk/LayoutTests

Refresh WPT tests up to c875b42
https://bugs.webkit.org/show_bug.cgi?id=159712

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-13
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-6-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-6.htm: Added.
  • web-platform-tests/XMLHttpRequest/responsexml-basic-expected.txt:
  • web-platform-tests/XMLHttpRequest/responsexml-basic.htm:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-redirect-post-upload-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm: Added.
  • web-platform-tests/init.py:
  • web-platform-tests/dom/events/CustomEvent-expected.txt: Added.
  • web-platform-tests/dom/events/CustomEvent.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-detached-click-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-detached-click.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-order-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-order.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-throwing-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-throwing.html: Added.
  • web-platform-tests/dom/events/Event-init-while-dispatching-expected.txt: Added.
  • web-platform-tests/dom/events/Event-init-while-dispatching.html: Added.
  • web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt: Added.
  • web-platform-tests/dom/events/Event-subclasses-constructors.html: Added.
  • web-platform-tests/dom/events/EventListener-handleEvent-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-handleEvent.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-subframe-1.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-subframe-2.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-subsubframe.sub.html: Added.
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt: Added.
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.html: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.svg: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xhtml: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xml: Added.
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1-expected.txt: Added.
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1.xhtml: Added.
  • web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
  • web-platform-tests/domparsing/DOMParser-parseFromString-html.html:
  • web-platform-tests/domparsing/createContextualFragment-expected.txt: Added.
  • web-platform-tests/domparsing/createContextualFragment.html: Added.
  • web-platform-tests/domparsing/innerhtml-01-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-01.xhtml: Added.
  • web-platform-tests/domparsing/innerhtml-03-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-03.xhtml: Added.
  • web-platform-tests/domparsing/innerhtml-04-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-04.html: Added.
  • web-platform-tests/domparsing/innerhtml-05-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-05.xhtml: Added.
  • web-platform-tests/domparsing/innerhtml-06-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-06.html: Added.
  • web-platform-tests/domparsing/innerhtml-07-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-07.html: Added.
  • web-platform-tests/domparsing/insert_adjacent_html-expected.txt: Added.
  • web-platform-tests/domparsing/insert_adjacent_html.html: Added.
  • web-platform-tests/domparsing/insert_adjacent_html.js: Added.

(testThrowingNoParent):

  • web-platform-tests/domparsing/outerhtml-01-expected.txt: Added.
  • web-platform-tests/domparsing/outerhtml-01.html: Added.
  • web-platform-tests/domparsing/outerhtml-02-expected.txt: Added.
  • web-platform-tests/domparsing/outerhtml-02.html: Added.
  • web-platform-tests/domparsing/xml-serialization-expected.txt: Added.
  • web-platform-tests/domparsing/xml-serialization.xhtml: Added.
  • web-platform-tests/fetch/api/basic/request-head-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/request-head-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/request-head-worker.html: Added.
  • web-platform-tests/fetch/api/basic/request-head.html: Added.
  • web-platform-tests/fetch/api/basic/request-head.js: Added.

(promise_test):

  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:
  • web-platform-tests/fetch/api/basic/response-url-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.js: Added.

(checkResponseURL):

  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight.js:

(corsPreflight):

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-002.html:
  • web-platform-tests/fetch/api/request/request-init-003.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-003.sub.html:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_about_blank-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_about_blank.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_invalid-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_invalid.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_srcdoc-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_srcdoc.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01.html:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.py: Added.

(main):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_008-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_008.htm: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/historical-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/historical.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-subdocument.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_grandchild.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_parentage-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_parentage.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_grandchild.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_harness.js: Added.

(get_test_results.):
(get_test_results):

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_grandchild.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/stash.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body.html: Added.
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html:
  • web-platform-tests/html/semantics/forms/the-form-element/form-indexed-element-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-indexed-element.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown-child.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.js: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/scripting-enabled-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/scripting-enabled.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/streams/readable-streams/bad-strategies.https-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-strategies.js:

(get string_appeared_here):
(promise_test): Deleted.

LayoutTests:

  • TestExpectations: Adding some test expectations and skipping some resource files.
9:10 AM Changeset in webkit [203163] by fred.wang@free.fr
  • 3 edits
    2 adds in trunk

The display property of many MathML elements can not be overriden by page authors
https://bugs.webkit.org/show_bug.cgi?id=139403

Source/WebCore:

The mathml.css user agent stylesheet currently forces most MathML elements to render with
'display: block'. We remove the !important keyword so that users can override the display
property, for example to hide elements with 'display: none'. This is consistent with the
behavior for SVG or HTML elements.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-13
Reviewed by Brent Fulgham.

Test: imported/mathml-in-html5/mathml/relations/css-styling/display-1.html

  • css/mathml.css:

(math):
(math[display="block"]):
(ms, mspace, mtext, mi, mn, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose, semantics, mpadded, maction):
(mtd > *):

LayoutTests:

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-13
Reviewed by Brent Fulgham.

  • imported/mathml-in-html5/mathml/relations/css-styling/display-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/display-1.html: Added.
9:08 AM Changeset in webkit [203162] by commit-queue@webkit.org
  • 11 edits in trunk

[Fetch API] Response should not become disturbed on the ReadableStream creation
https://bugs.webkit.org/show_bug.cgi?id=159714

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-13
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-stream-disturbed-1-expected.txt:

Source/WebCore:

Covered by rebased test and existing tests.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::stop): Making the response disturbed if cancelled.

  • Modules/fetch/FetchResponseSource.cpp:

(WebCore::FetchResponseSource::firstReadCallback): Start enqueueing as soon as first read is made.
(WebCore::FetchResponseSource::doStart): Keep the start promise unresolved so that pull is not called.
FetchResponse is a push source.

  • Modules/fetch/FetchResponseSource.h:
  • Modules/streams/ReadableStreamInternals.js:

(readFromReadableStreamReader): Calling @firstReadCallback.

  • Modules/streams/ReadableStreamSource.h:

(WebCore::ReadableStreamSource::firstReadCallback): Default implementation (does nothing).

  • Modules/streams/ReadableStreamSource.idl: Adding firstReadCallback private method.
  • bindings/js/WebCoreBuiltinNames.h: Adding @firstReadCallback.
7:48 AM Changeset in webkit [203161] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Update Windows expectations for two MathML tests.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-13

  • platform/win/TestExpectations:
6:09 AM Changeset in webkit [203160] by clopez@igalia.com
  • 4 edits in trunk

[EFL] [GTK] Enable back crypto subtle on development builds.
https://bugs.webkit.org/show_bug.cgi?id=159260

Reviewed by Carlos Garcia Campos.

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

  • platform/gtk/TestExpectations: Enable back the tests that were

passing on GTK.

5:03 AM Changeset in webkit [203159] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer][GL] crash within triggerRepaint
https://bugs.webkit.org/show_bug.cgi?id=159552

Reviewed by Xabier Rodriguez-Calvar.

Revert the un-needed changes introduced in r203056 and use the
MainThreadNotifier without redundant checks.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::createWeakPtr):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

(WebCore::MediaPlayerPrivateGStreamerBase::createWeakPtr): Deleted.

4:37 AM Changeset in webkit [203158] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API breaks after r203047-

webkit_dom_document_set_title() and webkit_dom_html_title_element_set_text() now can raise exceptions.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_set_title):
(webkit_dom_html_title_element_set_text):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
  • bindings/gobject/webkitdom.symbols:
  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateProperty):
(FunctionUsedToNotRaiseException):

4:00 AM Changeset in webkit [203157] by Carlos Garcia Campos
  • 8 edits in trunk/Source

[Coordinated Graphics] Remove toCoordinatedGraphicsLayer and use downcast instead
https://bugs.webkit.org/show_bug.cgi?id=159469

Reviewed by Michael Catanzaro.

Source/WebCore:

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::isCoordinatedGraphicsLayer):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::toCoordinatedLayerID):
(WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
(WebCore::CoordinatedGraphicsLayer::removeFromParent):
(WebCore::CoordinatedGraphicsLayer::setMaskLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::findFirstDescendantWithContentsRecursively):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
(WebCore::CoordinatedGraphicsLayer::selfOrAncestorHasActiveTransformAnimation):
(WebCore::CoordinatedGraphicsLayer::selfOrAncestorHaveNonAffineTransforms):
(WebCore::toCoordinatedGraphicsLayer): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit2:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::mainContentsLayer):

3:22 AM Changeset in webkit [203156] by Csaba Osztrogonác
  • 4 edits in trunk/Source/JavaScriptCore

CLoop buildfix after r203142
https://bugs.webkit.org/show_bug.cgi?id=159706

Unreviewed buildfix.

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::isSafeToRecurse):

  • interpreter/CLoopStack.h:
  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::isSafeToRecurse): Deleted.

1:36 AM Changeset in webkit [203155] by Carlos Garcia Campos
  • 9 edits
    1 copy in trunk/Source

[GTK] WebKitGtk+ uses too many file descriptors
https://bugs.webkit.org/show_bug.cgi?id=152316

Reviewed by Michael Catanzaro.

Source/WebKit2:

The problem is that we are keeping file descriptors open in SharedMemory objects. Those objects can be kept
alive for a long time, for example in case of cached resources sent from the network process as shareable
resources. The thing is that we keep the file descriptor in the SharedMemory object only to be able to create a
Handle, duplicating the file descriptor. However, we are also assuming that we create handles for SharedMemory
objects created by another handle which is wrong. SharedMemory objects are created to map a file or data and
then a handle is created to send it to another process, or to map an existing file or data for a given handle
received from another process. They can also be created to wrap another map, but in that case we don't own the
file descritor nor the mapped data. So, after mapping from a handle, we no longer need the file descriptor, and
it can be closed to release it, while the mapped memory data will still be alive until munmap() is called. This
drastically reduces the amount of file descriptors used by WebKitGTK+.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket): Use setCloseOnExec().
(IPC::Connection::createPlatformConnection): Ditto.

  • Platform/SharedMemory.h:
  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::map): Close the file descriptor right after mmap.
(WebKit::SharedMemory::~SharedMemory): Close the file descriptor only if it hasn't been closed yet.
(WebKit::SharedMemory::createHandle): Add an ASSERT to ensure we only try to create a handle for SharedMemory
objects having a valid file descriptor. Use dupCloseOnExec() to duplicate the handle and set the close on exec flag.

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess): Use setCloseOnExec().

Source/WTF:

Add helper functions to duplicate a file descriptor setting close on exec flag, and also to set close on exec
flag to an existing file descriptor.

  • wtf/UniStdExtras.h:
  • wtf/UniStdExtras.cpp

(WTF::setCloseOnExec):
(WTF::dupCloseOnExec):

1:21 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:21 AM Changeset in webkit [203154] by fred.wang@free.fr
  • 6 edits in trunk/LayoutTests

Update MathML expectations on EFL and Windows ports.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-13

  • platform/efl/mathml/opentype/horizontal-expected.txt:
  • platform/efl/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/win/TestExpectations:
  • platform/win/mathml/opentype/horizontal-expected.txt:
  • platform/win/mathml/opentype/horizontal-munderover-expected.txt:

Jul 12, 2016:

11:44 PM Changeset in webkit [203153] by commit-queue@webkit.org
  • 5 edits in trunk

[Fetch API] isRedirected should be conveyed in workers
https://bugs.webkit.org/show_bug.cgi?id=159676

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-12
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt:

Source/WebCore:

Passing isRedirected value between threads.
Rebasing corresponding worker test, even though it is currently skipped (due to crashing flakiness).

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):

  • platform/network/ResourceResponseBase.h:
10:45 PM Changeset in webkit [203152] by Lucas Forschler
  • 1 edit in trunk/Websites/test-results/init-database.sql

Fix SQL: quote hyphenated string.

9:50 PM Changeset in webkit [203151] by eric.carlson@apple.com
  • 6 edits
    2 adds in trunk

REGRESSION (r202509): media controls controls enabled AirPlay placeholder is shown
https://bugs.webkit.org/show_bug.cgi?id=159685
<rdar://problem/27198899>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/controls/airplay-controls.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldShowControls): Split some of the logic out of shouldHaveControls.
(Controller.prototype.shouldHaveControls): Having controls != showing controls.
(Controller.prototype.updateControls): Call shouldShowControls, not shouldHaveControls.
(Controller.prototype.updateWirelessPlaybackStatus): Add 'appletv' to the class when active.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus): Call ensureMediaControlsShadowRoot
in case the controls haven't been created yet.

LayoutTests:

  • media/controls/airplay-controls-expected.txt: Added.
  • media/controls/airplay-controls.html: Added.
  • media/controls/controls-test-helpers.js:

(ControlsTest.prototype.get currentState): Put a try block around the call to get the current
status in case it fails.

  • platform/mac/TestExpectations: Skip the new test on Yosemite where AirPlay doesn't work.
9:47 PM Changeset in webkit [203150] by fred.wang@free.fr
  • 8 edits
    1 copy
    1 add in trunk/Source/WebCore

Move parsing of mpadded attributes to a MathMLPaddedElement class
https://bugs.webkit.org/show_bug.cgi?id=159620

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-12
Reviewed by Brent Fulgham.

No new tests, behavior is unchanged.

  • CMakeLists.txt: Add MathMLPaddedElement files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLInlineContainerElement.cpp: Remove handling of mpadded.
  • mathml/MathMLPaddedElement.cpp: Added.

(WebCore::MathMLPaddedElement::MathMLPaddedElement):
(WebCore::MathMLPaddedElement::create):
(WebCore::MathMLPaddedElement::width): Expose width attribute as a MathMLLength until mpadded
pseudo-units are supported.
(WebCore::MathMLPaddedElement::height): Ditto.
(WebCore::MathMLPaddedElement::depth): Ditto
(WebCore::MathMLPaddedElement::lspace): Ditto.
(WebCore::MathMLPaddedElement::voffset): Ditto.
(WebCore::MathMLPaddedElement::parseAttribute): Make length attribute dirty.
(WebCore::MathMLPaddedElement::createElementRenderer): Moved code from MathMLInlineContainerElement.

  • mathml/MathMLPaddedElement.h: Added.
  • mathml/mathtags.in: Map mapdded to MathMLPaddedElement.
  • rendering/mathml/RenderMathMLPadded.cpp:

(WebCore::RenderMathMLPadded::resolveWidth): Helper function to resolve width.
(WebCore::RenderMathMLPadded::resolveAttributes): Helper function to resolve all attributes.
(WebCore::RenderMathMLPadded::computePreferredLogicalWidths): Use resolveWidth.
(WebCore::RenderMathMLPadded::layoutBlock): Use resolveAttributes.

  • rendering/mathml/RenderMathMLPadded.h: Add new helper functions to access attributes from

the MathMLPaddedElement class.

9:05 PM Changeset in webkit [203149] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

[Cocoa] Simulated memory warning doesn't trigger libcache purge.
<https://webkit.org/b/159688>

Reviewed by Chris Dumez.

Since simulated memory warnings will have the "is under memory pressure" flag set,
we were skipping the libcache purge call.

Add a separate flag that tracks whether we're under simulated pressure, and always
prod libcache in that case.

  • platform/MemoryPressureHandler.h:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::MemoryPressureHandler::install):

8:30 PM Changeset in webkit [203148] by Lucas Forschler
  • 2 edits
    2 adds in trunk/Websites/test-results

<rdar://problem/22524456> Mitigate performance degradation of the flakiness dashboard

Rubber-stamped by Dean Johnson.

  • init-database.sql:

Rewrite the init-database.sql file to allow for table partitioning, based on insert date.
Some important things to note:

The main results table is unchanged, but will no longer contain any rows.
Partitioned tables will be generated on demand, and will inherit from 'results'
It is possible to query the 'results' table directly, and that will get data from all child tables.
This should keep us from requiring any client side code changes.


  • public_partition_maintenance: Added.

Maintenance script which will be called on a nightly schedule to purge expired data.
This data will be exported and compressed to a sub-folder, then dropped from the database.
I'm not sure how big it will be, so we'll likely need to keep an eye on it.


  • test-database.sql: Added.

Simple helper function to test that results partitions are created/deleted correctly.

6:25 PM Changeset in webkit [203147] by benjamin@webkit.org
  • 9 edits
    3 adds
    6 deletes in trunk

[JSC] Array.prototype.join() fails some conformance tests
https://bugs.webkit.org/show_bug.cgi?id=159657

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-12
Reviewed by Saam Barati.

Source/JavaScriptCore:

There were a couple of failures:
-separator.toString() was called *before* we get the length

and process ToLength() on it.

-We were using toUInt32() on length instead of ToLength(),

failing on big integers and various negative numbers.

Additionally, I replaced the "fast" ArrayStorage path
by a fully generic implementation that does not depends on StringJoiner.

The reason is StringJoiner was doing poorly on sparse objects
in certain cases.
If you have a sparse object with a length > INT_MAX but very few
indices defined, and you join on the empty string, it should be possible
to join the array (albeit very slowly). With StringJoiner, we fail
because we try to allocate > INT_MAX empty strings in a contiguous vector.

  • runtime/ArrayPrototype.cpp:

(JSC::slowJoin):
(JSC::canUseFastJoin):
(JSC::fastJoin):
(JSC::arrayProtoFuncJoin):
(JSC::join): Deleted.

  • runtime/JSArray.h:

(JSC::toLength):

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::number):

  • wtf/text/AtomicString.h:

LayoutTests:

I removed 3 sputnik tests that are incorrect in the latest spec.
In ES5, Array.prototype.join() was using ToUint32 on the argument:

https://es5.github.io/#x15.4.4.5

In ES6, the function uses ToLength:

https://tc39.github.io/ecma262/#sec-array.prototype.join

The test use Infinity and very large integer as the length.
They are guaranteed to time out or run out of memory.
Even if we waited the hours it takes to run this, the results would be different
from what the tests expect.

  • js/array-join-expected.txt: Added.
  • js/array-join.html: Added.
  • js/script-tests/array-join.js: Added.
6:24 PM Changeset in webkit [203146] by Gyuyoung Kim
  • 18 edits in trunk/Source/WebCore

Purge PassRefPtr in Modules/webdatabase
https://bugs.webkit.org/show_bug.cgi?id=159255

Reviewed by Benjamin Poulain.

As a step to remove PassRefPtr use, this patch cleans it up in Modules/webdatabase.

Additionally unnecessary spaces and tabs are removed too.

  • Modules/webdatabase/ChangeVersionWrapper.cpp:
  • Modules/webdatabase/DOMWindowWebDatabase.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::~Database):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::runTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseAuthorizer.cpp:

(WebCore::DatabaseAuthorizer::allowRead):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):

  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::SQLCallbackWrapper):

  • Modules/webdatabase/SQLResultSetRowList.h:
  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::SQLStatement):
(WebCore::SQLStatement::sqlError):
(WebCore::SQLStatement::sqlResultSet):

  • Modules/webdatabase/SQLStatement.h:
  • Modules/webdatabase/SQLTransaction.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::create):
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::transactionError):

  • Modules/webdatabase/SQLTransactionBackend.h:
5:55 PM Changeset in webkit [203145] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] After zooming and when under memory pressure, page tiles sometimes don't redraw while panning
https://bugs.webkit.org/show_bug.cgi?id=159697
rdar://problem/26314075

Reviewed by Benjamin Poulain.

When under memory pressure, and after pinching back to minimum scale, WebPage::updateVisibleContentRects()
would sometimes always bail under the "boundedScale != currentScale..." condition.

This happened because the visibleContentRectUpdateInfo.scale() is a double, but m_page->pageScaleFactor()
is a float, and the constraining between min and max scale (which are doubles) caused boundedScale
to be always different from currentScale.

Fix by using floats throughout.

No test because there's no way to simulate memory pressure for testing.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

5:45 PM Changeset in webkit [203144] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: C Loop build fix after r203142.

Not reviewed.

  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::isSafeToRecurse):

5:20 PM Changeset in webkit [203143] by Ryan Haddad
  • 8 edits
    2 copies
    4 adds
    3 deletes in trunk

Unreviewed, rolling out r203131.
https://bugs.webkit.org/show_bug.cgi?id=159698

This change caused an existing LayoutTest to time out on debug
testers (Requested by ryanhaddad on #webkit).

Reverted changeset:

"[JSC] Array.prototype.join() fails some conformance tests"
https://bugs.webkit.org/show_bug.cgi?id=159657
http://trac.webkit.org/changeset/203131

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-12

5:19 PM Changeset in webkit [203142] by mark.lam@apple.com
  • 23 edits
    1 add in trunk

We should use different stack limits for stack checks from JS and host code.
https://bugs.webkit.org/show_bug.cgi?id=159442
<rdar://problem/26889188>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

We have 2 stack reservedZoneSizes:

  1. Options::softReservedZoneSize()
  2. Options::reservedZoneSize()

Respectively, there are used to define 2 stack limits based on these reserved
zone sizes:

  1. VM::m_softStackLimit
  2. VM::m_stackLimit

Options::reservedZoneSize() is the amount of the stack space that JSC guarantees
to the VM and client host code for it's use. Host code that has well known
stack usage characteristics (i.e. doesn't call arbitrary code) may do stack
checks against the VM::m_stackLimit limit (which is computed using
Options::reservedZoneSize()).

Options::softReservedZoneSize() is a more conservative amount of reserved stack
space. This is used to compute the VM::m_softStackLimit limit. Any code that
is difficult to have its stack usage characterized (i.e. may call arbitrary code)
may need more stack space for its work. Hence, these should do stack checks
against the VM::m_softStackLimit limit.

JS code and host code that may call into JS code falls into the category of code
that may call arbitrary code. Hence, they should do stack checks against the
VM::m_softStackLimit limit.

Accordingly, the VM now provides 2 recursion check functions:

  1. VM::isSafeToRecurseSoft() will do a stack check against VM::m_softStackLimit. In addition, for C Loop builds, VM::isSafeToRecurseSoft() will also check the CLoopStack against VM::m_cloopStackLimit.
  1. VM::isSafeToRecurse() will do a stack check against VM::m_stackLimit.

Also added a promise-infinite-recursion-should-not-crash.js test.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNodeInTailPosition):
(JSC::BytecodeGenerator::emitNodeInConditionContext):

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::grow):

  • interpreter/CLoopStack.h:

(JSC::CLoopStack::size):

  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::ensureCapacityFor):
(JSC::CLoopStack::isSafeToRecurse):
(JSC::CLoopStack::topOfFrameFor):

  • interpreter/CachedCall.h:

(JSC::CachedCall::CachedCall):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • parser/Parser.cpp:
  • runtime/Options.h:
  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):

  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/StringRecursionChecker.h:

(JSC::StringRecursionChecker::performCheck):

  • runtime/VM.cpp:

(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::updateSoftReservedZoneSize):
(JSC::preCommitStackMemory):
(JSC::VM::updateStackLimits):
(JSC::VM::updateStackLimit): Deleted.

  • runtime/VM.h:

(JSC::VM::stackLimit):
(JSC::VM::softStackLimit):
(JSC::VM::addressOfSoftStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::lastStackTop):
(JSC::VM::setException):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):
(JSC::VM::isSafeToRecurseSoft):
(JSC::VM::shouldTriggerTermination):

  • tests/stress/promise-infinite-recursion-should-not-crash.js: Added.

(testPromise):
(promiseFunc):

  • yarr/YarrPattern.cpp:

Tools:

In http://trac.webkit.org/r203067, we limited the amount of stack that tests will
run with to keep stack overflow tests sane. Turns out, we also need to teach the
LayoutTestRelay to pass env vars over to the iOS simulator. This is needed in
order to keep the js/regress-139548.html test happy with this patch.

Also fixed up run_webkit_tests.py to explicitly pass an int size value for the
JSC_maxPerThreadStackUsage option. Otherwise, it will pass a float value.

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController _environmentVariables]):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main):

LayoutTests:

  • js/regress-141098-expected.txt:
  • js/script-tests/regress-141098.js:

(testEval):
(probeAndRecurse):

  • Gave all the test constants names.
  • Tweaked the constants to allow the test to run in the least amount of time, and also to behave consistently across all test configurations.
  • Re-enable eager tests now that the test should finish quickly.
5:05 PM Changeset in webkit [203141] by fpizlo@apple.com
  • 4 edits in trunk

platformUserPreferredLanguages on Mac should not try to put the region into the language
https://bugs.webkit.org/show_bug.cgi?id=159693

Rubber stamped by Alexey Proskuryakov.

Source/WTF:

Currently, navigator.language is the thing that we use as the BCP-47 tag in our Intl code
when certain APIs are called without a locale argument. That mostly makes sense, and is
deeply wired into our engine.

In r200105, we made Intl aware of the region as a separate thing from the language by having
platformUserPreferredLanguages() return something like a BCP-47 tag that was
<language>-<region>. For example, if I told System Preferences that I want to speak English
but live in Poland then we'd get "en-pl". This had the effect of making Intl APIs format
dates using Polish formatting, for example.

But this is an odd change, since that same function also feeds into navigator.language.
"en-pl" isn't what we want there, since my System Preferences settings aren't supposed to
mean that I want to speak Polish-style English. There's no such thing.

It may be worthwhile to wire the region settings more elegantly into Intl, but if we do that,
it should be via a mechanism that is separate from navigator.language. So, this change simply
reverts r200105.

  • wtf/PlatformUserPreferredLanguagesMac.mm:

(WTF::httpStyleLanguageCode):
(WTF::platformUserPreferredLanguages):
(WTF::isValidICUCountryCode): Deleted.

Tools:

Revert the test change in r200105.

  • TestWebKitAPI/Tests/mac/NavigatorLanguage.mm:

(TestWebKitAPI::languageForSystemLanguage):

5:02 PM Changeset in webkit [203140] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

4:57 PM Changeset in webkit [203139] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.6

New tag.

4:57 PM Changeset in webkit [203138] by bshafiei@apple.com
  • 6 edits in branches/safari-602.1.40-branch/Source

Merged r203134. rdar://problem/27312176

4:49 PM Changeset in webkit [203137] by dino@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (202694): Audio and Video playback controls: Cannot find a position slider to adjust playback position using VO.
https://bugs.webkit.org/show_bug.cgi?id=159661
<rdar://problem/27285135>

Unreviewed. Slight tweak to test to hopefully avoid flakiness.

  • media/controls/default-size-should-show-scrubber-expected.txt:
  • media/controls/default-size-should-show-scrubber.html:
4:20 PM Changeset in webkit [203136] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/css/ancestor-of-hovered-element-detached.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=159173

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:16 PM Changeset in webkit [203135] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION(r192789): Web Inspector: Log Value context menu appears twice
https://bugs.webkit.org/show_bug.cgi?id=159681
<rdar://problem/27304804>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-12
Reviewed by Brian Burg.

In r192789 contextmenu events may bubble up so that multiple handlers
may append ContextMenuItems. In nested ObjectTrees / ObjectPreviews
this could result in duplicate items. Add a flag on the bubbling event
so that we only include Object Tree context menu items for the deepest
part of the Object Tree, but still allow bubbling up to the root.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
(WebInspector.ObjectPreviewView):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):

4:14 PM Changeset in webkit [203134] by pvollan@apple.com
  • 6 edits in trunk/Source

[Win] Fix for build error when trying to version stamp dll.
https://bugs.webkit.org/show_bug.cgi?id=159692

Reviewed by Brent Fulgham.

Use correct path to version stamp script.

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebKit:

  • CMakeLists.txt:

Source/WTF:

  • wtf/CMakeLists.txt:
3:43 PM Changeset in webkit [203133] by Chris Dumez
  • 8 edits in trunk/Source/WebKit2

[WK2][NetworkSession] Fix unsafe RunLoop::dispatch() in NetworkLoad constructor
https://bugs.webkit.org/show_bug.cgi?id=159691

Reviewed by Brady Eidson.

Remove unsafe RunLoop::dispatch() in NetworkLoad constructor. It captured |this| but there
was no guarantee the NetworkLoad would still be alive by the time the lambda gets executed.

Instead, the constructor now takes a NetworkSession& parameter so that the call sites
have to retrieve the NetworkSession for a given SessionID and deal with the fact that
there may be no such NetworkSession before constructing the NetworkLoad.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

3:21 PM Changeset in webkit [203132] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Web Inspector: ER: Copy as cURL
https://bugs.webkit.org/show_bug.cgi?id=159380

Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-07-12
Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Inspired by https://chromium.googlesource.com/chromium/src/+/b7c1115dbae65030ad96e773d9a270465a05f5c4/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js

This "Copy as cURL" feature only approximates the original request as only some parts of
that request is known to the frontend.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.generateCURLCommand.escapeStringPosix.escapeCharacter):
(WebInspector.Resource.prototype.generateCURLCommand.escapeStringPosix):
(WebInspector.Resource.prototype.generateCURLCommand):
(WebInspector.Resource):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):

LayoutTests:

  • http/tests/inspector/network/copy-as-curl-expected.txt: Added.
  • http/tests/inspector/network/copy-as-curl.html: Added.
3:08 PM Changeset in webkit [203131] by commit-queue@webkit.org
  • 8 edits
    3 adds
    6 deletes in trunk

[JSC] Array.prototype.join() fails some conformance tests
https://bugs.webkit.org/show_bug.cgi?id=159657

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-12
Reviewed by Saam Barati.

Source/JavaScriptCore:

There were a couple of failures:
-separator.toString() was called *before* we get the length

and process ToLength() on it.

-We were using toUInt32() on length instead of ToLength(),

failing on big integers and various negative numbers.

Additionally, I replaced the "fast" ArrayStorage path
by a fully generic implementation that does not depends on StringJoiner.

The reason is StringJoiner was doing poorly on sparse objects
in certain cases.
If you have a sparse object with a length > INT_MAX but very few
indices defined, and you join on the empty string, it should be possible
to join the array (albeit very slowly). With StringJoiner, we fail
because we try to allocate > INT_MAX empty strings in a contiguous vector.

  • runtime/ArrayPrototype.cpp:

(JSC::slowJoin):
(JSC::canUseFastJoin):
(JSC::fastJoin):
(JSC::arrayProtoFuncJoin):
(JSC::join): Deleted.

  • runtime/JSArray.h:

(JSC::toLength):

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::number):

  • wtf/text/AtomicString.h:

LayoutTests:

I removed 3 sputnik tests that are incorrect in the latest spec.
In ES5, Array.prototype.join() was using ToUint32 on the argument:

https://es5.github.io/#x15.4.4.5

In ES6, the function uses ToLength:

https://tc39.github.io/ecma262/#sec-array.prototype.join

The test use Infinity and very large integer as the length.
They are guaranteed to time out or run out of memory.
Even if we waited the hours it takes to run this, the results would be different
from what the tests expect.

  • js/array-join-expected.txt: Added.
  • js/array-join.html: Added.
  • js/script-tests/array-join.js: Added.
3:06 PM Changeset in webkit [203130] by mark.lam@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

More stack limit and reserved zone renaming.
https://bugs.webkit.org/show_bug.cgi?id=159690

Rubber-stamped by Geoffrey Garen.

We should rename the following:

osStackLimitWithReserve => softStackLimit
reservedZoneSize => softReservedZoneSize
errorModeReservedZoneSize => reservedZoneSize

  • API/tests/PingPongStackOverflowTest.cpp:

(testPingPongStackOverflow):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::CLoopStack):
(JSC::CLoopStack::grow):
(JSC::CLoopStack::releaseExcessCapacity):
(JSC::CLoopStack::addToCommittedByteCount):
(JSC::CLoopStack::setSoftReservedZoneSize):
(JSC::CLoopStack::setReservedZoneSize): Deleted.

  • interpreter/CLoopStack.h:

(JSC::CLoopStack::size):

  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::shrink):

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ErrorHandlingScope.cpp:

(JSC::ErrorHandlingScope::ErrorHandlingScope):
(JSC::ErrorHandlingScope::~ErrorHandlingScope):

  • runtime/ErrorHandlingScope.h:
  • runtime/Options.h:
  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::updateSoftReservedZoneSize):
(JSC::VM::updateStackLimit):
(JSC::VM::updateReservedZoneSize): Deleted.

  • runtime/VM.h:

(JSC::VM::stackPointerAtVMEntry):
(JSC::VM::softReservedZoneSize):
(JSC::VM::softStackLimit):
(JSC::VM::addressOfSoftStackLimit):
(JSC::VM::cloopStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::reservedZoneSize): Deleted.
(JSC::VM::osStackLimitWithReserve): Deleted.
(JSC::VM::addressOfOSStackLimitWithReserve): Deleted.

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):

2:51 PM Changeset in webkit [203129] by Chris Dumez
  • 4 edits
    4 adds in trunk

[WK2] Protect against bad database data in LocalStorageDatabase::importItems()
https://bugs.webkit.org/show_bug.cgi?id=159663
<rdar://problem/18995873>

Reviewed by Benjamin Poulain.

Source/WebKit2:

Protect against bad database data in LocalStorageDatabase::importItems(). We
crash if the database contains a null key or a null value so protect against
it given that we have evidence it can happen.

With this change, I can no longer reproduce the UIProcess crash on evernote.com
that is documented at <rdar://problem/18995873>.

  • UIProcess/Storage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::importItems):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.localstorage: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.localstorage-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.mm: Added.

(-[LocalStorageNullEntriesMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

2:09 PM Changeset in webkit [203128] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/database-close-private.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158500

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:48 PM Changeset in webkit [203127] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/handle-user-delete.html as flaky on Yosemite Release
https://bugs.webkit.org/show_bug.cgi?id=158741

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:31 PM Changeset in webkit [203126] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

1:25 PM Changeset in webkit [203125] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.5

New tag.

1:24 PM Changeset in webkit [203124] by bshafiei@apple.com
  • 10 edits in branches/safari-602.1.40-branch

Merged r203111. rdar://problem/26358998

12:40 PM Changeset in webkit [203123] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/indexeddb/deleteDatabaseNamesWithSpace.html as a flaky timeout on Mac debug.
https://bugs.webkit.org/show_bug.cgi?id=159684

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:40 PM Changeset in webkit [203122] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update test expectations for rdar://problem/26590623 after r203117.

  • platform/mac/TestExpectations:
12:12 PM Changeset in webkit [203121] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/fetch/api/request/request-cache.html as flaky on Mac and ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=159683

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
11:50 AM Changeset in webkit [203120] by dino@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (202694): Audio and Video playback controls: Cannot find a position slider to adjust playback position using VO.
https://bugs.webkit.org/show_bug.cgi?id=159661
<rdar://problem/27285135>

Reviewed by Eric Carlson.

Source/WebCore:

The change in r202694 caused MediaDocuments to not always
show their scrubber. The fix is to reduce the minimum amount
of size needed to show the scrubber.

Test: media/controls/default-size-should-show-scrubber.html

  • Modules/mediacontrols/mediaControlsApple.js: 80 pixels is enough

to show the scrubber.

LayoutTests:

Add a test that checks the scrubber is visible on a default media element.
Unfortunately this isn't quite an accurate test, since we really want to
examine a Media Document, but it's close enough.

  • media/controls/default-size-should-show-scrubber-expected.txt: Added.
  • media/controls/default-size-should-show-scrubber.html: Added.
11:48 AM Changeset in webkit [203119] by mmaxfield@apple.com
  • 4 edits in trunk

Relax ordering requirements on StringView::CodePoints iterator
https://bugs.webkit.org/show_bug.cgi?id=159609

Reviewed by Darin Adler.

Source/WTF:

Previously, there was a requirement where if you use a CodePoints
iterator, you couldn't dereference twice in a row or increment
twice in a row. This restriction is unnecessary.

  • wtf/text/StringView.h:

(WTF::StringView::CodePoints::Iterator::Iterator):
(WTF::StringView::CodePoints::Iterator::advanceCurrentCodePoint):
(WTF::StringView::CodePoints::Iterator::operator*):
(WTF::StringView::CodePoints::Iterator::operator==):

Tools:

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

10:43 AM Changeset in webkit [203118] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fixing Tools/Scripts/run-builtins-generator-tests after https://trac.webkit.org/changeset/202975
https://bugs.webkit.org/show_bug.cgi?id=159564

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-12
Reviewed by Brian Burg.

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Changing --with-wrapper-files option to --wrappers.

10:17 AM Changeset in webkit [203117] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/preload/single_download_preload_runner.html as a timeout
https://bugs.webkit.org/show_bug.cgi?id=159678

Unreviewed test gardening.

9:43 AM Changeset in webkit [203116] by fred.wang@free.fr
  • 4 edits
    2 moves in trunk/Source/WebCore

Move MathMLOperatorDictionary from rendering to DOM
https://bugs.webkit.org/show_bug.cgi?id=159619

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-12
Reviewed by Brent Fulgham.

No new tests, behavior is unchanged.

  • CMakeLists.txt: Use the new location of MathMLOperatorDictionary files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Add MathMLOperatorDictionary.cpp
  • mathml/MathMLOperatorDictionary.cpp: Renamed from Source/WebCore/rendering/mathml/MathMLOperatorDictionary.cpp.
  • mathml/MathMLOperatorDictionary.h: Renamed from Source/WebCore/rendering/mathml/MathMLOperatorDictionary.h.
7:36 AM Changeset in webkit [203115] by Gyuyoung Kim
  • 14 edits in trunk

Remove ENABLE_CSS3_TEXT_LINE_BREAK flag
https://bugs.webkit.org/show_bug.cgi?id=159671

Reviewed by Csaba Osztrogonác.

ENABLE_CSS3_TEXT_LINE_BREAK feature was implemented without guards.
https://bugs.webkit.org/show_bug.cgi?id=89235

So this guard can be removed in build scripts.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
6:05 AM Changeset in webkit [203114] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Use separate files for TreeOutline/TreeElement and DataGrid/DataGridNode
https://bugs.webkit.org/show_bug.cgi?id=159659

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-12
Reviewed by Timothy Hatcher.

  • UserInterface/Main.html:
  • UserInterface/Views/DataGrid.js:
  • UserInterface/Views/DataGridNode.js: Added.
  • UserInterface/Views/TreeElement.js: Added.
  • UserInterface/Views/TreeOutline.js:

Extra the component classes to their own file.

6:04 AM Changeset in webkit [203113] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r203059.
https://bugs.webkit.org/show_bug.cgi?id=159673

B and R channels now swapped on desktop GL builds (Requested
by philn on #webkit).

Reverted changeset:

"Red and blue colors are swapped in video rendered through
WebGL when GSTREAMER_GL is enabled"
https://bugs.webkit.org/show_bug.cgi?id=159621
http://trac.webkit.org/changeset/203059

4:29 AM Changeset in webkit [203112] by Csaba Osztrogonác
  • 2 edits
    2 adds in trunk/Source/WTF

JSCOnly bulidfix after r203078
https://bugs.webkit.org/show_bug.cgi?id=159669

Reviewed by Yusuke Suzuki.

  • wtf/PlatformJSCOnly.cmake:
  • wtf/text/jsconly/TextBreakIteratorInternalICUJSCOnly.cpp: Added.

(WTF::currentSearchLocaleID):
(WTF::currentTextBreakLocaleID):

4:14 AM Changeset in webkit [203111] by pvollan@apple.com
  • 10 edits in trunk

[Win] DLLs are missing version information.
https://bugs.webkit.org/show_bug.cgi?id=159349

Reviewed by Brent Fulgham.

.:

The version stamping will fail if the target path has forward slashes.

  • Source/cmake/tools/scripts/version-stamp.pl: Replace forward slashes with backslashes.

Source/JavaScriptCore:

Generate autoversion.h and run perl version stamp utility.

  • CMakeLists.txt:

Source/WebKit:

Run perl version stamp utility.

  • CMakeLists.txt:

Source/WTF:

Generate autoversion.h and run perl version stamp utility.

  • wtf/CMakeLists.txt:

WebKitLibraries:

The version stamping will fail if the target path has forward slashes.

  • win/tools/scripts/version-stamp.pl: Replace forward slashes with backslashes.
2:04 AM Changeset in webkit [203110] by yoav@yoav.ws
  • 4 edits in trunk/Source/WebCore

js/dom/global-constructors-attributes.html is flaky: ResourceTiming runtime feature leaks between tests
https://bugs.webkit.org/show_bug.cgi?id=158902

Reviewed by Benjamin Poulain.

Adds a new reset() mechanism to RuntimeEnabledFeatures so that they could be brought back to the initial state.
This reset() is then called from DumpRenderTree and WebKitTestRunner.

No new tests but hopefully current tests will be less flaky.

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::reset):

  • bindings/generic/RuntimeEnabledFeatures.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): reset RuntimeEnabledFeatures.

Jul 11, 2016:

11:24 PM Changeset in webkit [203109] by Gyuyoung Kim
  • 24 edits in trunk/Source

Purge PassRefPtr in platform/efl and platform/mac
https://bugs.webkit.org/show_bug.cgi?id=159548

Reviewed by Alex Christensen.

Remove all use of PassRefPtr and clean up unnecessary tabs and spaces.
Source/WebCore:

WebKit2 codes are also changed because of setBufferForType()'s modification.

No new tests, no behavior changes.

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/PlatformSpeechSynthesizer.h:
  • platform/SerializedPlatformRepresentation.h:
  • platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:

(WebCore::PlatformSpeechSynthesisProviderEfl::speak):

  • platform/efl/PlatformSpeechSynthesisProviderEfl.h:
  • platform/efl/PlatformSpeechSynthesizerEfl.cpp:

(WebCore::PlatformSpeechSynthesizer::speak):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::setBufferForType):

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(SOFT_LINK_CONSTANT):
(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:]):
(-[WebSpeechSynthesisWrapper mapSpeechRateToPlatformRate:]):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didPauseSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didContinueSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didCancelSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
(WebCore::PlatformSpeechSynthesizer::speak):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::getTypes):
(WebCore::PlatformPasteboard::getPathnamesForType):
(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::copy):
(WebCore::PlatformPasteboard::setBufferForType):
(WebCore::PlatformPasteboard::setPathnamesForType):

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:]):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):

  • platform/mac/SerializedPlatformRepresentationMac.h:
  • platform/mac/SerializedPlatformRepresentationMac.mm:

(WebCore::SerializedPlatformRepresentationMac::data):
(WebCore::jsValueWithValueInContext):

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
(WebCore::PlatformSpeechSynthesizerMock::cancel):

  • platform/mock/PlatformSpeechSynthesizerMock.h:

Source/WebKit/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::setBufferForType):

Source/WebKit2:

WebKit2 codes are also changed because of setBufferForType()'s modification.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setBufferForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
11:04 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
10:59 PM Changeset in webkit [203108] by fred.wang@free.fr
  • 9 edits
    1 copy
    1 add in trunk/Source/WebCore

Move parsing of mspace attributes to a MathMLSpaceElement class
https://bugs.webkit.org/show_bug.cgi?id=156795

Patch by Frederic Wang <fwang@igalia.org> on 2016-07-11
Reviewed by Brent Fulgham.

No new tests, already covered by existing tests.

  • CMakeLists.txt: Add MathMLSpaceElement to the build system.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::cachedMathMLLength): Helper function to returned the cached parsed
value of a MathML length and parsing the corresponding attribute value if the cache is dirty.

  • mathml/MathMLElement.h: Add a dirty boolean to MathML Length structure. Declare cachedMathMLLength.
  • mathml/MathMLSpaceElement.cpp: New class for the <mspace> element.

(WebCore::MathMLSpaceElement::MathMLSpaceElement):
(WebCore::MathMLSpaceElement::create):
(WebCore::MathMLSpaceElement::parseAttribute): Make width, height, depth attributes dirty.
(WebCore::MathMLSpaceElement::createElementRenderer):

  • mathml/MathMLSpaceElement.h: New class for the <mspace> element.

We define MathML lengths for width, height and depth attributes are on the class and expose
with the corresponding helper functions via memoization.

  • mathml/MathMLTextElement.cpp: Remove handling of mspace from this class.

(WebCore::MathMLTextElement::createElementRenderer):

  • mathml/mathtags.in: Change the interface for mspace to use the new class.
  • rendering/mathml/RenderMathMLSpace.cpp: Do not store width/height/depth values on the

renderer and instead just use the corresponding MathML lengths on the element class.
(WebCore::RenderMathMLSpace::RenderMathMLSpace): Use MathMLSpaceElement and remove member
initialization.
(WebCore::RenderMathMLSpace::computePreferredLogicalWidths): Use spaceWidth().
(WebCore::RenderMathMLSpace::spaceWidth): Helper function to resolve the width attribute value.
(WebCore::RenderMathMLSpace::getSpaceHeightAndDepth): Ditto for height and depth.
(WebCore::RenderMathMLSpace::layoutBlock): Use the helper functions to get the mspace metrics.
(WebCore::RenderMathMLSpace::firstLineBaseline): Ditto.
(WebCore::RenderMathMLSpace::updateFromElement): Deleted.
(WebCore::RenderMathMLSpace::styleDidChange): Deleted.

  • rendering/mathml/RenderMathMLSpace.h: Use MathMLSpaceElement, replace members with helper

functions and and make element() usable from a const instance.

10:06 PM Changeset in webkit [203107] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk

ECMAScript 2016: %TypedArray%.prototype.includes implementation
https://bugs.webkit.org/show_bug.cgi?id=159385

Patch by Caio Lima <Caio Lima> on 2016-07-11
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch implements the ECMAScript 2016:
%TypedArray%.prototype.includes
following spec 22.2.3.14
https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewProtoFuncIncludes):
(JSC::JSTypedArrayViewPrototype::finishCreation):

LayoutTests:

This patch implements test case to ECMAScript 2016:
%TypedArray%.prototype.includes implementation
following spec 22.2.3.14
https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • js/regress/script-tests/typed-array-includes.js: Added.

(assertProperError):
(testIntTypedArray):
(testFloatTypedArray):

  • js/typed-array-includes-expected.txt: Added.
  • js/typed-array-includes.html: Added.
9:47 PM Changeset in webkit [203106] by fred.wang@free.fr
  • 5 edits in trunk/Source/WebCore

Create a MathMLLength struct to handle the parsing of MathML length.
https://bugs.webkit.org/show_bug.cgi?id=156792

Patch by Frederic Wang <fwang@igalia.org> on 2016-07-11
Reviewed by Brent Fulgham.

We introduce a structure for MathML lengths that will be used in the future to store the
parsed values in the MathElement class. We also rewrite the parsing function for MathML
lengths in order to improve efficiency and code reuse. This function is moved into the
MathElement class and only the conversion to LayoutUnit remains in the renderer classes.

No new tests, already covered by existing tests.

  • mathml/MathMLElement.cpp:

(WebCore::parseNamedSpace): Helper function to parse a named space.
(WebCore::MathMLElement::parseMathMLLength): Parsing function for MathML lengths.

  • mathml/MathMLElement.h: Declare new function and structure to handle MathML lengths.
  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::toUserUnits): Helper function to resolve a MathML length.
(WebCore::parseMathMLLength): Remove the old parsing code and just use MathMLElement::parseMathMLLength and toUserUnits instead.
(WebCore::parseMathMLNamedSpace): Deleted.

  • rendering/mathml/RenderMathMLBlock.h: Remove unused function.
9:34 PM Changeset in webkit [203105] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Disable some a failing test.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11

  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-1.html:
9:28 PM Changeset in webkit [203104] by fred.wang@free.fr
  • 9 edits
    13 adds in trunk

Add support for @href attribute in MathML
https://bugs.webkit.org/show_bug.cgi?id=85733

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11
Reviewed by Brent Fulgham.

Source/WebCore:

We add support for the href attribute from MathML 3 but ignore the deprecated XLink version.
We also use the code from HTMLAnchorElement SVGAElement to make MathMLElement with a href
attribute behave as a link.
Finally, we adjust mathml.css based on rules from the html and svg user agent stylesheets.

Tests: mathml/mathml-in-html5/href-click-1.html

mathml/mathml-in-html5/href-click-2.html
mathml/presentation/href-enter.html
mathml/presentation/href-style.html
mathml/presentation/maction-toggle-href.html
mathml/presentation/semantics-href.html

  • css/mathml.css:

(:any-link): Set color and mouse cursor of links.
(:any-link:active): Set color of active links.
(:focus): Set outline of focused links.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::parseAttribute): Parse the href attribute.
(WebCore::MathMLElement::willRespondToMouseClickEvents): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::defaultEventHandler): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::canStartSelection): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isFocusable): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isKeyboardFocusable): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isMouseFocusable): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isURLAttribute): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::supportsFocus): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::tabIndex): Based on HTMLAnchorElement/SVGAElement.

  • mathml/MathMLElement.h: Define new members.
  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::willRespondToMouseClickEvents): We also verify whether
the parent class will respond.

  • mathml/mathattrs.in: Add href attribute.

LayoutTests:

We import some tests from the MathML in HTML5 test suite to
test clicks on href attributes and write similar tests.
We also test tab/enter keys and user agent style with links.

  • mathml/mathml-in-html5/href-click-1.html: Added. Verify mouse click on a MathML link.
  • mathml/mathml-in-html5/href-click-1-expected.html: Added.
  • mathml/mathml-in-html5/href-click-2.html: Added.

Verify mouse click on a descendant of a MathML link.

  • mathml/mathml-in-html5/href-click-2-expected.html: Added.
  • mathml/presentation/href-enter.html: Added.

Verify tab navigation and activing link with enter.

  • mathml/presentation/href-enter-expected.html: Added.
  • mathml/presentation/href-style.html: Added.

Verify default style of links and of focused links.

  • mathml/presentation/href-style-expected.html: Added.
  • mathml/presentation/maction-toggle-href.html: Added.

Verify conflicts between maction toggle and href link.

  • mathml/presentation/maction-toggle-href-expected.html: Added.
  • mathml/presentation/semantics-href.html: Added. Verify mouse click on a <semantics> link.
  • mathml/presentation/semantics-href-expected.html: Added.
  • platform/mac/TestExpectations: Disable MathML link tests that rely on keyboard events.
  • platform/ios-simulator/TestExpectations: Ditto.
9:03 PM Changeset in webkit [203103] by fred.wang@free.fr
  • 2 edits
    2 adds
    2 deletes in trunk/LayoutTests

Replace reftest mathml/presentation/fractions-positions.html with script tests
https://bugs.webkit.org/show_bug.cgi?id=159558

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11
Reviewed by Martin Robinson.

  • TestExpectations: Remove fractions-positions.html
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-1.html: Added.
  • mathml/presentation/fractions-positions-expected.html: Removed.
  • mathml/presentation/fractions-positions.html: Removed.
8:30 PM Changeset in webkit [203102] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: ProfileView sometimes shows Top Functions data despite Top Functions being disabled
https://bugs.webkit.org/show_bug.cgi?id=159660
<rdar://problem/27291647>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-11
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype._profileOrientationButtonClicked):
Pass the value of the setting, not the setting itself.

5:57 PM Changeset in webkit [203101] by benjamin@webkit.org
  • 7 edits in trunk

[JSC] Array.from() and Array.of() try to build objects even if "this" is not a constructor
https://bugs.webkit.org/show_bug.cgi?id=159604

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

The spec says IsConstructor(), we were just checking if "this"
is any function.

  • builtins/ArrayConstructor.js:

(of):
(from):

LayoutTests:

  • js/array-from-expected.txt:
  • js/array-of-expected.txt:
  • js/script-tests/array-from.js:
  • js/script-tests/array-of.js:
5:16 PM Changeset in webkit [203100] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

Crash due to abort() calling libc++.1.dylib: std::1::thread::detach()
https://bugs.webkit.org/show_bug.cgi?id=159655

Reviewed by Sam Weinig.

It's not entirely clear what was happening in these crashes, but our
use of detach() was 100% forward-looking, so we can just remove it for
now.

This patch removes the ability for the scavenger owner to die before
the scavenger thread dies (which was unused) and also removes the
ability for the scavenger thread to exit (which was used, but we
messed up and did thread joining lazily, so we never got any benefit
from thread exit.)

We can add these features back when we need them, and make them work then.

  • bmalloc/AsyncTask.h:

(bmalloc::Function>::AsyncTask): We start out in the running state now
because we know that starting our thread will run it.

(bmalloc::Function>::~AsyncTask): We don't support destruction anymore.

(bmalloc::Function>::runSlowCase): I removed the Exited state.

(bmalloc::Function>::threadRunLoop): I removed the Exited and
ExitRequested states.

  • bmalloc/Heap.h:
  • bmalloc/VMHeap.h:
4:53 PM Changeset in webkit [203099] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Speech Synthesis: getting list of voices no longer works
<rdar://problem/22954120>
https://bugs.webkit.org/show_bug.cgi?id=159656

Reviewed by Tim Horton.

  • platform/PlatformSpeechSynthesizer.h:
  • platform/mac/PlatformSpeechSynthesizerMac.mm:

Default initialize m_voiceListIsInitialized to false so it is
initialized on both Mac and iOS. Remove the explicit initialization
from the Mac.

4:44 PM Changeset in webkit [203098] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

<rdar://problem/27285599> REGRESSION: Assertion under CertificateInfo::trust() every time I focus a text field

Reviewed by Sam Weinig.

The assertion added to CertificateInfo::trust() in r203040 is wrong, and is triggered when
focusing a form field via calls to -[WKWebProcessPlugInFrame _serverTrust], so remove it.

  • platform/network/cf/CertificateInfo.h:

(WebCore::CertificateInfo::trust):

4:44 PM Changeset in webkit [203097] by Simon Fraser
  • 3 edits
    2 adds in trunk

Deleting in a text input inside an iframe causes the page to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=159654
rdar://problem/26805722

Reviewed by Zalan Bujtas.

Source/WebCore:

Editor::revealSelectionAfterEditingOperation() needs the same iOS-specific reveal
behavior as was added for typing in r202295.

Test: fast/forms/ios/delete-in-input-in-iframe.html

  • editing/Editor.cpp:

(WebCore::Editor::revealSelectionAfterEditingOperation):

LayoutTests:

  • fast/forms/ios/delete-in-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/delete-in-input-in-iframe.html: Added.
4:39 PM Changeset in webkit [203096] by keith_miller@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

defineProperty on a index of a TypedArray should throw if configurable
https://bugs.webkit.org/show_bug.cgi?id=159653

Reviewed by Saam Barati.

When I fixed this before I misread the spec and thought it said we
should throw if the descriptor said the proprety is not
configurable. This is the opposite. We should throw if the
descriptor says the property is configurable.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

  • tests/stress/typedarray-access-monomorphic-neutered.js:
  • tests/stress/typedarray-access-neutered.js:
  • tests/stress/typedarray-configure-index.js: Added.

(assert):
(assertThrows):
(makeDescriptor):
(test):

4:34 PM Changeset in webkit [203095] by jmarcell@apple.com
  • 2 edits in trunk/Tools

SVN.create_patch should find svn-create-patch relative to the WebKit root.
https://bugs.webkit.org/show_bug.cgi?id=159652

Reviewed by Daniel Bates.

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN.create_patch): Use WebKitFinder to find the WebKit checkout so that we can find svn-create-patch relative to it.

4:29 PM Changeset in webkit [203094] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Intermittent crash in [UIApplication beginBackgroundTaskWithName] expiration handler
https://bugs.webkit.org/show_bug.cgi?id=159648
<rdar://problem/27219361>

Reviewed by Anders Carlsson.

We see an intermittent crash in [UIApplication beginBackgroundTaskWithName] expiration handler.
From the traces, we noticed the expiration handler can get called on a non-main thread under
certain conditions, which our code is designed to deal with.

In particular, we get called on a non-main thread when UIKit fails to acquire the assertion.
Update our expiration handler to always notify the clients on the main thread.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):

4:25 PM Changeset in webkit [203093] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Fix indentation in FrameLoaderTypes.h
https://bugs.webkit.org/show_bug.cgi?id=159650

Reviewed by Brady Eidson.

  • loader/FrameLoaderTypes.h:
4:23 PM Changeset in webkit [203092] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

Honor the second argument to FontFaceSet.load and FontFaceSet.check
https://bugs.webkit.org/show_bug.cgi?id=159607
<rdar://problem/27284902>

Reviewed by Zalan Bujtas.

Source/WebCore:

This second argument is used in conjunction with the unicode-range CSS property, so that
loading from a FontFaceSet only loads the fonts which actually match the characters given.
Previously, we hadn't implemented proper support for this unicode-range property, but now
that we have implemented it, we should honor this second argument.

Test: fast/text/unicode-range-javascript.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::rangesMatchCodePoint):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::codePointsFromString):
(WebCore::CSSFontFaceSet::matchingFaces):

LayoutTests:

  • fast/text/font-face-set-document-expected.txt:
  • fast/text/font-face-set-document.html:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:
  • fast/text/unicode-range-javascript-expected.txt: Added.
  • fast/text/unicode-range-javascript.html: Added.
4:18 PM Changeset in webkit [203091] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Unable to edit fields or drag to select text in Dashboard widgets.
https://bugs.webkit.org/show_bug.cgi?id=159647
<rdar://problem/26941698>

Reviewed by Brent Fulgham.

RenderObject::computeAbsoluteRepaintRect's first paramenter is no longer in/out. Use the return
value to set the clip on the dashboard region.

Not testable.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addAnnotatedRegions):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addAnnotatedRegions):

4:05 PM Changeset in webkit [203090] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit/win

Build fix.

Unreviewed.

  • WebDropSource.cpp:

(generateMouseEvent):

3:51 PM Changeset in webkit [203089] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the macOS build.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction description]):

3:35 PM Changeset in webkit [203088] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Potential null dereference under DocumentLoader::mainReceivedError()
https://bugs.webkit.org/show_bug.cgi?id=159640
<rdar://problem/27283372>

Reviewed by Brady Eidson.

Move frameLoader() null check a bit earlier in DocumentLoader::mainReceivedError()
as it was dereferenced before the check.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::mainReceivedError):

3:08 PM Changeset in webkit [203087] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

some paths in Array.prototype.splice don't account for the array not having certain indexed properties
https://bugs.webkit.org/show_bug.cgi?id=159641
<rdar://problem/27171999>

Reviewed by Filip Pizlo and Keith Miller.

Array.prototype.splice was incorrectly putting properties on
the result array even if the |this| array didn't have those
properties. This is not the behavior of the spec. However, this
could also cause a crash because we can construct a program where
we would putByIndex on a typed array where the value we are
putting is JSValue(). This is bad because the typed array will
try to convert JSValue() into an integer.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSplice):

  • tests/stress/array-prototype-splice-making-typed-array.js: Added.

(assert):
(test):

3:02 PM Changeset in webkit [203086] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Cleaned up API availability.

Requested by Tim Horton.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
2:34 PM Changeset in webkit [203085] by enrica@apple.com
  • 38 edits in trunk/Source

Add synthetic click origin to WKNavigationAction.
https://bugs.webkit.org/show_bug.cgi?id=159584
rdar://problem/25610422

Reviewed by Tim Horton.

Source/WebCore:

Adding plumbing code to pass synthetic click type
through WebCore.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):
(WebCore::Element::dispatchMouseForceWillBegin):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent):
(WebCore::MouseEvent::cloneFor):

  • dom/MouseEvent.h:

(WebCore::MouseEvent::createForBindings):
(WebCore::MouseEvent::button):
(WebCore::MouseEvent::syntheticClickType):
(WebCore::MouseEvent::buttonDown):
(WebCore::MouseEvent::setRelatedTarget):

  • dom/SimulatedClick.cpp:
  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::showContextMenuAt):

  • page/DragController.cpp:

(WebCore::createMouseEvent):
(WebCore::DragController::DragController):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::PlatformMouseEvent):
(WebCore::PlatformMouseEvent::clickCount):
(WebCore::PlatformMouseEvent::modifierFlags):
(WebCore::PlatformMouseEvent::force):
(WebCore::PlatformMouseEvent::syntheticClickType):

  • replay/SerializationMethods.cpp:

(JSC::EncodingTraits<PlatformMouseEvent>::decodeValue):

Source/WebKit/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _dragSourceEndedAt:operation:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

  • WebDropSource.cpp:

(generateMouseEvent):

Source/WebKit2:

Adds a private property to WKNavigationAction to retrieve
the origin of the synthetic click.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • Shared/WebEvent.h:

(WebKit::WebMouseEvent::button):
(WebKit::WebMouseEvent::menuTypeForEvent):
(WebKit::WebMouseEvent::force):
(WebKit::WebMouseEvent::syntheticClickType):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode):
(WebKit::WebMouseEvent::decode):

  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebWheelEvent):

  • UIProcess/API/APINavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(toWKNavigationType):
(toWKSyntheticClickType):
(-[WKNavigationAction description]):
(-[WKNavigationAction sourceFrame]):
(-[WKNavigationAction request]):
(-[WKNavigationAction _syntheticClickType]):
(-[WKNavigationAction modifierFlags]):

  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _longPressRecognized:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::selectWithTwoTouches):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::mouseButtonForMouseEvent):
(WebKit::syntheticClickTypeForMouseEvent):
(WebKit::InjectedBundleNavigationAction::modifiersForNavigationAction):
(WebKit::InjectedBundleNavigationAction::mouseButtonForNavigationAction):
(WebKit::InjectedBundleNavigationAction::syntheticClickTypeForNavigationAction):
(WebKit::InjectedBundleNavigationAction::create):
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:

(WebKit::InjectedBundleNavigationAction::navigationType):
(WebKit::InjectedBundleNavigationAction::modifiers):
(WebKit::InjectedBundleNavigationAction::mouseButton):
(WebKit::InjectedBundleNavigationAction::hitTestResult):
(WebKit::InjectedBundleNavigationAction::formElement):
(WebKit::InjectedBundleNavigationAction::syntheticClickType):
(WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs):
(WebKit::InjectedBundleNavigationAction::shouldTryAppLinks):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::WebPage::dragEnded):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):
(WebKit::WebPage::setCompositionForTesting):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::inspectorNodeSearchMovedToPosition):

2:10 PM Changeset in webkit [203084] by andersca@apple.com
  • 15 edits in trunk/Source

Able to open multiple payment sheets in Safari at the same time
https://bugs.webkit.org/show_bug.cgi?id=159637
rdar://problem/26411339

Reviewed by Beth Dakin.

Source/WebCore:

Fold PaymentCoordinator::showPaymentUI into PaymentCoordinator::beginPaymentSession and
change the return value of the latter member function to a bool to indicate whether the
payment UI could be shown (or whether it's already showing).

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::begin):
Check the return value of beginPaymentSession.

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::beginPaymentSession):
This now takes a payment session and returns a boolean.
(WebCore::PaymentCoordinator::showPaymentUI): Deleted.

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinatorClient.h:
  • loader/EmptyClients.cpp:

The showPaymentUI client function now returns a bool.

Source/WebKit/mac:

Update for WebCore changes.

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::showPaymentUI):

Source/WebKit2:

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):
Add result out parameter. Set the result to false if isShowingPaymentUI is true, otherwise set isShowingPaymentUI to true.

(WebKit::WebPaymentCoordinatorProxy::didReachFinalState):
Set isShowingPaymentUI to false.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::showPaymentUI):

  • WebProcess/ApplePay/WebPaymentCoordinator.h:

The showPaymentUI message and client functions now return booleans.

2:04 PM Changeset in webkit [203083] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Crash when backspacing in number field with spin button
https://bugs.webkit.org/show_bug.cgi?id=157830

Reviewed by Chris Fleizach.

Source/WebCore:

It's possible to access spin button parts after they've been detached from their parent, which can lead to crashes.
This adds in a number of redundant safeguards to prevent this and other cases in the future.

Test: accessibility/spinbutton-crash.html

  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
(WebCore::AccessibilitySpinButton::addChildren):

LayoutTests:

  • accessibility/spinbutton-crash-expected.txt: Added.
  • accessibility/spinbutton-crash.html: Added.
1:53 PM Changeset in webkit [203082] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Possible null dereference under EventHandler::dispatchMouseEvent()
https://bugs.webkit.org/show_bug.cgi?id=159632
<rdar://problem/27247619>

Reviewed by Andreas Kling.

FrameSelection::toNormalizedRange() can return null even when FrameSelection::isRange()
returns true so add a null check.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

1:48 PM Changeset in webkit [203081] by mark.lam@apple.com
  • 33 edits
    3 moves in trunk/Source/JavaScriptCore

Refactor JSStack to only be the stack data structure for the C Loop.
https://bugs.webkit.org/show_bug.cgi?id=159545

Reviewed by Geoffrey Garen.

Changes made:

  1. Renamed JSStack to CLoopStack.
  2. Made all of CLoopStack code to conditional on #if !ENABLE(JIT) i.e. they will only be in effect for the C Loop build.
  3. Changed clients of JSStack to use new equivalent VM APIs:
    1. JSStack::ensureCapacityFor() => VM::ensureStackCapacityFor()
    2. JSStack::committedByteCount() => VM::committedStackByteCount()
  4. Made VM::updateReservedZoneSize() call CLoopStack::setReservedZoneSize() instead of calling it from all the clients of VM::updateReservedZoneSize().
  5. Removed all unnecessary references to JSStack.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MaxFrameExtentForSlowPathCall.h:
  • bytecode/BytecodeConventions.h:
  • dfg/DFGGraph.h:
  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::willStartIterating):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::stack): Deleted.

  • heap/Heap.h:
  • interpreter/CLoopStack.cpp: Copied from Source/JavaScriptCore/interpreter/JSStack.cpp.

(JSC::commitSize):
(JSC::CLoopStack::CLoopStack):
(JSC::CLoopStack::~CLoopStack):
(JSC::CLoopStack::grow):
(JSC::CLoopStack::gatherConservativeRoots):
(JSC::CLoopStack::sanitizeStack):
(JSC::CLoopStack::releaseExcessCapacity):
(JSC::CLoopStack::addToCommittedByteCount):
(JSC::CLoopStack::setReservedZoneSize):
(JSC::CLoopStack::committedByteCount):
(JSC::JSStack::JSStack): Deleted.
(JSC::JSStack::~JSStack): Deleted.
(JSC::JSStack::growSlowCase): Deleted.
(JSC::JSStack::gatherConservativeRoots): Deleted.
(JSC::JSStack::sanitizeStack): Deleted.
(JSC::JSStack::releaseExcessCapacity): Deleted.
(JSC::JSStack::addToCommittedByteCount): Deleted.
(JSC::JSStack::setReservedZoneSize): Deleted.
(JSC::JSStack::lowAddress): Deleted.
(JSC::JSStack::highAddress): Deleted.
(JSC::JSStack::committedByteCount): Deleted.

  • interpreter/CLoopStack.h: Copied from Source/JavaScriptCore/interpreter/JSStack.h.

(JSC::CLoopStack::containsAddress):
(JSC::CLoopStack::lowAddress):
(JSC::CLoopStack::highAddress):
(JSC::CLoopStack::reservationTop):
(JSC::JSStack::containsAddress): Deleted.
(JSC::JSStack::lowAddress): Deleted.
(JSC::JSStack::highAddress): Deleted.
(JSC::JSStack::reservationTop): Deleted.

  • interpreter/CLoopStackInlines.h: Copied from Source/JavaScriptCore/interpreter/JSStackInlines.h.

(JSC::CLoopStack::ensureCapacityFor):
(JSC::CLoopStack::topOfFrameFor):
(JSC::CLoopStack::topOfStack):
(JSC::CLoopStack::shrink):
(JSC::CLoopStack::setCLoopStackLimit):
(JSC::JSStack::ensureCapacityFor): Deleted.
(JSC::JSStack::topOfFrameFor): Deleted.
(JSC::JSStack::topOfStack): Deleted.
(JSC::JSStack::shrink): Deleted.
(JSC::JSStack::grow): Deleted.
(JSC::JSStack::setCLoopStackLimit): Deleted.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::unsafeCallSiteIndex):
(JSC::CallFrame::currentVPC):
(JSC::CallFrame::stack): Deleted.

  • interpreter/CallFrame.h:

(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):
(JSC::sizeFrameForForwardArguments):
(JSC::sizeFrameForVarargs):
(JSC::Interpreter::Interpreter):

  • interpreter/Interpreter.h:

(JSC::Interpreter::cloopStack):
(JSC::Interpreter::getOpcode):
(JSC::Interpreter::isCallBytecode):
(JSC::Interpreter::stack): Deleted.

  • interpreter/JSStack.cpp: Removed.
  • interpreter/JSStack.h: Removed.
  • interpreter/JSStackInlines.h: Removed.
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::dump):

  • jit/JIT.h:
  • jit/JITOperations.cpp:
  • jit/JSInterfaceJIT.h:
  • jit/SpecializedThunkJIT.h:
  • jit/ThunkGenerators.cpp:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::llint_stack_check_at_vm_entry):

  • llint/LLIntThunks.cpp:
  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/ErrorHandlingScope.cpp:

(JSC::ErrorHandlingScope::ErrorHandlingScope):
(JSC::ErrorHandlingScope::~ErrorHandlingScope):

  • runtime/JSGlobalObject.h:
  • runtime/MemoryStatistics.cpp:

(JSC::globalMemoryStatistics):

  • runtime/StackAlignment.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::updateReservedZoneSize):
(JSC::sanitizeStackForVM):
(JSC::VM::committedStackByteCount):

  • runtime/VM.h:

(JSC::VM::reservedZoneSize):
(JSC::VM::osStackLimitWithReserve):
(JSC::VM::addressOfOSStackLimitWithReserve):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):
(JSC::VM::shouldTriggerTermination):

1:22 PM Changeset in webkit [203080] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Transition and Animation sections in Visual Styles sidebar should have more spacing to their left
https://bugs.webkit.org/show_bug.cgi?id=159633
<rdar://problem/27281805>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.visual-style-property-container.animation):

1:11 PM Changeset in webkit [203079] by Ryan Haddad
  • 9 edits in trunk/Source

Unreviewed, rolling out r203064.
https://bugs.webkit.org/show_bug.cgi?id=159642

This change causes LayoutTest crashes on WK1 ASan (Requested
by ryanhaddad on #webkit).

Reverted changeset:

"Use refs for ResourceLoaders"
https://bugs.webkit.org/show_bug.cgi?id=159592
http://trac.webkit.org/changeset/203064

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-11

12:50 PM Changeset in webkit [203078] by mmaxfield@apple.com
  • 7 edits in trunk

Implement grapheme cluster iterator on StringView
https://bugs.webkit.org/show_bug.cgi?id=159598

Reviewed by Anders Carlsson.

This is in preparation for honoring the second argument to FontFaceSet.load().

Source/WTF:

  • wtf/text/StringView.cpp:

(WTF::StringView::GraphemeClusters::Iterator::Impl::Impl):
(WTF::StringView::GraphemeClusters::Iterator::Impl::operator++):
(WTF::StringView::GraphemeClusters::Iterator::Impl::operator*):
(WTF::StringView::GraphemeClusters::Iterator::Impl::operator==):
(WTF::StringView::GraphemeClusters::Iterator::Impl::computeIndexEnd):
(WTF::StringView::GraphemeClusters::Iterator::Iterator):
(WTF::StringView::GraphemeClusters::Iterator::~Iterator):
(WTF::StringView::GraphemeClusters::Iterator::operator*):
(WTF::StringView::GraphemeClusters::Iterator::operator==):
(WTF::StringView::GraphemeClusters::Iterator::operator!=):

  • wtf/text/StringView.h:

(WTF::StringView::GraphemeClusters::GraphemeClusters):

  • text/TextBreakIterator.cpp:

(WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator):

  • text/TextBreakIterator.h:

Tools:

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::compareLoopIterations):
(TestWebKitAPI::TEST):

12:43 PM Changeset in webkit [203077] by Brent Fulgham
  • 3 edits
    2 adds in trunk

[WebGL] Check for existing buffer exists for enabled vertex array attributes before permitting glDrawArrays to execute
https://bugs.webkit.org/show_bug.cgi?id=159590
<rdar://problem/26865535>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/webgl-drawarrays-crash-2.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateVertexAttributes): If enabled array buffer attributes exist,
ensure that an array buffer has been bound.

LayoutTests:

  • fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt: Added.
  • fast/canvas/webgl/webgl-drawarrays-crash-2.html: Added.
12:13 PM Changeset in webkit [203076] by keith_miller@apple.com
  • 10 edits
    3 adds in trunk

STP TypedArray.subarray 5x slowdown compared to 9.1
https://bugs.webkit.org/show_bug.cgi?id=156404
Source/JavaScriptCore:

<rdar://problem/26493032>

Reviewed by Geoffrey Garen.

This patch moves the species constructor work for
%TypedArray%.prototype.subarray to a js wrapper. By moving the
species constructor work to JS we are able to completely optimize
it out in DFG. The actual work of creating a TypedArray is still
done in C++ since we are able to avoid calling into the
constructor, which is expensive. This patch also changes the error
message when a %TypedArray%.prototype function is passed a non-typed
array this value. Finally, we used to check that the this value
had not been detached, however, this behavior was incorrect.

  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArraySpeciesConstructor):
(subarray):

  • runtime/ConstructData.cpp:

(JSC::construct):

  • runtime/ConstructData.h:
  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
(JSC::genericTypedArrayViewProtoFuncSubarray): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewPrivateFuncLength):
(JSC::typedArrayViewPrivateFuncSubarrayCreate):
(JSC::JSTypedArrayViewPrototype::finishCreation):
(JSC::typedArrayViewProtoFuncSubarray): Deleted.

  • runtime/JSTypedArrayViewPrototype.h:

LayoutTests:

Reviewed by Geoffrey Garen.

Add new micro-benchmark for testing subarray performance with small subarray sizes.

  • js/regress/script-tests/typed-array-subarray.js: Added.

(createManySubs):
(go):

  • js/regress/typed-array-subarray-expected.txt: Added.
  • js/regress/typed-array-subarray.html: Added.
12:08 PM Changeset in webkit [203075] by n_wang@apple.com
  • 33 edits in trunk

AX: WKWebView should have API to prevent pinch-to-zoom always being allowed
https://bugs.webkit.org/show_bug.cgi?id=158364

Reviewed by Anders Carlsson.

Source/WebCore:

Removed the internals settings for viewport force always user scalable.

Changes are covered in modified tests.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::Internals):
(WebCore::Internals::composedTreeAsText):
(WebCore::Internals::setLinkPreloadSupport):
(WebCore::Internals::setViewportForceAlwaysUserScalable): Deleted.

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

Source/WebKit2:

Added a property in WKWebViewConfiguration so that developers can toggle the ignoring
viewport scale limits setting.

Changes are covered in modified tests.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetResourceCachingDisabled):
(WKPageSetIgnoresViewportScaleLimits):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(shouldAllowPictureInPictureMediaPlayback):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _navigationGestureDidEnd]):
(forceAlwaysUserScalableChangedCallback): Deleted.
(-[WKWebView _updateForceAlwaysUserScalable]): Deleted.

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

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPageProxy::setForceAlwaysUserScalable):
(WebKit::WebPageProxy::setMaximumUnobscuredSize):
(WebKit::WebPageProxy::updateForceAlwaysUserScalable): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::disableInspectorNodeSearch):
(WebKit::WebPage::setForceAlwaysUserScalable):
(WebKit::innerFrameQuad):
(WebKit::WebPage::updateForceAlwaysUserScalable): Deleted.

Tools:

Added a function in TestRunner so that we can toggle the ignoring viewport
scale limits setting. Also added a test option for that in order to change the
configuration of the webview in test.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setNavigationGesturesEnabled):
(WTR::TestRunner::setIgnoresViewportScaleLimits):
(WTR::nextUIScriptCallbackID):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::shouldDecideNavigationPolicyAfterDelay):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
(WTR::TestController::setNavigationGesturesEnabled):
(WTR::TestController::setIgnoresViewportScaleLimits):
(WTR::TestController::platformWillRunTest):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setShouldDecideNavigationPolicyAfterDelay):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/TestOptions.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

  • fast/viewport/ios/force-always-user-scalable.html:
  • fast/viewport/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale.html:
  • fast/viewport/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale.html:
11:51 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
11:46 AM Changeset in webkit [203074] by fred.wang@free.fr
  • 14 edits
    22 adds in trunk

Use parameters from the OpenType MATH table for <munderover>
https://bugs.webkit.org/show_bug.cgi?id=155756

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11
Reviewed by Brent Fulgham.

Source/WebCore:

We follow the description from the MathML in HTML5 implementation
to improve the layout of <munderover> using some constants from the MATH table.

Tests: imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1.html

imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2.html
imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3.html
imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4.html
mathml/presentation/attributes-accent-accentunder-dynamic.html

  • mathml/mathattrs.in: Add accentunder attribute.
  • rendering/mathml/MathMLOperatorDictionary.h: Remove FIXME comment.
  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::hasAccent): Helper function to determine whether
the over/under script should be treated as an accent.
(WebCore::RenderMathMLUnderOver::getVerticalParameters): Helper function to read
some vertical parameters from the MATH table.
(WebCore::RenderMathMLUnderOver::layoutBlock): Take into account the new vertical
parameters for the layout of <munderover>.

  • rendering/mathml/RenderMathMLUnderOver.h: Define new helper functions.

LayoutTests:

Import some tests from the MathML in HTML5 test suite to verify
the layout of the <munderover> element. We also write a test to
verify dynamic change of accent/accentunder attributes and adjust
other tests.

  • imported/mathml-in-html5/fonts/math/limits-lowerlimitbaselinedropmin3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/limits-lowerlimitgapmin11000.woff: Added.
  • imported/mathml-in-html5/fonts/math/limits-upperlimitbaselinerisemin5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/limits-upperlimitgapmin7000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-bottomshiftdown3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-gapabovemin7000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-gapbelowmin11000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-topshiftup5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4.html: Added.
  • mathml/presentation/attributes-accent-accentunder-dynamic.html: Added.

Test dynamic changes of accent and accentunder.

  • mathml/presentation/attributes-accent-accentunder-dynamic-expected.html: Added.
  • mathml/presentation/scripts-underover.html: Remove one of the test since munderover

with an empty script is no longer equivalent to munder or mover.

  • mathml/presentation/scripts-underover-expected.html: Ditto.
  • platform/gtk/mathml/opentype/horizontal-expected.png: Updated due to change in

vertical metrics of scripts.

  • platform/gtk/mathml/opentype/horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.png: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.txt: Udapted due to script baseline fix.
  • platform/gtk/mathml/presentation/roots-expected.png: ditto.
  • mathml/presentation/underover-nonstretchy-or-vertical.html: Prevent the <mo> to be treated

as an accent so that we always get the same spacing as the reference. We also use the Ahem
font to make the result more reliable.

11:42 AM Changeset in webkit [203073] by fred.wang@free.fr
  • 4 edits
    9 adds in trunk

Use Stack* parameters from the OpenType MATH table
https://bugs.webkit.org/show_bug.cgi?id=155714

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11
Reviewed by Brent Fulgham.

Source/WebCore:

Test: mathml/mathml-in-html5/frac-parameters-2.html

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateFromElement): Set the stack parameters when
the line thickness is zero.
(WebCore::RenderMathMLFraction::layoutBlock): Correctly set the <mfrac> ascent and
the denominator vertical offset when the line thickness is zero.
(WebCore::RenderMathMLFraction::paint): Early return when we actually do not need to
paint any fraction bar.

  • rendering/mathml/RenderMathMLFraction.h: Define an isStack helper function and define

members corresponding to stack parameters.

LayoutTests:

We import a test from the MathML in HTML5 test suite to verify Stack* parameters.

  • imported/mathml-in-html5/fonts/math/stack-axisheight7000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-bottomshiftdown6000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-displaystylegapmin4000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-gapmin8000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-topdisplaystyleshiftup3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-topshiftup9000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-2.html: Added.
11:38 AM Changeset in webkit [203072] by fred.wang@free.fr
  • 12 edits
    11 adds in trunk

Add support for mathvariants that cannot be emulated via CSS.
https://bugs.webkit.org/show_bug.cgi?id=108778

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: mathml/mathml-in-html5/mathvariant-transforms-1.html

mathml/mathml-in-html5/mathvariant-transforms-2.html
mathml/presentation/mathvariant-inheritance.html
mathml/presentation/mathvariant-tokens.html

We remove the old code to emulate partial mathvariant support via CSS and add support
for all mathvariant values using the technique used for implicit italic on <mi> element.
We also rely on the MathMLStyle class introduced earlier to support custome MathML style
and manage inheritance of mathvariant values.
The function that tries and converts one base character into a transformed mathvariant
character is based on similar code from Gecko:
http://hg.mozilla.org/mozilla-central/file/tip/layout/generic/MathMLTextRunFactory.cpp
Note that we only support transform on token elements with a single character, which
should cover the most important use cases.

  • css/mathml.css: Remove the CSS rules to emulate some mathvariant values.

(math[mathvariant="normal"], mstyle[mathvariant="normal"], mo[mathvariant="normal"], mn[mathvariant="normal"], mi[mathvariant="normal"], mtext[mathvariant="normal"], mspace[mathvariant="normal"], ms[mathvariant="normal"]): Deleted.
(math[mathvariant="bold"], mstyle[mathvariant="bold"], mo[mathvariant="bold"], mn[mathvariant="bold"], mi[mathvariant="bold"], mtext[mathvariant="bold"], mspace[mathvariant="bold"], ms[mathvariant="bold"]): Deleted.
(math[mathvariant="italic"], mstyle[mathvariant="italic"], mo[mathvariant="italic"], mn[mathvariant="italic"], mi[mathvariant="italic"], mtext[mathvariant="italic"], mspace[mathvariant="italic"], ms[mathvariant="italic"]): Deleted.
(math[mathvariant="bold-italic"], mstyle[mathvariant="bold-italic"], mo[mathvariant="bold-italic"], mn[mathvariant="bold-italic"], mi[mathvariant="bold-italic"], mtext[mathvariant="bold-italic"], mspace[mathvariant="bold-italic"], ms[mathvariant="bold-italic"]): Deleted.

  • mathml/MathMLInlineContainerElement.cpp: We resolve mathml style when mathvariant changes.

(WebCore::MathMLInlineContainerElement::parseAttribute):

  • mathml/MathMLMathElement.cpp: ditto.

(WebCore::MathMLMathElement::parseAttribute):

  • mathml/MathMLTextElement.cpp: ditto.

(WebCore::MathMLTextElement::parseAttribute):

  • rendering/mathml/MathMLStyle.cpp: Add mathvariant property to the MathML style.

(WebCore::MathMLStyle::MathMLStyle): Init mathvariant to none.
(WebCore::MathMLStyle::getMathMLStyle): Helper function to retrieve the MathML style on a renderer.
(WebCore::MathMLStyle::updateStyleIfNeeded): Take into account change of mathvariant.
(WebCore::MathMLStyle::parseMathVariant): Helper function to parse a mathvariant attribute.
(WebCore::MathMLStyle::resolveMathMLStyle): Take into account mathvariant value: it is None
by default, inherited and can be modified via an attribute on <math>, <mstyle> or token
elements. We also refactor a bit to share logic between displaystyle and mathvariant.
(WebCore::MathMLStyle::setDisplayStyle): Deleted.

  • rendering/mathml/MathMLStyle.h: Add mathvariant members and update declarations.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::updateTokenContent): Call the function from the parent class
to consider mathvariant on <mo>.

  • rendering/mathml/RenderMathMLToken.cpp:

We implement a mathVariant function to transform a base character into its transformed mathvariant:

  • There are some regularity that allows to perform this via simple linear transforms.
  • However, there are also many exceptions and we rely on some sorted MathVariantMapping

tables to handle these cases.
(WebCore::ExtractKey): Helper function to perform binary searches on MathVariant tables.
(WebCore::MathVariantMappingSearch): ditto.
(WebCore::mathVariant): New function to perform mathvariant transforms.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Use the mathVariant function to
perform all transformations, not just the italic one.
(WebCore::transformToItalic): Deleted. Replaced with the more general mathVariant function.

LayoutTests:

Import a test from the MathML in HTML5 test suite to perform an exhaustive
verification of all the mathvariant transforms allowed.
We also add some tests to verify inheritance of the mathvariant style, the
effect on each token element and dynamic modification of mathvariant.
Finally, we modify one test now that mathvariant is no longer emulated via CSS.

  • mathml/mathml-in-html5/fonts/mathvariant-transforms.woff: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-1-expected.html: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-1.html: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-2-expected.html: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-2.html: Added.
  • mathml/presentation/attributes-mathvariant-expected.html: Update this test now that

mathvariant is correctly implemented using character transforms.

  • mathml/presentation/mathvariant-inheritance-expected.html: Added.
  • mathml/presentation/mathvariant-inheritance.html: Added.
  • mathml/presentation/mathvariant-tokens-expected.html: Added.
  • mathml/presentation/mathvariant-tokens.html: Added.
  • mathml/presentation/mathvariant-dynamic.html: Added.
  • mathml/presentation/mathvariant-dynamic-expected.html: Added.
11:31 AM Changeset in webkit [203071] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/controls/inline-elements-dropoff-order.html as failing on El Capitan
https://bugs.webkit.org/show_bug.cgi?id=151287

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:08 AM Changeset in webkit [203070] by Konstantin Tokarev
  • 2 edits in trunk/Tools

[GTK] install-dependencies should not install packages built by jhbuild.
https://bugs.webkit.org/show_bug.cgi?id=159628

Reviewed by Michael Catanzaro.

  • gtk/install-dependencies:

Don't install icu, harfbuzz, orc, llvm, freetype, fontconfig.

11:05 AM Changeset in webkit [203069] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

System proxy settings not used when building deps with jhbuild
https://bugs.webkit.org/show_bug.cgi?id=159567

Patch by Olivier Blin <Olivier Blin> on 2016-07-11
Reviewed by Michael Catanzaro.

This adds the gsettings-desktop-schemas-devel build dep to enable
the libgiognomeproxy.so gio module in glib-networking, which uses
GSettings on org.gnome.system.proxy.
This is needed to query system proxy settings for Gnome desktops.

dconf can be manually added to jhbuild to build the
libdconfsettings.so gio module for GSettings, so that
libgiognomeproxy.so can access system settings.

https://trac.webkit.org/wiki/WebKitGTK/StartHacking#Workingbehindaproxy

As an alternative to dconf settings, this commit also adds the
libproxy-devel build dep to enable the libgiolibproxy.so module in
glib-networking (suggested by Fujii Hironori).

It is useful to read proxy settings from environment variables.
From a Gnome desktop, one may unset the GNOME_DESKTOP_SESSION_ID
environment variable to force using the envvar module in libproxy.

  • gtk/install-dependencies:
10:46 AM Changeset in webkit [203068] by eric.carlson@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test for media control dropoff
https://bugs.webkit.org/show_bug.cgi?id=151287
<rdar://problem/23544666>

Unreviewed El Capitan-specific test results after r203057.

  • platform/mac-elcapitan/media/controls: Added.
  • platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • platform/mac-yosemite/media/controls: Added.
10:04 AM Changeset in webkit [203067] by mark.lam@apple.com
  • 6 edits in trunk

Change run-webkit-tests.py and run-jsc-stress-tests to use a smaller JS stack size for testing.
https://bugs.webkit.org/show_bug.cgi?id=159524

Reviewed by Michael Saboff.

Tools:

Forced tests to run with only a 1.5M JS stack size instead of the default 4M.
Also fixed up some tests to behave better to work with this new limit. This
should make stack overflow tests complete sooner.

  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main):

LayoutTests:

  • js/dom/deep-recursion-test.html:
  • js/script-tests/stack-overflow-arrity-catch.js:

(funcWith20Args):

9:33 AM Changeset in webkit [203066] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Pause small video elements when returning to inline.
https://bugs.webkit.org/show_bug.cgi?id=159535

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-11
Reviewed by Jer Noble.

Will add a test in a later commit.

When exiting fullscreen, don't allow playback to continue inline if video is too small.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isVideoTooSmallForInlinePlayback): Added.
(WebCore::HTMLMediaElement::exitFullscreen): Pause if video is too small.

  • html/HTMLMediaElement.h:
9:26 AM Changeset in webkit [203065] by nael.ouedraogo@crf.canon.fr
  • 12 edits in trunk/Source/WebCore

toNative functions in JSDOMBinding.h should take an ExecState reference instead of pointer
https://bugs.webkit.org/show_bug.cgi?id=159298

Reviewed by Youenn Fablet.

Pass ExecState by reference instead of pointer.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyPathFromValue):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSDOMBinding.h: Pass ExecState by reference instead of pointer.

(WebCore::toJSSequence):
(WebCore::NativeValueTraits<String>::nativeValue):
(WebCore::NativeValueTraits<unsigned>::nativeValue):
(WebCore::NativeValueTraits<float>::nativeValue):
(WebCore::NativeValueTraits<double>::nativeValue):
(WebCore::toNativeArray):
(WebCore::toNativeArguments):

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<Vector<T>>::convert):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::fillMessagePortArray):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(JSValueToNative):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArray):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArrayIsEmpty):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence2):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors5):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):

9:01 AM Changeset in webkit [203064] by achristensen@apple.com
  • 9 edits in trunk/Source

Use refs for ResourceLoaders
https://bugs.webkit.org/show_bug.cgi?id=159592

Reviewed by Chris Dumez.

Source/WebCore:

No new tests. No change in behavior except a fixed memory leak in WebKit1.

  • loader/LoaderStrategy.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::finishNetworkLoad):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::frameLoader):
(WebCore::ResourceLoader::willSwitchToSubstituteResource):
(WebCore::ResourceLoader::willSendRequestInternal):

Source/WebKit:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(webResourceLoadScheduler):
(WebResourceLoadScheduler::hostForURL):
(WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebResourceLoadScheduler::loadResource):
(WebResourceLoadScheduler::schedulePluginStreamLoad):
(WebResourceLoadScheduler::scheduleLoad):
(WebResourceLoadScheduler::remove):
(WebResourceLoadScheduler::setDefersLoading):
(WebResourceLoadScheduler::crossOriginRedirectReceived):
(WebResourceLoadScheduler::servePendingRequests):
(WebResourceLoadScheduler::resumePendingRequests):
(WebResourceLoadScheduler::HostInformation::priorityToIndex):
(WebResourceLoadScheduler::HostInformation::schedule):
(WebResourceLoadScheduler::HostInformation::addLoadInProgress):
(WebResourceLoadScheduler::HostInformation::remove):

  • WebCoreSupport/WebResourceLoadScheduler.h:

(WebResourceLoadScheduler::HostInformation::name):
(WebResourceLoadScheduler::HostInformation::requestsPending):
m_nonHTTPProtocolHost used to be a leaked pointer, and now it's a member variable.

Source/WebKit2:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::crossOriginRedirectReceived):

  • WebProcess/Network/WebLoaderStrategy.h:
8:55 AM Changeset in webkit [203063] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Whitespace fixes in install-dependencies script

Unreviewed.

  • gtk/install-dependencies:
8:54 AM Changeset in webkit [203062] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Install missing Fedora dependencies

Unreviewed.

  • gtk/install-dependencies:
8:25 AM Changeset in webkit [203061] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

Update stable cache version in NetworkCache::Storage::deleteOldVersions()
https://bugs.webkit.org/show_bug.cgi?id=159618
rdar://problem/26715745

Reviewed by Chris Dumez.

NetworkCache::Storage::deleteOldVersions() keeps the previous shipped cache version (4) for Mac around so
development WebKit doesn’t clobber system Safari cache. Update this to the current version so old caches
go away in customer systems.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::deleteOldVersions):

  • NetworkProcess/cache/NetworkCacheStorage.h:

Move lastStableVersion to header next to the current version.

8:08 AM Changeset in webkit [203060] by commit-queue@webkit.org
  • 6 edits in trunk

Using dpi unit in sizes attribute raises SIGSEGV
https://bugs.webkit.org/show_bug.cgi?id=159412

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-11
Reviewed by Darin Adler.

Source/WebCore:

CSSParser::sourceSize returns a invalid CSSParser::SourceSize
whose length is a null value for a dpi unit value. Because
CSSParserValue::createCSSValue returns null for a dpi value.

Tests:

fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize): Create a CSSPrimitiveValue of
CSS_UNKNOWN if CSSParserValue::createCSSValue returns null.

LayoutTests:

  • TestExpectations: Unskip fast/dom/HTMLImageElement/sizes.
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt: Updated.
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html: Added a dpi unit test case.

Renumbering element IDs.

7:52 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:44 AM Changeset in webkit [203059] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Red and blue colors are swapped in video rendered through WebGL when GSTREAMER_GL is enabled
https://bugs.webkit.org/show_bug.cgi?id=159621

Patch by Olivier Blin <Olivier Blin> on 2016-07-11
Reviewed by Philippe Normand.

When a video is rendered through WebGL, and GSTREAMER_GL is enabled, red and blue colors are swapped.
This occurs for example with the following videos:
http://www.scirra.com/labs/bugs/webglvideo/
http://www.dailymotion.com/embed/video/x4jiicp?autoplay=1

This is because ImageGStreamerCairo expects video frames in either
BGRA or ARGB, while when GSTREAMER_GL is enabled,
createVideoSinkGL() forces a RGBA format.

Without GSTREAMER_GL, the rendering is fine since
VideoSinkGStreamer uses either BGRA or ARGB.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):

7:41 AM Changeset in webkit [203058] by Philippe Normand
  • 7 edits in trunk/Source/WebCore

[GStreamer] remove WEBKIT_DEBUG support
https://bugs.webkit.org/show_bug.cgi?id=159553

Reviewed by Xabier Rodriguez-Calvar.

Remove the *_MEDIA_MESSAGE macros specific to the GStreamer
platform code and replace them with standard GST_DEBUG macros. In
Debug builds the WEBKIT_DEBUG=Media logs now only contain logs
related with the cross-platform Media element code. If GStreamer
logs are needed, the GST_DEBUG=webkit*:5 environment variable can
be used.

  • platform/graphics/gstreamer/GStreamerUtilities.h:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfStreamChanged):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::duration):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::paused):
(WebCore::MediaPlayerPrivateGStreamer::newTextSample):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
(WebCore::MediaPlayerPrivateGStreamer::totalBytes):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::setVolume):
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:

(WebCore::MediaPlayerPrivateGStreamerOwr::~MediaPlayerPrivateGStreamerOwr):
(WebCore::MediaPlayerPrivateGStreamerOwr::play):
(WebCore::MediaPlayerPrivateGStreamerOwr::pause):
(WebCore::MediaPlayerPrivateGStreamerOwr::currentTime):
(WebCore::MediaPlayerPrivateGStreamerOwr::load):
(WebCore::MediaPlayerPrivateGStreamerOwr::internalLoad):
(WebCore::MediaPlayerPrivateGStreamerOwr::stop):
(WebCore::MediaPlayerPrivateGStreamerOwr::createGSTAudioSinkBin):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackMutedChanged):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackSettingsChanged):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
(WebCore::TrackPrivateBaseGStreamer::getTag):

7:37 AM Changeset in webkit [203057] by eric.carlson@apple.com
  • 6 edits
    4 adds in trunk

Add a test for media control dropoff
https://bugs.webkit.org/show_bug.cgi?id=151287
<rdar://problem/23544666>

Reviewed by Antoine Quint.

Source/WebCore:

Test: media/controls/inline-elements-dropoff-order.html

  • Modules/mediacontrols/mediaControlsApple.js: Expose more state to testing.
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setAllowsAirPlayForMediaPlayback): Renamed from setWirelessPlaybackDisabled.
(WebCore::InternalSettings::setWirelessPlaybackDisabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

  • media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • media/controls/inline-elements-dropoff-order.html: Added.
  • platform/mac-yosemite/media/controls: Added.
  • platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • platform/mac-elcapitan/media/controls: Added.
  • platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.
7:35 AM Changeset in webkit [203056] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer][GL] crash within triggerRepaint
https://bugs.webkit.org/show_bug.cgi?id=159552

Reviewed by Xabier Rodriguez-Calvar.

Ensure the sizeChanged notification is emitted from the main
thread. When GStreamer-GL rendering is enabled the appsink draw
callbacks are fired in a non-main thread.

The WeakPtr support was moved to the player base class so that it
can be used there as well as in the MediaPlayerPrivateGStreamer
sub-class.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::createWeakPtr): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

(WebCore::MediaPlayerPrivateGStreamerBase::createWeakPtr):

2:47 AM Changeset in webkit [203055] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Update expectations for some MathML pixel tests on Windows.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11

  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/presentation/roots-expected.txt:
  • platform/win/mathml/radical-fallback-expected.txt:
2:43 AM Changeset in webkit [203054] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Update expectations for some MathML pixel tests on EFL.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-11

  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/efl/mathml/presentation/roots-expected.txt:
  • platform/efl/mathml/radical-fallback-expected.txt:
2:28 AM Changeset in webkit [203053] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r202992): JSC varargs tests are broken
https://bugs.webkit.org/show_bug.cgi?id=159616

Reviewed by Csaba Osztrogonác.

The substitution miss in r202992 causes varargs tests failures in GTK port.

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

12:42 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:26 AM Changeset in webkit [203052] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Promise.{all,race} no longer use @@species
https://bugs.webkit.org/show_bug.cgi?id=159615

Reviewed by Keith Miller.

As per the latest ES draft, Promise.{all,race} no longer use @@species.
So, this patch drops FIXMEs.

  • builtins/PromiseConstructor.js:

(all):
(race):

  • tests/stress/ignore-promise-species.js: Added.

(shouldBe):
(DerivedPromise.prototype.get Symbol):
(DerivedPromise):

Jul 10, 2016:

11:09 PM Changeset in webkit [203051] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

11:05 PM Changeset in webkit [203050] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.4

New tag.

11:03 PM Changeset in webkit [203049] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.40-branch/Source/WebKit2

Merged r203044. rdar://problem/27268111

11:01 PM Changeset in webkit [203048] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

10:06 PM Changeset in webkit [203047] by Chris Dumez
  • 14 edits
    4 adds in trunk

Setting document.title reuses <title>'s textnode child
https://bugs.webkit.org/show_bug.cgi?id=28864
<rdar://problem/7186473>

Reviewed by Benjamin Poulain.

Source/WebCore:

Setting document.title should be equivalent to setting the 'textContent'
IDL attribute of the <title> element:

In particular, this means we should always create a new Text node and
replace all the <title>'s children with this new Node, as per:

Previously, WebKit would in some cases reuse the existing <title>'s
Text node and merely update its data.

Firefox and Chrome behave as per the specification so this aligns our
behavior with other major browsers as well.

Test: fast/dom/title-setter-new-text-node.html

  • dom/Document.cpp:

(WebCore::Document::setTitle):

  • Call Node::setTextContent() instead of HTMLTitleElement::setText(), as per the specification.
  • Take an ExceptionCode parameter and pass it to Node::setTextContent() as it may throw.
  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::setText):
Update implementation of HTMLTitleElement::setText() to call
setTextContent() as per the specification:

  • html/HTMLTitleElement.h:
  • html/HTMLTitleElement.idl:
  • html/ImageDocument.cpp:

(WebCore::ImageDocument::finishedParsing):

  • svg/SVGTitleElement.cpp:
  • svg/SVGTitleElement.h:

Drop setText() setter which was duplicated from HTMLTitleElement::setText()
now that Document::setTitle() calls SVGTitleElement::setTextContent()
instead.

LayoutTests:

  • fast/dom/title-setter-new-text-node-expected.txt: Added.
  • fast/dom/title-setter-new-text-node.html: Added.

Add test coverage.

  • fast/dom/title-text-property-2-expected.txt:
  • fast/dom/title-text-property-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-title-expected.txt:

Rebaseline a few tests now that we do not reuse the <title>'s text
node child.

9:28 PM Changeset in webkit [203046] by commit-queue@webkit.org
  • 7 edits
    3 deletes in trunk

Unreviewed, rolling out r203037.
https://bugs.webkit.org/show_bug.cgi?id=159614

The JSC tests are breaking in elcapitan-debug-tests-jsc and
elcapitan-release-tests-jsc (Requested by caiolima on
#webkit).

Reverted changeset:

"ECMAScript 2016: %TypedArray%.prototype.includes
implementation"
https://bugs.webkit.org/show_bug.cgi?id=159385
http://trac.webkit.org/changeset/203037

8:58 PM Changeset in webkit [203045] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Fix LogicalSelectionOffsetCaches to work with detached render tree.
https://bugs.webkit.org/show_bug.cgi?id=159605
<rdar://problem/27248845>

Reviewed by Brent Fulgham.

Source/WebCore:

When the renderer that is being destroyed is on a selection boundary,
we need to ensure that all its cached pointers across the selection code (e.g. SelectionSubtreeData)
are getting reset. In order to do that, we call clearSelection() on the RenderView.
One of the last steps of clearing selection is to collect the selection gaps. Selection gaps uses this
LogicalSelectionOffsetCaches helper class to collect selection information across blocks.
LogicalSelectionOffsetCaches normally operates on rooted renderers. However we need to ensure sure that
it can also handle renderers that are no longer part of the render tree.

Test: fast/text/selection-on-a-detached-tree.html

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalLeftSelectionOffset):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalRightSelectionOffset):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::logicalLeftSelectionOffset):
(WebCore::RenderBlock::logicalRightSelectionOffset):

LayoutTests:

  • fast/text/selection-on-a-detached-tree-expected.txt: Added.
  • fast/text/selection-on-a-detached-tree.html: Added.
7:52 PM Changeset in webkit [203044] by Beth Dakin
  • 1 edit
    1 add in trunk/Source/WebKit2

Update mediaIcon.pdf
https://bugs.webkit.org/show_bug.cgi?id=159613
-and corresponding-
rdar://problem/27268111

Reviewed by Sam Weinig.

  • Resources/mediaIcon.pdf: Replaced.
4:28 PM Changeset in webkit [203043] by Chris Dumez
  • 3 edits
    4 adds in trunk

adoptNode() changes css class to lowercase for document loaded with XHR responseType = "document"
https://bugs.webkit.org/show_bug.cgi?id=159555
<rdar://problem/27252541>

Reviewed by Benjamin Poulain.

Source/WebCore:

Follow-up on r203018 which was incomplete. We need to update ElementData's
m_classNames / m_idForStyleResolution when the source document is in strict
mode and the destination document is in quirks mode as well.

Test: fast/dom/Document/adoptNode-quirks-mismatch2.html

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):

LayoutTests:

Add test coverage.

  • fast/dom/Document/adoptNode-quirks-mismatch2-expected.txt: Added.
  • fast/dom/Document/adoptNode-quirks-mismatch2.html: Added.
  • fast/dom/Document/resources/document-noquirks-class.html: Added.
  • fast/dom/Document/resources/document-noquirks-id.html: Added.
2:46 PM Changeset in webkit [203042] by weinig@apple.com
  • 5 edits in trunk/Source/WebCore

Rename isEmojiModifier to isEmojiFitzpatrickModifier to better capture its function
https://bugs.webkit.org/show_bug.cgi?id=159610

Reviewed by Dan Bernstein.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::advanceByCombiningCharacterSequence):
Update for rename.

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):
(WebCore::isEmojiFitzpatrickModifier):
(WebCore::isVariationSelector):
Rename isEmojiModifier -> isEmojiFitzpatrickModifier. Also add some comments
explaining what the characters these predicate act on to demystify them a bit.

  • rendering/RenderText.cpp:

(WebCore::RenderText::previousOffsetForBackwardDeletion):
Update for rename and rename a related variable.

11:50 AM Changeset in webkit [203041] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Add self to WebKit2 Owners
https://bugs.webkit.org/show_bug.cgi?id=159499

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-10
Reviewed by Sam Weinig.

  • Owners:
11:48 AM Changeset in webkit [203040] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Fix client certificate authentication after r200463
https://bugs.webkit.org/show_bug.cgi?id=159574
<rdar://problem/26931006>

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-10
Reviewed by Sam Weinig.

Source/WebCore:

No new tests. We really need a test for this

  • platform/network/cf/CertificateInfo.h:

(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::trust):
Make sure we only get the trust for Trust type CertificateInfos.
If we mix up our types, we get unexpected nullptrs, which will cause authentication to fail.

Source/WebKit2:

  • Shared/Authentication/mac/AuthenticationManager.mac.mm:

(WebKit::leafCertificate):
(WebKit::chain):
Handle the different types of CertificateInfos.

10:53 AM Changeset in webkit [203039] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build after r203038

Unreviewed.

  • platform/text/TextAllInOne.cpp:
10:15 AM Changeset in webkit [203038] by mmaxfield@apple.com
  • 43 edits
    8 copies
    6 moves
    6 adds
    3 deletes in trunk/Source

Move breaking iterator code to WTF
https://bugs.webkit.org/show_bug.cgi?id=159594

Reviewed by Alex Christensen.

This is in preparation for giving StringView a GraphemeClusters iterator.
Such an interator needs to be implemented on top of our breaking iterator
code.

Source/WebCore:

No new tests because there is no behavior change.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:
  • editing/TextCheckingHelper.cpp:
  • editing/TextIterator.cpp:
  • editing/VisibleUnits.cpp:
  • html/HTMLInputElement.cpp:
  • html/HTMLTextAreaElement.cpp:
  • html/InputType.cpp:
  • html/TextFieldInputType.cpp:
  • html/TextInputType.cpp:
  • platform/LocalizedStrings.cpp:
  • platform/graphics/StringTruncator.cpp:
  • platform/graphics/cg/ColorCG.cpp:

(WTF::RetainPtr<CGColorRef>>::createValueForKey):
(WebCore::RetainPtr<CGColorRef>>::createValueForKey): Deleted.

  • platform/graphics/mac/ComplexTextController.cpp:
  • platform/text/LineBreakIteratorPoolICU.h:

(WebCore::LineBreakIteratorPool::LineBreakIteratorPool): Deleted.
(WebCore::LineBreakIteratorPool::sharedPool): Deleted.
(WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword): Deleted.
(WebCore::LineBreakIteratorPool::take): Deleted.
(WebCore::LineBreakIteratorPool::put): Deleted.

  • platform/text/TextBoundaries.cpp:
  • platform/text/TextBreakIterator.cpp:

(WebCore::initializeIterator): Deleted.
(WebCore::initializeIteratorWithRules): Deleted.
(WebCore::setTextForIterator): Deleted.
(WebCore::setContextAwareTextForIterator): Deleted.
(WebCore::wordBreakIterator): Deleted.
(WebCore::sentenceBreakIterator): Deleted.
(WebCore::cursorMovementIterator): Deleted.
(WebCore::acquireLineBreakIterator): Deleted.
(WebCore::releaseLineBreakIterator): Deleted.
(WebCore::mapLineIteratorModeToRules): Deleted.
(WebCore::isCJKLocale): Deleted.
(WebCore::openLineBreakIterator): Deleted.
(WebCore::closeLineBreakIterator): Deleted.
(WebCore::compareAndSwapNonSharedCharacterBreakIterator): Deleted.
(WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Deleted.
(WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Deleted.
(WebCore::textBreakFirst): Deleted.
(WebCore::textBreakLast): Deleted.
(WebCore::textBreakNext): Deleted.
(WebCore::textBreakPrevious): Deleted.
(WebCore::textBreakPreceding): Deleted.
(WebCore::textBreakFollowing): Deleted.
(WebCore::textBreakCurrent): Deleted.
(WebCore::isTextBreak): Deleted.
(WebCore::isWordTextBreak): Deleted.
(WebCore::numGraphemeClusters): Deleted.
(WebCore::numCharactersInGraphemeClusters): Deleted.

  • platform/text/TextBreakIterator.h:

(WebCore::LazyLineBreakIterator::LazyLineBreakIterator): Deleted.
(WebCore::LazyLineBreakIterator::~LazyLineBreakIterator): Deleted.
(WebCore::LazyLineBreakIterator::string): Deleted.
(WebCore::LazyLineBreakIterator::isLooseCJKMode): Deleted.
(WebCore::LazyLineBreakIterator::lastCharacter): Deleted.
(WebCore::LazyLineBreakIterator::secondToLastCharacter): Deleted.
(WebCore::LazyLineBreakIterator::setPriorContext): Deleted.
(WebCore::LazyLineBreakIterator::updatePriorContext): Deleted.
(WebCore::LazyLineBreakIterator::resetPriorContext): Deleted.
(WebCore::LazyLineBreakIterator::priorContextLength): Deleted.
(WebCore::LazyLineBreakIterator::get): Deleted.
(WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator): Deleted.
(WebCore::NonSharedCharacterBreakIterator::operator TextBreakIterator*): Deleted.

  • platform/text/cf/HyphenationCF.cpp:
  • platform/text/efl/TextBreakIteratorInternalICUEfl.cpp:

(WebCore::currentSearchLocaleID): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • platform/text/enchant/TextCheckerEnchant.cpp:
  • platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp:

(WebCore::currentSearchLocaleID): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • platform/text/icu/UTextProvider.cpp:

(WebCore::fixPointer): Deleted.
(WebCore::uTextCloneImpl): Deleted.

  • platform/text/icu/UTextProvider.h:

(WebCore::uTextProviderContext): Deleted.
(WebCore::initializeContextAwareUTextProvider): Deleted.
(WebCore::uTextAccessPinIndex): Deleted.
(WebCore::uTextAccessInChunkOrOutOfRange): Deleted.

  • platform/text/icu/UTextProviderLatin1.cpp:

(WebCore::uTextLatin1Clone): Deleted.
(WebCore::uTextLatin1NativeLength): Deleted.
(WebCore::uTextLatin1Access): Deleted.
(WebCore::uTextLatin1Extract): Deleted.
(WebCore::uTextLatin1MapOffsetToNative): Deleted.
(WebCore::uTextLatin1MapNativeIndexToUTF16): Deleted.
(WebCore::uTextLatin1Close): Deleted.
(WebCore::openLatin1UTextProvider): Deleted.
(WebCore::textLatin1ContextAwareGetCurrentContext): Deleted.
(WebCore::textLatin1ContextAwareMoveInPrimaryContext): Deleted.
(WebCore::textLatin1ContextAwareSwitchToPrimaryContext): Deleted.
(WebCore::textLatin1ContextAwareMoveInPriorContext): Deleted.
(WebCore::textLatin1ContextAwareSwitchToPriorContext): Deleted.
(WebCore::uTextLatin1ContextAwareClone): Deleted.
(WebCore::uTextLatin1ContextAwareNativeLength): Deleted.
(WebCore::uTextLatin1ContextAwareAccess): Deleted.
(WebCore::uTextLatin1ContextAwareExtract): Deleted.
(WebCore::uTextLatin1ContextAwareClose): Deleted.
(WebCore::openLatin1ContextAwareUTextProvider): Deleted.

  • platform/text/icu/UTextProviderUTF16.cpp:

(WebCore::textUTF16ContextAwareGetCurrentContext): Deleted.
(WebCore::textUTF16ContextAwareMoveInPrimaryContext): Deleted.
(WebCore::textUTF16ContextAwareSwitchToPrimaryContext): Deleted.
(WebCore::textUTF16ContextAwareMoveInPriorContext): Deleted.
(WebCore::textUTF16ContextAwareSwitchToPriorContext): Deleted.
(WebCore::uTextUTF16ContextAwareClone): Deleted.
(WebCore::uTextUTF16ContextAwareNativeLength): Deleted.
(WebCore::uTextUTF16ContextAwareAccess): Deleted.
(WebCore::uTextUTF16ContextAwareExtract): Deleted.
(WebCore::uTextUTF16ContextAwareClose): Deleted.
(WebCore::openUTF16ContextAwareUTextProvider): Deleted.

  • platform/text/mac/TextBoundaries.mm:
  • platform/text/mac/TextBreakIteratorInternalICUMac.mm:

(WebCore::textBreakLocalePreference): Deleted.
(WebCore::topLanguagePreference): Deleted.
(WebCore::getLocale): Deleted.
(WebCore::getSearchLocale): Deleted.
(WebCore::currentSearchLocaleID): Deleted.
(WebCore::getTextBreakLocale): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • platform/text/win/TextBreakIteratorInternalICUWin.cpp:

(WebCore::currentSearchLocaleID): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • rendering/RenderBlock.cpp:
  • rendering/RenderText.cpp:
  • rendering/RenderText.h:
  • rendering/SimpleLineLayoutTextFragmentIterator.h:
  • rendering/break_lines.cpp:
  • rendering/break_lines.h:
  • rendering/line/LineBreaker.h:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • icu/unicode/ubrk.h: Added.
  • icu/unicode/utext.h: Renamed from Source/WebCore/icu/unicode/utext.h.
  • wtf/CMakeLists.txt:
  • wtf/PlatformEfl.cmake:
  • wtf/PlatformGTK.cmake:
  • wtf/PlatformMac.cmake:
  • wtf/PlatformWin.cmake:
  • wtf/TinyLRUCache.h:
  • wtf/text/LineBreakIteratorPoolICU.h: Renamed from Source/WebCore/platform/text/LineBreakIteratorPoolICU.h.

(WTF::LineBreakIteratorPool::LineBreakIteratorPool):
(WTF::LineBreakIteratorPool::sharedPool):
(WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
(WTF::LineBreakIteratorPool::take):
(WTF::LineBreakIteratorPool::put):

  • wtf/text/TextBreakIterator.cpp: Renamed from Source/WebCore/platform/text/TextBreakIterator.cpp.

(WTF::initializeIterator):
(WTF::initializeIteratorWithRules):
(WTF::setTextForIterator):
(WTF::setContextAwareTextForIterator):
(WTF::wordBreakIterator):
(WTF::sentenceBreakIterator):
(WTF::cursorMovementIterator):
(WTF::acquireLineBreakIterator):
(WTF::releaseLineBreakIterator):
(WTF::mapLineIteratorModeToRules):
(WTF::isCJKLocale):
(WTF::openLineBreakIterator):
(WTF::closeLineBreakIterator):
(WTF::compareAndSwapNonSharedCharacterBreakIterator):
(WTF::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator):
(WTF::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator):
(WTF::textBreakFirst):
(WTF::textBreakLast):
(WTF::textBreakNext):
(WTF::textBreakPrevious):
(WTF::textBreakPreceding):
(WTF::textBreakFollowing):
(WTF::textBreakCurrent):
(WTF::isTextBreak):
(WTF::isWordTextBreak):
(WTF::numGraphemeClusters):
(WTF::numCharactersInGraphemeClusters):

  • wtf/text/TextBreakIterator.h: Renamed from Source/WebCore/platform/text/TextBreakIterator.h.

(WTF::LazyLineBreakIterator::LazyLineBreakIterator):
(WTF::LazyLineBreakIterator::~LazyLineBreakIterator):
(WTF::LazyLineBreakIterator::string):
(WTF::LazyLineBreakIterator::isLooseCJKMode):
(WTF::LazyLineBreakIterator::lastCharacter):
(WTF::LazyLineBreakIterator::secondToLastCharacter):
(WTF::LazyLineBreakIterator::setPriorContext):
(WTF::LazyLineBreakIterator::updatePriorContext):
(WTF::LazyLineBreakIterator::resetPriorContext):
(WTF::LazyLineBreakIterator::priorContextLength):
(WTF::LazyLineBreakIterator::get):
(WTF::LazyLineBreakIterator::resetStringAndReleaseIterator):
(WTF::NonSharedCharacterBreakIterator::operator TextBreakIterator*):

  • wtf/text/TextBreakIteratorInternalICU.h: Renamed from Source/WebCore/platform/text/TextBreakIteratorInternalICU.h.
  • wtf/text/efl/TextBreakIteratorInternalICUEfl.cpp: Renamed from Source/WebCore/platform/text/efl/TextBreakIteratorInternalICUEfl.cpp.

(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):

  • wtf/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Renamed from Source/WebCore/platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp.

(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):

  • wtf/text/icu/UTextProvider.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProvider.cpp.

(WTF::fixPointer):
(WTF::uTextCloneImpl):

  • wtf/text/icu/UTextProvider.h: Renamed from Source/WebCore/platform/text/icu/UTextProvider.h.

(WTF::uTextProviderContext):
(WTF::initializeContextAwareUTextProvider):
(WTF::uTextAccessPinIndex):
(WTF::uTextAccessInChunkOrOutOfRange):

  • wtf/text/icu/UTextProviderLatin1.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp.

(WTF::uTextLatin1Clone):
(WTF::uTextLatin1NativeLength):
(WTF::uTextLatin1Access):
(WTF::uTextLatin1Extract):
(WTF::uTextLatin1MapOffsetToNative):
(WTF::uTextLatin1MapNativeIndexToUTF16):
(WTF::uTextLatin1Close):
(WTF::openLatin1UTextProvider):
(WTF::textLatin1ContextAwareGetCurrentContext):
(WTF::textLatin1ContextAwareMoveInPrimaryContext):
(WTF::textLatin1ContextAwareSwitchToPrimaryContext):
(WTF::textLatin1ContextAwareMoveInPriorContext):
(WTF::textLatin1ContextAwareSwitchToPriorContext):
(WTF::uTextLatin1ContextAwareClone):
(WTF::uTextLatin1ContextAwareNativeLength):
(WTF::uTextLatin1ContextAwareAccess):
(WTF::uTextLatin1ContextAwareExtract):
(WTF::uTextLatin1ContextAwareClose):
(WTF::openLatin1ContextAwareUTextProvider):

  • wtf/text/icu/UTextProviderLatin1.h: Renamed from Source/WebCore/platform/text/icu/UTextProviderLatin1.h.
  • wtf/text/icu/UTextProviderUTF16.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp.

(WTF::textUTF16ContextAwareGetCurrentContext):
(WTF::textUTF16ContextAwareMoveInPrimaryContext):
(WTF::textUTF16ContextAwareSwitchToPrimaryContext):
(WTF::textUTF16ContextAwareMoveInPriorContext):
(WTF::textUTF16ContextAwareSwitchToPriorContext):
(WTF::uTextUTF16ContextAwareClone):
(WTF::uTextUTF16ContextAwareNativeLength):
(WTF::uTextUTF16ContextAwareAccess):
(WTF::uTextUTF16ContextAwareExtract):
(WTF::uTextUTF16ContextAwareClose):
(WTF::openUTF16ContextAwareUTextProvider):

  • wtf/text/icu/UTextProviderUTF16.h: Renamed from Source/WebCore/platform/text/icu/UTextProviderUTF16.h.
  • wtf/text/mac/TextBreakIteratorInternalICUMac.mm: Renamed from Source/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm.

(WTF::textBreakLocalePreference):
(WTF::topLanguagePreference):
(WTF::getLocale):
(WTF::getSearchLocale):
(WTF::currentSearchLocaleID):
(WTF::getTextBreakLocale):
(WTF::currentTextBreakLocaleID):

  • wtf/text/win/TextBreakIteratorInternalICUWin.cpp: Renamed from Source/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp.

(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):

1:24 AM Changeset in webkit [203037] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk

ECMAScript 2016: %TypedArray%.prototype.includes implementation
https://bugs.webkit.org/show_bug.cgi?id=159385

Patch by Caio Lima <Caio Lima> on 2016-07-10
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch implements the ECMAScript 2016:
%TypedArray%.prototype.includes
following spec 22.2.3.14
https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewProtoFuncIncludes):
(JSC::JSTypedArrayViewPrototype::finishCreation):

LayoutTests:

This patch implements test case to ECMAScript 2016:
%TypedArray%.prototype.includes implementation
following spec 22.2.3.14
https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • js/regress/script-tests/typed-array-includes.js: Added.

(assertProperError):
(testIntTypedArray):
(testFloatTypedArray):

  • js/typed-array-includes-expected.txt: Added.
  • js/typed-array-includes.html: Added.
1:03 AM Changeset in webkit [203036] by Yusuke Suzuki
  • 42 edits
    2 adds in trunk

[GTK] Crash on https://diafygi.github.io/webcrypto-examples with ENABLE_SUBTLE_CRYPTO
https://bugs.webkit.org/show_bug.cgi?id=159189

Reviewed by Michael Catanzaro.

Source/WebCore:

Currently, we explicitly release the pointers of std::unique_ptr<CryptoAlgorithm> and std::unique_ptr<CryptoAlgorithmParameters>,
and delete them in the asynchronously called lambdas. In GnuTLS version, callback function is accidentally called twice,
and it incurs the double free problem.
In SubtleCrypto code, we have the rule that we must not call failureCallback when the error code is filled in synchronous execution.
So we drop the failureCallback calling code in GnuTLS subtle crypto code.

But, rather than carefully handling un-smart-pointer-managed raw pointer's life time, we should use ref counted pointer for that.
Using the raw delete is error-prone.

This patch also changes CryptoAlgorithm and CryptoAlgorithmParameters to RefCounted. And use Ref and RefPtr instead.
The change eliminates the ad-hoc delete code. And now, the lambdas can be called multiple times since once the result of the promise
is resolved or rejected, subsequent resolve / reject calls are ignored.

And this patch also fixes the incorrect call to the lambda that is already WTFMoved.

While we can see several return WTFMove(...), they are necessary since it uses implicit type conversions, like,
Ref<A> => RefPtr<A>, and Ref<Derived> => Ref<Base>.

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::createAesCbcParams):
(WebCore::createAesKeyGenParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::createRsaKeyGenParams):
(WebCore::createRsaKeyParamsWithHash):
(WebCore::createRsaOaepParams):
(WebCore::createRsaSsaParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):

  • bindings/js/JSCryptoAlgorithmDictionary.h:
  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::createHMACParameters):
(WebCore::createRSAKeyParametersWithHash):
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):

  • bindings/js/JSCryptoKeySerializationJWK.h:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::createAlgorithmFromJSValue):
(WebCore::importKey):
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • crypto/CryptoAlgorithm.h:
  • crypto/CryptoAlgorithmParameters.h:
  • crypto/CryptoAlgorithmRegistry.cpp:

(WebCore::CryptoAlgorithmRegistry::create):

  • crypto/CryptoAlgorithmRegistry.h:
  • crypto/CryptoKeySerialization.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::create):

  • crypto/algorithms/CryptoAlgorithmAES_CBC.h:
  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:

(WebCore::CryptoAlgorithmAES_KW::create):

  • crypto/algorithms/CryptoAlgorithmAES_KW.h:
  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::create):

  • crypto/algorithms/CryptoAlgorithmHMAC.h:
  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::create):

  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::create):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::create):

  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
  • crypto/algorithms/CryptoAlgorithmSHA1.cpp:

(WebCore::CryptoAlgorithmSHA1::create):

  • crypto/algorithms/CryptoAlgorithmSHA1.h:
  • crypto/algorithms/CryptoAlgorithmSHA224.cpp:

(WebCore::CryptoAlgorithmSHA224::create):

  • crypto/algorithms/CryptoAlgorithmSHA224.h:
  • crypto/algorithms/CryptoAlgorithmSHA256.cpp:

(WebCore::CryptoAlgorithmSHA256::create):

  • crypto/algorithms/CryptoAlgorithmSHA256.h:
  • crypto/algorithms/CryptoAlgorithmSHA384.cpp:

(WebCore::CryptoAlgorithmSHA384::create):

  • crypto/algorithms/CryptoAlgorithmSHA384.h:
  • crypto/algorithms/CryptoAlgorithmSHA512.cpp:

(WebCore::CryptoAlgorithmSHA512::create):

  • crypto/algorithms/CryptoAlgorithmSHA512.h:
  • crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:

(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):

  • crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp:

(WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt):

  • crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp:

(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):

  • crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):

  • crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):

  • crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):

  • crypto/keys/CryptoKeySerializationRaw.cpp:

(WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):

  • crypto/keys/CryptoKeySerializationRaw.h:

LayoutTests:

If you execute the added test with subtle-crypto-enabled GTK environment without this patch, this causes the crash.

  • crypto/subtle/unimplemented-unwrap-crash-expected.txt: Added.
  • crypto/subtle/unimplemented-unwrap-crash.html: Added.

Jul 9, 2016:

3:58 PM Changeset in webkit [203035] by rniwa@webkit.org
  • 10 edits in trunk/Websites/perf.webkit.org

Perf dashboard can consume 50-70% of CPU on MacBook even if user is not interacting at all
https://bugs.webkit.org/show_bug.cgi?id=159597

Reviewed by Chris Dumez.

TimeSeriesChart and InteractiveTimeSeriesChart had been relying on continually polling on requestAnimationFrame
to update itself in response to its canvas resizing. Even though there as an early exit in the case there was
nothing to update, this is still causing a significant power drain when the user is not interacting at all.

Let TimeSeriesChart use the regular top-down render path like other components with exceptions of listening to
window's resize eventas well as when new JSONs are fetched from the server. The render() call to the latter case
will be coerced into a single callback on requestAnimationFrame to avoid DOM-mutation-layout churn.

  • public/v3/components/base.js:

(ComponentBase.isElementInViewport): Deleted.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype.render): Enqueue charts to render.

  • public/v3/components/chart-styles.js:

(ChartStyles.dashboardOptions): Removed updateOnRequestAnimationFrame which is no longer an available option.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart): Replaced the code to register itself for rAF by the code to listen to resize events on window.
(TimeSeriesChart._updateOnRAF): Deleted.
(TimeSeriesChart._updateAllCharts): Added.
(TimeSeriesChart.prototype._enqueueToRender): Added.
(TimeSeriesChart._renderEnqueuedCharts): Added.
(TimeSeriesChart.prototype.fetchMeasurementSets): Avoid calling fetchBetween when the range had been fetched.
Without this change, we can incur a significant number of redundant calls to render() when adjusting the domain
in charts page by the slider. When no new JSON is fetched, simply enqueue this chart to render on rAF.
(TimeSeriesChart.prototype._didFetchMeasurementSet): Enqueue this chart to render on rAF.
(TimeSeriesChart.prototype.render): Removed the check for isElementInViewport since we no longer get render() call
when this chart moves into the viewport (as we no longer listen to every rAF or scroll event).

  • public/v3/models/measurement-set.js:

(MeasurementSet.prototype.hasFetchedRange): Fixed various bugs revealed by the new use in fetchMeasurementSets.

  • public/v3/pages/chart-pane-status-view.js:

(ChartPaneStatusView.prototype._updateRevisionListForNewCurrentRepository): Removed the dead code. It was probably
copied from when this code was in InteractiveTimeSeries chart. There is no this._forceRender in this component.

  • public/v3/pages/dashboard-page.js:

(DashboardPage.prototype.render): Enqueue charts to render.

  • public/v3/pages/heading.js:

(SummaryPage.prototype.open): Removed the call to isElementInViewport. This wasn't really doing anything useful in
this component.

  • unit-tests/measurement-set-tests.js: Added tests for hasFetchedRange.

(.waitForMeasurementSet): Moved to be used in a newly added test case.

2:07 PM Changeset in webkit [203034] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore
REGRESSION(201900): validation failure for GetByOffset/PutByOffset in VALIDATE((node), node->child1().node() == node->child2().node()
node->child1()->result() == NodeResultStorage)

https://bugs.webkit.org/show_bug.cgi?id=159603

Reviewed by Keith Miller.

This removes an incorrect validation rule and replaces it with a FIXME about how to make this
aspect of IR easier to validate soundly.

It's not valid to assert that two children of a node are the same. It should always be valid
to take:

Foo(@x, @x)

and turn it into:

a: ValueRep(@x)
b: ValueRep(@x)
Foo(@a, @b)

or even something like:

y: Identity(@y)
Foo(@x, @y)

That's because it should be possible to rewire any data flow edge something that produces an
equivalent value.

The validation rule that this patch removes meant that such rewirings were invalid on
GetByOffset/PutByOffset. FixupPhase did such a rewiring sometimes.

  • dfg/DFGValidate.cpp:
  • tests/stress/get-by-offset-double.js: Added.
1:50 PM Changeset in webkit [203033] by keith_miller@apple.com
  • 3 edits
    4 adds in trunk

appendMemcpy might fail in concatAppendOne
https://bugs.webkit.org/show_bug.cgi?id=159601
Source/JavaScriptCore:

<rdar://problem/27211300>

Reviewed by Mark Lam.

There are multiple reasons why we might fail appendMemcpy. One
reason, which I suspect was the source of the crashes, is that one
of the Array prototypes has an indexed property. This patch
consolidates the two old cases by just creating an array then
attempting to memcpy append. If that fails, we fall back to
moveElements.

  • runtime/ArrayPrototype.cpp:

(JSC::concatAppendOne):

  • tests/stress/concat-with-holesMustForwardToPrototype.js: Added.

(arrayEq):

LayoutTests:

Reviewed by Mark Lam.

Add new microbenchmark testing the performance of concat
when appending one new element. This patch appears to be
about a 13% progression on this test.

  • js/regress/concat-append-one-expected.txt: Added.
  • js/regress/concat-append-one.html: Added.
  • js/regress/script-tests/concat-append-one.js: Added.

(test):

9:23 AM Changeset in webkit [203032] by mitz@apple.com
  • 2 edits in trunk/Tools

Give git-add-reviewer an option to say “Rubber-stamped by” in non-interactive mode
https://bugs.webkit.org/show_bug.cgi?id=159600

Reviewed by Daniel Bates.

  • Scripts/git-add-reviewer:
Added the -srubber-stamp option.

(nonInteractive): Set the rubberstamp key in the item passed to addReviewer() based on the

new option.

8:47 AM Changeset in webkit [203031] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

REGRESSION (r202931): breaks release builds with ASSERT_WITH_SECURITY_IMPLICATION for fuzzing
https://bugs.webkit.org/show_bug.cgi?id=159599
rdar://problem/27248835

Reviewed by Chris Dumez.

Make RenderStyle::deletionHasBegun() available with ENABLE(SECURITY_ASSERTIONS)

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::~RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::deletionHasBegun):

8:39 AM Changeset in webkit [203030] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: manifest.json generation takes multiple seconds on perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=159596

Reviewed by Chris Dumez.

The most of CPU time was spent looking for a duplicate entry in an array of metrics by array_search.
This patch moves to postgres by using aggregate functions in the query. Also moved the code to convert
datetime to UNIX epoch timestamp from PHP to within postgres query.

These improvements reduce total runtime of Manifest::generate from ~4s to ~350ms on my machine.

  • public/include/manifest.php:

(Manifest::generate): No longer fetches test_configurations table as this is done in Manifest::platforms now.
Also moved calls to each method in the class to separate lines for easier instrumentation.
(Manifest::platforms): Group test configurations (current, baseline, target) by platform and metric.
Use the max of the last modified dates in UNIX epoch timestamps (ms to be compatible with JS's representation).
A given platform, metric pair is considered to be in the v1 dashboard if any test configuration is in.

5:57 AM Changeset in webkit [203029] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Make use of PrivateIdentifier to simplify Fetch Headers built-in checks
https://bugs.webkit.org/show_bug.cgi?id=159554

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-09
Reviewed by Alex Christensen.

Source/WebCore:

Test: fetch/header-constructor-overriden.html
Patch does not change visible behavior.

  • Modules/fetch/FetchHeaders.idl: Adding PrivateIdentifier to the Headers constructor.
  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders): Checking directly with @Headers for improved clarity.

  • Modules/fetch/FetchResponse.js: Using @Headers to check whether creating a Headers object or not before

passsing it to C++ FetchResponse initialize method.
(initializeFetchResponse):

  • bindings/js/WebCoreBuiltinNames.h: Adding Headers private name.

LayoutTests:

  • fetch/header-constructor-overriden-expected.txt: Added.
  • fetch/header-constructor-overriden.html: Added.
12:33 AM Changeset in webkit [203028] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Fix the Template Raw Value of \ (escape) + LineTerminatorSequence
https://bugs.webkit.org/show_bug.cgi?id=159595

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-09
Reviewed by Yusuke Suzuki.

The spec (https://tc39.github.io/ecma262/#sec-static-semantics-tv-and-trv)
says:
"The TRV of LineContinuation::\LineTerminatorSequence is the sequence

consisting of the code unit value 0x005C followed by the code units
of TRV of LineTerminatorSequence."

We were not normalizing the LineTerminatorSequence in that case, but it should
be as it is the TRV of LineTerminatorSequence.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::parseTemplateLiteral):

  • tests/stress/tagged-templates-raw-strings.js:
12:03 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Jul 8, 2016:

11:37 PM Changeset in webkit [203027] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 8

Added a tag for Safari Technology Preview release 8.

11:37 PM Changeset in webkit [203026] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 7

Added a tag for Safari Technology Preview release 7.

11:37 PM Changeset in webkit [203025] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 6

Added a tag for Safari Technology Preview release 6.

11:37 PM Changeset in webkit [203024] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 5

Added a tag for Safari Technology Preview release 5.

11:37 PM Changeset in webkit [203023] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 4

Added a tag for Safari Technology Preview release 4.

11:37 PM Changeset in webkit [203022] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 3

Added a tag for Safari Technology Preview release 3.

11:37 PM Changeset in webkit [203021] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 2

Added a tag for Safari Technology Preview release 2.

11:35 PM Changeset in webkit [203020] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 1

Added a tag for Safari Technology Preview release 1.

8:32 PM Changeset in webkit [203019] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

bundle-v3-scripts.py should compress HTML/CSS templates
https://bugs.webkit.org/show_bug.cgi?id=159582

Reviewed by Joseph Pecoraro.

Strip leading and trailing whitespaces from HTML and CSS templates. This is a 8% progression on the file size.

  • Install.md: Updated the list of MIME types to apply deflate for newer versions of Apache.
  • tools/bundle-v3-scripts.py:

(main):
(compress_template): Added.

7:24 PM Changeset in webkit [203018] by Chris Dumez
  • 4 edits
    4 adds in trunk

adoptNode() changes css class to lowercase for document loaded with XHR responseType = "document"
https://bugs.webkit.org/show_bug.cgi?id=159555
<rdar://problem/27252541>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When adopting an Element from another document which has a different quirks mode,
case-sensitivity for id and class attributes differs and we need to correctly
update members such as ElementData::m_classNames or ElementData::m_idForStyleResolution.

To address the issue, have Element override didMoveToNewDocument() and call
attributeChanged() for id and class attributes.

Test: fast/dom/Document/adoptNode-quirks-mismatch.html

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):

  • dom/Element.h:

LayoutTests:

Add test coverage for id and class attributes.

  • fast/dom/Document/adoptNode-quirks-mismatch-expected.txt: Added.
  • fast/dom/Document/adoptNode-quirks-mismatch.html: Added.
  • fast/dom/Document/resources/document-quirks-class.html: Added.
  • fast/dom/Document/resources/document-quirks-id.html: Added.
7:24 PM Changeset in webkit [203017] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Command-Shift-S in the Styles sidebar should always show the save dialog
https://bugs.webkit.org/show_bug.cgi?id=156858
<rdar://problem/25859098>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):

7:14 PM Changeset in webkit [203016] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup: Remove use of PassRefPtr from class HTMLTableElement
https://bugs.webkit.org/show_bug.cgi?id=159587

Reviewed by Chris Dumez.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setCaption): Take a rvalue reference to a RefPtr instead of a PassRefPtr.
(WebCore::HTMLTableElement::setTHead): Take a rvalue reference to a RefPtr instead of a PassRefPtr. Also
fix a style nit; add curly braces around the for-loop body since its body is more than a single line.
(WebCore::HTMLTableElement::createTHead): Use Ref::copyRef() instead of Ref::ptr() to pass the instantiated
table section to better convey that we are passing a copy of the table section.
(WebCore::HTMLTableElement::createCaption): Ditto.

  • html/HTMLTableElement.h:
6:29 PM Changeset in webkit [203015] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We may add a ReadOnly property without setting the corresponding bit on Structure
https://bugs.webkit.org/show_bug.cgi?id=159542
<rdar://problem/27084591>

Reviewed by Benjamin Poulain.

The reason this usually is OK is due to happenstance. Often, instances that putDirectWithoutTransition
also happen to have a static property table. Having a static property table causes the
HasReadOnlyOrGetterSetterPropertiesExcludingProto on the structure to be set. However,
there are times where an object calls putDirectWithoutTransition, and it doesn't have a
static property hash table. The fix is simple, putDirectWithTransition needs to set the
HasReadOnlyOrGetterSetterPropertiesExcludingProto if it puts a ReadOnly property.

  • runtime/JSObject.h:

(JSC::JSObject::putDirectWithoutTransition):

  • tests/stress/proper-property-store-with-prototype-property-that-is-not-writable.js: Added.

(assert):

5:43 PM Changeset in webkit [203014] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

When WKWebView prepares the session state blob, we should be able to filter it.
https://bugs.webkit.org/show_bug.cgi?id=159410

Add a SPI to WKWebView so that a client can decide how to filter backforward items
when WKWebView perparing session state.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2016-07-08
Reviewed by Brady Eidson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _sessionStateWithFilter:]): When preparing session state, check each
backforward item against the filter block.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add the SPI _sessionStateWithFilter:
5:28 PM Changeset in webkit [203013] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Move shouldInheritSecurityOriginFromOwner() from URL to Document
https://bugs.webkit.org/show_bug.cgi?id=158987

Reviewed by Alex Christensen.

The URL class should not have knowledge of the concept of an origin or the semantics of origin
inheritance as these are higher level concepts. We should make URL::shouldInheritSecurityOriginFromOwner()
a static non-member, non-friend function of Document because its implements the origin semantics
for a Document object as described in section Origin of the HTML5 spec., <https://html.spec.whatwg.org/multipage/browsers.html#origin> (8 July 2016).
These semantics only apply to Documents.

No functionality changed. So, no new tests.

  • dom/Document.cpp:

(WebCore::shouldInheritSecurityOriginFromOwner): Added.
(WebCore::Document::initSecurityContext): Modified to call WebCore::shouldInheritSecurityOriginFromOwner().
(WebCore::Document::initContentSecurityPolicy): Ditto.

  • platform/URL.cpp:

(WebCore::URL::shouldInheritSecurityOriginFromOwner): Deleted.

  • platform/URL.h:
5:24 PM Changeset in webkit [203012] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: Heap::isMarked(cell) in SlotVisitor::appendToMarkStack(JSC::JSCell *)
https://bugs.webkit.org/show_bug.cgi?id=159588

Reviewed by Geoffrey Garen.

We were jettisoning a CodeBlock during GC that won't survive and its owning script
won't survive either. We can't install any code on the owning script as that involves
a write barrier that will "pull" the script back into the remembered set. Badness would
ensue. Added an early return in CodeBlock::jettison() when we are garbage collecting
and the owning script isn't marked.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):

5:19 PM Changeset in webkit [203011] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Setting table.tFoot or calling table.createTFoot() should append HTML tfont element to the end of the table
https://bugs.webkit.org/show_bug.cgi?id=159583
<rdar://problem/27255292>

In HTMLTableElement::createTFoot() I inadvertently made use of WTFMove() to move the instantiated
HTMLTableSectionElement into the argument passed to setTFoot(). We should use Ref::copyRef() instead
because we want this function to return the instantiated table section.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::createTFoot):

5:15 PM Changeset in webkit [203010] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Mail messages don't start loading until scrolling completes
https://bugs.webkit.org/show_bug.cgi?id=159585
<rdar://problem/27088405>

Reviewed by Andy Estes.

  • UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:

(-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:connection:]):
When scrolling, NSDefaultRunLoopMode isn't run, but NSRunLoopCommonModes are.
CFNetwork uses NSDefaultRunLoopMode if we tell NSURLConnection to "start immediately",
but we can instead schedule our NSURLConnection into NSRunLoopCommonModes
and start it ourselves, ensuring that it will be able to do work while scrolling is happening.

5:04 PM Changeset in webkit [203009] by dbates@webkit.org
  • 11 edits in trunk

Setting table.tFoot or calling table.createTFoot() should append HTML tfont element to the end of the table
https://bugs.webkit.org/show_bug.cgi?id=159583
<rdar://problem/27255292>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update expected result now that we append the HTML tfoot element to the end of the table.

  • web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt:

Source/WebCore:

he HTML standard has long since been revised to describe that assignment to property table.tFoot
or invoking table.createTFoot() will append the HTML tfoot element to the end of the table. This
behavior is defined in <https://html.spec.whatwg.org/multipage/tables.html#dom-table-tfoot> (8 July 2016)
and <https://html.spec.whatwg.org/multipage/tables.html#dom-table-createtfoot> for the property
table.tFoot and table.createTFoot(), respectively. This change makes our behavior match the
behavior in Mozilla Firefox, Microsoft Edge, Microsoft Internet Explorer 8 and later.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setTFoot): Append <tfoot> to the end of the table. Use RefPtr<>&& instead of PassRefPtr.
(WebCore::HTMLTableElement::createTFoot): Use RefPtr<>&& instead of PassRefPtr.

  • html/HTMLTableElement.h:

LayoutTests:

Update expected results now that we append the HTML tfoot element to the end of the table.

  • platform/efl/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/win/tables/mozilla/bugs/bug30418-expected.txt:
4:49 PM Changeset in webkit [203008] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Crash in layout test /media/video-buffered-range-contains-currentTime.html
https://bugs.webkit.org/show_bug.cgi?id=159109
<rdar://problem/26535750>

Reviewed by Alex Christensen.

Protect against _dataTasks being mutated and accessed on multiple simultaneous threads with a Lock.

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSession taskCompleted:]):
(-[WebCoreNSURLSession finishTasksAndInvalidate]):
(-[WebCoreNSURLSession invalidateAndCancel]):
(-[WebCoreNSURLSession getTasksWithCompletionHandler:]):
(-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]):
(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession dataTaskWithURL:]):

4:38 PM Changeset in webkit [203007] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.7

New tag.

3:58 PM Changeset in webkit [203006] by mark.lam@apple.com
  • 59 edits in trunk/Source/JavaScriptCore

Move CallFrame header info from JSStack.h to CallFrame.h
https://bugs.webkit.org/show_bug.cgi?id=159549

Reviewed by Geoffrey Garen.

CallFrame.h is a much better location for CallFrame header info.

Replaced CallFrame::init() with ExecState::initGlobalExec() because normal
CallFrames are setup by a different mechanism now. Only the globalExec is still
using it. So, might as well change it to be specifically for the globalExec.

Removed the use of JSStack::containsAddress() in ExecState::initGlobalExec()
because it is not relevant to the globalExec.

Also removed some unused code: JSStack::gatherConservativeRoots() and
JSStack::sanitizeStack() is never called for JIT builds.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/VirtualRegister.h:

(JSC::VirtualRegister::isValid):
(JSC::VirtualRegister::isLocal):
(JSC::VirtualRegister::isArgument):
(JSC::VirtualRegister::isHeader):
(JSC::VirtualRegister::isConstant):
(JSC::VirtualRegister::toLocal):
(JSC::VirtualRegister::toArgument):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::thisRegister):
(JSC::CallArguments::argumentRegister):
(JSC::CallArguments::stackOffset):
(JSC::CallArguments::argumentCountIncludingThis):
(JSC::CallArguments::argumentsNode):
(JSC::BytecodeGenerator::registerFor):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitHomeObjectForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::CallArguments::CallArguments):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::argumentsInvolveStackSlot):
(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::findArgumentPositionForLocal):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::addCallWithoutSettingResult):
(JSC::DFG::ByteCodeParser::getArgumentCount):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileEntry):
(JSC::DFG::JITCompiler::compileSetupRegistersForEntry):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::emitStoreCallSiteIndex):

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompiler.cpp:

(JSC::DFG::OSRExitCompiler::emitRestoreArguments):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitGetLength):
(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::emitGetArgumentStart):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetCallee):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArgumentCountIncludingThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetScope):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsLength):
(JSC::FTL::DFG::LowerDFGToB3::getCurrentCallee):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsStart):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • interpreter/CallFrame.cpp:

(JSC::ExecState::initGlobalExec):
(JSC::CallFrame::callSiteBitsAreBytecodeOffset):
(JSC::CallFrame::callSiteAsRawBits):
(JSC::CallFrame::unsafeCallSiteAsRawBits):
(JSC::CallFrame::callSiteIndex):
(JSC::CallFrame::setCurrentVPC):
(JSC::CallFrame::callSiteBitsAsBytecodeOffset):

  • interpreter/CallFrame.h:

(JSC::CallSiteIndex::CallSiteIndex):
(JSC::ExecState::calleeAsValue):
(JSC::ExecState::callee):
(JSC::ExecState::unsafeCallee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::unsafeCodeBlock):
(JSC::ExecState::scope):
(JSC::ExecState::setCallerFrame):
(JSC::ExecState::setScope):
(JSC::ExecState::argumentCount):
(JSC::ExecState::argumentCountIncludingThis):
(JSC::ExecState::argumentOffset):
(JSC::ExecState::argumentOffsetIncludingThis):
(JSC::ExecState::offsetFor):
(JSC::ExecState::noCaller):
(JSC::ExecState::setArgumentCountIncludingThis):
(JSC::ExecState::setCallee):
(JSC::ExecState::setCodeBlock):
(JSC::ExecState::setReturnPC):
(JSC::ExecState::argIndexForRegister):
(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):
(JSC::ExecState::init): Deleted.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::dumpRegisters):

  • interpreter/Interpreter.h:

(JSC::calleeFrameForVarargs):

  • interpreter/JSStack.h:

(JSC::JSStack::containsAddress):
(JSC::JSStack::gatherConservativeRoots): Deleted.
(JSC::JSStack::sanitizeStack): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::emitRandomThunk):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::restoreReturnAddressBeforeReturn):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader32):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader64):
(JSC::AssemblyHelpers::emitPutToCallFrameHeader):
(JSC::AssemblyHelpers::emitPutToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutPayloadToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutTagToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::calleeFrameSlot):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::logShadowChickenProloguePacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):
(JSC::CallFrameShuffler::dump):
(JSC::CallFrameShuffler::extendFrameIfNeeded):
(JSC::CallFrameShuffler::prepareForSlowPath):
(JSC::CallFrameShuffler::prepareForTailCall):
(JSC::CallFrameShuffler::prepareAny):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::snapshot):
(JSC::CallFrameShuffler::setCalleeJSValueRegs):
(JSC::CallFrameShuffler::assumeCalleeIsCell):
(JSC::CallFrameShuffler::numLocals):
(JSC::CallFrameShuffler::getOld):
(JSC::CallFrameShuffler::setOld):
(JSC::CallFrameShuffler::firstOld):
(JSC::CallFrameShuffler::lastOld):
(JSC::CallFrameShuffler::isValidOld):
(JSC::CallFrameShuffler::argCount):
(JSC::CallFrameShuffler::getNew):

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::getConstantOperand):
(JSC::JIT::emitPutIntToCallFrameHeader):
(JSC::JIT::updateTopCallFrame):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_argument_count):
(JSC::JIT::emit_op_get_rest_length):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_get_scope):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::emitJumpIfNotType):
(JSC::JSInterfaceJIT::emitGetFromCallFrameHeaderPtr):
(JSC::JSInterfaceJIT::emitPutToCallFrameHeader):
(JSC::JSInterfaceJIT::emitPutCellToCallFrameHeader):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetVarargsFrame):
(JSC::emitSetupVarargsFrameFastCase):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::genericCall):
(JSC::LLInt::varargsSetup):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:
  • runtime/StackAlignment.h:

(JSC::roundArgumentCountToAlignFrame):
(JSC::roundLocalRegisterCountForFramePointerOffset):
(JSC::logStackAlignmentRegisters):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):
(JSC::WASMFunctionCompiler::endFunction):
(JSC::WASMFunctionCompiler::boxArgumentsAndAdjustStackPointer):
(JSC::WASMFunctionCompiler::callAndUnboxResult):

  • wasm/WASMFunctionSyntaxChecker.h:

(JSC::WASMFunctionSyntaxChecker::updateTempStackHeightForCall):

2:06 PM Changeset in webkit [203005] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Prevent fullscreen video dimension state from being reset after configuring.
https://bugs.webkit.org/show_bug.cgi?id=159578

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-08
Reviewed by Jer Noble.

This change moves setVideoElement() to after setMediaElement(), since setMediaElement() resets the
mediaState, undoing the configuration done by setVideoElement().

This change is fragile, but minimal. The proper, more comprehinsive fix will come later from
https://bugs.webkit.org/show_bug.cgi?id=159580.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen):

1:52 PM Changeset in webkit [203004] by Chris Dumez
  • 3 edits
    6 adds in trunk

Object.defineProperty() should maintain existing getter / setter if not overridden in the new descriptor
https://bugs.webkit.org/show_bug.cgi?id=159576
<rdar://problem/27242197>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Object.defineProperty() should maintain existing getter / setter if not
overridden in the new descriptor. Previously, if the property is a had
a custom getter / setter, and if the new descriptor only had a setter
(or only a getter), JSC would clear the existing getter (or setter).
This behavior did not match the EcmaScript specification or Firefox /
Chrome. This patch fixes the issue.

This fixes searching and search suggestions on www.iciba.com.

  • runtime/JSObject.cpp:

(JSC::validateAndApplyPropertyDescriptor):

LayoutTests:

Add test coverage.

  • js/dom/customAccessor-defineProperty-expected.txt: Added.
  • js/dom/customAccessor-defineProperty.html: Added.
  • js/dom/customAccessor-defineProperty_getterOnly-expected.txt: Added.
  • js/dom/customAccessor-defineProperty_getterOnly.html: Added.
  • js/dom/customAccessor-defineProperty_setterOnly-expected.txt: Added.
  • js/dom/customAccessor-defineProperty_setterOnly.html: Added.
1:14 PM Changeset in webkit [203003] by aestes@apple.com
  • 35 edits
    20 adds
    18 deletes in trunk

[Content Filtering] Load blocked pages more like other error pages are loaded
https://bugs.webkit.org/show_bug.cgi?id=159485
<rdar://problem/26014076>

Reviewed by Brady Eidson.

Source/WebCore:

Content filter blocked pages were being loaded by cancelling the provisional load of the
page that was blocked and then scheduling a navigation to the content filter error page.
Some clients would not expect a new, Web process-initiated provisional navigation to start
after a cancellation, though, and this would put them in a bad state.

This patch changes blocked page loading to behave more like loading other error pages.
Specifically:

  1. didFailProvisionalLoad is dispatched with a new, non-cancellation error code.
  2. The blocked page is loaded immediately after dispatching didFailProvisionalLoad, which prevents FrameLoader from creating a new back-forward list item for the substitute data load.
  3. A substitute data load initiated by the client for the blocked URL is ignored if ContentFilter will display its own error page.
  4. A file: URL is used instead of a custom scheme for the base URL of the blocked page, since some clients expect this.

Updated existing tests to capture frame load delegate callbacks and the back forward list.
Added new API tests: ContentFiltering.LoadAlternate*.

  • English.lproj/Localizable.strings: Added a WebKitErrorFrameLoadBlockedByContentFilter description.
  • Resources/ContentFilterBlockedPage.html: Added.
  • WebCore.xcodeproj/project.pbxproj: Added ContentFilterBlockedPage.html as a frameowrk resource.
  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::continueAfterWillSendRequest): Protected m_documentLoader,
since it might otherwise be deallocated inside ContentFilter::didDecide() if the load is blocked.
(WebCore::ContentFilter::stopFilteringMainResource): Only set m_state to Stopped if not
already Blocked, so that we don't forget this ContentFilter was blocked when calling
cancelMailResourceLoad() in didDecide().
(WebCore::ContentFilter::continueAfterResponseReceived): Protected m_documentLoader,
since it might otherwise be deallocated inside ContentFilter::didDecide() if the load is blocked.
(WebCore::ContentFilter::continueAfterDataReceived): Ditto.
(WebCore::ContentFilter::continueAfterNotifyFinished): Ditto.
(WebCore::ContentFilter::didDecide): Moved code from DocumentLoader::contentFilterDidBlock() to here.
Created a blockedByContentFilterError() and called cancelMainResourceLoad().
(WebCore::blockedPageURL): Returned a file: URL to ContentFilterBlockedPage.html in WebCore.framework.
(WebCore::ContentFilter::continueAfterSubstituteDataRequest): If the substitute data load
is for the same failingURL as the currently-displayed blocked page, ignore it.
(WebCore::ContentFilter::handleProvisionalLoadFailure): Load the blocked page if m_state is Blocked
and the ResourceError matches the error we used when previously calling cancelMainResourceLoad().
(WebCore::ContentFilter::unblockHandler): Deleted.
(WebCore::ContentFilter::replacementData): Deleted.
(WebCore::ContentFilter::unblockRequestDeniedScript): Deleted.

  • loader/ContentFilter.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::contentFilter): Returned m_contentFilter.
(WebCore::DocumentLoader::installContentFilterUnblockHandler): Deleted.
(WebCore::DocumentLoader::contentFilterDidBlock): Deleted.

  • loader/DocumentLoader.h:
  • loader/EmptyClients.h: Added a default implementation of blockedByContentFilterError().
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load): If m_loadType was already RedirectWithLockedBackForwardList
and we are loading subsitute data for a failing URL, continue to use RedirectWithLockedBackForwardList.
This prevents a new back-forward list item from being created when loading a blocked page in a subframe.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
Called ContentFilter::handleProvisionalLoadFailure() after dispatchDidFailProvisionalLoad().
(WebCore::FrameLoader::blockedByContentFilterError): Called FrameLoaderClient::blockedByContentFilterError().

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledSubstituteDataLoad::ScheduledSubstituteDataLoad): Deleted.
(WebCore::NavigationScheduler::scheduleSubstituteDataLoad): Deleted.

  • loader/NavigationScheduler.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Ignored a substitute data load for a
failing URL if ContentFilter::continueAfterSubstituteDataRequest() returns false.

Source/WebKit/mac:

  • Misc/WebKitErrors.h: Defined WebKitErrorFrameLoadBlockedByContentFilter.
  • Misc/WebKitErrors.m:

(registerErrors): Registered WebKitErrorDescriptionFrameLoadBlockedByContentFilter.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::blockedByContentFilterError): Returned a ResourceError for WebKitErrorFrameLoadBlockedByContentFilter.

Source/WebKit2:

  • Shared/API/c/WKErrorRef.h: Defined kWKErrorCodeFrameLoadBlockedByContentFilter.
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added the resource directories
of WebCore.framework and WebKit.framework as paths with assumed read access.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::hasAssumedReadAccessToURL): Checked platformPathsWithAssumedReadAccess()
as well as m_localPathsWithAssumedReadAccess.
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added a non-Cocoa implementation.

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebCoreSupport/WebErrors.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::blockedByContentFilterError): Called WebKit::blockedByContentFilterError().

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

(WebKit::blockedByContentFilterError): Returned a ResourceError for kWKErrorCodeFrameLoadBlockedByContentFilter.

Tools:

Added API tests for WebView and WKWebView to verify that alternate HTML loaded in response
to a content filtering provisional navigation failure is ignored in preference of
ContentFilter's own error page.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:

(-[LoadAlternateNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[LoadAlternateNavigationDelegate webView:didFinishNavigation:]):
(loadAlternateTest):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm:

(-[MockContentFilterEnabler initWithCoder:]):

  • TestWebKitAPI/Tests/mac/ContentFiltering.mm: Added.

(-[LoadAlternateFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
(-[LoadAlternateFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::loadAlternateTest):
(TestWebKitAPI::TEST):

LayoutTests:

Changed allow-* and block-* tests from ref tests to text tests so that they can capture
frame load delegate callbacks and the back forward list.

  • contentfiltering/allow-after-add-data-expected.html: Removed.
  • contentfiltering/allow-after-add-data-expected.txt: Added.
  • contentfiltering/allow-after-finished-adding-data-expected.html: Removed.
  • contentfiltering/allow-after-finished-adding-data-expected.txt: Added.
  • contentfiltering/allow-after-response-expected.html: Removed.
  • contentfiltering/allow-after-response-expected.txt: Added.
  • contentfiltering/allow-after-will-send-request-expected.html: Removed.
  • contentfiltering/allow-after-will-send-request-expected.txt: Added.
  • contentfiltering/allow-never-expected.html: Removed.
  • contentfiltering/allow-never-expected.txt: Added.
  • contentfiltering/block-after-add-data-expected.html: Removed.
  • contentfiltering/block-after-add-data-expected.txt: Added.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-response-expected.html: Removed.
  • contentfiltering/block-after-response-expected.txt: Added.
  • contentfiltering/block-after-response-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-response-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-response-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-response-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-never-expected.html: Removed.
  • contentfiltering/block-never-expected.txt: Added.
  • contentfiltering/resources/contentfiltering.js: Added testRunner calls to dump as text,

dump frame load callbacks, and dump the back forward list. Changed from loading data: URLs
to file: URLs in the test iframe.

12:40 PM Changeset in webkit [203002] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

[Font Loading] The callback passed to document.fonts.ready should always be called
https://bugs.webkit.org/show_bug.cgi?id=158884

Reviewed by Dean Jackson.

Source/WebCore:

The boolean was simply not being reset when loads start.

Test: fast/text/font-face-set-ready-fire.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::startedLoading):

  • css/FontFaceSet.h:

LayoutTests:

  • TestExpectations:
  • fast/text/font-face-set-ready-fire-expected.txt: Added.
  • fast/text/font-face-set-ready-fire.html: Added.
12:01 PM Changeset in webkit [203001] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 32-bit build.

  • PluginProcess/mac/PluginProcessShim.mm:
11:56 AM Changeset in webkit [203000] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Dumping the object graph doesn't work with verbose GC logging
https://bugs.webkit.org/show_bug.cgi?id=159569

Reviewed by Mark Lam.

The current object graph logging code tries to revisits the graph. This doesn't work
correctly and asking around it isn't used. The only way to dump the true object graph
is to log while we GC and that has obvious performance implications.
Therefore I eliminated GCLogging::dumpObjectGraph() and related code.

  • heap/GCLogging.cpp:

(JSC::GCLogging::levelAsString):
(JSC::LoggingFunctor::LoggingFunctor): Deleted.
(JSC::LoggingFunctor::~LoggingFunctor): Deleted.
(JSC::LoggingFunctor::operator()): Deleted.
(JSC::LoggingFunctor::log): Deleted.
(JSC::LoggingFunctor::reviveCells): Deleted.
(JSC::LoggingFunctor::returnValue): Deleted.
(JSC::GCLogging::dumpObjectGraph): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::didFinishCollection):

11:52 AM Changeset in webkit [202999] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/shadow-dom/trusted-event-scoped-flags.html for ios-simulator after r202953.

Unreviewed test gardening.

  • platform/ios-simulator/fast/shadow-dom/trusted-event-scoped-flags-expected.txt:
11:52 AM Changeset in webkit [202998] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

REGRESSION (r196321): Adobe Reader DC + Safari : Zoom level pulldown is not displayed at the correct position
https://bugs.webkit.org/show_bug.cgi?id=159531
rdar://problem/26382579

Reviewed by Tim Horton.

There's code in the Adobe Acrobat framework that checks if the main bundle identifier is "com.apple.WebKit.PluginProcess"
and assumes that it's running inside the Adobe Reader app if it's something else. Since we're now using the XPC service
for all plug-ins, the bundle identifier is "com.apple.WebKit.Plugin.64", so the Acrobat framework assumes it's running in the app
and doesn't use any special tricks to show the popup menu.

Work around this by shimming CFStringCompare, and looking for the exact conditions when this can happen and return kCFCompareEqualTo
when all conditions are true.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::isAdobeAcrobatAddress):
(WebKit::stringCompare):
(WebKit::initializeShim):
(WebKit::PluginProcess::platformInitializeProcess):

  • PluginProcess/mac/PluginProcessShim.h:
  • PluginProcess/mac/PluginProcessShim.mm:

(WebKit::shimCFStringCompare):

11:48 AM Changeset in webkit [202997] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

speculateTypedArrayIsNotNeutered has an inverted speculation
https://bugs.webkit.org/show_bug.cgi?id=159571

Reviewed by Mark Lam.

For some confusing reason FTLLowerDFGToB3 takes the condition the
speculation wants to be false. This issue caused
typedarray-access-monomorphic-neutered.js to fail on the bots.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):

11:34 AM Changeset in webkit [202996] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed: Fix case-sensitive filesystem build.

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
11:22 AM Changeset in webkit [202995] by commit-queue@webkit.org
  • 35 edits
    18 adds
    20 deletes in trunk

Unreviewed, rolling out r202944.
https://bugs.webkit.org/show_bug.cgi?id=159570

caused some tests to crash under GuardMalloc (Requested by
estes on #webkit).

Reverted changeset:

"[Content Filtering] Load blocked pages more like other error
pages are loaded"
https://bugs.webkit.org/show_bug.cgi?id=159485
http://trac.webkit.org/changeset/202944

11:01 AM Changeset in webkit [202994] by jdiggs@igalia.com
  • 4 edits in trunk/LayoutTests

AX: Eliminate test noise from roles-computedRoleString.html
https://bugs.webkit.org/show_bug.cgi?id=159563

Reviewed by Chris Fleizach.

Ensure we hide all the content, as the test intends to do.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated.
10:54 AM Changeset in webkit [202993] by Keith Rollin
  • 4 edits in trunk/Source/WebKit2

Add always-on logging for downloads
https://bugs.webkit.org/show_bug.cgi?id=159521
<rdar://problem/26630645>

Reviewed by Alex Christensen.

Add logging statements that track when a download starts, when it
first receives data, and when the download is done (due to completion,
cancelation, or failure).

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::isAlwaysOnLoggingAllowed):

  • NetworkProcess/Downloads/Download.h:

(WebKit::Download::Download):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

10:54 AM Changeset in webkit [202992] by mark.lam@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Rename jsCPUStackLimit to osStackLimitWithReserve and jsEmulatedStackLimit to cloopStackLimit.
https://bugs.webkit.org/show_bug.cgi?id=159544

Reviewed by Geoffrey Garen.

This patch does the following refactoring:

  1. Rename jsCPUStackLimit to osStackLimitWithReserve.
  2. Rename jsEmulatedStackLimit to cloopStackLimit.
  3. Remove llintStackLimit (which previously is either an alias for jsCPUStackLimit or jsEmulatedStackLimit depending on whether we have a JIT or C Loop build). Instead, we'll change the LLINT to conditionally use the osStackLimitWithReserve or cloopStackLimit.

There are no semantic changes.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • interpreter/JSStack.cpp:

(JSC::JSStack::JSStack):
(JSC::JSStack::growSlowCase):
(JSC::JSStack::lowAddress):
(JSC::JSStack::highAddress):

  • interpreter/JSStack.h:
  • interpreter/JSStackInlines.h:

(JSC::JSStack::ensureCapacityFor):
(JSC::JSStack::shrink):
(JSC::JSStack::grow):
(JSC::JSStack::setCLoopStackLimit):
(JSC::JSStack::setJSEmulatedStackLimit): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/VM.cpp:

(JSC::VM::updateStackLimit):

  • runtime/VM.h:

(JSC::VM::reservedZoneSize):
(JSC::VM::osStackLimitWithReserve):
(JSC::VM::addressOfOSStackLimitWithReserve):
(JSC::VM::cloopStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::jsCPUStackLimit): Deleted.
(JSC::VM::addressOfJSCPUStackLimit): Deleted.
(JSC::VM::jsEmulatedStackLimit): Deleted.
(JSC::VM::setJSEmulatedStackLimit): Deleted.

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):

10:52 AM Changeset in webkit [202991] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove mrobinson from the MathML watchlist
https://bugs.webkit.org/show_bug.cgi?id=159559

Patch by Martin Robinson <mrobinson@igalia.com> on 2016-07-08
Reviewed by Philippe Normand.

  • Scripts/webkitpy/common/config/watchlist: Remove my email from the watchlist.
10:48 AM Changeset in webkit [202990] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.3

New tag.

10:45 AM Changeset in webkit [202989] by bshafiei@apple.com
  • 7 edits in branches/safari-602.1.40-branch/Source

Merged r202987. rdar://problem/27244394

10:42 AM Changeset in webkit [202988] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking some mathml tests as timeouts after r202983.

Unreviewed test gardening.

10:17 AM Changeset in webkit [202987] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Unreviewed, rolling out r202799.
https://bugs.webkit.org/show_bug.cgi?id=159568

Caused build failure (Requested by perarne on #webkit).

Reverted changeset:

"[Win] DLLs are missing version information."
https://bugs.webkit.org/show_bug.cgi?id=159349
http://trac.webkit.org/changeset/202799

10:15 AM Changeset in webkit [202986] by commit-queue@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

Built-in generator should generate files with a default copyright
https://bugs.webkit.org/show_bug.cgi?id=159561

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

  • Scripts/builtins/builtins_model.py:

(BuiltinsCollection._parse_copyright_lines): Adding default copyright to the parsed copyrights.

  • Scripts/builtins/builtins_templates.py:

(BuiltinsGeneratorTemplates): Adding a default copyright.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result: Rebasing with added default copyright.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Ditto.
10:11 AM Changeset in webkit [202985] by Antti Koivisto
  • 3 edits
    3 adds in trunk

Regression(r201805): Crash with <use> resource that has Vary header
https://bugs.webkit.org/show_bug.cgi?id=159560
<rdar://problem/27034208>

Reviewed by Chris Dumez.

Source/WebCore:

In some situations (SVG <use> element for example) we may try to load resources from frameless documents.
Such loads always fail. The new vary header verification code path tried to access the frame earlier without
null check.

Test: http/tests/cache/vary-frameless-document.html

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):

Null check frame.
Also move the resource type check here so all callers get the same behavior.

(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::varyHeaderValuesMatch):

LayoutTests:

  • http/tests/cache/resources/svg-defs-vary.php: Added.
  • http/tests/cache/vary-frameless-document-expected.txt: Added.
  • http/tests/cache/vary-frameless-document.html: Added.
10:03 AM Changeset in webkit [202984] by beidson@apple.com
  • 7 edits
    2 adds in trunk

Clearing LocalStorage doesn't also delete -wal and -shm files.
<rdar://problem/27206772> and https://bugs.webkit.org/show_bug.cgi?id=159566

Reviewed by Brent Fulgham.
Also helpfully picked over by Andy "Never Forgets" Estes.

Source/WebCore:

Covered by new API test.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/sql/SQLiteFileSystem.h:

Source/WebKit2:

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: Added.
9:42 AM Changeset in webkit [202983] by Ryan Haddad
  • 4 edits
    2 deletes in trunk

Unreviewed, rolling out r202945.
https://bugs.webkit.org/show_bug.cgi?id=159565

The test for this change is failing on all platforms.
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"[Font Loading] The callback passed to document.fonts.ready
should always be called"
https://bugs.webkit.org/show_bug.cgi?id=158884
http://trac.webkit.org/changeset/202945

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-08

9:27 AM Changeset in webkit [202982] by keith_miller@apple.com
  • 16 edits
    3 adds in trunk

TypedArrays need more isNeutered checks.
https://bugs.webkit.org/show_bug.cgi?id=159231

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

According to the ES6 spec if a user tries to get, set, or define a
property on a neutered TypedArray we should throw an
exception. Currently, if a user tries to get an out of bounds
access on a TypedArray we will always OSR. This makes handling
the exception easy as all we need to do is make out of bounds gets
in PolymorphicAccess go to the slow path, which will then throw
the appropriate exception. For the case of set, we need ensure we
don't OSR on each out of bounds put since, for some confusing
reason, people do this. Thus, for GetByVal in the DFG/FTL if the
user accesses out of bounds we then need to check if the view has
been neutered. If it is neutered then we will OSR.

Additionally, this patch adds a bunch of isNeutered checks to
various prototype functions for TypedArray, which are needed for
correctness.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • runtime/JSArrayBufferView.h:
  • runtime/JSCJSValue.h:

(JSC::encodedJSUndefined):
(JSC::encodedJSValue):

  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::throwNeuteredTypedArrayTypeError):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncFill):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewProtoFuncSubarray):

  • tests/stress/fold-typed-array-properties.js:
  • tests/stress/typedarray-access-monomorphic-neutered.js: Added.

(check):
(test):
(testFTL):

  • tests/stress/typedarray-access-neutered.js: Added.

(check):
(test):

  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(callWithArgs):
(checkArgumentsForType):
(checkArguments):

  • tests/stress/typedarray-view-string-properties-neutered.js: Added.

(call):
(test):

LayoutTests:

Update tests that assert that we can access indexed properties on
a neutered TypedArray.

  • fast/canvas/webgl/script-tests/arraybuffer-transfer-of-control.js:

(assertViewClosed):

  • js/dom/dfg-typed-array-neuter-expected.txt:
  • js/dom/script-tests/dfg-typed-array-neuter.js:
8:52 AM Changeset in webkit [202981] by nael.ouedraogo@crf.canon.fr
  • 15 edits in trunk/Source/WebCore

ExecState should be passed by reference in JS bindings generator for custom constructors
https://bugs.webkit.org/show_bug.cgi?id=159357

Reviewed by Youenn Fablet.

Pass ExecState as a reference instead of pointer in JS bindings
code for custom constructors.

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::constructJSAudioContext):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSDOMFormDataCustom.cpp:

(WebCore::constructJSDOMFormData):
(WebCore::JSDOMFormData::append):

  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • bindings/js/JSMediaSessionCustom.cpp:

(WebCore::constructJSMediaSession):

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamController):
(WebCore::constructJSReadableStreamReader):

  • bindings/js/JSWebKitPointCustom.cpp:

(WebCore::constructJSWebKitPoint):

  • bindings/js/JSWorkerCustom.cpp:

(WebCore::constructJSWorker):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::construct):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
8:48 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
8:48 AM Changeset in webkit [202980] by Chris Dumez
  • 7 edits in trunk

Expose crossOrigin attribute as a static property in HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=159459

Patch by Olivier Blin <Olivier Blin> on 2016-07-08
Reviewed by Chris Dumez.

The crossOrigin attribute is already used for MediaResourceLoader
(r119742 and r175050), but it was not exposed as a static property.

This fixes VR360 support in Dailymotion, since it uses the "in"
operator to detect if crossOrigin is supported by the
HTMLVideoElement, in order to enable VR360.

No new tests, rebaselined existing tests, 150 WPT tests are fixed.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setCrossOrigin):
(WebCore::HTMLMediaElement::crossOrigin):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
8:30 AM Changeset in webkit [202979] by fred.wang@free.fr
  • 14 edits
    13 adds in trunk

Use Fraction* parameters from the OpenType MATH table
https://bugs.webkit.org/show_bug.cgi?id=155639

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2016-03-20
Reviewed by Brent Fulgham.

We improve the RenderMathMLFraction so minimal vertical shifts and gaps
from the MATH table (or arbitrary fallback) are used for fractions.
We also change the interpretation of "thick" and "thin" linethickness values
to match Gecko's behavior and the one suggested in the MathML in HTML5 implementation note.

Test: imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): set NeedsLayout after displaystyle change
so that dynamic MathML tests still work.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::RenderMathMLFraction): Init LayoutUnit members to zero.
(WebCore::RenderMathMLFraction::updateFromElement):
Set new members for fraction gaps and shifts using Fraction* constants or some fallback
values. Change the interpretation of "thick" and "thin".
(WebCore::RenderMathMLFraction::layoutBlock): Use new constants affecting vertical
positions of numerator and denominator.
(WebCore::RenderMathMLFraction::paint): Use m_ascent to set the vertical position
of the fraction bar.
(WebCore::RenderMathMLFraction::firstLineBaseline): We just return m_ascent.

  • rendering/mathml/RenderMathMLFraction.h: Make updateFromElement public so that

it can be used in MathMLStyle. Add LayoutUnit members for the ascent of the fraction
and for minimal shifts/gaps values.

LayoutTests:

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

We import a test from the MathML in HTML5 test suite to verify Fraction* parameters.
We also do some small test adjustments.

  • TestExpectations: We disable fractions-positions.html for now until it is replaced with a more reliable test.
  • imported/mathml-in-html5/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-rulethickness10000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html: Added.
  • mathml/presentation/fractions-linethickness-expected.html: Adjust the test to interpret

"thick" and "thin" as suggested the MathML in HTML5 implementation note.

  • mathml/presentation/stretchy-depth-height-symmetric.html: Increase error tolerance.
  • platform/gtk/mathml/presentation/roots-expected.png: Handle small rendering changes.
  • platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
8:03 AM Changeset in webkit [202978] by Konstantin Tokarev
  • 3 edits in trunk/Tools

Removed Qt leftovers from Tools.
https://bugs.webkit.org/show_bug.cgi?id=159557

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:

Removed 'qt' platform config.

  • Scripts/webkitpy/common/net/bugzilla/bug.py:

Deleted non-functional e-mail address.

6:16 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:05 AM Changeset in webkit [202977] by fred.wang@free.fr
  • 12 edits
    10 adds in trunk

Use Radical* constants from the OpenType MATH table.
https://bugs.webkit.org/show_bug.cgi?id=155638

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

Source/WebCore:

Test: mathml/mathml-in-html5/root-parameters-1.html

We make the radical vertical gap depends on displaystyle.
This is the only remaining step to use all the Radical* constants from the MATH table.
We also introduce a ruleThicknessFallback function for future use.

  • rendering/mathml/RenderMathMLBlock.h:

(WebCore::RenderMathMLBlock::ruleThicknessFallback): Add this helper function since that
calculation is used in several places.

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::updateStyle): Reorganize the way we set constant parameters,
add more comments and take into account the displaystyle for the vertical gap.

LayoutTests:

Import a test from the MathML in HTML5 test suite to verify all the Radical* parameters.
For test RadicalDegreeBottomRaisePercent, WebKit's drawing of one of the radical sign
is weird. This causes unexpected height of the radical and a fortiori wrong vertical
position of the index. For now, we tweak that height to make the test pass.

  • imported/mathml-in-html5/fonts/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-extraascender3000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-rulethickness8000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-verticalgap6000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1.html: Added.
  • platform/gtk/mathml/radical-fallback-expected.png: Updated to take into account new rendering.
  • platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/radical-fallback-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
5:22 AM Changeset in webkit [202976] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, rolling out r202967.
https://bugs.webkit.org/show_bug.cgi?id=159556

This patch caused crashes in https tests on Windows (Requested
by perarne on #webkit).

Reverted changeset:

"[Win] The test http/tests/security/contentSecurityPolicy
/upgrade-insecure-requests/basic-upgrade.https.html is
failing."
https://bugs.webkit.org/show_bug.cgi?id=159510
http://trac.webkit.org/changeset/202967

3:42 AM Changeset in webkit [202975] by commit-queue@webkit.org
  • 20 edits
    4 adds
    4 deletes in trunk

Generate WebCore builtin wrapper files
https://bugs.webkit.org/show_bug.cgi?id=159461

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-08
Reviewed by Brian Burg.

Source/JavaScriptCore:

Updating builtin generator to generate wrapper files used in WebCore (See WebCore change log).
Rebasing builtins generator test results according generator changes by activating wrapper file generation for
WebCore builtins tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins.py: Adding new generators.
  • Scripts/builtins/builtins_generate_internals_wrapper_header.py: Added to generate WebCoreJSBuiltinInternals.h.
  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py: Added to generate WebCoreJSBuiltinInternals.cpp.
  • Scripts/builtins/builtins_generate_wrapper_header.py: Added to generate WebCoreJSBuiltins.h.
  • Scripts/builtins/builtins_generate_wrapper_implementation.py: Added to generate WebCoreJSBuiltins.cpp.
  • Scripts/generate-js-builtins.py: Adding new option to activate generation of the wrapper files.

(generate_bindings_for_builtins_files):

  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:

Source/WebCore:

No change of behavior.

Updating build system to handle new built-in generators without modifying WebCoreJSBuiltins* files.
The generator is now passed all built-ins at once so that wrapper files can be generated.
Removing WebCoreJSBuiltins* checked-in wrapper files.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/WebCoreJSBuiltinInternals.cpp: Removed.
  • bindings/js/WebCoreJSBuiltinInternals.h: Removed.
  • bindings/js/WebCoreJSBuiltins.cpp: Removed.
  • bindings/js/WebCoreJSBuiltins.h: Removed.

Tools:

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Adding generate_wrapper option.
(BuiltinsGeneratorTests.run_tests): Using this option in WebCore test cases.

3:11 AM Changeset in webkit [202974] by Manuel Rego Casasnovas
  • 14 edits
    2 adds in trunk

[css-grid] Inline size is never indefinite during layout
https://bugs.webkit.org/show_bug.cgi?id=159253

Reviewed by Sergio Villar Senin.

Source/WebCore:

The issue is that the inline size of the grid container
is only indefinite while we're computing the intrinsic sizes.
During layout we should be able to resolve the percentage tracks
against that size. This makes Grid Layout compatible with regular blocks
regarding how inline percentages are resolved.

The patch passes the SizingOperation enum to RenderGrid::gridTrackSize().
That way we can know if we're computing the intrinsic sizes or not.

Test: fast/css-grid-layout/grid-container-percentage-columns.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::spanningItemCrossesFlexibleSizedTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::rawGridTrackSize): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

Created a new test verifying the expected behavior. Updated the results
in a few tests too.

  • fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
  • fast/css-grid-layout/grid-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-container-percentage-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-container-percentage-columns.html: Added.
  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:

The results of this test now show some FAIL messages becase of a bug in
RenderBox::hasDefiniteLogicalHeight() (http://webkit.org/b/159251).

  • fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
2:37 AM Changeset in webkit [202973] by fred.wang@free.fr
  • 8 edits
    7 adds in trunk

Use OpenType MATH constant AxisHeight.
https://bugs.webkit.org/show_bug.cgi?id=133567

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

Source/WebCore:

We make RenderMathMLOperator and RenderMathMLTable use the OpenType MATH constant AxisHeight.
These are the only remaining cases to handle since RenderMathMLFraction already uses that constant.

Tests: imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html

imported/mathml-in-html5/mathml/presentation-markup/tables/table-axis-height.html

  • rendering/mathml/RenderMathMLBlock.cpp: Make RenderMathMLTable use the math axis

for its vertical alignment and update a bit the comments.
(WebCore::axisHeight): Move the code in a static function that can be called by
RenderMathMLBlock and RenderMathMLTable.
(WebCore::RenderMathMLBlock::mathAxisHeight): Use axisHeight.
(WebCore::RenderMathMLTable::firstLineBaseline): Ditto.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo):

LayoutTests:

Import tests from the MathML in HTML5 test suite to verify the AxisHeight parameter.

  • imported/mathml-in-html5/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/tables/table-axis-height.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-expected.txt: Added.
1:57 AM Changeset in webkit [202972] by Manuel Rego Casasnovas
  • 6 edits in trunk

[css-grid] Disallow repeat() in grid-template shorthand
https://bugs.webkit.org/show_bug.cgi?id=159200

Reviewed by Sergio Villar Senin.

Source/WebCore:

As discussed on www-style, "repeat()" notation shouldn't be allowed
in the ASCII branch of the grid-template shorthand.
https://lists.w3.org/Archives/Public/www-style/2016May/0193.html

The patch uses an enum to invalidate "repeat()" when parsing
the grid-template shorthand.

Test: fast/css-grid-layout/grid-template-shorthand-get-set.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTemplateColumns): Add enum.
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Pass "DisallowRepeat"
when calling parseGridTemplateColumns().
(WebCore::CSSParser::parseGridTrackList): Use enum to allow/disallow repeat.

  • css/CSSParser.h: Define the new enum and modify method signatures to use it,

setting it to "AllowRepeat" by default.

LayoutTests:

Modified test to follow the new behavior including new cases.

  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
12:35 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:17 AM Changeset in webkit [202971] by jiewen_tan@apple.com
  • 4 edits in trunk/Source

Define DYLD_MACOSX_VERSION_10_12
https://bugs.webkit.org/show_bug.cgi?id=159525
<rdar://problem/26250296>

Reviewed by Brent Fulgham.

Source/WebKit/mac:

  • WebView/WebView.mm:

(shouldConvertInvalidURLsToBlank):
Replace 0x000A0C00 with DYLD_MACOSX_VERSION_10_12.

Source/WTF:

  • wtf/spi/darwin/dyldSPI.h:
12:15 AM Changeset in webkit [202970] by fred.wang@free.fr
  • 10 edits
    14 adds in trunk

Add support for movablelimits.
https://bugs.webkit.org/show_bug.cgi?id=155542

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: mathml/presentation/displaystyle-1.html

mathml/presentation/displaystyle-2.html
mathml/presentation/displaystyle-3.html
mathml/presentation/mo-movablelimits-default.html
mathml/presentation/mo-movablelimits-dynamic.html
mathml/presentation/mo-movablelimits.html

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Take into account change of movablelimits.

  • rendering/mathml/MathMLOperatorDictionary.h: Remove FIXME comment.
  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): Force relayout and width computation when a
displaystyle value change.

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::shouldMoveLimits): Helper function to test if the operator
should have his limits moved when used as a base of munder/mover/munderover.

  • rendering/mathml/RenderMathMLScripts.cpp: Allow munderover/munder/mover elements to use

this class and take the same behavior as the corresponding msubsup/msub/sup except for
the *scriptshift attributes.
(WebCore::RenderMathMLScripts::RenderMathMLScripts):
(WebCore::RenderMathMLScripts::getBaseAndScripts):
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::layoutBlock):

  • rendering/mathml/RenderMathMLScripts.h: Allow some members to be accessible/overridden

by RenderMathMLUnderOver and add munderover/munder/mover in the kind.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): We use the code from
RenderMathMLScripts to initialize m_kind.
(WebCore::RenderMathMLUnderOver::shouldMoveLimits): New function to determine if the base
should move its limits.
(WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): We use the code from
RenderMathMLScripts when the base should move its limits.
(WebCore::RenderMathMLUnderOver::layoutBlock): We use the code from RenderMathMLScripts when
the base should move its limits. Also improve the early return for invalid markup.
(WebCore::RenderMathMLUnderOver::unembellishedOperator): Deleted. We use the code from RenderMathMLScripts.
(WebCore::RenderMathMLUnderOver::firstLineBaseline): Deleted. We use the code from RenderMathMLScripts.

  • rendering/mathml/RenderMathMLUnderOver.h: We now inherit from RenderMathMLScripts and can

just remove members that exist in the parent. We define shouldMoveLimits() to determine
when the layout should be done the same as RenderMathMLScripts. For now, we try and be
safe with the rest of the code by continuing to claim that we are not a RenderMathMLScripts.

LayoutTests:

We import some reftests from Mozilla and write more tests in order to verify the effect of
movablelimits. We also adjust one existing test due to change in how munderover handles
invalid markup.

  • mathml/presentation/displaystyle-1.html: Added. Imported from Mozilla. This verifies the

inheritance of displaystyle via its effect on movablelimits.

  • mathml/presentation/displaystyle-1-expected.html: Added.
  • mathml/presentation/displaystyle-2.html: Added. Imported from Mozilla. Test the effect of

displaystyle on munder, mover and munderover with a movablelimits base.

  • mathml/presentation/displaystyle-2-expected.html: Added.
  • mathml/presentation/displaystyle-3.html: Added. Imported from Mozilla. Test dynamic change

of displaystyle via its effect on movablelimits.

  • mathml/presentation/displaystyle-3-expected.html: Added.
  • mathml/presentation/mo-movablelimits-default.html: Added. Test that the default

movablelimits value from the operator dictionary is correctly read.

  • mathml/presentation/mo-movablelimits-default-expected.html: Added.
  • mathml/presentation/mo-movablelimits-dynamic.html: Added. Imported from Mozilla.

Test dynamic change of movablelimits.

  • mathml/presentation/mo-movablelimits-dynamic-expected.html: Added.
  • mathml/presentation/mo-movablelimits.html: Added. Basic test to check the effect of

movablelimits on munder.

  • mathml/presentation/mo-movablelimits-expected.html: Added.
  • mathml/presentation/underover-scriptshifts.html: Added. This verifies that script shifts

do not have any effect on munderover/mover/munder elements when their limits are rendered
as postscripts.

  • mathml/presentation/underover-scriptshifts-expected.html: Added.
12:05 AM Changeset in webkit [202969] by Hunseop Jeong
  • 2 edits
    1 delete in trunk/Tools

[EFL] Fix build when media-stream is enabled.
https://bugs.webkit.org/show_bug.cgi?id=159206

Bump up the openwebrtc to find the correct package.

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • efl/patches/openwebrtc-clang-warning-fix.patch: Removed.
Note: See TracTimeline for information about the timeline view.