Timeline



Mar 31, 2017:

11:30 PM Changeset in webkit [214712] by Alan Bujtas
  • 6 edits
    2 adds in trunk

<table>: Including <caption>, <thead> or <tbody> causes clipping across page breaks
https://bugs.webkit.org/show_bug.cgi?id=170348
<rdar://problem/24727151>

Reviewed by David Hyatt.

Source/WebCore:

  1. In RenderFlowThread::offsetFromLogicalTopOfFirstRegion() we need to take table section offset into account (they are skipped

during the containing block traversal).

  1. Trigger paginated relayout when body is moved vertically due to caption/thead etc.

Test: fast/multicol/table-section-page-break.html

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::offsetFromLogicalTopOfFirstRegion):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

LayoutTests:

  • fast/multicol/table-section-page-break-expected.html: Added.
  • fast/multicol/table-section-page-break.html: Added.
7:09 PM Changeset in webkit [214711] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

WebAssembly: Make our calls out to JS PIC friendly
https://bugs.webkit.org/show_bug.cgi?id=170261

Reviewed by Keith Miller.

This patch removes a direct call from the module to the Wasm to JS stub.
Instead, we do an indirect call to the stub by loading the stub's executable
address off of the CodeBlock. This is to make the code we emit for comply with
requirements needed for PIC.

Adding this indirection is not ideal. Although this patch is neutral on
WasmBench, we really want to get back to a world where we have an IC
call infrastructure. This patch is obviously a regression on some
types of programs. I've filed this bug to make sure we implement a
PIC compliant Wasm to JS call IC:
https://bugs.webkit.org/show_bug.cgi?id=170375

  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmFormat.h:
  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::complete):

  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::initialize):

  • wasm/js/JSWebAssemblyCodeBlock.h:

(JSC::JSWebAssemblyCodeBlock::create):
(JSC::JSWebAssemblyCodeBlock::offsetOfImportWasmToJSStub):
(JSC::JSWebAssemblyCodeBlock::offsetOfCallees):
(JSC::JSWebAssemblyCodeBlock::allocationSize):
(JSC::JSWebAssemblyCodeBlock::importWasmToJSStub):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::addUnitializedCodeBlock):

  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::offsetOfCodeBlock):

7:05 PM Changeset in webkit [214710] by dino@apple.com
  • 1 edit
    9 adds in trunk/Websites/webkit.org

Unreviewed. Add some WebGPU examples.

  • demos/webgpu/2d.html: Added.
  • demos/webgpu/2d.js: Added.
  • demos/webgpu/cubes.html: Added.
  • demos/webgpu/cubes.js: Added.
  • demos/webgpu/shared.css: Added.
  • demos/webgpu/shared.js: Added.
  • demos/webgpu/simple.html: Added.
  • demos/webgpu/simple.js: Added.
6:54 PM Changeset in webkit [214709] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

WebAssembly: webAssemblyB3OptimizationLevel should use defaultB3OptLevel by default
https://bugs.webkit.org/show_bug.cgi?id=170378

Reviewed by Saam Barati.

  • runtime/Options.h:
  • wasm/WasmB3IRGenerator.h:
5:47 PM Changeset in webkit [214708] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

WebAssembly: Add compilation level option
https://bugs.webkit.org/show_bug.cgi?id=170374

Reviewed by Mark Lam.

This patch adds an option, webAssemblyB3OptimizationLevel, which
changes the optimization mode wasm passes to B3.

  • runtime/Options.h:
  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::compileFunctions):

5:45 PM Changeset in webkit [214707] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. For OS versions, we can end up with non-alphanumeric revision.
Delete the code path only used by the v2 UI since nobody uses that now.

  • public/api/commits.php:

(main):

5:31 PM Changeset in webkit [214706] by Chris Dumez
  • 3 edits in trunk/LayoutTests

LayoutTest fast/images/animated-gif-restored-from-bfcache.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=162510
<rdar://problem/31380650>

Reviewed by Alexey Proskuryakov.

The test restores a page from PageCache and wants to check that an animated
GIF is properly animating. To do so, it store the data of the current image
frame, and then checks in a 100ms timer that the current image frame is
different. This is flaky by nature since the image only has 10 frames and
you therefore have a 1/10 chance that the new frame will be the same as the
previous one, even if the image is properly animating.

To address the problem, do a setInterval instead of a setTimeout and check
until the frame becomes different.

  • fast/images/animated-gif-restored-from-bfcache.html:
  • platform/mac/TestExpectations:
5:24 PM Changeset in webkit [214705] by Jonathan Bedard
  • 11 edits in trunk/Tools

webkitpy: Add target host concept
https://bugs.webkit.org/show_bug.cgi?id=170186
<rdar://problem/31301797>

Reviewed by Alexey Proskuryakov.

Adding the idea of a target host. Target hosts are objects conforming to the
structure of the SystemHost object in Scripts/webkitpy/common/system/systemhost.py
Target hosts are the hosts associated with a worker process.

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

(FileSystem.map_base_host_path): Convert a path from an absolute path on the base
host to an absolute path on this host.
(FileSystem.move_to_base_host): Move file from this host to the base host.
(FileSystem.move_from_base_host): Move file from the base host to this host.
(FileSystem.copy_to_base_host): Copy file from this host to the base host.
(FileSystem.copy_from_base_host): Copy file from the base host to this host.

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

(MockFileSystem.map_base_host_path): Convert a path from an absolute path on the base
host to an absolute path on this host.
(MockFileSystem.move_to_base_host): Move file from this host to the base host.
(MockFileSystem.move_from_base_host): Move file from the base host to this host.
(MockFileSystem.copy_to_base_host): Copy file from this host to the base host.
(MockFileSystem.copy_from_base_host): Copy file from the base host to this host.

  • Scripts/webkitpy/port/base.py:

(Port.target_host): Return host determined by worker number.
(Port.abspath_for_test): Accept optional target_host argument to return location
of test on a target host.
(Port._driver_tempdir): Accept optional target_host argument to return a temporary
directory on a target host.
(Port.sample_process): Accept optional target_host argument to sample process on
a target host.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort.sample_process): Run sample process on target host.
(DarwinPort.sample_file_path): Accept directory for file.
(DarwinPort.spindump_file_path): Ditto.

  • Scripts/webkitpy/port/darwin_testcase.py:

(DarwinTest.test_spindump): Check file movement.
(DarwinTest.test_sample_process): Ditto.
(DarwinTest.test_sample_process_exception):

  • Scripts/webkitpy/port/driver.py:

(Driver.init): Add and set self._target_host variable.
(Driver._start): Pass target host to _driver_tempdir().
(Driver.stop): Call the target host's rmtree.
(Driver._check_for_driver_timeout): Pass target host to sample_process.
(Driver._check_for_driver_crash_or_unresponsiveness): Ditto.
(Driver._command_from_driver_input): Pass target host to abspath_for_test and map
layout test directory to target host.

  • Scripts/webkitpy/port/ios.py:

(IOSPort):
(IOSPort.target_host): Replaced device_for_worker_number.
(IOSPort.setup_test_run): Replace device_for_worker_number with target_host.
(IOSPort.device_for_worker_number): Replaced with target_host.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.init): Accept target_host instead of worker_number.
(ServerProcess._start): Replace _host with _target_host.
(ServerProcess._handle_timeout): Ditto.
(ServerProcess._kill): Ditto.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.init): Accept target_host instead of worker_number.
(SimulatorProcess._start): Replace _device with _target_host.
(SimulatorProcess.stop): Ditto.
(SimulatorProcess._kill): Deleted.

5:20 PM Changeset in webkit [214704] by jmarcell@apple.com
  • 6 edits
    15 adds in branches/safari-603-branch/Source

Merge r214378. rdar://problem/31177657

2017-03-24 Brent Fulgham <Brent Fulgham>

Handle recursive calls to ProcessingInstruction::checkStyleSheet
https://bugs.webkit.org/show_bug.cgi?id=169982
<rdar://problem/31083051>

Reviewed by Antti Koivisto.

See if we triggered a recursive load of the stylesheet during the 'beforeload'
event handler. If so, reset to a valid state before completing the load.

We should also check after 'beforeload' that we were not disconnected from (or
moved to a new) document.

I also looked for other cases of this pattern and fixed them, too.

Tests: fast/dom/beforeload/image-removed-during-before-load.html

fast/dom/beforeload/recursive-css-pi-before-load.html
fast/dom/beforeload/recursive-link-before-load.html
fast/dom/beforeload/recursive-xsl-pi-before-load.html

  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::checkStyleSheet): Prevent recursive calls into this function during 'beforeload' handling. Also, safely handle the case where the element was disconnected in the 'beforeload' handler (similar to what we do in HTMLLinkElement). (WebCore::ProcessingInstruction::setCSSStyleSheet): Drive-by Fix: Protect the current document to match what we do in setXSLStyleSheet.
  • dom/ProcessingInstruction.h:
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process): Prevent recursive calls into this function during 'beforeload' handling.
  • html/HTMLLinkElement.h:
  • loader/ImageLoader.cpp: (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): safely handle the case where the element was disconnected in the 'beforeload' handler (similar to what we do in HTMLLinkElement).

Patch by Brent Fulgham <Brent Fulgham> on 2017-03-31

5:11 PM Changeset in webkit [214703] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Rename DOMWindow's m_touchEventListenerCount to m_touchAndGestureEventListenerCount
https://bugs.webkit.org/show_bug.cgi?id=170371

Reviewed by Tim Horton.

This count tracks touch and gesture event listeners, so name it appropriately.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):

  • page/DOMWindow.h:
5:10 PM Changeset in webkit [214702] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

When destroying a Node, assert that it's been removed from all the touch handler maps
https://bugs.webkit.org/show_bug.cgi?id=170363
rdar://problem/31377469

Reviewed by Tim Horton.

Assert that the Node has been removed from the touch handler maps in all documents on destruction.

  • dom/Document.h:

(WebCore::Document::hasTouchEventHandlers):
(WebCore::Document::touchEventTargetsContain):

  • dom/Node.cpp:

(WebCore::Node::~Node):

5:00 PM Changeset in webkit [214701] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Remove a logging statement left in by mistake.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::restoreViewState):

4:59 PM Changeset in webkit [214700] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Rolling back https://trac.webkit.org/r214689, as it caused many crashes.

Was:
Fix memory leak in CreateSessionDescriptionObserver::OnSuccess
https://bugs.webkit.org/show_bug.cgi?id=170357

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded):

4:55 PM Changeset in webkit [214699] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix memory leak in RealtimeVideoIncomingSource
https://bugs.webkit.org/show_bug.cgi?id=170356

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

No change of behavior.

  • platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::OnFrame): Adopting the newly created pointer.

4:38 PM Changeset in webkit [214698] by Jonathan Bedard
  • 2 edits in trunk/Tools

Unreviewed fix after r214569
https://bugs.webkit.org/show_bug.cgi?id=170255

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.clean_up_test_run): Check if the device is defined before teardown.

4:33 PM Changeset in webkit [214697] by aestes@apple.com
  • 4 edits in trunk

REGRESSION (r202472): Data Detection overwrites existing links in detected ranges
https://bugs.webkit.org/show_bug.cgi?id=170365
<rdar://problem/29205721>

Reviewed by Tim Horton.

Source/WebCore:

r202472 changed the node traversal in searchForLinkRemovingExistingDDLinks() to only
consider nodes that are descendants of startNode, but we need to traverse all nodes between
startNode and endNode to find existing non-DD links.

As a result, we'd add a Data Detector link to the following snippet and make the original
links un-clickable:

<a href='#'>tomorrow</a> <a href='#'>night</a>

Fix this by not specifying a stayWithin node when calling NodeTraversal::next(). The loop
will terminate when we reach endNode.

Updated WebKit2.DataDetectionReferenceDate API test.

  • editing/cocoa/DataDetection.mm:

(WebCore::searchForLinkRemovingExistingDDLinks):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm:

(expectLinkCount): Changed to only query links with the x-apple-data-detectors attribute.
(TEST): Re-enabled the test, which now passes.

4:19 PM Changeset in webkit [214696] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

Address post-review feedback after r214692
https://bugs.webkit.org/show_bug.cgi?id=170328

Reviewed by Dan Bernstein.

Clearing the selection when UIKit calls into WKContentView to set its selected text range to nil is a rule
that should be applied when using a text interaction assistant, not just when using character granularity
for selecting text.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setSelectedTextRange:]):

4:06 PM Changeset in webkit [214695] by sbarati@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

WebAssembly: Strip WasmParser and WasmFunctionParser from knowing about VM
https://bugs.webkit.org/show_bug.cgi?id=170312

Reviewed by Mark Lam.

This is another step towards PIC-ifying Wasm. This patch removes
the VM field that is no longer used.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile):

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::FunctionParser):

  • wasm/WasmModuleParser.h:

(JSC::Wasm::ModuleParser::ModuleParser):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::Parser):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::compileFunctions):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::validateFunction):

  • wasm/WasmValidate.h:
3:50 PM Changeset in webkit [214694] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Incoming video source doesn't propogate frame rotation
https://bugs.webkit.org/show_bug.cgi?id=170364

Reviewed by Youenn Fablet.

No new tests, the mock video source doesn't support rotation. Test will be added when
this is fixed in https://bugs.webkit.org/show_bug.cgi?id=169822. The changes were
verified manually.

  • platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::OnFrame): Convert frame rotation to sample
orientation and swap width and height when necessary.
(WebCore::RealtimeIncomingVideoSource::processNewSample):

  • platform/mediastream/mac/RealtimeIncomingVideoSource.h:
3:48 PM Changeset in webkit [214693] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Possible null dereference under SourceBuffer::sourceBufferPrivateDidReceiveSample()
https://bugs.webkit.org/show_bug.cgi?id=159639

Reviewed by Eric Carlson.

Add a null check for trackBuffer.description before dereferencing as it seems
it can be null.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

3:36 PM Changeset in webkit [214692] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[WK2] Tapping away to dismiss the selection does not update the selected DOM range using character granularity
https://bugs.webkit.org/show_bug.cgi?id=170328
<rdar://problem/30904558>

Reviewed by Tim Horton.

Source/WebKit2:

When UIKit clears the selection while in text interaction mode, it notifies its document view (i.e., the
WKContentView) by setting its selected text range to nil. When character granularity selection is enabled, use
this as a cue to notify the web process that the selection is being cleared out.

-setSelectedTextRange: is a noop in the general case because the web process acts as the source of truth for what
the selection currently consists of, and notifies the UI process and UIKit via WKTextPosition and WKTextRange.
However, in the case of character granularity selections, tapping away to clear the selection is handled by
UIKit's text gesture recognizer cluster, which then informs the document (via -setSelectedTextRange:) that the
selection should be cleared out.

Adds a new Layout test: editing/selection/character-granularity-selected-range-after-dismissing-selection.html.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setSelectedTextRange:]):

LayoutTests:

Adds a new layout test verifying that when a user taps away to clear the current selection in character
granularity selection mode, the selected DOM range in the web process does not fall out of sync with UIKit's
selection views, which are dismissed.

  • editing/selection/character-granularity-selected-range-after-dismissing-selection-expected.txt: Added.
  • editing/selection/character-granularity-selected-range-after-dismissing-selection.html: Added.
3:18 PM Changeset in webkit [214691] by sbarati@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

WebAssembly: Ref count Signature and SignatureInformation should not care about VM
https://bugs.webkit.org/show_bug.cgi?id=170316

Reviewed by Keith Miller.

This is yet again another step towards PIC-ifying Wasm.
Signature should be ref counted so we can tell when
no code is holding onto a Signature. This makes it easy
to free unused Signatures. Also, this patch rids SignatureInfo
of any VM knowledge. Now, there is just a single SignatureInfo that
lives in a process.

  • runtime/VM.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::parseAndCompile):

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::loadArguments):

  • wasm/WasmFormat.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::FunctionParser):

  • wasm/WasmModuleParser.cpp:
  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::compileFunctions):
(JSC::Wasm::Plan::complete):

  • wasm/WasmSignature.cpp:

(JSC::Wasm::Signature::hash):
(JSC::Wasm::Signature::tryCreate):
(JSC::Wasm::SignatureInformation::SignatureInformation):
(JSC::Wasm::SignatureInformation::singleton):
(JSC::Wasm::SignatureInformation::adopt):
(JSC::Wasm::SignatureInformation::get):
(JSC::Wasm::SignatureInformation::tryCleanup):
(JSC::Wasm::Signature::create): Deleted.
(JSC::Wasm::Signature::createInvalid): Deleted.
(JSC::Wasm::Signature::destroy): Deleted.
(JSC::Wasm::SignatureInformation::~SignatureInformation): Deleted.

  • wasm/WasmSignature.h:

(JSC::Wasm::Signature::allocatedSize):
(JSC::Wasm::Signature::operator==):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::validateFunction):

  • wasm/WasmValidate.h:
  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::destroy):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::create):

  • wasm/js/WebAssemblyWrapperFunction.h:
3:08 PM Changeset in webkit [214690] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test to ensure webrtc generated certificates and names are ephemeral
https://bugs.webkit.org/show_bug.cgi?id=170225

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-31
Reviewed by Jon Lee.

  • webrtc/ephemeral-certificates-and-cnames-expected.txt: Added.
  • webrtc/ephemeral-certificates-and-cnames.html: Added.
3:05 PM Changeset in webkit [214689] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix memory leak in CreateSessionDescriptionObserver::OnSuccess
https://bugs.webkit.org/show_bug.cgi?id=170357

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

No change of behavior.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded): Adopting the raw pointer parameter.

3:03 PM Changeset in webkit [214688] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[WinCairo] WebCore::PlatformDisplay::terminateEGLDisplay causes a crash in libGLESv2.dll while processing atexit
https://bugs.webkit.org/show_bug.cgi?id=170331

Patch by Fujii Hironori <Fujii Hironori> on 2017-03-31
Reviewed by Michael Catanzaro.

Source/WebCore:

WebCore::PlatformDisplay uses atexit to destruct EGL displays
while exiting process. But, when the atexit will be processed,
heap of libGLESv2.dll would be already destructed and causing a
crash on Windows. Do not use atexit for Windows.

AppleWin port does not use PlatformDisplay. Thus, it does not have
this bug.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::initializeEGLDisplay): Do not use atexit for Windows.
(WebCore::PlatformDisplay::shutDownEglDisplays): Added.

  • platform/graphics/PlatformDisplay.h: Added a declaration of shutDownEglDisplays.

Source/WebKit/win:

  • WebKitDLL.cpp:

(shutDownWebKit): Call PlatformDisplay::shutDownEglDisplays in shutDownWebKit.

2:46 PM Changeset in webkit [214687] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[WK2] Tapping editable text inside of a range selection no longer changes the selection to a caret
https://bugs.webkit.org/show_bug.cgi?id=170327
<rdar://problem/31363816>

Reviewed by Tim Horton.

Source/WebKit2:

Currently, we're forcing all text interaction gestures to duck in lieu of data interaction gestures
when we should only be doing so for gestures that begin a loupe. This prevents other gestures, such as
single taps, from changing the selection when they should be allowed to.

Hooks into new UIKit SPI to make this tweak.
Introduces a new LayoutTest: editing/selection/caret-after-tap-in-editable-selection.html.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView pointIsInAssistedNode:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

LayoutTests:

Adds a new WK2 interaction test for iOS verifying that tapping a selection in editable content sets the selection
to a caret, rather than maintaining the range selection. This test is disabled in OpenSource, since it relies on
synthetic touch events.

  • TestExpectations:
  • editing/selection/caret-after-tap-in-editable-selection-expected.txt: Added.
  • editing/selection/caret-after-tap-in-editable-selection.html: Added.
2:22 PM Changeset in webkit [214686] by jmarcell@apple.com
  • 7 edits in tags/Safari-604.1.15.2/Source

Versioning.

2:18 PM Changeset in webkit [214685] by jmarcell@apple.com
  • 3 edits in tags/Safari-604.1.15.2/Source/WebKit2

Cherry-pick r214616. rdar://problem/31284447

1:18 PM Changeset in webkit [214684] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Array.prototype.splice() should not be using JSArray::tryCreateForInitializationPrivate().
https://bugs.webkit.org/show_bug.cgi?id=170303
<rdar://problem/31358281>

Reviewed by Filip Pizlo.

This is because it needs to call getProperty() later to get the values for
initializing the array. getProperty() can execute arbitrary code and potentially
trigger the GC. This is not allowed for clients of JSArray::tryCreateForInitializationPrivate().

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSplice):
(JSC::copySplicedArrayElements): Deleted.

12:56 PM Changeset in webkit [214683] by timothy_horton@apple.com
  • 4 edits in trunk

Mail can get stuck underneath FindController::findStringMatches after searching in a long message
https://bugs.webkit.org/show_bug.cgi?id=170326
<rdar://problem/30330395>

Reviewed by Simon Fraser.

Source/WebKit2:

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
Cap the number of find matches at 1000, the same maximum that Safari uses.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/FindInPage.mm:

(TEST):

12:42 PM Changeset in webkit [214682] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

Remove PRELOAD_DEBUG related code.
https://bugs.webkit.org/show_bug.cgi?id=170352

Reviewed by Youenn Fablet.

As the PRELOAD_DEBUG related code stopped building and it seems like no one noticed,
it seems safe to assume that we can remove that code. This patch removes it.

No new tests as there's no functional change.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::clearPreloads):
(WebCore::CachedResourceLoader::printPreloadStats): Deleted.

12:40 PM Changeset in webkit [214681] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-604.1.15.2

New Tag.

12:27 PM Changeset in webkit [214680] by beidson@apple.com
  • 14 edits
    1 copy in trunk/Source

Clean up the "StorageType" enum.
https://bugs.webkit.org/show_bug.cgi?id=170349

Reviewed by Tim Horton.

Source/WebCore:

  • Make this enum into an enum class
  • Add a new type specific for "transient local storage"

No new tests (No behavior change).

  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):

  • inspector/InspectorInstrumentation.h:
  • loader/EmptyClients.cpp:
  • storage/Storage.cpp:

(WebCore::Storage::isDisabledByPrivateBrowsing):

  • storage/StorageArea.h:

(): Deleted.

  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • storage/StorageType.h:

(WebCore::isLocalStorage):

Source/WebKit:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::dispatchStorageEvent):

  • Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):

Source/WebKit2:

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):

12:27 PM Changeset in webkit [214679] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove bundle checks for attachmentElementEnabled
https://bugs.webkit.org/show_bug.cgi?id=170329
<rdar://problem/25135244>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Remove bundle checks.

12:18 PM Changeset in webkit [214678] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/mediastream/MediaStream-page-muted.html as flaky for
https://bugs.webkit.org/show_bug.cgi?id=170355

11:30 AM Changeset in webkit [214677] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-604.1.14.2

Tag Safari-604.1.14.2.

10:50 AM Changeset in webkit [214676] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, Mark "HTML interactive form validation" as done.

It is shipping in Safari 10.1.

  • features.json:
10:41 AM Changeset in webkit [214675] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Correction for the previous change - this is an image failure.

  • platform/mac-wk2/TestExpectations:
10:33 AM Changeset in webkit [214674] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Adopt PKCanMakePaymentsWithMerchantIdentifierAndDomainAndSourceApplication
https://bugs.webkit.org/show_bug.cgi?id=170257
rdar://problem/31289764

Reviewed by Beth Dakin.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):

10:29 AM Changeset in webkit [214673] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/images/animated-image-different-dest-size.html as flaky for
https://bugs.webkit.org/show_bug.cgi?id=170203

  • platform/mac-wk2/TestExpectations:
10:28 AM Changeset in webkit [214672] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Mac cmake buildfix after r214403
https://bugs.webkit.org/show_bug.cgi?id=170346

Unreviewed speculative buildfix.

  • UIProcess/API/Cocoa/WKWebView.mm:
10:08 AM Changeset in webkit [214671] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Mac cmake buildfix after r214666
https://bugs.webkit.org/show_bug.cgi?id=170342

Unreviewed buildfix.

  • PlatformMac.cmake:
  • testing/MockPreviewLoaderClient.h:
9:57 AM Changeset in webkit [214670] by weinig@apple.com
  • 2 edits
    1 delete in trunk/Source/WebCore

Remove unneeded custom constructors include.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ios: Removed.
  • bindings/js/ios/TouchConstructors.cpp: Removed.
9:54 AM Changeset in webkit [214669] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Resource Load Statistics: Check if the store exists before clearing it
https://bugs.webkit.org/show_bug.cgi?id=170324
<rdar://problem/31258505>

Reviewed by Brent Fulgham.

No new tests. Added a null check.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::clearInMemoryAndPersistentStore):

Added a null check.

9:51 AM Changeset in webkit [214668] by matthew_hanson@apple.com
  • 7 edits in branches/safari-604.1.14-branch/Source

Versioning.

9:16 AM Changeset in webkit [214667] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove erroneously committed changes from r214078

Unreviewed.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess): Whoops!

6:37 AM Changeset in webkit [214666] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Modern media controls should never be enabled in non cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=170338

Reviewed by Michael Catanzaro.

It's currently enabled, because it uses the default value for all other runtime features, but modern media
controls are not a cross-platform feature. I think this is why media/video-click-dblckick-standalone.html
started to fail in GTK+ port after r214426. I can't reprouduce the failure locally, so I can't confirm it,
though.

  • Shared/WebPreferencesDefinitions.h:
5:38 AM Applications using WebKit edited by Konstantin Tokarev
(diff)
5:31 AM Changeset in webkit [214665] by Carlos Garcia Campos
  • 2 edits
    2 adds in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of several tests.

Also rebaseline fast/css/getComputedStyle/computed-style-font-family.html after r214394, it also requires variation
fonts.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Added.
4:13 AM Changeset in webkit [214664] by Carlos Garcia Campos
  • 2 edits
    4 adds in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline several tests after r214546.

GTK+ port doesn't support variation fonts. Also mark canvas/philip/tests/2d.pattern.animated.gif.html as failing
after r214503.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/text/font-selection-font-loading-api-parse-expected.txt: Added.
  • platform/gtk/fast/text/font-stretch-parse-expected.txt: Added.
  • platform/gtk/fast/text/font-style-parse-expected.txt: Added.
  • platform/gtk/fast/text/font-weight-parse-expected.txt: Added.
3:37 AM Changeset in webkit [214663] by commit-queue@webkit.org
  • 12 edits in trunk

[Readable Streams API] Implement cloneArrayBuffer in WebCore
https://bugs.webkit.org/show_bug.cgi?id=170008

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

Source/WebCore:

Implemented cloneArrayBuffer based on existing structuredCloneArrayBuffer
implementation. The code has been factorized so that both cloneArrayBuffer
and structuredCloneArrayBuffer rely on the same code (which is basically
the previous implementation of structuredCloneArrayBuffer + the ability
to clone only a part of considered buffer).

Added test to check cloneArrayBuffer behaviour.

  • Modules/streams/ReadableByteStreamInternals.js: Deleted cloneArrayBuffer JS implementation.
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals): Add cloneArrayBuffer private declaration.

  • bindings/js/StructuredClone.cpp:

(WebCore::cloneArrayBufferImpl): Added (mostly based on previous structuredCloneArrayBuffer).
(WebCore::cloneArrayBuffer): Added.
(WebCore::structuredCloneArrayBuffer): Updated.

  • bindings/js/StructuredClone.h: Added cloneArrayBuffer declaration.
  • bindings/js/WebCoreBuiltinNames.h: Added cloneArrayBuffer declaration.
  • testing/Internals.cpp: Added support for testing cloneArrayBuffer.
  • testing/Internals.h: Added support for testing cloneArrayBuffer.
  • testing/Internals.idl: Added support for testing cloneArrayBuffer.

LayoutTests:

Added test to check cloneArrayBuffer behaviour.

  • streams/readable-stream-byob-request.js:
3:06 AM Changeset in webkit [214662] by gskachkov@gmail.com
  • 3 edits
    1 copy
    3 moves
    2 adds in trunk

String.prototype.replace incorrectly applies "special replacement parameters" when passed a function
https://bugs.webkit.org/show_bug.cgi?id=170151

Reviewed by Saam Barati.

This patch fixes issue for String.prototype.replace when passed a function
with special symbols "$$". It happeneds because substituteBackreferences applies
unconditionally, but according to the spec it should be applied only for text
21.1.3.16.8 https://tc39.github.io/ecma262/#sec-string.prototype.replace

Source/JavaScriptCore:

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingStringSearch):

LayoutTests:

  • js/script-tests/string_replace_function.js: Added.
  • js/script-tests/string_replace_regexp.js: Renamed from LayoutTests/js/script-tests/string_replace.js.
  • js/string_replace_function-expected.txt: Added.
  • js/string_replace_function.html: Copied from LayoutTests/js/string_replace.html.
  • js/string_replace_regexp-expected.txt: Renamed from LayoutTests/js/string_replace-expected.txt.
  • js/string_replace_regexp.html: Renamed from LayoutTests/js/string_replace.html.
2:39 AM Changeset in webkit [214661] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix WTR crashes in GTK+ port after r214413.

Fixes: http/tests/ssl/upgrade-origin-usage.html

http/tests/websocket/tests/hybi/network-process-crash-error.html
http/tests/websocket/tests/hybi/simple-wss.html

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformContext): Return the context.

2:27 AM Changeset in webkit [214660] by Manuel Rego Casasnovas
  • 5 edits
    276 copies
    15 adds
    1 delete in trunk/LayoutTests

[css-grid] Update W3C Test Suite
https://bugs.webkit.org/show_bug.cgi?id=170170

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

This adds 2 new tests for "Implied Minimum Size of Grid Items" section,
which check the behavior of percentages:

  • grid-items/grid-minimum-size-grid-items-019.html
  • grid-items/grid-minimum-size-grid-items-020.html

