Timeline



Feb 5, 2018:

10:50 PM Changeset in webkit [228152] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Avoid unnecessarily constructing RunLoops for GC AutomaticThreads in Connection::sendMessage() after r228001
https://bugs.webkit.org/show_bug.cgi?id=182494
<rdar://problem/37147632>

Reviewed by Ryosuke Niwa.

Somebody fixed a GC crash in r228001 by allowing RunLoop::current() to be called from a
GC thread. However, this is still unnecessarily inefficient. Calling RunLoop::current()
will construct RunLoops for background GC threads (WTF::AutomaticThreads). This patches
updates the IPC code to call isMainThread() instead of RunLoop::isMain() in
Connection::sendMessage(). This should mean the same thing since this code runs in
WebKit2 and should be more efficient as it ends up simply calling pthread_main_np(),
without constructing a RunLoop.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):

9:00 PM Changeset in webkit [228151] by rniwa@webkit.org
  • 7 edits in trunk/Source

Release assertion in inlineVideoFrame
https://bugs.webkit.org/show_bug.cgi?id=182513
<rdar://problem/37159363>

Reviewed by Zalan Bujtas.

Source/WebCore:

The bug was caused by the fact it's not always safe to invoke updateLayout even when isSafeToUpdateStyleOrLayout
on a document of a flattened frame on iOS. isSafeToUpdateStyleOrLayout returns true when the frame view is in
the frame-flattening mode to avoid hitting a release asssertion in updateLayout of the frame. However, it's still
not safe to invoke updateLayout on a parent frame in this case.

As a result, inlineVideoFrame (in Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm) invokes updateLayout
even when the top-level document is not safe to update when the video element is in a frame-flattened document.

Fixed this bug by explicitly checking that we still have a live render tree and document hasn't been stopped.
Also replaced other uses of isSafeToUpdateStyleOrLayout by more explicit checks.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::updateBackingStore): Made the early exit condition added in r227006 more explicit.
Namely, InspectorDOMAgent::pseudoElementCreated is invoked during style recalc.

  • dom/Document.cpp:

(WebCore::isSafeToUpdateStyleOrLayout): Made this local to the file.
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayout):

  • dom/Document.h:
  • html/MediaElementSession.cpp:

(WebCore::isMainContentForPurposesOfAutoplay): Made the early exit condition added in r227529 more explicit. Don't
update the layout when the render tree had been destroyed or the active DOM objects had been stopped.

Source/WebKit:

Fixed the bug. Don't try to update the layout when there is no live render tree or active DOM objects
had been stopped: i.e. during a document destruction.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::inlineVideoFrame):

7:57 PM Changeset in webkit [228150] by commit-queue@webkit.org
  • 4 edits in trunk

Crash in imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html
https://bugs.webkit.org/show_bug.cgi?id=182422
<rdar://problem/37182665>

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

Source/WebCore:

Covered by test no longer crashing in Debug mode.
Make sure completionHandler is called on the main thread.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):

LayoutTests:

  • platform/mac/TestExpectations:
7:50 PM Changeset in webkit [228149] by fpizlo@apple.com
  • 28 edits
    5 adds in trunk/Source

Global objects should be able to use TLCs to allocate from different blocks from each other
https://bugs.webkit.org/show_bug.cgi?id=182227

Source/JavaScriptCore:

Reviewed by JF Bastien.

This uses TLCs to create at least minimumDistanceBetweenCellsFromDifferenOrigins bytes of
distance between objects from different origins, using the following combination of things. For
short lets refer to that constant as K.

  • Since r227721, LargeAllocation puts K bytes padding at the end of each allocation.


  • Since r227718, MarkedBlock puts at least K bytes in its footer.


  • Since r227617, global objects can have their own TLCs, which make them allocate from a different set of blocks than other global objects. The TLC of a global object comes into effect when you enter the VM via that global object.


  • With this change, TLCs and blocks both have security origins. A TLC will only use blocks that share the same security origin or empty blocks (in which case we zero the block and change its security origin).


WebCore determines the TLC-GlobalObject mapping. By default, global objects would simply use
the VM's default TLC. WebCore makes it so that DOM windows (but not worker global objects) get
a TLC based on their document's SecurityOrigin.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::findBlockForAllocation):
(JSC::BlockDirectory::prepareForAllocation):

  • heap/BlockDirectory.h:
  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::LocalAllocator):
(JSC::LocalAllocator::reset):
(JSC::LocalAllocator::~LocalAllocator):
(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::tryAllocateWithoutCollecting):

  • heap/LocalAllocator.h:

(JSC::LocalAllocator::tlc const):

  • heap/MarkStackMergingConstraint.cpp:
  • heap/MarkStackMergingConstraint.h:
  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::associateWithOrigin):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::securityOriginToken const):

  • heap/SecurityOriginToken.cpp: Added.

(JSC::uniqueSecurityOriginToken):

  • heap/SecurityOriginToken.h: Added.
  • heap/ThreadLocalCache.cpp:

(JSC::ThreadLocalCache::create):
(JSC::ThreadLocalCache::ThreadLocalCache):
(JSC::ThreadLocalCache::allocateData):
(JSC::ThreadLocalCache::installSlow):

  • heap/ThreadLocalCache.h:

(JSC::ThreadLocalCache::securityOriginToken const):

  • heap/ThreadLocalCacheInlines.h:

(JSC::ThreadLocalCache::install):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::createThreadLocalCache):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::threadLocalCache):
(JSC::JSGlobalObject::threadLocalCache const): Deleted.

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):

  • runtime/VMEntryScope.h:

Source/WebCore:

Reviewed by Daniel Bates and Chris Dumez.

No new tests because no change in behavior.

Adopt JSC TLC API to put distance between objects from different security origins. WebCore has
a subclass of ThreadLocalCache that supports hash-consing based on the relevant origin data
using the existing SecurityOriginHash. It's Document's job to initiate this, but all of the
logic is in WebCore::OriginThreadLocalCache.

Workers don't opt into this. They just get the VM's default TLC all the time.

  • ForwardingHeaders/heap/ThreadLocalCache.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::JSDOMGlobalObject):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::JSDOMWindowBase):

  • dom/Document.cpp:

(WebCore::Document::initSecurityContext):
(WebCore::Document::threadLocalCache):

  • dom/Document.h:
  • page/OriginThreadLocalCache.cpp: Added.

(WebCore::threadLocalCacheMap):
(WebCore::OriginThreadLocalCache::create):
(WebCore::OriginThreadLocalCache::~OriginThreadLocalCache):
(WebCore::OriginThreadLocalCache::OriginThreadLocalCache):

  • page/OriginThreadLocalCache.h: Added.
  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::passesFileCheck const):
(WebCore::SecurityOrigin::setEnforcesFilePathSeparation):
(WebCore::SecurityOrigin::toString const):
(WebCore::SecurityOrigin::enforceFilePathSeparation): Deleted.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::enforcesFilePathSeparation const):

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

[WinCairo] Refine WebKitLegacy and WebKit build for wincairo
https://bugs.webkit.org/show_bug.cgi?id=182478

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2018-02-05
Reviewed by Alex Christensen.

.:

  • Source/cmake/OptionsWinCairo.cmake: Added a ENABLE_WIN_CAIRO_WEBKIT option to build webkit for wincairo.

Source/WebKit:

Fixed a typo of forwarding header path for InjectedBundle and copying header
method, which should use FLATTENED.

  • PlatformWin.cmake: Fix a typo of a forwarding header path for InjectedBundle and use FLATTENED.

Tools:

For TestWebKitAPI, sources related to WebKitLegacy are built
at WebKit build. Those files should be reffered for WebKitLegacy build.

  • TestWebKitAPI/PlatformWin.cmake:
6:27 PM Changeset in webkit [228147] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

Test gardening after r228044
https://bugs.webkit.org/show_bug.cgi?id=182517

Unreviewed.

  • platform/ios/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-sunken-expected.txt:
5:44 PM Changeset in webkit [228146] by Simon Fraser
  • 3 edits in trunk/LayoutTests

iOS WK2: fast/visual-viewport/resize-event-fired.html crashes with GuardMalloc
https://bugs.webkit.org/show_bug.cgi?id=182504
rdar://problem/36386435

Reviewed by Wenson Hsieh.

Don't end the test until both the resize handler has been called, and the zoom is complete, to
avoid leaving dangling zoom completion handlers.

  • fast/visual-viewport/resize-event-fired.html:
  • platform/ios/TestExpectations:
5:29 PM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
5:28 PM Changeset in webkit [228145] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Apply patch. rdar://problem/37145473

Temporarily replace RELEASE_ASSERT with ASSERT in FrameLoader::stopAllLoaders.

5:21 PM Changeset in webkit [228144] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed, fix build using the new ENABLE_ADDRESS_SANITIZER option
https://bugs.webkit.org/show_bug.cgi?id=182400
<rdar://problem/37252242>

I failed to properly test a last-minute change.

  • Source/cmake/WebKitCompilerFlags.cmake:
4:59 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:53 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:49 PM Changeset in webkit [228143] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Release assert failed under NetworkStateNotifier::singleton.
https://bugs.webkit.org/show_bug.cgi?id=182516

Reviewed by Brent Fulgham.

The callback NetworkStateNotifier::addressChangeCallback will always be called on a
worker thread on Windows. Since the method NetworkStateNotifier::singleton() is
called by NetworkStateNotifier::addressChangeCallback, but has to be called on the
on the main thread, the call has to be moved there.

No new tests. I have not been able to reproduce the crash.

  • platform/network/win/NetworkStateNotifierWin.cpp:

(WebCore::NetworkStateNotifier::addressChangeCallback):

4:48 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:43 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:40 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:38 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:36 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:33 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:32 PM Changeset in webkit [228142] by jmarcell@apple.com
  • 2 edits in tags/Safari-605.1.26.1/Source/WebKit

Cherry-pick r228135. rdar://problem/37232614

4:29 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:28 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:23 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:20 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:16 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:16 PM Changeset in webkit [228141] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-605-branch

Cherry-pick r228096. rdar://problem/37240973

4:16 PM Changeset in webkit [228140] by jmarcell@apple.com
  • 9 edits in branches/safari-605-branch

Cherry-pick r227989. rdar://problem/37145565

4:15 PM Changeset in webkit [228139] by jmarcell@apple.com
  • 11 edits in branches/safari-605-branch/Source

Cherry-pick r227350. rdar://problem/37243993

4:15 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:07 PM cross-ldd attached to JSCOnly/CrossBuildAndRemoteTestJSCLinux by clopez@igalia.com
cross-ldd script
4:07 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:06 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
4:05 PM JSCOnly/CrossBuildAndRemoteTestJSCLinux edited by clopez@igalia.com
(diff)
3:38 PM Changeset in webkit [228138] by jmarcell@apple.com
  • 2 edits in tags/Safari-605.1.26.0.1/Source/WebKit

Cherry-pick r228135. rdar://problem/37232614

3:36 PM Changeset in webkit [228137] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebsiteDataStore::resolveDirectoriesIfNecessary() should not overwrite its resolved serviceWorkerRegistrationDirectory if already set
https://bugs.webkit.org/show_bug.cgi?id=182514

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-05
Reviewed by Chris Dumez.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):

3:31 PM Changeset in webkit [228136] by Konstantin Tokarev
  • 2 edits in trunk/Source/WTF

[cmake] Fix build with ICU configured without collation support
https://bugs.webkit.org/show_bug.cgi?id=182498

Reviewed by Alex Christensen.

WebKit has CollatorDefault.cpp providing necessary stubs when
UCONFIG_NO_COLLATION is defined, however it is not included in cmake
file list.

  • wtf/CMakeLists.txt:
3:31 PM Changeset in webkit [228135] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Storage process is using the wrong sandbox profile filename
https://bugs.webkit.org/show_bug.cgi?id=182500
<rdar://problem/37232614>

Reviewed by David Kilzer.

The iOS entitlements file was still referencing the old Databases sandbox profile, even though the
process has been renamed 'Storage'.

  • Configurations/Databases-iOS.entitlements:
3:23 PM Changeset in webkit [228134] by Michael Catanzaro
  • 3 edits in trunk

[CMake] Add ENABLE_ADDRESS_SANITIZER to make it easier to build with asan support
https://bugs.webkit.org/show_bug.cgi?id=182400

Reviewed by Konstantin Tokarev.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitCompilerFlags.cmake:
3:10 PM Changeset in webkit [228133] by dbates@webkit.org
  • 5 edits in trunk/Tools

REGRESSION (r217572): run-webkit-tests exits without emitting newline character
https://bugs.webkit.org/show_bug.cgi?id=182360

Rubber-stamped by Aakash Jain.

Fixes an annoyance where run-webkit-tests always exits without printing a newline character.
In the terminal this looks like:

$ Tools/Scripts/run-webkit-tests
Expected to fail, but passed: (7)
...
Stopping WebSocket server ...$

This bug was caused by code added in r217572 to stop all run-webkit-tests started servers (e.g. an HTTP
server) from an at-exit handler. When run-webkit-tests runs successfully (i.e. without error or
control-C interruption) we would stop all such servers twice: once as part of ending the test
run and once from the at-exit handler. The latter never prints a trailing newline character hence
the state of the terminal (as depicted above). Instead LayoutTestRunner.stop_servers() should only
stop servers that it started in LayoutTestRunner.start_servers().

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

(LayoutTestRunner.init):
(LayoutTestRunner.start_servers):
(LayoutTestRunner.stop_servers):
Only start servers that run-webkit-tests has not already started and only stop servers that
run-webkit-tests started.

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

(LayoutTestRunnerTests.test_servers_started.is_websocket_server_running):
(LayoutTestRunnerTests.test_servers_started):
(LayoutTestRunnerTests.test_servers_started.is_websocket_servers_running): Deleted.
Update due to rename below.

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

(is_web_socket_server_running): Added.
(PyWebSocket.is_running): Deleted.

  • Scripts/webkitpy/port/base.py:

(Port.is_http_server_running): Check if we already started the server ourself.
(Port.is_websocket_server_running): Formerly named is_websocket_servers_running. Modified
to check if we already started the server ourself. Take a similar approach as the other
Port.is_*_running methods and only check if an existing WebSocket server is running on the
non-secure server port. This is a simple heuristic and should be sufficient in practice.
(Port.is_wpt_server_running): Check if we already started the server ourself.
(Port.is_websocket_servers_running): Deleted; renamed to is_websocket_server_running().

2:56 PM Changeset in webkit [228132] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.1.26.1/Source

Versioning.

2:54 PM Changeset in webkit [228131] by dbates@webkit.org
  • 4 edits in trunk/Tools

prepare-ChangeLog gets confused about Python docstrings that contain the word "class" or "def"
https://bugs.webkit.org/show_bug.cgi?id=182405

Reviewed by David Kilzer.

String literal statements, including docstrings, do not demarcate a new scope in Python.
So, do not treat them like they do when building up the list of modified functions.

  • Scripts/prepare-ChangeLog:

(get_function_line_ranges_for_python):

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests-expected.txt:

The expected ending line number for the last "pass" statement inside the scope of Class5 changed
from 97 to 98 because empty lines do not effect scope. This is consistent with the parsing
of the second "pass" statement in the scope of class Class5. A "pass" is a null operation that
is used as a syntactic placeholder when a statement is required. Ideally we would make
the parsing code smarter so as to avoid emitting ranges for "pass" statements that serve
not syntactic purpose.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests.py:

(Class5):
(Class6):
(Class6.init):
(Class7):
(Class7.init):
(Class8):
(Class8.init):
Add some more tests.

2:42 PM Changeset in webkit [228130] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.1.26.0.1/Source

Versioning.

