WebKit.git
4 months agohttp://webkit.org/css-status/ hangs
simon.fraser@apple.com [Mon, 30 Mar 2020 16:58:30 +0000 (16:58 +0000)]
http://webkit.org/css-status/ hangs
https://bugs.webkit.org/show_bug.cgi?id=209746

Reviewed by Antoine Quint.

A change to CSSProperties.json (probably text-orientation unprefixing) revealed an infinite loop
in mergeProperties() which kept appending values to prefixedPropertyObj.values.

Fix by cloning the array before enumerating it.

* wp-content/themes/webkit/css-status.php:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259203 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoFix "Dead nested assignment" static analyzer warning in monthFromDayInYear()
ddkilzer@apple.com [Mon, 30 Mar 2020 16:58:27 +0000 (16:58 +0000)]
Fix "Dead nested assignment" static analyzer warning in monthFromDayInYear()
<https://webkit.org/b/209718>

Reviewed by Alex Christensen.

* wtf/DateMath.h:
(WTF::monthFromDayInYear): Change the last check so it doesn't
assign a value to `step`, thus avoiding the warning.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259202 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoNetworkConnectionToWebProcess::registerFileBlobURL should validate its parameters
ddkilzer@apple.com [Mon, 30 Mar 2020 15:53:10 +0000 (15:53 +0000)]
NetworkConnectionToWebProcess::registerFileBlobURL should validate its parameters
<https://webkit.org/b/209713>
<rdar://problem/60097168>

Reviewed by Youenn Fablet.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
- Add message check to validate `url` parameter.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[Cocoa] Sleep disabling should be performed in the UI process
pvollan@apple.com [Mon, 30 Mar 2020 14:48:38 +0000 (14:48 +0000)]
[Cocoa] Sleep disabling should be performed in the UI process
https://bugs.webkit.org/show_bug.cgi?id=209676

Reviewed by Darin Adler.

Source/WebCore:

Since sleep disabling is causing communication with the power management service, it should be performed in the UI process.
This patch fixes this by creating a sleep disabler client, which will notify the UI process when a sleep disabler is being
created and destroyed. In response to these messages, the UI process will perform the actual sleep disabling and enabling.
A new sleep disabler class is created which wraps the PAL sleep disabler, and notifies the sleep disabler client when set.
If the sleep disabler client is set, a PAL sleep disabler instance will not be created in the WebContent process, since this
will then happen in the UI process.

API test: WebKit.SleepDisabler

* Headers.cmake:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateSleepDisabling):
* html/HTMLMediaElement.h:
* platform/SleepDisabler.cpp: Added.
(WebCore::SleepDisabler::SleepDisabler):
(WebCore::SleepDisabler::~SleepDisabler):
* platform/SleepDisabler.h: Added.
(WebCore::SleepDisabler::type const):
* platform/SleepDisablerClient.cpp: Added.
(WebCore::sleepDisablerClient):
* platform/SleepDisablerClient.h: Added.
(WebCore::SleepDisablerClient::~SleepDisablerClient):
* platform/SleepDisablerIdentifier.h: Added.
* testing/Internals.cpp:
(WebCore::Internals::createSleepDisabler):
(WebCore::Internals::destroySleepDisabler):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

Since sleep disabling is causing communication with the power management service, it should be performed in the UI process.
The UI process will be notified by the WebContent process about sleep disablers being created and destroyed, and will perform
the actual sleep disabling and enabling.

* Scripts/webkit/messages.py:
* Sources.txt:
* UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
* UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _hasSleepDisabler]):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didCreateSleepDisabler):
(WebKit::WebProcessProxy::didDestroySleepDisabler):
(WebKit::WebProcessProxy::hasSleepDisabler):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/GPU/media/RemoteLegacyCDM.cpp:
* WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
* WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
* WebProcess/WebSleepDisablerClient.cpp: Added.
(WebKit::WebSleepDisablerClient::didCreateSleepDisabler):
(WebKit::WebSleepDisablerClient::didDestroySleepDisabler):
* WebProcess/WebSleepDisablerClient.h: Added.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit/SleepDisabler.mm: Added.
(TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259200 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[GTK] Gardening, remove redundant baselines
dpino@igalia.com [Mon, 30 Mar 2020 14:15:49 +0000 (14:15 +0000)]
[GTK] Gardening, remove redundant baselines
https://bugs.webkit.org/show_bug.cgi?id=209738

Unreviewed gardening.

The baselines below are not needed as they're equal to the
generic baseline.

* platform/gtk/animations/lineheight-animation-expected.txt: Removed.
* platform/gtk/animations/simultaneous-start-transform-expected.txt: Removed.
* platform/gtk/animations/width-using-ems-expected.txt: Removed.
* platform/gtk/css-dark-mode/prefers-color-scheme-expected.txt: Removed.
* platform/gtk/fast/dom/Range/getBoundingClientRect-expected.txt: Removed.
* platform/gtk/fast/events/window-events-bubble-expected.txt: Removed.
* platform/gtk/fast/events/window-events-bubble2-expected.txt: Removed.
* platform/gtk/fast/forms/number/number-spinbutton-change-and-input-events-expected.txt: Removed.
* platform/gtk/fast/forms/number/number-spinbutton-click-in-iframe-expected.txt: Removed.
* platform/gtk/fast/forms/number/number-spinbutton-gets-disabled-or-readonly-expected.txt: Removed.
* platform/gtk/fast/images/icon-decoding-expected.txt: Removed.
* platform/gtk/http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-001-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-001-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-001-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/001-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/websockets/security/001-expected.txt: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259199 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[macOS] Datalist dropdown suggestions table can be scrolled too far
wenson_hsieh@apple.com [Mon, 30 Mar 2020 13:56:32 +0000 (13:56 +0000)]
[macOS] Datalist dropdown suggestions table can be scrolled too far
https://bugs.webkit.org/show_bug.cgi?id=209721

Reviewed by Tim Horton.

WKDataListSuggestionTableView's enclosing scroll view is set to an incorrect size while laying out the table
view, due to AppKit logic that attempts to adjust the size of the table view's enclosing scroll view after we've
already attempted to set the frame of the scroll view under the overridden call to -layout.

Fix this by refactoring the logic around the suggestion table view's enclosing scroll view; currently,
WKDataListSuggestionTableView overrides -enclosingScrollView to return its own NSScrollView, which it sizes
underneath an overridden call to -layout. This is a bit strange, since the table view is actually a subview of
the scroll view it owns; the fact that laying out the table view causes an ancestor view to change size (and
subsequently invalidate the table view's layout) seems to be what breaks AppKit's enclosing scroll view
adjustment logic.

Instead, we can have own both the table view and the table view's enclosing scroll view.

* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionTableView initWithElementRect:]):
(-[WKDataListSuggestionsController initWithInformation:inView:]):

Move the scroll view initialization logic out of -[WKDataListSuggestionTableView initWithElementRect:] and into
this method. This also means that we can initialize the scroll view with the bounds of the window's content
view, instead of waiting until we lay out the table view underneath the scroll view.

(-[WKDataListSuggestionsController updateWithInformation:]):
(-[WKDataListSuggestionsController invalidate]):

Clear out and remove _scrollView as well when we tear down the controller.

(-[WKDataListSuggestionsController showSuggestionsDropdown:]):
(-[WKDataListSuggestionTableView layout]): Deleted.
(-[WKDataListSuggestionTableView enclosingScrollView]): Deleted.
(-[WKDataListSuggestionTableView removeFromSuperviewWithoutNeedingDisplay]): Deleted.

Now that the controller owns the scroll view, we don't need to override these anymore.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259198 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[macOS] REGRESSION(r258949) API test failures
pvollan@apple.com [Mon, 30 Mar 2020 13:49:44 +0000 (13:49 +0000)]
[macOS] REGRESSION(r258949) API test failures
https://bugs.webkit.org/show_bug.cgi?id=209702

Reviewed by Darin Adler.

After r258949, the preference observer is started when the app is activated, but since the app running
API tests is not being activated, the preference observer needs to be manually instantiated in each test.

* TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:
(-[WKTestPreferenceObserver preferenceDidChange:key:encodedValue:]):
(TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259197 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[GTK] Gardening, update TestExpectations
dpino@igalia.com [Mon, 30 Mar 2020 13:13:40 +0000 (13:13 +0000)]
[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=209728

Unreviewed gardening.

* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-003-expected.txt:
Added after 259059.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259196 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed test gardening.
antti@apple.com [Mon, 30 Mar 2020 12:37:40 +0000 (12:37 +0000)]
Unreviewed test gardening.

* TestExpectations:
* platform/ios/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259195 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUpdate css/selectors WPT tests
antti@apple.com [Mon, 30 Mar 2020 11:54:02 +0000 (11:54 +0000)]
Update css/selectors WPT tests
https://bugs.webkit.org/show_bug.cgi?id=209726

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/css/selectors/CHANGES: Removed.
* web-platform-tests/css/selectors/META.yml: Added.
* web-platform-tests/css/selectors/Makefile: Removed.
* web-platform-tests/css/selectors/OWNERS: Removed.
* web-platform-tests/css/selectors/README: Removed.
* web-platform-tests/css/selectors/TODO: Removed.
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/cssom-expected.txt:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/cssom.html:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/resources/syntax-quirks.html:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/resources/syntax-xml.xhtml:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/resources/w3c-import.log:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/semantics-expected.txt:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/semantics.html:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/syntax-expected.txt:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/syntax.html:
* web-platform-tests/css/selectors/attribute-selectors/attribute-case/w3c-import.log:
* web-platform-tests/css/selectors/attribute-selectors/style-attribute-selector-expected.txt: Added.
* web-platform-tests/css/selectors/attribute-selectors/style-attribute-selector.html: Added.
* web-platform-tests/css/selectors/attribute-selectors/w3c-import.log: Added.
* web-platform-tests/css/selectors/css3-modsel-1.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-10.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-100.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-100b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-101.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-101b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-102.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-102b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-103.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-103b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-104.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-104b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-105.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-105b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-106.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-106b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-107.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-107b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-108.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-108b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-109.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-109b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-11.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-110.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-110b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-111.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-111b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-112.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-112b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-113.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-113b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-114.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-114b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-115.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-115b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-116.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-116b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-117.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-117b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-118.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-119.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-12.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-120.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-121.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-122.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-123.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-123b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-124.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-124b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-125.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-125b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-126.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-126b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-127.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-127b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-128.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-128b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-129.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-129b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-13.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-130.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-130b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-131.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-131b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-132.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-132b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-133.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-133b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-134.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-134b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-135.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-135b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-136.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-136b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-137.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-137b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-138.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-138b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-139.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-139b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-14.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-140.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-140b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-141.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-141b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-142.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-142b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-143.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-143b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-144.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-145a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-145b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-146a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-146b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-147a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-147b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-148.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-149.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-149b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-14b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-14c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-14d.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-14e.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-15.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-150.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-151.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-152.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-153.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-154.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-155.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-155a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-155b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-155c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-155d.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-156.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-156b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-156c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-157.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-158.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-159.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-15b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-15c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-16.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-160.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-161.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-162.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-163.xml-disabled-contains-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-164.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-165.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-166.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-166a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-167.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-167a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-168.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-168a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-169.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-169a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-17.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-170.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-170a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-170b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-170c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-170d.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-171.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-172a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-172b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-173a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-173b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-174a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-174b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-175a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-175b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-175c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-176.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-177a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-177b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-178.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-179.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-179a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-18.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-180.xml-disabled-because-we-want-to-allow-for-expansion: Removed.
* web-platform-tests/css/selectors/css3-modsel-180a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-181.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-182.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-183.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-184a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-184b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-184c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-184d.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-184e.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-184f.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-18a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-18b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-18c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-19.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-19a.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-19b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-2.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-20.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-21.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-21b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-21c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-22.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-23.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-24.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-25.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-27.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-27a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-27b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-28.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-28b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-28c.pl-draft: Removed.
* web-platform-tests/css/selectors/css3-modsel-29.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-29b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-3.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-30.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-31.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-32.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-33.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-34.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-35.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-36.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-37.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-38.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-39.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-39a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-39b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-39c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-3a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-4.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-40.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-41.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-41a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-42.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-42a.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-43.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-43b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-44.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-44b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-44c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-44d.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-45.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-45b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-45c.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-46.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-46b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-47.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-48.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-49.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-5.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-50.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-51.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-52.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-53.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-54.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-55.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-56.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-57.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-57b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-58.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-59.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-6.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-60.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-61.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-62.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-63.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-64.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-65.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-66.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-66b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-67.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-68.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-69.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-7.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-70.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-72.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-72b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-73.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-73b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-74.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-74b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-75.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-75b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-76.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-76b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-77.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-77b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-78.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-78b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-79.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-7b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-7c.xml-disabled-due-to-limitations-in-the-build-system: Removed.
* web-platform-tests/css/selectors/css3-modsel-7d.xml-disabled-due-to-limitations-in-the-build-system: Removed.
* web-platform-tests/css/selectors/css3-modsel-8.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-80.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-81.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-81b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-82.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-82b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-83.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-84.xml-disabled-contains-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-84b.xml-disabled-contains-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-85.xml-disabled-contains-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-86.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-87.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-87b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-88.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-88b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-89.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-9.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-90.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-90b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-91.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-92.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-93.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-94.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-94b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-95.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-96.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-96b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-97.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-97b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-98.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-98b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-99.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-99b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-d1.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-d1b.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-d2.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-d3.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-d4.xml: Removed.
* web-platform-tests/css/selectors/css3-modsel-d5.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-d5a.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-d5b.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-d5c.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-d5d.xml-removed: Removed.
* web-platform-tests/css/selectors/css3-modsel-d5e.xml-removed: Removed.
* web-platform-tests/css/selectors/floating-first-letter-05d0-expected.html: Added.
* web-platform-tests/css/selectors/floating-first-letter-05d0.html: Added.
* web-platform-tests/css/selectors/floating-first-letter-feff-expected.html: Added.
* web-platform-tests/css/selectors/floating-first-letter-feff.html: Added.
* web-platform-tests/css/selectors/focus-visible-005-expected.txt:
* web-platform-tests/css/selectors/focus-visible-005.html:
* web-platform-tests/css/selectors/focus-visible-007-expected.txt: Added.
* web-platform-tests/css/selectors/focus-visible-007.html: Added.
* web-platform-tests/css/selectors/focus-visible-009-expected.txt: Added.
* web-platform-tests/css/selectors/focus-visible-009.html: Added.
* web-platform-tests/css/selectors/focus-visible-010-expected.txt: Added.
* web-platform-tests/css/selectors/focus-visible-010.html: Added.
* web-platform-tests/css/selectors/focus-visible-011-expected.txt: Added.
* web-platform-tests/css/selectors/focus-visible-011.html: Added.
* web-platform-tests/css/selectors/historical-xmlid-expected.xht: Added.
* web-platform-tests/css/selectors/historical-xmlid.xht: Added.
* web-platform-tests/css/selectors/htaccess: Removed.
* web-platform-tests/css/selectors/html-full.css: Removed.
* web-platform-tests/css/selectors/html-shell.css: Removed.
* web-platform-tests/css/selectors/i18n/META.yml: Added.
* web-platform-tests/css/selectors/i18n/OWNERS: Removed.
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-004.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-005.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-006.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-007.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-008.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-009.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-010.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-011.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-012.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-014.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-015.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-016.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-024.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-025.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-026.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-027.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-028.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-029.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-030.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-031.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-032.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-034.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-035.html:
* web-platform-tests/css/selectors/i18n/css3-selectors-lang-036.html:
* web-platform-tests/css/selectors/i18n/w3c-import.log:
* web-platform-tests/css/selectors/invalidation/attribute-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/attribute.html: Added.
* web-platform-tests/css/selectors/invalidation/defined-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/defined.html: Added.
* web-platform-tests/css/selectors/invalidation/enabled-disabled-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/enabled-disabled.html: Added.
* web-platform-tests/css/selectors/invalidation/first-child-last-child-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/first-child-last-child.html: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-001-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-001.html: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-002-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-002.html: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-003-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-003.html: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-004-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/insert-sibling-004.html: Added.
* web-platform-tests/css/selectors/invalidation/is-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/is.html: Added.
* web-platform-tests/css/selectors/invalidation/matches-expected.txt: Removed.
* web-platform-tests/css/selectors/invalidation/matches.html: Removed.
* web-platform-tests/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html:
* web-platform-tests/css/selectors/invalidation/sibling-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/sibling.html: Added.
* web-platform-tests/css/selectors/invalidation/w3c-import.log:
* web-platform-tests/css/selectors/invalidation/where-expected.txt: Added.
* web-platform-tests/css/selectors/invalidation/where.html: Added.
* web-platform-tests/css/selectors/is-nested-expected.txt: Added.
* web-platform-tests/css/selectors/is-nested.html: Added.
* web-platform-tests/css/selectors/is-specificity-expected.txt: Added.
* web-platform-tests/css/selectors/is-specificity.html: Added.
* web-platform-tests/css/selectors/matches-nested-expected.txt: Removed.
* web-platform-tests/css/selectors/matches-nested.html: Removed.
* web-platform-tests/css/selectors/matches-specificity-expected.txt: Removed.
* web-platform-tests/css/selectors/matches-specificity.html: Removed.
* web-platform-tests/css/selectors/not-links-expected.html: Added.
* web-platform-tests/css/selectors/not-links.html: Added.
* web-platform-tests/css/selectors/of-type-selectors-expected.xhtml:
* web-platform-tests/css/selectors/of-type-selectors.xhtml:
* web-platform-tests/css/selectors/old-tests/css3-modsel-1.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-10.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-100.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-100b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-101-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-101.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-101b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-101b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-102-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-102.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-102b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-103-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-103.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-103b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-103b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-104.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-104b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-105-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-105.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-105b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-105b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-106-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-106.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-106b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-106b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-107.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-107b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-108-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-108.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-108b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-108b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-109-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-109.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-109b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-109b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-11.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-110-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-110.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-110b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-110b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-111.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-111b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-112-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-112.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-112b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-112b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-113.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-113b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-114.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-114b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-115-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-115.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-115b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-115b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-116-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-116.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-116b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-116b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-117-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-117.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-117b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-117b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-118.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-119.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-120.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-121.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-122-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-122.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-123.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-123b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-124.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-124b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-125-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-125.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-125b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-125b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-126-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-126.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-126b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-126b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-127-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-127.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-127b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-127b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-128-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-128.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-128b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-128b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-129-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-129.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-129b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-129b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-13.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-130.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-130b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-131.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-131b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-132.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-132b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-133.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-133b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-134-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-134.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-134b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-134b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-135-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-135.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-135b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-135b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-136-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-136.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-136b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-136b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-137.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-137b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-138.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-138b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-139.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-139b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-14.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-140.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-140b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-141-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-141.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-141b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-141b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-142-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-142.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-142b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-142b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-143-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-143.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-143b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-143b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-144.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-145a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-145b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-146a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-146b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-147a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-147b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-148-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-148.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-149-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-149.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-149b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-149b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-14b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-14b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-14c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-14d.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-14e.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-15.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-150.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-151-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-151.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-152-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-152.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-153.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-154-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-154.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155c-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155d-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-155d.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-156-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-156.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-156b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-156b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-156c-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-156c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-157-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-157.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-158-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-158.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-15b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-15b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-160-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-160.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-166.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-166a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-167.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-167a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-168-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-168.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-168a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-168a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-169-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-169.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-169a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-169a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170c-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170d-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-170d.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-171.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-172a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-172a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-172b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-172b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-173a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-173a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-173b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-173b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-174a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-174b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-175a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-175a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-175b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-175b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-175c-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-175c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-176-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-176.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-177b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-177b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-178-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-178.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-179-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-179.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-179a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-180a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-181.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-182.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-183.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184a-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184c-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184d-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184d.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184e-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184e.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184f-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-184f.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-2.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-21b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-21c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-22.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-23.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-24.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-25.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-27.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-27a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-27b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-28.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-28b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-29.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-29b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-3.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-30.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-31.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-32.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-33.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-34.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-35.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-36.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-37.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-38.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-39.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-39a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-39b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-39c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-3a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-4.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-41.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-41a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-42.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-42a.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-43.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-43b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-44.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-44b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-44c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-44d.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-45.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-45b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-45c.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-46.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-46b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-47.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-48-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-48.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-49-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-49.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-5.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-50.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-51.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-52.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-53.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-54-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-54.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-55-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-55.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-56-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-56.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-57.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-57b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-59-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-59.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-6.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-60-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-60.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-66b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-67.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-68.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-69.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-7.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-70.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-72.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-72b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-73.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-73b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-74.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-74b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-75.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-75b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-76.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-76b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-77.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-77b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-78.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-78b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-79.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-7b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-7b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-8.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-80.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-81.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-81b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-82.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-82b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-83-expected.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-83.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-86.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-87-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-87.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-87b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-87b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-88.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-88b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-89.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-9.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-90-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-90.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-90b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-90b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-91.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-92.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-93.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-94.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-94b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-95.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-96.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-96b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-97.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-97b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-98.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-98b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-99-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-99.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-99b-expected.xht: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-99b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-d1.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-d1b.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-d2.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-d3.xml: Added.
* web-platform-tests/css/selectors/old-tests/css3-modsel-d4.xml: Added.
* web-platform-tests/css/selectors/old-tests/w3c-import.log: Added.
* web-platform-tests/css/selectors/remove-hovered-element-expected.html: Added.
* web-platform-tests/css/selectors/remove-hovered-element.html: Added.
* web-platform-tests/css/selectors/resources/w3c-import.log:
* web-platform-tests/css/selectors/root-siblings.htm: Added.
* web-platform-tests/css/selectors/scope-selector-expected.txt: Added.
* web-platform-tests/css/selectors/scope-selector.html: Added.
* web-platform-tests/css/selectors/selector-placeholder-shown-emptify-placeholder-expected.txt: Added.
* web-platform-tests/css/selectors/selector-placeholder-shown-emptify-placeholder.html: Added.
* web-platform-tests/css/selectors/selectors-case-sensitive-001-expected.txt: Added.
* web-platform-tests/css/selectors/selectors-case-sensitive-001.html: Added.
* web-platform-tests/css/selectors/selectors-empty-001.xml:
* web-platform-tests/css/selectors/sharing-in-svg-use-expected.html: Added.
* web-platform-tests/css/selectors/sharing-in-svg-use.html: Added.
* web-platform-tests/css/selectors/tng.css: Removed.
* web-platform-tests/css/selectors/user-invalid.html:
* web-platform-tests/css/selectors/w3c-import.log:
* web-platform-tests/css/selectors/webkit-pseudo-element-expected.txt: Added.
* web-platform-tests/css/selectors/webkit-pseudo-element.html: Added.
* web-platform-tests/css/selectors/x-pseudo-element-expected.txt: Added.
* web-platform-tests/css/selectors/x-pseudo-element.html: Added.
* web-platform-tests/css/selectors/xhtml-full.css: Removed.
* web-platform-tests/css/selectors/xhtml-shell.css: Removed.
* web-platform-tests/css/selectors/xml-full.css: Removed.
* web-platform-tests/css/selectors/xml-shell.css: Removed.

LayoutTests:

* TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259194 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoMark Pointer Events and Web Animations features as completed in https://webkit.org...
graouts@webkit.org [Mon, 30 Mar 2020 11:18:10 +0000 (11:18 +0000)]
Mark Pointer Events and Web Animations features as completed in https://webkit.org/status/
https://bugs.webkit.org/show_bug.cgi?id=209730

Reviewed by Antti Koivisto.

Pointer Events and Web Animations have been completed already, mark those as Supported in https://webkit.org/status/.
Additionally, we fix an alphabetical ordering issue.

* features.json:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259193 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed. [GTK][WPE] Media controls: Remove references to -webkit-media-controls...
carlosgc@webkit.org [Mon, 30 Mar 2020 09:37:29 +0000 (09:37 +0000)]
Unreviewed. [GTK][WPE] Media controls: Remove references to -webkit-media-controls-time-remaining-display

* Modules/mediacontrols/mediaControlsAdwaita.css:
(audio::-webkit-media-controls-current-time-display.hidden,):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259192 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[GTK][WPE] REGRESSION(r257775): Media controls current time label changes its size...
carlosgc@webkit.org [Mon, 30 Mar 2020 09:35:05 +0000 (09:35 +0000)]
[GTK][WPE] REGRESSION(r257775): Media controls current time label changes its size when it's updated
https://bugs.webkit.org/show_bug.cgi?id=209593

Reviewed by Xabier Rodriguez-Calvar.

This regressed in r257775 for me, because my system font doesn't use fixed width for digits. We should try to
use the tabular-nums font variant if available.

* Modules/mediacontrols/mediaControlsAdwaita.css:
(audio::-webkit-media-controls-current-time-display,): Add font-variant-numeric: tabular-nums;

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259191 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[WPE] Can't create WebGL context after r259139
zandobersek@gmail.com [Mon, 30 Mar 2020 09:30:01 +0000 (09:30 +0000)]
[WPE] Can't create WebGL context after r259139
https://bugs.webkit.org/show_bug.cgi?id=209722

Reviewed by Carlos Garcia Campos.

.:

* Source/cmake/OptionsWPE.cmake: Disable WebGL2 for WPE until
the ANGLE-backed implementation can be used for it.

Source/WebCore:

Adjust the WebXRWebGLRenderingContext tuple depending on the WebGL2
feature being enabled or not.

* Modules/webxr/WebXRWebGLLayer.h:
* Modules/webxr/WebXRWebGLLayer.idl:

LayoutTests:

* platform/wpe/TestExpectations:
Remove catch-all expectations for WebGL tests.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259190 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[GTK] Gardening, update baselines
dpino@igalia.com [Mon, 30 Mar 2020 09:23:05 +0000 (09:23 +0000)]
[GTK] Gardening, update baselines
https://bugs.webkit.org/show_bug.cgi?id=209724

Unreviewed gardening.

* platform/gtk/fast/forms/placeholder-position-expected.txt: Updated
after r258906.
* platform/gtk/fast/ruby/bopomofo-mixed-expected.txt: Added after
r258990.
* platform/gtk/fast/text/international/text-combine-image-test-expected.png:
Updated after r258990.
* platform/gtk/fast/text/international/text-combine-image-test-expected.txt:
Updated after r258990.
* platform/gtk/fast/writing-mode/vertical-align-table-baseline-expected.png:
Updated after r258990.
* platform/gtk/fast/writing-mode/vertical-align-table-baseline-expected.txt:
Updated after r258990.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259189 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[HarfBuzz] Not all CSS font features are applied
carlosgc@webkit.org [Mon, 30 Mar 2020 09:11:15 +0000 (09:11 +0000)]
[HarfBuzz] Not all CSS font features are applied
https://bugs.webkit.org/show_bug.cgi?id=209591

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Implement font feature precedence algorithm for HarfBuzz, including features specified in font-face rule and
font-variant settings that we were ignoring.

7.2. Feature precedence
https://www.w3.org/TR/css-fonts-3/#feature-precedence

* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::createFontPlatformData): Add font features to be enanled to the font config pattern.
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
* platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
(WebCore::setFeatureSettingsFromVariants): Helper to add font-variant settings.
(WebCore::fontFeatures): Implement font feature precedence algorithm.
(WebCore::findScriptForVerticalGlyphSubstitution): Use HB_TAG direftly.
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Pass FontPlatformData to fontFeatures().

LayoutTests:

Remove expectations for tests that are now passing.

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259188 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[AutoSizing] Bring back the old auto-sizing code as a deprecated codepath for compati...
graouts@webkit.org [Mon, 30 Mar 2020 07:33:06 +0000 (07:33 +0000)]
[AutoSizing] Bring back the old auto-sizing code as a deprecated codepath for compatibility reasons
https://bugs.webkit.org/show_bug.cgi?id=209669
<rdar://problem/60111081>

Reviewed by Alan Bujtas and Darin Adler.

Source/WebCore:

We changed the auto-sizing code for webkit.org/b/196743 in r244098, but some clients need it and we bring it back
via two exclusive auto-sizing mode: fixed-width (the existing mode) and size-to-content (the resurrected mode).

* page/FrameView.cpp:
(WebCore::FrameView::autoSizeIfEnabled):
(WebCore::FrameView::performFixedWidthAutoSize):
(WebCore::FrameView::performSizeToContentAutoSize):
(WebCore::FrameView::enableFixedWidthAutoSizeMode):
(WebCore::FrameView::enableSizeToContentAutoSizeMode):
(WebCore::FrameView::enableAutoSizeMode):
* page/FrameView.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::enableFixedWidthAutoSizeMode):
(WebCore::Internals::enableAutoSizeMode): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

We changed the auto-sizing code for webkit.org/b/196743 in r244098, but some clients need it and we bring it back
via a new dedicated -[WKWebView _setSizeToContentAutoSizeMaximumSize:] SPI.

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView sizeToContentAutoSizeMaximumSize]):
(-[WKView setSizeToContentAutoSizeMaximumSize:]):
* UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _sizeToContentAutoSizeMaximumSize]):
(-[WKWebView _setSizeToContentAutoSizeMaximumSize:]):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setSizeToContentAutoSizeMaximumSize):
(WebKit::WebViewImpl::sizeToContentAutoSizeMaximumSize const):
(WebKit::WebViewImpl::setIntrinsicContentSize):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::sizeToContentAutoSizeMaximumSizeDidChange):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sizeToContentAutoSizeMaximumSize const):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::sizeToContentAutoSizeMaximumSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::willSendUpdateGeometry):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_processDisplayName):
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setMinimumSizeForAutoLayout):
(WebKit::WebPage::setSizeToContentAutoSizeMaximumSize):
(WebKit::WebPage::updateIntrinsicContentSizeIfNeeded):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::sizeToContentAutoSizeMaximumSize const):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):

LayoutTests:

The methods internals.enableAutoSizeMode() has changed to internals.enableFixedWidthAutoSizeMode().

* css3/viewport-percentage-lengths/vh-auto-size-expected.html:
* css3/viewport-percentage-lengths/vh-auto-size.html:
* fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html:
* fast/dynamic/mail-autosize-viewport-unit.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259187 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[GTK][WPE] Gardening some tests related to vertical text baselines
lmoura@igalia.com [Mon, 30 Mar 2020 03:22:09 +0000 (03:22 +0000)]
[GTK][WPE] Gardening some tests related to vertical text baselines

Unreviewed test gardening.

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[WPE] Mark WebGL tests as failures while we can't create a context
lmoura@igalia.com [Mon, 30 Mar 2020 02:50:13 +0000 (02:50 +0000)]
[WPE] Mark WebGL tests as failures while we can't create a context

Unreviewed test gardening.

* platform/wpe/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259185 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoMove TextIterator::rangeFromLocationAndLength off of live ranges
darin@apple.com [Mon, 30 Mar 2020 01:06:28 +0000 (01:06 +0000)]
Move TextIterator::rangeFromLocationAndLength off of live ranges
https://bugs.webkit.org/show_bug.cgi?id=209408

Source/WebCore:

Reviewed by Antti Koivisto.

- Put CharacterRange into a header, CharacterRange.h.
- Replaced CharacterOffset with direct uses of uint64_t.
  Because this can be a single offset into an entire document, use a
  64-bit integer so we don't limit an entire document to 2^32 characters;
  in theory this makes it so we can support a document with tons of
  text nodes that add up to more than 2^32.
- Because CharacterRange uses 64-bit integers we can now convert more
  easily to and from NSRange and CFRange on Cocoa platforms.

* Headers.cmake: Added CharacterRange.h.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
Use CharacterRange, resolveCharacterLocation/Range.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling): Ditto.
(-[WebAccessibilityObjectWrapper _textMarkerForIndex:]): Ditto.

* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::collectTextRanges): Take SimpleRange.
(WebCore::DocumentMarkerController::addMarker): Ditto.
(WebCore::DocumentMarkerController::addDictationResultMarker): Ditto.
(WebCore::DocumentMarkerController::addPlatformTextCheckingMarker): Ditto.
* dom/DocumentMarkerController.h: Updated for above changes.

* dom/Position.h: Export createLegacyEditingPosition so it can be used
outside of WebCore.

* dom/SimpleRange.cpp:
(WebCore::fastIsCharacterData): Added. Could be moved to the Node class.
(WebCore::length): Added. Could be moved to the Node class.
(WebCore::makeRangeSelectingNodeContents): Added. Analogous to the
Range::selectNodeContents function.
* dom/SimpleRange.h: Updated for the above.

* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
Use CharacterRange, resolveCharacterLocation/Range.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Ditto.

* editing/CharacterRange.h: Added.

* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
Use CharacterRange, resolveCharacterLocation/Range.
* editing/Editing.cpp:
(WebCore::visiblePositionForIndex): Ditto.
* editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): Ditto.
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Ditto.
(WebCore::Editor::markAndReplaceFor): Ditto.
(WebCore::Editor::changeBackToReplacedString): Ditto.
(WebCore::Editor::scanRangeForTelephoneNumbers): Ditto.
(WebCore::Editor::rangeForTextCheckingResult const): Ditto.
* editing/TextCheckingHelper.cpp:
(WebCore::findGrammaticalErrors): Ditto.
(WebCore::findMisspellings): Ditto.
(WebCore::TextCheckingParagraph::invalidateParagraphRangeValues): Ditto.
(WebCore::TextCheckingParagraph::rangeLength const): Ditto.
(WebCore::TextCheckingParagraph::subrange const): Ditto.
(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::text const): Ditto. Also use StringView.
(WebCore::TextCheckingParagraph::checkingStart const): Ditto.
(WebCore::TextCheckingParagraph::checkingEnd const): Ditto. Also compute
this by adding start and length, and don't cache it.
(WebCore::TextCheckingParagraph::checkingLength const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementLength const): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
(WebCore::TextCheckingHelper::findFirstGrammarDetail const): Ditto.
(WebCore::TextCheckingHelper::findFirstBadGrammar const): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical const): Ditto.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const): Ditto.
(WebCore::TextCheckingHelper::markAllMisspellings): Ditto.
(WebCore::TextCheckingHelper::markAllBadGrammar): Ditto.
(WebCore::checkTextOfParagraph): Ditto.
* editing/TextCheckingHelper.h: Updated for the above. Also got rid of
m_checkingEnd since it's sufficient to cache the start and the length.
Should come back later and use CharacterRange instead of 2x CharacterCount.

* editing/TextIterator.cpp:
(WebCore::characterCount): Use uint64_t.
(WebCore::TextIterator::subrange): Deleted.
(WebCore::TextIterator::rangeFromLocationAndLength): Deleted.
(WebCore::clampedAdd): Added. Helps implement resolveCharacterRange in a way
that can work with any character count without concern about overflow.
(WebCore::resolveCharacterRange): Added. Replaces both subrange and
rangeFromLocationAndLength, using an algorithm close to the one from
the latter function, including workarounds it had. Replaced the boolean
"forSelectionPreservation" with the TextIteratorBehavior options, which seems
to make good sense at all the call sites.
(WebCore::resolveCharacterLocation): Added. Like resolveCharacterRange, but
instead of resolving CharacterRange to SimpleRange, resolves a character location
to a BoundaryPoint. Made a separate function for this in case we later refactor
for efficiency, but for now this simply calls resolveCharacterRange with a zero
length range.

* editing/TextIterator.h: Moved CharacterCount and CharagerRange into a
separate header. Replaced TextIterator::rangeFromLocationAndLength and
TextIterator::subrange with resolveCharacterLocation and resolveCharacterRange.

* editing/cocoa/DataDetection.mm:
(WebCore::detectItemAtPositionWithRange): Use CharacterRange,
resolveCharacterLocation/Range.
(WebCore::DataDetection::detectContentInRange): Ditto.
* editing/cocoa/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection): Ditto.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
* editing/ios/DictationCommandIOS.cpp:
(WebCore::DictationCommandIOS::doApply): Ditto.
* editing/mac/DictionaryLookupLegacy.mm:
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
* page/EventHandler.cpp:
(WebCore::textDistance): Ditto.
* page/Page.cpp:
(WebCore::replaceRanges): Ditto.
(WebCore::Page::replaceRangesWithText): Ditto.
* platform/text/TextChecking.h: Ditto.
* testing/Internals.cpp:
(WebCore::Internals::rangeFromLocationAndLength): Ditto.
(WebCore::Internals::subrange): Ditto.
(WebCore::Internals::handleAcceptedCandidate): Ditto.

* testing/Internals.h: Made location and length unsigned rather than signed.
* testing/Internals.idl: Ditto.

Source/WebKit:

Reviewed by Antti Koivisto.

* Shared/EditingRange.cpp:
(WebKit::EditingRange::toRange): Use CharacterRange,
resolveCharacterLocation/Range.

* Shared/EditingRange.h: Added a FIXME about replacing with CharacterRange.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<CharacterRange>::encode): Added.
(IPC::ArgumentCoder<CharacterRange>::decode): Added.
(IPC::ArgumentCoder<GrammarDetail>::encode): Updated to use CharacterRange.
(IPC::ArgumentCoder<GrammarDetail>::decode): Ditto.
(IPC::ArgumentCoder<TextCheckingResult>::encode): Ditto.
(IPC::ArgumentCoder<TextCheckingResult>::decode): Ditto.
* Shared/WebCoreArgumentCoders.h: Added CharacterRange.

* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::textCheckingResultFromNSTextCheckingResult): Use CharacterRange,
resolveCharacterLocation/Range.
* UIProcess/WebGrammarDetail.cpp:
(WebKit::WebGrammarDetail::WebGrammarDetail): Ditto.
* UIProcess/WebGrammarDetail.h:
(WebKit::WebGrammarDetail::location const): Ditto.
(WebKit::WebGrammarDetail::length const): Ditto.
* UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::checkTextOfParagraph): Ditto.
* UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph): Ditto.
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph): Ditto.
(WebKit::TextChecker::updateSpellingUIWithGrammarString): Ditto.
* WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection): Ditto.
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): Ditto.
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::deleteSurrounding): Ditto.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPlatformEditorState const): Small tweak.
(WebKit::WebPage::updateSelectionWithDelta): Ditto.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.

Source/WebKitLegacy/mac:

Reviewed by Antti Koivisto.

* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::checkTextOfParagraph): Use CharacterRange,
resolveCharacterLocation/Range.
(WebEditorClient::checkGrammarOfString): Ditto.
(core): Ditto.
(WebEditorClient::updateSpellingUIWithGrammarString): Ditto.
(WebEditorClient::handleAcceptedCandidateWithSoftSpaces): Ditto.
* WebView/WebFrame.mm:
(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]): Ditto.
* WebView/WebView.mm:
(textCheckingResultFromNSTextCheckingResult): Ditto.

Source/WebKitLegacy/win:

Reviewed by Antti Koivisto.

* WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::checkGrammarOfString): Use CharacterRange,
resolveCharacterLocation/Range.
(WebEditorClient::updateSpellingUIWithGrammarString): Ditto.
* WebView.cpp:
(WebView::firstRectForCharacterRangeForTesting): Ditto.

LayoutTests:

Fix Mac-specific firstrectforcharacterrange-styled.html test
https://bugs.webkit.org/show_bug.cgi?id=205314
<rdar://problem/57990717>

Reviewed by Antti Koivisto.

* accessibility/mac/textmarker-for-index-out-of-bounds-crash-expected.txt:
* accessibility/mac/textmarker-for-index-out-of-bounds-crash.html:
Updated to expect textMarkerForIndex to clamp rather than returning something invalid.

* editing/mac/input/firstrectforcharacterrange-plain-expected.txt:
* editing/mac/input/firstrectforcharacterrange-plain.html:
Updated test output to include what is being tested, not just the test result.
Updated test results to expect clamping rather than an empty rectangle, for values
that are out of bounds. Also got rid of dumping of eidting callbacks since there is
no reason to include them in this test.

* editing/mac/input/firstrectforcharacterrange-styled-expected.txt:
* editing/mac/input/firstrectforcharacterrange-styled.html:
Ditto.

* platform/mac-wk1/TestExpectations: Since our oldest supported release is Mojave, deleted
all rules with Sierra or HighSierra conditionals since those conditions are always false,
and removed any conditionals that said Sierra+, HighSierra+, or Mojave+ because those
conditions are always true. One test, firstrectforcharacterrange-styled.html, had results
checked in that were correct for Mojave but incorrect for Catalina. For that test, the
results are now correct for Catalina, so updated expectations for that.

* platform/mac-wk2/TestExpectations: Ditto. Also some tests that claimed ImageOnlyFailure
are flaky and sometimes passing, so marked them for either Pass or ImageOnlyFailure.

* platform/mac/TestExpectations: Ditto. Also some tests marked Failure were flaky and
sometimes passing, so marked them for either Pass or Failure.

* platform/mac/editing/mac/input/firstrectforcharacterrange-styled-expected.txt: Removed.
This is already a Mac-specific test; it doesn't make sense to have an additional
Mac-specific overridden result since the base result is already Mac-specific.

* platform/mac/fast/text/attributed-substring-from-range-001-expected.txt:
* platform/mac/fast/text/attributed-substring-from-range-001.html:
Updated this test to expect the empty string, not "undefined" for an out of range,
since we now clamp instead of failing in such cases.

* platform/mac/fast/text/attributed-substring-from-range-expected.txt:
* platform/mac/fast/text/attributed-substring-from-range.html:
Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259184 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoAttempt to fix the Mac Catalyst build after r258989
dbates@webkit.org [Mon, 30 Mar 2020 00:48:55 +0000 (00:48 +0000)]
Attempt to fix the Mac Catalyst build after r258989
<https://bugs.webkit.org/show_bug.cgi?id=199960>

Remove code that has since been moved to WebPage::platformNeedsLayoutForEditorState().

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPlatformEditorState const):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259183 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoRemove addHTTPOriginIfNeeded calls
commit-queue@webkit.org [Sun, 29 Mar 2020 17:34:16 +0000 (17:34 +0000)]
Remove addHTTPOriginIfNeeded calls
https://bugs.webkit.org/show_bug.cgi?id=209127

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-29
Reviewed by Darin Adler.

Remove unused code.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259182 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[LFC] Replace parent() calls with containingBlock() where applicable.
zalan@apple.com [Sun, 29 Mar 2020 17:29:59 +0000 (17:29 +0000)]
[LFC] Replace parent() calls with containingBlock() where applicable.
https://bugs.webkit.org/show_bug.cgi?id=209717

Reviewed by Antti Koivisto.

While they both return the same layout box (parent), it's more correct to call continingBlock().

* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isOverflowVisible const):
* layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[LFC] Layout::Box::parent() should return const ContainerBox&
zalan@apple.com [Sun, 29 Mar 2020 14:50:22 +0000 (14:50 +0000)]
[LFC] Layout::Box::parent() should return const ContainerBox&
https://bugs.webkit.org/show_bug.cgi?id=209400
<rdar://problem/60742432>

Reviewed by Antti Koivisto.

Layout tree is immutable during layout, so every box should be able to return a valid parent (except the ICB, but
class InitialContainingBlock deletes parent() function anyway).

* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
* layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::nextInlineLevelBoxToLayout):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
(WebCore::Layout::Box::isOverflowVisible const):
* layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::parent const):
* layout/layouttree/LayoutIterator.h:
(WebCore::Layout::LayoutBoxTraversal::nextAncestorSibling):
(WebCore::Layout::LayoutBoxTraversal::next):
(WebCore::Layout::Traversal::firstWithin):
(WebCore::Layout::Traversal::next):
(WebCore::Layout::LayoutIterator<T>::traverseNext):
* layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWindows build fix: Web Inspector: support editing cookie key/values from inspector
ddkilzer@apple.com [Sun, 29 Mar 2020 09:58:08 +0000 (09:58 +0000)]
Windows build fix: Web Inspector: support editing cookie key/values from inspector
https://bugs.webkit.org/show_bug.cgi?id=31157#c15
<rdar://problem/19281523>

* platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
(WebCore::NetworkStorageSession::setCookie):
- Add placeholder to fix build after r259173.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259179 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoAdd missing ChangeLog entry for r259177.
ddkilzer@apple.com [Sun, 29 Mar 2020 09:08:26 +0000 (09:08 +0000)]
Add missing ChangeLog entry for r259177.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259178 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoBuild fix for: [iOS] Delay process suspension for a while after loading an app link
ddkilzer@apple.com [Sun, 29 Mar 2020 09:06:08 +0000 (09:06 +0000)]
Build fix for: [iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686#c12
<rdar://problem/60888891>

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryInterceptNavigation):
- Restrict call to WebPageProxy::willOpenAppLink() to
  PLATFORM(IOS_FAMILY) to fix the build.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259177 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoREGRESSION (r257867): [GPUP] Use-after-move in RemoteCDMInstance::createSession()
ddkilzer@apple.com [Sun, 29 Mar 2020 08:52:38 +0000 (08:52 +0000)]
REGRESSION (r257867): [GPUP] Use-after-move in RemoteCDMInstance::createSession()
<https://webkit.org/b/209712>
<rdar://problem/61018795>

Reviewed by Darin Adler.

* WebProcess/GPU/media/RemoteCDMInstance.cpp:
(WebKit::RemoteCDMInstance::createSession): Fix use-after-move
by using RemoteCDMInstanceSession::identifier().
* WebProcess/GPU/media/RemoteCDMInstanceSession.h:
(RemoteCDMInstanceSession::identifier): Add getter.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259176 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[JSC] Use CacheableIdentifier for all ById case
ysuzuki@apple.com [Sun, 29 Mar 2020 06:13:39 +0000 (06:13 +0000)]
[JSC] Use CacheableIdentifier for all ById case
https://bugs.webkit.org/show_bug.cgi?id=209698

Reviewed by Saam Barati.

StructureStubInfo & AccessCase holds CacheableIdentifier to keep cell identifiers alive.
We are assuming that operationGetById...'s identifier is always owned by CodeBlock, and
we call CacheableIdentifier::createFromIdentifierOwnedByCodeBlock for UniquedStringImpl*.

This is wrong since GetById IC can be generated with identifier which is not owned by CodeBlock.
Let's consider the following case,

    1. op_get_by_val gets GetById IC. CacheableIdentifier is kept by StructureStubInfo/AccessCase correctly.
    2. This CodeBlock gets DFG.
    3. DFG understand op_get_by_val and emit GetById DFG node since it only has one identifier.
    4. Then, DFG can generate GetById DFG code which generates GetById IC
    5. (4)'s GetById IC gets executed. But this IC considers that identifier is owned by CodeBlock since this is ById IC.
    6. New DFG CodeBlock starts compilation. And it gets feedback from (2)'s get_by_val's StructureStubInfo, so it emits GetById with non-cell CacheableIdentifier!
       So it does not retain the cell. It just registers desired identifier.
    7. While compiling (6) (after parsing bytecode), (2)'s CodeBlock's DFG code & IC gets jettisoned. And then, identifier used in (6) gets destroyed too.
    8. (6)'s CodeBlock finalizes its compilation, registering desired identifiers to the actual CodeBlock. And it found the identifier gets destroyed.

In this patch,

    1. CacheableIdentifier::createFromIdentifierOwnedByCodeBlock is called only when the creator knowns that this is owned by the CodeBlock.
       Typically, this is when the code generator generates IC.
    2. operationGetById... functions get CacheableIdentifier instead of UniquedStringImpl*. So it propagates whether the given CacheableIdentifier
       is created from CodeBlock's identifier or cells.
    3. AccessCase holds this propagated CacheableIdentifiers. If CacheableIdentifiers is created from a cell in some tier's IC, then it continues to be represented as
       a cell-origin CacheableIdentifiers regardless of whether the current IC is GetById / GetByVal. Then GC marks it correctly.
    4. This patch does the same thing to all the ICs.
    5. This patch extends StructureStubInfo / AccessCase to pave the way to use them in PutByVal / InByVal by introducing CacheableIdentifier for Put and In.

* bytecode/AccessCase.cpp:
(JSC::AccessCase::fromStructureStubInfo):
* bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::visitAggregate):
(JSC::StructureStubInfo::setCacheType):
* bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::identifier):
(JSC::StructureStubInfo::considerCachingBy):
(JSC::StructureStubInfo::getByIdSelfIdentifier): Deleted.
(JSC::StructureStubInfo::considerCachingById): Deleted.
(JSC::StructureStubInfo::considerCachingByVal): Deleted.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGArrayMode.cpp:
(JSC::DFG::canBecomeGetArrayLength):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::emitPutById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::addStringReplacePrimordialChecks):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToInById):
(JSC::DFG::Node::hasCacheableIdentifier):
(JSC::DFG::Node::cacheableIdentifier):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::OpInfoWrapper::OpInfoWrapper):
(JSC::DFG::Node::OpInfoWrapper::operator=):
* dfg/DFGOpInfo.h:
(JSC::DFG::OpInfo::OpInfo):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
(JSC::DFG::SpeculativeJIT::cachedPutById):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
* jit/JIT.h:
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::slowPathFunction):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
* jit/JITInlineCacheGenerator.h:
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emitByValIdentifierCheck):
(JSC::JIT::privateCompilePutByValWithCachedId):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
* jit/Repatch.cpp:
(JSC::appropriateGenericPutByIdFunction):
(JSC::appropriateOptimizingPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryCacheInByID):
(JSC::repatchInByID):
(JSC::resetPutByID):
* jit/Repatch.h:
* runtime/CacheableIdentifier.cpp:
(JSC::CacheableIdentifier::dump const):
* runtime/CacheableIdentifier.h:
(JSC::CacheableIdentifier::createFromRawBits):
(JSC::CacheableIdentifier::rawBits const):
(JSC::CacheableIdentifier::CacheableIdentifier):
* runtime/CacheableIdentifierInlines.h:
(JSC::CacheableIdentifier::createFromIdentifierOwnedByCodeBlock):
(JSC::CacheableIdentifier::createFromImmortalIdentifier):
(JSC::CacheableIdentifier::CacheableIdentifier):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259175 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoRegression: fast/hidpi/image-srcset-svg-canvas-2x.html is failing consistently on...
commit-queue@webkit.org [Sun, 29 Mar 2020 04:43:07 +0000 (04:43 +0000)]
Regression: fast/hidpi/image-srcset-svg-canvas-2x.html is failing consistently on iOS EWS
https://bugs.webkit.org/show_bug.cgi?id=207038

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-28
Reviewed by Darin Adler.