Additionally, as the csswg-test repo has been merged into web-platform-tests,
we're using the new path in this import.

  • csswg-test/css-grid-1/grid-definition/w3c-import.log: Removed.
  • csswg-test/css-grid-1/grid-items/w3c-import.log: Removed.
  • csswg-test/css-grid-1/grid-model/w3c-import.log: Removed.
  • csswg-test/css-grid-1/placement/w3c-import.log: Removed.
  • csswg-test/css-grid-1/w3c-import.log: Removed.
  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-grid-1/OWNERS: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/OWNERS.
  • web-platform-tests/css/css-grid-1/README.md: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/README.md.
  • web-platform-tests/css/css-grid-1/grid-definition/fr-unit-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/fr-unit-expected.html.
  • web-platform-tests/css/css-grid-1/grid-definition/fr-unit-with-percentage-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/fr-unit-with-percentage-expected.html.
  • web-platform-tests/css/css-grid-1/grid-definition/fr-unit-with-percentage.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/fr-unit-with-percentage.html.
  • web-platform-tests/css/css-grid-1/grid-definition/fr-unit.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/fr-unit.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-repeat-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-repeat-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-layout-auto-tracks-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-layout-auto-tracks-expected.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-layout-auto-tracks.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-layout-auto-tracks.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-layout-basic-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-layout-basic-expected.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-layout-basic.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-layout-basic.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-layout-repeat-notation-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-layout-repeat-notation-expected.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-layout-repeat-notation.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-layout-repeat-notation.html.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-flexible-lengths-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-grid-template-areas-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-named-grid-lines-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-repeat-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-repeat-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-support-repeat-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-support-repeat-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht.
  • web-platform-tests/css/css-grid-1/grid-definition/support/testing-utils.js: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/support/testing-utils.js.
  • web-platform-tests/css/css-grid-1/grid-definition/support/w3c-import.log: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-definition/support/w3c-import.log.
  • web-platform-tests/css/css-grid-1/grid-definition/w3c-import.log: Added.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-inline-blocks-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-001.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-001.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-002.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-002.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-003.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-003.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-item-containing-block-004.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-004.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-inline-blocks-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-inline-blocks-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-inline-blocks-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-sizing-alignment-001-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-sizing-alignment-001-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-items-sizing-alignment-001.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-sizing-alignment-001.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-layout-grid-in-grid-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-grid-in-grid-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-layout-grid-in-grid.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-grid-in-grid.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-layout-z-order-a-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-a-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-layout-z-order-a.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-a.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-layout-z-order-b-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-b-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-layout-z-order-b.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-b.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-005-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-006-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-007-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-008-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-009-expected.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-010-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-010-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-010.html: Copied from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-010.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-011-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-011-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-011.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-011.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-012-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-012-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-012.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-012.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-013-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-013-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-013.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-013.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-014-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-014-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-014.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-014.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-015-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-015-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-015.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-015.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-016-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-016-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-016.html: Copied from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-016.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-017-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-017-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-017.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-017.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-018-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-018-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-018.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-018.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-019-expected.xht: Copied from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-019.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-010.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-020-expected.xht: Copied from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-020.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-016.html.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-order-property-painting-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht.
  • web-platform-tests/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/ref-filled-green-100px-square-image.html.
  • web-platform-tests/css/css-grid-1/grid-items/support/100x100-green.png: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/support/100x100-green.png.
  • web-platform-tests/css/css-grid-1/grid-items/support/100x50-green.png: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/support/100x50-green.png.
  • web-platform-tests/css/css-grid-1/grid-items/support/200x200-green.png: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/support/200x200-green.png.
  • web-platform-tests/css/css-grid-1/grid-items/support/50x100-green.png: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/support/50x100-green.png.
  • web-platform-tests/css/css-grid-1/grid-items/support/50x50-green.png: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/support/50x50-green.png.
  • web-platform-tests/css/css-grid-1/grid-items/support/w3c-import.log: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/support/w3c-import.log.
  • web-platform-tests/css/css-grid-1/grid-items/w3c-import.log: Added.
  • web-platform-tests/css/css-grid-1/grid-layout-properties-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-layout-properties-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-layout-properties.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-layout-properties.html.
  • web-platform-tests/css/css-grid-1/grid-model/display-grid-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/display-grid-expected.html.
  • web-platform-tests/css/css-grid-1/grid-model/display-grid.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/display-grid.html.
  • web-platform-tests/css/css-grid-1/grid-model/display-inline-grid-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/display-inline-grid-expected.html.
  • web-platform-tests/css/css-grid-1/grid-model/display-inline-grid.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/display-inline-grid.html.
  • web-platform-tests/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-computed-value-display-floated-items-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-display-grid-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-grid-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-display-grid-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-grid-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-display-inline-grid-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-inline-grid-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-display-inline-grid-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-inline-grid-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-letter-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-letter-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-letter-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-letter-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-002.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-letter-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-letter-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-003.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-line-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-line-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-line-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-line-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-002.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-line-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-first-line-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-003.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-float-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-float-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-float-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-float-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-floats-no-intrude-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-floats-no-intrude-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-floats-no-intrude-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-letter-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-letter-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-letter-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-letter-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-002.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-letter-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-letter-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-003.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-line-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-line-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-line-002-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-002-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-line-002.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-002.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-line-003-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-003-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-first-line-003.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-003.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-float-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-float-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-float-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-float-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-floats-no-intrude-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-margins-no-collapse-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-multicol-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-multicol-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-multicol-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-multicol-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-vertical-align-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-vertical-align-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-vertical-align-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-margins-no-collapse-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-margins-no-collapse-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-margins-no-collapse-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-multicol-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-multicol-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-multicol-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-multicol-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-support-display-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-support-display-001-expected.txt.
  • web-platform-tests/css/css-grid-1/grid-model/grid-support-display-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-support-display-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-vertical-align-001-expected.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-vertical-align-001-expected.xht.
  • web-platform-tests/css/css-grid-1/grid-model/grid-vertical-align-001.xht: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-vertical-align-001.xht.
  • web-platform-tests/css/css-grid-1/grid-model/w3c-import.log: Added.
  • web-platform-tests/css/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001-expected.html.
  • web-platform-tests/css/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001.html.
  • web-platform-tests/css/css-grid-1/implicit-grids/w3c-import.log: Copied from LayoutTests/imported/w3c/csswg-test/css-grid-1/implicit-grids/w3c-import.log.
  • web-platform-tests/css/css-grid-1/layout-algorithm/grid-layout-free-space-unit-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/layout-algorithm/grid-layout-free-space-unit-expected.html.
  • web-platform-tests/css/css-grid-1/layout-algorithm/grid-layout-free-space-unit.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/layout-algorithm/grid-layout-free-space-unit.html.
  • web-platform-tests/css/css-grid-1/layout-algorithm/w3c-import.log: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/implicit-grids/w3c-import.log.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-grid-span-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-grid-span-expected.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-grid-span.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-grid-span.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-lines-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-lines-expected.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-lines-shorthands-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-lines-shorthands-expected.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-lines-shorthands.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-lines-shorthands.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-lines.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-lines.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-placement-shorthands-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-placement-shorthands-expected.html.
  • web-platform-tests/css/css-grid-1/placement/grid-layout-placement-shorthands.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/placement/grid-layout-placement-shorthands.html.
  • web-platform-tests/css/css-grid-1/placement/w3c-import.log: Added.
  • web-platform-tests/css/css-grid-1/test-plan/index.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/test-plan/index.html.
  • web-platform-tests/css/css-grid-1/test-plan/w3c-import.log: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/test-plan/w3c-import.log.
  • web-platform-tests/css/css-grid-1/w3c-import.log: Renamed from LayoutTests/imported/w3c/csswg-test/css-grid-1/layout-algorithm/w3c-import.log.

LayoutTests:

Update path to tests in TestExpectations as the CSS Grid Layout suite
is now under web-platform-tests.

1:25 AM Changeset in webkit [214659] by commit-queue@webkit.org
  • 4 edits in trunk

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409
<rdar://problem/30799198>

Source/WebCore:

Unreviewed. Yet more logging to determine under what circumstance ScriptedAnimationController gets suspended.

Patch by Antoine Quint <Antoine Quint> on 2017-03-31

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):

LayoutTests:

Unreviewed. Capture new logging events.

Patch by Antoine Quint <Antoine Quint> on 2017-03-31

  • media/modern-media-controls/airplay-button/airplay-button.html:

Mar 30, 2017:

10:43 PM Changeset in webkit [214658] by zandobersek@gmail.com
  • 4 edits in trunk/Source

Source/WebCore:
Unreviewed GTK+ build fix. Add missing ANGLE build targets
to the build.

  • CMakeLists.txt:

Source/WebKit2:
Unreviewed GTK+ build fix. List WebCore before JavaScriptCore as the
two WebKit2 dependency libraries to avoid WTF directiories being
listed for inclusion before WebCore directories at compile-time.

  • CMakeLists.txt:
7:33 PM Changeset in webkit [214657] by jmarcell@apple.com
  • 6 edits in branches/safari-603-branch/Source/WebCore

Merge r214392. rdar://problem/31356105

7:33 PM Changeset in webkit [214656] by jmarcell@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r214334. rdar://problem/31356106

7:33 PM Changeset in webkit [214655] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r214599. rdar://problem/31356103

7:33 PM Changeset in webkit [214654] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-603-branch

Merge r214510. rdar://problem/31356107

7:33 PM Changeset in webkit [214653] by jmarcell@apple.com
  • 7 edits
    2 adds in branches/safari-603-branch

Merge r214086. rdar://problem/31356102

7:33 PM Changeset in webkit [214652] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

sync-buildbot.js can schedule more than one build per builder
https://bugs.webkit.org/show_bug.cgi?id=170318

Reviewed by Saam Barati.

The bug was caused by _scheduleNextRequestInGroupIfSlaveIsAvailable not returning a promise when
scheduling the first build request of a test group. This resulted in _pullBuildbotOnAllSyncers
to prematurely resolve before POST'ing new build had finished. That in turn could result in the
next cycle of syncing to occur before POST'ing has actually taken place.

More precisely, when the nextRequest was the first request or its associated syncer object could
not be identified, we were supposed to find the first available syncer, schedule the request,
and then return the promise returned by scheduleRequestInGroupIfAvailable. However, the for loop
which called scheduleRequestInGroupIfAvailable on every syncer was declaring its own variable
named "promise" thereby shadowing the outer variable, which is returned to the caller.

Fixed the bug by not declaring a shadowing variable, and refactored the code. Namely, the only
reason we had such a complicated logic with two local variables, promise and syncer, was so that
we could log that we're scheduling a build. Extracted this code as _scheduleRequestWithLog.

_scheduleNextRequestInGroupIfSlaveIsAvailable can now simply exit early with a call to
_scheduleRequestWithLog when the syncer is readily identified. When looping over syncers, it can
simply return the first non-null result of _scheduleNextRequestInGroupIfSlaveIsAvailable.

  • server-tests/tools-buildbot-triggerable-tests.js: Added a test case where we wait 10ms after

receiving the request to POST a build. There should be no new network request until we resolve
this request.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype._scheduleNextRequestInGroupIfSlaveIsAvailable): Fixed the bug.
(BuildbotTriggerable.prototype._scheduleRequestWithLog): Extracted.

7:33 PM Changeset in webkit [214651] by jmarcell@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r214003. rdar://problem/31331131

7:11 PM Changeset in webkit [214650] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Modernize BuildbotSyncer and BuildbotTriggerable
https://bugs.webkit.org/show_bug.cgi?id=170310

Reviewed by Chris Dumez.

Modernized the code to use arrow functions and other modern idoms in ES2016.

  • ReadMe.md: Added instructions on how to run tests, and moved the steps to configure postgres

above the steps to configure Apache since only the former is needed to run tests.

  • tools/js/buildbot-syncer.js:
  • tools/js/buildbot-triggerable.js:
7:08 PM Changeset in webkit [214649] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Ensure that Node::willBeDeletedFrom() always removes touch event handlers from the document
https://bugs.webkit.org/show_bug.cgi?id=170323
rdar://problem/23647630

Reviewed by Chris Dumez.

There are two instances where nodes are registered as touch event handlers without
having normal touch event listeners: slider thumb elements, and elements with overflow scrolling,
on iOS.

For such nodes, hasEventTargetData() will be false, but we want to ensure
that they are removed from the Document's touchEventHandler set, so move the
call to document.removeTouchEventHandler() outside of the conditional block.

This should be cheap in most cases when the touchEventHandler is empty.

  • dom/Node.cpp:

(WebCore::Node::willBeDeletedFrom):

7:08 PM Changeset in webkit [214648] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Minor cleanup checking for gesture event names
https://bugs.webkit.org/show_bug.cgi?id=170319

Reviewed by Tim Horton.

Just use isGestureEventType() in a couple of places.

  • dom/Node.cpp:

(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):

7:04 PM Changeset in webkit [214647] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Yet another build fix after r214502. Workaround webkit.org/b/169907 for now.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage.cssTemplate):

6:36 PM Changeset in webkit [214646] by Megan Gardner
  • 5 edits in trunk/Source/WebKit2

Allow for extended color in snapshots
https://bugs.webkit.org/show_bug.cgi?id=170314
<rdar://problem/28676092> WKImageCreateCGImage should support WideGamut in WebKit2 on macOS

Reviewed by Simon Fraser.

Piping options through snapshots to allow for wide gamut support.

  • Shared/API/c/WKImage.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::snapshotOptionsFromImageOptions):

  • Shared/ImageOptions.h:

(WebKit::snapshotOptionsToImageOptions):

  • Shared/WebImage.cpp:

(WebKit::WebImage::create):

6:15 PM Changeset in webkit [214645] by sbarati@apple.com
  • 23 edits
    1 copy
    1 add in trunk/Source/JavaScriptCore

WebAssembly: When Wasm calls to C, it should use Wasm::Context* instead of ExecState* to get VM
https://bugs.webkit.org/show_bug.cgi?id=170185

Reviewed by Michael Saboff.

This is one more step in the direction of PIC-ified Wasm.
When we lift WasmCallee above VM, we will no longer be
able to get VM from ExecState*. This patch ensures that
we don't do that from within the Wasm runtime. Instead,
we use the Wasm::Context* to get the VM.

This patch also adds a new class, Wasm::Thunks. There
is a single Wasm::Thunks that lives in the process. It
is responsible for generating a thunk that Wasm relies on.
The only such thunk right now is the exception throwing
thunk.

This patch also rids WasmFaultSignalHandler from any knowledge
of VM. Previously, it relied on VM to get the exception handling
thunk.

The only part of the Wasm runtime that will be allowed
to get VM& from ExecState will be WasmBinding. In the
future, we plan to keep the calls out to JS to keep
a JSCell as the callee.

(JSC::DFG::prepareOSREntry):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToVMEntryFrameCalleeSavesBufferImpl):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromWasmThunkGenerator): Deleted.

  • jit/ThunkGenerators.h:
  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getAllCalleeSaveRegisterOffsets):

  • runtime/VM.h:

(JSC::VM::topVMEntryFrameOffset):
(JSC::VM::getAllCalleeSaveRegisterOffsets): Deleted.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitExceptionCheck):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::tryGetFastMemory):

  • wasm/WasmThunks.cpp: Added.

(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::Thunks::initialize):
(JSC::Wasm::Thunks::singleton):
(JSC::Wasm::Thunks::stub):
(JSC::Wasm::Thunks::existingStub):

  • wasm/WasmThunks.h: Added.
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):

  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::offsetOfVM):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::grow):

  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/WebAssemblyMemoryPrototype.cpp:

(JSC::webAssemblyMemoryProtoFuncGrow):

5:51 PM Changeset in webkit [214644] by Matt Baker
  • 2 edits in trunk/LayoutTests

Unreviewed. Update test expectations after https://bugs.webkit.org/show_bug.cgi?id=170279.

  • inspector/css/getAllStyleSheets-expected.txt:
5:45 PM Changeset in webkit [214643] by weinig@apple.com
  • 6 edits
    1 add in trunk

Expose the WKView SPI, _prepareForMoveToWindow:withCompletionHandler as WKWebView SPI
Source/WebKit2:

<rdar://problem/31350588>
https://bugs.webkit.org/show_bug.cgi?id=170315

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _prepareForMoveToWindow:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Copy SPI to WKWebView. Remove 'with' prefix to match conventions.

Tools:

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

Reviewed by Simon Fraser.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/PrepareForMoveToWindow.mm: Added.

Add test showing the completion handler is called.

5:40 PM Changeset in webkit [214642] by msaboff@apple.com
  • 2 edits in trunk/JSTests

Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work
https://bugs.webkit.org/show_bug.cgi?id=170313

Reviewed by Saam Barati.

Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid.

  • ChakraCore.yaml:
5:23 PM Changeset in webkit [214641] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline js/dom/global-constructors-attributes.html.

Unreviewed test gardening.

  • platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
5:04 PM Changeset in webkit [214640] by Simon Fraser
  • 7 edits in trunk

Rename a touch event function, and new touch region test results
https://bugs.webkit.org/show_bug.cgi?id=170309
rdar://problem/31329520

Reviewed by Chris Dumez.

Source/WebCore:

Adapt to a naming change in WebKitAdditions.

  • dom/Document.cpp:

(WebCore::Document::removeAllEventListeners):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:

A code change in WebKitAdditions progresses this test result.

  • fast/events/touch/ios/touch-event-regions/iframes-expected.txt:
4:35 PM Changeset in webkit [214639] by mrajca@apple.com
  • 2 edits
    2 adds in trunk

YouTube sometimes does not respect "user gesture" restriction for videos.
https://bugs.webkit.org/show_bug.cgi?id=170297

I discovered a code path that does not honor the "user gesture" requirement and playback is able to begin
even though we have a restriction in place. When using Media Source Extensions, which YouTube does, we transition
from a "Have Metadata" to a "Future Data" state that causes playback to begin, however, we never check
if we have a playback restriction in place.

Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setReadyState):

4:30 PM Changeset in webkit [214638] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.14.1

Tag Safari-604.1.14.1.

4:06 PM Changeset in webkit [214637] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

IntlObject should not be using JSArray::initializeIndex().
https://bugs.webkit.org/show_bug.cgi?id=170302
<rdar://problem/31356918>

Reviewed by Saam Barati.

JSArray::initializeIndex() is only meant to be used with arrays created using
JSArray::tryCreateForInitializationPrivate() under very constrained conditions.

  • runtime/IntlObject.cpp:

(JSC::canonicalizeLocaleList):
(JSC::intlObjectFuncGetCanonicalLocales):

3:55 PM Changeset in webkit [214636] by fpizlo@apple.com
  • 59 edits
    8 adds
    1 delete in trunk

Air should support linear scan for optLevel<2
https://bugs.webkit.org/show_bug.cgi?id=170161

Reviewed by Saam Barati.

Source/JavaScriptCore:

This changes the default opt level of B3 to 2. It makes the other opt levels useful by adding a
new register allocator. This new linear scan allocator will produce significantly worse code.
But it will produce that code a lot faster than IRC or Briggs.

The opt levels are:

0: no optimizations, linear scan
1: some optimizations, linear scan
2: full optimizations, graph coloring (IRC or Briggs based on CPU)


What we used to call optLevel=1 is not called optLevel=2, or better yet,
optLevel=B3::defaultOptLevel(). We no longer have anything like the old optLevel=0 (which did no
optimizations but ran graph coloring).

allocateRegistersByLinearScan() faithfully implements Massimiliano Poletto and Vivek Sarkar's
famous algorithm. It uses the variant that handles clobbered registers by avoiding assigning
ranges to those registers if the range overlaps a clobber. It's engineered to allocate registers
very quickly and generate inefficient code without falling off a cliff.

The new optLevel=1 speeds up B3 by a factor of 2, and results in a 80% throughput regression.
Linear scan runs 4.7x faster than graph coloring on average.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3BasicBlockUtils.h:

(JSC::B3::blocksInPreOrder):
(JSC::B3::blocksInPostOrder):

  • b3/B3BlockWorklist.h:
  • b3/B3CFG.h:

(JSC::B3::CFG::newMap):

  • b3/B3Common.h:

(JSC::B3::defaultOptLevel):

  • b3/B3Compile.h:
  • b3/B3DuplicateTails.cpp:
  • b3/B3EliminateCommonSubexpressions.cpp:
  • b3/B3FixSSA.cpp:

(JSC::B3::demoteValues):
(JSC::B3::fixSSA):

  • b3/B3FixSSA.h:
  • b3/B3Generate.cpp:

(JSC::B3::prepareForGeneration):
(JSC::B3::generateToAir):

  • b3/B3Generate.h:
  • b3/B3HeapRange.cpp: Removed.
  • b3/B3HeapRange.h:

(JSC::B3::HeapRange::HeapRange): Deleted.
(JSC::B3::HeapRange::top): Deleted.
(JSC::B3::HeapRange::operator==): Deleted.
(JSC::B3::HeapRange::operator!=): Deleted.
(JSC::B3::HeapRange::operator|): Deleted.
(JSC::B3::HeapRange::operator bool): Deleted.
(JSC::B3::HeapRange::begin): Deleted.
(JSC::B3::HeapRange::end): Deleted.
(JSC::B3::HeapRange::overlaps): Deleted.

  • b3/B3LowerToAir.cpp:
  • b3/B3MoveConstants.cpp:
  • b3/B3PhiChildren.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::dump):
(JSC::B3::Procedure::deleteOrphans):
(JSC::B3::Procedure::setBlockOrderImpl):

  • b3/B3ReduceDoubleToFloat.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/B3SSACalculator.h:
  • b3/B3UseCounts.h:
  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • b3/air/AirAllocateRegistersByLinearScan.cpp: Added.

(JSC::B3::Air::allocateRegistersByLinearScan):

  • b3/air/AirAllocateRegistersByLinearScan.h: Added.
  • b3/air/AirAllocateStack.cpp:

(JSC::B3::Air::allocateStack):

  • b3/air/AirArg.cpp:

(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::activeAt):
(JSC::B3::Air::Arg::timing):
(JSC::B3::Air::Arg::forEachPhase):

  • b3/air/AirBasicBlock.h:
  • b3/air/AirBlockWorklist.h:
  • b3/air/AirCFG.h:

(JSC::B3::Air::CFG::newMap):

  • b3/air/AirEliminateDeadCode.cpp:

(JSC::B3::Air::eliminateDeadCode):

  • b3/air/AirFixObviousSpills.cpp:
  • b3/air/AirFixPartialRegisterStalls.cpp:

(JSC::B3::Air::fixPartialRegisterStalls):

  • b3/air/AirFixSpillsAfterTerminals.cpp: Added.

(JSC::B3::Air::fixSpillsAfterTerminals):

  • b3/air/AirFixSpillsAfterTerminals.h: Added.
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generate):

  • b3/air/AirGenerate.h:
  • b3/air/AirGenerationContext.h:
  • b3/air/AirInsertionSet.h:
  • b3/air/AirInst.cpp:

(JSC::B3::Air::Inst::needsPadding):

  • b3/air/AirLowerAfterRegAlloc.cpp:

(JSC::B3::Air::lowerAfterRegAlloc):

  • b3/air/AirLowerEntrySwitch.cpp:

(JSC::B3::Air::lowerEntrySwitch):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirPhaseInsertionSet.cpp: Added.

(JSC::B3::Air::PhaseInsertionSet::execute):

  • b3/air/AirPhaseInsertionSet.h: Added.

(JSC::B3::Air::PhaseInsertion::PhaseInsertion):
(JSC::B3::Air::PhaseInsertion::phase):
(JSC::B3::Air::PhaseInsertion::operator<):
(JSC::B3::Air::PhaseInsertionSet::PhaseInsertionSet):
(JSC::B3::Air::PhaseInsertionSet::appendInsertion):
(JSC::B3::Air::PhaseInsertionSet::insertInst):
(JSC::B3::Air::PhaseInsertionSet::insert):

  • b3/air/AirRegLiveness.h:

(JSC::B3::Air::RegLiveness::LocalCalc::LocalCalc):

  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/air/AirTmp.cpp:
  • b3/air/AirTmp.h:

(JSC::B3::Air::Tmp::tmpForIndex):

  • b3/air/AirTmpInlines.h:

(JSC::B3::Air::Tmp::Indexed::Indexed):
(JSC::B3::Air::Tmp::Indexed::index):
(JSC::B3::Air::Tmp::AbsolutelyIndexed::AbsolutelyIndexed):
(JSC::B3::Air::Tmp::AbsolutelyIndexed::index):
(JSC::B3::Air::Tmp::indexed):
(JSC::B3::Air::Tmp::absolutelyIndexed):
(JSC::B3::Air::Tmp::tmpForAbsoluteIndex):

  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::testMulLoadTwice):

  • jit/RegisterSet.h:

(JSC::RegisterSet::add):
(JSC::RegisterSet::remove):

  • runtime/Options.h:
  • wasm/WasmB3IRGenerator.h:

Source/WTF:

This change introduces a new low-latency register allocator. It can allocate registers very
quickly by doing a relatively poor job. Implementing this algorithm required beefing up some of
our core algorithms.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Deque.h: Make it possible to do some basic priority queueing with this data structure.

(WTF::inlineCapacity>::removeAllMatching):
(WTF::inlineCapacity>::appendAndBubble):
(WTF::inlineCapacity>::takeLast):

  • wtf/IndexKeyType.h: Added. This makes it possible to use IndexMap and IndexSet with value or pointer types. Previously they just worked with pointer types.

(WTF::IndexKeyType::index):

  • wtf/IndexMap.h: Adopt IndexKeyType.

(WTF::IndexMap::operator[]):
(WTF::IndexMap::append):

  • wtf/IndexSet.h: Adopt IndexKeyType.

(WTF::IndexSet::add):
(WTF::IndexSet::addAll):
(WTF::IndexSet::remove):
(WTF::IndexSet::contains):
(WTF::IndexSet::Iterable::iterator::operator*):

  • wtf/Range.h: Added. This used to be B3::HeapRange. This generalizes that data structure to any kind of range stuff.

(WTF::Range::Range):
(WTF::Range::top):
(WTF::Range::operator==):
(WTF::Range::operator!=):
(WTF::Range::operator bool):
(WTF::Range::operator|):
(WTF::Range::operator|=):
(WTF::Range::begin):
(WTF::Range::end):
(WTF::Range::overlaps):
(WTF::Range::dump):

  • wtf/RangeSet.h:

(WTF::RangeSet::add):

Tools:

This makes us run a bunch of JS tests at optLevel=1 to force testing of this new compiler
pipeline.

  • Scripts/run-jsc-stress-tests:
3:41 PM Changeset in webkit [214635] by commit-queue@webkit.org
  • 15 edits
    3 adds in trunk

REGRESSION (r213764): Background image from sprite sheet incorrectly scaled
https://bugs.webkit.org/show_bug.cgi?id=169547

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-03-30
Reviewed by Simon Fraser.

Source/WebCore:

The bug happens when drawing only a rectangle of an image not the whole
image. In BitmapImage::draw(), sizeForDrawing was calculated as the destRect
scaled by the transformation which is applied to the GraphicsContext. Two
problems with this approach. The first one is destRect can be only part of
the image. The second problem is, the ratio destRect / srcRect is another
scaling that needs to be considered.

To fix this issue, first the base size has to be size of the image and not
destRect.size(). Secondly, we need to scale this base size with the context
transformation multiplied by the ratio destRect / srcRect. This scaling is
exactly the same scaling which is calculated in subsamplingScale(). Finally
we use this scaled size as the sizeForDrawing to send to the ImageDecoder.

Test: fast/images/sprite-sheet-image-draw.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw): Fix the bug.
(WebCore::BitmapImage::stopAnimation): Stops the async image decoding for animated images only.
The decoding for large images will be stopped when BitmapImage::newFrameNativeImageAvailableAtIndex()
is called and the decoding queue is idle.
(WebCore::BitmapImage::newFrameNativeImageAvailableAtIndex): Add image logging.

  • platform/graphics/BitmapImage.h: Move sourceURL() to the Image class.
  • platform/graphics/GraphicsContext.cpp: Pass imagePaintingOptions.m_decodingMode to Image::drawTiled().

(WebCore::GraphicsContext::drawTiledImage): Pass imagePaintingOptions.m_decodingMode) to Image::drawTiled().

  • platform/graphics/Image.cpp:

(WebCore::Image::sourceURL): Moved from BitmapImage.
(WebCore::Image::drawTiled): Add a DecodingMode argument instead of calling always with DecodingMode::Synchronous.

  • platform/graphics/Image.h:
  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): Add image logging.
(WebCore::ImageFrameCache::startAsyncDecodingQueue): Ditto,
(WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): Ditto.
(WebCore::ImageFrameCache::stopAsyncDecodingQueue): Ditto.
(WebCore::ImageFrameCache::sourceURL): A helper function to avoid checking the value of m_image.

  • platform/graphics/ImageFrameCache.h:
  • platform/graphics/NativeImage.h: Rename subsamplingScale() to nativeImageDrawingScale() and return image scaling instead.
  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::nativeImageDrawingScale): Ditto.
(WebCore::subsamplingScale): Deleted.

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::nativeImageDrawingScale): Ditto.
(WebCore::subsamplingScale): Deleted.

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::nativeImageDrawingScale): Ditto.
(WebCore::subsamplingScale): Deleted.

LayoutTests:

  • fast/images/async-image-background-image.html:
  • fast/images/resources/sprite-sheet-red-green-blue.png: Added.
  • fast/images/sprite-sheet-image-draw-expected.html: Added.
  • fast/images/sprite-sheet-image-draw.html: Added.
3:37 PM Changeset in webkit [214634] by Matt Baker
  • 4 edits in trunk

Web Inspector: Assertion failure in InspectorStyleProperty::setRawTextFromStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=170279
<rdar://problem/30200492>

Reviewed by David Hyatt.

Source/WebCore:

The SourceRange for a CSSPropertySourceData should be relative to the start
of the declaration body, not the start of the StyleSheetHandler’s parsed
text. This only affected the ranges of unparsed (parsedOK == false) properties
lacking a trailing semi-colon.

This patch doesn't change the behavior of InspectorStyleSheet other than
silencing an irksome assert, as String::substring does a safety check on
the passed in length.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::fixUnparsedProperties):

LayoutTests:

  • inspector/css/getAllStyleSheets.html:

Add stylesheet with an "unparsed" property having no final semicolon.

3:35 PM Changeset in webkit [214633] by msaboff@apple.com
  • 2 edits
    1 add in trunk/JSTests

Enable ChakraCore/Function/FuncBody.js test as it now works
https://bugs.webkit.org/show_bug.cgi?id=170301

Reviewed by Mark Lam.

This test no longer crashes, so enable it and create a JSC specific
expected file.

  • ChakraCore.yaml:
  • ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added.
3:26 PM Changeset in webkit [214632] by jmarcell@apple.com
  • 7 edits in tags/Safari-604.1.15.1/Source

Versioning.

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

Support tvOS and watchOS in webkitdirs.pm
https://bugs.webkit.org/show_bug.cgi?id=170267

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitdirs.pm:

(determineXcodeSDK): Evaluate sdk for tvos and watchos.
(xcodeSDKPlatformName): Added support for tvos and watchos.
(determinePortName): Same.
(isAppleCocoaWebKit): Same.
(willUseAppleTVDeviceSDK): Added.
(willUseAppleTVSimulatorSDK): Added.
(willUseWatchDeviceSDK): Added.
(willUseWatchSimulatorSDK): Added.
(isTVOSWebKit): Added.
(isWATCHOSWebKit): Added.
(isIOSLikeWebKit): Added.

3:08 PM Changeset in webkit [214630] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.15.1

Tag Safari-604.1.15.1.

2:52 PM Changeset in webkit [214629] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Revert an erronously change in the previous commit.

  • public/v3/components/base.js:
2:48 PM Changeset in webkit [214628] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r214280. Don't render components until its element is inserted into a document.

  • public/v3/components/base.js:

(ComponentBase):

2:42 PM Changeset in webkit [214627] by commit-queue@webkit.org
  • 25 edits
    5 adds in trunk

Clean up RTCDataChannel
https://bugs.webkit.org/show_bug.cgi?id=169732

LayoutTests/imported/w3c:

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

  • web-platform-tests/webrtc/RTCDataChannelEvent-constructor-expected.txt:

Source/JavaScriptCore:

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

  • runtime/CommonIdentifiers.h: Adding RTCDataChannelEvent.

Source/WebCore:

Patch by Youenn Fablet <youenn@apple.com> and Jon Lee <jonlee@apple.com> on 2017-03-30
Reviewed by Chris Dumez.

Test: webrtc/datachannel/datachannel-event.html

webrtc/datachannel/bufferedAmountLowThreshold.html

Making RTCDataChannel interface closer to the spec updating implementation accordingly.
See https://w3c.github.io/webrtc-pc/#rtcdatachannel.
In particular adding RTCDataChannelEvent constructor, and missing bufferedAmount related attributes.
Doing some additional cleaning refactoring.

Making bufferedAmountIsDecreasing take a bufferedAmount argument so that we get the actual value passed by
libwebrtc without needing to get it from the libwebrtc network thread again.
In the future, we should store the bufferedAmount value in RTCDataChannel and update its value on each libwebrtc
OnBufferedAmountChange. Special treatment may be needed when the data channel is closed, in which case the bufferedAmount should just be
updated to increase in the send method.

Added some FIXMEs as RTCDataChannel is not aligned with the spec related to send and bufferedAmount.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::send):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::didChangeReadyState):
(WebCore::RTCDataChannel::bufferedAmountIsDecreasing):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCDataChannelEvent.cpp:

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

  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCDataChannelEvent.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::OnStateChange):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addDataChannel):

  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventNames.h:
  • platform/mediastream/RTCDataChannelHandler.h:
  • platform/mediastream/RTCDataChannelHandlerClient.h:
  • platform/mediastream/RTCDataChannelState.h: Added.
  • platform/mediastream/RTCPeerConnectionHandlerClient.h:
  • platform/mock/RTCDataChannelHandlerMock.cpp:

(WebCore::RTCDataChannelHandlerMock::setClient):
(WebCore::RTCDataChannelHandlerMock::close):

  • platform/mock/RTCNotifiersMock.cpp:

(WebCore::IceConnectionNotifier::IceConnectionNotifier):
(WebCore::SignalingStateNotifier::SignalingStateNotifier):
(WebCore::DataChannelStateNotifier::DataChannelStateNotifier):

  • platform/mock/RTCNotifiersMock.h:

LayoutTests:

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

  • webrtc/datachannel/bufferedAmountLowThreshold-expected.txt: Added.
  • webrtc/datachannel/bufferedAmountLowThreshold.html: Added.
2:35 PM Changeset in webkit [214626] by Chris Dumez
  • 3 edits in trunk/LayoutTests

svg/animations/animations-paused-in-background-page.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=170290

Reviewed by Simon Fraser.

Fix shouldBecomeEqual() check in the test which was wrong and was passing by chance
due to a race.

  • svg/animations/animations-paused-in-background-page-expected.txt:
  • svg/animations/animations-paused-in-background-page.html:
2:33 PM Changeset in webkit [214625] by Wenson Hsieh
  • 6 edits in trunk

[WK2] Touches should not cancel when showing a custom action sheet while data interaction is active
https://bugs.webkit.org/show_bug.cgi?id=170291
<rdar://problem/31301388>

Reviewed by Tim Horton.

Source/WebKit2:

Currently, when presenting a custom popover, we will cancel all touches in the application. This makes data
interaction when a custom popover is shown impossible -- to address this, we should only cancel touches when
the view is not an active data interaction source.

New API test: DataInteractionTests.CustomActionSheetPopover.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView actionSheetAssistant:showCustomSheetForElement:]):

Tools:

Adds support for testing how the custom action sheet presentation codepath interacts with data interaction, as
well as a new unit test. In this case, we force data interaction to fail if touches are canceled on the
shared UIApplication, and verify that data interaction completes successfully.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulatorApplication _cancelAllTouches]):
(-[DataInteractionSimulator initWithWebView:]):
(-[DataInteractionSimulator simulateAllTouchesCanceled:]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator _webView:showCustomSheetForElement:]):

2:27 PM Changeset in webkit [214624] by jfernandez@igalia.com
  • 11 edits in trunk

[css-align] Adapt content-alignment properties to the new baseline syntax
https://bugs.webkit.org/show_bug.cgi?id=170262

Reviewed by David Hyatt.

Source/WebCore:

The baseline-position syntax has changed recently, so we need to update
the CSS properties using the old syntax. This patch address only the
content-alignment (align-content and justify-content).