2:37 PM Changeset in webkit [228129] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add an experimental setting to enable Sources tab
https://bugs.webkit.org/show_bug.cgi?id=182461

Reviewed by Brian Burg.

This patch only adds a setting. It doesn't add the Sources tab.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:
2:33 PM Changeset in webkit [228128] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.26.0.1

New tag.

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

New tag.

2:19 PM Changeset in webkit [228126] by Michael Catanzaro
  • 3 edits in trunk/Source/ThirdParty

Unreviewed, silence -Wimplicit-fallthrough in openvr
https://bugs.webkit.org/show_bug.cgi?id=182117

  • openvr/patches/cmake-build.patch:
  • openvr/src/CMakeLists.txt:
2:13 PM Changeset in webkit [228125] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebKit

Add DoNotProcessIncomingMessagesWhenWaitingForSyncReply to GetPlugins and RootViewToScreen
https://bugs.webkit.org/show_bug.cgi?id=182458

Reviewed by Chris Dumez.

Added DoNotProcessIncomingMessagesWhenWaitingForSyncReply to GetPlugins and RootViewToScreen
which are found to get sent from WebContent process while ScriptDisallowedScope is present
by a work-in-progress patch on webkit.org/b/182449.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::populatePluginCache):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::rootViewToScreen):

2:10 PM Changeset in webkit [228124] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Abstract heap generator should include JavaScriptCore headers directly
https://bugs.webkit.org/show_bug.cgi?id=182501

Reviewed by Alex Christensen.

No new tests. No change in behavior.

  • domjit/generate-abstract-heap.rb:
2:00 PM Changeset in webkit [228123] by Matt Lewis
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r227964 and r228087.
https://bugs.webkit.org/show_bug.cgi?id=182508

These introduced an API test failure with
URLTest.HostIsIPAddress alongside commit r228086 (Requested by
mlewis13 on #webkit).

Reverted changesets:

"[SOUP] Ensure domain is valid when converting a WebCore
Cookie to Soup"
https://bugs.webkit.org/show_bug.cgi?id=182328
https://trac.webkit.org/changeset/227964

"WebDriver: addCookie command should prepend a dot to domain
if missing"
https://bugs.webkit.org/show_bug.cgi?id=182328
https://trac.webkit.org/changeset/228087

Patch by Commit Queue <commit-queue@webkit.org> on 2018-02-05

1:45 PM Changeset in webkit [228122] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.3.2/Source

Versioning.

1:44 PM Changeset in webkit [228121] by Wenson Hsieh
  • 8 edits
    4 adds in trunk/Source

[Extra zoom mode] Implement number pad UI when editing tel and number inputs
https://bugs.webkit.org/show_bug.cgi?id=182472
<rdar://problem/35143057>

Reviewed by Tim Horton.

Source/WebCore:

Adds a localized string for the "Done" button text in extra zoomed form controls.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::formControlDoneButtonTitle):

  • platform/LocalizedStrings.h:

Source/WebKit:

Allows the user to edit numeric input types using a number pad. See below comments for more detail.

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

(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingNode]):

Dismiss the number pad, if it is present.

(-[WKContentView dismissNumberPadViewController:]):
(-[WKContentView presentNumberPadViewController:]):

Add new helpers for showing and hiding the number pad view controller.

(-[WKContentView presentViewControllerForAssistedNode:]):
(-[WKContentView textInputController:didRequestDismissalWithAction:]):

Dismiss the number pad, if it is present.

(-[WKContentView focusedFormControlControllerDidBeginEditing:]):
(-[WKContentView shouldPresentTextInputViewController:]): Deleted.

Remove -shouldPresentTextInputViewController and replace it with -presentViewControllerForAssistedNode:, which
presents the appropriate view controller given "assisted" node information.

  • UIProcess/ios/forms/WKNumberPadView.h: Added.
  • UIProcess/ios/forms/WKNumberPadView.mm: Added.
  • UIProcess/ios/forms/WKNumberPadViewController.h: Added.
  • UIProcess/ios/forms/WKNumberPadViewController.mm: Added.

Add "WebKitAdditions harness" files for the new number pad view and view controller classes.

  • WebKit.xcodeproj/project.pbxproj:
1:42 PM Changeset in webkit [228120] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.3.2

New tag.

1:41 PM Changeset in webkit [228119] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for r228115, simple naming issue succeeded —> success.
https://bugs.webkit.org/show_bug.cgi?id=182507
<rdar://problem/37248566>

Reviewed by Eric Carlson.

No new tests. Build fix.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):

succeeded —> success

1:36 PM Changeset in webkit [228118] by Matt Lewis
  • 10 edits in trunk

Unreviewed, rolling out r228086.

This introduced a failure with API test
URLTest.HostIsIPAddress.

Reverted changeset:

"Add a way to check if a host is an IP address"
https://bugs.webkit.org/show_bug.cgi?id=182427
https://trac.webkit.org/changeset/228086

1:17 PM Changeset in webkit [228117] by Matt Lewis
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r228103.

This caused multiple tests to crash.

Reverted changeset:

"Use downcast in createLinkPreloadResourceClient"
https://bugs.webkit.org/show_bug.cgi?id=182488
https://trac.webkit.org/changeset/228103

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

Add logging to CacheStorageEngineConnection
https://bugs.webkit.org/show_bug.cgi?id=182456

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-05
Reviewed by Chris Dumez.

  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:

(WebKit::CacheStorageEngineConnection::open):
(WebKit::CacheStorageEngineConnection::remove):
(WebKit::CacheStorageEngineConnection::caches):
(WebKit::CacheStorageEngineConnection::retrieveRecords):
(WebKit::CacheStorageEngineConnection::deleteMatchingRecords):
(WebKit::CacheStorageEngineConnection::putRecords):
(WebKit::CacheStorageEngineConnection::reference):
(WebKit::CacheStorageEngineConnection::dereference):

  • Platform/Logging.h:
12:58 PM Changeset in webkit [228115] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] VideoFullscreenInterfaceAVKit should not ignore errors
https://bugs.webkit.org/show_bug.cgi?id=182497
<rdar://problem/36986898>

Reviewed by Jer Noble.

Always call layoutIfNeeded before calling -[AVPlayerViewController enterFullScreenAnimated:completionHandler]
or -[AVPlayerViewController exitFullScreenAnimated:completionHandler] because they both fail
if the view needs layout. Also don't ignore errors returned by those calls.

No new tests, the failure is non deterministic and I was not able to reproduce in a test.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::enterFullscreenStandard):
(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreenHandler):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):

12:46 PM Changeset in webkit [228114] by dbates@webkit.org
  • 5 edits in trunk/Source

REGRESSION (r222795): Nike app "Refused to set unsafe header" when adding and viewing cart
https://bugs.webkit.org/show_bug.cgi?id=182491
<rdar://problem/36533447>

Reviewed by Brent Fulgham.

Exempt Nike from the XHR header restrictions in r222795.

Following r222795 only Dashboard widgets are allowed to set arbitrary XHR headers.
However Nike also depends on such functionality.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isNike):

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(shouldAllowSettingAnyXHRHeaderFromFileURLs):

12:26 PM Changeset in webkit [228113] by Chris Dumez
  • 5 edits in trunk/LayoutTests

Unreviewed, unskip fetch-event-respond-with-partial-stream.https.html as it no longer times out

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-partial-stream.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt:

LayoutTests:

12:20 PM Changeset in webkit [228112] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening.

  • platform/gtk/TestExpectations: Re-skip the modern media controls tests

on the GTK+ port after they were unskipped in r228097. They're timing
out in large enough numbers to cause early exits. They should be
examined in more detail and unskipped once fixed.

12:03 PM Changeset in webkit [228111] by Brent Fulgham
  • 8 edits in trunk/Source

Improve NetworkResourceLoader logging so it can be used for 'setCookiesFromDOM'
https://bugs.webkit.org/show_bug.cgi?id=182455
<rdar://problem/36626601>

Reviewed by Chris Dumez.

Source/WebCore:

After this refactoring, a convenience method I added in r227860 is no longer needed.
This patch removes this dead code.

  • platform/network/NetworkStorageSession.h: Export 'cookieStoragePartition' so it can

be used in WebKit.

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::hasStorageAccessForFrame): Deleted unused method.

Source/WebKit:

Refactor "logCookieInformation" so that it can be used for resource loads and DOM cookie
manipulation. Place the generally useful logic in a static method that can be invoked
from other places in the NetworkProcess.

Call the new refactored method from NetworkConnectionToWebProcess::setCookiesFromDOM so
we can perform logging there as well.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): Call the new logging method
(when enabled).

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldLogCookieInformation): Changed to static method.
(WebKit::escapeForJSON): Made a static function so it could be shared between multiple
methods.
(WebKit::NetworkResourceLoader::logCookieInformation const): Refactor into two methods.
(WebKit::NetworkResourceLoader::logCookieInformation): Ditto.
(WebKit::NetworkResourceLoader::shouldLogCookieInformation const): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Switch to user-enabled release logging
to track partitioning and blocking behavior.

11:43 AM Changeset in webkit [228110] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Make ASSERT_WITH_SECURITY_IMPLICATION in CachedResourceClientWalker::next a release assert
https://bugs.webkit.org/show_bug.cgi?id=182492

Reviewed by Youenn Fablet.

  • loader/cache/CachedResourceClientWalker.h:

(WebCore::CachedResourceClientWalker::next):

11:35 AM Changeset in webkit [228109] by wilander@apple.com
  • 28 edits in trunk

Storage Access API: Add testRunner.getAllStorageAccessEntries() to make testing easier and more explicit
https://bugs.webkit.org/show_bug.cgi?id=181601
<rdar://problem/36475837>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. Existing test updated.

http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
was found to be flaky. With the testRunner.hasStorageAccessEntry() getter
it's possible to check access even if a frame doesn't respond timely to
postMessage after detach and attach.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::getAllStorageAccessEntries const):

Source/WebKit:

http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
was found to be flaky. With the testRunner.hasStorageAccessEntry() getter
it's possible to check access even if a frame doesn't respond timely to
postMessage after detach and attach.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getAllStorageAccessEntries):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getAllStorageAccessEntries:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getAllStorageAccessEntries):
(WebKit::NetworkProcessProxy::allStorageAccessEntriesResult):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getAllStorageAccessEntries):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
was found to be flaky. With the testRunner.hasStorageAccessEntry() getter
it's possible to check access even if a frame doesn't respond timely to
postMessage after detach and attach.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStorageAccessAPIEnabled):

Just moved for source file grouping.

(WTR::TestRunner::getAllStorageAccessEntries):
(WTR::TestRunner::callDidReceiveAllStorageAccessEntriesCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::getAllStorageAccessEntries):

Note that this is just stubbed out, i.e. not implemented.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveAllStorageAccessEntries):

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::getAllStorageAccessEntries):

This is the Cocoa-specific version of this test infrastructure.

LayoutTests:

http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
was found to be flaky. With the testRunner.hasStorageAccessEntry() getter
it's possible to check access even if a frame doesn't respond timely to
postMessage after detach and attach.

  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt:
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
  • platform/mac-wk2/TestExpectations:

http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html
no longer marked as flaky. Note that the wrong test was marked flaky. It should have been
http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html.

11:30 AM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
11:29 AM WebKitGTK/2.18.x edited by clopez@igalia.com
(diff)
11:29 AM WebKitGTK/2.18.x edited by clopez@igalia.com
(diff)
11:26 AM Changeset in webkit [228108] by jfbastien@apple.com
  • 5 edits
    2 adds in trunk/Source/bmalloc

Gigacage: enable only for WebContent process and token executables
https://bugs.webkit.org/show_bug.cgi?id=182457
<rdar://problem/35875011>

Reviewed by Keith Miller.

Gigacage is a solid security improvement, but it's probably best
to roll it out incrementally to the most valuable targets first
and progressively try out more and more over time rather than
outright enabling it everywhere. We've gotten some reports that it
has some side-effects that weren't expected, so for now let's
enable it for the WebContent process, JSC, and other executables
we know, and then later we'll enable more gigacage uses.

For now I've chosen the following bundles:

  • com.apple.WebKit.WebContent.Development
  • com.apple.WebKit.WebContent
  • com.apple.WebProcess

And the following processes:

  • jsc
  • wasm
  • anything starting with "test", to match the JSC tests

I tried a different approach first, where I add a function to turn
gigacage on or off and crash if gigacage is initialized without
having been told what to do. Doing this in ChildProcess and a
bunch of the process initialization methods isn't sufficient. I
got MiniBrowser working, but some other builds use static globals
which themselves use hash and string which are allocate with
bmalloc and therefore which initialize gigacage before main is
called and before the process gets a chance to opt in our out. It
gets tricky with API calls too, because we have to do the right
thing in any entry an API user could plausibly use, even the
private ones, so I endend up having to initialize gigacage in e.g.
WebPreferencesExperimentalFeatures.cpp.erb.

Another approach could be to create a free-for-all gigacage
entitlement, and opt-in the processes we want..

As a follow-up we can also check that gigacage allocation always
succeeds if it was allowed for that process. With my change I
expect it to always succeed.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BPlatform.h:
  • bmalloc/Gigacage.cpp:

(Gigacage::shouldBeEnabled):

  • bmalloc/ProcessCheck.h: Added.

(bmalloc::gigacageEnabledForProcess):

  • bmalloc/ProcessCheck.mm: Added.

(bmalloc::gigacageEnabledForProcess):

11:18 AM Changeset in webkit [228107] by commit-queue@webkit.org
  • 7 edits in trunk/Source/bmalloc

Multiple bmalloc scavenger threads is unexpected
https://bugs.webkit.org/show_bug.cgi?id=182474
<rdar://problem/37175526>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-02-05
Reviewed by Filip Pizlo.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):

  • bmalloc/IsoDirectoryInlines.h:

(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didBecome):

  • bmalloc/bmalloc.cpp:

(bmalloc::api::scavenge):
(bmalloc::api::setScavengerThreadQOSClass):
Switch to SafePerProcess for Scavenger to ensure one instance
for the entire process.

  • bmalloc/PerProcess.h:

(bmalloc::PerProcess::get):
(bmalloc::PerProcess::getFastCase):
(bmalloc::PerProcess::getSlowCase):
(bmalloc::SafePerProcess::get):
(bmalloc::SafePerProcess::getFastCase):
(bmalloc::SafePerProcess::getSlowCase):
Duplicate the class with a version that can ensure
single instances by requiring exporting symbols that
can be created with macros.

  • bmalloc/Scavenger.cpp:
  • bmalloc/Scavenger.h:

Export symbols to ensure all images get the same instance.

11:15 AM Changeset in webkit [228106] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Win] Enable multi CPU building on MSBuild.
https://bugs.webkit.org/show_bug.cgi?id=182446

Compiling itself already uses multi cores, but other stuff is still on single core.
This patch enables that by passing an argument to MSBuild.exe.

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-02-05
Reviewed by Alex Christensen.

  • Scripts/webkitdirs.pm:

(determineNumberOfCPUs):
(buildVisualStudioProject):

11:02 AM Changeset in webkit [228105] by don.olmstead@sony.com
  • 19 edits in trunk/Source/JavaScriptCore

JavaScriptCore files should not be included relatively
https://bugs.webkit.org/show_bug.cgi?id=182452

Reviewed by Keith Miller.

  • API/JSCallbackConstructor.h:
  • CMakeLists.txt:
  • disassembler/ARM64Disassembler.cpp:
  • disassembler/ARMv7Disassembler.cpp:
  • heap/LockDuringMarking.h:
  • inspector/InjectedScriptBase.h:
  • inspector/InjectedScriptHost.h:
  • inspector/JavaScriptCallFrame.h:
  • inspector/ScriptArguments.h:
  • inspector/ScriptDebugListener.h:
  • inspector/ScriptDebugServer.h:
  • inspector/agents/InspectorAgent.h:
  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.h:
  • runtime/RegExp.h:
