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

Timeline



Feb 18, 2017:

11:22 PM Changeset in webkit [212610] by Chris Dumez
  • 10 edits in trunk

<input type=range readonly> doesn't act per spec
https://bugs.webkit.org/show_bug.cgi?id=168422
<rdar://problem/30593189>

Reviewed by Ryosuke Niwa.

Source/WebCore:

'readonly' attribute should not apply to <input type=range> as per the HTML
specification:

Firefox and Edge already behave as per the specification.

No new tests, updated existing tests.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
(WebCore::RangeInputType::handleKeydownEvent):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
(WebCore::SliderThumbElement::willRespondToMouseClickEvents):

LayoutTests:

Update / rebaseline existing tests to reflect behavior change.

  • fast/forms/range/range-drag-expected.txt:
  • fast/forms/range/range-drag-when-toggled-disabled-expected.txt:
  • fast/forms/range/range-drag-when-toggled-disabled.html:
  • fast/forms/range/range-drag.html:
  • fast/forms/range/range-keyoperation-expected.txt:
  • fast/forms/range/range-keyoperation.html:
3:58 PM Changeset in webkit [212609] by Chris Dumez
  • 8 edits
    2 adds in trunk

Recursive MessagePort.postMessage() calls causes tab to become unresponsive
https://bugs.webkit.org/show_bug.cgi?id=168548
<rdar://problem/29808005>

Reviewed by Darin Adler.

Source/WebCore:

MessagePort::dispatchMessages() was getting messages one by one of the
channel's MessageQueue and firing the MessageEvent for each of them.
The issue is that we can get stuck in an infinite loop if the
MessageEvent handler posts a message on the same post.

To address the issue, we now takes all messages from the queue before
iterating over them to fire the event. This way, if new messages are
added to the queue in one of the MessageEvent handlers, they will not
be processed until the next event loop iteration, as is expected.

Test: fast/events/message-port-postMessage-recursive.html

  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchMessages):

  • dom/MessagePortChannel.h:

(WebCore::MessagePortChannel::EventData::EventData):

  • dom/default/PlatformMessagePortChannel.cpp:

(WebCore::MessagePortChannel::postMessageToRemote):

  • dom/default/PlatformMessagePortChannel.h:

(WebCore::PlatformMessagePortChannel::MessagePortQueue::takeMessage):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::takeAllMessages):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):

Source/WTF:

Add API to retrieve all messages in the queue at once.

  • wtf/MessageQueue.h:

LayoutTests:

Add layout test coverage. The test used to time out, it now passes.
The test also passes on Firefox and Chrome.

  • fast/events/message-port-postMessage-recursive-expected.txt: Added.
  • fast/events/message-port-postMessage-recursive.html: Added.
3:08 PM Changeset in webkit [212608] by Michael Catanzaro
  • 24 edits
    5 deletes in trunk/Source

Remove COORDINATED_GRAPHICS_MULTIPROCESS
https://bugs.webkit.org/show_bug.cgi?id=168514

Reviewed by Darin Adler.

Source/WebCore:

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

Source/WebKit2:

  • Shared/DrawingAreaInfo.h:
  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp:

(WKViewFindZoomableAreaForRect):

  • UIProcess/AcceleratedDrawingAreaProxy.cpp:

(WebKit::AcceleratedDrawingAreaProxy::AcceleratedDrawingAreaProxy):

  • UIProcess/AcceleratedDrawingAreaProxy.h:

(WebKit::AcceleratedDrawingAreaProxy::coordinatedLayerTreeHostProxy): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: Removed.
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h: Removed.
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in: Removed.
  • UIProcess/CoordinatedGraphics/PageViewportController.cpp:

(WebKit::PageViewportController::pageTransitionViewportReady):

  • UIProcess/CoordinatedGraphics/WebPageProxyCoordinatedGraphics.cpp: Removed.
  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageDidRequestScroll): Deleted.
(WebKit::WebPageProxy::pageTransitionViewportReady): Deleted.
(WebKit::WebPageProxy::didRenderFrame): Deleted.
(WebKit::WebPageProxy::commitPageTransitionViewport): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea):
(WebKit::AcceleratedDrawingArea::updateBackingStoreState):
(WebKit::AcceleratedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage): Deleted.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::commitSceneState):
(WebKit::CoordinatedLayerTreeHost::createCoordinatedSurface):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp: Removed.
  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create):

  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::create):

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):
(WebKit::WebPage::pageDidRequestScroll):
(WebKit::WebPage::didCompletePageTransition):
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::commitPageTransitionViewport): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:30 AM Changeset in webkit [212607] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of a few more tests that are failing.

  • platform/gtk/TestExpectations:
2:17 AM Changeset in webkit [212606] by Carlos Garcia Campos
  • 1 edit
    5 adds in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html.

Selection is always directional for us.

  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt: Added.
2:01 AM Changeset in webkit [212605] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Cannot paste primary selection into web view in Wayland
https://bugs.webkit.org/show_bug.cgi?id=166949

Reviewed by Carlos Garcia Campos.

Once upon a time, primary selection (middle-click paste) was not supported in Wayland. At
the time, I changed this function to report that primary selection was unsupported. But
nowadays, primary selection works fine in all GTK+ applications except WebKit. All we have
to do to make it work in WebKit is change this return value.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::supportsGlobalSelection):

1:44 AM Changeset in webkit [212604] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of several tests.

  • platform/gtk/TestExpectations:

Feb 17, 2017:

10:57 PM Changeset in webkit [212603] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use Maps in FrameResourceManager instead of objects
https://bugs.webkit.org/show_bug.cgi?id=168549
<rdar://problem/30590110>

Reviewed by Joseph Pecoraro.

Use Map for _frameIdentifierMap and _resourceRequestIdentifierMap.

  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.initialize):
(WebInspector.FrameResourceManager.prototype.get frames):
(WebInspector.FrameResourceManager.prototype.frameForIdentifier):
(WebInspector.FrameResourceManager.prototype.frameDidDetach):
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype.markResourceRequestAsServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveData):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
(WebInspector.FrameResourceManager.prototype._processMainFrameResourceTreePayload):
(WebInspector.FrameResourceManager.prototype._createFrame):

10:41 PM Changeset in webkit [212602] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Allow properties in CSSProperties.json that don't trigger code generation
https://bugs.webkit.org/show_bug.cgi?id=168535

Reviewed by Sam Weinig.

In order to track the development of CSS properties that we have not yet implemented,
support '"skip-codegen" : true' in "codegen-properties".

Test by adding a few fill-related properties with this attribute.

  • css/CSSProperties.json:
  • css/makeprop.pl:

(isPropertyEnabled):
(addProperty):

5:13 PM Changeset in webkit [212601] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/WebCore

Merge r212554. rdar://problem/30339638

5:12 PM Changeset in webkit [212600] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Merge r212354. rdar://problem/30450371

5:12 PM Changeset in webkit [212599] by matthew_hanson@apple.com
  • 10 edits
    2 adds in branches/safari-603-branch

Merge r212265. rdar://problem/30231732

5:12 PM Changeset in webkit [212598] by matthew_hanson@apple.com
  • 5 edits
    6 adds in branches/safari-603-branch

Merge r212218. rdar://problem/30339793

4:40 PM Changeset in webkit [212597] by BJ Burg
  • 16 edits
    1 add in trunk/Source

Web Inspector: RTL: Inspector window should dock to the left when using RTL layout direction
https://bugs.webkit.org/show_bug.cgi?id=168273
<rdar://problem/29949325>

Reviewed by Matt Baker.

Add the ability to dock Web Inspector to the left of the inspected view.
The frontend decides whether the Dock to Side button docks left or right
based on the current layout direction.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::setAttachedWindow):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::requestSetDockSide):

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Rename the "Dock to Right" button to "Dock to Side" instead. It's easier to just
have one button than to try and conditionally hide one or the other based on
the layout direction. Change the dock callback and the icon used for the button
depending on layout direction.

(WebInspector.resolvedLayoutDirection):
Refactor getLayoutDirection() to resolvedLayoutDirection() so callers get back
either "ltr" or "rtl".

Flip the dock side if layout direction changes while docked to the side.

Adjust various code paths to account for the existing of left docking. In particular,
resize rejection needs special-casing for resizing leftward from beyond the right side
of the Inspector view when it is docked to the left. Improve related comments since it
took me an unbelievable amount of time to understand what this code is supposed to do.

  • UserInterface/Views/Main.css:

(body.docked.right):
(body.docked.left #docked-resizer):
(body.docked:matches(.right, .left) #navigation-sidebar.collapsed > .resizer):
(body.docked.right #navigation-sidebar.collapsed > .resizer): Deleted.
Add .docked.left analogues to rules for .docked.right.

Source/WebKit2:

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::attachLeft):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::createInspectorPage):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.messages.in:

Add plumbing for new dock configuration.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorProxy::platformAttach):
Adapt existing sizing logic to work for docking to left.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::requestSetDockSide):
(WebKit::WebInspectorUI::setDockSide):

  • WebProcess/WebPage/WebInspectorUI.h:

(WebKit::WebInspectorUI::attachedLeft):

  • WebProcess/WebPage/WebInspectorUI.messages.in:

Add plumbing for new dock configuration.

4:28 PM Changeset in webkit [212596] by matthew_hanson@apple.com
  • 5 edits
    1 add in branches/safari-603-branch

Merge r212177. rdar://problem/30205880

4:10 PM Changeset in webkit [212595] by matthew_hanson@apple.com
  • 16 edits
    16 adds in branches/safari-603-branch

Merge r212035. rdar://problem/30433204

3:59 PM Changeset in webkit [212594] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r212146. rdar://problem/28656664

3:52 PM Changeset in webkit [212593] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch/Source/WebKit2

Merge r212244. rdar://problem/23676252

3:52 PM Changeset in webkit [212592] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Improve ARM64 disassembler handling of pseudo ops, unsupported opcodes and zero reg
https://bugs.webkit.org/show_bug.cgi?id=168527

Reviewed by Filip Pizlo.

Added support for data processing 1 source instructions like rbit, rev, clz and cls.
Added support for the FP conditional select instruction, fcsel. Consolidated the
two classes for handling dmb instructions into one class. Fixed the instruction
selection mask in the integer conditional select class, A64DOpcodeConditionalSelect.
Fixed the processing of extract instruction (extr) including the rotate right (ror)
pseudo instruction. Changed the printing of x31 and w31 to xzr and wzr as operands
according to the spec. Added support for common pseudo instructions. This includes:

  • mvn x1, X2 in place of orn x1, xzr, x2
  • lsl x3, x4, #count in place of ubfiz x3, x4, #count, #count
  • smull x5, w6, w7 in place of smaddl x5, w6, w7, XZR
  • More understandable mov x8, #-304 in place of movn x8, #0x12f
  • Eliminated xzr from register index loads and stores, outputing ldr x10, [x11] instead of ldr x10, [x11, xzr]

Changed the move wide instructions to use hex literals for movz and movk.
This makes it much easier to decifer sequences of wide moves for large literals.

Before After

movz x17, #26136 movz x17, #0x6618
movk x17, #672, lsl #16 movk x17, #0x2a0, lsl #16
movk x17, #1, lsl #32 movk x17, #0x1, lsl #32

Verified that all instructions currently generated by the JSC stress tests are
disassembled.

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcodeBitfield::format):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing1Source::format):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing2Source::format):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing3Source::format):
(JSC::ARM64Disassembler::A64DOpcodeExtract::format):
(JSC::ARM64Disassembler::A64DOpcodeFloatingPointConditionalSelect::format):
(JSC::ARM64Disassembler::A64DOpcodeFloatingPointIntegerConversions::format):
(JSC::ARM64Disassembler::A64DOpcodeDmb::format):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreImmediate::format):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterOffset::format):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::format):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreUnsignedImmediate::format):
(JSC::ARM64Disassembler::A64DOpcodeLogicalShiftedRegister::format):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::format):
(JSC::ARM64Disassembler::A64DOpcodeDmbIsh::format): Deleted.
(JSC::ARM64Disassembler::A64DOpcodeDmbIshSt::format): Deleted.

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcode::appendSignedImmediate64):
(JSC::ARM64Disassembler::A64DOpcode::appendUnsignedHexImmediate):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing1Source::opName):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing1Source::sBit):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing1Source::opCode):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing1Source::opCode2):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing1Source::opNameIndex):
(JSC::ARM64Disassembler::A64DOpcodeDataProcessing3Source::opName):
(JSC::ARM64Disassembler::A64DOpcodeFloatingPointConditionalSelect::opName):
(JSC::ARM64Disassembler::A64DOpcodeFloatingPointConditionalSelect::condition):
(JSC::ARM64Disassembler::A64DOpcodeDmb::option):
(JSC::ARM64Disassembler::A64DOpcodeDmb::crM):
(JSC::ARM64Disassembler::A64DOpcodeLogicalShiftedRegister::isMov):
(JSC::ARM64Disassembler::A64DOpcodeDmbIsh::opName): Deleted.
(JSC::ARM64Disassembler::A64DOpcodeDmbIshSt::opName): Deleted.

3:49 PM Changeset in webkit [212591] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Fix failure from r212579.

Unreviewed build-fix.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:

(CheckPatchRelevance._changes_are_relevant): Return true for all groups others than jsc for now.

3:41 PM Changeset in webkit [212590] by Simon Fraser
  • 27 edits
    4 adds in trunk

Allow PlatformCALayers to specify that they want deep color backing store
https://bugs.webkit.org/show_bug.cgi?id=168495

Reviewed by Tim Horton.
Source/WebCore:

Currently capable iOS devices get deep color backing store by virtue of a supports
check in PlatformCALayerCocoa::PlatformCALayerCocoa(), and LegacyTileGridTile.

Future work will make layer contents format selection more complex, so express the need
for deep color on PlatformCALayer, and have the creators of PlatformCALayer (mainly the
flavors of GraphicsLayerCA) choose for them to support deep color. A bit of special-casing
is needed to propagte the state to TileControllers.

The deep-colorness now propagates from PlatformCALayerRemote to RemoteLayerBackingStore,
instead of RemoteLayerBackingStore looking at the properties of the screen directly.

Remove PlatformCALayer::LayerTypeWebTiledLayer which was only used for the old CATiledLayers
that we no longer use.

An iphone7 test verifies that page tiles, normal layers and tiled layers get the deep
color state set on them.

Test: tiled-drawing/ios/iphone7/compositing-layers-deep-color.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createPlatformCALayer):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::canHaveBackingStore):
(WebCore::operator<<):

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setZoomedOutContentsScale):
(WebCore::TileController::setAcceleratesDrawing):
(WebCore::TileController::setWantsDeepColorBackingStore):
(WebCore::TileController::createTileLayer):

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::updateTileLayerProperties):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::PlatformCALayerCocoa):
(PlatformCALayerCocoa::commonInit):
(PlatformCALayerCocoa::wantsDeepColorBackingStore):
(PlatformCALayerCocoa::setWantsDeepColorBackingStore):
(layerContentsFormat):
(PlatformCALayerCocoa::updateContentsFormat):

  • platform/graphics/ca/cocoa/WebTiledBackingLayer.h:
  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer setWantsDeepColorBackingStore:]):
(-[WebTiledBackingLayer wantsDeepColorBackingStore]):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::wantsDeepColorBackingStore):
(PlatformCALayerWin::setWantsDeepColorBackingStore):
(printLayer):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
  • platform/spi/cocoa/QuartzCoreSPI.h:

Source/WebKit2:

Currently capable iOS devices get deep color backing store by virtue of a supports
check in PlatformCALayerCocoa::PlatformCALayerCocoa(), and LegacyTileGridTile.

Future work will make layer contents format selection more complex, so express the need
for deep color on PlatformCALayer, and have the creators of PlatformCALayer (mainly the
flavors of GraphicsLayerCA) choose for them to support deep color. A bit of special-casing
is needed to propagte the state to TileControllers.

The deep-colorness now propagates from PlatformCALayerRemote to RemoteLayerBackingStore,
instead of RemoteLayerBackingStore looking at the properties of the screen directly.

Remove PlatformCALayer::LayerTypeWebTiledLayer which was only used for the old CATiledLayers
that we no longer use.

  • Shared/mac/RemoteLayerBackingStore.h:
  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::bytesPerPixel):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::drawInContext):
(WebKit::RemoteLayerBackingStore::surfaceBufferFormat):
(WebKit::bufferFormat): Deleted.

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:

(WebKit::GraphicsLayerCARemote::createPlatformCALayer):

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::updateBackingStore):
(WebKit::PlatformCALayerRemote::wantsDeepColorBackingStore):
(WebKit::PlatformCALayerRemote::setWantsDeepColorBackingStore):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:

(WebKit::PlatformCALayerRemoteTiledBacking::wantsDeepColorBackingStore):
(WebKit::PlatformCALayerRemoteTiledBacking::setWantsDeepColorBackingStore):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

LayoutTests:

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • tiled-drawing/ios/iphone7/compositing-layers-deep-color-expected.txt: Added.
  • tiled-drawing/ios/iphone7/compositing-layers-deep-color.html: Added.
3:39 PM Changeset in webkit [212589] by matthew_hanson@apple.com
  • 7 edits in branches/safari-603-branch

Roll out r211501 via r212488. rdar://problem/29904368

3:39 PM Changeset in webkit [212588] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/LayoutTests

Roll out r212168 via r212498. rdar://problem/29904368

3:39 PM Changeset in webkit [212587] by matthew_hanson@apple.com
  • 41 edits in branches/safari-603-branch

Roll out r212173 via r212500. rdar://problem/29904368

3:39 PM Changeset in webkit [212586] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Roll out r212174 via r212501. rdar://problem/29904368

3:39 PM Changeset in webkit [212585] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit/win

Roll out r212175 via r212502. rdar://problem/29904368

3:39 PM Changeset in webkit [212584] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/JavaScriptCore

Revert "rdar://problem/30553220"

This reverts commit d49f396c122789d495a54a97f49787b0cd4308cd.

3:36 PM Changeset in webkit [212583] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

2:54 PM Changeset in webkit [212582] by BJ Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: add TabBar support for RTL layout
https://bugs.webkit.org/show_bug.cgi?id=168446

Reviewed by Matt Baker.

There are two types of changes needed:

  • Flip leading and trailing borders and margins for the tab items.
  • Enumerate tabs in reverse order when performing manual layout.

Along the way, I added some color variables local to TabBar.css to
reduce the number of redundant border-style and color declarations.

  • UserInterface/Base/Main.js:

Change this to resolvedLayoutDirection(), and resolve "System" to "ltr" or "rtl".
This makes it suitable for use in manual layout without worrying about "System".
Fix the one existing use-site to not do its own resolution of "System".

  • UserInterface/Views/TabBar.css:

Define commonly used colors and border styles and adopt var() usages.
Flip borders that should vary in RTL vs LTR, but not all of them. In
many cases, the border is not direction-dependent and looks the same
on both sides. Also, no need to swap animated properties as all manual
layout is done from the left edge.

(.tab-bar):
(body.window-inactive .tab-bar):
(.tab-bar > .top-border):
(body.window-inactive .tab-bar > .top-border):
(.tab-bar > .item):
(body[dir=ltr] .tab-bar > :nth-child(n + 2 of .item),):
(body[dir=rtl] .tab-bar > :nth-child(n + 2 of .item),):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover):
(body[dir=ltr] .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,):
(body[dir=rtl] .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,):
(body.window-inactive .tab-bar > .item):
(body[dir=ltr].window-inactive .tab-bar > .item):
(body[dir=rtl].window-inactive .tab-bar > .item):
(.tab-bar > .item > .close):
(body[dir=ltr] .tab-bar > .item > .close):
(body[dir=rtl] .tab-bar > .item > .close):
(.tab-bar > .item:not(.pinned) > .flex-space:last-child):
(body[dir=ltr] .tab-bar > .item:not(.pinned) > .flex-space:last-child):
(body[dir=rtl] .tab-bar > .item:not(.pinned) > .flex-space:last-child):
(.tab-bar > .item > .title):
(body[dir=ltr] .tab-bar > .item > .title):
(body[dir=rtl] .tab-bar > .item > .title):
(.tab-bar.collapsed > .item > .close):
(body[dir=ltr] .tab-bar.collapsed > .item > .close):
(body[dir=rtl] .tab-bar.collapsed > .item > .close):

  • UserInterface/Views/TabBar.js:

When doing manual layout, keep doing calculations with respect to the left edge
and keep the list of tab items in logical (LTR) order, as in the DOM. But, when
manually positioning tab items for RTL layout direction, reverse the tab items
so that it matches the screen/layout order of the flipped flexbox items.

(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem.animateTabs):
In RTL, put extra space after closing a tab to the left of normal tabs. This
matches the behavior of LTR, but requires some additional measurement since we
still position tabs using left and can't simply infer the leftover space.

(WebInspector.TabBar.prototype._tabBarItemsFromLeftToRight): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseUp):

2:51 PM Changeset in webkit [212581] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebCore

Refactoring: Make sure to unprepare WebAudioSourceProviderAVFObjC when its owner is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=168532

Reviewed by Youenn Fablet.

Because WebAudioSourceProviderAVFObjC has a back-pointer to the object which creted it, make
sure that back-pointer is invalidated once the creating object is destroyed by calling
WebAudioSOurceProviderAVFObjC::unprepare().

Drive-by Fix: In WebAudioSourceProviderAVFObjC::audioSamplesAvailable(), PlatformAudioData will
always be of the WebAudioBufferList type. If this ever becomes untrue, an invalid downcast will
be caught by downcast<>, so just remove the is<> check.

  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::~AVAudioCaptureSource):

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

(WebCore::MockRealtimeAudioSourceMac::~MockRealtimeAudioSourceMac):

  • platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource):

  • platform/mediastream/mac/RealtimeIncomingAudioSource.h:
  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::~WebAudioSourceProviderAVFObjC):
(WebCore::WebAudioSourceProviderAVFObjC::setClient):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):
(WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable):

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

Web Inspector: Zoom level UI out of sync with setting value
https://bugs.webkit.org/show_bug.cgi?id=168522

Patch by Devin Rousso <Devin Rousso> on 2017-02-17
Reviewed by Brian Burg.

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView):
Trigger a layout whenever the zoomFactor setting is changed. This is needed since the
zoomFactor setting can also be modified by global keyboard shortcuts.

2:41 PM Changeset in webkit [212579] by commit-queue@webkit.org
  • 26 edits
    6 adds in trunk/Tools

EWS should run JavaScriptCore tests
https://bugs.webkit.org/show_bug.cgi?id=162458

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2017-02-17
Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/config/queues.py: Add jsc-ews queue.
  • QueueStatusServer/model/queuestatus.py:

(QueueStatus.did_skip): Returns whether patch was skipped, based on status.

  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._should_show_bubble_for): Add logic to hide jsc-ews bubble if the patch does not touch jsc.

  • Scripts/webkitpy/common/checkout/scm/scm_mock.py:

(MockSCM.init): Add _mockChangedFiles variable.
(MockSCM.changed_files): Change to use _mockChangedFiles variables.

  • Scripts/webkitpy/common/config/ews.json: Add config info for JSC EWS.
  • Scripts/webkitpy/common/config/ports.py: Add support for JSC EWS in Mac Port.

(DeprecatedPort._append_build_style_flag): Helper function to append build_style to a command.
(DeprecatedPort.build_jsc_command): Added - command to build JSC only (quicker than building all of WebKit).
(DeprecatedPort.run_javascriptcore_tests_command): Allow JSC EWS to only run JSC tests.
(MacPort.run_webkit_tests_command): Check for JSC.

  • Scripts/webkitpy/common/config/ports_mock.py:

(MockPort.run_javascriptcore_tests_command): Add build_style argument.

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_mac_port): Add unit tests for build-jsc shell command.

  • Scripts/webkitpy/common/net/abstracttestresults.py: Added.

(AbstractTestResults): Abstract superclass of JSCTestResults and JSCTestResults.
(AbstractTestResults.test_results): Stub.
(AbstractTestResults.failing_tests): Stub.
(AbstractTestResults.did_exceed_test_failure_limit): Stub.

  • Scripts/webkitpy/common/net/jsctestresults.py: Added.

(JSCTestResults): Added.
(JSCTestResults.intersection): Return a JSCTestResults object with failures common to both input objects.
(JSCTestResults.results_from_string): Use json library to parse results.
(JSCTestResults.init): Initialize members.
(JSCTestResults.equals): This enables unit testing.
(JSCTestResults.is_subset): Checks if one set of failures is a subset of another.
(JSCTestResults.all_passed): Getter.
(JSCTestResults.failing_tests): Getter.
(JSCTestResults.did_exceed_test_failure_limit): Getter.

  • Scripts/webkitpy/common/net/jsctestresults_unittest.py: Added.

(JSCTestResultsTest): Class to test JSCTestResults.
(JSCTestResultsTest.test_results_from_string): Tests parsing.
(JSCTestResultsTest.test_intersection_api_tests): Unit test for intersection() class method.
(JSCTestResultsTest.test_intersection_stress_tests): Unit test for intersection() class method.
(JSCTestResultsTest.test_intersection_general_case): Unit test for intersection() class method.

  • Scripts/webkitpy/port/base.py:

(Port.jsc_results_directory): Returns the directory for the JSC test results JSON file.

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

(EarlyWarningSystemTask.run): Add check_patch_relevance step.

  • Scripts/webkitpy/tool/bot/jscews_unittest.py: Added.

(MockPatchAnalysisTask): Mocked-out version of PatchAnalysisTask that doesn't run commands.
(MockPatchAnalysisTask.init): Sets attributes.
(MockPatchAnalysisTask._test): Override to not run command.
(MockPatchAnalysisTask._build_and_test_without_patch): Override to not run command.
(MockPatchAnalysisTask.validate): Assume mocked patch is valid for purposes of testing retry logic.
(MockPatchAnalysisTask.test_run_count): Specific to the mocked version, to test retry logic.
(MockJSCEarlyWarningSystem): Mocked-out version of AbstarctEarlyWarningSystem so we can provide test results.
(MockJSCEarlyWarningSystem.init): Sets attributes, also sets group to jsc.
(MockJSCEarlyWarningSystem.test_results): Returns test results provided by us, instead of using a JSON reader.
(JSCEarlyWarningSystemTest): Class to test retry logic in below situations.
(JSCEarlyWarningSystemTest._create_task): Helper function to abstract out common code.
(JSCEarlyWarningSystemTest._results_indicate_all_passed): False if input is None or has failures, else True.
(JSCEarlyWarningSystemTest.test_success_case): Clean patch on clean tree.
(JSCEarlyWarningSystemTest.test_test_failure): Failed patch on clean tree.
(JSCEarlyWarningSystemTest.test_fix): Patch that fixes all tree redness.
(JSCEarlyWarningSystemTest.test_ineffective_patch): Patch that has same failures as tree.
(JSCEarlyWarningSystemTest.test_partially_effective_patch): Patch fixes some failures but adds no new failures.
(JSCEarlyWarningSystemTest.test_different_test_failures_in_patch_and_tree): Patch has some failures not in tree.
(JSCEarlyWarningSystemTest.test_first_results_could_not_be_read): Patch results not readable.
(JSCEarlyWarningSystemTest.test_second_results_could_not_be_read): Patch results not readable on second run.
(JSCEarlyWarningSystemTest.test_clean_results_could_not_be_read): Results from clean tree not readable.
(JSCEarlyWarningSystemTest.test_flaky_results_on_clean_tree_pass): Patch has one flake and no failures.
(JSCEarlyWarningSystemTest.test_flaky_results_on_clean_tree_pass_v2): Patch has one flake and no failures.
(JSCEarlyWarningSystemTest.test_flaky_results_on_clean_tree_failure): Patch has flakes and failed tests.
(JSCEarlyWarningSystemTest.test_flaky_results_on_red_tree_pass): Patch has same failures as tree, plus a flake.

  • Scripts/webkitpy/tool/bot/jsctestresultsreader.py: Added.

(JSCTestResultsReader): Reads results file.
(JSCTestResultsReader.init): Sets attributes.
(JSCTestResultsReader._read_file_contents): Reads file.
(JSCTestResultsReader.results): Reads the results file and returns a JSCTestResults object.

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

(PatchIsNotApplicable): Exception for when patch doesn't have relevant changes.
(PatchAnalysisTask._check_patch_relevance): Added.
(PatchAnalysisTask._build): Check for JSC.
(PatchAnalysisTask._build_without_patch): Check for JSC.
(PatchAnalysisTask._test): Check for JSC.
(PatchAnalysisTask._build_and_test_without_patch): Check for JSC.
(PatchAnalysisTask._retry_jsc_tests): Retry logic for JSC EWS.
(PatchAnalysisTask._retry_layout_tests): Retry logic for layout tests EWS.
(PatchAnalysisTask._test_patch): Add retry logic for JSC.

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

(CheckPatchRelevance): Add check-patch-relevance command.

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

(AbstractEarlyWarningSystem._create_task): Abstract out to enable mocking.
(AbstractEarlyWarningSystem.begin_work_queue): Use JSCTestResultsReader not LayoutTestResultsReader in JSC EWS.
(AbstractEarlyWarningSystem.review_patch): Handle PatchIsApplicable.
(AbstractEarlyWarningSystem.test_results): _layout_test_results_reader -> _test_results_reader.
(AbstractEarlyWarningSystem.archive_last_test_results): _layout_test_results_reader -> _test_results_reader.
(AbstractEarlyWarningSystem.group): This attribute determines the type of EWS (eg. JSC).
(AbstractEarlyWarningSystem.load_ews_classes): Add _group, and make classes of type cls to enable mocking.

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

(TestEWS): Sample layout test EWS class used for unit testing.
(TestJSCEWS): Sample JSC EWS class used for unit testing.
(AbstractEarlyWarningSystemTest.test_failing_tests_message.TestEWS): Add _group.
(AbstractEarlyWarningSystemTest.test_failing_jsc_tests_message.TestEWS): Added test for jsc failures message.
(AbstractEarlyWarningSystemTest): Add _group variable.
(EarlyWarningSystemTest._default_expected_logs): Add check-patch-relevance step, inconclusive logs, and group.
(EarlyWarningSystemTest._test_ews): Add logs_are_conclusive option to pass through to default_expected_logs().
(EarlyWarningSystemTest.test_inconclusive_test_results): Test not removing patch from queue if not conclusive.
(MockAbstractEarlyWarningSystemForInconclusiveJSCResults): Added.
(MockAbstractEarlyWarningSystemForInconclusiveJSCResults._test_patch): Simulates running tests but not getting a conclusive result.
(MockEarlyWarningSystemTaskForInconclusiveJSCResults): Added.
(MockEarlyWarningSystemTaskForInconclusiveJSCResults._create_task): Use MockEarlyWarningSystemTask (not EarlyWarningSystemTask).

  • Scripts/webkitpy/tool/steps/init.py: Add CheckPatchRelevance import.
  • Scripts/webkitpy/tool/steps/build.py:

(Build.options): Check for JSC.
(Build.build): Check for JSC.
(Build.run): Check for JSC.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py: Added.

(CheckPatchRelevance): Added.
(CheckPatchRelevance._does_contain_change_in_paths): Abstract function to perform regex matching.
(CheckPatchRelevance.run): Check if changed files in patch belong in certain folders.

  • Scripts/webkitpy/tool/steps/options.py:

(Options): Add --group command line option.

  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests.options): Add group.
(RunTests.run): Check for JSC.
(RunTests._run_webkit_tests): Check for JSC.
(RunTests): Add _group attribute.
(RunTests._run_javascriptcore_tests): New.

  • Scripts/webkitpy/tool/steps/steps_unittest.py: Unit tests.
2:39 PM Changeset in webkit [212578] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Loc: Zoom level in Settings tab needs to use localized formatting
https://bugs.webkit.org/show_bug.cgi?id=168465

Reviewed by Matt Baker.

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView.prototype.layout):
(WebInspector.SettingsTabContentView):

2:20 PM Changeset in webkit [212577] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: CodeMirror text editor instances have scrollbars on left and right
https://bugs.webkit.org/show_bug.cgi?id=168274

Reviewed by Matt Baker.

CodeMirror doesn't draw its own scrollbar correctly when content is in RTL,
so it draws an extra scrollbar on the right side. And, for the majority of
cases, we don't want to view CSS / JS content aligned to the right.

Manually set the "dir" attribute for all CodeMirror editor instances to "ltr".
Clients can override this if custom RTL layout is available in a particular case.

  • UserInterface/Views/CodeMirrorEditor.js:

(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):

1:57 PM Changeset in webkit [212576] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Fix expected.txt file for tiled-drawing/tiled-backing-in-window.html.

Unreviewed test gardening.

  • tiled-drawing/tiled-backing-in-window-expected.txt:
1:48 PM Changeset in webkit [212575] by graouts@webkit.org
  • 8 edits
    2 adds in trunk

[Modern Media Controls] Improve handling of <video> with only audio tracks
https://bugs.webkit.org/show_bug.cgi?id=167836
<rdar://problem/30255812>

Reviewed by Dean Jackson.

Source/WebCore:

We now check for the availability of video tracks before considering a <video>
element is displaying an actual video file and turning auto-hide on. We also
check that we have video tracks before enabling the fullscreen button. This
brings the behavior of a <video> pointing to a resource with no video tracks
to be the same as an <audio> element.