I used this patch to adapt the implementation of the parsing logic for
these properties to the new Blink's CSS Parsing Design.

The new baseline syntax is "[first | last ]? baseline" which implies
modifying the parsing and computed value logic.

There are several layout tests affected by this change, so I'll update
them accordingly.

No new tests, just added/modified some cases to the tests we
already have using the new baseline values.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForContentPositionAndDistributionWithOverflowAlignment):

  • css/CSSContentDistributionValue.cpp:

(WebCore::CSSContentDistributionValue::customCSSText):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator ItemPosition):
(WebCore::CSSPrimitiveValue::operator ContentPosition):

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::isBaselineKeyword):
(WebCore::consumeBaselineKeyword):
(WebCore::consumeContentDistributionOverflowPosition):
(WebCore::consumeSelfPositionOverflowPosition):

LayoutTests:

Added new cases to the alignment properties parsing tests so that we can verify the new
baseline-alignment syntax is parsed as expected.
Additionally, I modified the tests so that they use the testharness format.

  • css3/parse-align-content-expected.txt:
  • css3/parse-align-content.html:
  • css3/parse-justify-content-expected.txt:
  • css3/parse-justify-content.html:
2:13 PM Changeset in webkit [214623] by jcraig@apple.com
  • 18 edits in trunk

AX: Expose a new AXSubrole for explicit ARIA "group" role
https://bugs.webkit.org/show_bug.cgi?id=169810
<rdar://problem/31039693>

Reviewed by Chris Fleizach.

Source/WebCore:

Split GroupRole into generics (GroupRole) and explicit groups
(ApplicationGroupRole) so we can expose a subrole on the explicit
groups. Account for the change in ARIA Tree and Menu hierachies.
Update the computedRoleValue for WebKit Inspector usage, too.

Updated existing tests.

Test: accessibility/list-detection2.html:
Test: accessibility/roles-computedRoleString.html:
Test: inspector/dom/getAccessibilityPropertiesForNode.html:
Test: inspector/dom/highlightFrame.html:
Test: inspector/dom/highlightSelector.html:

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::helpText):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::accessibleNameDerivesFromContent):
(WebCore::AccessibilityObject::ariaTreeItemContent):
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::computedRoleString):

  • accessibility/AccessibilityObject.h:
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):

Source/WebKit/win:

Account for Windows platform role mapping.

  • AccessibleBase.cpp:

(MSAARole):

LayoutTests:

  • accessibility/list-detection2-expected.txt:
  • accessibility/list-detection2.html:
  • accessibility/roles-computedRoleString.html:
  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • inspector/dom/highlightFrame-expected.txt:
  • inspector/dom/highlightSelector-expected.txt:
  • platform/mac/accessibility/roles-computedRoleString-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
2:10 PM Changeset in webkit [214622] by pvollan@apple.com
  • 3 edits in trunk/Tools

[Win] Pass close_fds = True in Python popen call.
https://bugs.webkit.org/show_bug.cgi?id=170172

Reviewed by Brent Fulgham.

This was previously not supported on Windows, but in Python 2.7.10 it is.

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

(Executive._should_close_fds):

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._start):

2:05 PM Changeset in webkit [214621] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409
<rdar://problem/30799198>

Unreview. Print the backtrace when we suspend scripted animations.

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):

1:46 PM Changeset in webkit [214620] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

We are spending a lot of time bzero'ing AudioChannel buffers on uni-watch.com
https://bugs.webkit.org/show_bug.cgi?id=170288
<rdar://problem/31289132>

Reviewed by Eric Carlson.

We are spending a lot of time bzero'ing AudioChannel buffers on uni-watch.com due
to doubleclick ads using WebAudio with a 0-gain GainNode. We should optimize the
0-gain case as much as possible.

No new tests, only an optimization.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::processIfNecessary):
Drop call to unsilenceOutputs() before calling AudioNode::process(). The AudioChannel
API already takes care of clearing its 'silent' flag whenever its buffer changes so
there should be no need to explicitly clearing the 'silent' flag before calling
process(). This was causing us to zero out buffers that were already filled with
zeros because AudioChannel::zero() would no longer return early, not knowing the
channel is already silent. This reduces the number of bzero() calls by ~3.5x on
uni-watch.com (from 100 calls every ~20ms to 100 calls every ~70ms.

  • Modules/webaudio/AudioNode.h:
  • platform/audio/mac/AudioDestinationMac.cpp:

(WebCore::AudioDestinationMac::render):
Avoid clamping the values in the channel buffer if the channel is silent since this
will have no effect (given that the buffer only contains zeros).

1:22 PM Changeset in webkit [214619] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

webrtc/video-stats.html and webrtc/video-replace-track.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=170294

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-30

1:17 PM Changeset in webkit [214618] by eric.carlson@apple.com
  • 4 edits
    2 adds in trunk

[Crash] WebCore::AudioBuffer::AudioBuffer don't checking illegal value
https://bugs.webkit.org/show_bug.cgi?id=169956

Reviewed by Youenn Fablet.

Source/WebCore:

Test: webaudio/audiobuffer-crash.html

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::AudioBuffer): Invalidate the object and return early if the channel
array allocation fails.
(WebCore::AudioBuffer::AudioBuffer): Ditto.
(WebCore::AudioBuffer::invalidate): Invalidate the object.

  • Modules/webaudio/AudioBuffer.h:

LayoutTests:

  • webaudio/audiobuffer-crash-expected.txt: Added.
  • webaudio/audiobuffer-crash.html: Added.
1:17 PM Changeset in webkit [214617] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles sidebar warning icon appears inside property value text
https://bugs.webkit.org/show_bug.cgi?id=170281

Reviewed by Timothy Hatcher.

Style rule warning icon should always come before the property name,
regardless of which property part (name/value) the error is for. This
information is conveyed by the red strikethrough, which is applied to
the property name, value, or both.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1:09 PM Changeset in webkit [214616] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

NetworkConnectionToWebProcess should stop web sockets when being destroyed
https://bugs.webkit.org/show_bug.cgi?id=170286

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-30
Reviewed by Brady Eidson.

  • NetworkProcess/NetworkSocketStream.cpp:

(WebKit::NetworkSocketStream::~NetworkSocketStream): Stopping the socket handle if not done already.

  • NetworkProcess/NetworkSocketStream.h:
12:43 PM Changeset in webkit [214615] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Change my status to be a WebKit reviewer.

Unreviewed status update edit.

  • Scripts/webkitpy/common/config/contributors.json:
12:18 PM Changeset in webkit [214614] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409
<rdar://problem/30799198>

Unreview. Pring the backtrace when we suspend ScriptedAnimationController.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::suspend):

11:41 AM Changeset in webkit [214613] by Simon Fraser
  • 2 edits
    7 adds in trunk/LayoutTests

Add some tests that dump the touch event regions with various content configurations
https://bugs.webkit.org/show_bug.cgi?id=170216

Followup: add missing results files, and tweak iframes.html to show that regions fail to
take iframe borders into account.

  • fast/events/touch/ios/touch-event-regions/active-passive-nesting-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/columns-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/complex-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/document-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/iframes-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/iframes.html:
  • fast/events/touch/ios/touch-event-regions/overflow-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/range-sliders-expected.txt: Added.
10:06 AM Changeset in webkit [214612] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[mac-wk1 debug] LayoutTest media/track/track-cue-rendering-with-padding.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=170188

Reviewed by Eric Carlson.

The textTrackDisplayElement call will fail and throw an exception if the text track display element
has not yet been added to the text track container element. We wait until it has been added.

  • media/track/track-cue-rendering-with-padding.html:
10:06 AM Changeset in webkit [214611] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[Modern Media Controls] Invalid placard icon is not visible for short video
https://bugs.webkit.org/show_bug.cgi?id=170277
<rdar://problem/31327955>

Patch by Antoine Quint <Antoine Quint> on 2017-03-30
Reviewed by Eric Carlson.

Source/WebCore:

Make the minimum dimension needed to display a placard icon configurable and let the
invalid placard use a 50pt dimension. We also make a drive-by fix to reset "text-align"
for media controls as having a "text-align: center" inherited value would mess up
positioning of the placard icon and make it flush to the right of the placard.

Test: media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics.html

  • Modules/modern-media-controls/controls/invalid-placard.js:

(InvalidPlacard):

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

(.media-controls):

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

(Placard.prototype.layout):

LayoutTests:

Add a new test to check that we correctly hide the invalid icon only when
there is no space left to display it.

  • media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics-expected.txt: Added.
  • media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics.html: Added.
9:29 AM Changeset in webkit [214610] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[GCrypt] Register missing algorithms in CryptoAlgorithmRegistry::platformRegisterAlgoritmhs()
https://bugs.webkit.org/show_bug.cgi?id=170273

Reviewed by Michael Catanzaro.

  • crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Add registerAlgorithm<> calls for AES_CFB, AES_GCM, ECDH and
PBKDF2 algorithms.

9:28 AM Changeset in webkit [214609] by zandobersek@gmail.com
  • 1 edit
    1 add in trunk/Source/WebCore/PAL

[GCrypt] Add the Utilities.h header
https://bugs.webkit.org/show_bug.cgi?id=170269

Reviewed by Michael Catanzaro.

Add a libgcrypt-specific Utilities.h header under PAL. It will contain
common functions that are shared throughout the code that leverages
libgcrypt.

  • pal/crypto/gcrypt/Utilities.h: Added.

(PAL::GCrypt::logError): Use WTFLogAlways() to report the passed-in libgcrypt error.
(PAL::GCrypt::aesAlgorithmForKeySize): Return a GCRY_CIPHER_AES{128,192,256} value
that matches up with the passed-in key size.

9:18 AM Changeset in webkit [214608] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.14-branch/Source

Versioning.

9:09 AM Changeset in webkit [214607] by Brent Fulgham
  • 3 edits
    2 deletes in trunk/Source/WebCore

Remove unused MediaControlsApple implementation
https://bugs.webkit.org/show_bug.cgi?id=170258
<rdar://problem/31331056>

Reviewed by Eric Carlson.

Remove dead code related to old media controls. We switched to HTML5-based media controls
several years ago.

No new tests. Removing this dead code should have no change in behavior.

  • WebCore.xcodeproj/project.pbxproj: Remove unused files.
  • dom/EventListener.h: Remove unused event type.
  • html/shadow/MediaControlsApple.cpp: Removed.
  • html/shadow/MediaControlsApple.h: Removed.
8:54 AM Changeset in webkit [214606] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] ImageCairoWin.cpp: error C2660: 'WebCore::BitmapImage::draw': function does not take 6 arguments
https://bugs.webkit.org/show_bug.cgi?id=170275

Patch by Fujii Hironori <Fujii Hironori> on 2017-03-30
Reviewed by Said Abou-Hallawa.

Apply the similar change of ImageCGWin.cpp of r214450 to ImageCairoWin.cpp.

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize): Pass DecodingMode::Synchronous to Image::draw().
(WebCore::BitmapImage::drawFrameMatchingSourceSize): Ditto.

8:14 AM Changeset in webkit [214605] by clopez@igalia.com
  • 2 edits in trunk/Tools

Change my status to be a WebKit reviewer.

Unreviewed status update edit.

  • Scripts/webkitpy/common/config/contributors.json:
7:40 AM Changeset in webkit [214604] by svillar@igalia.com
  • 14 edits
    3 adds in trunk

[css-grid] Clamp the number of autorepeat tracks
https://bugs.webkit.org/show_bug.cgi?id=170120

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

As suggested by the specs we do clamp the maximum number of tracks per grid in order to
minimize potential OOM situations. However we were not considering the case of the recently
added auto repeat syntax. Abnormally huge values for the width/height on the grid container
could lead to a number of auto repeat tracks higher than the maximum.

A new API was added to Internals in order to test limits without having to create huge
grids. This new API allows clients to set an arbitrary limit to the number of tracks. The
addition of this new API forced us to add GridPosition.cpp to the project to define the
global variable we use for testing. We took the chance to move part of the implementation
from the header file to the source file.

Last but not least, several new ASSERTs were added to Grid.cpp implementation to ensure that
we do not surpass the grid track limits.

Test: fast/css-grid-layout/grid-auto-repeat-huge-grid.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeGridTrackRepeatFunction):

  • rendering/Grid.cpp:

(WebCore::Grid::ensureGridSize): Added ASSERT.
(WebCore::Grid::setSmallestTracksStart): Ditto.
(WebCore::Grid::setAutoRepeatTracks): Ditto.
(WebCore::Grid::setAutoRepeatEmptyColumns): Ditto.
(WebCore::Grid::setAutoRepeatEmptyRows): Ditto.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::clampAutoRepeatTracks): New method.
(WebCore::RenderGrid::placeItemsOnGrid): Clamp the number of auto repeat tracks before
passing them to the Grid.

  • rendering/RenderGrid.h:
  • rendering/style/GridArea.h:

(WebCore::GridSpan::GridSpan):

  • rendering/style/GridPosition.cpp: Added.

(WebCore::GridPosition::setExplicitPosition):
(WebCore::GridPosition::setAutoPosition):
(WebCore::GridPosition::setSpanPosition):
(WebCore::GridPosition::setNamedGridArea):
(WebCore::GridPosition::integerPosition):
(WebCore::GridPosition::namedGridLine):
(WebCore::GridPosition::spanPosition):
(WebCore::GridPosition::operator==):

  • rendering/style/GridPosition.h:

(WebCore::GridPosition::shouldBeResolvedAgainstOppositePosition):
(WebCore::GridPosition::max):
(WebCore::GridPosition::min):
(WebCore::GridPosition::setMaxPositionForTesting):
(WebCore::GridPosition::setExplicitPosition): Deleted.
(WebCore::GridPosition::setAutoPosition): Deleted.
(WebCore::GridPosition::setSpanPosition): Deleted.
(WebCore::GridPosition::setNamedGridArea): Deleted.
(WebCore::GridPosition::integerPosition): Deleted.
(WebCore::GridPosition::namedGridLine): Deleted.
(WebCore::GridPosition::spanPosition): Deleted.
(WebCore::GridPosition::operator==): Deleted.

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::GridPositionsResolver::explicitGridColumnCount):
(WebCore::GridPositionsResolver::explicitGridRowCount):

  • testing/Internals.cpp:

(WebCore::Internals::setGridMaxTracksLimit):

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

LayoutTests:

Added a new test to check the clamping of grid tracks. It's mostly all JavaScript in order
to allow us to run several test cases over a small number of grids in a single file quite
fast. The other option was to statically (CSS) create several huge grids, something that
could potentially be very expensive in terms of memory and CPU leading to timeouts.

  • fast/css-grid-layout/grid-auto-repeat-huge-grid-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-repeat-huge-grid.html: Added.
6:11 AM Changeset in webkit [214603] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409
<rdar://problem/30799198>

Unreviewed. Add logging related to visibility since document.visibility = hidden would cause the
requestAnimationFrame() call to suspend the ScriptedAnimationController.

Patch by Antoine Quint <Antoine Quint> on 2017-03-30

  • media/modern-media-controls/airplay-button/airplay-button.html:
12:29 AM Changeset in webkit [214602] by sbarati@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

WebAssembly: pass Wasm::Context* to vmEntryToWasm when not using fast TLS
https://bugs.webkit.org/show_bug.cgi?id=170182

Reviewed by Mark Lam.

This is one more step in the direction of PIC-ified Wasm.
I'm removing assumptions that a wasm callee is a cell. We used to use
the callee to get the WasmContext off the callee's VM. Instead,
this patch makes it so that we pass in the context as a parameter
to the JS entrypoint.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::offsetOfVM): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::loadWasmContext):
(JSC::AssemblyHelpers::storeWasmContext):
(JSC::AssemblyHelpers::loadWasmContextNeedsMacroScratchRegister):
(JSC::AssemblyHelpers::storeWasmContextNeedsMacroScratchRegister):

  • jsc.cpp:

(functionTestWasmModuleFunctions):

  • runtime/VM.h:

(JSC::VM::wasmContextOffset): Deleted.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::materializeWasmContext):
(JSC::Wasm::B3IRGenerator::restoreWasmContext):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::createJSToWasmWrapper):

  • wasm/WasmContext.cpp:

(JSC::Wasm::loadContext):
(JSC::Wasm::storeContext):
(JSC::loadWasmContext): Deleted.
(JSC::storeWasmContext): Deleted.

  • wasm/WasmContext.h:

(JSC::Wasm::useFastTLS):
(JSC::Wasm::useFastTLSForContext):

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::useFastTLS): Deleted.
(JSC::Wasm::useFastTLSForWasmContext): Deleted.

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

12:16 AM Changeset in webkit [214601] by jfbastien@apple.com
  • 12 edits in trunk

WebAssembly: fix misc JS API implementation inconsistencies
https://bugs.webkit.org/show_bug.cgi?id=170187

Reviewed by Keith Miller.

JSTests:

Verify that WebAssembly function are on the object's proto.

  • wasm/js-api/Module-compile.js:
  • wasm/js-api/validate.js:
  • wasm/js-api/web-assembly-instantiate.js:

Source/JavaScriptCore:

Auto-generate lookup tables.
Methods should be on prototype.
Exception returns should be idiomatic.

  • wasm/JSWebAssembly.cpp: validate / compile / instantiate should

be on the prototype
(JSC::JSWebAssembly::create):
(JSC::JSWebAssembly::finishCreation):
(JSC::reject): Deleted.
(JSC::webAssemblyCompileFunc): Deleted.
(JSC::resolve): Deleted.
(JSC::instantiate): Deleted.
(JSC::compileAndInstantiate): Deleted.
(JSC::webAssemblyInstantiateFunc): Deleted.
(JSC::webAssemblyValidateFunc): Deleted.

  • wasm/JSWebAssembly.h:
  • wasm/js/WebAssemblyMemoryPrototype.cpp: move from JSWebAssembly.cpp

(JSC::webAssemblyMemoryProtoFuncBuffer):
(JSC::WebAssemblyMemoryPrototype::create):
(JSC::WebAssemblyMemoryPrototype::finishCreation):

  • wasm/js/WebAssemblyMemoryPrototype.h:
  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::reject):
(JSC::webAssemblyCompileFunc):
(JSC::resolve):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyValidateFunc):
(JSC::webAssemblyFunctionValidate): Deleted.
(JSC::webAssemblyFunctionCompile): Deleted.

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::webAssemblyTableProtoFuncGrow):
(JSC::webAssemblyTableProtoFuncGet):
(JSC::webAssemblyTableProtoFuncSet):
(JSC::WebAssemblyTablePrototype::create):
(JSC::WebAssemblyTablePrototype::finishCreation):

  • wasm/js/WebAssemblyTablePrototype.h:

Mar 29, 2017:

11:35 PM Changeset in webkit [214600] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION(~r212322): LayoutTest media/track/track-cue-container-rendering-position.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168660

Reviewed Eric Carlson.

The textTrackDisplayElement call will fail and throw an exception if the text track display element
has not yet been added to the text track container element. We wait until it has been added.

  • media/track/track-cue-container-rendering-position.html:
10:38 PM Changeset in webkit [214599] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Disconnecting a HTMLObjectElement does not always unload its content document
https://bugs.webkit.org/show_bug.cgi?id=169606

Reviewed by Andy Estes.

Source/WebCore:

When removing a node, we first disconnect all subframes then update the focused element as we remove each child.
However, when the removed element is a focused object element with a content document, removeFocusedNodeOfSubtree
can update the style tree synchronously inside Document::setFocusedElement, and reload the document.

Avoid this by instantiating a SubframeLoadingDisabler on the parent of the focused element.

Test: fast/dom/removing-focused-object-element.html

  • dom/Document.cpp:

(WebCore::Document::removeFocusedNodeOfSubtree):

LayoutTests:

Add a regression test.

  • fast/dom/removing-focused-object-element-expected.txt: Added.
  • fast/dom/removing-focused-object-element.html: Added.
10:02 PM Changeset in webkit [214598] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix the build, again. Hopefully for the last time, again!

  • runtime/Options.cpp:
9:10 PM Changeset in webkit [214597] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix the build, again. Hopefully for the last time!

  • runtime/Options.cpp:

(JSC::parse):

8:11 PM Changeset in webkit [214596] by mitz@apple.com
  • 7 copies
    1 add in releases/Apple/iOS 10.0

Added a tag for iOS 10.0.

8:11 PM Changeset in webkit [214595] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari 10.0

Added a tag for Safari 10.0.

7:58 PM Changeset in webkit [214594] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Migrate to kCTFontCSSWidthAttribute
https://bugs.webkit.org/show_bug.cgi?id=170265

Reviewed by Darin Adler.

Previously, we were mapping from Core Text widths to CSS widths in WebKit.
However, on some OSes, Core Text can directly tell us what the CSS width
value is.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::getCSSAttribute):
(WebCore::capabilitiesForFontDescriptor):

  • platform/spi/cocoa/CoreTextSPI.h:
7:58 PM Changeset in webkit [214593] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, windows build fix.

  • runtime/Options.cpp:

(JSC::parse):

7:39 PM Changeset in webkit [214592] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

WebAssembly: B3IRGenerator should pool constants
https://bugs.webkit.org/show_bug.cgi?id=170266

Reviewed by Filip Pizlo.

This patch adds a HashMap to B3IRGenerator that contains all the constants used in a function.
B3IRGenerator then uses an InsertionSet to add all those constants to the root BB. This doesn't
appear to be a compile time improvement but it could be valuable in the future.

  • b3/B3Opcode.h:

(JSC::B3::opcodeForConstant):

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::addConstant):

  • b3/B3Procedure.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::constant):
(JSC::Wasm::B3IRGenerator::insertConstants):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::B3IRGenerator::dump):
(JSC::Wasm::parseAndCompile):
(JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::B3IRGenerator::zeroForType): Deleted.

  • wasm/generateWasmB3IRGeneratorInlinesHeader.py:

(generateConstCode):

6:41 PM Changeset in webkit [214591] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

6:31 PM Changeset in webkit [214590] by Simon Fraser
  • 1 edit
    10 adds in trunk/LayoutTests

Add some tests that dump the touch event regions with various content configurations
https://bugs.webkit.org/show_bug.cgi?id=170216

Reviewed by Dean Jackson.

Tests for touch event regions. Some of these are modeled after tests in tiled-drawing/scrolling/non-fast-region/.

  • fast/events/touch/ios/touch-event-regions/resources/touch-regions-helper.js: Added.
  • fast/events/touch/ios/touch-event-regions/active-passive-nesting-expected.html: Added.
  • fast/events/touch/ios/touch-event-regions/active-passive-nesting.html: Added.
  • fast/events/touch/ios/touch-event-regions/columns-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/columns.html: Added.
  • fast/events/touch/ios/touch-event-regions/complex-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/complex.html: Added.
  • fast/events/touch/ios/touch-event-regions/document-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/document.html: Added.
  • fast/events/touch/ios/touch-event-regions/iframes-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/iframes.html: Added.
  • fast/events/touch/ios/touch-event-regions/overflow-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/overflow.html: Added.
  • fast/events/touch/ios/touch-event-regions/range-sliders-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/range-sliders.html: Added.
6:31 PM Changeset in webkit [214589] by Simon Fraser
  • 7 edits
    2 adds in trunk

Make it possible to dump touch event regions for testing
https://bugs.webkit.org/show_bug.cgi?id=170209
<rdar://problem/31309258>

Reviewed by Tim Horton.

Source/WebCore:

Expose internals.touchEventRectsForEvent() and internals.passiveTouchEventListenerRects(), which
fetch data via Page.

Because the regions are normally updated on a timer, we have to force an eager update via Document::updateTouchEventRegions().

Test: fast/events/touch/ios/touch-event-regions.html

  • page/Page.cpp:

(WebCore::Page::nonFastScrollableRects):
(WebCore::Page::touchEventRectsForEvent):
(WebCore::Page::passiveTouchEventListenerRects):

  • page/Page.h:
  • testing/Internals.cpp:

(WebCore::Internals::touchEventRectsForEvent):
(WebCore::Internals::passiveTouchEventListenerRects):

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

LayoutTests:

Simple test that dumps the regions.

  • fast/events/touch/ios/touch-event-regions-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions.html: Added.
6:25 PM Changeset in webkit [214588] by Alan Bujtas
  • 3 edits
    2 adds in trunk

RenderBlockFlow::addFloatsToNewParent should check if float is already added to the object list.
https://bugs.webkit.org/show_bug.cgi?id=170259
<rdar://problem/31300584>

Reviewed by Simon Fraser.

Source/WebCore:

r210145 assumed that m_floatingObjects would simply ignore the floating box if it was already in the list.

Test: fast/block/float/placing-multiple-floats-crash.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::addFloatsToNewParent):

LayoutTests:

  • fast/block/float/placing-multiple-floats-crash-expected.txt: Added.
  • fast/block/float/placing-multiple-floats-crash.html: Added.
6:06 PM Changeset in webkit [214587] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: WebSockets: Messages log should remain being scrolled to the bottom when a new message is added
https://bugs.webkit.org/show_bug.cgi?id=170090

Reviewed by Matt Baker.

Adding many Web Socket messages quickly can create a performance bottleneck. Batch addition of DataGrid nodes
using requestAnimationFrame, and scroll to the bottom of the DataGrid at most once per a batch update.

  • UserInterface/Views/WebSocketContentView.js:

(WebInspector.WebSocketContentView):
(WebInspector.WebSocketContentView.prototype.shown):
(WebInspector.WebSocketContentView.prototype.hidden):
(WebInspector.WebSocketContentView.prototype._updateFramesSoon):
Batch WebSocketContentView DOM modifications using requestAnimationFrame.

(WebInspector.WebSocketContentView.prototype._updateFrames):
(WebInspector.WebSocketContentView.prototype._addFrame):
(WebInspector.WebSocketContentView.prototype.addFrame): Deleted.
Make addFrame method private since it isn't used anywhere outside of this class.

(WebInspector.WebSocketContentView.prototype._updateState): Deleted.
Make _updateState a part of _updateFramesSoon.

6:05 PM Changeset in webkit [214586] by timothy_horton@apple.com
  • 27 edits
    1 move
    8 adds
    2 deletes in trunk

Swipe gesture tests don't work on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=161675
<rdar://problem/23379930>

Reviewed by Darin Adler.

Tools:

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::platformPlayBackEventStream):
(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):

  • TestRunnerShared/EventSerialization/mac/EventSerializerMac.h: Copied from Tools/DumpRenderTree/mac/UIScriptControllerMac.mm.
  • TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm: Added.

(eventIsOfType):
(eventIsOfTypes):
(eventIsOfGestureType):
(eventIsOfGestureTypes):
(+[EventSerializer dictionaryForEvent:relativeToTime:]):
(+[EventSerializer createEventForDictionary:inWindow:relativeToTime:]):
(+[EventSerializer playEventStream:inWindow:completionHandler:]):

  • TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.h: Copied from Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm.
  • TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm: Added.

(beginSwipeBackEventStream):
(completeSwipeBackEventStream):

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

(WTR::UIScriptController::playBackEventStream):
(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):
(WTR::UIScriptController::platformPlayBackEventStream):
(WTR::UIScriptController::platformClearAllCallbacks): Deleted.

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • TestRunnerShared/spi/CoreGraphicsSPI.h: Added.
  • TestRunnerShared/spi/IOKitSPI.h: Renamed from Tools/WebKitTestRunner/ios/IOKitSPI.h.
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::playBackEvents):
(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):
(WTR::UIScriptController::platformPlayBackEventStream):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
  • swipe/basic-cached-back-swipe-expected.txt:
  • swipe/basic-cached-back-swipe.html:
  • swipe/main-frame-pinning-requirement-expected.txt:
  • swipe/main-frame-pinning-requirement.html:
  • swipe/pushState-cached-back-swipe-expected.txt:
  • swipe/pushState-cached-back-swipe.html:
  • swipe/pushState-programmatic-back-while-swiping-crash-expected.txt:
  • swipe/pushState-programmatic-back-while-swiping-crash.html:
  • swipe/resources/swipe-test.js:

(measuredDurationShouldBeLessThan):
(startSwipeGesture):
(completeSwipeGesture):
(playEventStream):
(eventQueue.enqueueScrollEvent): Deleted.
(eventQueue.enqueueSwipeEvent): Deleted.
(eventQueue.hasPendingEvents): Deleted.
(eventQueue.callAfterEventDispatch): Deleted.
(eventQueue._processEventQueue): Deleted.
(eventQueue._processEventQueueSoon): Deleted.

  • swipe/swipe-start-hysteresis-failures-expected.txt: Removed.
  • swipe/swipe-start-hysteresis-failures.html: Removed.
5:37 PM Changeset in webkit [214585] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Try to normalize variation ranges
https://bugs.webkit.org/show_bug.cgi?id=170119

Unreviewed.

Addressing post-review comment.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::isGXVariableFont):

5:15 PM Changeset in webkit [214584] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.15

Tag Safari-604.1.15.

4:42 PM Changeset in webkit [214583] by jmarcell@apple.com
  • 18 edits
    2 adds in branches/safari-604.1.14-branch

Cherry-pick r214435. rdar://problem/31303823

4:42 PM Changeset in webkit [214582] by jmarcell@apple.com
  • 18 edits
    2 deletes in branches/safari-604.1.14-branch

Cherry-pick r214333. rdar://problem/31303823

4:42 PM Changeset in webkit [214581] by jmarcell@apple.com
  • 5 edits in branches/safari-604.1.14-branch

Cherry-pick r214511. rdar://problem/31260325

4:42 PM Changeset in webkit [214580] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.14-branch

Cherry-pick r214509. rdar://problem/30755345

4:41 PM Changeset in webkit [214579] by jmarcell@apple.com
  • 5 edits in branches/safari-604.1.14-branch

Cherry-pick r214495. rdar://problem/31242019

4:41 PM Changeset in webkit [214578] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.14-branch/Source

Cherry-pick r214449. rdar://problem/30787872

4:41 PM Changeset in webkit [214577] by jmarcell@apple.com
  • 5 edits in branches/safari-604.1.14-branch/Source

Cherry-pick r214406. rdar://problem/30542960

4:41 PM Changeset in webkit [214576] by jmarcell@apple.com
  • 3 edits in branches/safari-604.1.14-branch/Source

Cherry-pick r214404. rdar://problem/31095987

4:41 PM Changeset in webkit [214575] by jmarcell@apple.com
  • 3 edits in branches/safari-604.1.14-branch/Source

Cherry-pick r214393. rdar://problem/31253673

4:41 PM Changeset in webkit [214574] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.14-branch/Source/WebKit2

Cherry-pick r214391. rdar://problem/30682584

4:41 PM Changeset in webkit [214573] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.14-branch/Source/WebKit2

Cherry-pick r214389. rdar://problem/31095987

4:12 PM Changeset in webkit [214572] by mmaxfield@apple.com
  • 4 edits in trunk

Try to normalize variation ranges
https://bugs.webkit.org/show_bug.cgi?id=170119

Reviewed by Simon Fraser.

Source/WebCore:

TrueType GX-style variation fonts use one particular scale for values on their
weight/width/slope axes - usually the values lie between -1 and 1 on that scale.
However, OpenType 1.8-style fonts use the CSS scale for values on these axes.
For the purposes of font selection, these values need to lie on the same scale.
However, when font selection is completed and the variation values are actually
being applied to the fonts, values which lie on the font's actual scale need to
be applied. This patch adds normalize*() and denormalize*() functions to perform
both of these operations.

The conversion itself between the two scales isn't an exact mapping. Mapping
slope is just a linear relationship with 0deg <=> 0 and 20deg <=> 1 (as per the
CSS Fonts spec). Mapping widths is similar, it uses a 2-component piecewise
linear relationship which includes the values given in the Microsoft OpenType
spec for the OS/2 table's usWidthClass field. Weights are more difficult, so I
plotted the CSS weights and the GX-style weights for every style of San
Francisco, saw that the relationship appears to be linear, and ran a linear
regression to compute the line equation.

As for the actual discrimination of determining whether a font is a GX-style
font or not, we can use the presence of the 'STAT' table. This table didn't
exist when GX fonts were being created, and OpenType 1.8 variable fonts are
required to have this table.

Facebook uses the string ".SFNSText" in their @font-face blocks. This font is
a variation font, but uses the GX-style values. Facebook asks us to create
this font with a weight of 700, and because the values in the font are around
1.0, we were erroneously thinking that the font wasn't bold, so we were then
applying synthetic bold. This was causing text on facebook to look fuzzy and
ugly.

Test: fast/text/variations/font-selection-properties-expected.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::isGXVariableFont):
(WebCore::normalizeWeight):
(WebCore::normalizeSlope):
(WebCore::denormalizeWeight):
(WebCore::denormalizeWidth):
(WebCore::denormalizeSlope):
(WebCore::normalizeWidth):
(WebCore::preparePlatformFont): Instead of using FontSelectionValues for the
intermediate values, we should use floats instead. This is because
FontSelectionValues are fixed-point numbers with the denominator having 2 bits.
When using this data type to represent values on the GX scale, which are usually
between 0 and 1, you lose a lot of fidelity. Instead, our intermediate
calculations should be done with floats, and converted to FontSelectionValues at
the end when they are representative of values on the CSS scale.
(WebCore::stretchFromCoreTextTraits):
(WebCore::fontWeightFromCoreText):
(WebCore::extractVariationBounds):
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::capabilitiesForFontDescriptor):