10:46 AM Changeset in webkit [228104] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Skipped imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html
https://bugs.webkit.org/show_bug.cgi?id=182422

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:37 AM Changeset in webkit [228103] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use downcast in createLinkPreloadResourceClient
https://bugs.webkit.org/show_bug.cgi?id=182488

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-05
Reviewed by Antti Koivisto.

No observable change of behavior.

  • loader/LinkLoader.cpp:

(WebCore::createLinkPreloadResourceClient):

10:12 AM Changeset in webkit [228102] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

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

"It regressed ARES-6 by 2-4%" (Requested by saamyjoon on
#webkit).

Reverted changeset:

"[JSC] Clean up ArraySpeciesCreate"
https://bugs.webkit.org/show_bug.cgi?id=182434
https://trac.webkit.org/changeset/228012

10:12 AM Changeset in webkit [228101] by Chris Dumez
  • 11 edits in trunk

Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=181166
<rdar://problem/37169508>

Reviewed by Youenn Fablet.

Source/WebCore:

I found out that this test was flakily timing out because our jobQueues would sometimes get stuck
when their current job's connection or service worker (when scheduled by a service worker) would
go away before the job is complete.

This patch makes our job queues operation more robust by:

  1. Cancelling all jobs from a given connection when a SWServerConnection goes away
  2. Cancelling all jobs from a given service worker when a service worker gets terminated

We also make sure service workers created by a job get properly terminated when a job
is canceled to avoid leaving service workers in limbo.

No new tests, unskipped existing flaky test.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):

  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):
(WebCore::ServiceWorkerJobData::isolatedCopy const):

  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::startScriptFetch):
(WebCore::SWServer::scriptContextFailedToStart):
(WebCore::SWServer::scriptContextStarted):
(WebCore::SWServer::terminatePreinstallationWorker):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::workerContextTerminated):
(WebCore::SWServer::unregisterConnection):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::removeAllJobsMatching):
(WebCore::SWServerJobQueue::cancelJobsFromConnection):
(WebCore::SWServerJobQueue::cancelJobsFromServiceWorker):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::setPreInstallationWorker):

LayoutTests:

Unskip test that is no longer flaky.

  • platform/mac-wk2/TestExpectations:
10:03 AM Changeset in webkit [228100] by dbates@webkit.org
  • 9 edits in trunk

Disallow evaluating JavaScript from NPP_Destroy() in WebKit
https://bugs.webkit.org/show_bug.cgi?id=181889
<rdar://problem/36674701>

Reviewed by Brent Fulgham.

Source/WebKit:

Make the behavior of WebKit match the behavior of WebKitLegacy on Mac.

  • Shared/Plugins/NPObjectMessageReceiver.cpp:

(WebKit::NPObjectMessageReceiver::hasMethod):
(WebKit::NPObjectMessageReceiver::invoke):
(WebKit::NPObjectMessageReceiver::invokeDefault):
(WebKit::NPObjectMessageReceiver::hasProperty):
(WebKit::NPObjectMessageReceiver::getProperty):
(WebKit::NPObjectMessageReceiver::setProperty):
(WebKit::NPObjectMessageReceiver::removeProperty):
(WebKit::NPObjectMessageReceiver::enumerate):
(WebKit::NPObjectMessageReceiver::construct):
Bail out if the plugin is executing NPP_Destroy().

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::destroyPlugin):

  • WebProcess/Plugins/Plugin.h:

(WebKit::Plugin::isBeingDestroyed const):
Move bookkeeping of whether the plugin is being destroyed from PluginView
to here. This makes it straightforward for NPObjectMessageReceiver to query
this information.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::~PluginView):
(WebKit::PluginView::destroyPluginAndReset):
(WebKit::PluginView::recreateAndInitialize):
(WebKit::PluginView::protectPluginFromDestruction):
(WebKit::PluginView::unprotectPluginFromDestruction):
Move bookkeeping of whether the plugin is being destroyed from here
to Plugin.

  • WebProcess/Plugins/PluginView.h:

(WebKit::PluginView::isBeingDestroyed const): Turn around and ask the plugin if it
is being destroyed, if we have one.

LayoutTests:

Consolidate all the plugin tests that evaluate JavaScript from NPP_Destroy()
and mark them as Wont Fix. In a subsequent change we will look to replace
these tests with tests that ensure that we do not evaluate JavaScript from
NPP_Destroy().

  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
9:14 AM Changeset in webkit [228099] by aakash_jain@apple.com
  • 5 edits in trunk/Websites/perf.webkit.org

Add support for submitting build request to Buildbot 0.9 server in BuildbotSyncer
https://bugs.webkit.org/show_bug.cgi?id=182218

Reviewed by Ryosuke Niwa.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer.prototype.scheduleRequest): Added assert to ensure forcescheduler property is always defined. Builds can not
be scheduled on Buildbot without this property. Updated unit-tests and server-tests accordingly.
(BuildbotSyncer.prototype.scheduleBuildOnBuildbotDeprecated): Method to schedule build request on Buildbot 0.8 server.
(BuildbotSyncer.prototype.scheduleBuildOnBuildbot): Method to schedule build request on Buildbot 0.9 server.
(BuildbotSyncer.prototype.pathForForceBuildDeprecated): Path for scheudling build on Buildbot 0.8 server.
(BuildbotSyncer.prototype.pathForForceBuild): Path for scheudling build on Buildbot 0.9 server.

  • unit-tests/buildbot-syncer-tests.js:

(smallConfiguration): Added test-case for scheduleBuildOnBuildbot. Also added forcescheduler property in sample data.

  • server-tests/resources/mock-data.js: Added forcescheduler property in sample data.
  • server-tests/tools-buildbot-triggerable-tests.js: Updated server-tests to take care of added forcescheduler property.
8:53 AM Changeset in webkit [228098] by aakash_jain@apple.com
  • 3 edits in trunk/Websites/perf.webkit.org

Add support for fetching recent builds in Buildbot 0.9 format in BuildbotSyncer
https://bugs.webkit.org/show_bug.cgi?id=179743

Reviewed by Ryosuke Niwa.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer.prototype._pullRecentBuildsDeprecated): Renamed from _pullRecentBuilds. This method fetch
from Buildbot 0.8 server.
(BuildbotSyncer.prototype._pullRecentBuilds): Method to fetch recent builds from Buildbot 0.9 server.
(BuildbotSyncer.prototype.pathForRecentBuilds): URL for fetching recent builds from Buildbot 0.9 server.
(BuildbotSyncer.prototype.pathForBuildJSONDeprecated): Renamed from pathForBuildJSON.

  • unit-tests/buildbot-syncer-tests.js:

(_pullRecentBuilds.it): unit-test - should not fetch recent builds when count is zero.
(_pullRecentBuilds.it): unit-test - should pull the right number of recent builds.
(_pullRecentBuilds.it): unit-test - should handle unexpected error while fetching recent builds.
(_pullRecentBuilds.it): unit-test - should create BuildbotBuildEntry after fetching recent builds.

8:33 AM Changeset in webkit [228097] by graouts@webkit.org
  • 11 edits
    8 copies
    1 add
    1 delete in trunk/LayoutTests

[Modern Media Controls] Turn media/modern-media-controls tests back on by default
https://bugs.webkit.org/show_bug.cgi?id=182482

Reviewed by Eric Carlson.

After updating a significant amount of tests under media/modern-media-controls over the last week, we can stop skipping
tests in this directory by default, and instead skip tests that do not apply on a per-platform basis. This patch does that
along with fixing a few remaining tests and adding some more for the new behavior of display 3, 4, 5 or 6 digits for time
labels depending on the overall video duration.

  • TestExpectations:
  • http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast-expected.txt:
  • http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html:
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt:
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • http/tests/media/modern-media-controls/status-support/status-support-loading-expected.txt:
  • http/tests/media/modern-media-controls/status-support/status-support-loading.html:
  • http/tests/media/modern-media-controls/time-control/1-to-10-hours-expected.txt: Added.
  • http/tests/media/modern-media-controls/time-control/1-to-10-hours.html: Added.
  • http/tests/media/modern-media-controls/time-control/10-hours-or-more-expected.txt: Added.
  • http/tests/media/modern-media-controls/time-control/10-hours-or-more.html: Added.
  • http/tests/media/modern-media-controls/time-control/10-minutes-to-1-hour-expected.txt: Added.
  • http/tests/media/modern-media-controls/time-control/10-minutes-to-1-hour.html: Added.
  • http/tests/media/modern-media-controls/time-control/less-than-10-minutes-expected.txt: Renamed from LayoutTests/http/tests/media/modern-media-controls/time-labels-support/long-time-expected.txt.
  • http/tests/media/modern-media-controls/time-control/less-than-10-minutes.html: Renamed from LayoutTests/http/tests/media/modern-media-controls/time-labels-support/long-time.html.
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Make this test more reliable by going a little further

left of the slider's left-most point to ensure we always get a 0-value.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
8:30 AM Changeset in webkit [228096] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Crash on sfgate.com because mismatching link preload types
https://bugs.webkit.org/show_bug.cgi?id=182483
<rdar://problem/37065331>

Reviewed by Daniel Bates.

Source/WebCore:

Preloading the same URL with different 'as' types causes some confusion.

Test: http/tests/preload/link-preload-type-mismatch.html

  • loader/LinkLoader.cpp:

(WebCore::createLinkPreloadResourceClient):

Ensure we use the actual resource type when creating the client.

(WebCore::LinkLoader::preloadIfNeeded):

Don't construct client if the types don't match. This can happen if there is an existing
preload for the same resource with different type.

LayoutTests:

  • http/tests/preload/link-preload-type-mismatch-expected.txt: Added.
  • http/tests/preload/link-preload-type-mismatch.html: Added.
5:51 AM Changeset in webkit [228095] by Manuel Rego Casasnovas
  • 30 edits
    34 adds
    1 delete in trunk

[css-grid] Rename gutter properties to remove "grid-" prefix
https://bugs.webkit.org/show_bug.cgi?id=180290

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Imported WPT tests from css/css-align/gaps/.
And also update the tests on css/css-grid/alignment/ gutter tests.

  • web-platform-tests/css/css-align/gaps/column-gap-animation-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-animation-001.html: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-animation-002-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-animation-002.html: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-animation-003-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-animation-003.html: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-parsing-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/column-gap-parsing-001.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-001.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-002-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-002.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-003-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-003.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-004-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/gap-animation-004.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-parsing-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/gap-parsing-001.html: Added.
  • web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001.html: Added.
  • web-platform-tests/css/css-align/gaps/grid-gap-parsing-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/grid-gap-parsing-001.html: Added.
  • web-platform-tests/css/css-align/gaps/grid-row-gap-parsing-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/grid-row-gap-parsing-001.html: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-animation-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-animation-001.html: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-animation-002-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-animation-002.html: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-animation-003-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-animation-003.html: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-parsing-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/row-gap-parsing-001.html: Added.
  • web-platform-tests/css/css-align/gaps/w3c-import.log: Added.
  • web-platform-tests/css/css-grid/alignment/grid-gutters-001-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-002-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-003-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-004-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-005-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-006-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-007-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-008-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-009-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-010-expected.html:

Source/WebCore:

This patch applies the resoultion of the CSS WG to unprefix
the CSS Grid Layout gutter properties:
https://github.com/w3c/csswg-drafts/issues/1696

column-gap already existed before, as it's part of Multicol.
The patch adds the new properties row-gap and gap, and keep the legacy ones
as aliases:

  • grid-column-gap => column-gap
  • grid-row-gap => row-gap
  • grid-gap => gap

As column-gap was already animatable, this change takes advantage
to make animatable row-gap too.

Tests: imported/w3c/web-platform-tests/css/css-align/gaps/

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):

  • css/CSSProperties.json:
  • css/StyleProperties.cpp:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::isSimpleLengthPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::availableSpaceForGutters const):
(WebCore::RenderGrid::gridGap const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::gridAutoRows const):
(WebCore::RenderStyle::columnGap const):
(WebCore::RenderStyle::rowGap const):
(WebCore::RenderStyle::setGridItemRowEnd):
(WebCore::RenderStyle::setColumnGap):
(WebCore::RenderStyle::setRowGap):
(WebCore::RenderStyle::initialRowGap):

  • rendering/style/StyleGridData.cpp:

(WebCore::StyleGridData::StyleGridData):

  • rendering/style/StyleGridData.h:

(WebCore::StyleGridData::operator== const):

  • rendering/style/StyleMultiColData.cpp:

(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator== const):

  • rendering/style/StyleMultiColData.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

so removing them from TestExpectations.

  • fast/css-grid-layout/grid-gutters-get-set.html: Removed. This is now covered by WPT tests.
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt: Update results for gutter properties

as default value is now "normal".

  • fast/css-grid-layout/grid-shorthand-get-set.html: Update checks for gutter properties

as default value is now "normal".

3:01 AM Changeset in webkit [228094] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.19.90

WebKitGTK+ 2.19.90

3:00 AM Changeset in webkit [228093] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.90 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.19.90.
2:24 AM Changeset in webkit [228092] by Ms2ger@igalia.com
  • 10 edits in trunk

Implement createImageBitmap(HTMLVideoElement)
https://bugs.webkit.org/show_bug.cgi?id=182388

Reviewed by Žan Doberšek.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html: Update from upstream to make the test pass on macOS.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:

Source/WebCore:

The implementation is inspired by CanvasRenderingContext2DBase::drawImage().

Tests:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html
  • html/ImageBitmap.cpp:

(WebCore::taintsOrigin): Add function to help with the implementation.
(WebCore::ImageBitmap::createPromise): Fill in implementation.

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
2:18 AM Changeset in webkit [228091] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r228085.

Pixel data stride is imposed by OpenGL and shouldn't be
adjusted for Cairo

Reverted changeset:

"[Cairo] Correctly calculate stride in
GraphicsContext3D::paintToCanvas()"
https://bugs.webkit.org/show_bug.cgi?id=182466
https://trac.webkit.org/changeset/228085

2:10 AM WebKitGTK/2.20.x created by Carlos Garcia Campos
1:18 AM Changeset in webkit [228090] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.20

Branch WebKitGTK+ for 2.20

1:14 AM Changeset in webkit [228089] by aboya@igalia.com
  • 4 edits in trunk

Fix bug in MediaTime comparison for negative values with different scale.
https://bugs.webkit.org/show_bug.cgi?id=182433

Source/WTF:

Reviewed by Xabier Rodriguez-Calvar.

  • wtf/MediaTime.cpp:

(WTF::MediaTime::compare const):

Tools:

Improved test coverage for MediaTime::compare().

Reviewed by Xabier Rodriguez-Calvar.

  • TestWebKitAPI/Tests/WTF/MediaTime.cpp:

(TestWebKitAPI::TEST):

1:02 AM Changeset in webkit [228088] by Carlos Garcia Campos
  • 7 edits in trunk

[SOUP] WebSockets must use system proxy settings
https://bugs.webkit.org/show_bug.cgi?id=126384

Reviewed by Michael Catanzaro.

Source/WebCore:

Use soup_session_connect_async() when available to create the WebSockets connection instead of GSocketClient
directly.

  • platform/network/soup/SocketStreamHandleImpl.h:
  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::wssSocketClientEventCallback):
(WebCore::SocketStreamHandleImpl::create):
(WebCore::SocketStreamHandleImpl::connected):
(WebCore::SocketStreamHandleImpl::connectedCallback):
(WebCore::SocketStreamHandleImpl::platformClose):

Tools:

Check also WebSockets in /webkit2/WebKitWebContext/proxy.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(ProxyTest::webSocketProxyServerCallback):
(ProxyTest::ProxyTest):
(ProxyTest::webSocketConnected):
(ProxyTest::createWebSocketAndWaitUntilConnected):
(webSocketServerCallback):
(testWebContextProxySettings):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::~WebKitTestServer):
(WebKitTestServer::addWebSocketHandler):
(WebKitTestServer::removeWebSocketHandler):
(WebKitTestServer::getWebSocketURIForPath const):
(WebKitTestServer::getURIForPath const):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:

(WebKitTestServer::baseURI const):
(WebKitTestServer::baseWebSocketURI const):

12:46 AM Changeset in webkit [228087] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

WebDriver: addCookie command should prepend a dot to domain if missing
https://bugs.webkit.org/show_bug.cgi?id=182328
<rdar://problem/37116398>

Reviewed by Michael Catanzaro.

RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot.

Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::addSingleCookie):

12:04 AM Changeset in webkit [228086] by Carlos Garcia Campos
  • 10 edits in trunk

Add a way to check if a host is an IP address
https://bugs.webkit.org/show_bug.cgi?id=182427

Reviewed by Alex Christensen.

Source/WebCore:

There are several places where this is needed. We currently just assume that any host ending in a digit is an IP
address, except in PublicSuffix where platform specific code is used. This patch adds URL::hostIsIPAddress()
platform specific implementations, falling back to current assumption if there isn't an implementation for the
platform.

  • page/OriginAccessEntry.cpp:

(WebCore::OriginAccessEntry::OriginAccessEntry): Use URL::hostIsIPAddress().

  • platform/URL.cpp:

(WebCore::URL::hostIsIPAddress): Fallback implementation.

  • platform/URL.h:
  • platform/mac/PublicSuffixMac.mm:

(WebCore::topPrivatelyControlledDomain): Use URL::hostIsIPAddress().

  • platform/mac/URLMac.mm:

(WebCore::URL::hostIsIPAddress): Move implementation from PublicSuffixMac.mm.

  • platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::isIPAddress): Use URL::hostIsIPAddress().

  • platform/soup/URLSoup.cpp:

(WebCore::URL::hostIsIPAddress): Use g_hostname_is_ip_address().

Tools:

Add unit test for URL::hostIsIPAddress().

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

Feb 4, 2018:

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

[Cairo] Correctly calculate stride in GraphicsContext3D::paintToCanvas()
https://bugs.webkit.org/show_bug.cgi?id=182466

Reviewed by Michael Catanzaro.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):
Use cairo_format_stride_for_width() to obtain stride that Cairo thinks
is appropriate for the given width, taking into account internal
alignment requirements.

11:33 PM Changeset in webkit [228084] by zandobersek@gmail.com
  • 3 edits
    1 add in trunk/Source/WebCore

[Cairo] Split TexMap functionality out of GraphicsContext3DCairo
https://bugs.webkit.org/show_bug.cgi?id=182465

Reviewed by Michael Catanzaro.

Take the Non-Cairo GraphicsContext3D functionality that's stashed in
GraphicsContext3DCairo and move it into the GraphicsContext3DTextureMapper
file.

In GraphicsContext3DCairo.cpp, only the Cairo-specific GraphicsContext3D
functionality remains, specifically ImageExtractor and paintToCanvas().

Everything else is moved into GraphicsContext3DTextureMapper.cpp. This
filename and its location under platform/graphics/texmap/ was chosen
since all the ports using this file (GTK, WPE, WinCairo) are also using
the TextureMapper module. Various #if-guards are simplified in the
moved-over code to reflect this.

GraphicsContext3DCairo.cpp now better reflects GraphicsContext3DCG.cpp,
with both implementing functionality specific to a 2D painting library,
whereas GraphicsContext3DTextureMapper.cpp reflects
GraphicsContext3DCocoa.cpp in covering functionality needed to integrate
the GraphicsContext3D output into the platform-specific composition
system.

No new tests -- no change in behavior.

  • platform/TextureMapper.cmake:
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::activeContexts): Deleted.
(WebCore::GraphicsContext3D::create): Deleted.
(WebCore::GraphicsContext3D::GraphicsContext3D): Deleted.
(WebCore::GraphicsContext3D::~GraphicsContext3D): Deleted.
(WebCore::GraphicsContext3D::setContextLostCallback): Deleted.
(WebCore::GraphicsContext3D::setErrorMessageCallback): Deleted.
(WebCore::GraphicsContext3D::makeContextCurrent): Deleted.
(WebCore::GraphicsContext3D::checkGPUStatus): Deleted.
(WebCore::GraphicsContext3D::platformGraphicsContext3D): Deleted.
(WebCore::GraphicsContext3D::platformTexture const): Deleted.
(WebCore::GraphicsContext3D::isGLES2Compliant const): Deleted.
(WebCore::GraphicsContext3D::platformLayer const): Deleted.
(WebCore::GraphicsContext3D::getExtensions): Deleted.

  • platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp: Copied from Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp.

(WebCore::activeContexts):
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::setContextLostCallback):
(WebCore::GraphicsContext3D::setErrorMessageCallback):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::checkGPUStatus):
(WebCore::GraphicsContext3D::platformGraphicsContext3D):
(WebCore::GraphicsContext3D::platformTexture const):
(WebCore::GraphicsContext3D::isGLES2Compliant const):
(WebCore::GraphicsContext3D::platformLayer const):
(WebCore::GraphicsContext3D::getExtensions):

10:32 PM Changeset in webkit [228083] by jmarcell@apple.com
  • 6 edits in branches/safari-605-branch/Source

Apply patch. rdar://problem/36547114

Disable some runtime feature flags on safari-605-branch

10:32 PM Changeset in webkit [228082] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit/UIProcess/ios

Apply patch. rdar://problem/37145545

Build fix.

10:32 PM Changeset in webkit [228081] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r227935. rdar://problem/37145460

10:32 PM Changeset in webkit [228080] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r227865. rdar://problem/37145460

9:30 PM Changeset in webkit [228079] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228050. rdar://problem/37220143

9:30 PM Changeset in webkit [228078] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228041. rdar://problem/37220123

9:30 PM Changeset in webkit [228077] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch

Cherry-pick r228036. rdar://problem/37220130

9:30 PM Changeset in webkit [228076] by jmarcell@apple.com
  • 14 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r228035. rdar://problem/37220146

9:30 PM Changeset in webkit [228075] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228034. rdar://problem/37220140

9:30 PM Changeset in webkit [228074] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228033. rdar://problem/37220144

9:30 PM Changeset in webkit [228073] by jmarcell@apple.com
  • 3 edits
    1 add in branches/safari-605-branch

Cherry-pick r228031. rdar://problem/37220129

9:30 PM Changeset in webkit [228072] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch/Source/WebInspectorUI

Cherry-pick r228030. rdar://problem/37220121

9:30 PM Changeset in webkit [228071] by jmarcell@apple.com
  • 9 edits in branches/safari-605-branch

Cherry-pick r228025. rdar://problem/37220140

9:30 PM Changeset in webkit [228070] by jmarcell@apple.com
  • 17 edits in branches/safari-605-branch

Cherry-pick r228019. rdar://problem/37220144

9:30 PM Changeset in webkit [228069] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch

Cherry-pick r228015. rdar://problem/37220133

9:30 PM Changeset in webkit [228068] by jmarcell@apple.com
  • 3 edits
    1 add in branches/safari-605-branch

Cherry-pick r227998. rdar://problem/37220126

9:30 PM Changeset in webkit [228067] by jmarcell@apple.com
  • 5 edits
    3 adds in branches/safari-605-branch

Cherry-pick r227997. rdar://problem/37220136

6:19 PM Changeset in webkit [228066] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch

Cherry-pick r227994. rdar://problem/37145542

6:19 PM Changeset in webkit [228065] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r227992. rdar://problem/37145465

6:19 PM Changeset in webkit [228064] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r227990. rdar://problem/37145451

6:19 PM Changeset in webkit [228063] by jmarcell@apple.com
  • 11 edits in branches/safari-605-branch

Cherry-pick r227985. rdar://problem/37145479

6:19 PM Changeset in webkit [228062] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch

Cherry-pick r227974. rdar://problem/37145538

6:18 PM Changeset in webkit [228061] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r227967. rdar://problem/37145562

6:18 PM Changeset in webkit [228060] by jmarcell@apple.com
  • 6 edits in branches/safari-605-branch

Cherry-pick r227959. rdar://problem/37145559

6:18 PM Changeset in webkit [228059] by jmarcell@apple.com
  • 18 edits
    1 delete in branches/safari-605-branch/Source

Cherry-pick r227951. rdar://problem/37145493

6:18 PM Changeset in webkit [228058] by jmarcell@apple.com
  • 11 edits in branches/safari-605-branch

Cherry-pick r227948. rdar://problem/37145473

6:18 PM Changeset in webkit [228057] by jmarcell@apple.com
  • 9 edits
    2 adds in branches/safari-605-branch

Cherry-pick r227936. rdar://problem/37145449

6:18 PM Changeset in webkit [228056] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r227934. rdar://problem/37145534

6:18 PM Changeset in webkit [228055] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r227932. rdar://problem/37145456

6:18 PM Changeset in webkit [228054] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r227927. rdar://problem/37145549

6:18 PM Changeset in webkit [228053] by jmarcell@apple.com
  • 3 edits
    4 adds in branches/safari-605-branch

Cherry-pick r227926. rdar://problem/37145475

12:18 AM Changeset in webkit [228052] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

Simplify GraphicsContext3D::paintToCanvas()
https://bugs.webkit.org/show_bug.cgi?id=182459

Reviewed by Michael Catanzaro.

Cairo-specific paintToCanvas() method is dropped in favor of the more
common one that operates on a GraphicsContext object. The platform
context object is then retrieved inside the Cairo-speficic
paintToCanvas() implementation, and not at the call site in
GraphicsContext3D::paintRenderingResultsToCanvas().

GraphicsContext3D::paintToCanvas() is also modified so that the image
and canvas sizes are passed through IntSize objects, and not through
a width-and-height pair of integer values.

No new tests -- no change in behavior.

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):

12:17 AM Changeset in webkit [228051] by zandobersek@gmail.com
  • 5 edits
    1 add in trunk/Source/ThirdParty

Lots of build warnings from Source/ThirdParty/openvr
https://bugs.webkit.org/show_bug.cgi?id=182117

Reviewed by Michael Catanzaro.

Suppress OpenVR compiler warnings by listing -Wno-unknown-pragmas,
-Wno-unused-parameter and -Wno-unused-variable options among the
libopenvr_api.so CXX flags.

CMake configuration warning about default project variables for the
openvr_api project is avoided by removing the openvr_api project and
instead setting the OPENVR_SOURCE_DIR to the path of the OpenVR
source directory under Source/ThirdParty/.

Another compiler warning is removed by fixing the return condition in
the Path_WriteBinaryFile() function to perform an equality comparison
instead of an assignment. This has already been fixed upstream.

All changes to the OpenVR code are reflected in the separately-managed
patch files kept in the patches/ directory.

  • openvr/README.webkit:
  • openvr/patches/Path_WriteBinaryFile-fix-return-condition.patch: Added.
  • openvr/patches/cmake-build.patch:
  • openvr/src/CMakeLists.txt:
  • openvr/src/vrcommon/pathtools_public.cpp:

(Path_WriteBinaryFile):

Feb 3, 2018:

7:35 PM Changeset in webkit [228050] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

UI process sometimes crashes under -[WKContentView _lookupForWebView:]
https://bugs.webkit.org/show_bug.cgi?id=182460
<rdar://problem/33260602>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _lookupForWebView:]):
If you have a range selection, but no rects for the selection, retrieving
the 0th element of selectionRects will crash the UI process. To fix, in
this case, use the rect for the starting caret instead.

It doesn't seem like the presentationRect is actually currently used for
the Lookup service, so the only impact is that we shouldn't crash anymore.

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

Tweak availability macros for CAN_DISALLOW_USER_INSTALLED_FONTS

Rubber-stamped by Maciej Stachowiak.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:
6:40 AM Changeset in webkit [228048] by cturner@igalia.com
  • 2 edits in trunk/Tools

Add libmount to WPE dependencies
https://bugs.webkit.org/show_bug.cgi?id=182345

Reviewed by Michael Catanzaro.

  • wpe/install-dependencies:
1:59 AM Changeset in webkit [228047] by Yusuke Suzuki
  • 2 edits in trunk/JSTests

Unreviewed, follow up for test262 update
https://bugs.webkit.org/show_bug.cgi?id=182288

  • test262.yaml:

Feb 2, 2018:

8:59 PM Changeset in webkit [228046] by Michael Catanzaro
  • 4 edits
    2 deletes in trunk/Source/WebKit

Remove remaining dead !USE(NETWORK_SESSION) code
https://bugs.webkit.org/show_bug.cgi?id=182451

Reviewed by Alex Christensen.

DownloadCurl.cpp and AuthenticationManagerSoup.cpp have been dead code since NETWORK_SESSION
became mandatory.

  • NetworkProcess/Downloads/curl/DownloadCurl.cpp: Removed.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Removed.
8:53 PM Changeset in webkit [228045] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean up FrameLoader::receivedFirstData()
https://bugs.webkit.org/show_bug.cgi?id=182361

Reviewed by Andy Estes.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::receivedFirstData):

8:22 PM Changeset in webkit [228044] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

Test fix after r227995
https://bugs.webkit.org/show_bug.cgi?id=180951

Unreviewed.

Webfonts shouldn't be run through CTFontDescriptorCreateMatchingFontDescriptor().
Also, unify macOS's and iOS's implementation of FontCache::lastResortFallbackFont().

Covered by existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::fontForPostScriptName):
(WebCore::addAttributesForInstalledFonts):
(WebCore::addAttributesForWebFonts):
(WebCore::installedFontMandatoryAttributes):
(WebCore::FontCache::lastResortFallbackFont):
(WebCore::addAttributesForUserInstalledFonts): Deleted.
(WebCore::mandatoryAttributesForUserInstalledFonts): Deleted.

  • platform/graphics/cocoa/FontCacheCoreText.h:
  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::lastResortFallbackFont): Deleted.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::lastResortFallbackFont): Deleted.

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):

6:14 PM Changeset in webkit [228043] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix build error after r 227457 with VIDEO and WEB_AUDIO disabled
https://bugs.webkit.org/show_bug.cgi?id=182395

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-02-02
Reviewed by Eric Carlson

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary):

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

Unreviewed test gardening, skip fast/visual-viewport/resize-event-fired.html on iOS.

  • platform/ios/TestExpectations:
6:05 PM Changeset in webkit [228041] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

CacheStorage should check for origin file presence when computing the origin of a folder
https://bugs.webkit.org/show_bug.cgi?id=182454

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Chris Dumez.

In case caches is opened for an origin but no cache is added, we do not have a caches name file but we do have an origin filename.
We should be checking the origin filename anyway since we will be reading it afterwards.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):

5:39 PM Changeset in webkit [228040] by Ryan Haddad
  • 2 edits in trunk/Source/JavaScriptCore

Rebaseline bindings generator tests after r228032.
https://bugs.webkit.org/show_bug.cgi?id=182445

Unreviewed test gardening.

  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
5:31 PM Changeset in webkit [228039] by Ryan Haddad
  • 2 edits in trunk/JSTests

Update test262 to Jan 30 version
https://bugs.webkit.org/show_bug.cgi?id=182288

Unreviewed test gardening.

  • test262.yaml: Remove entry for missing test language/expressions/assignment/white-space.js
4:57 PM Changeset in webkit [228038] by don.olmstead@sony.com
  • 76 edits in trunk/Source/WebCore