Disable the canvas scaling anti-aliasing by applying the CSS property
"image-rendering: pixelated;" to the <img> and the <canvas> elements.

Avoid the SVG drawing anti-aliasing entirely by replacing the <cricle>
element by a <rect> element.

* fast/hidpi/resources/relativesrcset.svg:
* fast/hidpi/resources/srcset.svg:
* fast/hidpi/resources/srcset_100px.svg:
* fast/hidpi/resources/svg_tests.css:
(.test img, .test canvas):
* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259174 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb Inspector: support editing cookie key/values from inspector
drousso@apple.com [Sun, 29 Mar 2020 03:07:52 +0000 (03:07 +0000)]
Web Inspector: support editing cookie key/values from inspector
https://bugs.webkit.org/show_bug.cgi?id=31157
<rdar://problem/19281523>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/protocol/Page.json:
Add a `session` parameter to `Page.Cookie` type and a new `Page.setCookie` command.
Remove the `size` parameter from `Page.Cookie` as this can be calculated in the frontend.

Source/WebCore:

Test: http/tests/inspector/page/setCookie.html

* inspector/agents/InspectorPageAgent.h:
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::buildObjectForCookie):
(WebCore::parseCookieObject): Added.
(WebCore::InspectorPageAgent::setCookie): Added.

* loader/CookieJar.h:
* loader/CookieJar.cpp:
(WebCore::CookieJar::setRawCookie): Added.

Source/WebInspectorUI:

* UserInterface/Models/Cookie.js:
(WI.Cookie):
(WI.Cookie.fromPayload):
(WI.Cookie.parseSetCookieResponseHeader):
(WI.Cookie.prototype.get session): Added.
(WI.Cookie.prototype.expirationDate):
(WI.Cookie.prototype.equals): Added.
(WI.Cookie.prototype.toProtocol): Added.
Add `session` value in addition to the existing `expires` value. Create helper methods for
comparing `WI.Cookie` objects and for using the `WI.Cookie` as a `Page.Cookie` type when
invoking protocol commands (right now just `Page.setCookie`).

* UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.get navigationItems):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype.willDismissPopover): Added.
(WI.CookieStorageContentView.prototype.async _willDismissCookiePopover): Added.
(WI.CookieStorageContentView.prototype._handleSetCookieButtonClick): Added.
(WI.CookieStorageContentView.prototype._reloadCookies):
(WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn):
Add a + navigation item that shows a popover for creating a new cookie. When contextmenu
clicking on a table row, add an "Edit" item that shows a popover for creating a new cookie
with the values from the existing cookie, which will "replace" (delete and set) the existing
cookie upon being dismissed.

* UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype.tablePopulateCell):
If only use the `expires` value if `session` is not set.

* UserInterface/Views/CookiePopover.js: Added.
(WI.CookiePopover):
(WI.CookiePopover.prototype.get serializedData):
(WI.CookiePopover.prototype.show.createRow):
(WI.CookiePopover.prototype.show.createInputRow):
(WI.CookiePopover.prototype.show):
(WI.CookiePopover.prototype._presentOverTargetElement):
(WI.CookiePopover.prototype._defaultExpires):
(WI.CookiePopover.prototype._parseExpires):
(WI.CookiePopover.prototype._handleInputKeyDown):
* UserInterface/Views/CookiePopover.css: Added.
(.popover .cookie-popover-content):
(.popover .cookie-popover-content > table):
(.popover .cookie-popover-content > table > tr > th):
(.popover .cookie-popover-content > table > tr > td):
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"])):
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"]).invalid):
(@media (prefers-color-scheme: dark) .popover .cookie-popover-content > table > tr > th):
Show an  `<input>` (or `<select>`) for each configuration option when creating a cookie.
Hide the `<input>` for `expires` if the `<input type="checkbox">` for `session` is checked.
Indicate when the value in the `<input>` for `expires` is not a valid date.

* UserInterface/Main.html:
* Localizations/en.lproj/localizedStrings.js:

Source/WebKit:

* WebProcess/WebPage/WebCookieJar.h:
* WebProcess/WebPage/WebCookieJar.cpp:
(WebKit::WebCookieJar::setRawCookie):

* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::setRawCookie): Added.

LayoutTests:

* http/tests/inspector/page/setCookie.html: Added.
* http/tests/inspector/page/setCookie-expected.txt: Added.

* inspector/unit-tests/number-utilities.html:
* inspector/unit-tests/number-utilities-expected.txt:
Drive-by: add tests for `Number.prototype.maxDecimals`.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259173 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoREGRESSION (r258201): Use-after-move in UserMediaCaptureManager::Source::didFail()
ddkilzer@apple.com [Sun, 29 Mar 2020 03:02:59 +0000 (03:02 +0000)]
REGRESSION (r258201): Use-after-move in UserMediaCaptureManager::Source::didFail()
<https://webkit.org/b/209711>
<rdar://problem/61018569>

Reviewed by Darin Adler.

* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::didFail):
- Use `m_errorMessage` to fix the use-after-move.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259172 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoREGRESSION(r257963) UI process crashes when setting navigation delegate inside naviga...
commit-queue@webkit.org [Sun, 29 Mar 2020 02:58:56 +0000 (02:58 +0000)]
REGRESSION(r257963) UI process crashes when setting navigation delegate inside navigation delegate callbacks
https://bugs.webkit.org/show_bug.cgi?id=209705
<rdar://problem/60814765>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-28
Reviewed by Darin Adler.

Source/WebKit:

I introduced a pattern of making multiple delegate calls sequentially.  This is bad because the delegate can change.
We need to go back to the WebPageProxy and get the navigation client again between calls.
I manually verified this fixes the crash in the radar.
Covered by modifying an existing API test to modify the navigation delegate in a callback.

* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didStartProvisionalNavigation):
(API::NavigationClient::didStartProvisionalLoadForFrame):
(API::NavigationClient::didFailProvisionalNavigationWithError):
(API::NavigationClient::didFailProvisionalLoadWithErrorForFrame):
(API::NavigationClient::didCommitNavigation):
(API::NavigationClient::didCommitLoadForFrame):
(API::NavigationClient::didFinishNavigation):
(API::NavigationClient::didFinishLoadForFrame):
(API::NavigationClient::didFailNavigationWithError):
(API::NavigationClient::didFailLoadWithErrorForFrame):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
* UIProcess/API/glib/WebKitNavigationClient.cpp:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::~NavigationState):
(WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation):
(WebKit::NavigationState::NavigationClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::NavigationClient::didCommitNavigation):
(WebKit::NavigationState::NavigationClient::didCommitLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFinishNavigation):
(WebKit::NavigationState::NavigationClient::didFinishLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFailNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailLoadWithErrorForFrame):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm:
(-[TestAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259171 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb Inspector: CSS: create visual editor for `box-shadow`
drousso@apple.com [Sun, 29 Mar 2020 02:56:05 +0000 (02:56 +0000)]
Web Inspector: CSS: create visual editor for `box-shadow`
https://bugs.webkit.org/show_bug.cgi?id=208380

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Recognize `box-shadow` CSS properties in the Styles sidebar, parse the comma-separated list
value for individual box shadows, and create a `WI.InlineSwatch` for each. When clicked,
show a `WI.Popover` with a `WI.BoxShadowEditor`, which contains a table of editors:

    Offset X |   <input type="text">   |   [ 2D (X & Y) ]
    Offset Y |   <input type="text">   |   [   Slider   ]
       Inset | <input type="checkbox"> |
        Blur |   <input type="text">   | <input type="range">
      Spread |   <input type="text">   | <input type="range">
    [                                                       ]
    [                                                       ]
    [                   full color picker                   ]
    [                                                       ]
    [                                                       ]

* UserInterface/Models/BoxShadow.js: Added.
(WI.BoxShadow):
(WI.BoxShadow.fromString):
(WI.BoxShadow.parseNumberComponent):
(WI.BoxShadow.prototype.get offsetX):
(WI.BoxShadow.prototype.get offsetY):
(WI.BoxShadow.prototype.get blurRadius):
(WI.BoxShadow.prototype.get spreadRadius):
(WI.BoxShadow.prototype.get inset):
(WI.BoxShadow.prototype.get color):
(WI.BoxShadow.prototype.copy):
(WI.BoxShadow.prototype.toString):
(WI.BoxShadow.prototype.toString.stringifyNumberComponent):

* UserInterface/Models/CSSCompletions.js:
Add a `Set` of allowed CSS length units.

* UserInterface/Views/BoxShadowEditor.js: Added.
(WI.BoxShadowEditor):
(WI.BoxShadowEditor.createInputRow):
(WI.BoxShadowEditor.createSlider):
(WI.BoxShadowEditor.prototype.get element):
(WI.BoxShadowEditor.prototype.get boxShadow):
(WI.BoxShadowEditor.prototype.set boxShadow):
(WI.BoxShadowEditor.prototype.handleEvent):
(WI.BoxShadowEditor.prototype._updateBoxShadow):
(WI.BoxShadowEditor.prototype._updateBoxShadowOffsetFromSliderMouseEvent):
(WI.BoxShadowEditor.prototype._determineShiftForEvent):
(WI.BoxShadowEditor.prototype._handleOffsetSliderSVGKeyDown):
(WI.BoxShadowEditor.prototype._handleOffsetSliderSVGMouseDown):
(WI.BoxShadowEditor.prototype._handleWindowMouseMove):
(WI.BoxShadowEditor.prototype._handleWindowMouseUp):
(WI.BoxShadowEditor.prototype._handleOffsetXInputInput):
(WI.BoxShadowEditor.prototype._handleOffsetXInputKeyDown):
(WI.BoxShadowEditor.prototype._handleOffsetYInputInput):
(WI.BoxShadowEditor.prototype._handleOffsetYInputKeyDown):
(WI.BoxShadowEditor.prototype._handleBlurRadiusInputInput):
(WI.BoxShadowEditor.prototype._handleBlurRadiusInputKeyDown):
(WI.BoxShadowEditor.prototype._handleBlurRadiusSliderInput):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusInputInput):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusInputKeyDown):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusSliderInput):
(WI.BoxShadowEditor.prototype._handleInsetCheckboxChange):
(WI.BoxShadowEditor.prototype._handleColorChanged):
* UserInterface/Views/BoxShadowEditor.css: Added.
(.box-shadow-editor):
(.box-shadow-editor > table):
(.box-shadow-editor > table > tr > th):
(.box-shadow-editor > table > tr > td):
(.box-shadow-editor > table > tr > td > input[type="text"]):
(.box-shadow-editor > table > tr > td > input[type="range"]):
(.box-shadow-editor > table > tr > td > svg):
(.box-shadow-editor > table > tr > td > svg line.axis):
(.box-shadow-editor > table > tr > td > svg line:not(.axis)):
(.box-shadow-editor > table > tr > td > svg circle):
(@media (prefers-color-scheme: dark) .box-shadow-editor > table > tr > th):

* UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch):
(WI.InlineSwatch.prototype._fallbackValue):
(WI.InlineSwatch.prototype._valueEditorValueDidChange):
* UserInterface/Views/InlineSwatch.css:
(.inline-swatch):
(.inline-swatch:not(.box-shadow), .inline-swatch.box-shadow:matches(:hover, :active)): Added.
(.inline-swatch:matches(.bezier, .box-shadow, .spring, .variable)): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable):hover): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable):active): Added.
(.inline-swatch:matches(.bezier, .box-shadow, .spring, .variable) > span): Added.
(@media (prefers-color-scheme: dark) .inline-swatch.box-shadow > svg): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):hover): Deleted.
(.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):active): Deleted.
(.inline-swatch:matches(.bezier, .spring, .variable) > span): Deleted.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens):
(WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
(WI.SpreadsheetStyleProperty.prototype._addColorTokens):
(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
(WI.SpreadsheetStyleProperty.prototype._addBoxShadowTokens):
(WI.SpreadsheetStyleProperty.prototype._resolveVariables):

* UserInterface/Views/Variables.css:
(:root):
* UserInterface/Views/ColorPicker.css:
(.color-picker):
Move `--color-picker-width` to `:root` so that `WI.BoxShadowEditor` can use it.

* UserInterface/Main.html:
* UserInterface/Test.html:
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Images/BoxShadow.svg: Added.

LayoutTests:

* inspector/model/boxShadow.html: Added.
* inspector/model/boxShadow-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb Inspector: REGRESSION(r257759): Network: graph in Timing pane of selected resourc...
drousso@apple.com [Sun, 29 Mar 2020 02:54:09 +0000 (02:54 +0000)]
Web Inspector: REGRESSION(r257759): Network: graph in Timing pane of selected resource is missing bars
https://bugs.webkit.org/show_bug.cgi?id=209525

Reviewed by Timothy Hatcher.

`WI.ResourceTimingBreakdownView` uses the same CSS classes and DOM structure as the parent
`WI.NetworkTableContentView`, relying on the styles defined there for it's own styles.

* UserInterface/Views/NetworkTableContentView.css:
(.network-table > .table li:not(.filler, .selected) .cell:not(.current-session)): Added.
(.network-table .error): Added.
(.network-table .waterfall .block): Added.
(body[dir=ltr] .network-table .waterfall .block): Added.
(body[dir=rtl] .network-table .waterfall .block): Added.
(.network-table .waterfall .block.request,): Added.
(.network-table .waterfall .block.mouse-tracking): Added.
(.network-table .waterfall .block.filler): Added.
(.network-table .waterfall .block.redirect): Added.
(.network-table .waterfall .block.queue): Added.
(.network-table .waterfall .block.dns): Added.
(.network-table .waterfall .block.connect): Added.
(.network-table .waterfall .block.secure): Added.
(.network-table .waterfall .block.request): Added.
(.network-table .waterfall .block.response): Added.
(.network-table > .table li:not(.selected) .cell:not(.current-session)): Deleted.
(.network-table > .table .error): Deleted.
(.network-table > .table .waterfall .block): Deleted.
(body[dir=ltr] .network-table > .table .waterfall .block): Deleted.
(body[dir=rtl] .network-table > .table .waterfall .block): Deleted.
(.network-table > .table .waterfall .block.request,): Deleted.
(.network-table > .table .waterfall .block.mouse-tracking): Deleted.
(.network-table > .table .waterfall .block.filler): Deleted.
(.network-table > .table .waterfall .block.redirect): Deleted.
(.network-table > .table .waterfall .block.queue): Deleted.
(.network-table > .table .waterfall .block.dns): Deleted.
(.network-table > .table .waterfall .block.connect): Deleted.
(.network-table > .table .waterfall .block.secure): Deleted.
(.network-table > .table .waterfall .block.request): Deleted.
(.network-table > .table .waterfall .block.response): Deleted.
Drive-by: the `WI.Table` filler row should not be dimmed.
* UserInterface/Views/ResourceTimingBreakdownView.css:
(.resource-timing-breakdown .waterfall .block):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259169 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb Inspector: Network: pressing RightArrow or LeftArrow unexpectedly changes panels
nvasilyev@apple.com [Sun, 29 Mar 2020 02:52:35 +0000 (02:52 +0000)]
Web Inspector: Network: pressing RightArrow or LeftArrow unexpectedly changes panels
https://bugs.webkit.org/show_bug.cgi?id=209625
<rdar://problem/60940609>

Reviewed by Timothy Hatcher.

* UserInterface/Views/NavigationBar.js:
(WI.NavigationBar.prototype._keyDown):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259168 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUse-after-move in NetworkProcess::addServiceWorkerSession()
ddkilzer@apple.com [Sun, 29 Mar 2020 02:50:19 +0000 (02:50 +0000)]
Use-after-move in NetworkProcess::addServiceWorkerSession()
<https://webkit.org/b/209710>
<rdar://problem/61017857>

Reviewed by Darin Adler.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addServiceWorkerSession):
- Use `addResult.iterator->value.databasePath` instead of the
  `serviceWorkerRegistrationDirectory` parameter to fix the
  use-after-move.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259167 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[iOS] Delay process suspension for a while after loading an app link
cdumez@apple.com [Sun, 29 Mar 2020 02:05:40 +0000 (02:05 +0000)]
[iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686
<rdar://problem/60888891>

Reviewed by Darin Adler.

Client apps that rely on WebKit to open app links cannot call the [WKWebView _willOpenAppLink] SPI
that was added in r259146. Instead, we need to call WebPageProxy::willOpenAppLink() in
tryInterceptNavigation() when WebKit opens the AppLink itself.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryInterceptNavigation):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259166 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoAdd a ScrollLatching log channel and improve some logging functionality
simon.fraser@apple.com [Sun, 29 Mar 2020 00:59:22 +0000 (00:59 +0000)]
Add a ScrollLatching log channel and improve some logging functionality
https://bugs.webkit.org/show_bug.cgi?id=209706

Reviewed by Darin Adler, David Kilzer.

Source/WebCore:

Add a "ScrollLatching" log channel. Make ScrollLatchingState and Node loggable.
Make a convenience template class ValueOrNull<> which makes logging a pointer type convenient.

Also change Page::pushNewLatchingState() to take the new latching state.

* dom/Node.cpp:
(WebCore::operator<<):
* dom/Node.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::clearLatchedState):
* page/Page.cpp:
(WebCore::Page::pushNewLatchingState):
(WebCore::Page::popLatchingState):
(WebCore::Page::removeLatchingStateForTarget):
* page/Page.h:
(WebCore::Page::latchingStateStack const):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::clearOrScheduleClearingLatchedStateIfNeeded):
(WebCore::EventHandler::platformPrepareForWheelEvents):
(WebCore::frameViewForLatchingState):
(WebCore::EventHandler::platformCompleteWheelEvent):
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):
* page/scrolling/ScrollLatchingState.cpp:
(WebCore::operator<<):
* page/scrolling/ScrollLatchingState.h:
(WebCore::ScrollLatchingState::wheelEventElement const):
(WebCore::ScrollLatchingState::frame const):
(WebCore::ScrollLatchingState::previousWheelScrolledElement const):
(WebCore::ScrollLatchingState::scrollableContainer const):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::setOrClearLatchedNode):
(WebCore::ScrollingTree::handleWheelEvent):
* platform/Logging.h:

Source/WTF:

* wtf/text/TextStream.h:
(WTF::ValueOrNull::ValueOrNull):
(WTF::operator<<):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259165 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[WinCairo] Unreviewed build fix for WinCairo Debug builds
Hironori.Fujii@sony.com [Sat, 28 Mar 2020 22:13:37 +0000 (22:13 +0000)]
[WinCairo] Unreviewed build fix for WinCairo Debug builds
https://bugs.webkit.org/show_bug.cgi?id=209098

It's broken since r259139 (Bug 209098).

> ..\..\Source\WebCore\platform\graphics\texmap\TextureMapperGC3DPlatformLayer.cpp(101): error C2065: 'm_state': undeclared identifier

* platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
(WebCore::TextureMapperGC3DPlatformLayer::paintToTextureMapper): Replaced 'm_state' with 'm_context.m_state'.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259164 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed, fix the watchOS build after r259151
wenson_hsieh@apple.com [Sat, 28 Mar 2020 18:31:21 +0000 (18:31 +0000)]
Unreviewed, fix the watchOS build after r259151

The declaration of Pasteboard(const String&) in Pasteboard.h is present for all PLATFORM(IOS_FAMILY), but the
implementation is guarded by ENABLE(DRAG_SUPPORT). r259151 added a codepath that calls this constructor in
IOS_FAMILY code, causing a linker error. Fix this by moving the implementation out of the ENABLE(DRAG_SUPPORT)
guard, to match the declaration in the header.

* platform/ios/PasteboardIOS.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoSideways jiggles when scrolling the shelves on beta.music.apple.com
simon.fraser@apple.com [Sat, 28 Mar 2020 17:22:50 +0000 (17:22 +0000)]
Sideways jiggles when scrolling the shelves on beta.music.apple.com
https://bugs.webkit.org/show_bug.cgi?id=209696
<rdar://problem/55092050>

Reviewed by Anders Carlsson.
Source/WebCore:

If a scroll snapping animation was running, EventHandler::platformNotifyIfEndGesture() would
reset the latching state. This was added in r190423, but not longer seems necessary
according to manual testing, and the passing layout test.

platformNotifyIfEndGesture() would be called at the end of the fingers-down scroll but
before momentum, and resetting latching here would cause the momentum events to go to
a new target, triggering incorrect scrolls.

Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html

* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::platformNotifyIfEndGesture):

LayoutTests:

Test that sends scroll and momentum events to a vertically-scrolling overflow with snap-points,
which checked that the document didn't scroll.

* tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching-expected.txt: Added.
* tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259162 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoDefine ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
simon.fraser@apple.com [Sat, 28 Mar 2020 17:22:45 +0000 (17:22 +0000)]
Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
https://bugs.webkit.org/show_bug.cgi?id=209693

Reviewed by Zalan Bujtas.

Source/WebCore:

Replace some #if PLATFORM(MAC) with #if ENABLE(WHEEL_EVENT_LATCHING).

ENABLE_WHEEL_EVENT_LATCHING is currently only enabled on macOS, but it's possible
that it should be defined everywhere that ENABLE_KINETIC_SCROLLING is defined.
This requires testing on WPE, GTK etc.

* page/EventHandler.cpp:
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):
* page/Page.cpp:
* page/Page.h:

Source/WTF:

Define ENABLE_WHEEL_EVENT_LATCHING for macOS.

* wtf/PlatformEnable.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259161 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[RenderTreeBuilder] Destroy the child first in RenderTreeBuilder::destroyAndCleanUpAn...
zalan@apple.com [Sat, 28 Mar 2020 17:21:44 +0000 (17:21 +0000)]
[RenderTreeBuilder] Destroy the child first in RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers
https://bugs.webkit.org/show_bug.cgi?id=209695

Reviewed by Antti Koivisto.

The render tree tear down direction is usually leaf first (there are some non-trivial cases where we end up going container first).
Being able to access the ancestor chain helps with some final cleanup activities (e.g repaints).
This patch makes the renderer-inside-an-anonymous-wrapper case similar to the normal case as we destroy the leaf renderer first.
However the anonymous ancestor chain tear down is still container first (see r228606).

* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
(WebCore::isAnonymousAndSafeToDelete): Deleted.
(WebCore::findDestroyRootIncludingAnonymous): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259160 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoDeprecate injected bundle page group SPI
commit-queue@webkit.org [Sat, 28 Mar 2020 16:45:56 +0000 (16:45 +0000)]
Deprecate injected bundle page group SPI
https://bugs.webkit.org/show_bug.cgi?id=209687

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-28
Reviewed by Timothy Hatcher.

Source/WebKit:

This old code is problematic, and the use of it is being removed in rdar://problem/60987265

* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode const):
(WebKit::WebPageGroupData::decode):
* Shared/WebPageGroupData.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::WebPageGroup):
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleAddUserScript):
(WKBundleAddUserStyleSheet):
(WKBundleRemoveUserScript):
(WKBundleRemoveUserStyleSheet):
(WKBundleRemoveUserScripts):
(WKBundleRemoveUserStyleSheets):
(WKBundleRemoveAllUserContent):
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addUserScript): Deleted.
(WebKit::InjectedBundle::addUserStyleSheet): Deleted.
(WebKit::InjectedBundle::removeUserScript): Deleted.
(WebKit::InjectedBundle::removeUserStyleSheet): Deleted.
(WebKit::InjectedBundle::removeUserScripts): Deleted.
(WebKit::InjectedBundle::removeUserStyleSheets): Deleted.
(WebKit::InjectedBundle::removeAllUserContent): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::userContentController): Deleted.
* WebProcess/WebPage/WebPageGroupProxy.h:

Tools:

* TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic_Bundle.cpp:
(TestWebKitAPI::DOMWindowExtensionBasic::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionBasic::initialize): Deleted.
* TestWebKitAPI/Tests/WebKit/DOMWindowExtensionNoCache_Bundle.cpp:
(TestWebKitAPI::DOMWindowExtensionNoCache::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionNoCache::initialize): Deleted.
* TestWebKitAPI/Tests/WebKit/DocumentStartUserScriptAlertCrash_Bundle.cpp:
(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::didCreatePage):
(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::initialize): Deleted.
* TestWebKitAPI/Tests/WebKit/InjectedBundleDisableOverrideBuiltinsBehavior_Bundle.cpp:
(TestWebKitAPI::InjectedBundleNoDisableOverrideBuiltinsBehaviorTest::initialize): Deleted.
(TestWebKitAPI::InjectedBundleDisableOverrideBuiltinsBehaviorTest::initialize): Deleted.
* TestWebKitAPI/Tests/WebKit/InjectedBundleMakeAllShadowRootsOpen_Bundle.cpp:
(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::didCreatePage):
(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::initialize): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoNullptr crash in InlineTextBox::emphasisMarkExistsAndIsAbove
antti@apple.com [Sat, 28 Mar 2020 15:35:47 +0000 (15:35 +0000)]
Nullptr crash in InlineTextBox::emphasisMarkExistsAndIsAbove
https://bugs.webkit.org/show_bug.cgi?id=207034

Reviewed by Zalan Bujtas.

Source/WebCore:

Reduced test case by Zalan.

Test: editing/selection/selection-update-during-anonymous-inline-teardown.html

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setNeedsSelectionUpdateForRenderTreeChange):

Don't clear the selection immediately, do it in updateAppearanceAfterLayoutOrStyleChange after render tree update/layout is done instead.
This is safe as selection uses WeakPtrs to reference renderers.

Renamed to emphasize the use case.

(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange):
(WebCore::FrameSelection::setNeedsSelectionUpdate): Deleted.
* editing/FrameSelection.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::detachFromRenderElement):

LayoutTests:

* editing/selection/selection-update-during-anonymous-inline-teardown-expected.txt: Added.
* editing/selection/selection-update-during-anonymous-inline-teardown.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259158 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agostress/test-out-of-memory.js test gaderning
ticaiolima@gmail.com [Sat, 28 Mar 2020 15:19:45 +0000 (15:19 +0000)]
stress/test-out-of-memory.js test gaderning
https://bugs.webkit.org/show_bug.cgi?id=209701

Unreviewed test gardening.

* stress/test-out-of-memory.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259157 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed, reverting r259034.
commit-queue@webkit.org [Sat, 28 Mar 2020 13:07:35 +0000 (13:07 +0000)]
Unreviewed, reverting r259034.
https://bugs.webkit.org/show_bug.cgi?id=209700

Break StressGC bot (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"IndexedDB: destroy UniqueIDBDatabase when it's not used"
https://bugs.webkit.org/show_bug.cgi?id=209532
https://trac.webkit.org/changeset/259034

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259156 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[GTK] No libsystemd-devel for DNF
changseok@webkit.org [Sat, 28 Mar 2020 10:50:18 +0000 (10:50 +0000)]
[GTK] No libsystemd-devel for DNF
https://bugs.webkit.org/show_bug.cgi?id=209697

Reviewed by Philippe Normand.

Replace libsystemd-devel to systemd-devel for DNF.

* gtk/install-dependencies:
* wpe/install-dependencies:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259155 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoDefine ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
simon.fraser@apple.com [Sat, 28 Mar 2020 04:21:03 +0000 (04:21 +0000)]
Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
https://bugs.webkit.org/show_bug.cgi?id=209693

Reviewed by Zalan Bujtas.

Source/WebCore:

Replace some #if PLATFORM(MAC) with #if ENABLE(WHEEL_EVENT_LATCHING).

ENABLE_WHEEL_EVENT_LATCHING is currently only enabled on macOS, but it's possible
that it should be defined everywhere that ENABLE_KINETIC_SCROLLING is defined.
This requires testing on WPE, GTK etc.

* page/EventHandler.cpp:
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):
* page/Page.cpp:
* page/Page.h:

Source/WTF:

Define ENABLE_WHEEL_EVENT_LATCHING for macOS.

* wtf/PlatformEnable.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259154 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoNullptr crash in CompositeEditCommand::moveParagraphs when inserting OL into uneditab...
shihchieh_lee@apple.com [Sat, 28 Mar 2020 04:17:00 +0000 (04:17 +0000)]
Nullptr crash in CompositeEditCommand::moveParagraphs when inserting OL into uneditable parent.
https://bugs.webkit.org/show_bug.cgi?id=209641
<rdar://problem/60915598>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Inserting BR in unlistifyParagraph() or OL/UL in listifyParagraph() would fail
because their insertion position is uneditable. In this case BR/OL/UL becomes
parentless and the code crashes later when their parent is dereferenced in
moveParagraphs().
In unlistifyParagraph(), only insertNodeBefore() and insertNodeAfter() are used
and both check parent of listNode for editability, so in order to avoid assertion
in the above functions, we check the editability of listNode before insertion.
In listifyParagraph() it is hard to predict where the final insertion position would be,
so we check the editability of the insertion position after it is finalized.

Test: editing/inserting/insert-ol-uneditable-parent.html

* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::unlistifyParagraph):
(WebCore::InsertListCommand::listifyParagraph):

LayoutTests:

Added a regression test for the crash.

* editing/inserting/insert-ol-uneditable-parent-expected.txt: Added.
* editing/inserting/insert-ol-uneditable-parent.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259153 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoSource/WebCore:
commit-queue@webkit.org [Sat, 28 Mar 2020 04:00:36 +0000 (04:00 +0000)]
Source/WebCore:
Fix null pointer crash in RenderBox::styleDidChange
https://bugs.webkit.org/show_bug.cgi?id=208311

Patch by Eugene But <eugenebut@chromium.org> on 2020-03-27
Reviewed by Ryosuke Niwa.

RenderBox::styleDidChange crashes when changing style for HTMLBodyElement element.
Crash happens on dereferencing null document().documentElement()->renderer() pointer:

if (.... || !documentElementRenderer->style().hasExplicitlySetWritingMode())) {

That HTMLBodyElement was added as the second child of document, which is not allowed per spec:

If parent is a document, and any of the statements below, switched on node,
are true, then throw a "HierarchyRequestError" DOMException:
    .......
    element
        parent has an element child that is not child or a doctype is following child.
    ......
https://dom.spec.whatwg.org/#concept-node-replace

This patch prevents adding HTMLBodyElement as the second child by running more strict checks
inside WebCore::Document::canAcceptChild(). Previously canAcceptChild() would allow all
Replace operations if new child had the same type as old child, even if old child has changed the parent.

If old child has changed the parent (parent is not document), it means that child was removed from document
and it is possible that mutation event handler has already added a new child to document. This is normal
situation, but it means that canAcceptChild() can not short circuit only on comparing the types of old and
new child, and has to run all checks listed in https://dom.spec.whatwg.org/#concept-node-replace

Tests: fast/dom/add-document-child-during-document-child-replacement.html
       fast/dom/add-document-child-and-reparent-old-child-during-document-child-replacement.html

* Source/WebCore/dom/Document.cpp:
(WebCore::Document::canAcceptChild):

LayoutTests:
Test for RenderBox::styleDidChange crash fix
https://bugs.webkit.org/show_bug.cgi?id=208311

Patch by Eugene But <eugenebut@chromium.org> on 2020-03-27
Reviewed by Ryosuke Niwa

add-document-child-during-document-child-replacement.html test adds svg child to a document
from mutation event observer while existing document child is being replaced.
After adding svg child, the document should reject the replacement of existing child, per spec:

If parent is a document, and any of the statements below, switched on node,
are true, then throw a "HierarchyRequestError" DOMException:
    .......
    element
        parent has an element child that is not child or a doctype is following child.
    ......
https://dom.spec.whatwg.org/#concept-node-replace

add-document-child-and-reparent-old-child-during-document-child-replacement.html reparents the old child
to create slightly different state where old child still has a parent but that parent is not document.

* add-document-child-during-document-child-replacement.html:
* add-document-child-and-reparent-old-child-during-document-child-replacement.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259152 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb content processes should not be able to arbitrarily request pasteboard data from...
wenson_hsieh@apple.com [Sat, 28 Mar 2020 03:05:01 +0000 (03:05 +0000)]
Web content processes should not be able to arbitrarily request pasteboard data from the UI process
https://bugs.webkit.org/show_bug.cgi?id=209657
<rdar://problem/59611585>

Reviewed by Geoff Garen.

Source/WebCore:

Match macOS behavior in the iOS implementation of Pasteboard::createForCopyAndPaste by using the name of the
general pasteboard by default, when initializing a Pasteboard for copying and pasting. In WebKit2, this allows
us to grant permission to the web process when reading from the general pasteboard.

* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::createForCopyAndPaste):