LayoutTests:

  • fast/text/variations/font-selection-properties-expected.html:
3:55 PM Changeset in webkit [214571] by sbarati@apple.com
  • 53 edits in trunk/Source

LinkBuffer and ExecutableAllocator shouldn't have anything to do with VM
https://bugs.webkit.org/show_bug.cgi?id=170210

Reviewed by Mark Lam.

Source/JavaScriptCore:

This is one more step in the direction of PIC-ified Wasm.
LinkBuffer and ExecutableAllocator have no business knowing about VM.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::allocate):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::vm): Deleted.

  • b3/B3Compile.cpp:

(JSC::B3::compile):

  • b3/B3Compile.h:
  • b3/air/testair.cpp:
  • b3/testb3.cpp:

(JSC::B3::compileProc):
(JSC::B3::compileAndRun):
(JSC::B3::testLoadAcq42):
(JSC::B3::testAddArgZeroImmZDef):
(JSC::B3::testAddLoadTwice):
(JSC::B3::testMulLoadTwice):
(JSC::B3::testMulAddArgsLeft):
(JSC::B3::testMulAddArgsRight):
(JSC::B3::testMulAddArgsLeft32):
(JSC::B3::testMulAddArgsRight32):
(JSC::B3::testMulSubArgsLeft):
(JSC::B3::testMulSubArgsRight):
(JSC::B3::testMulSubArgsLeft32):
(JSC::B3::testMulSubArgsRight32):
(JSC::B3::testMulNegArgs):
(JSC::B3::testMulNegArgs32):
(JSC::B3::testCompareFloatToDoubleThroughPhi):
(JSC::B3::testDoubleToFloatThroughPhi):
(JSC::B3::testReduceFloatToDoubleValidates):
(JSC::B3::testDoubleProducerPhiToFloatConversion):
(JSC::B3::testDoubleProducerPhiToFloatConversionWithDoubleConsumer):
(JSC::B3::testDoubleProducerPhiWithNonFloatConst):
(JSC::B3::testIToD64Arg):
(JSC::B3::testIToF64Arg):
(JSC::B3::testIToD32Arg):
(JSC::B3::testIToF32Arg):
(JSC::B3::testIToD64Mem):
(JSC::B3::testIToF64Mem):
(JSC::B3::testIToD32Mem):
(JSC::B3::testIToF32Mem):
(JSC::B3::testIToDReducedToIToF64Arg):
(JSC::B3::testIToDReducedToIToF32Arg):
(JSC::B3::testStoreRelAddLoadAcq32):
(JSC::B3::testStoreRelAddLoadAcq8):
(JSC::B3::testStoreRelAddFenceLoadAcq8):
(JSC::B3::testStoreRelAddLoadAcq16):
(JSC::B3::testStoreRelAddLoadAcq64):
(JSC::B3::testBranch):
(JSC::B3::testBranchPtr):
(JSC::B3::testDiamond):
(JSC::B3::testBranchNotEqual):
(JSC::B3::testBranchNotEqualCommute):
(JSC::B3::testBranchNotEqualNotEqual):
(JSC::B3::testBranchEqual):
(JSC::B3::testBranchEqualEqual):
(JSC::B3::testBranchEqualCommute):
(JSC::B3::testBranchEqualEqual1):
(JSC::B3::testBranchLoadPtr):
(JSC::B3::testBranchLoad32):
(JSC::B3::testBranchLoad8S):
(JSC::B3::testBranchLoad8Z):
(JSC::B3::testBranchLoad16S):
(JSC::B3::testBranchLoad16Z):
(JSC::B3::testBranch8WithLoad8ZIndex):
(JSC::B3::testComplex):
(JSC::B3::testSimpleCheck):
(JSC::B3::testCheckFalse):
(JSC::B3::testCheckTrue):
(JSC::B3::testCheckLessThan):
(JSC::B3::testCheckMegaCombo):
(JSC::B3::testCheckTrickyMegaCombo):
(JSC::B3::testCheckTwoMegaCombos):
(JSC::B3::testCheckTwoNonRedundantMegaCombos):
(JSC::B3::testCheckAddImm):
(JSC::B3::testCheckAddImmCommute):
(JSC::B3::testCheckAddImmSomeRegister):
(JSC::B3::testCheckAdd):
(JSC::B3::testCheckAdd64):
(JSC::B3::testCheckAddFold):
(JSC::B3::testCheckAddFoldFail):
(JSC::B3::testCheckAddSelfOverflow64):
(JSC::B3::testCheckAddSelfOverflow32):
(JSC::B3::testCheckSubImm):
(JSC::B3::testCheckSubBadImm):
(JSC::B3::testCheckSub):
(JSC::B3::testCheckSub64):
(JSC::B3::testCheckSubFold):
(JSC::B3::testCheckSubFoldFail):
(JSC::B3::testCheckNeg):
(JSC::B3::testCheckNeg64):
(JSC::B3::testCheckMul):
(JSC::B3::testCheckMulMemory):
(JSC::B3::testCheckMul2):
(JSC::B3::testCheckMul64):
(JSC::B3::testCheckMulFold):
(JSC::B3::testCheckMulFoldFail):
(JSC::B3::testCheckMul64SShr):
(JSC::B3::testSwitch):
(JSC::B3::testSwitchChillDiv):
(JSC::B3::testSwitchTargettingSameBlock):
(JSC::B3::testSwitchTargettingSameBlockFoldPathConstant):
(JSC::B3::testBasicSelect):
(JSC::B3::testSelectTest):
(JSC::B3::testSelectCompareDouble):
(JSC::B3::testSelectDouble):
(JSC::B3::testSelectDoubleTest):
(JSC::B3::testSelectDoubleCompareDouble):
(JSC::B3::testSelectFloatCompareFloat):
(JSC::B3::testSelectFold):
(JSC::B3::testSelectInvert):
(JSC::B3::testCheckSelect):
(JSC::B3::testCheckSelectCheckSelect):
(JSC::B3::testCheckSelectAndCSE):
(JSC::B3::testTrivialInfiniteLoop):
(JSC::B3::testFoldPathEqual):
(JSC::B3::testLShiftSelf32):
(JSC::B3::testRShiftSelf32):
(JSC::B3::testURShiftSelf32):
(JSC::B3::testLShiftSelf64):
(JSC::B3::testRShiftSelf64):
(JSC::B3::testURShiftSelf64):
(JSC::B3::testPatchpointDoubleRegs):
(JSC::B3::testSpillDefSmallerThanUse):
(JSC::B3::testSpillUseLargerThanDef):
(JSC::B3::testLateRegister):
(JSC::B3::testInterpreter):
(JSC::B3::testEntrySwitchSimple):
(JSC::B3::testEntrySwitchNoEntrySwitch):
(JSC::B3::testEntrySwitchWithCommonPaths):
(JSC::B3::testEntrySwitchWithCommonPathsAndNonTrivialEntrypoint):
(JSC::B3::testEntrySwitchLoop):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled2):
(JSC::B3::testPatchpointTerminalReturnValue):
(JSC::B3::testMemoryFence):
(JSC::B3::testStoreFence):
(JSC::B3::testLoadFence):
(JSC::B3::testPCOriginMapDoesntInsertNops):
(JSC::B3::testPinRegisters):
(JSC::B3::testX86LeaAddAddShlLeft):
(JSC::B3::testX86LeaAddAddShlRight):
(JSC::B3::testX86LeaAddAdd):
(JSC::B3::testX86LeaAddShlRight):
(JSC::B3::testX86LeaAddShlLeftScale1):
(JSC::B3::testX86LeaAddShlLeftScale2):
(JSC::B3::testX86LeaAddShlLeftScale4):
(JSC::B3::testX86LeaAddShlLeftScale8):
(JSC::B3::testAddShl32):
(JSC::B3::testAddShl64):
(JSC::B3::testAddShl65):
(JSC::B3::testLoadBaseIndexShift2):
(JSC::B3::testLoadBaseIndexShift32):
(JSC::B3::testOptimizeMaterialization):
(JSC::B3::testAtomicWeakCAS):
(JSC::B3::testAtomicStrongCAS):
(JSC::B3::testAtomicXchg):
(JSC::B3::testDepend32):
(JSC::B3::testDepend64):
(JSC::B3::testWasmBoundsCheck):
(JSC::B3::testWasmAddress):
(JSC::B3::run):
(JSC::B3::compile): Deleted.

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::emit):

  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::generate):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLOSRExitHandle.cpp:

(JSC::FTL::OSRExitHandle::emitExitThunk):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::makeCall):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • ftl/FTLState.h:
  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • ftl/FTLThunks.h:

(JSC::FTL::generateIfNecessary):
(JSC::FTL::Thunks::getSlowPathCallThunk):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDumbVirtualCall):

  • jit/AssemblyHelpers.h:
  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::initializeAllocator):
(JSC::ExecutableAllocator::singleton):
(JSC::ExecutableAllocator::ExecutableAllocator):
(JSC::ExecutableAllocator::allocate):

  • jit/ExecutableAllocator.h:
  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/JITCall.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateOutOfLine):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/JITStubRoutine.h:
  • jit/Repatch.cpp:

(JSC::ftlThunkAwareRepatchCall):
(JSC::linkPolymorphicCall):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):
(JSC::throwExceptionFromWasmThunkGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • runtime/VMTraps.cpp:

(JSC::VMTraps::tryInstallTrapBreakpoints):

  • tools/VMInspector.cpp:
  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):
(JSC::Wasm::wasmToWasm):
(JSC::Wasm::exitStubGenerator):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::complete):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::jitCompile):

Source/WebCore:

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::compileSelector):
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

3:46 PM Changeset in webkit [214570] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Mark http/tests/media/modern-media-controls/time-labels-support/long-time.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=169677

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
3:44 PM Changeset in webkit [214569] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Robust test clean-up
https://bugs.webkit.org/show_bug.cgi?id=170255

Reviewed by Alexey Proskuryakov.

On-device testing is the motivation for this change. Failure to run clean-up functions can
result in zombie processes, residual NFS mounts and other undesirable remnants from a failed
test run. Make an effort to clean-up even if exceptions are thrown during set-up or clean-up.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._set_up_run): Clean up test run if set-up fails.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.clean_up_test_run): Continue cleaning up devices even after an exception is thrown.

3:44 PM Changeset in webkit [214568] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit2

Remove unused PageClient::removeNavigationGestureSnapshot
https://bugs.webkit.org/show_bug.cgi?id=170249

Reviewed by Beth Dakin.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::removeNavigationGestureSnapshot): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::removeNavigationGestureSnapshot): Deleted.

3:41 PM Changeset in webkit [214567] by jmarcell@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Merge r214291. rdar://problem/30922110

3:12 PM Changeset in webkit [214566] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

WebAssembly: Worklist should periodically check in to see if there are higher priority jobs to do.
https://bugs.webkit.org/show_bug.cgi?id=170204

Reviewed by Saam Barati.

This patch makes it so that Wasm::Plan's compileFunctions method can return periodically
to its caller. The main use for this is if a user asynchronously compiles a wasm module
then later synchronously compiles another module. In this case we want to be able to pause
compilation of other worklists.

This patch also adds support for size_t Options.

  • runtime/Options.cpp:

(JSC::parse):
(JSC::Option::dump):
(JSC::Option::operator==):

  • runtime/Options.h:
  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::moveToState):
(JSC::Wasm::Plan::ThreadCountHolder::~ThreadCountHolder):
(JSC::Wasm::Plan::compileFunctions):

  • wasm/WasmPlan.h:
  • wasm/WasmWorklist.cpp:
3:10 PM Changeset in webkit [214565] by Jonathan Bedard
  • 2 edits in trunk/Tools

Simulator testing stops after the first crash
<rdar://problem/31325362>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice):
(SimulatedDevice.launch_app): Increase timeout when attempting to launch app.

3:01 PM Changeset in webkit [214564] by jfernandez@igalia.com
  • 15 edits
    1 copy in trunk

[css-align] Adapt self-alignment properties to the new baseline syntax
https://bugs.webkit.org/show_bug.cgi?id=170235

Reviewed by David Hyatt.

Source/WebCore:

The baseline-position syntax has changed recently, so we need to update
the CSS properties using the old syntax. This patch address only the
self-alignment (align-self and justify-self) and default-alignment
(align-items and justify-items).

The content-distribution properties (align-content and justify-content)
will be updated in a follow up patch.

The new baseline syntax is "[first | last ]? baseline" which implies
modifying the parsing and computed value logic.

There are several layout tests affected by this change, so I'll update
them accordingly.

No new tests, just added/modified some cases to the tests we already have using the new baseline values.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForItemPositionWithOverflowAlignment):

  • css/CSSValueKeywords.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBaselineKeyword):
(WebCore::consumeSelfPositionOverflowPosition):

LayoutTests:

Added new cases to the alignment properties parsing tests so that we can verify the new
baseline-alignment syntax is parsed as expected.
Additionally, I modified the tests so that they use the testharness format.

  • css3/parse-align-items-expected.txt:
  • css3/parse-align-items.html:
  • css3/parse-align-self-expected.txt:
  • css3/parse-align-self.html:
  • css3/resources/alignment-parsing-utils-th.js:

(checkValues):

  • fast/css/parse-justify-items-expected.txt:
  • fast/css/parse-justify-items.html:
  • fast/css/parse-justify-self-expected.txt:
  • fast/css/parse-justify-self.html:
  • fast/css/resources/alignment-parsing-utils-th.js: Copied from LayoutTests/css3/resources/alignment-parsing-utils-th.js.

(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):
(checkSupportedValues):

2:58 PM Changeset in webkit [214563] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Another build fix after r214502.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer.prototype.render): this._groupToCellMap.get may not contain the cell when startPoint
or metric had not been fetched yet even if currentTestGroup is set.

2:26 PM Changeset in webkit [214562] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r214502. Analysis tasks without any test groups are throwing exceptions.

  • public/v3/components/results-table.js:

(ResultsTable.prototype.renderTable): Don't show the header row when there are no content to show.
(ResultsTable.prototype._computeRepositoryList): Return a pair of arrays. The caller expects the repository
list to be an array, not undefined.

1:54 PM Changeset in webkit [214561] by Chris Dumez
  • 5 edits
    5 adds in trunk

Animated SVG images are not paused in pages loaded in the background
https://bugs.webkit.org/show_bug.cgi?id=170043
<rdar://problem/31234412>

Reviewed by Simon Fraser.

Source/WebCore:

Animated SVG images are not paused in pages loaded in the background. We rely
on FrameView::isOffscreen() to stop images animations in background tab (See
logic in RenderElement's shouldRepaintForImageAnimation()). This works fine
if a tab is visble and then becomes hidden (i.e. by switching to another
tab). However, in the case where the tab gets loaded while in the background
(e.g. opening link in new background tab, or session restore), then the
animations would not be paused, due to FrameView::isOffscreen() erroneously
returning false in this case.

Normally, the following chain of events happens:

  • Page is visible, we construct a main frame and its FrameView for loading the page. When a FrameView is constructed, we call FrameView::show() to make it visible. Then, if the page becomes non-visible, we call Page::setIsVisibleInternal(false) which calls FrameView::hide(). After that, FrameView::isOffscreen() correctly returns true because we properly called FrameView::hide().

However, when doing a load while the Page is hidden, the following was
happening:

  • Page is not visible, we call Page::setIsVisibleInternal(false) which tries to call FrameView::hide() for the main frame but it does not have a FrameView yet (because the load has not started). We start the load and end up creating a FrameView. The FrameView constructor was calling FrameView::show() unconditionally, thus making the FrameView think is visible, even though its page isn't. At this point, FrameView::isOffscreen() was returning false and animations would keep running, even though the page is not visible.

To address the issue, we now call FrameView::show() in FrameView::create() only
if the Page is actually visible, instead of calling it unconditionally. If the
page ever becomes visible, Page::setIsVisibleInternal(true) will be called and
it will take care of calling FrameView::show() then.

Tests: svg/animations/animations-paused-in-background-page-iframe.html

svg/animations/animations-paused-in-background-page.html

  • page/FrameView.cpp:

(WebCore::FrameView::create):

LayoutTests:

Extend layout test coverage.

  • svg/animations/animations-paused-in-background-page-expected.txt: Added.
  • svg/animations/animations-paused-in-background-page-iframe-expected.txt: Added.
  • svg/animations/animations-paused-in-background-page-iframe.html: Added.
  • svg/animations/animations-paused-in-background-page.html: Added.
  • svg/animations/resources/iframe-with-animated-svg-image.html: Added.
1:38 PM Changeset in webkit [214560] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove obsolete references to HeapTimer in JavaScriptCore.order.
https://bugs.webkit.org/show_bug.cgi?id=170252

Reviewed by Saam Barati.

The HeapTimer was renamed to JSRunLoopTimer back in r214504. These HeapTimer
entries are now no longer meaningful.

1:11 PM Changeset in webkit [214559] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Increment the last stable network cache version on Mac
https://bugs.webkit.org/show_bug.cgi?id=170248
<rdar://problem/31326040>

Reviewed by Chris Dumez.

Bump to the latest release.

  • NetworkProcess/cache/NetworkCacheStorage.h:
1:07 PM Changeset in webkit [214558] by Jonathan Bedard
  • 9 edits in trunk/Tools

webkitpy: Standardize web-server port definitions
https://bugs.webkit.org/show_bug.cgi?id=170144
<rdar://problem/31284026>

Reviewed by Daniel Bates.

Default web-server ports should be declared in global variables.
Add functions to web-servers which return the ports these servers
are using so that other tools can forward them.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Use shared constants in http_server_base.py.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:

(TestLayoutTestApacheHttpd.test_start_cmd): Check port_to_forward for expected values.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd.init): Use shared constants in http_server_base.py.
(Lighttpd._prepare_config): Ditto.

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase): Add default port constants.
(HttpServerBase.ports_to_forward): Add function to return ports used for http server.

  • Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:

(TestHttpServer.test_start_cmd): Check port_to_forward for expected values.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (WebPlatformTestServer.ports_to_forward): Add function to return ports used for web-platform tests.
  • Scripts/webkitpy/layout_tests/servers/websocket_server.py:

(PyWebSocket): Make default port values public.
(PyWebSocket.init): Use public default port.
(PyWebSocket.ports_to_forward): Return port used in an array.

  • Scripts/webkitpy/port/base.py:

(Port.to.ports_to_forward): Return all ports used the various web-servers managed by the port object.
(Port.to.start_websocket_server): Use PyWebSocket port constants.

12:31 PM Changeset in webkit [214557] by Alan Bujtas
  • 1 edit
    1 add in trunk/PerformanceTests

[Arabic text] Add whitespace preserve/word wrap performance test.
https://bugs.webkit.org/show_bug.cgi?id=170243

Reviewed by Simon Fraser.

  • Layout/ArabicLineLayout-pre-and-wrap.html: Added.
12:29 PM Changeset in webkit [214556] by Wenson Hsieh
  • 6 edits in trunk

Links with empty hrefs should not be drag sources
https://bugs.webkit.org/show_bug.cgi?id=170241
<rdar://problem/31305505>

Reviewed by Tim Horton.

Source/WebCore:

The m_dragSouceAction member of DragController represents the drag source actions that are available to the
document, rather than the available actions given the dragging element. Thus, it is not correct to only check
that (m_dragSourceAction & DragSourceActionAttachment) before proceeding down the attachment dragging codepath.
This should be additionally guarded with a check that the element being dragged is, in fact, an attachment
element.

New API test (see Tools/ChangeLog).

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

Tools:

Adds a new API test: DataInteractionTests.LinkWithEmptyHREF.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:

Expose the current phase of the data interaction simulator for verifying behaviors in unit tests.

  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator phase]):

12:25 PM Changeset in webkit [214555] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Post-commit test gardening after r214546
https://bugs.webkit.org/show_bug.cgi?id=169518

Unreviewed.

  • platform/mac-elcapitan/fast/text/font-selection-font-loading-api-parse-expected.txt:
  • platform/mac-elcapitan/fast/text/font-style-parse-expected.txt:
12:25 PM Changeset in webkit [214554] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

WebVideoFullscreenInterfaceAVKit needs a strong self ref before dispatching to the main thread.
https://bugs.webkit.org/show_bug.cgi?id=170129

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-03-29
Reviewed by David Kilzer.

No new tests becuase no new behavior.

Hold a strong reference to WebVideoFullscreenInterfaceAVKit when dispatching to the main thread.
Make WebVideoFullscreenInterfaceAVKit safe to retain from non-main thread.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::exitFullscreen):

12:23 PM Changeset in webkit [214553] by Jonathan Bedard
  • 9 edits
    2 adds in trunk/Tools

Use TCP instead of FIFOs for Simulator/Device communication
https://bugs.webkit.org/show_bug.cgi?id=169419
<rdar://problem/30949615>

Reviewed by Alexey Proskuryakov.

Using TCP instead of FIFOs when communicating with devices allows the device being tested
to be on a different machine then the one handling the management of the test run.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpRenderTree): Call setUp/tearDownIOSLayoutTestCommunication() instead of using FIFOs.

  • Scripts/webkitpy/port/device.py:

(Device.init): Initialize the listening_socket.
(Device.listening_port): Return port of listening socket.
(Device.prepare_for_testing): Open listening socket on an open port, prepare platform device
fro testing.
(Device.finished_testing): Close listening socket associated with this device, call the
platform device's finished_testing function if it exists.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.setup_test_run): Prepare each device for testing.
(IOSPort.clean_up_test_run): Notify each device that testing has completed.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort): Work around device persistence bug.
(IOSSimulatorPort.init): Ditto.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess):
(SimulatorProcess.NonBlockingFileFromSocket): Add to work around shortcomings in
Python 2’s makefile.
(SimulatorProcess.NonBlockingFileFromSocket.init): Initialize file with socket.
(SimulatorProcess.ReadFileSocket.close): Close file and then socket;
(SimulatorProcess.init): Pass TCP port over environment, remove FIFO names.
(SimulatorProcess.getattr): Expose all file attributes.
(SimulatorProcess._accept_connection_create_file): Wait for connection from server and
create and return a file-like object from the incoming connection.
(SimulatorProcess._start): Use TCP connections instead of FIFOs.
(SimulatorProcess._start.handler): Output server port in timeout exception.
(SimulatorProcess._reset): Deleted.

  • TestRunnerShared/IOSLayoutTestCommunication.cpp: Added.

(connectToServer): Return socket connected to the provided server address.
(setupiOSLayoutTestCommunication): Connect stdin, stdout and stderr as socket to a
TCP server running on localhost.
(tearDownIOSLayoutTestCommunication): Close stdin, stdout and stderr TCP sockets.

  • TestRunnerShared/IOSLayoutTestCommunication.h: Added.
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformInitialize): Call setUpIOSLayoutTestCommunication()
instead of using FIFOs.
(WTR::TestController::platformDestroy): Call tearDownIOSLayoutTestCommunication().

12:23 PM Changeset in webkit [214552] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Post-commit test gardening after r214546
https://bugs.webkit.org/show_bug.cgi?id=169518

Unreviewed.

  • platform/mac-elcapitan/fast/text/font-selection-font-loading-api-parse-expected.txt:
  • platform/mac-elcapitan/fast/text/font-style-parse-expected.txt:
11:57 AM Changeset in webkit [214551] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network tab content view is blank after reload
https://bugs.webkit.org/show_bug.cgi?id=168029

Patch by Sam Brodkin <isam@apple.com> on 2017-03-29
Reviewed by Brian Burg.

  • UserInterface/Views/NetworkSidebarPanel.js:

(WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
showDefaultContentView() which shows networkGridView in the contentView was not being called
when the NetworkSidebarPanel was not visible. Removing the if statement always shows the
networkGridView which fixes the bug. This wouldn't be easy to regression test.

11:44 AM Changeset in webkit [214550] by zandobersek@gmail.com
  • 3 edits
    1 add in trunk/Source/WebCore

[GCrypt] Add a Handle<> class to help with GCrypt object lifetime control
https://bugs.webkit.org/show_bug.cgi?id=170238

Reviewed by Michael Catanzaro.

Source/WebCore:

The platform-specific CryptoAlgorithmHMAC implementation is modified
to showcase the GCrypt::Handle<> use. HandleDeleter<gcry_mac_hd_t>
is added accordingly.

  • crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:

(WebCore::calculateSignature):

Source/WebCore/PAL:

Add a GCrypt-specific Handle<> template class, inside the GCrypt namespace.
Objects of this class should be used as 'smart handles', cleaning up upon
destruction the GCrypt object that's represented by the handle they manage.

This mimics the std::unique_ptr<> idea, but is narrowly focused towards
how such handles are used in the libgcrypt API. A GCrypt::Handle<> object
can be consturcted from an existing handle or with the default null value.
It can be cleared upon request via clear(), and the managed handle can be
released via release().

The address of the managed handle can be retrieved through the address-of
operator. An implicit conversion operator is also added. This allows
frictionless use of GCrypt::Handle<> objects with existing libgcrypt APIs.

The negation operator is implemented to support testing the nullness of
the managed handle. The raw handle value is also retrieveable through
the handle() method.

The copy and move constructors and assignment operators are deleted.
They are not at the moment required anywhere in the work-in-progress
implementation of subtle crypto functionality.

As with other resource management classes, upon destruction, the
GCrypt::Handle<> object destroys the resource it manages. This is done
through objects of the HandleDeleter<> template class. Specializations
of this class have to implement the call operator that properly
releases the resource. Because the operator is deleted by default,
a compilation error will be thrown when deleting a resource of some
type for which the proper HandleDeleter specialization isn't provided.

std::unique_ptr<> could be used, but it could also be mis-used. I find
a mini-class with an interface that's specific to libgcrypt API
interactions to be preferrable to a std::unique_ptr<> with a custom
deleter.

  • pal/crypto/gcrypt/Handle.h: Added.

(PAL::GCrypt::Handle::Handle):
(PAL::GCrypt::Handle::~Handle):
(PAL::GCrypt::Handle::clear):
(PAL::GCrypt::Handle::release):
(PAL::GCrypt::Handle::operator&):
(PAL::GCrypt::Handle::handle):
(PAL::GCrypt::Handle::operator T):
(PAL::GCrypt::Handle::operator!):
(PAL::GCrypt::HandleDeleter<gcry_mac_hd_t>::operator()):

11:38 AM Changeset in webkit [214549] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/events/before-unload-adopt-subframe-to-outside.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170130

Unreviewed test gardening.

11:27 AM Changeset in webkit [214548] by matthew_hanson@apple.com
  • 1 copy in branches/safari-604.1.14-branch

New branch.

10:44 AM Changeset in webkit [214547] by jfbastien@apple.com
  • 10 edits
    1 add in trunk

WebAssembly: add shell-only Memory mode helper
https://bugs.webkit.org/show_bug.cgi?id=170227

Reviewed by Mark Lam.

JSTests:

  • wasm/assert.js: fix a prior debug thing I forgot to remove
  • wasm/function-tests/memory-section-and-import.js: the assert

issue was hiding a failure in error message here

  • wasm/js-api/element.js: the assert issue was hiding a failure in

error message here
(badInstantiation.test):
(badInstantiation):

  • wasm/js-api/extension-MemoryMode.js: Added.

(const.validateMode.what.switch):
(testMemoryNoMax):
(testMemory):
(testInstanceNoMemory):
(testInstanceNoMax):
(testInstance):

  • wasm/js-api/test_memory.js: the assert issue was hiding a

failure in error message here
(test):

Source/JavaScriptCore:

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionWebAssemblyMemoryMode):

  • wasm/WasmMemory.h:
  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
10:40 AM Changeset in webkit [214546] by mmaxfield@apple.com
  • 7 edits
    6 adds in trunk

Variation fonts: Make sure that feature detection and preprocessor macros are right
https://bugs.webkit.org/show_bug.cgi?id=169518

Reviewed by Simon Fraser.

Source/WebCore:

When I added variable fonts support, I made all OSes parse the newly accepted values,
instead of just the OSes which support variable fonts.

Test: fast/text/font-variations-feature-detection.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontStretch):
(WebCore::consumeFontStyle):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::divisibleBy100):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber):

LayoutTests:

Create platform-specific results for mac-elcapitan which doesn't support variation fonts.

  • fast/text/font-variations-feature-detection-expected.html: Added.
  • fast/text/font-variations-feature-detection.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac-elcapitan/fast/text/font-selection-font-face-parse-expected.txt:
  • platform/mac-elcapitan/fast/text/font-selection-font-loading-api-parse-expected.txt: Added.
  • platform/mac-elcapitan/fast/text/font-stretch-parse-expected.txt: Added.
  • platform/mac-elcapitan/fast/text/font-style-parse-expected.txt: Added.
  • platform/mac-elcapitan/fast/text/font-weight-parse-expected.txt: Added.
  • platform/mac/TestExpectations:
10:28 AM Changeset in webkit [214545] by commit-queue@webkit.org
  • 7 edits
    2 copies in trunk

[Modern Media Controls] Controls bar may disappear while captions menu is visible (redux)
https://bugs.webkit.org/show_bug.cgi?id=170239
<rdar://problem/31320685>

Patch by Antoine Quint <Antoine Quint> on 2017-03-29
Reviewed by Dean Jackson.

Source/WebCore:

We did some work in webkit.org/b/168751 to prevent the controls bar from disappearing while the
captions menu is visible. But there were two cases where the behavior was not as intended:

  1. the controls bar would hide upon exiting the video.
  2. clicking on the controls bar while the caption panel is up would hide the controls bar as well as the captions panel.

Instead of determining that the "userInteractionEnabled" property being set to "false" is indicative
of secondary UI, such as the tracks panel, being attached to the controls bar, we now have an
explicit property to specify this. Now, when "hasSecondaryUIAttached" is "true", we prevent the
controls bar from fading when exiting the media.

Additionally, when dismissing the tracks panel, we check whether a mouse event lead to this and check
if the mouse was positioned over the controls bar. If that is the case, we no longer hide the controls
bar and only dismiss the tracks panel.

Test: media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html

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

(ControlsBar.prototype.set userInteractionEnabled):
(ControlsBar.prototype.handleEvent):
(ControlsBar.prototype._autoHideTimerFired):

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

(MacOSMediaControls.prototype.showTracksPanel):
(MacOSMediaControls.prototype.hideTracksPanel):

LayoutTests:

We extend an existing test to cover the case where we would hide the controls bar while the tracks panel
is up by mousing out of the media. We also add a new test where we check that clicking over the controls
bar to dismiss the tracks panel does not hide the controls bar. Finally, we make a small change to an
existing test to listen to "transitionend" event on the tracks panel specifically since with this patch
the controls bar would disappear and trigger a similar event when disappearing as the tracks panel is dismissed.

  • media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt: Added.
  • media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html: Added.
  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
  • media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html:
10:27 AM Changeset in webkit [214544] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

WebAssembly: pack OpcodeOrigin to fit in a pointer
https://bugs.webkit.org/show_bug.cgi?id=170244

Reviewed by Michael Saboff.

This patch makes it so we don't have to have allocate the OpcodeOrigin and can just
pack all the data into the pointer B3::Origin already has.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile):

  • wasm/WasmOpcodeOrigin.cpp:

(JSC::Wasm::OpcodeOrigin::dump):

  • wasm/WasmOpcodeOrigin.h:

(JSC::Wasm::OpcodeOrigin::OpcodeOrigin):
(JSC::Wasm::OpcodeOrigin::opcode):
(JSC::Wasm::OpcodeOrigin::location):

10:22 AM Changeset in webkit [214543] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source/JavaScriptCore

Roll out r212310 via r214519. rdar://problem/30922106

10:22 AM Changeset in webkit [214542] by Jonathan Bedard
  • 3 edits
    1 move
    2 adds in trunk/Tools

webkitpy: Add IOSDevicePort and IOSPort tests
https://bugs.webkit.org/show_bug.cgi?id=170206
<rdar://problem/31308364>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/darwin_testcase.py: Removed unused import.
  • Scripts/webkitpy/port/ios_device_unittest.py: Added.

(iosDeviceTest): Contains tests for the IOSDevicePort.
(iosDeviceTest.make_port): Creates an IOSDevicePort with arguments.
(iosDeviceTest.test_operating_system): Check for the correct operating system.

  • Scripts/webkitpy/port/ios_simulator_unittest.py: Moved from Tools/Scripts/webkitpy/port/ios_unittest.py.

(iosSimulatorTest): Inherit from ios_testcase.
(iosSimulatorTest.make_port): Ditto.
(iosSimulatorTest.test_get_crash_log): Ditto.

  • Scripts/webkitpy/port/ios_testcase.py: Added.

(iOSTest): Contains shared tests for the IOSDevicePort and IOSSimulatorPort.
(iOSTest.test_driver_name): Tests for iOS app driver.
(iOSTest.test_baseline_searchpath): Check that ios and ios-wk1 are in the baseline search path.

  • Scripts/webkitpy/port/ios_unittest.py: Moved to ios_simulator_unittest.py.
  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase): Rename is_simulator to disable_setup to more accurately describe it's meaning.