Remove WebCore/ForwardingHeaders directory
https://bugs.webkit.org/show_bug.cgi?id=182347

Reviewed by Alex Christensen.

Baseline tests updated.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):
(GenerateEnumerationImplementationContent):
(GenerateDictionaryImplementationContent):
(GenerateHeader):
(GenerateOverloadDispatcher):
(addUnscopableProperties):
(GenerateImplementation):
(GenerateOperationDefinition):
(GenerateSerializerDefinition):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.h:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:
  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • dom/make_event_factory.pl:

(generateImplementation):

4:53 PM Changeset in webkit [228037] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

W3C test exporter should allow exporting newly added files
https://bugs.webkit.org/show_bug.cgi?id=182369

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Ryosuke Niwa.

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

(Git.apply_mail_patch):

4:49 PM Changeset in webkit [228036] by david_quesada@apple.com
  • 4 edits in trunk

WebAppManifest scope should default to the containing directory of start_url if 'scope' is not specified
https://bugs.webkit.org/show_bug.cgi?id=182363
rdar://problem/37093498

Reviewed by Ryosuke Niwa.

Source/WebCore:

If an app manifest doesn't specify a scope, we should default to the "parent directory" of
the start URL, rather than leaving the app unbounded. This is more reasonable than using the
entire internet as the app scope.

No new tests, updates to the existing tests verify the new behavior.

  • Modules/applicationmanifest/ApplicationManifestParser.cpp:

(WebCore::ApplicationManifestParser::parseScope):

Tools:

Updated ApplicationManifestParserTests to account for the new default scope behavior.

  • TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:

(assertManifestHasDefaultValues):
(TEST_F):

4:43 PM Changeset in webkit [228035] by sbarati@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

Make various DFG_ASSERTs provide more data to WTFCrashWithInfo
https://bugs.webkit.org/show_bug.cgi?id=182453
<rdar://problem/37174236>

Reviewed by JF Bastien and Mark Lam.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupChecksInBlock):

  • dfg/DFGFlowIndexing.h:

(JSC::DFG::FlowIndexing::shadowIndex const):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):
(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGLoopPreHeaderCreationPhase.cpp:

(JSC::DFG::LoopPreHeaderCreationPhase::run):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithAbs):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::SpeculativeJIT::compileToPrimitive):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStoreBarrierClusteringPhase.cpp:
  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetStack):
(JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
(JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
(JSC::FTL::DFG::LowerDFGToB3::compileArithNegate):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::switchStringRecurse):
(JSC::FTL::DFG::LowerDFGToB3::lowInt32):
(JSC::FTL::DFG::LowerDFGToB3::lowInt52):
(JSC::FTL::DFG::LowerDFGToB3::lowCell):
(JSC::FTL::DFG::LowerDFGToB3::lowBoolean):
(JSC::FTL::DFG::LowerDFGToB3::lowDouble):
(JSC::FTL::DFG::LowerDFGToB3::lowJSValue):

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

Clearing all service worker registrations should wait for importing service worker registration to finish
https://bugs.webkit.org/show_bug.cgi?id=182407
<rdar://problem/37167523>

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Chris Dumez.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::clear): ensure completion handler is called on early exit case.

4:36 PM Changeset in webkit [228033] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default
https://bugs.webkit.org/show_bug.cgi?id=182403
<rdar://problem/36673358>

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Alex Christensen.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration): Setting serviceWorkerRegistrationDirectory for legacy stores.

3:37 PM Changeset in webkit [228032] by don.olmstead@sony.com
  • 8 edits in trunk/Source/JavaScriptCore

JS Builtins should include JavaScriptCore headers directly
https://bugs.webkit.org/show_bug.cgi?id=182445

Reviewed by Yusuke Suzuki.

  • Scripts/builtins/builtins_generator.py:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
2:55 PM Changeset in webkit [228031] by sbarati@apple.com
  • 3 edits
    1 add in trunk

When BytecodeParser inserts Unreachable after ForceOSRExit it needs to update ArgumentPositions for Flushes it inserts
https://bugs.webkit.org/show_bug.cgi?id=182368
<rdar://problem/36932466>

Reviewed by Mark Lam.

JSTests:

  • stress/flush-after-force-exit-in-bytecodeparser-needs-to-update-argument-positions.js: Added.

(runNearStackLimit.t):
(runNearStackLimit):
(try.runNearStackLimit):
(catch):

Source/JavaScriptCore:

When preserving liveness when inserting Unreachable nodes after ForceOSRExit,
we must add the VariableAccessData to the given argument position. Otherwise,
we may end up with a VariableAccessData that doesn't respect the shouldNeverUnbox bit.
If we end up with such a situation, it can lead to invalid IR after the
arguments elimination phase optimizes a GetByVal to a GetStack.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::flushImpl):
(JSC::DFG::ByteCodeParser::flushForTerminalImpl):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::flushForTerminal):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::parse):

2:52 PM Changeset in webkit [228030] by webkit@devinrousso.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: Pasting multiple properties should create properties instead of a bad property
https://bugs.webkit.org/show_bug.cgi?id=179622
<rdar://problem/35511170>

Reviewed by Matt Baker.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._remove):
(WI.SpreadsheetStyleProperty.prototype._update):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
(WI.SpreadsheetStyleProperty.prototype._handleNamePaste):
When the user pastes into the name field, parse the text for a list of name-value pairs and
replace the property being edited with the text of those pairs.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyAddBlankPropertySoon):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): Deleted.
Calling addBlankProperty will trigger a layout on the next frame, but that might be before
the CSSAgent has had a chance to finish refreshing, so we need a way to defer the creation
of a new property until after we have finished the next layout (which is after the refresh).
Drive-by: fix naming of some delegate functions.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.replaceWithText):
Provide a way for replacing the property with new text.

1:58 PM Changeset in webkit [228029] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.3.1/Source

Versioning.

1:48 PM Changeset in webkit [228028] by Yusuke Suzuki
  • 9771 edits
    81 moves
    789 adds
    237 deletes in trunk/JSTests

Update test262 to Jan 30 version
https://bugs.webkit.org/show_bug.cgi?id=182288

Rubber stamped by Saam Barati.

This patch updates test262 to the latest one, Jan 30 version.
Since added and changed files are too many, we cannot create ChangeLog.
The following files are changed.