Source/WebCore/PAL:

Soft-link the string constant `UIPasteboardNameGeneral`. See WebKit/ChangeLog for more details.

* pal/ios/UIKitSoftLink.h:
* pal/ios/UIKitSoftLink.mm:

Source/WebKit:

This patch adds a mechanism to prevent the UI process from sending pasteboard data to the web process in
response to WebPasteboardProxy IPC messages, unless the user (or the WebKit client, on behalf of the user) has
explicitly made the contents of the pasteboard available to a page in that web process. We determine the latter
by maintaining information about the `changeCount`s of each pasteboard we allow each web process to read. This
mapping is updated when either the user interacts with trusted UI (context menus, DOM paste menu) for pasting,
or an API client calls into -[WKWebView paste:], as is the case when pasting via the callout bar on iOS or
pasting via keyboard shortcuts (i.e. cmd + V) on macOS and iOS.

See per-change comments below for more details. Under normal circumstances, there should be no change in
behavior; refer to the radar for more context.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::grantAccessToCurrentPasteboardData):

Add a helper method to grant access to the data currently on the pasteboard with the given name; for now, this
grants access to all related pages that reside in the same web process, but this may be refactored in a future
change to make the mapping granular to each WebPageProxy rather than WebProcessProxy.

(Note: it is _critical_ that this method is never invoked as a result of IPC from the web process.)

* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::grantAccessToCurrentData):

Helper method to grant access to the current contents on the named pasteboard. Calling this method updates
`m_pasteboardNameToChangeCountAndProcessesMap`, such that the given web process is able to read from the
pasteboard with the given name, as long as the `changeCount` is still the same. To implement this behavior,
we either (1) add the process to an existing `WeakHashSet` of process proxies in the case where the
`changeCount` is the same as it was when we added the existing `WeakHashSet`, or in all other cases, (2) add a
replace the current (changeCount, processes) pair with the new change count and a weak set containing only the
given WebProcessProxy.

(WebKit::WebPasteboardProxy::revokeAccessToAllData):

Helper method to revoke all pasteboard access for the given WebProcessProxy. Called when resetting state, e.g.
after web process termination.

(WebKit::WebPasteboardProxy::canAccessPasteboardData const):

Private helper method to check whether an IPC message can access pasteboard data, based on the IPC::Connection
used to receive the message. This helper method returns true if either the WebKit client has used SPI
(both DOMPasteAllowed and JavaScriptCanAccessClipboard) to grant unmitigated access to the clipboard from the
web process, or access has been previously granted due to user interaction in the UI process or API calls made
directly by the WebKit client.

(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):

Private helper method to update the pasteboard changeCount that has been granted to a given web process, in the
case where that web process was also responsible for writing data to the pasteboard and the pasteboard
changeCount prior to modifying the pasteboard was still valid. In other words, we should always allow a web
process to read contents it has just written. This allows us to maintain the use case where a WKWebView client
copies and pastes using back-to-back API calls:

```
[webView copy:nil];
[webView paste:nil];
```

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

Add a FIXME to add the `canAccessPasteboardData` check here as well. We can't do this yet because the web
process currently relies on being able to read the full list of pasteboard path names when dragging over the
page, but this will be fixed in a followup patch in the near future (see https://webkit.org/b/209671).

(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):

In all the call sites where we ask for pasteboard data (with the exception of getPasteboardPathnamesForType, for
the time being), check whether we're allowed to read pasteboard data by consulting canAccessPasteboardData. If
not, return early with no data.

(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):

In all the call sites where we knowingly mutate the pasteboard (and bump the changeCount as a result),
additionally update the changeCount to which we've granted access on behalf of the web process that is modifying
the pasteboard.

(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):

(See comments above).

* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::performDragOperation):

When performing a drop on macOS, grant temporary access to the drag pasteboard.

(WebKit::WebViewImpl::requestDOMPasteAccess):
(WebKit::WebViewImpl::handleDOMPasteRequestWithResult):

If the user has granted DOM paste access, additionally grant access to the general pasteboard.

* UIProcess/WebPageProxy.cpp:
(WebKit::isPasteCommandName):
(WebKit::WebPageProxy::executeEditCommand):

When executing an edit command on behalf of a WebKit client, check to see if it is a paste command (one of
the four that are defined in EditorCommand.cpp). If so, we grant access to the current contents of the general
pasteboard.

* UIProcess/WebPageProxy.h:
* UIProcess/WebPasteboardProxy.cpp:
(WebKit::WebPasteboardProxy::webProcessProxyForConnection const):

Add a helper method to map a given IPC::Connection to a WebProcessProxy. While we have a list of WebProcessProxy
objects, we know a priori that at most one of them will have the given connection, so returning a single
`WebProcessProxy*` here is sufficient (rather than a list of `WebProcessProxy*`s).

(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):

Update interface stubs for non-Cocoa platforms.

* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:

Decorate more IPC endpoints with `WantsConnection`, so that we can reason about the `IPC::Connection`s used to
receive pasteboard messages.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _handleDOMPasteRequestWithResult:]):

If the user has granted DOM paste access, additionally grant access to the general pasteboard.

(-[WKContentView dropInteraction:performDrop:]):

When performing a drop on iOS, grant temporary access to the drag pasteboard.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willPerformPasteCommand):
* UIProcess/libwpe/WebPasteboardProxyLibWPE.cpp:
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformDidSelectItemFromActiveContextMenu):

Grant pasteboard access when using the context menu to paste on macOS.

(WebKit::WebPageProxy::willPerformPasteCommand):

Grant pasteboard access when triggering the "Paste" edit command using WebKit SPI.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259151 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[JSC] Make Operator an enum class to avoid Op* identifiers
ross.kirsling@sony.com [Sat, 28 Mar 2020 02:47:07 +0000 (02:47 +0000)]
[JSC] Make Operator an enum class to avoid Op* identifiers
https://bugs.webkit.org/show_bug.cgi?id=209637

Reviewed by Darin Adler.

Currently, (e.g.) OpLShift is a value of enum Operator while OpLshift is an opcode.
Capitalization aside, it's confusing to be using Op* for disparate purposes like this.
Let's modernize the enum so that this confusion can go away as a side effect.

* bytecompiler/NodesCodegen.cpp:
(JSC::emitIncOrDec):
(JSC::PostfixNode::emitBytecode):
(JSC::PrefixNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecodeInConditionContext):
(JSC::emitReadModifyAssignment):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::makeAssignNode):
* parser/Nodes.h:
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoSkip stress/test-out-of-memory.js on memory limited devices.
mark.lam@apple.com [Sat, 28 Mar 2020 00:56:18 +0000 (00:56 +0000)]
Skip stress/test-out-of-memory.js on memory limited devices.
https://bugs.webkit.org/show_bug.cgi?id=209690
<rdar://problem/60659198>

Reviewed by Keith Miller.

* stress/test-out-of-memory.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259149 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoREGRESSION (r256577): Previous page continues to display after navigating to media...
zalan@apple.com [Sat, 28 Mar 2020 00:45:05 +0000 (00:45 +0000)]
REGRESSION (r256577): Previous page continues to display after navigating to media document
https://bugs.webkit.org/show_bug.cgi?id=209630
<rdar://problem/60609318>

Reviewed by Simon Fraser.

Add a way for non-HTML documents to signal visually non-empty state (for example when media document constructs the controls for the media content.)

* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* page/FrameView.cpp:
(WebCore::FrameView::resetLayoutMilestones):
(WebCore::FrameView::checkAndDispatchDidReachVisuallyNonEmptyState):
* page/FrameView.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoChange SVGRenderingContext::renderSubtreeToImageBuffer() to SVGRenderingContext:...
simon.fraser@apple.com [Fri, 27 Mar 2020 23:51:09 +0000 (23:51 +0000)]
Change SVGRenderingContext::renderSubtreeToImageBuffer() to SVGRenderingContext::renderSubtreeToContext()
https://bugs.webkit.org/show_bug.cgi?id=209679

Reviewed by Said Abou-Hallawa.

renderSubtreeToImageBuffer() just gets the context from the buffer, so change the name and signature
and just pass a GraphicsContext.

* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::renderSubtreeToContext):
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Deleted.
* rendering/svg/SVGRenderingContext.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259147 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[iOS] Delay process suspension for a while after loading an app link
cdumez@apple.com [Fri, 27 Mar 2020 23:44:46 +0000 (23:44 +0000)]
[iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686
<rdar://problem/60888891>

Reviewed by Darin Adler.

Delay process suspension for a while after loading an app link. This will allow the page's script to pass
information more reliably to the native app handling the navigation.

This patch adds a [WKWebView _willOpenAppLink] SPI that the client needs to call before opening the
app link.

* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _willOpenAppLink]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willOpenAppLink):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259146 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[ Mac wk2 ] MediaPlayerPrivateInterface crash in WebKit::VideoFullscreenManager
lawrence.j@apple.com [Fri, 27 Mar 2020 23:25:33 +0000 (23:25 +0000)]
[ Mac wk2 ] MediaPlayerPrivateInterface crash in WebKit::VideoFullscreenManager
https://bugs.webkit.org/show_bug.cgi?id=209688

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[ Mac Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media...
lawrence.j@apple.com [Fri, 27 Mar 2020 22:26:48 +0000 (22:26 +0000)]
[ Mac Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209684

Unreviewed test gardening.

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259143 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb Inspector: should also escape the method when Copy as cURL
drousso@apple.com [Fri, 27 Mar 2020 21:32:20 +0000 (21:32 +0000)]
Web Inspector: should also escape the method when Copy as cURL
https://bugs.webkit.org/show_bug.cgi?id=209665
<rdar://problem/58432154>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Models/Resource.js:
(WI.Resource.prototype.generateCURLCommand):
(WI.Resource.prototype.generateCURLCommand.escapeStringPosix):
The method could be maliciously crafted, so we should also escape it (if needed).

LayoutTests:

* http/tests/inspector/network/copy-as-curl.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259141 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUse EnsureStillAliveScope to keep JSValues alive
ysuzuki@apple.com [Fri, 27 Mar 2020 21:25:38 +0000 (21:25 +0000)]
Use EnsureStillAliveScope to keep JSValues alive
https://bugs.webkit.org/show_bug.cgi?id=209577

Reviewed by Geoffrey Garen.

Some of WebCore code is using JSC::Strong<> to ensure JSC value alive while doing some operations.
But JSC::EnsureStillAliveScope is sufficient for this use case. This patch replaces these Strong<> use
with JSC::EnsureStillAliveScope.

* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::ensureJSFunction const):
* bindings/js/JSWindowProxy.cpp:
(WebCore::JSWindowProxy::setWindow):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259140 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUse ANGLE_robust_client_memory to replace framebuffer/texture validation
commit-queue@webkit.org [Fri, 27 Mar 2020 21:08:27 +0000 (21:08 +0000)]
Use ANGLE_robust_client_memory to replace framebuffer/texture validation
https://bugs.webkit.org/show_bug.cgi?id=209098

Patch by Kenneth Russell <kbr@chromium.org> on 2020-03-27
Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Incorporated fix from anglebug.com/4504 to make
fast/canvas/webgl/uninitialized-test.html pass.

Incorporated fix from anglebug.com/4518 to make:
 webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html
 webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html
 webgl/2.0.0/conformance2/rendering/rgb-format-support.html
 webgl/2.0.0/conformance2/state/gl-object-get-calls.html
 webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html
pass.

* src/libANGLE/Texture.cpp:
(gl::Texture::copySubImage):
(gl::Texture::ensureSubImageInitialized):
* src/libANGLE/renderer/gl/renderergl_utils.cpp:
(rx::nativegl_gl::InitializeFeatures):

Source/WebCore:

Original patch by James Darpinian.

Delegate most framebuffer, compressed texture, renderbuffer, draw call,
clear, and ReadPixels validation to the ANGLE_robust_client_memory
extension. Delegate much, but not all, texture validation as well.
Remove tracking of textures' levels and immutability state, framebuffer
size and format, and unrenderable texture units from WebCore; these are
now handled by ANGLE. Hook up WebGL 2.0 draw/read framebuffer support
and BlitFramebuffer.

Disable WebGL 2.0 for non-ANGLE backends. It is infeasible to maintain
correctness of GraphicsContextGLOpenGL and GraphicsContextGLOpenGLES
under relaxed OpenGL ES 3.0 constraints.

Covered by existing WebGL layout tests. Several more webgl/2.0.0 tests
pass completely with this change.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::readBuffer):
(WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::clear):
(WebCore::WebGL2RenderingContext::renderbufferStorage):
(WebCore::WebGL2RenderingContext::baseInternalFormatFromInternalFormat):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLFramebuffer.cpp:
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::clear):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::reshape):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::checkFramebufferStatus):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::validateVertexAttributes):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::generateMipmap):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::texImageSource2D):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::texImage2DImpl):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferColorFormat):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferWidth):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferHeight):
(WebCore::WebGLRenderingContextBase::validateTextureBinding):
(WebCore::WebGLRenderingContextBase::validateTexFuncLevel):
(WebCore::WebGLRenderingContextBase::restoreCurrentFramebuffer):
(WebCore::WebGLRenderingContextBase::restoreCurrentTexture2D):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
(WebCore::WebGLRenderingContextBase::getBoundFramebufferColorFormat): Deleted.
(WebCore::WebGLRenderingContextBase::getBoundFramebufferWidth): Deleted.
(WebCore::WebGLRenderingContextBase::getBoundFramebufferHeight): Deleted.
* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::WebGLTexture):
(WebCore::WebGLTexture::setTarget):
(WebCore::WebGLTexture::deleteObjectImpl):
(WebCore::WebGLTexture::computeLevelCount):
(WebCore::WebGLTexture::canGenerateMipmaps):
* html/canvas/WebGLTexture.h:
* platform/graphics/ExtensionsGL.h:
* platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE):
(WebCore::wipeAlphaChannelFromPixels):
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):
* platform/graphics/angle/ExtensionsGLANGLE.h:
* platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
* platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
* platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFloatvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getIntegervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getProgramivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getShaderivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::readPixelsRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getPointervRobustANGLERobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectui64vRobustANGLE):
* platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
* platform/graphics/opengl/GraphicsContextGLOpenGL.h:
* platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::readPixels):
* platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
* platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
* platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

LayoutTests:

Several more webgl/2.0.0 tests pass completely with these changes.
Rebaseline all WebGL-related layout tests. Nearly all diffs are forward
progressions. All will eventually be passed as more of WebGL 2.0 is
implemented.

Removed fast/canvas/webgl/webgl-specific.html test, which was
duplicated in webgl/1.0.3 and webgl/2.0.0 and which was testing
behavior from an old version of the WebGL specification.

Revised uninitialized-test.html to test current WebGL
specification; copyTexSubImage2D now leaves out-of-range
pixels untouched, rather than zeroing them.

* fast/canvas/webgl/uninitialized-test.html:
* fast/canvas/webgl/webgl-specific-expected.txt: Removed.
* fast/canvas/webgl/webgl-specific.html: Removed.
* fast/canvas/webgl/webgl2-texStorage-expected.txt:
* platform/gtk/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Copied from LayoutTests/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt.
* platform/ios/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Removed.
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:
* platform/wpe/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Copied from LayoutTests/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt.
* webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt:
* webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d-expected.txt:
* webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt:
* webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
* webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt:
* webgl/2.0.0/conformance2/renderbuffers/readbuffer-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
* webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
* webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt:
* webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259139 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoHTMLTrackElement should be pending while it is waiting for LoadableTextTrack request
cdumez@apple.com [Fri, 27 Mar 2020 21:07:33 +0000 (21:07 +0000)]
HTMLTrackElement should be pending while it is waiting for LoadableTextTrack request
https://bugs.webkit.org/show_bug.cgi?id=208798
<rdar://problem/60325421>

Reviewed by Geoffrey Garen.

Have HTMLTrackElement and subclass ActiveDOMObject::hasPendingActivity() to keeps its
wrapper alive if its in LOADING state and the page's script has relevant load events
event listeners registered.

No new tests, covered by media/track/track-disabled-addcue.html.

* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::create):
(WebCore::HTMLTrackElement::didCompleteLoad):
(WebCore::HTMLTrackElement::readyState const):
(WebCore::HTMLTrackElement::activeDOMObjectName const):
(WebCore::HTMLTrackElement::eventListenersDidChange):
(WebCore::HTMLTrackElement::hasPendingActivity const):
(WebCore::HTMLTrackElement::readyState): Deleted.
* html/HTMLTrackElement.h:
* html/HTMLTrackElement.idl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259138 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoHovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
simon.fraser@apple.com [Fri, 27 Mar 2020 20:57:41 +0000 (20:57 +0000)]
Hovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=209635
<rdar://problem/60935010>

Reviewed by Said Abou-Hallawa.
Source/WebCore:

RenderSVGResourceClipper::applyClippingToContext() cached an ImageBuffer per RenderObject
when using a image buffer mask. However, the function created and rendered into this image buffer
using repaintRect, which can change between invocations. Painting with different repaintRects
is very common when rendering into page tiles.

The buffer can only be re-used if the inputs used to create the buffer (objectBoundingBox, absoluteTransform)
are the same, so store those and compare them when determining when to use the cached buffer, and
don't use repaintRect when setting up the buffer.

This revealed another problem where renderers with visual overflow could be truncated by
the clipping, tested by imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml, which occurred
because RenderLayer::setupClipPath() used the 'svgReferenceBox' for the clipping bounds, which
is the content box of the renderer excluding overflow. Fix this by using the bounds of the layer,
which includes the bounds of descendants.

Tests: svg/clip-path/clip-path-on-overflowing.html
       svg/clip-path/resource-clipper-multiple-repaints.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::addRendererToClipper):
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):
* rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

Ref test that exercises the code path by painting into a tiled compositing
layer.

* svg/clip-path/clip-path-on-overflowing-expected.html: Added.
* svg/clip-path/clip-path-on-overflowing.html: Added.
* svg/clip-path/mask-nested-clip-path-010-expected.svg:
* svg/clip-path/mask-nested-clip-path-010.svg: Copied from imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml,
and modified to have a non-zero offset for better testing of the clipping bounds computation.
* svg/clip-path/resource-clipper-multiple-repaints-expected.html: Added.
* svg/clip-path/resource-clipper-multiple-repaints.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259137 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoNetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked should validate...
ddkilzer@apple.com [Fri, 27 Mar 2020 20:53:53 +0000 (20:53 +0000)]
NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked should validate its parameters
<https://webkit.org/b/209614>
<rdar://problem/60096304>

Reviewed by Alex Christensen.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(NETWORK_PROCESS_MESSAGE_CHECK):
- Define/undef macro for killing WebContent process when an
  invalid IPC message is received.
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
- Use NETWORK_PROCESS_MESSAGE_CHECK to validate its parameters.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259136 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MediaRecorder::dispatchError
cdumez@apple.com [Fri, 27 Mar 2020 20:33:25 +0000 (20:33 +0000)]
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MediaRecorder::dispatchError
https://bugs.webkit.org/show_bug.cgi?id=209674
<rdar://problem/60541201>

Reviewed by Darin Adler.

Keep the MediaRecorder wrapper alive while its state is not inactive (i.e. it is recording
or paused), as it may still dispatch events.

Also drop MediaRecorder::scheduleDeferredTask() and use the utility functions in
ActiveDOMObject instead to achieve the same thing.

No new tests, already covered by http/wpt/mediarecorder/MediaRecorder-onremovetrack.html.

* Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::suspend):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::didAddOrRemoveTrack):
(WebCore::MediaRecorder::hasPendingActivity const):
(WebCore::MediaRecorder::scheduleDeferredTask): Deleted.
* Modules/mediarecorder/MediaRecorder.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259135 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoREGRESSION(r258857): Broke aarch64 JSCOnly CI
commit-queue@webkit.org [Fri, 27 Mar 2020 19:48:03 +0000 (19:48 +0000)]
REGRESSION(r258857): Broke aarch64 JSCOnly CI
https://bugs.webkit.org/show_bug.cgi?id=209670

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-27
Reviewed by Carlos Alberto Lopez Perez.

Change aarch64 to use 4 KB rather than 64 KB as the ceiling on page size.

This change is definitely incorrect, because it will break our internal aarch64 CI that uses
64 KB pages. But maybe it will fix the public aarch64 CI bot that is using 4 KB pages?
Further investigation is required, because 64 KB should have been a safe value for all
platforms, but first step is to commit this and see what happens.

* wtf/PageBlock.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnable to build WebKit with iOS 13.4 SDK
timothy_horton@apple.com [Fri, 27 Mar 2020 19:43:36 +0000 (19:43 +0000)]
Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

Reviewed by Dean Jackson.

* Platform/spi/ios/UIKitSPI.h:
One more attempt. __IPHONE_OS_VERSION_MAX_ALLOWED is inaccurate.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259133 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[ Mac wk2 ] ASSERTION FAILED: m_messageEventCount @ WebCore::ServiceWorkerThread...
lawrence.j@apple.com [Fri, 27 Mar 2020 19:12:03 +0000 (19:12 +0000)]
[ Mac wk2 ] ASSERTION FAILED: m_messageEventCount @ WebCore::ServiceWorkerThread::finishedFiringMessageEvent()
https://bugs.webkit.org/show_bug.cgi?id=209672

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259132 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoFix instances of new.target that should be syntax errors
tzagallo@apple.com [Fri, 27 Mar 2020 18:39:46 +0000 (18:39 +0000)]
Fix instances of new.target that should be syntax errors
https://bugs.webkit.org/show_bug.cgi?id=208040
<rdar://problem/59653142>

Reviewed by Michael Saboff.

We were not throwing the appropriate syntax errors for the following usages of new.target:
- Class field initializers outside ordinary functions: we were missing a check that the
  closestOrdinaryFunctionScope was not the global scope.
- Within an eval inside an arrow function: we were only checking that the EvalContextType should
  be FunctionEvalContext, but that does not tell us whether it's an arrow function or an ordinary
  function. To fix that we must thread that information from the executables to the parser.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::link):
* bytecode/UnlinkedFunctionExecutable.h:
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
* interpreter/Interpreter.cpp:
(JSC::eval):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseMemberExpression):
* parser/Parser.h:
(JSC::parse):
* runtime/CodeCache.cpp:
(JSC::generateUnlinkedCodeBlockImpl):
* runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
(JSC::DirectEvalExecutable::DirectEvalExecutable):
* runtime/DirectEvalExecutable.h:
* runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::EvalExecutable):
* runtime/EvalExecutable.h:
* runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::FunctionExecutable):
* runtime/FunctionExecutable.h:
* runtime/GlobalExecutable.h:
(JSC::GlobalExecutable::GlobalExecutable):
* runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::IndirectEvalExecutable):
* runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
* runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::ProgramExecutable):
* runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
* runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::isInsideOrdinaryFunction const):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259131 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[StressGC] ASSERTION FAILED: m_wrapper under WebCore::WebGLRenderingContextBase:...
cdumez@apple.com [Fri, 27 Mar 2020 18:30:08 +0000 (18:30 +0000)]
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::WebGLRenderingContextBase::dispatchContextLostEvent
https://bugs.webkit.org/show_bug.cgi?id=209660
<rdar://problem/60541733>

Reviewed by Darin Adler.

Make HTMLCanvasElement an ActiveDOMObject since WebGLRenderingContextBase needs to dispatch events
asynchronously on its canvas element. Update WebGLRenderingContextBase to use the HTML event loop
to dispatch those events asynchronously instead of using suspendible timers.

No new tests, already covered by webgl/max-active-contexts-webglcontextlost-prevent-default.html.

* dom/TaskSource.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::create):
(WebCore::HTMLCanvasElement::activeDOMObjectName const):
* html/HTMLCanvasElement.h:
* html/HTMLCanvasElement.idl:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent): Deleted.
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent): Deleted.
* html/canvas/WebGLRenderingContextBase.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259130 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[ Mac wk2 Release ] media/modern-media-controls/seek-backward-support/seek-backward...
lawrence.j@apple.com [Fri, 27 Mar 2020 18:21:40 +0000 (18:21 +0000)]
[ Mac wk2 Release ] media/modern-media-controls/seek-backward-support/seek-backward-support.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209668

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259129 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUse Optional<> for a lazily-computed bounds rectangle
simon.fraser@apple.com [Fri, 27 Mar 2020 18:07:52 +0000 (18:07 +0000)]
Use Optional<> for a lazily-computed bounds rectangle
https://bugs.webkit.org/show_bug.cgi?id=209659

Reviewed by Zalan Bujtas.

Replace LayoutRect& rootRelativeBounds, bool& rootRelativeBoundsComputed with Optional<LayoutRect>.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):
* rendering/RenderLayer.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoAdd missing scope release to DataView's buffer getter
keith_miller@apple.com [Fri, 27 Mar 2020 18:05:59 +0000 (18:05 +0000)]
Add missing scope release to DataView's buffer getter
https://bugs.webkit.org/show_bug.cgi?id=209663

Reviewed by Yusuke Suzuki.

* runtime/JSDataViewPrototype.cpp:
(JSC::dataViewProtoGetterBuffer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259127 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUse -_hasFocusedElement in -_didUpdateInputMode
dbates@webkit.org [Fri, 27 Mar 2020 17:58:24 +0000 (17:58 +0000)]
Use -_hasFocusedElement in -_didUpdateInputMode
https://bugs.webkit.org/show_bug.cgi?id=209662

Reviewed by Wenson Hsieh.

Remove duplication by using -_hasFocusedElement.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didUpdateInputMode:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259126 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoSkip new memory test stress/typed-array-oom-in... in memory limited devices
commit-queue@webkit.org [Fri, 27 Mar 2020 17:54:40 +0000 (17:54 +0000)]
Skip new memory test stress/typed-array-oom-in... in memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=209661

Patch by Paulo Matos <pmatos@igalia.com> on 2020-03-27
Reviewed by Keith Miller.

* stress/typed-array-oom-in-buffer-accessor.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259125 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoDragData::containsURL() should avoid reading URL strings from the pasteboard
wenson_hsieh@apple.com [Fri, 27 Mar 2020 17:00:56 +0000 (17:00 +0000)]
DragData::containsURL() should avoid reading URL strings from the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=209642
Work towards <rdar://problem/59611585>

Reviewed by Tim Horton.

Source/WebCore:

Refactor the implementation of DragData::containsURL(), such that in WebKit2, the web process never needs to
reason about the value of any string data in the pasteboard. We move most of the Cocoa-specific logic in
DragData::containsURL into PlatformPasteboard, and add new PasteboardStrategy methods in support of this. See
below for more details. There should be no change in behavior; however, this has the minor benefit of reducing
the number of sync IPC to 1 (2 in the case of macOS) in both containsURL and asURL.

* platform/PasteboardStrategy.h:

Add new strategy methods containsURLStringSuitableForLoading and urlStringSuitableForLoading, which are used in
DragData::containsURL and DragData::asURL, respectively.

* platform/PlatformPasteboard.h:
* platform/cocoa/DragDataCocoa.mm:
(WebCore::DragData::containsURL const):

In Cocoa platforms, the argument to containsURL was effectively unused. Leave only the type behind, now that we
don't need to plumb it through to asURL() anymore.

(WebCore::DragData::asURL const):

In both asURL and containsURL, use the new PasteboardStrategy helpers to get information about loadable URLs in
the drag pasteboard. A bit of macOS-specific code remains here since it relies on DragData::fileNames() --
information which is not present in the platform pasteboard.

* platform/cocoa/PlatformPasteboardCocoa.mm:
(WebCore::PlatformPasteboard::urlStringSuitableForLoading):

Move the Cocoa-specific implementation of DragData::asURL into PlatformPasteboardCocoa, since the implementation
is mostly the same (with some minor additions for macOS). The only minor changes here (and below, in
containsURLStringSuitableForLoading) is the use of URL::protocolIsInHTTPFamily() instead of checking that
-[NSURL scheme] is equal to either @"http" or @"https".

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::containsURLStringSuitableForLoading):

Move the platform-dependent implementations of DragData::containsURL to PlatformPasteboardIOS and
PlatformPasteboardMac. These implementations were already quite different, so this split into -IOS and -Mac
files is cleaner than using #if and #else in the same method implementation.

* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::containsURLStringSuitableForLoading):

Source/WebKit:

See WebCore/ChangeLog for more details.

* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
* UIProcess/WebPasteboardProxy.cpp:
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:

Add IPC plumbing for the new pasteboard strategy methods: containsURLStringSuitableForLoading and
urlStringSuitableForLoading.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebKit::WebPlatformStrategies::urlStringSuitableForLoading):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more details.

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebPlatformStrategies::urlStringSuitableForLoading):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259124 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MainThreadGenericEventQueue...
cdumez@apple.com [Fri, 27 Mar 2020 16:53:39 +0000 (16:53 +0000)]
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MainThreadGenericEventQueue::dispatchOneEvent
https://bugs.webkit.org/show_bug.cgi?id=209655
<rdar://problem/60541442>

Reviewed by Geoffrey Garen.

TrackListBase should subclass ActiveDOMObject and keep its wrapper alive when there are pending
events to be dispatched. TrackListBase has a queue to dispatch events asynchronously.

No new tests, covered by media/track/track-remove-track.html.

* html/track/AudioTrackList.cpp:
(WebCore::AudioTrackList::activeDOMObjectName const):
* html/track/AudioTrackList.h:
* html/track/AudioTrackList.idl:
* html/track/TextTrackList.cpp:
(WebCore::TextTrackList::activeDOMObjectName const):
* html/track/TextTrackList.h:
* html/track/TextTrackList.idl:
* html/track/TrackListBase.cpp:
(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::hasPendingActivity const):
* html/track/TrackListBase.h:
* html/track/VideoTrackList.cpp:
(WebCore::VideoTrackList::activeDOMObjectName const):
* html/track/VideoTrackList.h:
* html/track/VideoTrackList.idl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259122 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoClean up fast/scrolling/latching tests
simon.fraser@apple.com [Fri, 27 Mar 2020 16:45:46 +0000 (16:45 +0000)]
Clean up fast/scrolling/latching tests
https://bugs.webkit.org/show_bug.cgi?id=209629

Reviewed by Zalan Bujtas.

These tests had a bunch of issues:
    - mixture of waitUntilDone/jsTestIsAsync
    - not all used eventSender.monitorWheelEvents
    - script in the body for no reason
    - commented out code, unused variables
    - confusing comments
    - contradictory test content

* fast/scrolling/latching/iframe_in_iframe-expected.txt:
* fast/scrolling/latching/iframe_in_iframe.html:
* fast/scrolling/latching/resources/inner_content.html:
* fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html:
* fast/scrolling/latching/scroll-div-latched-div-expected.txt:
* fast/scrolling/latching/scroll-div-latched-div.html:
* fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt:
* fast/scrolling/latching/scroll-div-latched-mainframe.html:
* fast/scrolling/latching/scroll-div-no-latching-expected.txt:
* fast/scrolling/latching/scroll-div-no-latching.html:
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt:
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
* fast/scrolling/latching/scroll-iframe-fragment-expected.txt:
* fast/scrolling/latching/scroll-iframe-fragment.html:
* fast/scrolling/latching/scroll-iframe-in-overflow-expected.txt:
* fast/scrolling/latching/scroll-iframe-in-overflow.html:
* fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt:
* fast/scrolling/latching/scroll-iframe-latched-iframe.html:
* fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt:
* fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt:
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
* fast/scrolling/latching/scroll-latched-nested-div-expected.txt:
* fast/scrolling/latching/scroll-latched-nested-div.html:
* fast/scrolling/latching/scroll-nested-iframe-expected.txt:
* fast/scrolling/latching/scroll-nested-iframe.html:
* fast/scrolling/latching/scroll-select-bottom-test-expected.txt:
* fast/scrolling/latching/scroll-select-bottom-test.html:
* fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt:
* fast/scrolling/latching/scroll-select-latched-mainframe.html:
* fast/scrolling/latching/scroll-select-latched-select-expected.txt:
* fast/scrolling/latching/scroll-select-latched-select.html:
* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[ macOS wk2 ] http/tests/resourceLoadStatistics/user-interaction-only-reported-once...
katherine_cheney@apple.com [Fri, 27 Mar 2020 16:41:21 +0000 (16:41 +0000)]
[ macOS wk2 ] http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html is flaky failing on safari-609-branch
<rdar://problem/60940165>

Unreviewed test gardening. Updating expectations for ITP test which
should be skipped due to a short timestampResolution.

* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259120 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoMove applyUserAgentIfNeeded calls to a more central place
commit-queue@webkit.org [Fri, 27 Mar 2020 16:12:35 +0000 (16:12 +0000)]
Move applyUserAgentIfNeeded calls to a more central place
https://bugs.webkit.org/show_bug.cgi?id=209587

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-27
Reviewed by Darin Adler.

Make main resource loads stop calling applyUserAgentIfNeeded
and instead do it in the CachedResourceLoader.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToRequest):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createRequest):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):
(WebCore::CachedResourceRequest::updateUserAgentHeader):
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders): Deleted.
* loader/cache/CachedResourceRequest.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259116 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoFilter DOMCache records in network process to reduce the number of records being...
youenn@apple.com [Fri, 27 Mar 2020 16:11:20 +0000 (16:11 +0000)]
Filter DOMCache records in network process to reduce the number of records being sent to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=209469
<rdar://problem/55207565>

Reviewed by Alex Christensen.

Source/WebCore:

Instead of retrieving all records and filtering them in WebProcess, WebProcess is now
sending filtering options to NetworkProcess.
In case of keys, ask network process to not send back any response.

Covered by existing tests.

* Headers.cmake:
* Modules/cache/CacheStorageConnection.h:
* Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::doMatch):
(WebCore::DOMCache::matchAll):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::queryCache):
(WebCore::DOMCache::retrieveRecords): Deleted.
(WebCore::DOMCache::queryCacheWithTargetStorage): Deleted.
* Modules/cache/DOMCache.h:
* Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::retrieveRecords):
* Modules/cache/WorkerCacheStorageConnection.h:
* WebCore.xcodeproj/project.pbxproj:
* page/CacheStorageProvider.h:

Source/WebKit:

Receive new retrieve record options and make use of them to filter the records sent back to the WebProcess.
This includes filtering the records for a given requests.
This includes removing responses in case the request is made to gather all requests for Cache.keys().

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::retrieveRecords):
* NetworkProcess/cache/CacheStorageEngine.h:
* NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::retrieveRecords):
* NetworkProcess/cache/CacheStorageEngineCache.h:
* NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::retrieveRecords):
* NetworkProcess/cache/CacheStorageEngineConnection.h:
* NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
* WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::retrieveRecords):
* WebProcess/Cache/WebCacheStorageConnection.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259115 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoPass hardness for test numberingSystemsForLocale-cached-... through test header
commit-queue@webkit.org [Fri, 27 Mar 2020 14:51:55 +0000 (14:51 +0000)]
Pass hardness for test numberingSystemsForLocale-cached-... through test header
https://bugs.webkit.org/show_bug.cgi?id=209476

Patch by Paulo Matos <pmatos@igalia.com> on 2020-03-27
Reviewed by Yusuke Suzuki.

Improvement over change r258190. Instead of creating a new test file
duplicating contents where a hardness parameter is different, pass this
through the test header using the -e flag to jsc.

* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js:
* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259114 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
magomez@igalia.com [Fri, 27 Mar 2020 13:14:01 +0000 (13:14 +0000)]
[WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
https://bugs.webkit.org/show_bug.cgi?id=209647

Reviewed by Adrian Perez de Castro.

Don't perform the call to gst_gl_sync_meta_wait_cpu() when using an OpenMAX decoder,
as we don't need synchronization in that case and the internal call to glFinish()
casues an important fps drop.

* platform/graphics/gstreamer/GStreamerCommon.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259113 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoSource/WebCore:
clord@igalia.com [Fri, 27 Mar 2020 12:54:38 +0000 (12:54 +0000)]
Source/WebCore:
[GTK][WPE] Enable kinetic scrolling with async rendering
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Refactor ScrollAnimationKinetic so that it no longer depends on
ScrollableArea, uses RunLoop::Timer and is responsible for tracking
the history of scroll events. This allows it to be used in
ScrollingTree*ScrollingNodeNicosia to provide kinetic scrolling when
async scrolling is enabled, on GTK and WPE.

No new tests, this just enables existing functionality in more situations.

* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::scrollTo):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
* platform/ScrollAnimationKinetic.cpp:
(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::appendToScrollHistory):
(WebCore::ScrollAnimationKinetic::clearScrollHistory):
(WebCore::ScrollAnimationKinetic::computeVelocity):
(WebCore::ScrollAnimationKinetic::start):
* platform/ScrollAnimationKinetic.h:
* platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::willEndLiveResize):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar):
* platform/generic/ScrollAnimatorGeneric.h:

Source/WebKit:
[GTK][WPE] Enable kinetic scrolling with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Modify WPE mousewheel event delivery so that it includes the necessary
phases needed to infer press/release times and allow for kinetic
scrolling.

* Shared/NativeWebWheelEvent.h:
* Shared/WebEvent.h:
* Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):
* Shared/libwpe/NativeWebWheelEventLibWPE.cpp:
(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
* Shared/libwpe/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebWheelEvent):
* Shared/libwpe/WebEventFactory.h:
* UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithTouchEvent):
* UIProcess/API/wpe/ScrollGestureController.cpp:
(WebKit::ScrollGestureController::handleEvent):
* UIProcess/API/wpe/ScrollGestureController.h:
(WebKit::ScrollGestureController::phase):
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::m_backend):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259112 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoBump boringssl version to M82
youenn@apple.com [Fri, 27 Mar 2020 10:36:08 +0000 (10:36 +0000)]
Bump boringssl version to M82
https://bugs.webkit.org/show_bug.cgi?id=209538

Reviewed by Eric Carlson.

* CMakeLists.txt:
* Source/third_party/boringssl: Updated.
* WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
* libwebrtc.xcodeproj/project.pbxproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259111 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUpdate Chrome and Firefox versions in user agent quirks
commit-queue@webkit.org [Fri, 27 Mar 2020 09:53:51 +0000 (09:53 +0000)]
Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=209631

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-27
Reviewed by Carlos Garcia Campos.

* platform/UserAgentQuirks.cpp:
(WebCore::UserAgentQuirks::stringForQuirk):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259110 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[Flatpak SDK] Allow passing gst-build Meson options
philn@webkit.org [Fri, 27 Mar 2020 09:53:27 +0000 (09:53 +0000)]
[Flatpak SDK] Allow passing gst-build Meson options
https://bugs.webkit.org/show_bug.cgi?id=209608

Reviewed by Žan Doberšek.

Add support for the GST_BUILD_ARGS env var storing gst-build Meson options.

* flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259109 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[Flatpak SDK] Warn when gst-build support was requested but GST_BUILD_PATH is not set
philn@webkit.org [Fri, 27 Mar 2020 09:52:22 +0000 (09:52 +0000)]
[Flatpak SDK] Warn when gst-build support was requested but GST_BUILD_PATH is not set
https://bugs.webkit.org/show_bug.cgi?id=209599

Reviewed by Žan Doberšek.

* flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.setup_dev_env):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259108 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoClear the entropy bits in the encodedStructureBits when deallocating a structureID.
mark.lam@apple.com [Fri, 27 Mar 2020 06:38:02 +0000 (06:38 +0000)]
Clear the entropy bits in the encodedStructureBits when deallocating a structureID.
https://bugs.webkit.org/show_bug.cgi?id=209632
<rdar://problem/60943876>

Reviewed by Saam Barati.

We currently only use a 32-bit offset in the StructureIDTable's StructureOrOffset.
Though we will never store an offset value that is near 32-bit in size, let alone
64-bit, there's no reason why we can't just use all 64-bits for the offset.
Doing so will also have the benefit of zero'ing out the entropy bits in the old
encodedStructureBits.  This guarantees that there's no chance of coalition between
a "freed" structureID's entropy bits and the entropy bits in a dead cell due to
GC bugs.

* runtime/StructureIDTable.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259107 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed test gardening for iOS.
ryanhaddad@apple.com [Fri, 27 Mar 2020 06:03:11 +0000 (06:03 +0000)]
Unreviewed test gardening for iOS.

* platform/ios-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259106 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoNetworkConnectionToWebProcess::domCookiesForHost should validate its `host` parameter
ddkilzer@apple.com [Fri, 27 Mar 2020 05:13:27 +0000 (05:13 +0000)]
NetworkConnectionToWebProcess::domCookiesForHost should validate its `host` parameter
<https://webkit.org/b/209612>
<rdar://problem/60097830>

Reviewed by Alex Christensen.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(NETWORK_PROCESS_MESSAGE_CHECK_COMPLETION):
- Define/undef macro for killing WebContent process when an
  invalid IPC message is received.
(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):
- Use NETWORK_PROCESS_MESSAGE_CHECK_COMPLETION) to validate
  `host` parameter.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259105 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[MSVC] Remove experimental lambda processor usage
don.olmstead@sony.com [Fri, 27 Mar 2020 04:31:02 +0000 (04:31 +0000)]
[MSVC] Remove experimental lambda processor usage
https://bugs.webkit.org/show_bug.cgi?id=209358

Reviewed by Fujii Hironori.

.:

Remove /experimental:newLambdaProcessor since WebKit is no longer able to build
with this setting as of Visual Studio 16.5.0.

* Source/cmake/OptionsMSVC.cmake:

Source/WebCore:

Fix build for Visual Studio scoping issue for lambdas. The experimental lambada
processor did build this code but is now failing to build WebKit at all.

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259104 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoREGRESSION: Unable to show Web Inspector on empty tabs in Safari
cdumez@apple.com [Fri, 27 Mar 2020 04:20:20 +0000 (04:20 +0000)]
REGRESSION: Unable to show Web Inspector on empty tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=209639
<rdar://problem/60937524>

Reviewed by Darin Adler.

Source/WebKit:

Make sure we launch the WebPageProxy's initial process when trying to inspect the
page using Web Inspector (i.e. WebInspectorProxy::connect() is called).

* UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
- Take in a reference instead of a raw pointer as it could never be null.
- Store the inspected page and add the message receiver to its process, even
  if the process is the dummy one (due to delayed process launch).

(WebKit::WebInspectorProxy::invalidate):
Call reset() to avoid code duplication.

(WebKit::WebInspectorProxy::connect):
Launch the page's initial process if necessary before trying to send IPC to that
process.

(WebKit::WebInspectorProxy::updateForNewPageProcess):
Take in a reference instead of a raw pointer as it could never be null.

* UIProcess/Inspector/WebInspectorProxy.h:
(WebKit::WebInspectorProxy::create):
Take in a reference instead of a raw pointer as it could never be null.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::launchProcess):
Call WebInspectorProxy::reset() before launching and connecting to the new process.
This is important now that the WebInspectorProxy connect to the dummy process proxy.
We need to make sure the WebInspectorProxy disconnects from the dummy process proxy
because we connect it to the newly launched process.

(WebKit::WebPageProxy::finishAttachingToWebProcess):

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259103 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months ago[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
Hironori.Fujii@sony.com [Fri, 27 Mar 2020 04:13:08 +0000 (04:13 +0000)]
[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
https://bugs.webkit.org/show_bug.cgi?id=204831

Reviewed by Ross Kirsling.

.:

* Source/cmake/WebKitMacros.cmake (WEBKIT_EXECUTABLE): Added /manifestdependency linkder option if WIN32.

Source/JavaScriptCore:

* shell/DLLLauncherMain.cpp: Removed /manifestdependency for Microsoft.VC80.CRT which seems leftover of Bug 116562 (r178530).

Tools:

* TestWebKitAPI/win/main.cpp:
* win/DLLLauncher/DLLLauncherMain.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259102 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoWeb Inspector: add keyboard shortcut to tooltip of pinned tabs
drousso@apple.com [Fri, 27 Mar 2020 03:07:25 +0000 (03:07 +0000)]
Web Inspector: add keyboard shortcut to tooltip of pinned tabs
https://bugs.webkit.org/show_bug.cgi?id=209640

Reviewed by Timothy Hatcher.

* UserInterface/Views/TabBarItem.js:
(WI.TabBarItem):
(WI.TabBarItem.prototype.get displayName): Added.
(WI.TabBarItem.prototype.set displayName): Added.
(WI.TabBarItem.prototype.set title):
(WI.TabBarItem.prototype.titleDidChange): Deleted.
* UserInterface/Views/GeneralTabBarItem.js:
(WI.GeneralTabBarItem.fromTabContentView):
(WI.GeneralTabBarItem.prototype.get displayName): Added.
(WI.GeneralTabBarItem.prototype.set displayName): Added.
(WI.GeneralTabBarItem.prototype.get title): Deleted.
(WI.GeneralTabBarItem.prototype.set title): Deleted.
* UserInterface/Views/PinnedTabBarItem.js:
(WI.PinnedTabBarItem):
(WI.PinnedTabBarItem.fromTabContentView):
(WI.PinnedTabBarItem.titleDidChange): Deleted.
* UserInterface/Views/TabBar.css:
(.tab-bar > .tabs > .item > .name): Added.
(body.window-inactive .tab-bar > .tabs > .item > .name): Added.
(.tab-bar > .tabs > .item > .name > .content): Added.
(.tab-bar > .tabs > .item:not(.selected):hover > .name): Added.
(.tab-bar > .tabs > .item:not(.disabled).selected > .name): Added.
(body.window-inactive .tab-bar > .tabs > .item:not(.disabled).selected > .name): Added.
(.tab-bar > .tabs > .item > .title): Deleted.
(body.window-inactive .tab-bar > .tabs > .item > .title): Deleted.
(.tab-bar > .tabs > .item > .title > .content): Deleted.
(.tab-bar > .tabs > .item:not(.selected):hover > .title): Deleted.
(.tab-bar > .tabs > .item:not(.disabled).selected > .title): Deleted.
(body.window-inactive .tab-bar > .tabs > .item:not(.disabled).selected > .title): Deleted.
Separate the shown name of the tab (`displayName`) from the tooltip text (`title`).

* UserInterface/Views/SearchTabContentView.js:
(WI.SearchTabContentView.tabInfo):
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.tabInfo):
Move the current `title` value to `displayName` and add a new `title` value with the
keyboard shortcut in parenthesis.

* UserInterface/Views/AuditTabContentView.js:
(WI.AuditTabContentView.tabInfo):
* UserInterface/Views/ConsoleTabContentView.js:
(WI.ConsoleTabContentView.tabInfo):
* UserInterface/Views/ElementsTabContentView.js:
(WI.ElementsTabContentView.tabInfo):
* UserInterface/Views/GraphicsTabContentView.js:
(WI.GraphicsTabContentView.tabInfo):
* UserInterface/Views/LayersTabContentView.js:
(WI.LayersTabContentView.tabInfo):
* UserInterface/Views/NetworkTabContentView.js:
(WI.NetworkTabContentView.tabInfo):
* UserInterface/Views/SourcesTabContentView.js:
(WI.SourcesTabContentView.tabInfo):
* UserInterface/Views/StorageTabContentView.js:
(WI.StorageTabContentView.tabInfo):
* UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView.tabInfo):
Use `displayName` instead of `title` since the name is shown in the UI.

* UserInterface/Base/Main.js:
(WI.contentLoaded):
Make the Settings Tab shortcut public.

* Localizations/en.lproj/localizedStrings.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259101 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed iOS API test gardening for rdar://59611168.
ryanhaddad@apple.com [Fri, 27 Mar 2020 02:31:53 +0000 (02:31 +0000)]
Unreviewed iOS API test gardening for rdar://59611168.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
* TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259100 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoUnreviewed test gardening for iOS API tests.
ryanhaddad@apple.com [Fri, 27 Mar 2020 02:31:48 +0000 (02:31 +0000)]
Unreviewed test gardening for iOS API tests.

* TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:
(TEST):
* TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:
(TestWebKitAPI::TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259099 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 months agoMake it so RAMification can be run with python 3 and 2 and that it recognizes the...
sbarati@apple.com [Fri, 27 Mar 2020 02:05:53 +0000 (02:05 +0000)]
Make it so RAMification can be run with python 3 and 2 and that it recognizes the new JavaScriptCore.framework directory structure
https://bugs.webkit.org/show_bug.cgi?id=209636

Reviewed by Yusuke Suzuki.

- JavaScriptCore builds now put the jsc shell under JavaScriptCore.framework/Helpers/jsc,
  not JavaScriptCore.framework/Resources/jsc
- It's also helpful to be able to run RAMification with python3.7 and 2.7,
  since there are some contexts where 3.7 is all we have.

* JetStream2/RAMification.py:
(frameworkPathFromExecutablePath):
(BaseRunner.processLine):
(LocalRunner.runOneTest):
(main.runTestList):
(main):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259098 268f45cc-cd09-0410-ab3c-d52691b4dbfc