(PortTestCase.test_diff_image): Use disable_setup instead of is_simulator.
(PortTestCase.test_diff_image_crashed): Ditto.

10:17 AM Changeset in webkit [214541] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly: NFC s/goto/lambda/g
https://bugs.webkit.org/show_bug.cgi?id=170242

Reviewed by Mark Lam.

Lambdas are more in-style than the goto I just used.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::tryGetFastMemory):

10:08 AM Changeset in webkit [214540] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Modern Media Controls] Volume slider is initially empty
https://bugs.webkit.org/show_bug.cgi?id=170237
<rdar://problem/31319077>

Patch by Antoine Quint <Antoine Quint> on 2017-03-29
Reviewed by Dean Jackson.

Fixing fallout from https://bugs.webkit.org/show_bug.cgi?id=167935 where we changed the behavior
of layout() to happen prior to a commit. In this one instance, we were overriding layout() to run
after a commit, so we now override commit(). Otherwise, the <canvas> that we draw the volume slider
into would have its "width" and "height" properties set after we drew, which would clear the <canvas>.

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

(Slider.prototype.commit):
(Slider.prototype.layout): Deleted.

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

Mark fast/workers/worker-close-more.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=169838

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:03 AM Changeset in webkit [214538] by zandobersek@gmail.com
  • 3 edits
    12 adds
    1 delete in trunk/Source/WebCore

[GCrypt] Move over empty GnuTLS-based SUBTLE_CRYPTO implementation files
https://bugs.webkit.org/show_bug.cgi?id=170232

Reviewed by Michael Catanzaro.

Migrate the GnuTLS SUBTLE_CRYPTO implementation files to the gcrypt/
directory. The implementation files themselves are no-op, so this is
a simple move-and-rename operation that will enable proceeding with
the libgcrypt-based implementation of SUBTLE_CRYPTO functionality.

No change in behavior. The SUBTLE_CRYPTO feature should build as it
did before, and the implementations are empty anyway.

  • PlatformGTK.cmake:
  • crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_CFBGnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmECDHGnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmPBKDF2GnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: This one already exists.
  • crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp.
  • crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmRegistryGnuTLS.cpp.
  • crypto/gcrypt/CryptoKeyECGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoKeyECGnuTLS.cpp.
  • crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoKeyRSAGnuTLS.cpp.
  • crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/SerializedCryptoKeyWrapGnuTLS.cpp.
  • crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp: Removed.
10:00 AM Changeset in webkit [214537] by zandobersek@gmail.com
  • 2 edits
    2 deletes in trunk/Source/WebCore

[GnuTLS] Remove unused CryptoDigestGnuTLS, CryptoAlgorithmHMACGnuTLS implementation files
https://bugs.webkit.org/show_bug.cgi?id=170231

Reviewed by Michael Catanzaro.

Source/WebCore:

  • crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp: Removed. The GCrypt counterpart

is already in use, and this file wasn't even being built.

Source/WebCore/PAL:

  • pal/crypto/gnutls/CryptoDigestGnuTLS.cpp: Removed. The GCrypt counterpart

is already in use, and this file wasn't even being built.

8:58 AM Changeset in webkit [214536] by commit-queue@webkit.org
  • 17 edits in trunk

Move DTMF WebRTC extension behind its own compile flag
https://bugs.webkit.org/show_bug.cgi?id=170226

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

Source/WebCore:

Moving RTCDTMFSender and RTCDTMFToneChangeEvent behinf a WEB_RTC_DTMF compile flag.
This compile flag is not set on any supported platform yet.
Disabling related test and updated test expectations.

  • Modules/mediastream/RTCDTMFSender.cpp:
  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
  • Modules/mediastream/RTCDTMFToneChangeEvent.h:
  • Modules/mediastream/RTCDTMFToneChangeEvent.idl:
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:
  • platform/mediastream/RTCDTMFSenderHandler.h:
  • platform/mediastream/RTCDTMFSenderHandlerClient.h:

LayoutTests:

  • TestExpectations:
  • platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/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:
8:33 AM Changeset in webkit [214535] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK][OWR] Rebaseline fast/mediastream/RTCPeerConnection-addIceCandidate.html after r214527
https://bugs.webkit.org/show_bug.cgi?id=170192

Unreviewed test gardening.

  • platform/gtk/fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
8:18 AM Changeset in webkit [214534] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Add test for differentiating camera versus canvas stream
https://bugs.webkit.org/show_bug.cgi?id=169698
<rdar://problem/31076026>

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

  • fast/mediastream/captureStream/canvas2d.html:
6:34 AM Changeset in webkit [214533] by clopez@igalia.com
  • 3 edits
    1 delete in trunk/LayoutTests

[WebRTC] Update test RTCPeerConnection-overloaded-operations-params.html after r214441
https://bugs.webkit.org/show_bug.cgi?id=170223

Reviewed by Youenn Fablet.

After r214441 the arguments of addIceCandidate() are nullable.

  • fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
  • platform/gtk/fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt: Removed. The expected result was the same than the general one.
2:39 AM Changeset in webkit [214532] by commit-queue@webkit.org
  • 10 edits in trunk

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409
<rdar://problem/30799198>

Patch by Antoine Quint <Antoine Quint> on 2017-03-29
Reviewed by Dean Jackson.

Source/WebCore:

Add a new internals setting to opt into ScriptedAnimationController logging through DOM events dispatched
through the document. This should allow this flaky test to get information as to why the frame isn't
firing when it times out.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::suspend):
(WebCore::ScriptedAnimationController::resume):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::dispatchLoggingEventIfRequired):

  • dom/ScriptedAnimationController.h:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::resetToConsistentState):
(WebCore::InternalSettings::shouldDispatchRequestAnimationFrameEvents):
(WebCore::InternalSettings::setShouldDispatchRequestAnimationFrameEvents):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

Opt into ScriptedAnimationController logging.

  • media/modern-media-controls/airplay-button/airplay-button-expected.txt:
  • media/modern-media-controls/airplay-button/airplay-button.html:

Mar 28, 2017:

11:15 PM Changeset in webkit [214531] by sbarati@apple.com
  • 51 edits in trunk/Source/JavaScriptCore

AssemblyHelpers should not have a VM field
https://bugs.webkit.org/show_bug.cgi?id=170207

Reviewed by Yusuke Suzuki.

APIs that need VM should take one as a parameter. When doing position
independent code for Wasm, we can't tie code generation to a VM.

  • b3/B3Compile.cpp:

(JSC::B3::compile):

  • b3/air/testair.cpp:
  • b3/testb3.cpp:

(JSC::B3::testEntrySwitchSimple):
(JSC::B3::testEntrySwitchNoEntrySwitch):
(JSC::B3::testEntrySwitchWithCommonPaths):
(JSC::B3::testEntrySwitchWithCommonPathsAndNonTrivialEntrypoint):
(JSC::B3::testEntrySwitchLoop):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/DOMJITAccessCasePatchpointParams.cpp:

(JSC::SlowPathCallGeneratorWithArguments::generateImpl):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::rewireStubAsJump):

  • bytecode/InlineAccess.h:
  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::emitExplicitExceptionHandler):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::compileExceptionHandlers):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::exceptionCheck):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::exceptionCheckWithCallFrameRollback):
(JSC::DFG::JITCompiler::fastExceptionCheck):
(JSC::DFG::JITCompiler::vm):

  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGOSRExitCompiler.h:
  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGOSRExitCompilerCommon.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileGetGlobalObject):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileNukeStructureAndSetButterfly):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::generate):

  • ftl/FTLLazySlowPathCall.h:

(JSC::FTL::createLazyCallGenerator):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileNotifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckTraps):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • ftl/FTLState.h:

(JSC::FTL::State::vm):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitReleaseAssertNoException):
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitJumpIfException):
(JSC::AssemblyHelpers::emitExceptionCheck):
(JSC::AssemblyHelpers::emitNonPatchableExceptionCheck):
(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::debugCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::AssemblyHelpers):
(JSC::AssemblyHelpers::codeBlock):
(JSC::AssemblyHelpers::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::barrierBranch):
(JSC::AssemblyHelpers::barrierStoreLoadFence):
(JSC::AssemblyHelpers::mutatorFence):
(JSC::AssemblyHelpers::storeButterfly):
(JSC::AssemblyHelpers::nukeStructureAndStoreButterfly):
(JSC::AssemblyHelpers::jumpIfMutatorFenceNotNeeded):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateVariableSizedCell):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):
(JSC::AssemblyHelpers::vm): Deleted.
(JSC::AssemblyHelpers::debugCall): Deleted.

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::ensureShadowChickenPacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::CCallHelpers):
(JSC::CCallHelpers::jumpToExceptionHandler):

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:

(JSC::JIT::exceptionCheck):
(JSC::JIT::exceptionCheckWithCallFrameRollback):

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateOutOfLine):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitWriteBarrier):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::JSInterfaceJIT):
(JSC::JSInterfaceJIT::vm):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
(JSC::linkPolymorphicCall):
(JSC::resetGetByID):
(JSC::resetPutByID):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

  • jit/SetupVarargsFrame.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::randomThunkGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):
(JSC::throwExceptionFromWasmThunkGenerator):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):
(JSC::Wasm::wasmToWasm):

11:07 PM Changeset in webkit [214530] by jmarcell@apple.com
  • 2 edits in trunk/Tools

Fix index-expected.txt for dashboard test results.
https://bugs.webkit.org/show_bug.cgi?id=170214

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index-expected.txt:
10:32 PM Changeset in webkit [214529] by keith_miller@apple.com
  • 9 edits
    2 adds in trunk/Source/JavaScriptCore

WebAssembly: We should have Origins
https://bugs.webkit.org/show_bug.cgi?id=170217

Reviewed by Mark Lam.

This patch adds wasm origins for B3::Values, called OpcodeOrigin. Currently,
OpcodeOrigin just tracks the original opcode and the location of that opcode.

Here's a sample:

BB#0: ; frequency = 1.000000

Int64 @4 = Patchpoint(generator = 0x10f487fa8, earlyClobbered = [], lateClobbered = [], usedRegisters = [], resultConstraint = SomeRegister)
Int64 @5 = FramePointer()
Void @8 = Store(@4, @5, offset = 24, ControlDependent|Writes:Top)
Int64 @10 = Const64(0)
Void @12 = Store($0(@10), @5, offset = 16, ControlDependent|Writes:Top)
Int64 @13 = Patchpoint(generator = 0x10f4be7f0, earlyClobbered = [], lateClobbered = [], usedRegisters = [], resultConstraint = SomeRegister, ExitsSideways|ControlDependent|WritesPinned|ReadsPinned|Fence|Writes:Top|Reads:Top)
Int64 @16 = ArgumentReg(%rdi)
Int64 @18 = ArgumentReg(%rsi)
Int32 @22 = Trunc(@18, Wasm: {opcode: I64Rotl, location: 5})
Int64 @23 = RotL(@16, @22, Wasm: {opcode: I64Rotl, location: 5})
Void @27 = Return(@23, Terminal, Wasm: {opcode: End, location: 6})

(JSC::B3::Value::deepDump):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::setParser):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::emitLoadOp):
(JSC::Wasm::B3IRGenerator::emitStoreOp):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::unify):
(JSC::Wasm::parseAndCompile):
(JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::getMemoryBaseAndSize): Deleted.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser::currentOpcode):
(JSC::Wasm::FunctionParser::currentOpcodeStartingOffset):
(JSC::Wasm::FunctionParser<Context>::FunctionParser):

  • wasm/WasmOpcodeOrigin.cpp: Added.

(JSC::Wasm::OpcodeOrigin::dump):

  • wasm/WasmOpcodeOrigin.h: Added.

(JSC::Wasm::OpcodeOrigin::OpcodeOrigin):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::setParser):

  • wasm/generateWasmB3IRGeneratorInlinesHeader.py:

(CodeGenerator.generate):
(generateB3OpCode):
(generateConstCode):

9:13 PM Changeset in webkit [214528] by jmarcell@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r214240. rdar://problem/31178794

9:09 PM Changeset in webkit [214527] by commit-queue@webkit.org
  • 9 edits in trunk

[WebRTC] After r214441 addIceCandidate no longer accepts an RTCIceCandidateInit dictionary
https://bugs.webkit.org/show_bug.cgi?id=170192

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-28
Reviewed by Jon Lee.

Source/WebCore:

Covered by updated tests.

  • Modules/mediastream/RTCIceCandidate.idl: Candidate is no longer a required field in RTCIceCandidateInit.
  • Modules/mediastream/RTCPeerConnectionInternals.js: Reworking defaultsToNull to handle both undefined and null cases.

LayoutTests:

  • fast/mediastream/RTCIceCandidate-expected.txt:
  • fast/mediastream/RTCIceCandidate.html: Removing no longer valid tests.
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
  • fast/mediastream/RTCPeerConnection-addIceCandidate.html: Adding more tests to cover null/undefined cases.

Ensuring sdpMid has a valid value.

  • fast/mediastream/resources/promise-utils.js: Improving error logging.
9:02 PM Changeset in webkit [214526] by jfbastien@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

WebAssembly: option to crash if no fast memory is available
https://bugs.webkit.org/show_bug.cgi?id=170219

Reviewed by Mark Lam.

  • runtime/Options.h:
  • wasm/WasmMemory.cpp:

(JSC::Wasm::webAssemblyCouldntGetFastMemory):
(JSC::Wasm::tryGetFastMemory):

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

LibWebRTCProvider should allow setting encoder and decoder factories
https://bugs.webkit.org/show_bug.cgi?id=170212

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

No change of behavior.
Adding the ability to set encoder/decoder libwebrtc factory getters.
Setting default cocoa factory getters.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::staticFactoryAndThreads):
(WebCore::initializePeerConnectionFactoryAndThreads):
(WebCore::LibWebRTCProvider::setDecoderFactoryGetter):
(WebCore::LibWebRTCProvider::setEncoderFactoryGetter):
(WebCore::LibWebRTCProvider::setPeerConnectionFactory):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
8:50 PM Changeset in webkit [214524] by mitz@apple.com
  • 7 copies
    1 add in releases/Apple/iOS 10.3

Added a tag for iOS 10.3.

8:49 PM Changeset in webkit [214523] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari 10.1

Added a tag for Safari 10.1.

8:28 PM Changeset in webkit [214522] by jmarcell@apple.com
  • 3 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r214374. rdar://problem/31249971

8:28 PM Changeset in webkit [214521] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-603-branch

Merge r214365. rdar://problem/30922115

8:28 PM Changeset in webkit [214520] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch

Merge r214194. rdar://problem/31101594

8:28 PM Changeset in webkit [214519] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r212310. rdar://problem/30922106

8:28 PM Changeset in webkit [214518] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch

Merge r214237. rdar://problem/31178134

8:28 PM Changeset in webkit [214517] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r214232. rdar://problem/30922105

8:28 PM Changeset in webkit [214516] by jmarcell@apple.com
  • 3 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r213966. rdar://problem/31178551

8:28 PM Changeset in webkit [214515] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r211645. rdar://problem/30922105

6:56 PM Changeset in webkit [214514] by BJ Burg
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: keyboard shortcuts with directionality need to be flipped (forward/back, etc)
https://bugs.webkit.org/show_bug.cgi?id=165761

Reviewed by Matt Baker.

Original patch by Devin Rousso.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
Flip the functionality of keyboard shortcuts when in RTL so that the action of
pressing the left or right arrows/curly braces matches what happens when the
corresponding left or right buttons are clicked.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype._keyDown):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._keyDown):

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.prototype._treeKeyDown):
Flip the Left and Right keyboard shortcuts to expand/collapse the selected item when in RTL.

6:32 PM Changeset in webkit [214513] by ap@apple.com
  • 2 edits in trunk/Tools

Bot watcher's dashboard has separate settings for "mac" and "macos"
https://bugs.webkit.org/show_bug.cgi?id=170164

Reviewed by Tim Horton.

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

(Settings.prototype.parsePlatformFamily): Aded a special case for "macos".

6:31 PM Changeset in webkit [214512] by ap@apple.com
  • 4 edits in trunk/Tools

Fix dashboard test results on the dashboard
https://bugs.webkit.org/show_bug.cgi?id=170158

Reviewed by Tim Horton.

Link to result diff instead of stdio. Looking at the diff, I wonder if it can be
further improved, as it's not super readable, but stdio is entirely useless in this context.

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

(Buildbot.prototype.dashboardTestResultsURLForIteration): Generate formatted diff link.

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

Fixed a typo in step name, so that it's actually treated as productive.

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

(BuildbotTesterQueueView.prototype.appendBuilderQueueStatus):
(BuildbotTesterQueueView.prototype.update):
(BuildbotTesterQueueView.prototype._presentPopoverForGenericTestFailures):
Added special handling for dashboard test results.

6:14 PM Changeset in webkit [214511] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Stop overriding scroll view inset defaults
https://bugs.webkit.org/show_bug.cgi?id=170221
<rdar://problem/31260325>

Reviewed by Simon Fraser.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
The default behavior is sufficient for us.

6:00 PM Changeset in webkit [214510] by Brent Fulgham
  • 6 edits
    2 adds in trunk

Only attach Attributes to a given element one time
https://bugs.webkit.org/show_bug.cgi?id=170125
<rdar://problem/31279676>

Reviewed by Chris Dumez.

Source/WebCore:

Attach the attribute node to the Element before calling 'setAttributeInternal', since that method may cause
arbitrary JavaScript events to fire.

Test: fast/dom/Attr/only-attach-attr-once.html

  • dom/Element.cpp:

(WebCore::Element::attachAttributeNodeIfNeeded): Added.
(WebCore::Element::setAttributeNode): Use new method. Revise to attach attribute before calling 'setAttributeInternal'.
(WebCore::Element::setAttributeNodeNS): Ditto.

  • dom/Element.h:

LayoutTests:

  • fast/dom/Attr/make-unique-element-data-while-replacing-attr-expected.txt: Rebaselined.
  • fast/dom/Attr/make-unique-element-data-while-replacing-attr.html: Add check before setting new value.
  • fast/dom/Attr/only-attach-attr-once-expected.txt: Added.
  • fast/dom/Attr/only-attach-attr-once.html: Added.
5:43 PM Changeset in webkit [214509] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The Mutator should not be able to steal the conn if the Collector hasn't reached the NotRunning phase yet.
https://bugs.webkit.org/show_bug.cgi?id=170213
<rdar://problem/30755345>

Reviewed by Filip Pizlo.

The current condition for stealing the conn isn't tight enough. Restricting the
stealing to when m_currentPhase == NotRunning ensures that the Collector is
really done running.

No test because this issue only manifests with a race condition that is difficult
to reproduce on demand.

  • heap/Heap.cpp:

(JSC::Heap::requestCollection):

5:06 PM Changeset in webkit [214508] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Stop RTCDataChannel when closing page
https://bugs.webkit.org/show_bug.cgi?id=170166

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

Source/WebCore:

Test: webrtc/datachannel/datachannel-gc.html

Making RTCDataChannel an ActiveDOMObject.
Closing the data channel backend and freeing upon close and stop.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::stop):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.h:

LayoutTests:

  • webrtc/datachannel/datachannel-gc-expected.txt: Added.
  • webrtc/datachannel/datachannel-gc.html: Added.
4:53 PM Changeset in webkit [214507] by mmaxfield@apple.com
  • 12 edits
    2 adds in trunk

Ranges for variation font properties are not enforced
https://bugs.webkit.org/show_bug.cgi?id=169979

Reviewed by David Hyatt.

Source/WebCore:

The spec specifies that:

  • Font weights less than or equal to 0, or greater than or equal to 1000 are parse errors
  • Font stretch values less than or equal to 0% are parse errors
  • Font style values less than or equal to -90deg or greater than or equal to 90deg are parse errors

Test: fast/text/variations/out-of-bounds-selection-properties.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontWeightRange):
(WebCore::fontStretchIsWithinRange):
(WebCore::consumeFontStretch):
(WebCore::consumeFontStretchRange):
(WebCore::fontStyleIsWithinRange):
(WebCore::consumeFontStyle):
(WebCore::consumeFontStyleRange):

LayoutTests:

  • fast/text/font-selection-font-face-parse-expected.txt:
  • fast/text/font-selection-font-face-parse.html:
  • fast/text/font-selection-font-loading-api-parse-expected.txt:
  • fast/text/font-selection-font-loading-api-parse.html:
  • fast/text/font-style-parse-expected.txt:
  • fast/text/font-style-parse.html:
  • fast/text/variations/font-loading-api-parse-ranges-expected.txt:
  • fast/text/variations/font-loading-api-parse-ranges.html:
  • fast/text/variations/out-of-bounds-selection-properties-expected.txt: Added.
  • fast/text/variations/out-of-bounds-selection-properties.html: Added.
  • platform/mac-elcapitan/fast/text/font-selection-font-face-parse-expected.txt:
4:50 PM Changeset in webkit [214506] by aestes@apple.com
  • 4 edits
    1 add in trunk

[iOS] Crash in -[WebPreviewLoader failed] when running http/tests/multipart/policy-ignore-crash.php
https://bugs.webkit.org/show_bug.cgi?id=170197
<rdar://problem/30314067>

Reviewed by Brady Eidson.

Source/WebCore:

If QuickLook conversion fails, we call ResourceLoader::didFail() with the NSError from
QuickLook, which will call back into PreviewLoader::didFail(). We only care about network
failures in PreviewLoader, not conversion failures, so check if
m_finishedLoadingDataIntoConverter is set before continuing (like we do in
PreviewLoader::didFinishLoading()).

Fixes crash in http/tests/multipart/policy-ignore-crash.php.

  • loader/ios/PreviewLoader.mm:

(WebCore::PreviewLoader::didFail):

LayoutTests:

  • platform/ios/TestExpectations: Unskipped http/tests/multipart/policy-ignore-crash.php.
  • platform/ios/http/tests/multipart/policy-ignore-crash-expected.txt: Added an iOS-specific result.
4:12 PM Changeset in webkit [214505] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Audio indicator is visible on uni-watch.com but there is no audible audio
https://bugs.webkit.org/show_bug.cgi?id=170200
<rdar://problem/31289132>

Reviewed by Eric Carlson.

Cherry-pick the following patch from Blink by <rtoy@chromium.org>:

When the gain of a GainNode is 0 or 1, the operation of the node can
be optimized. When gain = 1, just copy the input to the output. When
gain = 0; just zero out the output. Currently, the input is
multiplied by the gain to produce the output. This just optimizes the
multiplication away for the two special cases.

Also, have the GainNode set the silence hint if the gain is 0.

And fix a bug in processIfNecessary when unsilenceOutputs was causing the
silence hint to be cleared after the node's process method was finished
and may have set the silence hint. The processing should come after
unsilenceOutputs to preserve any hints from processing the node.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::processIfNecessary):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::process):

  • platform/audio/AudioBus.cpp:

(WebCore::AudioBus::copyWithGainFrom):

4:12 PM Changeset in webkit [214504] by keith_miller@apple.com
  • 45 edits
    2 copies
    2 moves
    5 adds in trunk

WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous
https://bugs.webkit.org/show_bug.cgi?id=169187

Reviewed by Saam Barati.

JSTests:

  • wasm/assert.js:
  • wasm/js-api/Module-compile.js:

(async.testPromiseAPI):

  • wasm/js-api/web-assembly-compile-parallel.js: Added.

(async.throwExn):
(async.test):

  • wasm/js-api/web-assembly-instantiate-parallel.js: Added.

(async.test):

  • wasm/js-api/web-assembly-instantiate.js:

(assert.eq.async.test):
(assert.eq):
(assert.asyncTest.async.test):
(assert.asyncTest):
(assert.truthy.async.test): Deleted.
(assert.truthy): Deleted.

Source/JavaScriptCore:

This patch allows WebAssembly compilations to happen asynchronously.
To do so, it refactors how much of the compilation happens and adds
new infrastructure for async promises.

First, there is a new class, PromiseDeferredTimer that lives on
the VM. PromiseDeferredTimer will manage the life-cycle of async
pending promises and any dependencies that promise
needs. PromiseDeferredTimer automagically releases the pending
promise and dependencies once the JSPromiseDeferred is resolved or
rejected. Additionally, PromiseDeferredTimer provides a mechanism
to poll the run-loop whenever the async task needs to synchronize
with the JS thread. Normally, that will be whenever the async task
finishes. In the case of Web Assembly we also use this feature for
the compile + instantiate case, where we might have more work
after the first async task completes (more on that later).

The next class is Wasm::Worklist, which is used to manage Wasm
compilation tasks. The worklist class works similarly to the
DFG/FTL Worklists. It has a pool of threads that it manages. One
interesting aspect of Wasm Worklist is that it can synchronously
compile a plan that is already potentially running
asynchronously. This can occur if a user calls
WebAssembly.instantiate() then new WebAssembly.instantiate() on
the same module. In that case the Wasm Worklist will bump the
priority of the running pending Plan and block the JS thread.

This patch also makes some of the Wasm Plan code cleaner. Since we
now defer all compilation to instantiation time, we no longer need
to guess at which memory we are going to get. Also, Wasm Plans now
track the work they have done with a state enum.

Finally, this patch makes renamed HeapTimer to JSRunLoopTimer. It
also adds changes test262AsyncTest to a more generic testing
infrastructure. Now, in addition to the old functionality, you can
call asyncTest() with the number of tests you expect. When the jsc
CLI exits, it will guarantee that asyncTestPassed() is called that
many times.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCActivityCallback.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::IncrementalSweeper):

  • heap/IncrementalSweeper.h:
  • heap/StopIfNecessaryTimer.cpp:

(JSC::StopIfNecessaryTimer::StopIfNecessaryTimer):

  • heap/StopIfNecessaryTimer.h:
  • heap/StrongInlines.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(printInternal):
(functionAsyncTestStart):
(functionAsyncTestPassed):
(functionTestWasmModuleFunctions):
(CommandLine::parseArguments):
(runJSC):

  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::resolve):
(JSC::JSPromiseDeferred::reject):

  • runtime/JSPromiseDeferred.h:

(JSC::JSPromiseDeferred::promiseAsyncPending):

  • runtime/JSRunLoopTimer.cpp: Renamed from Source/JavaScriptCore/heap/HeapTimer.cpp.

(JSC::JSRunLoopTimer::JSRunLoopTimer):
(JSC::JSRunLoopTimer::setRunLoop):
(JSC::JSRunLoopTimer::~JSRunLoopTimer):
(JSC::JSRunLoopTimer::timerDidFire):
(JSC::JSRunLoopTimer::scheduleTimer):
(JSC::JSRunLoopTimer::cancelTimer):
(JSC::JSRunLoopTimer::invalidate):

  • runtime/JSRunLoopTimer.h: Copied from Source/JavaScriptCore/heap/HeapTimer.h.
  • runtime/Options.h:
  • runtime/PromiseDeferredTimer.cpp: Added.

(JSC::PromiseDeferredTimer::PromiseDeferredTimer):
(JSC::PromiseDeferredTimer::doWork):
(JSC::PromiseDeferredTimer::runRunLoop):
(JSC::PromiseDeferredTimer::addPendingPromise):
(JSC::PromiseDeferredTimer::cancelPendingPromise):
(JSC::PromiseDeferredTimer::scheduleWorkSoon):
(JSC::PromiseDeferredTimer::scheduleBlockedTask):

  • runtime/PromiseDeferredTimer.h: Renamed from Source/JavaScriptCore/heap/HeapTimer.h.

(JSC::PromiseDeferredTimer::stopRunningTasks):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:
  • wasm/JSWebAssembly.cpp:

(JSC::reject):
(JSC::webAssemblyCompileFunc):
(JSC::resolve):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyValidateFunc):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::memoryKind):
(JSC::Wasm::parseAndCompile):

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmFormat.h:

(JSC::Wasm::ModuleInformation::internalFunctionCount):

  • wasm/WasmFunctionParser.h:
  • wasm/WasmMemory.h:
  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::MemoryInformation::MemoryInformation):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::MemoryInformation::maximum):
(JSC::Wasm::MemoryInformation::hasReservedMemory): Deleted.
(JSC::Wasm::MemoryInformation::takeReservedMemory): Deleted.
(JSC::Wasm::MemoryInformation::mode): Deleted.

  • wasm/WasmModuleParser.cpp:
  • wasm/WasmModuleParser.h:

(JSC::Wasm::ModuleParser::ModuleParser):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::Plan):
(JSC::Wasm::Plan::stateString):
(JSC::Wasm::Plan::moveToState):
(JSC::Wasm::Plan::fail):
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::prepare):
(JSC::Wasm::Plan::ThreadCountHolder::ThreadCountHolder):
(JSC::Wasm::Plan::ThreadCountHolder::~ThreadCountHolder):
(JSC::Wasm::Plan::compileFunctions):
(JSC::Wasm::Plan::complete):
(JSC::Wasm::Plan::waitForCompletion):
(JSC::Wasm::Plan::cancel):
(JSC::Wasm::Plan::run): Deleted.
(JSC::Wasm::Plan::initializeCallees): Deleted.

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::dontFinalize):
(JSC::Wasm::Plan::exports):
(JSC::Wasm::Plan::internalFunctionCount):
(JSC::Wasm::Plan::takeModuleInformation):
(JSC::Wasm::Plan::takeCallLinkInfos):
(JSC::Wasm::Plan::takeWasmExitStubs):
(JSC::Wasm::Plan::setModeAndPromise):
(JSC::Wasm::Plan::mode):
(JSC::Wasm::Plan::pendingPromise):
(JSC::Wasm::Plan::vm):
(JSC::Wasm::Plan::errorMessage):
(JSC::Wasm::Plan::failed):
(JSC::Wasm::Plan::hasWork):
(JSC::Wasm::Plan::hasBeenPrepared):

  • wasm/WasmPlanInlines.h: Copied from Source/JavaScriptCore/wasm/WasmB3IRGenerator.h.

(JSC::Wasm::Plan::initializeCallees):

  • wasm/WasmValidate.cpp:
  • wasm/WasmWorklist.cpp: Added.

(JSC::Wasm::Worklist::priorityString):
(JSC::Wasm::Worklist::QueueElement::setToNextPriority):
(JSC::Wasm::Worklist::iterate):
(JSC::Wasm::Worklist::enqueue):
(JSC::Wasm::Worklist::completePlanSynchronously):
(JSC::Wasm::Worklist::stopAllPlansForVM):
(JSC::Wasm::Worklist::Worklist):
(JSC::Wasm::Worklist::~Worklist):
(JSC::Wasm::existingWorklistOrNull):
(JSC::Wasm::ensureWorklist):

  • wasm/WasmWorklist.h: Added.

(JSC::Wasm::Worklist::nextTicket):
(JSC::Wasm::Worklist::Comparator::operator()):

  • wasm/js/JSWebAssemblyCallee.h:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):
(JSC::JSWebAssemblyCodeBlock::initialize):
(JSC::JSWebAssemblyCodeBlock::isSafeToRun):

  • wasm/js/JSWebAssemblyCodeBlock.h:

(JSC::JSWebAssemblyCodeBlock::create):
(JSC::JSWebAssemblyCodeBlock::initialized):
(JSC::JSWebAssemblyCodeBlock::plan):
(JSC::JSWebAssemblyCodeBlock::runnable):
(JSC::JSWebAssemblyCodeBlock::errorMessage):
(JSC::JSWebAssemblyCodeBlock::callees):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::createSourceBufferFromValue):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::visitChildren):
(JSC::JSWebAssemblyInstance::addUnitializedCodeBlock):
(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::create):
(JSC::JSWebAssemblyInstance::setMemory): Deleted.

  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::codeBlock):
(JSC::JSWebAssemblyInstance::initialized):
(JSC::JSWebAssemblyInstance::module):
(JSC::JSWebAssemblyInstance::importFunction):
(JSC::JSWebAssemblyInstance::setMemory):
(JSC::JSWebAssemblyInstance::table):
(JSC::JSWebAssemblyInstance::importFunctions):
(JSC::JSWebAssemblyInstance::setImportFunction): Deleted.
(JSC::JSWebAssemblyInstance::setTable): Deleted.

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):
(JSC::JSWebAssemblyModule::JSWebAssemblyModule):
(JSC::JSWebAssemblyModule::finishCreation):
(JSC::JSWebAssemblyModule::setCodeBlock):
(JSC::JSWebAssemblyModule::buildCodeBlock): Deleted.
(JSC::JSWebAssemblyModule::create): Deleted.
(JSC::JSWebAssemblyModule::codeBlock): Deleted.

  • wasm/js/JSWebAssemblyModule.h:

(JSC::JSWebAssemblyModule::moduleInformation):
(JSC::JSWebAssemblyModule::codeBlock):
(JSC::JSWebAssemblyModule::source):
(JSC::JSWebAssemblyModule::takeReservedMemory): Deleted.
(JSC::JSWebAssemblyModule::codeBlockFor): Deleted.

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):
(JSC::WebAssemblyInstanceConstructor::createInstance): Deleted.

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::createModule):

  • wasm/js/WebAssemblyModulePrototype.cpp:

(JSC::webAssemblyModuleProtoImports):
(JSC::webAssemblyModuleProtoExports):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::finishCreation):
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyModuleRecord.h:
4:11 PM Changeset in webkit [214503] by Chris Dumez
  • 21 edits
    5 adds in trunk

Animated SVG images are not paused when outside viewport
https://bugs.webkit.org/show_bug.cgi?id=170155
<rdar://problem/31288893>

Reviewed by Antti Koivisto.

Source/WebCore:

Make sure animated SVG images get paused when outside the viewport,
similarly to what was already done for animated GIF images. Also
make sure they are paused when they no longer have any renderers
using them.

Tests: svg/animations/animated-svg-image-outside-viewport-paused.html

svg/animations/animated-svg-image-removed-from-document-paused.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didAddClient):
Restart the animation whenever a new CachedImage client is added. This
will cause us the re-evaluate if the animation should run. The animation
will pause again if the new renderer is not inside the viewport.

(WebCore::CachedImage::animationAdvanced):
Add a flag to newImageAnimationFrameAvailable() so that the renderers can
let us know if we can pause the animation. Pause the animation if all no
renderer requires it (i.e. they are all outside the viewport, or there
are no renderers).

  • loader/cache/CachedImageClient.h:

(WebCore::CachedImageClient::newImageAnimationFrameAvailable):
By default, the CachedImageClients allow pausing. Only renderer will
potentially prevent pausing if they are inside the viewport.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::isAnimating):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::isAnimating):
Add isAnimating() flag on Image for layout testing purposes.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::newImageAnimationFrameAvailable):
Set canPause flag to true if the renderer is not inside the viewport.

(WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
Call startAnimation() if the renderer is now visible to resume SVG
animations. Repainting is enough for GIF animations but not for SVG
animations, we have to explicitly resume them.

  • rendering/RenderElement.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::addRendererWithPausedImageAnimations):
(WebCore::RenderView::removeRendererWithPausedImageAnimations):
(WebCore::RenderView::resumePausedImageAnimationsIfNeeded):

  • rendering/RenderView.h:

Store CachedImages with the renderers that have paused animations.
This is required for SVG where we need to explicitly resume the
animation on the CachedImage when the renderer becomes visible
again. Having access to the Image will also allow us to do smarter
visibility checks in RenderElement's shouldRepaintForImageAnimation(),
in the future.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::hasActiveAnimation):

  • svg/SVGSVGElement.h:

Add hasActiveAnimation() method.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::startAnimation):
Check that animations are paused before starting them. This avoid
jumping due to unnecessary calls to rootElement->setCurrentTime(0).

(WebCore::SVGImage::isAnimating):
Add isAnimating() method for layout tests purposes.

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageClients.h:

Call animationAdvanced() on the observer instead of the generic
changedInRect() when the SVGImage is animating. This way, we go
through the same code path as GIF animations and we end up calling
CachedImage::animationAdvanced() which calls newImageAnimationFrameAvailable()
on RenderElement, which determines if the animation should keep
running or not.

  • testing/Internals.cpp:

(WebCore::Internals::isImageAnimating):

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

Add layout testing infrastructure.

LayoutTests:

Add layout test coverage.

  • platform/mac-wk1/TestExpectations:
  • svg/animations/animated-svg-image-outside-viewport-paused-expected.txt: Added.
  • svg/animations/animated-svg-image-outside-viewport-paused.html: Added.
  • svg/animations/animated-svg-image-removed-from-document-paused-expected.txt: Added.
  • svg/animations/animated-svg-image-removed-from-document-paused.html: Added.
  • svg/animations/resources/smilAnimation.svg: Added.
4:00 PM Changeset in webkit [214502] by rniwa@webkit.org
  • 14 edits
    1 add in trunk/Websites/perf.webkit.org

Modernize AnalysisTaskPage
https://bugs.webkit.org/show_bug.cgi?id=170165

Reviewed by Antti Koivisto.

Modernized AnalysisTaskPage and related components. The main refactoring happened in AnalysisTaskPage
from which AnalysisTaskResultsPane and AnalysisTaskTestGroupPane have been extracted.

Decoupled BuildRequest from its results. AnalysisResultsViewer and TestGroupResultsTable now stores
a reference to AnalysisResultsView and Metric to find the results for each build request.
This refactoring is necessary in order to view results of an arbitrary metric in the future.

Also refactored ResultsTable and its subclasses extensively. Instead of making its render() to invoke
subclass' methods such as buildRowGroups, heading, and additionalHeading, rely on each subclass call
to invoke renderTable(), renamed from render(), with callbacks to add extra headers and columns.

This patch also fixes a number of usability issues found by the user such as changing the test name
resets the customized revisions by the virtue of the modern code being naturally more correct.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer):
(AnalysisResultsViewer.prototype.setTestGroupCallback): Deleted. Replaced by "testGroupClick" action.
(AnalysisResultsViewer.prototype.setRangeSelectorLabels): Moved here from ResultsTable since it's
never used in ResultsTable or TestGroupResultsTable.
(AnalysisResultsViewer.prototype.selectedRange): Ditto.
(AnalysisResultsViewer.prototype.setPoints): Now takes metric as the third argument.
(AnalysisResultsViewer.prototype.setTestGroups): Now takes the current test group.
(AnalysisResultsViewer.prototype.didUpdateResults): Deleted.
(AnalysisResultsViewer.prototype.setAnalysisResultsView): Added.
(AnalysisResultsViewer.prototype.render): Invoke _renderTestGroups lazily. Also simplified the logic
to find the selected list item. Since we always use a shadow DOM now, we can simply look for an element
with ".seleted" instead of crafting a unique class name.
(AnalysisResultsViewer.prototype.renderTestGroups): Renamed from buildRowGroups. Specify callbacks to
insert headers for A/B radio buttons, which has been moved from ResultsTable.prototype.render, and the
stacked blocks of testing results.
(AnalysisResultsViewer.prototype._classForTestGroup): Deleted.
(AnalysisResultsViewer.prototype._openStackingBlock): Deleted.
(AnalysisResultsViewer.prototype._expandBetween): Create a new set for expandedPoints to make
_renderTestGroupsLazily.evaluate do the work.
(AnalysisResultsViewer._layoutBlocks): Moved from TestGroupStackingGrid.layout.
(AnalysisResultsViewer._sortBlocksByRow): Moved from AnalysisResultsViewer.TestGroupStackingGrid.
(AnalysisResultsViewer._insertAfterBlockWithSameRange): Ditto.
(AnalysisResultsViewer._insertBlockInFirstAvailableColumn): Ditto.
(AnalysisResultsViewer._createCellsForRow): Ditto.

(AnalysisResultsViewer.TestGroupStackingBlock):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.addRowIndex):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.createStackingCell): No longer creates a unique
class name here. See the inline comment for AnalysisResultsViewer.prototype.render.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.isThin): Deleted. We used to collapse "failed"
test groups as a thin vertical line, and we wanted to show them next to each other in _layoutBlock but
we don't do that anymore.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._valuesForCommitSet): Added. Uses
this._analysisResultsView to extract the results for the current metrics.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._computeTestGroupStatus):

  • public/v3/components/analysis-task-bug-list.js: Added.

(AnalysisTaskBugList): Added. Extracted from AnalysisTaskChartPane.
(AnalysisTaskBugList.prototype.setTask): Added.
(AnalysisTaskBugList.prototype.didConstructShadowTree): Added.
(AnalysisTaskBugList.prototype.render): Added.
(AnalysisTaskBugList.prototype._associateBug): Added.
(AnalysisTaskBugList.prototype._dissociateBug): Added.
(AnalysisTaskBugList.htmlTemplate): Added.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.htmlTemplate): Added a hook to insert more content at the end in AnalysisTaskChartPane.
(ChartPaneBase.paneFooterTemplate): Added.

  • public/v3/components/customizable-test-group-form.js:

(CustomizableTestGroupForm):
(CustomizableTestGroupForm.prototype.setCommitSetMap):
(CustomizableTestGroupForm.prototype.startTesting): Renamed from _submitted. Now dispatches an action
by the name of "startTesting" instead of calling this._startCallback.
(CustomizableTestGroupForm.prototype.didConstructShadowTree): Added. Moved the logic to attach event
handlers here to avoid eagerly creating the shadow tree in the constructor.
(CustomizableTestGroupForm.prototype._computeCommitSetMap): Use the newly added this._revisionEditorMap
to find the relevant input element instead of running a querySelector.
(CustomizableTestGroupForm.prototype.render): Lazily invoke _renderCustomRevisionTable. This avoids
overriding the customized revisions when the user finally types in the test group name.
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable): Extracted from render.
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons): Made this a non-static method
since it needs to update this._revisionEditorMap now. Merged _constructRevisionRadioButtons.
(CustomizableTestGroupForm.prototype._createRadioButton): Deleted. See above.
(CustomizableTestGroupForm.cssTemplate):
(CustomizableTestGroupForm.formContent): Use IDs instead of classes to make this.content(ID) work.

  • public/v3/components/mutable-list-view.js:

(MutableListView.prototype.setList):
(MutableListView.prototype.setKindList):
(MutableListView.prototype.setAddCallback): Deleted. Replaced by "addItem" action.
(MutableListView.prototype.render):
(MutableListItem.prototype.content):

  • public/v3/components/results-table.js:

(ResultsTable): Removed this._rangeSelectorLabels, this._rangeSelectorCallback, and this._selectedRange
as they are only used by AnalysisResultsViewer. Also replaced this._valueFormatter by
this._analysisResultsView which knows a metric.
(ResultsTable.prototype.setValueFormatter): Deleted.
(ResultsTable.prototype.setRangeSelectorLabels): Deleted.
(ResultsTable.prototype.setRangeSelectorCallback): Deleted.
(ResultsTable.prototype.selectedRange): Deleted.
(ResultsTable.prototype._rangeSelectorClicked): Deleted.
(ResultsTable.prototype.setAnalysisResultsView): Added.
(ResultsTable.prototype.renderTable): Added. Removed the logic to add _rangeSelectorLabels since it has
been moved to AnalysisResultsViewer.prototype.render inside buildColumns, which also inserts additional
columns which used to be stored on each ResultsTableRow. Use the same technique to insert additional
headers. Also take the name (thead tr th) of row header (tbody tr td) as an argument and automatically
create a table cell of an appropriate colspan.
(ResultsTable.prototype._createRevisionListCells):
(ResultsTable.prototype.heading): Deleted. Superseded by buildHeaders callback.
(ResultsTable.prototype.additionalHeading): Ditto.
(ResultsTable.prototype.buildRowGroups): Deleted. It is now the responsibility of each subclass to call
ResultsTable's renderTable() in the subclass' render() function.
(ResultsTable.prototype._computeRepositoryList): No longer takes extraRepositories as an argument.
Instead, this function now returns a pair of the repository list and the list of constant commits.
(ResultsTable.htmlTemplate):
(ResultsTable.cssTemplate):

  • public/v3/components/test-group-form.js:

(TestGroupForm): Avoid eagerly creating the shadow tree. Also removed the removed the dead code.
(TestGroupForm.prototype.setRepetitionCount): Simply override the value of the select element.
(TestGroupForm.prototype.didConstructShadowTree): Added. Attach event handlers here to avoid eagerly
creating the shadow tree in the constructor.
(TestGroupForm.prototype.startTesting): Renamed from _submitted. Dispatch "startTesting" action instead
of invoking _startCallback which has been removed.
(TestGroupForm.htmlTemplate):
(TestGroupForm.formContent):

  • public/v3/components/test-group-results-table.js:

(TestGroupResultsTable):
(TestGroupResultsTable.prototype.didUpdateResults): Deleted. No longer neeed per setAnalysisResultsView
in ResultsTable.
(TestGroupResultsTable.prototype.setTestGroup):
(TestGroupResultsTable.prototype.heading): Deleted.
(TestGroupResultsTable.prototype.render):
(TestGroupResultsTable.prototype._renderTestGroup): Extracted from render.
(TestGroupResultsTable.prototype._buildRowGroups): Renamed from buildRowGroups.
(TestGroupResultsTable.prototype._buildRowGroupForCommitSet): Extracted from buildRowGroups.
(TestGroupResultsTable.prototype._buildComparisonRow): Extracted from buildRowGroups.buildRowGroups

  • public/v3/index.html: Include analysis-task-bug-list.js.
  • public/v3/models/analysis-results.js:

(AnalysisResults): Inverted the map so that we can easily create a view based on metric.
(AnalysisResults.prototype.find): Ditto.
(AnalysisResults.prototype.add): Ditto.
(AnalysisResults.prototype.viewForMetric): Added.
(AnalysisResults.fetch):
(AnalysisResultsView): Added.
(AnalysisResultsView.prototype.metric): Added.
(AnalysisResultsView.prototype.resultForBuildId): Added.

  • public/v3/models/build-request.js:

(BuildRequest.result): Deleted.
(BuildRequest.setResult): Deleted.

  • public/v3/models/test-group.js:

(TestGroup): Removed this._allCommitSets since it was never used.
(TestGroup.prototype.didSetResult): Deleted since it was never used.
(TestGroup.prototype.compareTestResults): Now takes an array of measurement set values.
(TestGroup.prototype._valuesForCommitSet): Deleted.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskChartPane): This class now includes the form to cutomize the revisions.
(AnalysisTaskChartPane.prototype.setShowForm): Added.
(AnalysisTaskChartPane.prototype._mainSelectionDidChange):
(AnalysisTaskChartPane.prototype.didConstructShadowTree): Added. Dispatches "newTestGroup" action when
the user presses the button to start a new A/B testing from the chart.
(AnalysisTaskChartPane.prototype.render): Added.
(AnalysisTaskChartPane.prototype.paneFooterTemplate): Added.
(AnalysisTaskChartPane.cssTemplate):

(AnalysisTaskResultsPane): Added. Encapsulates AnalysisResultsViewer and CustomizableTestGroupForm.
(AnalysisTaskResultsPane.prototype.setPoints): Added.
(AnalysisTaskResultsPane.prototype.setTestGroups): Added.
(AnalysisTaskResultsPane.prototype.setAnalysisResultsView): Added.
(AnalysisTaskResultsPane.prototype.setShowForm): Added.
(AnalysisTaskResultsPane.prototype.didConstructShadowTree): Added. Dispatches "newTestGroup" action
when the user presses the button to start a new A/B testing from the chart.
(AnalysisTaskResultsPane.prototype.render): Added.
(AnalysisTaskResultsPane.htmlTemplate): Added.
(AnalysisTaskResultsPane.cssTemplate): Added.

(AnalysisTaskTestGroupPane): Added. Encapsulates TestGroupResultsTable and CustomizableTestGroupForm.
(AnalysisTaskTestGroupPane.prototype.didConstructShadowTree): Added.
(AnalysisTaskTestGroupPane.prototype.setTestGroups): Added.
(AnalysisTaskTestGroupPane.prototype.setAnalysisResultsView): Added.
(AnalysisTaskTestGroupPane.prototype.render): Added.
(AnalysisTaskTestGroupPane.prototype._renderTestGroups): Added. Updates the list of test groups. Hide
the hidden groups unless showHiddenGroups is set. Updates this._testGroupMap so that the visibility of
groups and their names can be updated without having to re-render the entire list.
(AnalysisTaskTestGroupPane.prototype._renderTestGroupVisibility): Added.
(AnalysisTaskTestGroupPane.prototype._renderTestGroupNames): Added.
(AnalysisTaskTestGroupPane.prototype._renderCurrentTestGroup): Added. Update TestGroupResultsTable with
the selected test group. Also highlight the list view, and update the hide-unhide toggle button's label
as needed.
(AnalysisTaskTestGroupPane.htmlTemplate): Added.
(AnalysisTaskTestGroupPane.cssTemplate): Added.

(AnalysisTaskPage): Deleted a massive number of instance variables. They are now manged by newly added
AnalysisTaskChartPane, AnalysisTaskResultsPane, and AnalysisTaskTestGroupPane
(AnalysisTaskPage.prototype.didConstructShadowTree): Added. Attach various event handlers here to avoid
eagerly creating the shadow tree in the constructor.
(AnalysisTaskPage.prototype._fetchRelatedInfoForTaskId):
(AnalysisTaskPage.prototype._didFetchTask): No longer sets the value formatter to the results viewer
and the results table as they now recieve AnalysisResultsView later in _assignTestResultsIfPossible.
(AnalysisTaskPage.prototype._didFetchMeasurement): Set the metric to the results viewer.
(AnalysisTaskPage.prototype._didUpdateTestGroupHiddenState):
(AnalysisTaskPage.prototype._assignTestResultsIfPossible): Create AnalysisResultsView from the newly
retrieved AnalysisResults and pass it to AnalysisTaskResultsPane and AnalysisTaskTestGroupPane.
(AnalysisTaskPage.prototype.render): Dramatically simplified.
(AnalysisTaskPage.prototype._renderTaskNameAndStatus): Extracted from render.
(AnalysisTaskPage.prototype._renderRelatedTasks): Ditto.
(AnalysisTaskPage.prototype._renderCauseAndFixes): Ditto.
(AnalysisTaskPage.prototype._showTestGroup):
(AnalysisTaskPage.prototype._updateTaskName): Now takes the new name as an argument.
(AnalysisTaskPage.prototype._updateTestGroupName): Now takes the new name as the second argument.
(AnalysisTaskPage.prototype._hideCurrentTestGroup): Now takes the test group to hide.
(AnalysisTaskPage.prototype._associateCommit): Moved to AnalysisTaskBugList.
(AnalysisTaskPage.prototype._dissociateCommit): Ditto.
(AnalysisTaskPage.prototype._retryCurrentTestGroup): Now takes the test group as the first argument.
(AnalysisTaskPage.prototype._chartSelectionDidChange): Deleted.
(AnalysisTaskPage.prototype._createNewTestGroupFromChart): Deleted.
(AnalysisTaskPage.prototype._selectedRowInAnalysisResultsViewer): Deleted.
(AnalysisTaskPage.prototype._createNewTestGroupFromViewer): Deleted.
(AnalysisTaskPage.htmlTemplate):
(AnalysisTaskPage.cssTemplate):

  • unit-tests/test-groups-tests.js: Updated a test case which was expecting BuildReqeust's result, which

has been removed, to exist.

3:48 PM Changeset in webkit [214501] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Missing render tree position invalidation when tearing down renderers for display:contents subtree
https://bugs.webkit.org/show_bug.cgi?id=170199
<rdar://problem/31260856>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/slot-renderer-teardown.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

Invalidate the render tree position in case we do a teardown for an element without renderer.

LayoutTests:

  • fast/shadow-dom/slot-renderer-teardown-expected.txt: Added.
  • fast/shadow-dom/slot-renderer-teardown.html: Added.
3:32 PM Changeset in webkit [214500] by Ryan Haddad
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r214485.

This change caused LayoutTest crashes.

Reverted changeset:

"Stop RTCDataChannel when closing page"
https://bugs.webkit.org/show_bug.cgi?id=170166
http://trac.webkit.org/changeset/214485

3:26 PM Changeset in webkit [214499] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

ApplePayShippingContactUpdate.idl shouldn't have status field
https://bugs.webkit.org/show_bug.cgi?id=170202
rdar://problem/31307106

Reviewed by Beth Dakin.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
If status isn't set, infer it based on whether there are errors present or not.

  • Modules/applepay/ApplePayShippingContactUpdate.h:

Make status optional here; it's still used by the old code path.

  • Modules/applepay/ApplePayShippingContactUpdate.idl:

Remove status here.

3:16 PM Changeset in webkit [214498] by Yusuke Suzuki
  • 27 edits in trunk/Source/JavaScriptCore

WebAssembly: add fallback to use pinned register to load/store state
https://bugs.webkit.org/show_bug.cgi?id=169773

Reviewed by Saam Barati.

This patch adds a new pinned register to hold JSWebAssemblyInstance,
which is used to represent the context of running Wasm code.
While we use fast TLS to hold the context in macOS, we do not have
any system reserved fast TLS slot in the other systems. This pinned
register approach is used in these systems. These changes decouple
VM from Wasm module to make Wasm module position independent code.

While using fast TLS could be beneficial in x64 systems which number of
registers is relatively small, pinned register approach could be
beneficial in ARM64 which has plenty of registers. In macOS, we can
switch the implementation with the runtime flag. Thus macOS port can
compare the performance and decide which implementation is used after
landing this patch.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::offsetOfVM):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::loadWasmContext):
(JSC::AssemblyHelpers::storeWasmContext):
(JSC::AssemblyHelpers::loadWasmContextNeedsMacroScratchRegister):
(JSC::AssemblyHelpers::storeWasmContextNeedsMacroScratchRegister):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::loadWasmContext): Deleted.
(JSC::AssemblyHelpers::storeWasmContext): Deleted.
(JSC::AssemblyHelpers::loadWasmContextNeedsMacroScratchRegister): Deleted.
(JSC::AssemblyHelpers::storeWasmContextNeedsMacroScratchRegister): Deleted.

  • jit/Repatch.cpp:

(JSC::webAssemblyOwner):
(JSC::linkFor):
(JSC::linkPolymorphicCall):
(JSC::isWebAssemblyToJSCallee): Deleted.

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromWasmThunkGenerator):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • runtime/JSCell.cpp:

(JSC::JSCell::isAnyWasmCallee):

  • runtime/JSCellInlines.h:

(JSC::isWebAssemblyToJSCallee):

  • runtime/JSType.h:
  • runtime/StackFrame.cpp:

(JSC::StackFrame::functionName):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::wasmContextOffset):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::materializeWasmContext):
(JSC::Wasm::B3IRGenerator::restoreWasmContext):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::getMemoryBaseAndSize):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::loadWasmContext): Deleted.
(JSC::Wasm::storeWasmContext): Deleted.
(JSC::Wasm::restoreWebAssemblyGlobalState): Deleted.

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):

  • wasm/WasmContext.cpp:

(JSC::loadWasmContext):
(JSC::storeWasmContext):

  • wasm/WasmContext.h:
  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::getPinnedRegisters):
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::PinnedRegisterInfo::toSave):
(JSC::Wasm::useFastTLS):
(JSC::Wasm::useFastTLSForWasmContext):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::visitChildren):

  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::offsetOfCallee):

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::finishCreation):
(JSC::JSWebAssemblyModule::visitChildren):

  • wasm/js/JSWebAssemblyModule.h:

(JSC::JSWebAssemblyModule::callee):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):
(JSC::WebAssemblyFunction::create):

  • wasm/js/WebAssemblyToJSCallee.cpp:

(JSC::WebAssemblyToJSCallee::create):
(JSC::WebAssemblyToJSCallee::createStructure):
(JSC::WebAssemblyToJSCallee::finishCreation):
(JSC::WebAssemblyToJSCallee::visitChildren):
(JSC::WebAssemblyToJSCallee::destroy): Deleted.

  • wasm/js/WebAssemblyToJSCallee.h:
3:14 PM Changeset in webkit [214497] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Fix Dashboard test _presentPopoverForJavaScriptCoreTestRegressions
https://bugs.webkit.org/show_bug.cgi?id=170193

Reviewed by Alexey Proskuryakov.

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

Fixed the order of arguments.

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

Dashboard tests fails to fetch the revision from commits
https://bugs.webkit.org/show_bug.cgi?id=170191

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockTrac.js:

Added recordedCommitIndicesByRevisionNumber.

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

(setup): Populated trac.recordedCommitIndicesByRevisionNumber since the dashboard code uses this variable.

2:43 PM Changeset in webkit [214495] by timothy_horton@apple.com
  • 4 edits in trunk

Safari crashes when attempting to close tab that is displaying PDF
https://bugs.webkit.org/show_bug.cgi?id=170201
<rdar://problem/31242019>

Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _doAfterNextStablePresentationUpdate:]):
Adopt BlockPtr to fix a leak.

(-[WKWebView _firePresentationUpdateForPendingStableStatePresentationCallbacks]):
dispatch_async in the doAfterNextPresentationUpdate callback; since this
recursively calls itself, in cases where doAfterNextPresentationUpdate
returns synchronously (e.g. if the Web Process is missing), we would
recurse infinitely.

  • TestWebKitAPI/Tests/WebKit2Cocoa/DoAfterNextPresentationUpdateAfterCrash.mm:

(TEST):
Add a test for doAfterNextStablePresentationUpdate just like the existing
non-stable one.

2:41 PM Changeset in webkit [214494] by BJ Burg
  • 23 edits
    4 adds in trunk

Web Inspector: Add "Disable Caches" option that only applies to the inspected page while Web Inspector is open
https://bugs.webkit.org/show_bug.cgi?id=169865
<rdar://problem/31250573>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Network.json:

Rename the command for disabling resource caching to match the WebCore::Page
flag. This also removes the possibility that this could be confused for the old,
buggy command that this patch rips out.

Source/WebCore:

Rewrite the network agent's command for disabling resource caching to use Page::setResourceCachingEnabled.
The old implementation was doing weird stuff like setting no-cache headers and evicting the
contents of the memory cache, neither of which is correct. The new approach has no side effects
on the network, disk, or memory cache so it can be turned on temporarily without causing problems.

New tests:

  • http/tests/inspector/network/set-resource-caching-disabled-disk-cache.html
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html
  • inspector/InspectorNetworkAgent.h:
  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::setCacheDisabled): Deleted.
(WebCore::InspectorNetworkAgent::setResourceCachingDisabled): Added.
Implement new command.

(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::mainFrameNavigated):
Remove crufty attempts to break caches. I believe these are intended to defeat caching
proxies and similar middlemen, but this is just as likely to cause unusual loading behavior.

  • page/Page.h:

(WebCore::Page::isResourceCachingDisabled):
(WebCore::Page::setResourceCachingDisabledOverride):
Add an override setting so that Web Inspector's override does not mess up the value
of isResourceCachingDisabled that may have been set by a WebKit API client.

Source/WebInspectorUI:

Hook up a button in the Network tab to WebCore::Page's resourceCachingDisabled flag.
If it is active, resource loads are subject to a cache policy that never uses a cached response.

  • Localizations/en.lproj/localizedStrings.js:

Add localized strings.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
Add a setting for whether to disable resource caching and inform the backend
of our preference. If someone changes the setting, tell the backend again.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get navigationItems):
(WebInspector.NetworkGridContentView.prototype._resourceCachingDisabledSettingChanged):
(WebInspector.NetworkGridContentView.prototype._toggleDisableResourceCache):
Add a new activatable navigation item that toggles disableResourceCaching for the inspected page.

  • UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
  • Versions/Inspector-iOS-10.0.json:
  • Versions/Inspector-iOS-10.3.json:
  • Versions/Inspector-iOS-7.0.json:
  • Versions/Inspector-iOS-8.0.json:
  • Versions/Inspector-iOS-9.0.json:
  • Versions/Inspector-iOS-9.3.json:

Update legacy backend commands to remove the old/broken Network.setCacheDisabled command.

LayoutTests:

Add tests that verify the new command works as expected when it disables resource caching.
I also manually verified that the override setting is cleared when Web Inspector disconnects.
This is not easy to check in a layout test since we rely on the Web Inspector to tell whether
a load happened or not.

  • http/tests/inspector/network/set-resource-caching-disabled-disk-cache-expected.txt: Added.
  • http/tests/inspector/network/set-resource-caching-disabled-disk-cache.html: Added.
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache-expected.txt: Added.
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html: Added.
2:17 PM Changeset in webkit [214493] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Update LayoutTests/fast/mediastream/RTCPeerConnection-addIceCandidate.html to get more coverage
https://bugs.webkit.org/show_bug.cgi?id=170194

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

  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
  • fast/mediastream/RTCPeerConnection-addIceCandidate.html: Making test more robust to failures to get more coverage.
1:57 PM Changeset in webkit [214492] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

Web Inspector: Inspecting a Main Resource that is JS/JSON does not format / syntax highlight it properly
https://bugs.webkit.org/show_bug.cgi?id=166862
<rdar://problem/29835977>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-03-28
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.get syntheticMIMEType):
Don't override the mime type for Document resources. They should always
have a mime type and we should use whatever it is.

LayoutTests:

  • http/tests/inspector/network/resource-mime-type-expected.txt: Added.
  • http/tests/inspector/network/resource-mime-type.html: Added.

Test resource mime types for different resources.

  • http/tests/inspector/network/resources/json.php: Added.
  • http/tests/inspector/network/resources/script.js: Added.
  • http/tests/inspector/network/resources/script.txt: Added.
  • http/tests/inspector/network/resources/stylesheet.css: Added.
  • http/tests/inspector/network/resources/stylesheet.txt: Added.
  • http/tests/resources/square20.jpg: Added.

Resources for various requests and different mime types.

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

Mark http/tests/xmlhttprequest/simple-cross-origin-progress-events.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168132

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:40 PM Changeset in webkit [214490] by commit-queue@webkit.org
  • 4 edits in trunk

Fix addIceCandidate after r214441
https://bugs.webkit.org/show_bug.cgi?id=170146

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

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/mediastream/RTCPeerConnection.js:

(addIceCandidate): Setting function length to 1 and throwing if no parameter is passed.

1:08 PM Changeset in webkit [214489] by Yusuke Suzuki
  • 9 edits in trunk/Source

[JSC] Move platformThreadSignal to WTF
https://bugs.webkit.org/show_bug.cgi?id=170097

Reviewed by Mark Lam.

Source/JavaScriptCore:

It is a small clean up towards https://bugs.webkit.org/show_bug.cgi?id=170027.
platformThreadSignal uses PlatformThread in JSC, but it can be implemented in
WTF ThreadIdentifier.

  • runtime/JSLock.cpp:

(JSC::JSLock::lock):

  • runtime/JSLock.h:

(JSC::JSLock::ownerThread):
(JSC::JSLock::currentThreadIsHoldingLock):

  • runtime/PlatformThread.h:

(JSC::platformThreadSignal): Deleted.

  • runtime/VM.h:

(JSC::VM::ownerThread):

  • runtime/VMTraps.cpp:

(JSC::VMTraps::SignalSender::send):

Source/WTF:

  • wtf/Threading.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::signalThread):

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

Mark two fast/scrolling/ios/touch-scroll tests as failing.
https://bugs.webkit.org/show_bug.cgi?id=170153

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
12:21 PM Changeset in webkit [214487] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unable to Format JSON Request Data
https://bugs.webkit.org/show_bug.cgi?id=170189

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-03-28
Reviewed by Matt Baker.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
When we are viewing request data we are looking at a TextResourceContentView
which has a TextEditor without a delegate. In these cases we can just assume
a JavaScript Program. In the majority of cases this will typically be JSON
data, and either Program or Module will highlight and format as expected.

12:05 PM Changeset in webkit [214486] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove failure expectation for media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
12:03 PM Changeset in webkit [214485] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Stop RTCDataChannel when closing page
https://bugs.webkit.org/show_bug.cgi?id=170166

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

Source/WebCore:

Test: webrtc/datachannel/datachannel-gc.html

Making RTCDataChannel an ActiveDOMObject.
Closing the data channel backend and freeing upon close and stop.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::stop):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.h:

LayoutTests:

  • webrtc/datachannel/datachannel-gc-expected.txt: Added.
  • webrtc/datachannel/datachannel-gc.html: Added.
11:41 AM Changeset in webkit [214484] by jfbastien@apple.com
  • 4 edits
    2 adds in trunk

WebAssembly: implement Module imports/exports
https://bugs.webkit.org/show_bug.cgi?id=166982

Reviewed by Saam Barati.

JSTests:

  • wasm/js-api/Module.exports.js: Added.

(assert.throws.WebAssembly.Module.prototype.exports):
(assert.eq):

  • wasm/js-api/Module.imports.js: Added.

(assert.throws.WebAssembly.Module.prototype.imports):
(assert.eq):

Source/JavaScriptCore:

As defined in: https://github.com/WebAssembly/design/commit/18cbacb90cd3584dd5c9aa3d392e4e55f66af6ab

  • wasm/WasmFormat.h:

(JSC::Wasm::makeString): use uppercase instead, it was only used
for diagnostic but is now used for the expected JS property's
capitalization

  • wasm/js/WebAssemblyModulePrototype.cpp:

(JSC::webAssemblyModuleProtoImports):
(JSC::webAssemblyModuleProtoExports):

11:29 AM Changeset in webkit [214483] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Enhance the touch region debug overlay to show regions for the different events
https://bugs.webkit.org/show_bug.cgi?id=170162

Reviewed by Tim Horton.

Have NonFastScrollableRegionOverlay use a different color for each region in EventTrackingRegions,
and to draw a legend showing what the colors mean.

On Mac, this overlay displays the non-fast scrollable region (which we don't keep separate from the wheel event
region).

  • page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::updateRegion):
(WebCore::touchEventRegionColors):
(WebCore::drawRightAlignedText):
(WebCore::NonFastScrollableRegionOverlay::drawRect):
(WebCore::RegionOverlay::drawRect):
(WebCore::RegionOverlay::drawRegion):

11:29 AM Changeset in webkit [214482] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Make sure the non-fast scrolling debug overlay is correctly updated
https://bugs.webkit.org/show_bug.cgi?id=170142

Reviewed by Tim Horton.