Test: media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html

  • Modules/modern-media-controls/media/controls-visibility-support.js:

(ControlsVisibilitySupport.prototype.get tracksToMonitor):
(ControlsVisibilitySupport.prototype._updateControls):
(ControlsVisibilitySupport):

  • Modules/modern-media-controls/media/fullscreen-support.js:

(FullscreenSupport.prototype.syncControl):
(FullscreenSupport):

LayoutTests:

Add a new test to check that a <video> with a resource that only has audio tracks
does not auto-hide nor show the fullscreen button. We also rebaseline a few existing
tests for this change of behavior.

  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on.html:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle.html:
  • media/modern-media-controls/media-controller/media-controller-video-with-only-audio-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html: Added.
1:43 PM Changeset in webkit [212574] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit2

[WK2] Action sheet should not dismiss when a DDAction with user interface is being presented
https://bugs.webkit.org/show_bug.cgi?id=168528
<rdar://problem/30515324>

Reviewed by Beth Dakin.

After r211643, -[WKActionSheet doneWithSheet] now dismisses the presenting view controller. This is called when
interaction with the sheet is finished and is a reasonable thing to do in most cases. However, when using data
detectors, we don't want to dismiss the presenting view controller, since DataDetector handles dismissing on its
own and expects that its completion handler will be invoked.

To fix this, we add a parameter to doneWithSheet: to indicate whether or not we should additionally dismiss the
presenting view controller, and pass in NO in the case where we are handing control over to DataDetector.

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

(-[WKActionSheet doneWithSheet:]):
(-[WKActionSheet doneWithSheet]): Deleted.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showDataDetectorsSheet]):
(-[WKActionSheetAssistant cleanupSheet]):

1:40 PM Changeset in webkit [212573] by graouts@webkit.org
  • 10 edits
    6 adds in trunk

[Modern Media Controls] Toggle playback when clicking on the video on macOS
https://bugs.webkit.org/show_bug.cgi?id=168515
<rdar://problem/30577441>

Reviewed by Dean Jackson.

Source/WebCore:

Listen to click events on the macOS media controls. Detect any clicks that were on the
background instead of the controls widgets themselves, and tell the delegate (MediaController)
about them.

Tests: media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause.html

media/modern-media-controls/media-controller/media-controller-click-on-video-background-to-dismiss-tracks-panel-should-not-toggle-playback.html
media/modern-media-controls/media-controller/media-controller-click-on-video-controls-should-not-pause.html

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls.prototype._handleMousedown):

  • Modules/modern-media-controls/controls/macos-inline-media-controls.js:

(MacOSInlineMediaControls.prototype.handleEvent):

  • Modules/modern-media-controls/controls/macos-media-controls.js:

(MacOSMediaControls.prototype.handleEvent):
(MacOSMediaControls):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype.togglePlayback):
(MediaController.prototype.macOSControlsBackgroundWasClicked):
(MediaController.prototype._updateControlsIfNeeded):

  • Modules/modern-media-controls/media/playback-support.js:

(PlaybackSupport.prototype.buttonWasPressed):

LayoutTests:

  • media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause.html: Added.
  • media/modern-media-controls/media-controller/media-controller-click-on-video-background-to-dismiss-tracks-panel-should-not-toggle-playback-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-click-on-video-background-to-dismiss-tracks-panel-should-not-toggle-playback.html: Added.
  • media/modern-media-controls/media-controller/media-controller-click-on-video-controls-should-not-pause-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-click-on-video-controls-should-not-pause.html: Added.
  • media/modern-media-controls/media-documents/click-on-video-should-not-pause-expected.txt:
  • media/modern-media-controls/media-documents/click-on-video-should-not-pause.html:
  • platform/ios-simulator/TestExpectations:
1:33 PM Changeset in webkit [212572] by jer.noble@apple.com
  • 14 edits
    2 deletes in trunk/Source/WebCore

Refactoring: Remove AudioSourceObserverObjC and AudioCaptureSourceProviderObjC
https://bugs.webkit.org/show_bug.cgi?id=168520

Reviewed by Youenn Fablet.

Having AudioCaptureSourceProviderObjC as the type provided to WebAudioSourceProviderAVFObjC
(and only ever to WebAudioSourceProviderAVFObjC) makes it impossible for that class to add
an observer on RealtimeMediaSource, of which all classes inheriting from
WebAudioSourceProviderAVFObjC are subclasses. There is no need to treat
WebAudioSourceProviderAVFObjC as an "observer", since the only thing it will ever observe is
the object which created it and hold an explicit reference to it. So replace all instances
of the "observer" pattern with direct calls to the necessary (newly non-virtual) methods.
This allows WebAudioSourceProviderAVFObjC to register as an observer directly on
RealtimeMediaSource, to listen for audioSamplesAvailable() instead of process(), and remove
a lot of unnecessary conversion code and observer duplication.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RealtimeMediaSource.h:

(WebCore::RealtimeMediaSource::Observer::sourceStopped):
(WebCore::RealtimeMediaSource::Observer::sourceMutedChanged):
(WebCore::RealtimeMediaSource::Observer::sourceEnabledChanged):
(WebCore::RealtimeMediaSource::Observer::sourceSettingsChanged):
(WebCore::RealtimeMediaSource::Observer::preventSourceFromStopping):

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

(WebCore::AVAudioCaptureSource::shutdownCaptureSession):
(WebCore::AVAudioCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
(WebCore::AVAudioCaptureSource::addObserver): Deleted.
(WebCore::AVAudioCaptureSource::removeObserver): Deleted.
(WebCore::AVAudioCaptureSource::start): Deleted.

  • platform/mediastream/mac/AudioCaptureSourceProviderObjC.h: Removed.
  • platform/mediastream/mac/AudioSourceObserverObjC.h: Removed.
  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSourceMac::emitSampleBuffers):
(WebCore::MockRealtimeAudioSourceMac::reconfigure):
(WebCore::MockRealtimeAudioSourceMac::audioSourceProvider):
(WebCore::MockRealtimeAudioSourceMac::addObserver): Deleted.
(WebCore::MockRealtimeAudioSourceMac::removeObserver): Deleted.
(WebCore::MockRealtimeAudioSourceMac::start): Deleted.

  • platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::audioSourceProvider):
(WebCore::RealtimeIncomingAudioSource::addObserver): Deleted.
(WebCore::RealtimeIncomingAudioSource::removeObserver): Deleted.
(WebCore::RealtimeIncomingAudioSource::start): Deleted.

  • platform/mediastream/mac/RealtimeIncomingAudioSource.h:
  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/mac/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::create):
(WebCore::WebAudioSourceProviderAVFObjC::WebAudioSourceProviderAVFObjC):
(WebCore::WebAudioSourceProviderAVFObjC::setClient):
(WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable):
(WebCore::WebAudioSourceProviderAVFObjC::process): Deleted.

1:32 PM Changeset in webkit [212571] by graouts@webkit.org
  • 5 edits in trunk

REGRESSION: Subtitles menu in media controls allows multiple items to be selected
https://bugs.webkit.org/show_bug.cgi?id=168168
<rdar://problem/30488605>

Reviewed by Dean Jackson.

Source/WebCore:

Ensure that only a single audio track and a single text track can be selected
in the tracks panel at any given point.

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.tracksPanelSelectionDidChange):
(TracksSupport.prototype._sortedTrackList):
(TracksSupport):

LayoutTests:

Enhance the interactive track selection test to select a second track and check
that only a single track is selected at once.

  • media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html:
1:30 PM Changeset in webkit [212570] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline DataGridNodes are lacking detail in title
https://bugs.webkit.org/show_bug.cgi?id=168529
<rdar://problem/30579959>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-17
Reviewed by Brian Burg.

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode.prototype.displayName):
Include detailed information for DataGridNode display names, since we
want to show maximum detail for records in the DataGrid.

1:18 PM Changeset in webkit [212569] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for fast/css/appearance-apple-pay-button.html.

Unreviewed test gardening.

1:06 PM Changeset in webkit [212568] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Invalidate WebAVSampleBufferStatusChangeListener when MediaPlayerPrivateMediaStreamAVFObjC is deallocated.
https://bugs.webkit.org/show_bug.cgi?id=168488

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-02-17
Reviewed by Jer Noble.

Fixes periodically crashing test: fast/mediastream/MediaStream-video-element-track-stop.html

WebAVSampleBufferStatusChangeListener has an unretained referecne to MediaPlayerPrivateMediaStreamAVFObjC
that must be invaldated when MediaPlayerPrivateMediaStreamAVFObjC is deallocated.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):