Several files are intentionally omitted due to merge failures. We should investigate how to merge files
including some special line terminators (like u2028, u2029).

  • test262.yaml:
  • test262/test262-Revision.txt:
  • test262/*:
1:48 PM Changeset in webkit [228027] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.3.1

New tag.

1:31 PM Changeset in webkit [228026] by Ryan Haddad
  • 1 edit
    3 adds in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html for iOS.

Unreviewed test gardening.

  • platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
1:08 PM Changeset in webkit [228025] by commit-queue@webkit.org
  • 9 edits in trunk

Clearing all service worker registrations should wait for importing service worker registration to finish
https://bugs.webkit.org/show_bug.cgi?id=182407

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing tests and the service worker API test being no longer flaky.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::registrationStoreImportComplete):
(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::getOriginsWithRegistrations):

  • workers/service/server/SWServer.h:

Source/WebKit:

Updating API to take a completion handler.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

Make sure we finish clearing service worker registrations before running tests.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::ClearServiceWorkerRegistrationsCallbackContext::ClearServiceWorkerRegistrationsCallbackContext):
(WTR::clearServiceWorkerRegistrationsCallback):
(WTR::TestController::clearServiceWorkerRegistrations):

  • WebKitTestRunner/TestController.h:
1:04 PM Changeset in webkit [228024] by Matt Baker
  • 22 edits
    1 copy in trunk/Source/WebInspectorUI

Web Inspector: TabBar redesign: remove New Tab button and add experimental feature flag
https://bugs.webkit.org/show_bug.cgi?id=182342
<rdar://problem/37078662>

Reviewed by Devin Rousso.

This patch adds a new experimental setting group, "User Interface", with
a single setting, "Enable New TabBar". When enabled, the New Tab button is
no longer available in the top-level TabBar. The 'open tabs' context menu
no longer allows the last non-ephemeral open tab to be closed (unchecked).

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

(WI.contentLoaded):
(WI._tryToRestorePendingTabs):
Retain legacy behavior behind experimental feature setting.
(WI.isNewTabWithTypeAllowed):

  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView):

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView):

  • UserInterface/Views/DebuggerTabContentView.js:

(WI.DebuggerTabContentView):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):

  • UserInterface/Views/GeneralTabBarItem.js:

(WI.GeneralTabBarItem):
(WI.GeneralTabBarItem.prototype.fromTabInfo):
(WI.GeneralTabBarItem.prototype.get isEphemeral):
(WI.GeneralTabBarItem.fromTabContentViewConstructor): Deleted.

  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView):

  • UserInterface/Views/LegacyTabBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/TabBar.js.

(WI.LegacyTabBar):
(WI.LegacyTabBar.prototype.get newTabTabBarItem):
(WI.LegacyTabBar.prototype.updateNewTabTabBarItemState):
(WI.LegacyTabBar.prototype.addTabBarItem):
(WI.LegacyTabBar.prototype.insertTabBarItem.animateTabs):
(WI.LegacyTabBar.prototype.insertTabBarItem.removeStyles):
(WI.LegacyTabBar.prototype.insertTabBarItem):
(WI.LegacyTabBar.prototype.removeTabBarItem.animateTabs):
(WI.LegacyTabBar.prototype.removeTabBarItem.removeStyles):
(WI.LegacyTabBar.prototype.removeTabBarItem):
(WI.LegacyTabBar.prototype.selectPreviousTab):
(WI.LegacyTabBar.prototype.selectNextTab):
(WI.LegacyTabBar.prototype.get selectedTabBarItem):
(WI.LegacyTabBar.prototype.set selectedTabBarItem):
(WI.LegacyTabBar.prototype.get tabBarItems):
(WI.LegacyTabBar.prototype.get normalTabCount):
(WI.LegacyTabBar.prototype.layout.forceItemHidden):
(WI.LegacyTabBar.prototype.layout):
(WI.LegacyTabBar.prototype._tabBarItemsFromLeftToRight):
(WI.LegacyTabBar.prototype._findTabBarItem):
(WI.LegacyTabBar.prototype._hasMoreThanOneNormalTab):
(WI.LegacyTabBar.prototype._openDefaultTab):
(WI.LegacyTabBar.prototype._recordTabBarItemSizesAndPositions):
(WI.LegacyTabBar.prototype._applyTabBarItemSizesAndPositions):
(WI.LegacyTabBar.prototype._clearTabBarItemSizesAndPositions):
(WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose.):
(WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose):
(WI.LegacyTabBar.prototype._handleMouseDown):
(WI.LegacyTabBar.prototype._handleClick):
(WI.LegacyTabBar.prototype._handleMouseMoved):
(WI.LegacyTabBar.prototype._handleMouseUp):
(WI.LegacyTabBar.prototype._handleMouseLeave):
(WI.LegacyTabBar.prototype._handleContextMenu):
(WI.LegacyTabBar.prototype._handleNewTabClick):
(WI.LegacyTabBar.prototype._handleTabPickerTabContextMenu):
(WI.LegacyTabBar.prototype._handleNewTabMouseEnter):

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView):

  • UserInterface/Views/NewTabContentView.js:

(WI.NewTabContentView):
(WI.NewTabContentView.tabInfo):
(WI.NewTabContentView.isEphemeral): Deleted.

  • UserInterface/Views/ResourcesTabContentView.js:

(WI.ResourcesTabContentView):

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView):
(WI.SearchTabContentView.tabInfo):
(WI.SearchTabContentView.isEphemeral): Deleted.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.tabInfo):
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
(WI.SettingsTabContentView.isEphemeral): Deleted.

  • UserInterface/Views/StorageTabContentView.js:

(WI.StorageTabContentView):

  • UserInterface/Views/TabBar.css:
  • UserInterface/Views/TabBar.js:

(WI.TabBar):
(WI.TabBar.prototype.insertTabBarItem):
(WI.TabBar.prototype.removeTabBarItem):
(WI.TabBar.prototype.set selectedTabBarItem):
(WI.TabBar.prototype.get normalNonEphemeralTabCount):
(WI.TabBar.prototype._handleMouseDown):
(WI.TabBar.prototype._handleClick):
(WI.TabBar.prototype._handleMouseMoved):
(WI.TabBar.prototype._handleMouseLeave):
(WI.TabBar.prototype._handleContextMenu):
(WI.TabBar.prototype._handleTabPickerTabContextMenu):
(WI.TabBar.prototype.get newTabTabBarItem): Deleted.
(WI.TabBar.prototype.updateNewTabTabBarItemState): Deleted.
(WI.TabBar.prototype._openDefaultTab): Deleted.
(WI.TabBar.prototype._handleNewTabClick): Deleted.
(WI.TabBar.prototype._handleNewTabMouseEnter): Deleted.
Remove support for the New Tab button and default tab. Without a default
tab, there is nothing to display when no tabs are open, so prevent the
last non-pinned tab from being removed.

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser._tabBarItemRemoved):

  • UserInterface/Views/TabContentView.js:

(WI.TabContentView.isEphemeral): Deleted.

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView):

12:30 PM Changeset in webkit [228023] by ggaren@apple.com
  • 3 edits in trunk/PerformanceTests

Make MallocBench easier for non-WebKit engineers to run
https://bugs.webkit.org/show_bug.cgi?id=182415

Reviewed by Saam Barati.

  • MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we

can make_unique.

Specify that we support all Darwin platforms so you can test them.

  • MallocBench/run-malloc-benchmarks: Specify the path to MallocBench

and libmbmalloc explicitly, rather than computing them implicitly
using webkitdirs. Non-WebKit folks don't have the directory structure
required by webkitdirs.

Remove Linux-specific and cmake-specific behaviors because we only
needed them in the world of implicit path computation.

12:24 PM Changeset in webkit [228022] by mark.lam@apple.com
  • 4 edits in trunk/Source

More ARM64_32 fixes.
https://bugs.webkit.org/show_bug.cgi?id=182441
<rdar://problem/37162310>

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

I also disabled more dynamicPoisoning code in ARM64_32. This code assumes a
64-bit pointer which is not applicable here.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDynamicPoison):
(JSC::AssemblyHelpers::emitDynamicPoisonOnLoadedType):
(JSC::AssemblyHelpers::emitDynamicPoisonOnType):

Source/WTF:

My previous speculative ARM64_32 build fix in copyLCharsFromUCharSource() was wrong.
I've now fixed it to choose the default implementation case instead of the ARM64
case if the target is ARM64_32.

  • wtf/text/ASCIIFastPath.h:

(WTF::copyLCharsFromUCharSource):

11:38 AM Changeset in webkit [228021] by commit-queue@webkit.org
  • 20 edits in trunk/Source/WebKit

[Win] MSVC doesn't seem to like "friend class NeverDestroyed<Foo>"
https://bugs.webkit.org/show_bug.cgi?id=182081

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-02
Reviewed by Yusuke Suzuki.

The template friend class, which belongs to a different namespace,
can't access private member if its friend declaration is specified
without the namespace and with class keyword.

Replaced "friend class NeverDestroyed<Foo>" with "friend NeverDestroyed<Foo>".

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/capture/NetworkCaptureManager.h:
  • PluginProcess/PluginProcess.h:
  • Shared/CallbackID.h:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
  • StorageProcess/StorageProcess.h:
  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/gtk/PluginInfoCache.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
  • UIProcess/gtk/HardwareAccelerationManager.h:
  • UIProcess/gtk/WaylandCompositor.h:
  • UIProcess/linux/MemoryPressureMonitor.h:
  • UIProcess/mac/ServicesController.h:
  • WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h:
  • WebProcess/Plugins/WebPluginInfoProvider.h:
  • WebProcess/WebCoreSupport/WebPasteboardOverrides.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
11:35 AM Changeset in webkit [228020] by Ryan Haddad
  • 2 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r227706. rdar://problem/36837397

11:25 AM Changeset in webkit [228019] by commit-queue@webkit.org
  • 17 edits in trunk

Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default
https://bugs.webkit.org/show_bug.cgi?id=182403

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Alex Christensen.

Source/WebKit:

WebsiteDataStore is the place to set configuration information such as service worker registration path.
This patch updates WebKit code accordingly.
By default, the service worker registration path is in a Caches subfolder, similarly to cache API path.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyServiceWorkerDatabaseDirectory): Deleted.
(WKContextConfigurationSetServiceWorkerDatabaseDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]):
(-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const):
(WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory):

  • UIProcess/gtk/WebProcessPoolGtk.cpp:
  • UIProcess/gtk/WebProcessPoolWPE.cpp:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generateContextConfiguration const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

11:07 AM Changeset in webkit [228018] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

MapHash should return true to doesGC in the DFG depending on useKind because it might resolve a rope
https://bugs.webkit.org/show_bug.cgi?id=182402

Reviewed by Yusuke Suzuki.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

10:51 AM Changeset in webkit [228017] by graouts@webkit.org
  • 11 edits
    1 copy
    1 add
    1 delete in trunk/LayoutTests

[Modern Media Controls] Turn media/modern-media-controls/volume-* back on
https://bugs.webkit.org/show_bug.cgi?id=182438

Reviewed by Dean Jackson.

Update tests to match the modern-media-controls design and expectations.
One test was reworked as a Slider test since VolumeSlider no longer exists.

  • media/modern-media-controls/slider/slider-value-expected.txt: Renamed from LayoutTests/media/modern-media-controls/volume-slider/volume-slider-value-expected.txt.
  • media/modern-media-controls/slider/slider-value.html: Renamed from LayoutTests/media/modern-media-controls/volume-slider/volume-slider-value.html.
  • media/modern-media-controls/volume-down-support/volume-down-support-expected.txt:
  • media/modern-media-controls/volume-down-support/volume-down-support.html:
  • media/modern-media-controls/volume-slider/volume-slider-expected.txt: Removed.
  • media/modern-media-controls/volume-slider/volume-slider-value-expected.txt: Removed.
  • media/modern-media-controls/volume-slider/volume-slider.html: Removed.
  • media/modern-media-controls/volume-support/volume-support-click-expected.txt:
  • media/modern-media-controls/volume-support/volume-support-click.html:
  • media/modern-media-controls/volume-support/volume-support-drag-expected.txt:
  • media/modern-media-controls/volume-support/volume-support-drag.html:
  • media/modern-media-controls/volume-up-support/volume-up-support-expected.txt:
  • media/modern-media-controls/volume-up-support/volume-up-support.html:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
9:44 AM Changeset in webkit [228016] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[Extra Zoom Mode] Implement support for indirect mainframe scrolling
https://bugs.webkit.org/show_bug.cgi?id=182421
<rdar://problem/35142694>

Reviewed by Tim Horton.

Makes a few small adjustments to WKScrollView to improve mainframe scrolling, and disable the pinch gesture for
zooming. See below for more details.

  • UIProcess/API/Cocoa/WKWebView.mm:

Remove a now-unneeded WebKitAdditions import.

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]):

Add imports for -Before and -After versions of WKScrollViewAdditions.

(-[WKScrollView addGestureRecognizer:]):

Override -addGestureRecognizer here to prevent touches on the pinch gesture recognizer from being recognized.
I chose this approach instead of just disabling the gesture in -initWithFrame: because (1) the pinch gesture
recognizer is lazily created when setting minimum or maximum zoom scales, rather than immediately in
-initWithFrame:, and (2) even if we set the -enabled to NO, UIKit later resets it to YES in other codepaths.

9:33 AM Changeset in webkit [228015] by Chris Dumez
  • 4 edits in trunk

Clearing a registration should null out its workers before setting their state to "redundant"
https://bugs.webkit.org/show_bug.cgi?id=182418
<rdar://problem/37142874>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing. I verified that this test is passing
in both Firefox and Chrome.

  • web-platform-tests/service-workers/service-worker/activation.https-expected.txt:

Source/WebCore:

Clearing a registration should null out its workers before setting their state to "redundant".
This seems to match Firefox and Chrome.

No new tests, rebaselined existing test.

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::clear):
(WebCore::clearRegistrationWorker): Deleted.

9:25 AM Changeset in webkit [228014] by Carlos Garcia Campos
  • 7 edits in trunk/Tools

[GTK] WebDriver: tests step always times out in the bot
https://bugs.webkit.org/show_bug.cgi?id=182437

Reviewed by Carlos Alberto Lopez Perez.

The process itself is not timing out, but the buildbot step is. This is because we are leaking the Xvfb
processes. We should ensure that only one driver is executed and it's stopped before the process finishes.

  • Scripts/run-webdriver-tests: Call teardown() after run().
  • Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:

(WebDriverSeleniumExecutor.init): Receive the env directly instead of the display driver.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:

(WebDriverTestRunner.init): Use the driver class directly instead of using the DriverProxy. Get the env from
the display driver once and pass it to the test runners.
(WebDriverTestRunner.teardown): Stop the display server.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:

(WebDriverTestRunnerSelenium.init): Receive the env directly instead of the display driver.
(WebDriverTestRunnerSelenium.collect_tests): Pass the env to the executor.
(WebDriverTestRunnerSelenium.run): Ditto.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:

(WebDriverTestRunnerW3C.init): Receive the env directly instead of the display driver.
(WebDriverTestRunnerW3C.run): Pass the env to the executor.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:

(WebDriverW3CExecutor.init): Receive the env directly instead of the display driver.

9:20 AM Changeset in webkit [228013] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed, rolling out r227999.

It didn't fix the problem

Reverted changeset:

"Unreviewed. Try to avoid webdriver tests step timing out in
the bots."
https://trac.webkit.org/changeset/227999

9:12 AM Changeset in webkit [228012] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Clean up ArraySpeciesCreate
https://bugs.webkit.org/show_bug.cgi?id=182434

Reviewed by Saam Barati.

We have duplicate code in filter, map, concatSlowPath.
This patch creates a new global private function @arraySpeciesCreate,
and use it.

  • builtins/ArrayPrototype.js:

(globalPrivate.arraySpeciesCreate):
(filter):
(map):
(globalPrivate.concatSlowPath):

8:38 AM Changeset in webkit [228011] by guijemont@igalia.com
  • 2 edits in trunk/JSTests

JSTests: Skip mozilla/js1_5/Array/regress-157652.js on all memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=182411

Reviewed by Carlos Alberto Lopez Perez.

This is skipped only on arm memory limited platforms. Until recently
it was not a problem on MIPS as the butterfly was not initialized. But
since r227435, the butterfly is initialized in that test and therefore
memory is allocated, and the test typically takes around 512M, which
means it generally gets OOM-killed on the MIPS buildbot.

  • mozilla/mozilla-tests.yaml:
8:30 AM Changeset in webkit [228010] by commit-queue@webkit.org
  • 18 edits in trunk

[Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/modern-media-controls/tracks-support back on
https://bugs.webkit.org/show_bug.cgi?id=182426

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

Source/WebCore:

Ensure that the tracks panel isn't dismissed by updating the layout.

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

(InlineMediaControls.prototype.layout):

LayoutTests:

Update tests to match the modern-media-controls design and expectations. One test fails currently due to an issue with the
auto-hide behavior, it is tracked in webkit.org/b/182425.

  • media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html:
  • media/modern-media-controls/tracks-panel/tracks-panel-position-and-size-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-position-and-size.html:
  • 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-audio-tracks-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
  • media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html:
  • media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
  • media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
  • platform/mac/TestExpectations:
7:24 AM Changeset in webkit [228009] by Ms2ger@igalia.com
  • 3 edits in trunk/LayoutTests

imagebitmap gardening
https://bugs.webkit.org/show_bug.cgi?id=182430

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:14 AM Changeset in webkit [228008] by Claudio Saavedra
  • 3 edits in trunk/LayoutTests

[GTK][Wayland][WPE] fast/canvas/canvas-createPattern-video-modify.html failing
https://bugs.webkit.org/show_bug.cgi?id=182432

Unreviewed gardening.

  • platform/gtk-wayland/TestExpectations:
  • platform/wpe/TestExpectations:
7:08 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
7:02 AM Changeset in webkit [228007] by Konstantin Tokarev
  • 3 edits in trunk/Source/WTF

Unreviewed build fix for JSCOnly on macOS after r227845.
https://bugs.webkit.org/show_bug.cgi?id=182274

Reverted part of r227845 that moved CommonCryptoSPI.h
handling into PlatformMac, because it is needed for all
ports which can be built on macOS.

  • wtf/CMakeLists.txt:
  • wtf/PlatformMac.cmake:
5:54 AM Changeset in webkit [228006] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

It broke several unit tests (Requested by KaL on #webkit).

Reverted changeset:

"[SOUP] Ensure domain is valid when converting a WebCore
Cookie to Soup"
https://bugs.webkit.org/show_bug.cgi?id=182328
https://trac.webkit.org/changeset/227964

5:46 AM Changeset in webkit [228005] by clopez@igalia.com
  • 2 edits in trunk/Tools

Start timeout for the run-buildbot-test script is too aggressive
https://bugs.webkit.org/show_bug.cgi?id=182429

Reviewed by Carlos Garcia Campos.

15 seconds is not enough waiting for the update database process
to complete on a system backed with rotational HDDs. Raise it to 60.

  • BuildSlaveSupport/build.webkit.org-config/run-buildbot-test.py:

(wait_for_master_ready):

4:36 AM Changeset in webkit [228004] by clopez@igalia.com
  • 3 edits in trunk/Tools

re-add ARM JSCOnly bots on buildbot waterfall
https://bugs.webkit.org/show_bug.cgi?id=182428

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
4:33 AM Changeset in webkit [228003] by Ms2ger@igalia.com
  • 12 edits
    1 move
    7 adds
    2 deletes in trunk/LayoutTests

Update imagebitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=182335
<rdar://problem/37110684>

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/common.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html: Added.
  • web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
  • web-platform-tests/common/namespaces.js: Added.
  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/images/pattern.mp4: Added.
  • web-platform-tests/images/pattern.svg: Added.
  • web-platform-tests/images/w3c-import.log:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
4:19 AM Changeset in webkit [228002] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

Remove ARM JSCOnly bots from buildbot waterfall
https://bugs.webkit.org/show_bug.cgi?id=182398

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
2:53 AM Changeset in webkit [228001] by commit-queue@webkit.org
  • 4 edits in trunk

[GTK] fast/events/message-channel-gc-4.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182104

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-02
Reviewed by Carlos Garcia Campos.

Source/WTF:

RELEASE_ASSERT of ThreadSpecific::set fails because
RunLoop::current is called even in GC thread since r227275.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::current):
Let the second template argument of ThreadSpecific CanBeGCThread::True.

LayoutTests:

  • platform/gtk/TestExpectations:

Unmarked fast/events/message-channel-gc-4.html and fast/workers/worker-cloneport.html.

1:24 AM Changeset in webkit [228000] by Carlos Garcia Campos
  • 20 edits in trunk/WebDriverTests

Unreviewed. Update Selenium WebDriver imported tests.

  • imported/selenium/importer.json:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/webdriver/remote/errorhandler.py:
  • imported/selenium/py/selenium/webdriver/remote/remote_connection.py:
  • imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/click_scrolling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/correct_event_firing_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/driver_element_finding_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/element_attribute_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/frame_switching_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/interactions_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/page_loading_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/rendered_webelement_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/stale_reference_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/window_tests.py:
12:47 AM Changeset in webkit [227999] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Try to avoid webdriver tests step timing out in the bots.

This is another speculative workaround. Carlos Lopez suggested to use os._exit() instead of sys.exit() as a
workaround for a bug in python2.7 when using multiprocess module.

  • Scripts/run-webdriver-tests:

Feb 1, 2018:

11:30 PM Changeset in webkit [227998] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix broken bounds check in FTL's compileGetMyArgumentByVal().
https://bugs.webkit.org/show_bug.cgi?id=182419
<rdar://problem/37044945>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-182419.js: Added.

Source/JavaScriptCore:

In compileGetMyArgumentByVal(), it computes:

limit = m_out.sub(limit, m_out.constInt32(m_node->numberOfArgumentsToSkip()));
...
LValue isOutOfBounds = m_out.aboveOrEqual(originalIndex, limit);

where the original "limit" is the number of arguments passed in by the caller.
If the original limit is less than numberOfArgumentsToSkip, the resultant limit
will be a large unsigned number. As a result, this will defeat the bounds check
that follows it.

Note: later on in compileGetMyArgumentByVal(), we have to adjust adjust the index
value by adding numberOfArgumentsToSkip to it, in order to determine the actual
entry in the arguments array to get.

The fix is to just add numberOfArgumentsToSkip to index upfront (instead of
subtracting it from limit), and doing an overflow speculation check on that
addition before doing the bounds check.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):

11:09 PM Changeset in webkit [227997] by Chris Dumez
  • 5 edits
    3 adds in trunk

When SW install fails, null out registration.installing before setting worker state to "redundant"
https://bugs.webkit.org/show_bug.cgi?id=182416
<rdar://problem/37141997>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

  • web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:

Source/WebCore:

When SW install fails, null out registration.installing before setting worker state to "redundant".
This does not match the spec but this is what Firefox and Chrome do. This is also what the
web-platform-tests expect.

Test: http/tests/workers/service/install-fails.html

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::didFinishInstall):

LayoutTests:

Add layout test coverage. I have verified that this test is passing in both Firefox and Chrome.

  • http/tests/workers/service/install-fails-expected.txt: Added.
  • http/tests/workers/service/install-fails.html: Added.
  • http/tests/workers/service/resources/install-fails-worker.js: Added.

(event.event.waitUntil.new.Promise):

11:06 PM Changeset in webkit [227996] by aakash_jain@apple.com
  • 3 edits in trunk/Websites/perf.webkit.org

Create BuildbotBuildEntry in Buildbot syncer in Buildbot 0.9 format
https://bugs.webkit.org/show_bug.cgi?id=182036

Reviewed by Ryosuke Niwa.

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry): Class for Buildbot entry in Buildbot 0.9 data format.
(BuildbotBuildEntryDeprecated): Renamed from BuildbotBuildEntry, sub-classed from BuildBotEntry. Handles Buildbot 0.8 data format.
(BuildbotBuildEntryDeprecated.prototype.url): URL in buildbot 0.8 format.
(BuildbotSyncer.prototype.builderID): Added.
(BuildbotSyncer.prototype.pathForPendingBuildsJSONDeprecated): Renamed from BuildbotSyncer.prototype.pathForPendingBuildsJSON.
(BuildbotSyncer.prototype.pathForPendingBuilds): Path for pending builds in Buildbot 0.9 format.
(BuildbotSyncer.prototype.urlForBuildNumberDeprecated): Deprecated. Renamed from urlForBuildNumber.
(BuildbotSyncer.prototype.urlForBuildNumber): Updated in Buildbot 0.9 format.
(BuildbotSyncer.prototype.urlForPendingBuild): Buildbot 0.9 has individual webpage for pending buildrequests as well. URL to that page.

  • unit-tests/buildbot-syncer-tests.js: Renamed BuildbotBuildEntry to BuildbotBuildEntryDeprecated.

(sampleBuildData): Sample build data. Common method for in-progress and finished build data.
(samplePendingBuildData): Sample data for a pending build. Separate method so that we can easily create sample data with multiple builds.
(sampleInProgressBuildData): Ditto for in-progress build.
(sampleFinishedBuildData): Ditto for finished build.
(samplePendingBuild): Sample data for single pending build.
(sampleInProgressBuild): Ditto for in-progress build.
(sampleFinishedBuild): Ditto for finished build.
(samplePendingBuildDeprecated): Renamed from samplePendingBuild.
(sampleInProgressBuildDeprecated): Renamed from sampleInProgressBuild.
(sampleFinishedBuildDeprecated): Renamed from sampleFinishedBuild.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for pending build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for in-progress build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for finished build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for mix of in-progress and finished build.

8:46 PM Changeset in webkit [227995] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Test fix after r227848.
https://bugs.webkit.org/show_bug.cgi?id=180951

Unreviewed.

Using kCTFontNameAttribute on an in-memory font causes CTFontDescriptorCreateMatchingFontDescriptor()
to return nullptr. Luckily, we weren't using that attribute anyway.

Covered by existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::mandatoryAttributesForUserInstalledFonts):

8:30 PM Changeset in webkit [227994] by keith_miller@apple.com
  • 7 edits in trunk

Fix crashes due to mishandling custom sections.
https://bugs.webkit.org/show_bug.cgi?id=182404
<rdar://problem/36935863>

Reviewed by Saam Barati.

JSTests:

  • wasm/Builder.js:

(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):

  • wasm/js-api/validate.js:

(assert.truthy):

Source/JavaScriptCore:

This also cleans up some of our validation code. We also
mistakenly, allowed unknown (different from custom sections with
id: 0) section ids.

  • wasm/WasmModuleParser.cpp:

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

  • wasm/WasmModuleParser.h:
  • wasm/WasmSections.h:

(JSC::Wasm::isKnownSection):
(JSC::Wasm::decodeSection):
(JSC::Wasm::validateOrder):
(JSC::Wasm::makeString):
(JSC::Wasm::isValidSection): Deleted.

8:20 PM Changeset in webkit [227993] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

WebKit fails to build (_startAssistingNode has conflicting parameters)
https://bugs.webkit.org/show_bug.cgi?id=182417
<rdar://problem/36965318>

Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.h:

Use Big BOOL like in the implementation.

6:13 PM Changeset in webkit [227992] by Megan Gardner
  • 3 edits in trunk/LayoutTests

Fix race-condition in fast/forms/ios/ipad/select-form-run-twice.html
https://bugs.webkit.org/show_bug.cgi?id=182370

Reviewed by Tim Horton.

There is the potential for multiple button clicks, due to looping function calls that can cause timed functions to
still be running in the next test, causing crashes. Guarding against repeated clicks, and cancelling the timers should
clean up this problem.

  • fast/forms/ios/ipad/select-form-run-twice.html:
  • fast/forms/ios/ipad/unfocus-inside-fixed-hittest.html:
4:54 PM Changeset in webkit [227991] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Improve NetworkResourceLogger to report blocked (versus non-partitioned) cookies
https://bugs.webkit.org/show_bug.cgi?id=182408
<rdar://problem/36918028>

Reviewed by Chris Dumez.

Update the logging method to report blocked origins, rather than logging them as non-partitioned
loads that have no cookies or other content.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::logCookieInformation const):

4:40 PM Changeset in webkit [227990] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r222824): UI process crashes in WebKit::WebBackForwardList::backItem const
<https://webkit.org/b/182409>
<rdar://problem/35495094>

Reviewed by Alex Christensen.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::goToItem): Fix typo so the for loop
actually checks each value in m_entries.

4:25 PM Changeset in webkit [227989] by commit-queue@webkit.org
  • 9 edits in trunk

Delay service worker process creation until actually needed by SWServer
https://bugs.webkit.org/show_bug.cgi?id=182301

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-01
Reviewed by Chris Dumez.

Source/WebCore:

Rename SWServer::Connection::scheduleJobInServer to scheduleJob.
Add sessionID getter from an SWServer.

  • workers/service/server/SWServer.h:

(WebCore::SWServer::sessionID const):

Source/WebKit:

Do not create a service worker process at creation of the first SWServerConnection.
Wait for a WebProcess message that needs it:

  • postMessage message
  • fetchEvent message
  • job scheduling.
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::establishSWServerConnection):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(function):

4:16 PM Changeset in webkit [227988] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

REGRESSION(r227594) [WinCairo] NULL pointer crash in GraphicsContext::getWindowsContext
https://bugs.webkit.org/show_bug.cgi?id=182282

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-01
Reviewed by Žan Doberšek.

ImageBufferCairo has been changed to use GraphicsContextImplCairo
in r227594. But, GraphicsContext::getWindowsContext doesn't care
the case of using GraphicsContextImpl and crashes due to null
dereference of GraphicsContext::m_data.

GraphicsContext::getWindowsContext should create a HDC in that case.

Remove the argument mayCreateBitmap because it is always
true at the moment.

No new tests (Covered by the existing tests)

  • platform/graphics/GraphicsContext.h:

Removed a argument mayCreateBitmap of getWindowsContext and releaseWindowsContext.

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::releaseWindowsContext): Ditto.

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContext::releaseWindowsContext): Ditto.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::releaseWindowsContext): Ditto.

  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore::GraphicsContext::getWindowsContext):
Create a HDC if m_impl is null. Removed a argument mayCreateBitmap.

  • platform/graphics/win/LocalWindowsContext.h:

(WebCore::LocalWindowsContext::LocalWindowsContext):
Removed m_mayCreateBitmap.
(WebCore::LocalWindowsContext::~LocalWindowsContext): Ditto.

4:08 PM Changeset in webkit [227987] by commit-queue@webkit.org
  • 10 edits
    6 adds in trunk/Source/WebCore

[Curl] Use SQLite database in cookie jar implementation for Curl port
https://bugs.webkit.org/show_bug.cgi?id=174942

Patch by Christopher Reid <chris.reid@sony.com> on 2018-02-01
Reviewed by Alex Christensen.

No new tests, Set-Cookie is already tested in Layout tests.

Adding an initial SQLite CookieJar implementation to the curl network layer.
WebCore will now parse and handle both HTTP and DOM cookies instead of using libcurl.
This currently supports cookie storage and retrieval.
Cookie deletion is not yet implemented.

  • platform/Curl.cmake:
  • platform/network/NetworkStorageSession.h: Added cookieDB storage in curl.
  • platform/network/curl/CookieJarCurl.cpp: Removed the old curl cookie handling.
  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/CookieJarCurlDatabase.cpp: Added.
  • platform/network/curl/CookieJarCurlDatabase.h: Added.
  • platform/network/curl/CookieJarDB.cpp: Added.
  • platform/network/curl/CookieJarDB.h: Added.
  • platform/network/curl/CookieUtil.cpp: Added.
  • platform/network/curl/CookieUtil.h: Added.
  • platform/network/curl/CurlContext.cpp: Removed the old curl cookie handling.
  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlRequest.cpp: Added handlers for HTTP response cookies.
  • platform/network/curl/NetworkStorageSessionCurl.cpp:
  • platform/network/curl/ResourceHandleCurlDelegate.cpp:
3:42 PM Changeset in webkit [227986] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Skipped http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=182366

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
3:33 PM Changeset in webkit [227985] by Chris Dumez
  • 11 edits in trunk

Add missing RETURN_IF_EXCEPTION() after object->get() calls in convertDictionary<>()
https://bugs.webkit.org/show_bug.cgi?id=182392
<rdar://problem/37119215>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing.

  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event-constructor.https-expected.txt:

Source/WebCore:

Add missing RETURN_IF_EXCEPTION() after object->get() calls in convertDictionary<>(),
given that getting the property from the object can throw an exception.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):

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

(WebCore::convertDictionary<TestCallbackInterface::Dictionary>):

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

(WebCore::convertDictionary<TestEventConstructor::Init>):

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

(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::convertDictionary<TestObj::ParentDictionary>):
(WebCore::convertDictionary<TestObj::ChildDictionary>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryA>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryB>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryC>):

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

(WebCore::convertDictionary<TestPromiseRejectionEvent::Init>):

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

(WebCore::convertDictionary<DictionaryImplName>):

LayoutTests:

Rebaseline existing test now that output is slightly different.

  • fast/events/constructors/message-event-constructor-expected.txt:
3:17 PM Changeset in webkit [227984] by Wenson Hsieh
  • 10 edits in trunk/Source/WebKit

[Extra zoom mode] Implement basic support for interacting with text form controls
https://bugs.webkit.org/show_bug.cgi?id=182401
<rdar://problem/35143035>

Reviewed by Tim Horton.

Add UI support for interacting with and editing text form controls when extra zoom mode is enabled. See below
for more details.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _textInteractionGesturesEnabled]):
(-[WKWebViewConfiguration _setTextInteractionGesturesEnabled:]):
(-[WKWebViewConfiguration _longPressActionsEnabled]):
(-[WKWebViewConfiguration _setLongPressActionsEnabled:]):

Introduce two new web view configuration flags: textInteractionGesturesEnabled and longPressActionsEnabled.
The former determines whether text interaction gestures (i.e. text selection, moving the caret, showing UI for
IME, etc.) are enabled. The latter determines whether or not long press actions (i.e. touch callout, share
sheet, etc.) are enabled. These are disabled by default only in extra zoom mode.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setTextAsync):

Add a way to set the text value of a currently edited text form control. This will either set the text value of
an input, a. la. autofill, or overwrite the contents of a contenteditable area by selecting everything and
inserting the given text.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::focusNextAssistedNode):

Add a default argument for the completion callback.

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

(-[WKContentView setupInteraction]):
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView _actionForLongPressFromPositionInformation:]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsNearMarkedText:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView insertionPointColor]):

Respect the web view configuration flags above by bailing early from text interaction and long press action
sheet methods.

(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):

Add a flag indicating whether we are in the process of changing focus from one node to another. We use this to
decide whether or not we want to present the text input view controller right away, or just reload the focused
form control overlay. When we stop "assisting" a node, we also keep the focused form control overlay up if we're
only changing focus to another form control.

(-[WKContentView _stopAssistingNode]):
(-[WKContentView presentFocusedFormControlViewController:]):
(-[WKContentView dismissFocusedFormControlViewController:]):
(-[WKContentView shouldPresentTextInputViewController:]):
(-[WKContentView presentTextInputViewController:]):
(-[WKContentView dismissTextInputViewController:]):

Introduce helpers for managing presentation of the focused form control overlay and text input view controller.
All -present and -dismiss helpers here are idempotent. These view controllers are presented from the content
view's view controller for fullscreen presentation.

(-[WKContentView textInputController:didCommitText:]):
(-[WKContentView textInputController:didRequestDismissalWithAction:]):
(-[WKContentView focusedFormControlControllerDidSubmit:]):
(-[WKContentView focusedFormControlControllerDidCancel:]):
(-[WKContentView focusedFormControlControllerDidBeginEditing:]):
(-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]):
(-[WKContentView actionNameForFocusedFormControlController:]):
(-[WKContentView focusedFormControlControllerDidRequestNextNode:]):
(-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]):
(-[WKContentView hasNextNodeForFocusedFormControlController:]):
(-[WKContentView hasPreviousNodeForFocusedFormControlController:]):

Implement delegate methods for the focused form control and text input view controllers. This mainly involves
straightforward plumbing of pieces of AssistedNodeInformation on the content view.

(-[WKContentView pointIsInAssistedNode:]): Deleted.

Remove a method that was still implemented only for binary compatibility with iOS 10.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setTextAsync):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:11 PM Changeset in webkit [227983] by rniwa@webkit.org
  • 18 edits in trunk

Some test cases in accessibility/mac/selection-notification-focus-change.html fail
https://bugs.webkit.org/show_bug.cgi?id=182212
<rdar://problem/36937147>

Reviewed by Antti Koivisto and Wenson Hsieh.

Source/WebCore:

The failure was caused by the async update of the selection appearance not preserving selection reveal intent.
Fixed the bug by storing the intent in a member variable and using it later.

  • dom/Element.cpp:

(WebCore::Element::focus): Removed an unnecessary synchronous layout update.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setNeedsSelectionUpdate): Use the default intent to preserve the old behavior.
(WebCore::FrameSelection::respondToNodeModification): Ditto.
(WebCore::FrameSelection::setSelection): Save the selection reveal intent.
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange): Use the saved intent.

  • editing/FrameSelection.h:
  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusDirectionally): Always update the layout before invoking
nodeRectInAbsoluteCoordinates.

LayoutTests:

Updated and rebaselined the tests.

  • accessibility/ios-simulator/header-elements.html: Force the layout after each call to element.focus

now that element.focus no longer updates the layout synchronously. Ordinarily, this will happen next time
the layout is updated for paint, by JS API, etc... but we have to force the accessibility tree to be
up-to-date for testing purposes.

  • accessibility/ios-simulator/table-cell-for-row-col.html: Ditto.
  • accessibility/mac/selection-notification-focus-change-expected.txt: Now all the test cases are passing.
  • accessibility/mac/table-with-row-col-of-headers.html: Force the layout after each call to element.focus.
  • accessibility/mac/table-with-zebra-rows.html: Ditto.
  • accessibility/scroll-to-global-point-main-window.html: Ditto.
  • accessibility/scroll-to-make-visible-with-subfocus.html: Ditto.
  • editing/input/caret-at-the-edge-of-input.html: Wait for the focused element to reveal itself by a timer.
  • fast/forms/input-text-scroll-left-on-blur.html: Ditto.
  • fast/forms/textarea-no-scroll-on-blur.html: Ditto.
  • fast/forms/textarea-scrolled-type.html: Ditto.
  • platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt: Rebaselined. We now

get one less AXTextSelectionChangedFocus notification because selection updates are now coalesced as expected.

3:03 PM Changeset in webkit [227982] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

2:59 PM Changeset in webkit [227981] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.26

Tag Safari-605.1.26.

1:48 PM Changeset in webkit [227980] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderRubyRun::rubyBaseSafe to RenderTreeBuilder::Ruby
https://bugs.webkit.org/show_bug.cgi?id=182306
<rdar://problem/37041440>

Reviewed by Darin Adler.

Addressing post-review comment.

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::insertChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):

  • rendering/updating/RenderTreeBuilderRuby.h:
12:30 PM Changeset in webkit [227979] by graouts@webkit.org
  • 16 edits
    6 deletes in trunk/LayoutTests

[Modern Media Controls] Turn media/modern-media-controls/ios-inline-media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182390

Reviewed by Eric Carlson.

Update tests to match the modern-media-controls design and expectations.

  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding-expected.txt: Removed.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding.html: Removed.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles-expected.txt: Removed.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles.html: Removed.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-enabled-hidden-controls-bar-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-enabled-hidden-controls-bar.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-tight-padding-expected.txt: Removed.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-tight-padding.html: Removed.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
  • platform/ios/TestExpectations:
11:47 AM Changeset in webkit [227978] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, rebaseline imported/w3c/web-platform-tests/service-workers/service-worker/performance-timeline.https.html

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:

LayoutTests:

11:42 AM Changeset in webkit [227977] by Alan Bujtas
  • 34 edits in trunk/Source/WebCore

[RenderTreeBuilder] Introduce RenderTreeBuilder to takeChild()
https://bugs.webkit.org/show_bug.cgi?id=182373
<rdar://problem/37101484>

Reviewed by Antti Koivisto.

This is in preparation for moving mutation code out of takeChild.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::takeChild):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::takeChild):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderButton.cpp:

(WebCore::RenderButton::takeChild):

  • rendering/RenderButton.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::takeChild):
(WebCore::RenderElement::removeAndDestroyChild):
(WebCore::RenderElement::destroyLeftoverChildren):

  • rendering/RenderElement.h:
  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::takeChild):

  • rendering/RenderGrid.h:
  • rendering/RenderMenuList.cpp:

(RenderMenuList::takeChild):

  • rendering/RenderMenuList.h:
  • rendering/RenderMultiColumnFlow.cpp:

(WebCore::RenderMultiColumnFlow::processPossibleSpannerDescendant):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::removeFromParentAndDestroy):

  • rendering/RenderRuby.cpp:

(WebCore::RenderRubyAsInline::takeChild):
(WebCore::RenderRubyAsBlock::takeChild):

  • rendering/RenderRuby.h:
  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::takeChild):

  • rendering/RenderRubyRun.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::collapseAndDestroyAnonymousSiblingRows): Deleted.

  • rendering/RenderTableRow.h:
  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::takeChild):

  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::takeChild):

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::takeChild):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::takeChild):

  • rendering/svg/RenderSVGText.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::collapseAndDestroyAnonymousSiblingRows):
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

  • rendering/updating/RenderTreeBuilderList.cpp:

(WebCore::RenderTreeBuilder::List::updateItemMarker):

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::insertChild):

11:41 AM Changeset in webkit [227976] by Michael Catanzaro
  • 2 edits in trunk/Source/WTF

[WPE][GTK] Make RunLoop::TimerBase robust to its own deletion inside its source callback
https://bugs.webkit.org/show_bug.cgi?id=182271

Reviewed by Carlos Garcia Campos.

RunLoopTimer::fired executes the user's callback, which could delete the RunLoopTimer
itself. But the source callback is not prepared to handle this case. We can detect it
easily, because TimerBase's destructor will call g_source_destroy(), which confusingly
removes the GSource from its GMainContext without actually destroying the GSource. Then we
can check if the GSource is still attached using g_source_is_destroyed().

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::TimerBase::TimerBase):

11:07 AM Changeset in webkit [227975] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Followup test expectation adjustment from r227947.

Unreviewed test expectations.

  • platform/ios-simulator/TestExpectations:
10:59 AM Changeset in webkit [227974] by dino@apple.com
  • 7 edits in trunk

REGRESSION (r219342): Scaled HTML widget is not responding to a clicks outside the body
https://bugs.webkit.org/show_bug.cgi?id=182394
<rdar://problem/34840816>

Reviewed by Simon Fraser.

Source/WebCore:

If a scale < 1 is applied to the page, then the visual viewport will be bigger
than the layout viewport. Our hit testing code would then ignore any hits
that were outside the layout viewport.

The fix is to only apply a hit testing clip if the page is scaling up, not down.

Update the existing fast/dom/elementFromPoint-scaled-scrolled.html test.

  • page/FrameView.cpp:

(WebCore::FrameView::layoutViewportToAbsoluteRect const): Deleted. This helper is
no longer used, and it would have probably been more confusing to have it accept
a flag to ignore the scale if it is less than 1.

  • page/FrameView.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTest): No need to take the layout rect, remove the origin,
and pass it to a helper that added the origin back. The only thing the helper was
doing for us was applying a scale factor, which we only want to do if it was
scaling up.

LayoutTests:

Add a test for a scaled down page.

  • fast/dom/elementFromPoint-scaled-scrolled-expected.txt:
  • fast/dom/elementFromPoint-scaled-scrolled.html:
10:31 AM Changeset in webkit [227973] by Matt Lewis
  • 11 edits
    1 move
    2 adds
    7 deletes in trunk/LayoutTests

Unreviewed, rolling out r227958 and r227972.
https://bugs.webkit.org/show_bug.cgi?id=182393

This caused a consistent crash on macOS. (Requested by
mlewis13 on #webkit).

Reverted changesets:

"Update imagebitmap tests."
https://bugs.webkit.org/show_bug.cgi?id=182335
https://trac.webkit.org/changeset/227958

"[WPE] Update test expectations for r227958"
https://bugs.webkit.org/show_bug.cgi?id=182391
https://trac.webkit.org/changeset/227972

Patch by Commit Queue <commit-queue@webkit.org> on 2018-02-01

10:01 AM Changeset in webkit [227972] by Ms2ger@igalia.com
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[WPE] Update test expectations for r227958
https://bugs.webkit.org/show_bug.cgi?id=182391

Unreviewed test gardening.

  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
9:30 AM Changeset in webkit [227971] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Bubbles intermittently disappear from bot watchers dashboard
https://bugs.webkit.org/show_bug.cgi?id=182085

Reviewed by Alexey Proskuryakov.

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

(BuildbotIteration.prototype.failureLogURL): failureLogURL doesn't depend on step in Buildbot 0.9.
Return the Build Page URL for Buildbot Buildbot 0.9. Earlier code was also doing the same using a
confusing if (!this._firstFailedStep.logs) statement which is always false for Buildbot 0.9.

9:27 AM Changeset in webkit [227970] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

-Wreturn-type warning in DFGObjectAllocationSinkingPhase.cpp
https://bugs.webkit.org/show_bug.cgi?id=182389

Reviewed by Yusuke Suzuki.

Fix the warning.

As a bonus, remove a couple unreachable breaks for good measure.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
9:22 AM Changeset in webkit [227969] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk

Structured cloning a Symbol should throw
https://bugs.webkit.org/show_bug.cgi?id=182380

Reviewed by Darin Adler.

Source/WebCore:

Test: js/dom/post-message-symbol.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):
Structured cloning should throw "DataCloneError" DOMException if it finds Symbol.
Remove unused isNumber() case. It is done in dumpImmediate.
(WebCore::CloneSerializer::serializeUndefined): Deleted.
(WebCore::CloneSerializer::serializeBoolean): Deleted.
(WebCore::CloneSerializer::serializeNumber): Deleted.
Remove unused functions.

LayoutTests:

  • js/dom/post-message-symbol-expected.txt: Added.
  • js/dom/post-message-symbol.html: Added.
9:20 AM Changeset in webkit [227968] by commit-queue@webkit.org
  • 15 edits in trunk/LayoutTests

[Modern Media Controls] Turn media/modern-media-controls/macos-fullscreen-media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182385

Patch by Antoine Quint <Antoine Quint> on 2018-02-01
Reviewed by Eric Carlson.

Update tests to match the modern-media-controls design and expectations.

  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
  • platform/mac/TestExpectations:
9:10 AM Changeset in webkit [227967] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

We no longer need to queue service worker jobs until the connection to the service worker process has been established
https://bugs.webkit.org/show_bug.cgi?id=182375

Reviewed by Youenn Fablet.

We no longer need to queue service worker jobs until the connection to the service worker process
has been established. We initially did this to work around the fact that registrations restored
from disk would not have an active worker until the service worker process had been established.
However, this issue has been fixed in r227696.

This is basically a revert of r227220, which is no longer needed after r227696.

No new tests, initial fix was covered by an API test that still passes.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::scheduleJob):
(WebCore::SWServer::serverToContextConnectionCreated):

  • workers/service/server/SWServer.h:
8:04 AM Changeset in webkit [227966] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[GTK] Shift + mouse scroll should scroll horizontally
https://bugs.webkit.org/show_bug.cgi?id=181629

Reviewed by Michael Catanzaro.

Source/WebCore:

We currently turn vertical scroll into horizontal when scrolling over the horizontal scrollbar. When Shift key is
pressed, we still want to scroll in the scrollbar direction when scrolling over a scrollbar, so we need to swap
directions in both scrollbars depending on whther the Shift key is pressed or not.

  • page/EventHandler.cpp:

(WebCore::EventHandler::shouldSwapScrollDirection const): Renamed.
(WebCore::EventHandler::handleWheelEvent): Use the new name.
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal const): Deleted.

  • page/EventHandler.h:
  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::copySwappingDirection const): Swap the direction of the event.
(WebCore::PlatformWheelEvent::copyTurningVerticalTicksIntoHorizontalTicks const): Deleted.

  • platform/glib/EventHandlerGLib.cpp:

(WebCore::EventHandler::shouldSwapScrollDirection const): Take into account whether the Shift key is present.
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal const): Deleted.

Source/WebKit:

Swap scroll direction when Shift is pressed for consistency with GtkScrolledWindow.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseScrollEvent):

7:55 AM Changeset in webkit [227965] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Problem with Washington Post images
https://bugs.webkit.org/show_bug.cgi?id=181421

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

This is because Washington Post is using the user agent to decide the image formats it serves. In the case of
chromium the images are served as webp, for firefox jpeg is used and in our case it's assuming we are safari and
it's providing jp2 images that we don't support. Add a user agent quirk to pretend to be chromium for
washingtonpost.com.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

Add test case for the new user agent quirk.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

7:53 AM Changeset in webkit [227964] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Ensure domain is valid when converting a WebCore Cookie to Soup
https://bugs.webkit.org/show_bug.cgi?id=182328

Reviewed by Michael Catanzaro.

soup_cookie_parse() adds the initial '.' to the domain if missing before creating the SoupCookie, but
soup_cookie_new() allows for domain to be a hostname that needs to match exactly. When converting a WebCore
Cookie into a SoupCookie we always want the domain to be considered as such and not as a hostname, so we need to
prepend the '.' if missing.

Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie

  • platform/network/soup/CookieSoup.cpp:

(WebCore::Cookie::toSoupCookie const):

7:52 AM Changeset in webkit [227963] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderTableRow::collapseAndDestroyAnonymousSiblingRows to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182374
<rdar://problem/37102005>

Reviewed by Antti Koivisto.

It's only called from RenderTreeBuilder.

No change in functionality.

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::collapseAndDestroyAnonymousSiblingRows): Deleted.

  • rendering/RenderTableRow.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):

  • rendering/updating/RenderTreeBuilderTable.h:
6:03 AM Changeset in webkit [227962] by fred.wang@free.fr
  • 3 edits in trunk/LayoutTests

Rewrite fast/events/scroll-in-scaled-page-with-overflow-hidden.html to conform with CSSOM View
https://bugs.webkit.org/show_bug.cgi?id=182287

Patch by Frederic Wang <fwang@igalia.com> on 2018-02-01
Reviewed by Antonio Gomes.

Per the CSSOM View specification, it is wrong to use document.body.scrollTop to retrieve the
vertical offset of the viewport in this test, because the body is potentially scrollable.
This commit relies on window.scrollY instead so that the test still works after bug 5991.

  • fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
  • fast/events/scroll-in-scaled-page-with-overflow-hidden.html:
5:58 AM Changeset in webkit [227961] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

REGRESSION(r227893): fast/events/touch/touch-stale-node-crash.html and other tests crash
https://bugs.webkit.org/show_bug.cgi?id=182350

Reviewed by Carlos Alberto Lopez Perez.

Ensure events synthesized from touch gestures have a valid window, screen and device.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/gtk/GestureController.h: Add virtual destructor to GestureControllerclient.
5:38 AM Changeset in webkit [227960] by commit-queue@webkit.org
  • 9 edits
    4 moves
    2 adds
    2 deletes in trunk/LayoutTests

[Modern Media Controls] Turn media/modern-media-controls/media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182377

Patch by Antoine Quint <Antoine Quint> on 2018-02-01
Reviewed by Dean Jackson.

Update tests to match the modern-media-controls design and expectations, moving 3 tests under
media/modern-media-controls/macos-inline-media-controls since they are testing functionality
that is now specific to inline media controls.

  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-bar-always-ltr-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-controls-bar-always-ltr-expected.txt.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-bar-always-ltr.html: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-controls-bar-always-ltr.html.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-placard-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-placard.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-shows-start-button-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-start-button-expected.txt.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-shows-start-button.html: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-start-button.html.
  • media/modern-media-controls/media-controls/media-controls-appear-when-focus-expected.txt:
  • media/modern-media-controls/media-controls/media-controls-appear-when-focus.html:
  • media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
  • media/modern-media-controls/media-controls/media-controls-constructor.html:
  • media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics-expected.txt:
  • media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics.html:
  • media/modern-media-controls/media-controls/media-controls-placard-expected.txt: Removed.
  • media/modern-media-controls/media-controls/media-controls-placard.html: Removed.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
3:50 AM Changeset in webkit [227959] by Chris Dumez
  • 6 edits in trunk

Queue a microtask when a waitUntil() promise is settled
https://bugs.webkit.org/show_bug.cgi?id=182372
<rdar://problem/37101019>

Reviewed by Mark Lam.

LayoutTests/imported/w3c:

Reaseline WPT test now that all checks are passing.

  • web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:

Source/JavaScriptCore:

Export a symbol so it can be used in WebCore.

  • runtime/JSGlobalObject.h:

Source/WebCore:

Queue a microtask when a waitUntil() promise is settled, as per:

Otherwise, we decrement m_pendingPromiseCount too quickly and it may cause
following calls to waitUntil() to throw when they shouldn't.

No new tests, rebaselined existing test.

  • workers/service/ExtendableEvent.cpp:

(WebCore::ExtendableEvent::addExtendLifetimePromise):

3:16 AM Changeset in webkit [227958] by Ms2ger@igalia.com
  • 10 edits
    1 move
    6 adds
    1 delete in trunk/LayoutTests

Update imagebitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=182335

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/common.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html: Added.
  • web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
  • web-platform-tests/common/namespaces.js: Added.
  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/images/pattern.mp4: Added.
  • web-platform-tests/images/pattern.svg: Added.
  • web-platform-tests/images/w3c-import.log:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
1:44 AM Changeset in webkit [227957] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser settings are just a list of names
https://bugs.webkit.org/show_bug.cgi?id=182005

Reviewed by Sergio Villar Senin.

The default size we are using is too small to show the values column, and the window is not resizable because
GObjectClass::constructed() is not called in the parent class.

  • MiniBrowser/gtk/BrowserSettingsDialog.c:

(browser_settings_dialog_init): Use 600x400 as default size.
(browserSettingsDialogConstructed): Chain up to parent constructed.

1:01 AM Changeset in webkit [227956] by Antti Koivisto
  • 11 edits in trunk

Invalidate style for sibling combinators accurately on class change
https://bugs.webkit.org/show_bug.cgi?id=182336

Reviewed by Zalan Bujtas.

Source/WebCore:

Use Style::Invalidator to invalidate only those elements that may be affected by a class
change for sibling combinators and nth pseudo classes.

  • css/RuleFeature.cpp:

Add new AllSiblings MatchElement to use for nth pseudo classes with subselectors.

(WebCore::isSiblingOrSubject):

Add a helper.

(WebCore::RuleFeatureSet::computeNextMatchElement):
(WebCore::RuleFeatureSet::computeSubSelectorMatchElement):

Compute and propage MatchElement::AllSiblings.

  • css/RuleFeature.h:
  • dom/Node.cpp:

(WebCore::Node::updateAncestorsForStyleRecalc):

Don't need to test for childrenAffectedByPropertyBasedBackwardPositionalRules anymore (an oddly named bit for nth pseudo classes).

  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):

Invalidate only the potentially affected elements.
The old code would just unconditionally invalidate the current element. This would propagate to descedants of siblings via
affectedByPreviousSibling bits. That mechanism can be removed when everything has been switched to accurate invalidation.

LayoutTests:

Adapt to progressions.

  • fast/css/direct-adjacent-style-update-optimization-expected.txt:
  • fast/css/direct-adjacent-style-update-optimization.html:
  • fast/css/indirect-adjacent-style-update-optimization-expected.txt:
  • fast/css/indirect-adjacent-style-update-optimization.html:
  • fast/css/nth-last-child-of-style-update-optimization.html:
12:52 AM Changeset in webkit [227955] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Remove WebInspectorUI watchlist and remove myself from 2 watchlists more

Patch by Andres Gomez <Andres Gomez> on 2018-01-31

  • Scripts/webkitpy/common/config/watchlist:
Note: See TracTimeline for information about the timeline view.