AsyncScrollingCoordinator::frameViewEventTrackingRegionsChanged() is called on a timer
from Document code, so the existing DebugPageOverlays::didLayout() call at the end
of FrameView::layout() wasn't sufficient to keep the non-fast scrollable region up-to-date
on iOS.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewEventTrackingRegionsChanged):

11:27 AM Changeset in webkit [214481] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Modern Media Controls] AirPlay placard text looks bad on 1x displays
https://bugs.webkit.org/show_bug.cgi?id=170183
<rdar://problem/30663416>

Patch by Antoine Quint <Antoine Quint> on 2017-03-28
Reviewed by Dean Jackson.

Use subpixel antialiasing for all text in modern media controls.

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

(.media-controls-container,):

10:36 AM Changeset in webkit [214480] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION (r214386): [ios-simulator] LayoutTest media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html is failing
https://bugs.webkit.org/show_bug.cgi?id=170180

Unreviewed. Restore a value that was mistakenly changed in the fix for webkit.org/b/169962.

Patch by Antoine Quint <Antoine Quint> on 2017-03-28

  • media/modern-media-controls/media-controller/media-controller-scale-factor-audio-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html:
9:42 AM Changeset in webkit [214479] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/history/ios/history-scroll-restoration.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=169558

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:29 AM Changeset in webkit [214478] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html as failing on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=170180

Unreviewed test gardening.

  • platform/ios/TestExpectations:
9:12 AM Changeset in webkit [214477] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest webrtc/video-getParameters.html is failing
https://bugs.webkit.org/show_bug.cgi?id=170148

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-28

9:09 AM Changeset in webkit [214476] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark webrtc/video-replace-track-to-null.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170178

Unreviewed test gardening.

8:55 AM Changeset in webkit [214475] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Modern Media Controls] Improve appearance of tracks panel on macOS
https://bugs.webkit.org/show_bug.cgi?id=168929
<rdar://problem/30741589>

Patch by Antoine Quint <Antoine Quint> on 2017-03-28
Reviewed by Eric Carlson.

We use a solid color for the focus state that matches the style used on macOS
and blend the titles the same way we blend other non-solid labels in the controls bar.

  • Modules/modern-media-controls/controls/tracks-panel.css:

(.tracks-panel section):
(.tracks-panel section > h3):
(.tracks-panel section > ul > li:focus):

8:30 AM Changeset in webkit [214474] by Jonathan Bedard
  • 4 edits
    3 copies
    12 adds in trunk/LayoutTests

Moved gardened ios-simulator tests to ios folders
<rdar://problem/30948691>

Unreviewed test re-organization.

Moving ios-simulator test expectations to share as many expectations
as possible with on-device testing.

  • platform/ios: Moved from platform/ios-simulator.
  • platform/ios-device: Added.
  • platform/ios-device-wk1: Added.
  • platform/ios-device-wk2: Added.
  • platform/ios-simulator: Moved to platform/ios.
  • platform/ios-simulator-wk1: Moved to platform/ios-wk1.
  • platform/ios-simulator-wk2: Moved to platform/ios-wk2.
  • platform/ios-wk1: Moved from platform/ios-simulator-wk1.
  • platform/ios-wk2: Moved from platform/ios-simulator-wk2.
7:06 AM Changeset in webkit [214473] by Jonathan Bedard
  • 4 edits in trunk/Tools

webkitpy: Use host pattern for devices
https://bugs.webkit.org/show_bug.cgi?id=170121

Reviewed by Daniel Bates.

Devices should be treated like hosts throughout webkitpy
so that more code can be re-used. Add the needed properties
and use executive over custom implemented polling/killing
functions.

  • Scripts/webkitpy/port/device.py:

(Device):
(Device.executive): Add optional executive property.
(Device.filesystem): Add optional filesystem property.
(Device.user): Add optional user property.
(Device.platform): Add optional platform property.
(Device.workspace): Add optional workspace property.
(Device.poll): Deleted.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.Popen.poll): Use the devices executive.
(SimulatorProcess.stop): Ditto.
(SimulatorProcess._kill): Ditto.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.init): Add executive, filesystem, user, platform
and workspace to the platform device.
(SimulatedDevice.poll): Deleted.

4:56 AM Changeset in webkit [214472] by yoav@yoav.ws
  • 18 edits
    1 copy
    3 adds in trunk

Add a warning for unused link preloads.
https://bugs.webkit.org/show_bug.cgi?id=165670

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/tests/preload/single_download_preload_headers_charset.php

http/tests/preload/unused_preload_warning.html

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction): Stop the timer once the document is destructed.

  • loader/LinkPreloadResourceClients.h: Add shouldMarkAsReferenced overides for the LinkPreloadResourceClient classes.
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::addClientToSet): Make sure LinkPreloadResourceClients don't set resource to be referenced.

  • loader/cache/CachedResourceClient.h:

(WebCore::CachedResourceClient::shouldMarkAsReferenced): Make sure that ResourceClients mark preloads as referenced by default.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::CachedResourceLoader): Initialize timer.
(WebCore::CachedResourceLoader::~CachedResourceLoader): Stop timer.
(WebCore::CachedResourceLoader::documentDidFinishLoadEvent): Trigger a timer if preloads weren't cleared at load time.
(WebCore::CachedResourceLoader::stopUnusedPreloadsTimer): Stop the timer.
(WebCore::CachedResourceLoader::warnUnusedPreloads): Iterate over m_preloads and issue a warning for non-referenced preloads.

  • loader/cache/CachedResourceLoader.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::willDetachDocumentFromFrame): Clear Resource Timing buffer when document detaches, to avoid test flakiness.

LayoutTests:

  • TestExpectations: Added a "Failure Pass" for the flaky charset header test.
  • http/tests/preload/download_resources-expected.txt:
  • http/tests/preload/download_resources.html: Added references to preloaded resources.
  • http/tests/preload/onerror_event-expected.txt:
  • http/tests/preload/onerror_event.html: Added references to preloaded resources.
  • http/tests/preload/onload_event-expected.txt:
  • http/tests/preload/onload_event.html: Added references to preloaded resources.
  • http/tests/preload/single_download_preload.html: Deflaked.
  • http/tests/preload/single_download_preload_headers.php: Removed the charset to avoid double download bug.
  • http/tests/preload/single_download_preload_headers_charset-expected.txt: Added.
  • http/tests/preload/single_download_preload_headers_charset.php: Flaky test showing the double download bug when charset is declared.
  • http/tests/preload/unused_preload_warning-expected.txt: Added.
  • http/tests/preload/unused_preload_warning.html: Added.
3:42 AM Changeset in webkit [214471] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

REGRESSION: Double-clicking the captions button while the captions popover is open prevents the popover from being opened again
https://bugs.webkit.org/show_bug.cgi?id=170171
<rdar://problem/31095500>

Patch by Antoine Quint <Antoine Quint> on 2017-03-28
Reviewed by Dean Jackson.

Source/WebCore:

We used to consider that the tracks panel was presented as long as it had a parent, but since we were using for the animated
transition to complete before actually removing the panel from the node hierarchy, consecutive calls to hide then present
would fail to present the panel. We now use a private instance variable to track the presented state which is set immediately
as presentInParent() and hide() are called.

Test: media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button.html

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

(TracksPanel.prototype.get presented):
(TracksPanel.prototype.presentInParent):
(TracksPanel.prototype.hide):

LayoutTests:

Adding a new test that runs the steps to reproduce the issue, and rebaselining an existing one now that
the "presented" property returns false immediately after calling hide() on the panel.

  • media/modern-media-controls/tracks-panel/tracks-panel-hide-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-hide.html:
  • media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button-expected.txt: Added.
  • media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button.html: Added.
2:33 AM Changeset in webkit [214470] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Dashboard test fails with error: latestIterationGetter is not a function
https://bugs.webkit.org/show_bug.cgi?id=170167

Reviewed by Alexey Proskuryakov.

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

(this.view._latestProductiveIteration): Configure _latestProductiveIteration in setup.

12:49 AM Changeset in webkit [214469] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

AX: Media controls should be able to be re-activated after faded away
https://bugs.webkit.org/show_bug.cgi?id=170048
<rdar://problem/30157179>

Patch by Aaron Chu <aaron_chu@apple.com> on 2017-03-28
Reviewed by Antoine Quint.

Source/WebCore:

Added a "foucsin" listener for the controls bar so that when an element
within fires a "focusin" event, the controls bar reappears if it is faded.

Test: media/modern-media-controls/media-controls/media-controls-appear-when-focus.html

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

(ControlsBar.prototype.handleEvent):

LayoutTests:

  • media/modern-media-controls/media-controls/media-controls-appear-when-focus-expected.txt: Added.
  • media/modern-media-controls/media-controls/media-controls-appear-when-focus.html: Added.
12:34 AM Changeset in webkit [214468] by graouts@webkit.org
  • 11 edits
    2 copies
    17 adds in trunk

[Modern Media Controls] Improve media documents across macOS, iPhone and iPad
https://bugs.webkit.org/show_bug.cgi?id=169145
<rdar://problem/17048858>

Reviewed by Dean Jackson.

Source/WebCore:

There were a variety of issues with media documents, some longstanding, and some specifically
about modern media controls.

One issue was that fullscreen and picture-in-picture buttons would show for audio media documents,
due to using a <video> element to load the audio file. We now have additional logic in MediaController
to identify if the loaded media is really an audio file, and using this information to hide the
fullscreen and picture-in-picture buttons.

Another issue was that we would inject style in MediaDocument.cpp that was specific to modern media
controls when we could have the modern-media-controls module injected CSS handle this styling. We now
use the injected style in the shadow root to size media documents based on the device characteristics
and ensuring that page styles are overridden.

We also simplify how MediaDocument.cpp sets the source of the media element to simply use the "src"
attribute and not a <source> element.

Finally, we introduce a MediaDocumentController class that is instantiated when we're dealing with
a media document to hide the controls while we determine the type of media we're loading (audio vs.
video) in order to apply the appropriate styling without flashes.

As a result of the new styles applied by the modern-media-controls module, media documents have a
similar behavior on macOS and iPad, where we only enforce a min-width for video allowing them
to play at their natural size otherwise, and enforcing a fixed width for audio. On iPhone however,
we want to always play the media at full width, with some padding in the case of audio.

Tests: media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only.html

media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing.html
media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing.html
media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html
media/modern-media-controls/media-documents/media-document-audio-mac-sizing.html
media/modern-media-controls/media-documents/media-document-video-ios-sizing.html
media/modern-media-controls/media-documents/media-document-video-mac-sizing.html
media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only.html

  • Modules/modern-media-controls/controls/ios-inline-media-controls.css:

(:host(audio) .media-controls.ios.inline > .controls-bar:before,):
(:host(audio) .media-controls.ios.inline > .controls-bar:before): Deleted.

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

(:host(audio) .media-controls.mac.inline > .controls-bar,):
(:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint,):
(:host(audio) .media-controls.mac.inline > .controls-bar): Deleted.
(:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint): Deleted.

  • Modules/modern-media-controls/controls/media-document.css: Copied from Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.css.

(:host(.media-document)):
(:host(.media-document.ready)):
(:host(.media-document.audio.mac)):
(:host(.media-document.audio.ipad)):
(:host(.media-document.audio.iphone)):
(:host(.media-document.video.mac)):
(:host(.media-document.video.ipad)):
(:host(.media-document.video.iphone)):

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

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

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

(MediaController):
(MediaController.prototype.get isAudio):

  • Modules/modern-media-controls/media/media-document-controller.js: Copied from Source/WebCore/Modules/modern-media-controls/media/fullscreen-support.js.

(MediaDocumentController):
(MediaDocumentController.prototype.handleEvent):
(MediaDocumentController.prototype._mediaDocumentHasMetadata):
(MediaDocumentController.prototype._mediaDocumentHasSize):

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

(PiPSupport.prototype.syncControl):
(PiPSupport):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

LayoutTests:

We add new tests for media documents and related features that cover the following cases:

  • checking <video> with only audio tracks does not show the fullscreen button
  • checking <video> with only audio tracks does not show the picture-in-picture button
  • checking the size used in media documents for audio and video across macOS, iPhone and iPad
  • media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only-expected.txt: Added.
  • media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only.html: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-audio-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-audio-mac-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-audio-mac-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-video-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-video-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-video-mac-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-video-mac-sizing.html: Added.
  • media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only-expected.txt: Added.
  • media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
12:31 AM Changeset in webkit [214467] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Follow-up patch after r214364.
https://bugs.webkit.org/show_bug.cgi?id=168895

Unreviewed.

  • platform/graphics/FontDescription.cpp:

(WebCore::FontDescription::FontDescription):

Mar 27, 2017:

11:35 PM Changeset in webkit [214466] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fixes for libwebrtc logging after r214288
https://bugs.webkit.org/show_bug.cgi?id=170116

Patch by Alejandro G. Castro <alex@igalia.com> on 2017-03-27
Reviewed by Youenn Fablet.

  • Source/webrtc/base/logging.cc: Added the critical section

requirement and the call to the new getter for g_log_crit.

11:20 PM Changeset in webkit [214465] by jfbastien@apple.com
  • 2 edits
    1 move in trunk/Source/JavaScriptCore

WebAssembly: JSWebAssemblyCodeBlock.h belongs in JavaScriptCore/wasm/js not JavaScriptCore/wasm
https://bugs.webkit.org/show_bug.cgi?id=170160

Reviewed by Mark Lam.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • wasm/js/JSWebAssemblyCodeBlock.h: Renamed from Source/JavaScriptCore/wasm/JSWebAssemblyCodeBlock.h.
11:17 PM Changeset in webkit [214464] by webkit@devinrousso.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Option-clicking the close tab button should close all other tabs
https://bugs.webkit.org/show_bug.cgi?id=169046

Reviewed by Matt Baker.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype._handleClick):

10:43 PM Changeset in webkit [214463] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v8.

10:30 PM Changeset in webkit [214462] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v7.

10:19 PM Changeset in webkit [214461] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v6.

9:39 PM Changeset in webkit [214460] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Remove WebPage::m_shouldDoICECandidateFiltering
https://bugs.webkit.org/show_bug.cgi?id=170150

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

It is redundant with RTCController::m_shouldFilterICECandidates.
Manually tested on webrtc test samples.
This code path is currently untested by rwt as we hook it to getUserMedia which is mocked in rwt.
Additional testing will be added as a follow-up patch.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::disableICECandidateFiltering):
(WebKit::WebPage::enableICECandidateFiltering):

  • WebProcess/WebPage/WebPage.h:
9:08 PM Changeset in webkit [214459] by jfbastien@apple.com
  • 2 edits in trunk/Source/WebKit

make build fix for WebDefaultUIDelegate.m
https://bugs.webkit.org/show_bug.cgi?id=170163

Unreviewed build fix.

  • PlatformMac.cmake: WebDefaultUIDelegate.m was renamed
8:55 PM Changeset in webkit [214458] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v5.

8:50 PM Changeset in webkit [214457] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v4.

8:41 PM Changeset in webkit [214456] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v3.

8:06 PM Changeset in webkit [214455] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[WK2] UIKit assertion when rotating device after dismissing popover
https://bugs.webkit.org/show_bug.cgi?id=170159
<rdar://problem/31283829>

Reviewed by Tim Horton.

Ensure that when we are finished presenting a WKActionSheet, we unregister with the shared notifications center.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet dealloc]):
(-[WKActionSheet _cleanup]):
(-[WKActionSheet doneWithSheet:]):

8:05 PM Changeset in webkit [214454] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test v2.

8:03 PM Changeset in webkit [214453] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Another test.

7:53 PM Changeset in webkit [214452] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

<rdar://problem/30949128>
Update build.webkit.org to use port 16000 for PBChangeSource.

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:
7:43 PM Changeset in webkit [214451] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test commit to verify post-commit hook.

7:23 PM Changeset in webkit [214450] by commit-queue@webkit.org
  • 42 edits
    8 adds in trunk

REGRESSION(213764): Large images should not be decoded asynchronously when they are drawn on a canvas
https://bugs.webkit.org/show_bug.cgi?id=169771

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-03-27
Reviewed by Simon Fraser.

Source/WebCore:

Sometimes we have to draw the image immediately like when a canvas calls
drawImage. In this case we have to decode the image synchronously to guarantee
the drawing. Other times we need to decode with the native size of the image.
The animated images have to be decoded with native size always. Otherwise
the frame cache will be messed up if the same image is animated with different
sizes. Currently we always decode asynchronously with sizeForDrawing. We need
to decouple the decoding mode from the sizeForDrawing.

This patch introduce the DecodingOptions class which can store and compare the
following four cases:

-- Synchronous: The frame has be decoded with native size only.
-- Asynchronous + anySize: This is passed from the Image::draw() callers.
-- Asynchronous + fullSize: The image has to be decoded with its full size.
-- Asynchronous + sizeForDrawing: The image can be decoded with sizeForDrawing unless
it was decoded with either a full size or sizeForDrawing which is larger than the
requested sizeForDrawing.

A new argument of type DecodingMode will be added to Image::draw() function.
Only when the drawing comes from the render tree, it will be Asynchronous.
Otherwise it will be Synchronous.

Tests: fast/images/animated-image-different-dest-size.html

fast/images/async-image-background-image.html
fast/images/async-image-canvas-draw-image.html

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded): Gets the frame image, cache it synchronously if
the current one is invalid. frameImageAtIndex() returns whatever stored in the cache.
(WebCore::BitmapImage::nativeImage): Call frameImageAtIndexCacheIfNeeded() instead of frameImageAtIndex().
(WebCore::BitmapImage::nativeImageForCurrentFrame): Ditto.
(WebCore::BitmapImage::nativeImageOfSize): Ditto.
(WebCore::BitmapImage::framesNativeImages): Ditto.
(WebCore::BitmapImage::draw): Change the logic to do the following:
-- The animated image has to be decoded with its full size.
-- The animated image expects the current frame to be ready for drawing.
-- The large image decoding does not need to call internalStartAnimation().
-- The large image has to request async image decoding but draw the current one if it exists.
(WebCore::BitmapImage::drawPattern): Draw the pattern synchronously.
(WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImages): Delete the call to shouldUseAsyncDecodingForTesting()
since it is only applied for animated images.
(WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImages): Call shouldUseAsyncDecodingForAnimatedImageForTesting().
(WebCore::BitmapImage::internalStartAnimation): Request decoding with the full size.
(WebCore::BitmapImage::advanceAnimation): Call shouldUseAsyncDecodingForAnimatedImageForTesting().
(WebCore::BitmapImage::internalAdvanceAnimation): Assert the current frame is not being decoding asynchronously for any size.
(WebCore::BitmapImage::frameImageAtIndex): Deleted. Moved to the header file but with a new purpose: return
the current frame from the frame cache as is; do not cache a new one.
(WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImage): Deleted. Function was renamed to shouldUseAsyncDecodingForLargeImages.
(WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImage): Deleted. Function was renamed to shouldUseAsyncDecodingForAnimatedImages.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::draw): Add a new argument of type DecodingMode.

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/DecodingOptions.h: Added.

(WebCore::DecodingOptions::DecodingOptions): Default constructor: Synchronous mode.
(WebCore::DecodingOptions::operator==): Compares two DecodingOptions for equality.
(WebCore::DecodingOptions::isSynchronous): Is the frame decoded synchronously?
(WebCore::DecodingOptions::isAsynchronous): Is the frame decoded asynchronously?
(WebCore::DecodingOptions::isAsynchronousCompatibleWith): Is this DecodingOptions compatible with another one?
(WebCore::DecodingOptions::hasFullSize): Is the decoding mode asynchronous but for the image full size?
(WebCore::DecodingOptions::hasSizeForDrawing): Is this decoding mode asynchronous but for a sizeForDrawing?
(WebCore::DecodingOptions::sizeForDrawing): Returns the sizeForDrawing. m_decodingModeOrSize has to hold an IntSize.
(WebCore::DecodingOptions::maxDimension): Moved form ImageFrame.cpp.
(WebCore::DecodingOptions::has): A helper function.
(WebCore::DecodingOptions::hasDecodingMode): Does m_decodingModeOrSize a DecodingMode?
(WebCore::DecodingOptions::hasSize): Does m_decodingModeOrSize an IntSize?

  • platform/graphics/GeneratedImage.h: Add a new argument of type DecodingMode.
  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw): Ditto.

  • platform/graphics/GradientImage.h: Ditto.
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage): Pass the ImagePaintingOptions::m_DecodingMode to Image::draw().

  • platform/graphics/GraphicsContext.h:

(WebCore::ImagePaintingOptions::ImagePaintingOptions): Add a new member of type DecodingMode to ImagePaintingOptions.

  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled): Pass DecodingMode::Synchronous to Image::draw().

  • platform/graphics/Image.h: Add a new argument of type DecodingMode to Image::draw().
  • platform/graphics/ImageFrame.cpp:

(WebCore::ImageFrame::operator=): Replace m_sizeForDrawing by m_decodingOptions.
(WebCore::ImageFrame::hasNativeImage): Check if m_nativeImage is valid and the subsamplingLevels match.
(WebCore::ImageFrame::hasFullSizeNativeImage): Checks hasNativeImage() and whether the image frame was
decoded for the image full size.
(WebCore::ImageFrame::hasDecodedNativeImageCompatibleWithOptions): Checks hasNativeImage() and the DecodingOptions match.
(WebCore::maxDimension): Deleted. Moved to DecodingOptions.h.
(WebCore::ImageFrame::isBeingDecoded): Deleted. The check for having an ImageFrame being decoded is
moved to ImageFrameCache.
(WebCore::ImageFrame::hasValidNativeImage): Deleted. No need to this function.

  • platform/graphics/ImageFrame.h:

(WebCore::ImageFrame::hasNativeImage): Add an std::optional<SubsamplingLevel> argument.
(WebCore::ImageFrame::hasFullSizeNativeImage): Checks whether the ImageFrame was decoded for the image full size.
(WebCore::ImageFrame::enqueueSizeForDecoding): Deleted.
(WebCore::ImageFrame::dequeueSizeForDecoding): Deleted.
(WebCore::ImageFrame::clearSizeForDecoding): Deleted.
(WebCore::ImageFrame::isBeingDecoded): Deleted.
(WebCore::ImageFrame::sizeForDrawing): Deleted.
(WebCore::ImageFrame::hasDecodedNativeImage): Deleted.
The logic of knowing whether an ImageFrame is being decoded is moved to ImageFrameCache.

  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::cacheFrameMetadataAtIndex): Caches the metadata of an ImageFrame. If the NativeImage
was decoded for a sizeForDrawing, the size of the ImageFrame will be the nativeImageSize(). Otherwise, the
frameSizeAtIndex() will be called.
(WebCore::ImageFrameCache::cacheFrameNativeImageAtIndex): Cache a new NativeImage which involves caching new
metadata and updating the memory cache. No need to check if the existing native image is valid or not for the
DecodingOptions. Actually it would be a bug if it happens. This is why cacheNativeImageForFrameRequest() asserts
!frame.hasAsyncNativeImage() before calling cacheFrameNativeImageAtIndex().
(WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): Cache new NativeImage which was decoded asynchronously.
(WebCore::ImageFrameCache::startAsyncDecodingQueue): Call cacheAsyncFrameNativeImageAtIndex() instead of
cacheNativeImageForFrameRequest() for clarity.
(WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): Call hasAsyncNativeImage() instead of hasValidNativeImage()
Call frameIsDecodingCompatibleWithOptionsAtIndex() instead of frame.isBeingDecoded(). Replace the call to enqueueSizeForDecoding()
by appending the same ImageFrameRequest to m_frameCommitQueue.
(WebCore::ImageFrameCache::isAsyncDecodingQueueIdle): Use m_frameCommitQueue to answer the question whether the decodingQueue is idle.
(WebCore::ImageFrameCache::stopAsyncDecodingQueue): Use m_frameCommitQueue to loop through all the ImageFrames which are currently being decoded.
(WebCore::ImageFrameCache::frameAtIndexCacheIfNeeded): For getting the metadata, this function needs a valid frame. If it is requested
to decode the nativeImage, it has to do it synchronously.
(WebCore::ImageFrameCache::singlePixelSolidColor): Don't cache the frame if it is an animated image or the size is not a single pixel.
(WebCore::ImageFrameCache::frameIsBeingDecodedAndIsCompatibleWithOptionsAtIndex): Use m_frameCommitQueue to answer the question whether an ImageFrame
is being decoded and is compatible with DecodingOptions.
(WebCore::ImageFrameCache::frameHasFullSizeNativeImageAtIndex): Calls ImageFrame::hasFullNativeImage() for a frame.
(WebCore::ImageFrameCache::frameHasDecodedNativeImageCompatibleWithOptionsAtIndex): Calls ImageFrame::hasDecodedNativeImageCompatibleWithOptions() for a frame.
(WebCore::ImageFrameCache::frameImageAtIndex): Returns the current NativeImage without caching.
(WebCore::ImageFrameCache::frameImageAtIndexCacheIfNeeded): Returns the current NativeImage but cache it synchronously if needed.
(WebCore::ImageFrameCache::setFrameNativeImageAtIndex): Deleted.
(WebCore::ImageFrameCache::setFrameMetadataAtIndex): Deleted.
(WebCore::ImageFrameCache::replaceFrameNativeImageAtIndex): Deleted.
(WebCore::ImageFrameCache::frameIsBeingDecodedAtIndex): Deleted.
(WebCore::ImageFrameCache::frameHasImageAtIndex): Deleted.
(WebCore::ImageFrameCache::frameHasValidNativeImageAtIndex): Deleted.
(WebCore::ImageFrameCache::frameHasDecodedNativeImage): Deleted.

  • platform/graphics/ImageFrameCache.h: Two ImageFrameRequest queues will be used.

-- The existing one m_frameRequestQueue which is shared between the main thread and decoding thread. The requests will be
dequeued from it before starting the decoding. The decoded NativeImage will be cached only on the main thread. The decoding
thread is not blocked by the callOnMainThread(). This means there might be multiple ImageFrameRequests which were dequeued
while their NativeImages have not been cached yet.
-- A new one m_frameCommitQueue which is track all the ImageFrameRequests whose NativeImages have not been cached yet.
(WebCore::ImageFrameCache::frameAtIndexCacheIfNeeded): Be explicit about caching the image frame. frameImageAtIndex()
returns the current image frame without caching. frameAtIndexCacheIfNeeded(). returns the current image frame but cache
it if needed.
(WebCore::ImageFrameCache::ImageFrameRequest::operator==): Compares two ImageFrameRequests for equality.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::frameImageAtIndexCacheIfNeeded):
(WebCore::ImageSource::frameImageAtIndex): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::requestFrameAsyncDecodingAtIndex): Change the type of the argument from IntSize to be const std::optional<IntSize>.
(WebCore::ImageSource::frameIsBeingDecodedAndIsCompatibleWithOptionsAtIndex): Rename of frameIsBeingDecodedAtIndex(). Replace the argument of type
std::optional<IntSize> by an argument of type DecodingOptions.
(WebCore::ImageSource::frameHasFullSizeNativeImageAtIndex): A wrapper around the ImageFrameCache function.
(WebCore::ImageSource::frameHasDecodedNativeImageCompatibleWithOptionsAtIndex): Ditto.
(WebCore::ImageSource::frameImageAtIndex): Ditto.
(WebCore::ImageSource::frameIsBeingDecodedAtIndex): Deleted.
(WebCore::ImageSource::frameHasValidNativeImageAtIndex): Deleted.
(WebCore::ImageSource::frameHasDecodedNativeImage): Deleted.

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw): Add a new argument of type DecodingMode.

  • platform/graphics/NamedImageGeneratedImage.h: Ditto.
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::draw): Add a new argument of type DecodingMode.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex): Replace the sizeForDrawing argument by a DecodingMode argument. Add a new handling
for decoding asynchronously for the image full size.

  • platform/graphics/cg/ImageDecoderCG.h: Change the prototype of the function.
  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw): Add a new argument of type DecodingMode.

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize): Pass DecodingMode::Synchronous to Image::draw().
(WebCore::BitmapImage::drawFrameMatchingSourceSize): Ditto.

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex): Replace the sizeForDrawing argument by a DecodingMode argument.

  • platform/graphics/win/ImageDecoderDirect2D.h: Change the prototype of the function.
  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex): Replace the sizeForDrawing argument by a DecodingMode argument.

  • platform/image-decoders/ImageDecoder.h: Change the prototype of the function.
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended): Draw the background image asynchronously if the image size is large.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect): Draw the background image element asynchronously if the image size is large.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer): Pass DecodingMode::Synchronous to draw().
(WebCore::SVGImage::nativeImageForCurrentFrame): Ditto.
(WebCore::SVGImage::nativeImage): Ditto.
(WebCore::SVGImage::draw): Add a new argument of type DecodingMode.

  • svg/graphics/SVGImage.h: Change the prototype of the function.
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw): Add a new argument of type DecodingMode.

  • svg/graphics/SVGImageForContainer.h: Change the prototype of the function.

LayoutTests:

  • fast/images/animated-image-different-dest-size-expected.html: Added.
  • fast/images/animated-image-different-dest-size.html: Added.

This test crashes without this patch.

  • fast/images/animated-image-loop-count.html:

Clear the memory cache so the test can be not flaky. Running it with -repeat-each was failing.

  • fast/images/async-image-background-image-expected.html: Added.
  • fast/images/async-image-background-image.html: Added.

Ensures the background image can be drawn asynchronously if it is large.

  • fast/images/async-image-canvas-draw-image-expected.html: Added.
  • fast/images/async-image-canvas-draw-image.html: Added.

Ensures the image is drawn synchronously on the canvas regardless of its size.

  • fast/images/ordered-animated-image-frames.html:

Clear the memory cache so the test can be not flaky. Running it with -repeat-each was failing.

  • fast/images/reset-image-animation-expected.txt:
  • fast/images/reset-image-animation.html:

Change how the steps of the test are ordered so the test can be not flaky.
Running it with -repeat-each was failing.

  • fast/images/resources/red-green-blue-900-300.png: Added.
7:06 PM Changeset in webkit [214449] by aestes@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] Suppress page count recalc when setting a snapshot paper rect
https://bugs.webkit.org/show_bug.cgi?id=170156
<rdar://problem/30787872>

Reviewed by Tim Horton.

When _WKWebViewPrintFormatter computes a page count for snapshotting, it updates the paper
rect, which triggers UIKit to ask for the page count again while we're in the middle of
printing, putting us in a bad state.

Suppress page count recalc while setting the new paper rect, since we know this will not
cause it to change.

  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter _setSnapshotPaperRect:]): Temporarily set
_suppressPageCountRecalc to YES before updating the paper rect.
(-[_WKWebViewPrintFormatter _setNeedsRecalc]): Only call [super _setNeedsRecalc] if
_suppressPageCountRecalc is NO.

  • UIProcess/_WKWebViewPrintFormatterInternal.h: Declared -_setNeedsRecalc.
7:02 PM Changeset in webkit [214448] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[WK2] Callout Bar should be dismissed during data interaction
https://bugs.webkit.org/show_bug.cgi?id=170109
<rdar://problem/31171570>

Reviewed by Tim Horton.

Minor tweak to get the callout bar to duck during data interaction. Import a new UIKit SPI header in WebKit2.

  • Platform/spi/ios/UIKitSPI.h:
6:48 PM Changeset in webkit [214447] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test commit against new svn server.

6:31 PM Changeset in webkit [214446] by Lucas Forschler
  • 2 edits in trunk/Tools

<rdar://problem/30949128>
Update build.webkit.org to use port 16000 for PBChangeSource.

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:
5:32 PM Changeset in webkit [214445] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Activate release libwebrtc logging when WebRTC log channel is on
https://bugs.webkit.org/show_bug.cgi?id=169659

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

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::initializePeerConnectionFactoryAndThreads):

5:16 PM Changeset in webkit [214444] by Keith Rollin
  • 2 edits in trunk/Source/WebKit2

Update NetworkResourceLoader logging statement
https://bugs.webkit.org/show_bug.cgi?id=170126

Reviewed by Alex Christensen.

NetworkResourceLoader contains a logging statement that prints, in
part: "start: Retrieving resource from cache". This is misleading,
since it's not necessarily the case that the resource will be loaded
from the cache. What is actually happening at the point where that is
logged is that the cache is being checked for the resource. It still
remains to be seen if the resource will be found in it. To address
this, change the logging to say "start: Checking cache for resource".

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

5:06 PM Changeset in webkit [214443] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

Move visibleInViewportStateChanged callback from Element to render tree
https://bugs.webkit.org/show_bug.cgi?id=170039

Reviewed by Zalan Bujtas.

Make it easier to use from the render tree.

Also for simplicity move the bits from RenderObject rare data to RenderElement.
There is plenty of space there.

  • dom/Element.h:

(WebCore::Element::isVisibleInViewportChanged): Deleted.

  • html/HTMLMediaElement.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::willBeDestroyed):
(WebCore::RenderElement::registerForVisibleInViewportCallback):
(WebCore::RenderElement::unregisterForVisibleInViewportCallback):
(WebCore::RenderElement::setVisibleInViewportState):
(WebCore::RenderElement::visibleInViewportStateChanged):

  • rendering/RenderElement.h:

(WebCore::RenderElement::visibleInViewportState):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setIsRegisteredForVisibleInViewportCallback): Deleted.
(WebCore::RenderObject::setVisibleInViewportState): Deleted.

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasOutlineAutoAncestor):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
(WebCore::RenderObject::isRegisteredForVisibleInViewportCallback): Deleted.
(WebCore::RenderObject::visibleInViewportState): Deleted.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::visibleInViewportStateChanged):

  • rendering/RenderVideo.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::updateVisibleViewportRect):

4:37 PM Changeset in webkit [214442] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Web Inspector: Saving files should not suggest the top level directory
https://bugs.webkit.org/show_bug.cgi?id=170085
<rdar://problem/30197794>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-03-27
Reviewed by Matt Baker.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):
Don't set panel.directoryURL unless we have a good suggestion.

Source/WebKit2:

  • UIProcess/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformSave):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSave):
Don't set panel.directoryURL unless we have a good suggestion.

4:36 PM Changeset in webkit [214441] by commit-queue@webkit.org
  • 13 edits in trunk

addIceCandidate should not throw if passed null or undefined
https://bugs.webkit.org/show_bug.cgi?id=170118

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

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:

Source/WebCore:

Covered by updated test.

A null/undefined candidate passed to addIceCandidate means end of Ice candidate..

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addIceCandidate):

  • Modules/mediastream/PeerConnectionBackend.h:

(WebCore::PeerConnectionBackend::endOfIceCandidates):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::queuedAddIceCandidate):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnection.js:

(addIceCandidate):

LayoutTests:

Updating test to log addIceCandidate rejection.

  • webrtc/datachannel/basic.html:
  • webrtc/routines.js:

(iceCallback1):
(iceCallback2):
(onAddIceCandidateError):

4:32 PM Changeset in webkit [214440] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Add delegate method to let an WebKit client provide a custom image preview controller.
https://bugs.webkit.org/show_bug.cgi?id=170076
rdar://problem/31153051

Add a new delegate method (_webView:previewViewControllerForImage:alternateURL:defaultActions:elementInfo:) to
WKUIDelegatePrivate, an client can use this method to provide a custom image preview view controller if the image
has alternated URL or custom image info.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-03-27
Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add delegate method _webView:previewViewControllerForImage:alternateURL:defaultActions:elementInfo:.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _presentedViewControllerForPreviewItemController:]): If the image has alternated URL or custom info, try to use the client-provided

preview view controller. Otherwise, use the default WKImagePreviewViewController.

4:31 PM Changeset in webkit [214439] by webkit@devinrousso.com
  • 12 edits in trunk/Source/WebInspectorUI

Web Inspector: The inspector sidebar has weird sub-column sizing issues
https://bugs.webkit.org/show_bug.cgi?id=161966

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.resizerDragEnded):
(WebInspector.Sidebar.prototype._recalculateWidth):
Ensure that the selected sidebar panel is notified of the size change (sizeDidChange) when
the resizer drag ends.

  • UserInterface/Views/DetailsSectionDataGridRow.js:

(WebInspector.DetailsSectionDataGridRow.prototype.sizeDidChange):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection.prototype.sizeDidChange):
Add/update the sizeDidChange protected function.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.initialLayout):
(WebInspector.ComputedStyleDetailsPanel.prototype.sizeDidChange):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype.sizeDidChange):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype.sizeDidChange):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype.sizeDidChange):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WebInspector.ProbeDetailsSidebarPanel.prototype.sizeDidChange):
Update the contained DataGrid elements whenever the sidebar size changes so that the resizer
elements are positioned correctly.

  • UserInterface/Views/View.js:

(WebInspector.View.prototype.updateLayoutIfNeeded):

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
Ensure the layoutReason is also propagated.

4:24 PM Changeset in webkit [214438] by jfbastien@apple.com
  • 4 edits
    2 adds in trunk

WebAssembly: misc memory testing
https://bugs.webkit.org/show_bug.cgi?id=170137

Reviewed by Keith Miller.

JSTests:

  • wasm/assert.js: handle newlines in code we print out, avoid regex
  • wasm/function-tests/memory-import-and-grow.js: Added.

(const.instantiate):
(const.test):

  • wasm/function-tests/memory-section-and-import.js: Added.

(const.instantiate):

Source/JavaScriptCore:

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::createInstance): improve error messages

4:21 PM Changeset in webkit [214437] by Ryan Haddad
  • 1 edit
    3 adds in trunk/LayoutTests

Rebaseline svg/css/getComputedStyle-basic.xhtml for macOS.

Unreviewed test gardening.

  • platform/mac-elcapitan/svg/css/getComputedStyle-basic-expected.txt: Added.
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt: Added.
4:19 PM Changeset in webkit [214436] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Resource Details Sidebar displays previous image metrics when viewing resource where content load failed
https://bugs.webkit.org/show_bug.cgi?id=170065
<rdar://problem/27081591>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-03-27
Reviewed by Matt Baker.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.getImageSize.imageDidLoad):
(WebInspector.Resource.prototype.getImageSize.requestContentFailure):
(WebInspector.Resource.prototype.getImageSize):
If the requestContent failed, return a null image size.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection.hideImageSection):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
If the callback is called with a null size, hide the image size section.

3:56 PM Changeset in webkit [214435] by Antti Koivisto
  • 15 edits
    2 adds in trunk

Source/WebCore:
Allow the page to render before <link> stylesheet tags in body
https://bugs.webkit.org/show_bug.cgi?id=149157
<rdar://problem/24658830>

Reviewed by Simon Fraser.

Currently we block style and renderer building completely if document has any loading
stylesheets. In case a script queries something layout dependent we construct the render
tree with whatever style we have but block painting in it.

This patch changes behavior so that a loading stylesheet in body only blocks rendering for elements
that are after it. The expectation is that such stylesheets rarely affect elements before them
and the elements can be rendered without causing ugly visible styling changes.

The patch replaces the old flash-of-unstyled-content (FOUC) preventation mechanism with a more
fine-grained one. Paint blocking is now done on per-renderer basis with based on isNonFinal flag in
RenderStyle.

For stylesheets in head the behavior should be largely unchanged.

Test: http/tests/incremental/stylesheet-body-incremental-rendering.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::pseudoStyleRulesForElement):

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::resolveStyle):
(WebCore::Document::updateLayoutIgnorePendingStylesheets):

Remove the old FOUC preventation state tracking.

(WebCore::Document::shouldScheduleLayout):
(WebCore::Document::didRemoveAllPendingStylesheet):

Repaints will now get triggered by the normal style mechanism.

  • dom/Document.h:

(WebCore::Document::hasNodesWithNonFinalStyle):
(WebCore::Document::setHasNodesWithNonFinalStyle):

Track if we need to recompute the style later because non-final or unstyled elements.

(WebCore::Document::didLayoutWithPendingStylesheets): Deleted.
(WebCore::Document::hasNodesWithPlaceholderStyle): Deleted.
(WebCore::Document::setHasNodesWithPlaceholderStyle): Deleted.

  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::rendererIsNeeded):

  • page/FrameView.cpp:

(WebCore::FrameView::qualifiesAsVisuallyNonEmpty):

Don't qualify as visually non-empty if we have loading stylesheets in head (even if there is
a fouc-prevented render tree).

(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintContents):

Instead of a global test, block painting if isNonFinal is set in the renderer's style.

  • rendering/RenderLayer.cpp:

(WebCore::shouldSuppressPaintingLayer):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint):

The isNonFinal flag prevents painting so we need to trigger repaint when it gets cleared.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::isNotFinal):
(WebCore::RenderStyle::setIsNotFinal):
(WebCore::RenderStyle::isPlaceholderStyle): Deleted.
(WebCore::RenderStyle::setIsPlaceholderStyle): Deleted.

There is no need for placeholder styles anymore. Reuse the bit for isNotFinal.

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::analyzeStyleSheetChange):
(WebCore::Style::Scope::updateActiveStyleSheets):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::TreeResolver::resolveElement):

If we have seens a loading stylesheet and don't have a renderer yet don't style the element.
In case there is a renderer or we are ignoring pending sheets, resolve the style normally
but mark it as non-final.

(WebCore::Style::makePlaceholderStyle): Deleted.

LayoutTests:
Loading in-body stylesheets should not block rendering of elements before them
https://bugs.webkit.org/show_bug.cgi?id=169345

Reviewed by Simon Fraser.

  • http/tests/incremental/resources/delayed-css.php: Added.
  • http/tests/incremental/stylesheet-body-incremental-rendering-expected.html: Added.
  • http/tests/incremental/stylesheet-body-incremental-rendering.html: Added.
3:22 PM Changeset in webkit [214434] by jmarcell@apple.com
  • 4 edits in trunk/Tools

Bots should run the dashboard tests
https://bugs.webkit.org/show_bug.cgi?id=168994

Reviewed by Daniel Bates and David Kilzer.

We pull the --results-directory argument value out so that RunDashboardTests can override it so that we can separately run the dashboard layout tests.

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

(RunWebKitTests): Define a class variable called resultDirectory for the --results-directory argument so that subclasses can override this if needed.
(RunWebKitTests.start): Set the --results-directory argument value to the value of self.resultDirectory.
(RunDashboardTests): Subclass of RunWebKitTests in which we run the layout tests for the Bot Watcher's Dashboard.
(RunDashboardTests.start): Override the --layout-tests-directory to point to the dashboard layout tests.
(ExtractTestResults.addCustomURLs): Update the current results URL label to indicate that it links to layout tests results and add a new link to link to dashboard layout test results.
(TestFactory.init): Update unit tests to account for new RunDashboardTests step.

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
3:09 PM Changeset in webkit [214433] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

Test variation font ranges in the CSS Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=170022

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/text/variations/font-loading-api-parse-ranges.html

Don't use keywords when reporting font variation range values.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::fontNonKeywordWeightFromStyleValue):
(WebCore::ComputedStyleExtractor::fontWeightFromStyleValue):
(WebCore::ComputedStyleExtractor::fontNonKeywordStretchFromStyleValue):
(WebCore::ComputedStyleExtractor::fontStretchFromStyleValue):
(WebCore::ComputedStyleExtractor::fontNonKeywordStyleFromStyleValue):
(WebCore::ComputedStyleExtractor::fontStyleFromStyleValue):

  • css/CSSComputedStyleDeclaration.h:
  • css/FontFace.cpp:

(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::stretch):

LayoutTests:

  • fast/text/variations/font-loading-api-parse-ranges-expected.txt: Added.
  • fast/text/variations/font-loading-api-parse-ranges.html: Added.
2:49 PM Changeset in webkit [214432] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Look for 'ios' test expectations for IOSPorts
https://bugs.webkit.org/show_bug.cgi?id=169413

Reviewed by Alexey Proskuryakov.

Test expectations for iOS tests should include the 'ios' folder. Modify
default_baseline_search_path to include 'ios' folder and derivatives for
IOSPort.

  • Scripts/webkitpy/port/ios.py:

(IOSPort._generate_all_test_configurations): Moved from IOSSimulatorPort.
(IOSPort.default_baseline_search_path): Add ios expectations along with port specific expectations.
(IOSPort.test_expectations_file_position): Added for testing.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort._generate_all_test_configurations): Moved to IOSPort.
(IOSSimulatorPort.default_baseline_search_path): Moved to IOSPort.

2:42 PM Changeset in webkit [214431] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION: Reseting _device_map on each child process
<rdar://problem/31274476>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort): Add _DEVICE_MAP class variable.
(IOSSimulatorPort.init): Use shared class variable
(IOSSimulatorPort._device_for_worker_number_map): Use _DEVICE_MAP class variable
(IOSSimulatorPort._create_devices): Ditto.
(IOSSimulatorPort._quit_ios_simulator): Ditto.
(IOSSimulatorPort.clean_up_test_run): Ditto.

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

Propagate shipping contact update errors
https://bugs.webkit.org/show_bug.cgi?id=170141
rdar://problem/31276576

Reviewed by Tim Horton.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):

2:20 PM Changeset in webkit [214429] by Ryan Haddad
  • 11 edits
    15 deletes in trunk

Unreviewed, rolling out r214411.

Two of the LayoutTests for this change time out on ios-
simulator.

Reverted changeset:

"[Modern Media Controls] Improve media documents across macOS,
iPhone and iPad"
https://bugs.webkit.org/show_bug.cgi?id=169145
http://trac.webkit.org/changeset/214411

1:55 PM Changeset in webkit [214428] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix uses of deprecated API
https://bugs.webkit.org/show_bug.cgi?id=170138
rdar://problem/28882449

Reviewed by Tim Horton.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKContactFields):
(WebKit::toPKAddressField):
(WebKit::toPKPaymentRequest):
Don't use deprecated APIs.

(WebKit::toNSError):
Don't try to insert nil in a dictionary.

12:57 PM Changeset in webkit [214427] by achristensen@apple.com
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

Build libwebrtc with even more warnings
https://bugs.webkit.org/show_bug.cgi?id=169997

Reviewed by Tim Horton.

There are still OSAtomic* functions I don't want to worry about right now,
so I'm keeping a few -Wno-deprecated-declarations, but everything else can go.

  • Configurations/libsrtp.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
12:44 PM Changeset in webkit [214426] by graouts@webkit.org
  • 5 edits in trunk

[Modern Media Controls] Clicking on the tracks button when the tracks panel is up in a media document pauses the video
https://bugs.webkit.org/show_bug.cgi?id=168517
<rdar://problem/30577636>

Reviewed by Dean Jackson.

Source/WebCore:

We completely turn off default event handling in MediaDocument.cpp since we're implementing the
behavior we expect to pause and resume the video in the modern-media-controls module already. This
gets rid of this odd case where the content would not see the "click" event while the C++ side would
handle it and pause the video.

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

(MediaController):
(MediaController.prototype.handleEvent):
(MediaController.prototype._containerWasClicked): Deleted.

  • html/MediaDocument.cpp:

(WebCore::MediaDocument::defaultEventHandler):

LayoutTests:

  • media/video-click-dblckick-standalone.html: We disable modern-media-controls here since we know that this test won't pass with them on.
12:40 PM Changeset in webkit [214425] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/time-label/time-label-white-space-nowrap.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=169679

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:36 PM Changeset in webkit [214424] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/dom-debugger/dom-breakpoints.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170127

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:16 PM Changeset in webkit [214423] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/time-label/time-label.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=169678

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:09 PM Changeset in webkit [214422] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two modern-media-controls tests as timeouts.
https://bugs.webkit.org/show_bug.cgi?id=170123

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
11:13 AM Changeset in webkit [214421] by commit-queue@webkit.org
  • 10 edits in trunk

Tighten RTCDatachannel creation and parameter getters
https://bugs.webkit.org/show_bug.cgi?id=170081

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

Source/WebCore:

Covered by updated tests.

Adding some parameter checks when creating data channels.
Making some getters nullable as per the spec.

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createDataChannel):

  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createDataChannel):
(WebCore::LibWebRTCMediaEndpoint::addDataChannel):

  • platform/mediastream/RTCDataChannelHandler.h:

(): Deleted.

LayoutTests:

  • webrtc/datachannel/basic-expected.txt:
  • webrtc/datachannel/basic.html:
11:10 AM Changeset in webkit [214420] by commit-queue@webkit.org
  • 23 edits
    4 adds in trunk

Add support for RTCRtpReceiver/RTCRtpSender getParameters
https://bugs.webkit.org/show_bug.cgi?id=170057

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

Source/ThirdParty/libwebrtc:

  • Source/webrtc/api/mediatypes.h:

Source/WebCore:

Test: webrtc/video-getParameters.html

getParameters returns a dictionary of values taken from libwebrtc RtpReceiverInterface/RtpSenderInrterface objects.
Added a direct link between WebCore RTCRtpReceiver and libwebrtc RtpReceiverInterface object.
Making the link between WebCore RTCRtpSender and libwebrtc RtpSenderInrterface object through
PeerConnectionBackend to keep the current architecture shared with OpenWebRTC.
In the future, we should try to make the link more direct.

Added routines to support the conversion from libwebrtc to WebCore.
Ensured that RTCRtpReceiver is cleaning its backend when being stopped.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):

  • Modules/mediastream/PeerConnectionBackend.h:

(WebCore::PeerConnectionBackend::getParameters):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::doClose):
(WebCore::RTCPeerConnection::getParameters):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpParameters.h: Added.
  • Modules/mediastream/RTCRtpParameters.idl: Added.
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::RTCRtpReceiver):

  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::Backend::~Backend):
(WebCore::RTCRtpReceiver::Backend::getParameters):
(WebCore::RTCRtpReceiver::create):
(WebCore::RTCRtpReceiver::stop):
(WebCore::RTCRtpReceiver::setBackend):
(WebCore::RTCRtpReceiver::getParameters):

  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::create):
(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::replaceTrack):
(WebCore::RTCRtpSender::getParameters):

  • Modules/mediastream/RTCRtpSender.h:

(WebCore::RTCRtpSender::Backend::~Backend):
(WebCore::RTCRtpSender::isStopped):
(WebCore::RTCRtpSender::stop):

  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::OnAddTrack):
(WebCore::LibWebRTCMediaEndpoint::stop):
(WebCore::fillEncodingParameters):
(WebCore::fillHeaderExtensionParameters):
(WebCore::fillCodecParameters):
(WebCore::fillRtpParameters):
(WebCore::RTCRtpReceiverBackend::getParameters):
(WebCore::LibWebRTCMediaEndpoint::getRTCRtpSenderParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::notifyAddedTrack):
(WebCore::LibWebRTCPeerConnectionBackend::getParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:

LayoutTests:

  • webrtc/video-getParameters-expected.txt: Added.
  • webrtc/video-getParameters.html: Added.
10:50 AM Changeset in webkit [214419] by mmaxfield@apple.com
  • 17 edits in trunk

font variation properties don't need to accept numbers
https://bugs.webkit.org/show_bug.cgi?id=169357

Reviewed by Antti Koivisto.

Source/WebCore:

The CSS Fonts level 4 spec stabilized the grammar accepted by font-weight,
font-style, and font-stretch. The changes are that font-style and
font-stretch no longer accept raw numbers, and the @font-face descriptor
ranges are now separated by spaces instead of slashes.

Tests: fast/text/font-selection-font-face-parse.html

fast/text/font-selection-font-loading-api-parse.html
fast/text/font-stretch-parse.html
fast/text/font-style-parse.html
fast/text/variations/font-selection-properties.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::fontWeightFromStyleValue):
(WebCore::fontWeightFromStyle):
(WebCore::ComputedStyleExtractor::fontStretchFromStyleValue):
(WebCore::fontStretchFromStyle):
(WebCore::ComputedStyleExtractor::fontStyleFromStyleValue):
(WebCore::fontStyleFromStyle):

  • css/CSSComputedStyleDeclaration.h:
  • css/FontFace.cpp:

(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::stretch):
(WebCore::rangeIsSingleValue): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertFontStretchFromValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontWeightRange):
(WebCore::consumeFontStretch):
(WebCore::consumeFontStretchRange):
(WebCore::consumeFontStyle):
(WebCore::consumeFontStyleRange):

LayoutTests:

  • fast/text/font-selection-font-face-parse-expected.txt:
  • fast/text/font-selection-font-face-parse.html:
  • fast/text/font-selection-font-loading-api-parse-expected.txt:
  • fast/text/font-selection-font-loading-api-parse.html:
  • fast/text/font-stretch-parse-expected.txt:
  • fast/text/font-stretch-parse.html:
  • fast/text/font-style-parse-expected.txt:
  • fast/text/font-style-parse.html:
  • fast/text/variations/font-selection-properties.html:
  • platform/mac-elcapitan/fast/text/font-selection-font-face-parse-expected.txt:
10:48 AM Changeset in webkit [214418] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Further optimize checkWebRTCAvailability
https://bugs.webkit.org/show_bug.cgi?id=169147

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

Tested locally by removing libwebrtc.dylib.
Replacing dlopen check by checking an exported symbol, rtc::LogMessage::LogToDebug.
This check is more efficient and accurate. It should work in more configurations than the previous one.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::isNullFunctionPointer):
(WebCore::LibWebRTCProvider::webRTCAvailable):

10:21 AM Changeset in webkit [214417] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION: Failing to iterate over Simulator.managed_devices map
<rdar://problem/31274476>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort._create_devices): Iterate through managed_devices by worker number.

9:39 AM Changeset in webkit [214416] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add ARM64 system instructions to disassembler
https://bugs.webkit.org/show_bug.cgi?id=170084

Reviewed by Saam Barati.

This changes adds support for MRS and MSR instructions, and refactors the DMB
disassembly to handle all of the barrier instructions.

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcodeMSRImmediate::format):
(JSC::ARM64Disassembler::A64DOpcodeMSROrMRSRegister::format):
(JSC::ARM64Disassembler::A64DOpcodeSystemSync::format):
(JSC::ARM64Disassembler::A64DOpcodeDmb::format): Deleted.

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcodeSystem::lBit):
(JSC::ARM64Disassembler::A64DOpcodeSystem::op0):
(JSC::ARM64Disassembler::A64DOpcodeSystem::op1):
(JSC::ARM64Disassembler::A64DOpcodeSystem::crN):
(JSC::ARM64Disassembler::A64DOpcodeSystem::crM):
(JSC::ARM64Disassembler::A64DOpcodeSystem::op2):
(JSC::ARM64Disassembler::A64DOpcodeMSROrMRSRegister::opName):
(JSC::ARM64Disassembler::A64DOpcodeMSROrMRSRegister::systemRegister):
(JSC::ARM64Disassembler::A64DOpcodeSystemSync::opName):
(JSC::ARM64Disassembler::A64DOpcodeSystemSync::option):
(JSC::ARM64Disassembler::A64DOpcodeDmb::opName): Deleted.
(JSC::ARM64Disassembler::A64DOpcodeDmb::option): Deleted.
(JSC::ARM64Disassembler::A64DOpcodeDmb::crM): Deleted.

9:18 AM Changeset in webkit [214415] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Implement format specifier for variation fonts
https://bugs.webkit.org/show_bug.cgi?id=169327

Reviewed by Simon Fraser.

Source/WebCore:

Variation fonts require the format("woff-variations"), format("truetype-variations"),
and format("opentype-variations") format specifies in @font-face rules.

Test: fast/text/variations/font-face-format.html

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

LayoutTests:

  • fast/text/variations/font-face-format-expected.html: Added.
  • fast/text/variations/font-face-format.html: Added.
9:12 AM Changeset in webkit [214414] by mmaxfield@apple.com
  • 6 edits
    6 adds in trunk

Make sure animation works for font-weight, font-stretch, and font-style
https://bugs.webkit.org/show_bug.cgi?id=169683

Reviewed by Simon Fraser.

Source/WebCore:

Hook up animation code for FontSelectionValues.

Tests: animations/font-variations/font-stretch.html

animations/font-variations/font-style.html
animations/font-variations/font-weight.html

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontWeight):
(WebCore::RenderStyle::setFontStretch):
(WebCore::RenderStyle::setFontItalic):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontWeight):
(WebCore::RenderStyle::fontStretch):
(WebCore::RenderStyle::fontItalic):

LayoutTests:

  • animations/font-variations/font-stretch-expected.txt: Added.
  • animations/font-variations/font-stretch.html: Added.
  • animations/font-variations/font-style-expected.txt: Added.
  • animations/font-variations/font-style.html: Added.
  • animations/font-variations/font-weight-expected.txt: Added.
  • animations/font-variations/font-weight.html: Added.
  • animations/resources/animation-test-helpers.js:

(compareFontStyle):
(getPropertyValue):
(comparePropertyValue):

8:43 AM Changeset in webkit [214413] by achristensen@apple.com
  • 33 edits
    9 adds in trunk

Make WebSockets work in network process
https://bugs.webkit.org/show_bug.cgi?id=169930

Reviewed by Youenn Fablet.

Source/WebCore:

Covered by 136 existing tests in http/tests/websocket/tests/hybi
This also does fine with the 544 websocket tests in the web-platform-tests which we have not yet imported.
Also added http/tests/websocket/tests/hybi/network-process-crash-error.html
to test a new condition that couldn't happen before this move: the NetworkProcess crashing.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::fail):
We were asserting that didCloseSocketStream was called. It is still called,
but not synchronously like it used to. This assertion is now invalid, but tests
that would hit it still pass.

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::platformSendInternal):
CFWriteStreamCanAcceptBytes crashes if you give it a null parameter, and that can happen now.
If we have no write stream, then we cannot write. Tests that hit this pass still.

Source/WebKit2:

This adds WebSocketStream, which is a SocketStreamHandle that sends asynchronous
messages to a NetworkSocketStream in the NetworkProcess. WebKit1 uses a SocketStreamHandleImpl
still, but WebKit2 now has a SocketStreamHandleImpl in the NetworkProcess owned by the
NetworkSocketStream, which is a SocketStreamHandleClient that sends asynchronous messages back
to the WebProcess. WebSocketStream's implementation of SocketStreamHandle::platformSend is special
because it stores the completion handler in a map and asynchronously reports to the caller whether
it succeeded or not. If the network processes crashes before the completion handlers are called,
then they are called indicating failure and an error is reported, but that never happens, right?

  • CMakeLists.txt:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::createSocketStream):
(WebKit::NetworkConnectionToWebProcess::destroySocketStream):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setAllowsAnySSLCertificateForWebSocket):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSocketStream.cpp: Added.

(WebKit::NetworkSocketStream::create):
(WebKit::NetworkSocketStream::NetworkSocketStream):
(WebKit::NetworkSocketStream::sendData):
(WebKit::NetworkSocketStream::close):
(WebKit::NetworkSocketStream::didOpenSocketStream):
(WebKit::NetworkSocketStream::didCloseSocketStream):
(WebKit::NetworkSocketStream::didReceiveSocketStreamData):
(WebKit::NetworkSocketStream::didFailToReceiveSocketStreamData):
(WebKit::NetworkSocketStream::didUpdateBufferedAmount):
(WebKit::NetworkSocketStream::didFailSocketStream):
(WebKit::NetworkSocketStream::messageSenderConnection):
(WebKit::NetworkSocketStream::messageSenderDestinationID):

  • NetworkProcess/NetworkSocketStream.h: Added.
  • NetworkProcess/NetworkSocketStream.messages.in: Added.
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetAllowsAnySSLCertificateForWebSocketTesting):
(WKContextTerminateNetworkProcess):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::sendSyncToNetworkingProcess):
(WebKit::WebProcessPool::setAllowsAnySSLCertificateForWebSocket):
(WebKit::WebProcessPool::terminateNetworkProcess):

  • UIProcess/WebProcessPool.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createSocketStreamHandle):

  • WebProcess/Network/WebSocketStream.cpp: Added.

(WebKit::globalWebSocketStreamMap):
(WebKit::WebSocketStream::streamWithIdentifier):
(WebKit::WebSocketStream::networkProcessCrashed):
(WebKit::WebSocketStream::create):
(WebKit::WebSocketStream::WebSocketStream):
(WebKit::WebSocketStream::~WebSocketStream):
(WebKit::WebSocketStream::messageSenderConnection):
(WebKit::WebSocketStream::messageSenderDestinationID):
(WebKit::WebSocketStream::platformSend):
(WebKit::WebSocketStream::didSendData):
(WebKit::WebSocketStream::platformClose):
(WebKit::WebSocketStream::bufferedAmount):
(WebKit::WebSocketStream::didOpenSocketStream):
(WebKit::WebSocketStream::didCloseSocketStream):
(WebKit::WebSocketStream::didReceiveSocketStreamData):
(WebKit::WebSocketStream::didFailToReceiveSocketStreamData):
(WebKit::WebSocketStream::didUpdateBufferedAmount):
(WebKit::WebSocketStream::didFailSocketStream):

  • WebProcess/Network/WebSocketStream.h: Added.
  • WebProcess/Network/WebSocketStream.messages.in: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

Add terminateNetworkProcess for the new test
http/tests/websocket/tests/hybi/network-process-crash-error.html

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setAllowsAnySSLCertificate):
(WTR::TestRunner::terminateNetworkProcess):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setAllowsAnySSLCertificate):
(WTR::TestController::terminateNetworkProcess):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformContext):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformContext):
(WTR::TestController::platformLibraryPathForTesting):
Add some infrastructure for http/tests/websocket/tests/hybi/simple-wss.html
which calls testRunner.setAllowsAnySSLCertificate. It used to only be effective
for the WebProcess, but SocketStreamHandleImpl::createStreams is now in the NetworkProcess,
and we need its call to Settings::allowsAnySSLCertificate to be loosened for this test,
which tests that wss works, but our test certificate has an invalid certificate chain.
We want production software to not have the ability to have its security weakened, so this
is a test code path that is only implemented in WebKitTestRunner.

LayoutTests:

  • http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt: Added.
  • http/tests/websocket/tests/hybi/network-process-crash-error.html: Added.
  • http/tests/websocket/tests/hybi/slow-reply_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
6:38 AM Changeset in webkit [214412] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[GTK] NetscapePluginX11::m_windowID is unused/unneeded
https://bugs.webkit.org/show_bug.cgi?id=170115

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-03-27
Reviewed by Michael Catanzaro.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePluginX11::NetscapePluginX11):
Remove the unneeded NetscapePluginX11::m_windowID member.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.h:

Remove the unneeded NetscapePluginX11::m_windowID member.

2:37 AM Changeset in webkit [214411] by commit-queue@webkit.org
  • 11 edits
    2 copies
    17 adds in trunk

[Modern Media Controls] Improve media documents across macOS, iPhone and iPad
https://bugs.webkit.org/show_bug.cgi?id=169145
<rdar://problem/17048858>

Patch by Antoine Quint <Antoine Quint> on 2017-03-27
Reviewed by Dean Jackson.

Source/WebCore:

There were a variety of issues with media documents, some longstanding, and some specifically
about modern media controls.

One issue was that fullscreen and picture-in-picture buttons would show for audio media documents,
due to using a <video> element to load the audio file. We now have additional logic in MediaController
to identify if the loaded media is really an audio file, and using this information to hide the
fullscreen and picture-in-picture buttons.

Another issue was that we would inject style in MediaDocument.cpp that was specific to modern media
controls when we could have the modern-media-controls module injected CSS handle this styling. We now
use the injected style in the shadow root to size media documents based on the device characteristics
and ensuring that page styles are overridden.

We also simplify how MediaDocument.cpp sets the source of the media element to simply use the "src"
attribute and not a <source> element.

Finally, we introduce a MediaDocumentController class that is instantiated when we're dealing with
a media document to hide the controls while we determine the type of media we're loading (audio vs.
video) in order to apply the appropriate styling without flashes.

As a result of the new styles applied by the modern-media-controls module, media documents have a
similar behavior on macOS and iPad, where we only enforce a min-width for video allowing them
to play at their natural size otherwise, and enforcing a fixed width for audio. On iPhone however,
we want to always play the media at full width, with some padding in the case of audio.

Tests: media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only.html

media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing.html
media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing.html
media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html
media/modern-media-controls/media-documents/media-document-audio-mac-sizing.html
media/modern-media-controls/media-documents/media-document-video-ios-sizing.html
media/modern-media-controls/media-documents/media-document-video-mac-sizing.html
media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only.html

  • Modules/modern-media-controls/controls/ios-inline-media-controls.css:

(:host(audio) .media-controls.ios.inline > .controls-bar:before,):
(:host(audio) .media-controls.ios.inline > .controls-bar:before): Deleted.

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

(:host(audio) .media-controls.mac.inline > .controls-bar,):
(:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint,):
(:host(audio) .media-controls.mac.inline > .controls-bar): Deleted.
(:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint): Deleted.

  • Modules/modern-media-controls/controls/media-document.css: Added.

(:host(.media-document)):
(:host(.media-document.ready)):
(:host(.media-document.audio.mac)):
(:host(.media-document.audio.ipad)):
(:host(.media-document.audio.iphone)):
(:host(.media-document.video.mac)):
(:host(.media-document.video.ipad)):
(:host(.media-document.video.iphone)):

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

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

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

(MediaController):
(MediaController.prototype.get isAudio):

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

(MediaDocumentController):
(MediaDocumentController.prototype.handleEvent):
(MediaDocumentController.prototype._mediaDocumentHasMetadata):
(MediaDocumentController.prototype._mediaDocumentHasSize):

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

(PiPSupport.prototype.syncControl):
(PiPSupport):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

LayoutTests:

We add new tests for media documents and related features that cover the following cases:

  • checking <video> with only audio tracks does not show the fullscreen button
  • checking <video> with only audio tracks does not show the picture-in-picture button
  • checking the size used in media documents for audio and video across macOS, iPhone and iPad
  • media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only-expected.txt: Added.
  • media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only.html: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-audio-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-audio-mac-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-audio-mac-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-video-ios-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-video-ios-sizing.html: Added.
  • media/modern-media-controls/media-documents/media-document-video-mac-sizing-expected.txt: Added.
  • media/modern-media-controls/media-documents/media-document-video-mac-sizing.html: Added.
  • media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only-expected.txt: Added.
  • media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
Note: See TracTimeline for information about the timeline view.