12:54 PM Changeset in webkit [212567] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

12:54 PM Changeset in webkit [212566] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/JavaScriptCore

rdar://problem/30553220

12:38 PM Changeset in webkit [212565] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30

Tag Safari-603.1.30.

12:37 PM Changeset in webkit [212564] by commit-queue@webkit.org
  • 16 edits
    1 copy
    1 add in trunk

[Modern Media Controls] Improve handling of live broadcast video
https://bugs.webkit.org/show_bug.cgi?id=168506
<rdar://problem/30432094>

Patch by Antoine Quint <Antoine Quint> on 2017-02-17
Reviewed by Dean Jackson.

Source/WebCore:

We improve the handling of live broadcast video by:

  • checking that we have a media source before deciding to show the controls bar and start button
  • support a mode where neither the status text nor the scrubber is visible in case we're still waiting on sufficient data to determine the video time and we haven't really started loading data yet
  • not showing time labels when we have an infinite duration
  • ensuring the status label is left-aligned

Test: media/modern-media-controls/status-label/status-label-text-align.html

  • Modules/modern-media-controls/controls/macos-inline-media-controls.js:

(MacOSInlineMediaControls.prototype.layout):

  • Modules/modern-media-controls/controls/status-label.css:

(.status-label):

  • Modules/modern-media-controls/controls/status-label.js:

(StatusLabel.prototype.get enabled):
(StatusLabel.prototype.set enabled):

  • Modules/modern-media-controls/media/controls-visibility-support.js:

(ControlsVisibilitySupport.prototype._updateControls):
(ControlsVisibilitySupport):

  • Modules/modern-media-controls/media/status-support.js:

(StatusSupport.prototype.syncControl):
(StatusSupport):

  • Modules/modern-media-controls/media/time-labels-support.js:

(TimeLabelsSupport.prototype.syncControl):
(TimeLabelsSupport):

LayoutTests:

Rebase existing tests to match new, correct behavior and add a new test to explicitly
check the text-align property on the status label.

  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-audio-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-audio.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-audio-background-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-audio-background.html:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label.html:
  • media/modern-media-controls/status-label/status-label-font.html:
  • media/modern-media-controls/status-label/status-label-text-align-expected.txt: Added.
  • media/modern-media-controls/status-label/status-label-text-align.html: Added.
  • media/modern-media-controls/status-label/status-label-text-selection.html:
12:02 PM Changeset in webkit [212563] by andersca@apple.com
  • 3 edits
    5 adds in trunk/Source/WebCore

Begin overhauling the pasteboard implementation
https://bugs.webkit.org/show_bug.cgi?id=168525

Reviewed by Tim Horton.

Add a new PasteboardWriterData object. This object will hold data that is going
to be written to the pasteboard at some point. Currently it only supports plain text.

Also add a Mac-only PasteboardWriter class which can convert a PasteboardWriterDataObject
into an object that conforms to NSPasteboardWriting.

The basic idea is that instead of doing a bunch of pasteboard operations,
we'll just package all the pasteboard data up into an object and ship it over to WebKit.

This code is currently unused but will be adopted by a new drag implementation (in an upcoming patch).

  • WebCore.xcodeproj/project.pbxproj:
  • platform/PasteboardWriterData.cpp: Added.

(WebCore::PasteboardWriterData::PasteboardWriterData):
(WebCore::PasteboardWriterData::~PasteboardWriterData):
(WebCore::PasteboardWriterData::isEmpty):
(WebCore::PasteboardWriterData::setPlainText):

  • platform/PasteboardWriterData.h: Added.
  • platform/mac/PasteboardWriter.h: Added.
  • platform/mac/PasteboardWriter.mm: Added.

(WebCore::createPasteboardWriting):

  • platform/spi/mac/NSPasteboardSPI.h: Added.
11:34 AM Changeset in webkit [212562] by pvollan@apple.com
  • 25 edits
    8 adds in trunk

Apply SVG styles paint-order, stroke-linejoin, and stroke-linecap on DOM text.
https://bugs.webkit.org/show_bug.cgi?id=168044
Source/WebCore:

rdar://problem/30165746

Reviewed by Simon Fraser.

This patch moves these styles out of svg, and sets the properties on video cues.

Tests: fast/css/parsing-paint-order.html

fast/css/parsing-stroke-linecap.html
fast/css/parsing-stroke-linejoin.html
fast/css/parsing-stroke-width.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSProperties.json:
  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue):
(WebCore::paintOrder): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::isValidCueStyleProperty):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::cssPropertyWithTextEdgeColor):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::paintTypesForPaintOrder):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setPaintOrder):
(WebCore::RenderStyle::paintOrder):
(WebCore::RenderStyle::initialPaintOrder):
(WebCore::RenderStyle::setCapStyle):
(WebCore::RenderStyle::capStyle):
(WebCore::RenderStyle::initialCapStyle):
(WebCore::RenderStyle::setJoinStyle):
(WebCore::RenderStyle::joinStyle):
(WebCore::RenderStyle::initialJoinStyle):
(WebCore::RenderStyle::strokeWidth):
(WebCore::RenderStyle::setStrokeWidth):
(WebCore::RenderStyle::hasVisibleStroke):
(WebCore::RenderStyle::setStrokeOpacity):

  • rendering/style/SVGRenderStyle.cpp:

(WebCore::SVGRenderStyle::diff):
(WebCore::SVGRenderStyle::paintTypesForPaintOrder): Deleted.

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::initialBufferedRendering):
(WebCore::SVGRenderStyle::initialFillRule):
(WebCore::SVGRenderStyle::initialMaskType):
(WebCore::SVGRenderStyle::setBufferedRendering):
(WebCore::SVGRenderStyle::setFillRule):
(WebCore::SVGRenderStyle::setMaskType):
(WebCore::SVGRenderStyle::bufferedRendering):
(WebCore::SVGRenderStyle::fillRule):
(WebCore::SVGRenderStyle::strokeMiterLimit):
(WebCore::SVGRenderStyle::maskType):
(WebCore::SVGRenderStyle::hasStroke):
(WebCore::SVGRenderStyle::setBitDefaults):
(WebCore::SVGRenderStyle::InheritedFlags::operator==):
(WebCore::SVGRenderStyle::initialCapStyle): Deleted.
(WebCore::SVGRenderStyle::initialJoinStyle): Deleted.
(WebCore::SVGRenderStyle::initialPaintOrder): Deleted.
(WebCore::SVGRenderStyle::setCapStyle): Deleted.
(WebCore::SVGRenderStyle::setJoinStyle): Deleted.
(WebCore::SVGRenderStyle::setPaintOrder): Deleted.
(WebCore::SVGRenderStyle::capStyle): Deleted.
(WebCore::SVGRenderStyle::joinStyle): Deleted.
(WebCore::SVGRenderStyle::strokeWidth): Deleted.
(WebCore::SVGRenderStyle::paintOrder): Deleted.
(WebCore::SVGRenderStyle::hasVisibleStroke): Deleted.
(WebCore::SVGRenderStyle::setStrokeWidth): Deleted.

  • rendering/style/SVGRenderStyleDefs.cpp:

(WebCore::StyleStrokeData::StyleStrokeData):
(WebCore::StyleStrokeData::operator==):

  • rendering/style/SVGRenderStyleDefs.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):

  • rendering/style/StyleRareInheritedData.h:
  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::strokeShape):

  • rendering/svg/RenderSVGPath.cpp:

(WebCore::RenderSVGPath::strokeShape):
(WebCore::RenderSVGPath::shapeDependentStrokeContains):
(WebCore::RenderSVGPath::shouldStrokeZeroLengthSubpath):
(WebCore::RenderSVGPath::zeroLengthLinecapPath):

  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::strokeShape):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::fillStrokeMarkers):
(WebCore::RenderSVGShape::strokeWidth):
(WebCore::RenderSVGShape::hasSmoothStroke):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::strokeBoundingBox):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paint):
(WebCore::SVGInlineTextBox::paintDecoration):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::applyStrokeStyleToContext):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeStyle):

LayoutTests:

Reviewed by Simon Fraser.

  • fast/css/parsing-paint-order-expected.txt: Added.
  • fast/css/parsing-paint-order.html: Added.
  • fast/css/parsing-stroke-linecap-expected.txt: Added.
  • fast/css/parsing-stroke-linecap.html: Added.
  • fast/css/parsing-stroke-linejoin-expected.txt: Added.
  • fast/css/parsing-stroke-linejoin.html: Added.
  • fast/css/parsing-stroke-width-expected.txt: Added.
  • fast/css/parsing-stroke-width.html: Added.
  • media/track/track-css-stroke-cues-expected.txt:
  • media/track/track-css-stroke-cues.html:
11:13 AM Changeset in webkit [212561] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[SOUP] Handle Settings::allowsAnySSLCertificate() in SSL sockets
https://bugs.webkit.org/show_bug.cgi?id=168521

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-17
Reviewed by Michael Catanzaro.

When Settings::allowsAnySSLCertificate() is enabled, connect to accept-certificate signal of the GTlsConnection
to always accept the certificates.

Fixes: http/tests/websocket/tests/hybi/simple-wss.html

  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::wssConnectionAcceptCertificateCallback):
(WebCore::wssSocketClientEventCallback):
(WebCore::SocketStreamHandleImpl::create):

11:13 AM Changeset in webkit [212560] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix iOS ASAN build after r212401
https://bugs.webkit.org/show_bug.cgi?id=168398

  • libwebrtc.xcodeproj/project.pbxproj:

libwebrtc.dylib needs some symbols from CFNetwork,
like CFNetworkCopySystemProxySettings

11:11 AM Changeset in webkit [212559] by Simon Fraser
  • 10 edits
    3 copies
    1 add in trunk

Fixed elements bounce when rubber-banding at the bottom of the page
https://bugs.webkit.org/show_bug.cgi?id=168493
rdar://problem/30567713

Reviewed by Tim Horton.

Source/WebCore:

FrameView::visibleDocumentRect() was computing a bad visible rect when bottom-rubber-banding,
by adding rubberBandBottom which is negative, rather than subtracting.

Log some more scrolling stuff.

Ironically, the existing test didn't test stick-to-viewport fixed position because
backgroundShouldExtendBeyondPage() is off by default in WTR, so clone it to a test
that sets this, to test both behaviors.

This also revealed that dynamic changes to backgroundShouldExtendBeyondPage() need
to be propagated to the scrolling tree, which is fixed in AsyncScrollingCoordinator::frameViewLayoutUpdated().

Test: fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::visibleDocumentRect):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorMac::commitTreeState):

LayoutTests:

  • fast/visual-viewport/rubberbanding-viewport-rects-expected.txt:
  • fast/visual-viewport/rubberbanding-viewport-rects-extended-background-expected.txt: Copied from LayoutTests/fast/visual-viewport/rubberbanding-viewport-rects-expected.txt.
  • fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html: Copied from LayoutTests/fast/visual-viewport/rubberbanding-viewport-rects.html.
  • fast/visual-viewport/rubberbanding-viewport-rects.html:
  • platform/ios-simulator-wk2/fast/visual-viewport/rubberbanding-viewport-rects-expected.txt:
  • platform/ios-simulator-wk2/fast/visual-viewport/rubberbanding-viewport-rects-extended-background-expected.txt: Copied from LayoutTests/platform/ios-simulator-wk2/fast/visual-viewport/rubberbanding-viewport-rects-expected.txt.
  • platform/mac-wk1/fast/visual-viewport/rubberbanding-viewport-rects-extended-background-expected.txt: Added.
11:11 AM Changeset in webkit [212558] by Simon Fraser
  • 5 edits
    2 adds in trunk

REGRESSION (209396): Apple Pay buttons do not render
https://bugs.webkit.org/show_bug.cgi?id=168523
rdar://problem/30451563

Reviewed by Geoffrey Garen.
Source/WebCore:

The new CSS parser mistakenly converted -apple-pay-button values to
-webkit-pay-button, breaking -webkit-appearance: -apple-pay-button.

Fix by excluding "-apple-pay" prefixed values from the conversion.

Test: fast/css/appearance-apple-pay-button.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::isAppleLegacyCssValueKeyword):

LayoutTests:

Ref test that masks out the middle and corners of the buttons.

  • fast/css/appearance-apple-pay-button-expected.html: Added.
  • fast/css/appearance-apple-pay-button.html: Added.
11:10 AM Changeset in webkit [212557] by Michael Catanzaro
  • 36 edits
    1 delete in trunk/Source/WebKit2

Remove EFL from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=168511

Reviewed by Alex Christensen.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::platformInvalidate):
(IPC::Connection::open):

  • Platform/Module.h:
  • PlatformEfl.cmake: Removed.
  • PluginProcess/unix/PluginProcessMainUnix.cpp:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

  • Shared/NativeWebKeyboardEvent.h:

(WebKit::NativeWebKeyboardEvent::isFakeEventForComposition):
(WebKit::NativeWebKeyboardEvent::isFiltered): Deleted.

  • Shared/NativeWebMouseEvent.h:

(WebKit::NativeWebMouseEvent::nativeEvent):
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Deleted.

  • Shared/NativeWebTouchEvent.h:

(WebKit::NativeWebTouchEvent::nativeEvent):

  • Shared/NativeWebWheelEvent.h:

(WebKit::NativeWebWheelEvent::nativeEvent):

  • Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:

(WebKit::NetscapePluginModule::determineQuirks):

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/APIWebsiteDataStore.cpp:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKTextChecker.cpp:
  • UIProcess/API/C/WKTextChecker.h:
  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::getLaunchOptions):

  • UIProcess/CoordinatedGraphics/PageViewportController.cpp:

(WebKit::PageViewportController::pixelAlignedFloatPoint):

  • UIProcess/InspectorServer/WebInspectorServer.h:
  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
  • UIProcess/PageClient.h:
  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::scanPlugin):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::getPluginDisplay):
(WebKit::x11Screen):
(WebKit::displayDepth):
(WebKit::rootWindowID):
(WebKit::NetscapePluginX11::paint):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::saveViewStateToItem):
(WebKit::WebFrameLoaderClient::restoreViewState):
(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • config.h:
11:00 AM Changeset in webkit [212556] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

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

Some crashes with GuardMalloc (Requested by anttik on
#webkit).

Reverted changeset:

"Execute pending scripts asynchronously after stylesheet loads
complete"
https://bugs.webkit.org/show_bug.cgi?id=168367
http://trac.webkit.org/changeset/212463

10:48 AM Changeset in webkit [212555] by beidson@apple.com
  • 10 edits
    1 copy
    1 move
    1 add in trunk/Source

Stop backing up localStorage databases to iCloud by default.
<rdar://problem/29045531> and https://bugs.webkit.org/show_bug.cgi?id=168388

Reviewed by Geoffrey Garen.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Misc/WebKitVersionChecks.h:
  • Misc/WebKitVersionChecks.mm: Renamed from Source/WebKit/mac/Misc/WebKitVersionChecks.m.

(WebKitLinkedOnOrAfter):
(setWebKitLinkTimeVersion):
(WebKitLinkTimeVersion):
(linkedOnOrAfter):

  • Storage/WebStorageManager.mm:

(WebKitInitializeStorageIfNecessary):

Source/WebKit2:

  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::databasePath):

  • UIProcess/Storage/LocalStorageDatabaseTracker.h:
  • UIProcess/Storage/ios/LocalStorageDatabaseTrackerIOS.mm: Copied from Source/WebKit2/UIProcess/Cocoa/VersionChecks.h.

(WebKit::LocalStorageDatabaseTracker::platformExcludeFromBackup):

  • WebKit2.xcodeproj/project.pbxproj:
10:41 AM Changeset in webkit [212554] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

RenderView needs to be updated when FrameView changes
https://bugs.webkit.org/show_bug.cgi?id=168481
<rdar://problem/30339638>

Reviewed by Andreas Kling.

The state of the Document's RenderView can get out of sync with the Frame's FrameView.
We need a notification mechanism so that modifications to the Frame's view are properly
relayed to Document so that it can have a correct RenderView.

  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInView): Create an updated render tree (if
one does not already exist).
(WebCore::Document::destroyRenderTree): Remove an incorrect ASSERT. We may enter this
code when the Frame uses 'setView(nullptr)', which happens during certain updates.

  • dom/Document.h:
  • page/Frame.cpp:

(WebCore::Frame::setView): Destroy the old render tree (if present) before switching to
the new view. Then notify the document that it is now the current document in the new view.

10:05 AM Changeset in webkit [212553] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline test for ios-simulator-wk2 after r212522.

Unreviewed test gardening.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-label-element/labelable-elements-expected.txt:
9:09 AM Changeset in webkit [212552] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

Fix tools that were broken by Efl removal
https://bugs.webkit.org/show_bug.cgi?id=168496

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/config/queues.py:
  • Scripts/webkitpy/common/config/ews.json:
  • TestResultServer/static-dashboards/builders.jsonp:
  • TestResultServer/static-dashboards/flakiness_dashboard.js:
  • TestResultServer/static-dashboards/loader_unittests.js:
8:25 AM Changeset in webkit [212551] by Lucas Forschler
  • 4 edits in trunk/Tools

https://bugs.webkit.org/show_bug.cgi?id=168442
Move the SVN checkout from http -> https.
Update unit tests.

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(CheckOutSource.init):

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:

(SVNMirrorTest.get_SVNMirrorFromConfig):

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js:
7:14 AM Changeset in webkit [212550] by Michael Catanzaro
  • 2 edits
    2 deletes in trunk

Remove EFL from Source/cmake
https://bugs.webkit.org/show_bug.cgi?id=168512

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsEfl.cmake: Removed.
  • Source/cmake/WebKitPackaging.cmake:
  • Source/cmake/eflsymbols.filter: Removed.
6:50 AM Changeset in webkit [212549] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fast replay on video hide/unhide on platforms with limited video buffer pools
https://bugs.webkit.org/show_bug.cgi?id=168505

Reviewed by Žan Doberšek.

The WebKit code isn't consuming the video samples when the video layer is hidden,
so the buffers aren't being returned to the pool and starve the decoder when the
buffer pool runs out of buffers (on platforms using a buffer pool and a custom
allocator, such as OMX on the Raspberry Pi 2). When the video layer is restored,
the pipeline tries to catch up and the user sees the video "going fast forward".

The added code "consumes" (removes and unrefs) the buffer in that case. However,
the sample isn't completely removed because it still holds important info (eg:
caps) needed for the proper operation of the video element.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):

6:46 AM Changeset in webkit [212548] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Stop removing the fragment identifier from resource requests
https://bugs.webkit.org/show_bug.cgi?id=168509

Reviewed by Sergio Villar Senin.

I don't know why, but have always removed the fragment identifier from the URL when creating the SoupURI that
is passed to libsoup. Maybe it was a bug in a very old version of libsoup, but it doesn't look necessary anymore
and it's causing several layout test failures.

Fixes: http/tests/svg/svg-use-external.html

imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-same-origin-with-hash.html
imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-same-origin-with-hash.html

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::createSoupURI): Do not remove the fragment identifier from the URL.

6:44 AM Changeset in webkit [212547] by jfernandez@igalia.com
  • 2 edits
    2 copies
    6 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=168473

Unreviewed GTK+ test gardening.

  • rebaseline imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html test.
  • web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt:
6:17 AM Changeset in webkit [212546] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Test media/modern-media-controls/time-label/time-label-white-space-nowrap.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=168507

Unreviewed test gardening.

Patch by Antoine Quint <Antoine Quint> on 2017-02-17

  • media/modern-media-controls/time-label/time-label-white-space-nowrap-expected.txt:
  • media/modern-media-controls/time-label/time-label-white-space-nowrap.html:
6:03 AM Changeset in webkit [212545] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Remove duplicated entries from TestExpectations.

  • platform/gtk/TestExpectations:
4:47 AM Changeset in webkit [212544] by jfernandez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=168504

Unreviewed GTK+ test gardening.

  • imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/async_007.htm test marked as Slow.
  • http/tests/security/bypassing-cors-checks-for-extension-urls.html skipped (bug 168466)
  • rebaseline http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html test (matching Mac expectations - bug 167252)
  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics-expected.txt:
3:00 AM Changeset in webkit [212543] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of several tests.

  • platform/gtk/TestExpectations:
1:15 AM Changeset in webkit [212542] by rniwa@webkit.org
  • 7 edits
    1 add in trunk/Websites/perf.webkit.org

Add tests for the time series chart and fix bugs I found along the way
https://bugs.webkit.org/show_bug.cgi?id=168499

Reviewed by Antti Koivisto.

Add basic tests for the time series chart.

Replaced the "ondata" callback set in the options by "dataChange" action now that ComponentBase provides
a facility for defining event-like actions.

Also fixed bugs I encountered while writing these tests see below for descriptions.

  • browser-tests/editable-text-tests.js:

(waitToRender): Moved to index.html

  • browser-tests/index.html:

(waitToRender): Moved from editable-text-tests.js.
(wait): Added.

  • browser-tests/time-series-chart-tests.js: Added.
  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype.configure):

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart): Removed the code to set display and position inline properties. This is now done inside
cssTemplate with :host pseudo class.
(TimeSeriesChart.prototype._ensureCanvas): Don't strech the canvas to 100% of width and height. This was
causing a flush of contents where the canvas is momentarily streched by the browser and the script later
updates with the content with the correct aspect ratio.
(TimeSeriesChart.cssTemplate): Added :host rule to set display: block and position: relative.
(TimeSeriesChart._updateAllCharts): Deleted.
(TimeSeriesChart.prototype.render): Only run the code for axis when options.axis is defined. Also, avoid
setting the fill style because we never fill for axis drawing.
(TimeSeriesChart.prototype._computeHorizontalRenderingMetrics): Ditto. Fallback to sensible values when
options.axis is not defined.
(TimeSeriesChart.prototype._renderYAxis): Now computeValueGrid generates a sequence of {time, label}.
(TimeSeriesChart.prototype._renderTimeSeries): Don't draw the shades for confidence intervals unless its
fill style is defined. Otherwise, we'd end up drawing black shade and mask the actual data points.
(TimeSeriesChart.prototype._ensureSampledTimeSeries): Dispatch newly added "dataChange" action instead of
calling "ondata" callback in options dictionary.
(TimeSeriesChart.computeTimeGrid): Modernized to use const/let. Also fixed the bug that we were emitting
the date even when the entire time range fit within a 24-hour interval.
(TimeSeriesChart.computeValueGrid): Rewritten to make MB/GB use a nice round number instead of 0.98GB.
We were using a power of 10 to round up the stepping value but the value formatter used a power of 1024
to divide byte measurements (e.g. for memory). Use formatter.divisor to find the right scaling factor for
each kind.

  • public/v3/models/metric.js:

(Metric.prototype.makeFormatter):
(Metric.makeFormatter): Extracted from the one on the prototype so that tests don't need a metric object
just to test TimeSeriesChart. Added the second argument which specifies the maximum absolute value of the
range we're formatting. This is needed to use the same number of decimal points when the most significant
digit of some value is smaller than that of the biggest one. For example, we were emitting 0.50GB instead
of 0.5G along with 2.0GB. The "adjustment" reduces the number of significant figures in these cases.

  • public/v3/pages/dashboard-page.js:

(DashboardPage.prototype._createChartForCell):

1:13 AM Changeset in webkit [212541] by zandobersek@gmail.com
  • 5 edits in trunk/Source/JavaScriptCore

[GLib] GCActivityCallback::scheduleTimer() keeps pushing dispatch into the future
https://bugs.webkit.org/show_bug.cgi?id=168363

Reviewed by Carlos Garcia Campos.

Mimic the USE(CF) implementation of GCActivityCallback and HeapTimer by
scheduling the timer a decade into the future instead of completely
cancelling it. That way new dispatch times for GCActivityCallback can be
computed by simply deducting the difference in the new and previous
delay from the GSource's current dispatch time. Previously we handled an
extra 'paused' state (where m_delay was -1) and allowed for a delay of
an infinite value to be valid, complicating the next dispatch time
computation.

HeapTimer gains the static s_decade variable. The dispatch function in
heapTimerSourceFunctions only dispatches the callback, which now delays
the GSource by a decade. HeapTimer::scheduleTimer() simply schedules the
source to dispatch in the specified amount of time, and cancelTimer()
'cancels' the source by setting the dispatch time to a decade.

GCActivityCallback constructor initializes the delay to the s_decade
value and immediately sets the ready time for GSource a decade into the
future, avoiding the default -1 value as the ready time that would cause
problems in scheduleTimer(). scheduleTimer() doesn't special-case the
zero-delay value anymore, instead it just computes the difference
between the old and the new delay and rolls back the GSource's ready
time for that amount. cancelTimer() sets m_delay to the decade value and
delays the GSource for that same amount.

  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::GCActivityCallback):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::cancelTimer):

  • heap/GCActivityCallback.h:
  • heap/HeapTimer.cpp:

(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::scheduleTimer):
(JSC::HeapTimer::cancelTimer):

  • heap/HeapTimer.h:
Note: See TracTimeline for information about the timeline view.