Timeline



Jul 18, 2019:

11:07 PM Changeset in webkit [247638] by bshafiei@apple.com
  • 2 edits in tags/Safari-608.1.36.0.1/Source/WebKit

Cherry-pick r247494. rdar://problem/53036744

[macCatalyst] Do not include WebKitLegacy.h in WebKit.h
https://bugs.webkit.org/show_bug.cgi?id=199833
<rdar://problem/53036744>

Reviewed by Tim Horton.

  • Shared/API/Cocoa/WebKit.h:

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

11:05 PM Changeset in webkit [247637] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.36.0.1/Source

Versioning.

11:02 PM Changeset in webkit [247636] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.36.0.1

Tag Safari-608.1.36.0.1.

8:08 PM Changeset in webkit [247635] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix warning when importing WebKit in Swift
https://bugs.webkit.org/show_bug.cgi?id=199914
<rdar://problem/52854930>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-18
Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/NSAttributedString.h:

Declare NSAttributedString and update a swift name.
This fix was proposed by Argyrios Kyrtzidis.

6:40 PM Changeset in webkit [247634] by Alan Coon
  • 7 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r247619. rdar://problem/53279090

[iOS Sim] Multiple quicklook tests are failing
https://bugs.webkit.org/show_bug.cgi?id=191711

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-07-18
Reviewed by Simon Fraser.

Rebaseline expected results for quicklook layout tests.

  • platform/ios/TestExpectations:
  • platform/ios/quicklook/powerpoint-expected.txt:
  • platform/ios/quicklook/powerpoint-legacy-expected.txt:
  • platform/ios/quicklook/resources/numbers-expected.pdf:
  • quicklook/resources/keynote-expected.pdf:
  • quicklook/resources/pages-expected.pdf:

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

6:40 PM Changeset in webkit [247633] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247568. rdar://problem/53279098

REGRESSION: Panning on an Amazon product image scrolls the page on iPadOS
https://bugs.webkit.org/show_bug.cgi?id=199905
<rdar://problem/49124529>

Reviewed by Dean Jackson.

Amazon product pages include images that the user can touch and pan to show zoomed details in a side image. This
currently works on iPadOS thanks to the dispatch of simulated "mousemove" events on the product image, but the site
doesn't call preventDefault() when handling those events as it wasn't necessary for macOS.

We add a new quirk that will indicate that a given element is such a product image.

  • page/Quirks.cpp: (WebCore::Quirks::isAmazon const): (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const): (WebCore::Quirks::shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented const): (WebCore::Quirks::simulatedMouseEventTypeForTarget const):
  • page/Quirks.h:

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

6:40 PM Changeset in webkit [247632] by Alan Coon
  • 12 edits
    5 adds in branches/safari-608-branch

Cherry-pick r247566. rdar://problem/53279081

Make sure to set kCTFontFallbackOptionAttribute to kCTFontFallbackOptionSystem for system fonts
https://bugs.webkit.org/show_bug.cgi?id=199769
<rdar://problem/49390297>

Reviewed by Myles C. Maxfield.

Source/WebCore:

When getting a system font, set the appropriate attribute so that it
does not fallback to a user initiated font.
Add an ASSERT that checks that the font in use is not a user font if
policy is to not use user installed fonts.

Tests: fast/text/user-installed-fonts/extended-character-with-user-font.html

fast/text/user-installed-fonts/extended-character.html

  • platform/graphics/Font.h:
  • platform/graphics/FontCascadeFonts.cpp: (WebCore::FontCascadeFonts::glyphDataForSystemFallback):
  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::preparePlatformFont): (WebCore::FontDatabase::singletonAllowingUserInstalledFonts): (WebCore::FontDatabase::singletonDisallowingUserInstalledFonts): (WebCore::addAttributesForInstalledFonts): (WebCore::addAttributesForWebFonts): (WebCore::installedFontMandatoryAttributes):
  • platform/graphics/mac/SimpleFontDataCoreText.cpp: (WebCore::Font::isUserInstalledFont const):

Source/WTF:

  • wtf/Platform.h:

Tools:

Add a font containing one extended character not found in system fonts.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/fonts/FakeHelvetica-SingleExtendedCharacter.ttf: Added.

LayoutTests:

Tests require WTR and recent MacOS, hence why they are disabled elsewhere.

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • fast/text/user-installed-fonts/extended-character-expected.html: Added.
  • fast/text/user-installed-fonts/extended-character-with-user-font-expected-mismatch.html: Added.
  • fast/text/user-installed-fonts/extended-character-with-user-font.html: Added.
  • fast/text/user-installed-fonts/extended-character.html: Added.

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

6:39 PM Changeset in webkit [247631] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247565. rdar://problem/53279116

Regression(r247486) Multiple Layout Tests in http/tests/cache/* are crashing on iOS Debug WK2
https://bugs.webkit.org/show_bug.cgi?id=199892
<rdar://problem/53230217>

Reviewed by Geoffrey Garen.

The StorageManager was unregistering itself as a WorkQueueMessageReceiver on a given IPC
connection too early. As a result, we would sometimes receive a 'StorageManager:DestroyStorageMap'
IPC in NetworkConnectionToWebProcess::didReceiveMessage() with nobody to process it, which would
trigger an assertion. To address the issue, we stop unregistering the StorageManager as a
WorkQueueMessageReceiver inside removeAllowedSessionStorageNamespaceConnection(). Instead, we
let the logic inside processDidCloseConnection() take care of it once the connection closes.

  • NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): (WebKit::StorageManager::processDidCloseConnection):
  • NetworkProcess/WebStorage/StorageManager.h:

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

6:39 PM Changeset in webkit [247630] by Alan Coon
  • 6 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247562. rdar://problem/53279086

[LFC][IFC] InlineFormattingContext::LineLayout::placeInlineItems is getting too complex.
https://bugs.webkit.org/show_bug.cgi?id=199898
<rdar://problem/53235958>

Reviewed by Antti Koivisto.

It's time to restructure LineLayout::placeInlineItems to be able to expand it further.
Introduce the LineLayout class. This class is responsible to place the inline items on the current line.
(Rename InlineFormattingContext::lineLayout -> InlineFormattingContext::InlineLayout and
use Line::InitialConstraints in LineInput)

  • layout/inlineformatting/InlineFormattingContext.cpp: (WebCore::Layout::InlineFormattingContext::layout const): (WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthConstraints const):
  • layout/inlineformatting/InlineFormattingContext.h: (WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const): Deleted.
  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp: (WebCore::Layout::inlineItemWidth): (WebCore::Layout::LineLayout::layoutState const): (WebCore::Layout::LineLayout::UncommittedContent::runs): (WebCore::Layout::LineLayout::UncommittedContent::isEmpty const): (WebCore::Layout::LineLayout::UncommittedContent::size const): (WebCore::Layout::LineLayout::UncommittedContent::width const): (WebCore::Layout::LineLayout::UncommittedContent::add): (WebCore::Layout::LineLayout::UncommittedContent::reset): (WebCore::Layout::LineLayout::LineLayout): (WebCore::Layout::LineLayout::commitPendingContent): (WebCore::Layout::LineLayout::close): (WebCore::Layout::LineLayout::layout): (WebCore::Layout::LineInput::LineInput): (WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout): (WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): (WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const): (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): (WebCore::Layout::InlineFormattingContext::InlineLayout::alignRuns const): (WebCore::Layout::UncommittedContent::runs): Deleted. (WebCore::Layout::UncommittedContent::isEmpty const): Deleted. (WebCore::Layout::UncommittedContent::size const): Deleted. (WebCore::Layout::UncommittedContent::width const): Deleted. (WebCore::Layout::UncommittedContent::add): Deleted. (WebCore::Layout::UncommittedContent::reset): Deleted. (WebCore::Layout::LineInput::HorizontalConstraint::HorizontalConstraint): Deleted. (WebCore::Layout::InlineFormattingContext::LineLayout::LineLayout): Deleted. (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const): Deleted. (WebCore::Layout::InlineFormattingContext::LineLayout::layout const): Deleted. (WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const): Deleted. (WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const): Deleted. (WebCore::Layout::InlineFormattingContext::LineLayout::alignRuns const): Deleted.
  • layout/inlineformatting/InlineLine.cpp: (WebCore::Layout::Line::Line):
  • layout/inlineformatting/InlineLine.h:

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

6:39 PM Changeset in webkit [247629] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247552. rdar://problem/53279120

Set WordIsNearTap flag, was not being set at all before
https://bugs.webkit.org/show_bug.cgi?id=199880

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::selectWithGesture):

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

6:34 PM Changeset in webkit [247628] by Jonathan Bedard
  • 2 edits
    94 adds in trunk/Tools

results.webkit.org: Move resultsdbpy to WebKit
https://bugs.webkit.org/show_bug.cgi?id=199837
<rdar://problem/53172130>

Rubber-stamped by Aakash Jain.

Moving the entirety of the resultsdbpy library, which provides utilities to build
a database designed to store, visualize and organize test results, into WebKit.

  • Scripts/webkitpy/style/checker.py:

(CheckerDispatcher._create_checker): resulltsdbpy is a Python 3 library.

  • resultsdbpy: Added.
  • resultsdbpy/MANIFEST.in: Added.
  • resultsdbpy/README.md: Added.
  • resultsdbpy/resultsdbpy: Added.
  • resultsdbpy/resultsdbpy/init.py: Added.
  • resultsdbpy/resultsdbpy/controller: Added.
  • resultsdbpy/resultsdbpy/controller/init.py: Added.
  • resultsdbpy/resultsdbpy/controller/api_routes.py: Added.
  • resultsdbpy/resultsdbpy/controller/ci_controller.py: Added.
  • resultsdbpy/resultsdbpy/controller/ci_controller_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/commit.py: Added.
  • resultsdbpy/resultsdbpy/controller/commit_controller.py: Added.
  • resultsdbpy/resultsdbpy/controller/commit_controller_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/commit_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/configuration.py: Added.
  • resultsdbpy/resultsdbpy/controller/configuration_controller.py: Added.
  • resultsdbpy/resultsdbpy/controller/configuration_controller_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/configuration_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/suite_controller.py: Added.
  • resultsdbpy/resultsdbpy/controller/suite_controller_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/test_controller.py: Added.
  • resultsdbpy/resultsdbpy/controller/test_controller_unittest.py: Added.
  • resultsdbpy/resultsdbpy/controller/upload_controller.py: Added.
  • resultsdbpy/resultsdbpy/controller/upload_controller_unittest.py: Added.
  • resultsdbpy/resultsdbpy/flask_support: Added.
  • resultsdbpy/resultsdbpy/flask_support/init.py: Added.
  • resultsdbpy/resultsdbpy/flask_support/authed_blueprint.py: Added.
  • resultsdbpy/resultsdbpy/flask_support/flask_test_context.py: Added.
  • resultsdbpy/resultsdbpy/flask_support/flask_testcase.py: Added.
  • resultsdbpy/resultsdbpy/flask_support/util.py: Added.
  • resultsdbpy/resultsdbpy/flask_support/util_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model: Added.
  • resultsdbpy/resultsdbpy/model/init.py: Added.
  • resultsdbpy/resultsdbpy/model/cassandra_context.py: Added.
  • resultsdbpy/resultsdbpy/model/cassandra_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/casserole.py: Added.
  • resultsdbpy/resultsdbpy/model/casserole_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/ci_context.py: Added.
  • resultsdbpy/resultsdbpy/model/ci_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/commit_context.py: Added.
  • resultsdbpy/resultsdbpy/model/commit_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/configuration_context.py: Added.
  • resultsdbpy/resultsdbpy/model/configuration_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/docker-compose.yml: Added.
  • resultsdbpy/resultsdbpy/model/docker.py: Added.
  • resultsdbpy/resultsdbpy/model/docker_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/mock_cassandra_context.py: Added.
  • resultsdbpy/resultsdbpy/model/mock_model_factory.py: Added.
  • resultsdbpy/resultsdbpy/model/mock_repository.py: Added.
  • resultsdbpy/resultsdbpy/model/model.py: Added.
  • resultsdbpy/resultsdbpy/model/partitioned_redis.py: Added.
  • resultsdbpy/resultsdbpy/model/partitioned_redis_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/redis_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/repository.py: Added.
  • resultsdbpy/resultsdbpy/model/repository_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/suite_context.py: Added.
  • resultsdbpy/resultsdbpy/model/suite_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/test_context.py: Added.
  • resultsdbpy/resultsdbpy/model/test_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/upload_context.py: Added.
  • resultsdbpy/resultsdbpy/model/upload_context_unittest.py: Added.
  • resultsdbpy/resultsdbpy/model/wait_for_docker_test_case.py: Added.
  • resultsdbpy/resultsdbpy/run-tests: Added.
  • resultsdbpy/resultsdbpy/view: Added.
  • resultsdbpy/resultsdbpy/view/init.py: Added.
  • resultsdbpy/resultsdbpy/view/ci_view.py: Added.
  • resultsdbpy/resultsdbpy/view/commit_view.py: Added.
  • resultsdbpy/resultsdbpy/view/commit_view_unittest.py: Added.
  • resultsdbpy/resultsdbpy/view/site_menu.py: Added.
  • resultsdbpy/resultsdbpy/view/static: Added.
  • resultsdbpy/resultsdbpy/view/static/css: Added.
  • resultsdbpy/resultsdbpy/view/static/css/commit.css: Added.
  • resultsdbpy/resultsdbpy/view/static/css/drawer.css: Added.
  • resultsdbpy/resultsdbpy/view/static/css/search.css: Added.
  • resultsdbpy/resultsdbpy/view/static/css/timeline.css: Added.
  • resultsdbpy/resultsdbpy/view/static/js: Added.
  • resultsdbpy/resultsdbpy/view/static/js/commit.js: Added.
  • resultsdbpy/resultsdbpy/view/static/js/common.js: Added.
  • resultsdbpy/resultsdbpy/view/static/js/configuration.js: Added.
  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Added.
  • resultsdbpy/resultsdbpy/view/static/js/search.js: Added.
  • resultsdbpy/resultsdbpy/view/static/js/timeline.js: Added.
  • resultsdbpy/resultsdbpy/view/suite_view.py: Added.
  • resultsdbpy/resultsdbpy/view/templates: Added.
  • resultsdbpy/resultsdbpy/view/templates/base.html: Added.
  • resultsdbpy/resultsdbpy/view/templates/commit.html: Added.
  • resultsdbpy/resultsdbpy/view/templates/commits.html: Added.
  • resultsdbpy/resultsdbpy/view/templates/documentation.html: Added.
  • resultsdbpy/resultsdbpy/view/templates/error.html: Added.
  • resultsdbpy/resultsdbpy/view/templates/search.html: Added.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Added.
  • resultsdbpy/resultsdbpy/view/view_routes.py: Added.
  • resultsdbpy/resultsdbpy/view/view_routes_unittest.py: Added.
  • resultsdbpy/setup.py: Added.
5:23 PM Changeset in webkit [247627] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Enable simulated mouse events quirk for soundcloud.com
https://bugs.webkit.org/show_bug.cgi?id=199908
<rdar://problem/52915981>

Patch by Antoine Quint <Antoine Quint> on 2019-07-18
Reviewed by Brent Fulgham.

Scrubbing on soundcloud.com relies on mouse events alone when displaying on iPad with the desktop UA string.
Opting into the simulated mouse events quirk makes scrubbing work and we also ensure that page scrolling is
disabled as a result of scrubbing by returning true in shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented().

Also making a drive-by fix in shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented() to use a reference
instead of a pointer when downcasting a null-checked pointer.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented const):

5:07 PM Changeset in webkit [247626] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Prewarm font cache with more fonts
https://bugs.webkit.org/show_bug.cgi?id=199283

Reviewed by Myles C. Maxfield.

Initialize the list of families requiring system fallback in the prewarming information struct, since
this was part of the original, approved patch, and is needed for the performance improvement.

No new tests, covered by existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontFamiliesForPrewarming):
(WebCore::FontCache::prewarmGlobally):

4:46 PM Changeset in webkit [247625] by achristensen@apple.com
  • 6 edits in trunk

Add and test _WKWebsiteDataStoreConfiguration.deviceIdHashSaltsStorageDirectory SPI
https://bugs.webkit.org/show_bug.cgi?id=199923

Reviewed by Youenn Fablet.

Source/WebKit:

This is a step towards us getting rid of WebsiteDataStore::legacyDefaultDataStoreConfiguration

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration deviceIdHashSaltsStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setDeviceIdHashSaltsStorageDirectory:]):

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::TEST):

4:31 PM Changeset in webkit [247624] by Ryan Haddad
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r247531.

Caused multiple IndexedDB layout test crashes.

Reverted changeset:

"IndexedDB: error in starting version change transaction may
be neglected"
https://bugs.webkit.org/show_bug.cgi?id=199818
https://trac.webkit.org/changeset/247531

4:23 PM Changeset in webkit [247623] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source/WebCore

Revert r247531. rdar://problem/53229712

3:35 PM Changeset in webkit [247622] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews-build] Enable iOS WK2 tester queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=199867

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json: Enabled the triggers for ios-wk2 queue.
  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Enabled ios-sim (builder) and ios-wk2 (tester) bubbles.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js: Removed ios-sim queue from bot-watcher's dashboard.
  • QueueStatusServer/config/queues.py: Removed ios-sim queue from old EWS.
2:56 PM Changeset in webkit [247621] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Ensure Quirks::shouldDispatchSimulatedMouseEvents() works for all Google Maps and Amazon domains
https://bugs.webkit.org/show_bug.cgi?id=199904
<rdar://problem/53250104>

Reviewed by Dean Jackson.

Use topPrivatelyControlledDomain() to determine whether the URL is a Google or Amazon domain so as to apply
Google Maps and Amazon quirks to all the various domain names used.

  • page/Quirks.cpp:

(WebCore::Quirks::isAmazon const):
(WebCore::Quirks::isGoogleMaps const):
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):

  • page/Quirks.h:
2:42 PM Changeset in webkit [247620] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Crash under WebPage::boundaryEventOccurred
https://bugs.webkit.org/show_bug.cgi?id=199907

Reviewed by Chris Fleizach.

Add null pointer checks.

No new tests, since I have not been able to reproduce this in a test.

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore::SpeechSynthesis::boundaryEventOccurred):

2:15 PM Changeset in webkit [247619] by commit-queue@webkit.org
  • 7 edits in trunk/LayoutTests

[iOS Sim] Multiple quicklook tests are failing
https://bugs.webkit.org/show_bug.cgi?id=191711

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-07-18
Reviewed by Simon Fraser.

Rebaseline expected results for quicklook layout tests.

  • platform/ios/TestExpectations:
  • platform/ios/quicklook/powerpoint-expected.txt:
  • platform/ios/quicklook/powerpoint-legacy-expected.txt:
  • platform/ios/quicklook/resources/numbers-expected.pdf:
  • quicklook/resources/keynote-expected.pdf:
  • quicklook/resources/pages-expected.pdf:
1:26 PM Changeset in webkit [247618] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247557. rdar://problem/53254407

[macCatalyst] Unable to interact with YouTube video while it's playing
https://bugs.webkit.org/show_bug.cgi?id=199893
<rdar://problem/51871151>

Reviewed by Simon Fraser.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (-[WKRemoteView initWithFrame:contextID:]): (-[WKUIRemoteView initWithFrame:pid:contextID:]): Disable remote context hit-testing for WKUIRemoteView just like we already do for WKRemoteView.

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

1:26 PM Changeset in webkit [247617] by Kocsen Chung
  • 17 edits in branches/safari-608-branch/Source

Cherry-pick r247555. rdar://problem/53254411

Prewarm local storage in the NetworkProcess to reduce WebContent process hangs
https://bugs.webkit.org/show_bug.cgi?id=199879
<rdar://problem/53217757>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When JS accesses window.localStorage for the first time, we end up doing a
synchronous IPC to the network process to pull in all items in the local
storage for the origin. If the network process does not have this data in
memory, it has to read it from a database on disk, which may take a significant
amount of time and hang the WebContent process during this time.

To alleviate this problem, this patch introduces prewarming on the local storage
in the network process when loading a given origin in the WebContent process.
This way, in most cases, when the JS accesses window.localStorage for the first
time, the synchronous IPC to the network process returns much faster (measured
50-100ms for a very large database, down from 250-300ms), as it only needs to
IPC the data over, without the need to fetch it from disk.

As a safety net to avoid excessive prewarming, we currently prewarm at most 5
security origins per page load.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::commitData):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::prewarmLocalStorageIfNecessary):
  • page/DOMWindow.h:
  • page/Frame.cpp: (WebCore::Frame::didPrewarmLocalStorage): (WebCore::Frame::mayPrewarmLocalStorage const):
  • page/Frame.h:
  • storage/Storage.cpp: (WebCore::Storage::prewarm):
  • storage/Storage.h:
  • storage/StorageArea.h: (WebCore::StorageArea::prewarm):

Source/WebKit:

  • NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::prewarm): (WebKit::StorageManager::getValues):
  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManager.messages.in:
  • WebProcess/WebStorage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::prewarm):
  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::loadValuesIfNeeded): (WebKit::StorageAreaMap::prewarm):
  • WebProcess/WebStorage/StorageAreaMap.h:

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

1:25 PM Changeset in webkit [247616] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247559. rdar://problem/53230035

Early Out of positionInfomation check if possible
https://bugs.webkit.org/show_bug.cgi?id=199885
<rdar://problem/53229413>

This is an early-out check that happens after most of the work is done.
Move it to happen before we make all these calls, if in the end, we will not use the information.

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

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

1:25 PM Changeset in webkit [247615] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/JSTests

Cherry-pick r247485. rdar://problem/53229615

Unreviewed, test262 gardening.

  • test262/expectations.yaml:

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

1:25 PM Changeset in webkit [247614] by Kocsen Chung
  • 49 edits
    18 copies
    159 adds
    5 deletes in branches/safari-608-branch/JSTests

Cherry-pick r247469. rdar://problem/53229615

Update test262
https://bugs.webkit.org/show_bug.cgi?id=199801

Rubber-stamped by Yusuke Suzuki.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/Symbol.toStringTag.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-job-not-active-throws.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-length.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-missing-internal-throws.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-name.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-not-object-throws.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-prop-desc.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/proto.js: Added. (callback): (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/constructor.js: Added.
  • test262/test/built-ins/FinalizationGroup/gc-has-one-chance-to-call-cleanupCallback.js: Added. (cb): (fg.new.FinalizationGroup): (emptyCells): (async.fn): (fn.then.async):
  • test262/test/built-ins/FinalizationGroup/instance-extensible.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/newtarget-prototype-is-not-object.js: Added. (newTarget): (fn):
  • test262/test/built-ins/FinalizationGroup/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/proto-from-ctor-realm.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/proto.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype-from-newtarget-abrupt.js: Added. (newTarget):
  • test262/test/built-ins/FinalizationGroup/prototype-from-newtarget-custom.js: Added. (newTarget):
  • test262/test/built-ins/FinalizationGroup/prototype-from-newtarget.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/Symbol.toStringTag.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/callback-iterator-proto.js: Added. (callback): (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/callback-not-callable-throws.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-reference.js: Added. (cb): (fg.new.FinalizationGroup): (emptyCells):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js: Added. (fg.new.FinalizationGroup): (fg.cleanupSome.cb):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanupcallback-iterator-proto.js: Added. (callback):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/custom-this.js: Added. (fn): (cb):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/gc-cleanup-not-prevented-with-wr-deref.js: Added. (cb): (fg.new.FinalizationGroup): (emptyCells):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-dynamic.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-holdings-multiple-values.js: Added. (fg.new.FinalizationGroup): (callback):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/poisoned-callback-throws.js: Added. (poisoned): (fg.new.FinalizationGroup): (emptyCells):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/poisoned-cleanup-callback-throws.js: Added. (poisoned): (emptyCells):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/return-undefined-with-gc.js: Added. (fn): (cb): (emptyCells): (prototype.assert.sameValue.fg.cleanupSome):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/return-undefined.js: Added. (fn): (cb): (poisoned): (assert.sameValue.fg.cleanupSome): (prototype.assert.sameValue.fg.cleanupSome):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js: Added. (cb):
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/this-not-object-throws.js: Added. (cb):
  • test262/test/built-ins/FinalizationGroup/prototype/constructor.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/proto.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/custom-this.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/prototype/register/holdings-any-value-type.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/register/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/prototype/register/target-not-object-throws.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/register/this-does-not-have-internal-target-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/this-not-object-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-not-object-or-undefined-throws.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-target.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/custom-this.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/this-does-not-have-internal-cells-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/this-not-object-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister.js: Added. (fn):
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/unregisterToken-not-object-throws.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/returns-new-object-from-constructor.js: Added. (cleanupCallback): (let.key.of.Object.getOwnPropertyNames): (set for):
  • test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/undefined-newtarget-throws.js: Added. (FinalizationGroup):
  • test262/test/built-ins/FinalizationGroup/unnaffected-by-poisoned-cleanupCallback.js: Added. (cleanupCallback): (let.key.of.Object.getOwnPropertyNames): (set for):
  • test262/test/built-ins/Function/StrictFunction_restricted-properties.js:
  • test262/test/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js:
  • test262/test/built-ins/Function/prototype/restricted-property-arguments.js:
  • test262/test/built-ins/Function/prototype/restricted-property-caller.js:
  • test262/test/built-ins/Object/prototype/toString/proxy-function-async.js: Added. (asyncProxy.new.Proxy.async):
  • test262/test/built-ins/Object/prototype/toString/proxy-function.js: (asyncProxy.new.Proxy.async):
  • test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-builtin.js: Added. (setIter.set Symbol): (set defaultTag): (gen): (get return): (set new):
  • test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-proxy-function.js: Added. (generatorProxy.new.Proxy): (asyncProxy.new.Proxy.async):
  • test262/test/built-ins/Object/subclass-object-arg.js:
  • test262/test/built-ins/Promise/all/invoke-resolve-get-error-close.js:
  • test262/test/built-ins/Promise/all/resolve-element-function-name.js:
  • test262/test/built-ins/Promise/allSettled/invoke-resolve-get-error-close.js:
  • test262/test/built-ins/Promise/allSettled/reject-element-function-name.js:
  • test262/test/built-ins/Promise/allSettled/resolve-element-function-name.js:
  • test262/test/built-ins/Promise/executor-function-name.js:
  • test262/test/built-ins/Promise/race/invoke-resolve-get-error-close.js:
  • test262/test/built-ins/Promise/reject-function-name.js:
  • test262/test/built-ins/Promise/resolve-function-name.js:
  • test262/test/built-ins/Set/prototype/values/does-not-have-setdata-internal-slot-weakset.js:
  • test262/test/built-ins/WeakRef/constructor.js: Added.
  • test262/test/built-ins/WeakRef/instance-extensible.js: Added.
  • test262/test/built-ins/WeakRef/length.js: Added.
  • test262/test/built-ins/WeakRef/name.js: Added.
  • test262/test/built-ins/WeakRef/newtarget-prototype-is-not-object.js: Added. (newTarget):
  • test262/test/built-ins/WeakRef/prop-desc.js: Added.
  • test262/test/built-ins/WeakRef/proto-from-ctor-realm.js: Added.
  • test262/test/built-ins/WeakRef/proto.js: Added.
  • test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js: Added. (newTarget):
  • test262/test/built-ins/WeakRef/prototype-from-newtarget-custom.js: Added. (newTarget):
  • test262/test/built-ins/WeakRef/prototype-from-newtarget.js: Added.
  • test262/test/built-ins/WeakRef/prototype/Symbol.toStringTag.js: Added.
  • test262/test/built-ins/WeakRef/prototype/constructor.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/custom-this.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js: Added. (emptyCells):
  • test262/test/built-ins/WeakRef/prototype/deref/length.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/name.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/prop-desc.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/return-target.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/this-does-not-have-internal-target-throws.js: Added. (fg.new.FinalizationGroup):
  • test262/test/built-ins/WeakRef/prototype/deref/this-not-object-throws.js: Added.
  • test262/test/built-ins/WeakRef/prototype/prop-desc.js: Added.
  • test262/test/built-ins/WeakRef/prototype/proto.js: Added.
  • test262/test/built-ins/WeakRef/returns-new-object-from-constructor.js: Added. (let.key.of.Object.getOwnPropertyNames): (set for):
  • test262/test/built-ins/WeakRef/target-not-object-throws.js: Added.
  • test262/test/built-ins/WeakRef/undefined-newtarget-throws.js: Added.
  • test262/test/intl402/BigInt/prototype/toLocaleString/builtin.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/default-options-object-prototype.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/length.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/returns-same-results-as-NumberFormat.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/taint-Intl-NumberFormat.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/this-value-invalid.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js:
  • test262/test/intl402/DateTimeFormat/constructor-options-order-quarter.js: Removed.
  • test262/test/intl402/DateTimeFormat/constructor-options-quarter-invalid.js: Removed.
  • test262/test/intl402/DateTimeFormat/constructor-options-quarter-valid.js: Removed.
  • test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-long-en.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-narrow-en.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-short-en.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-date-string.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-near-time-boundaries.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-to-integer.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/builtin.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/prop-desc.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-date-string.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-near-time-boundaries.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-to-integer.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/builtin.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/prop-desc.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-long-en.js: Added. (assertParts): (assertPartsNumeric):
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-narrow-en.js: Added. (assertParts): (assertPartsNumeric):
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-short-en.js: Added. (assertParts): (assertPartsNumeric):
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js: Added. (assertParts):
  • test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-quarter.js: Removed.
  • test262/test/intl402/DateTimeFormat/taint-Object-prototype-quarter.js: Removed.
  • test262/test/intl402/RelativeTimeFormat/prototype/format/en-us-numeric-auto.js:
  • test262/test/intl402/RelativeTimeFormat/prototype/formatToParts/en-us-numeric-auto.js:
  • test262/test/language/expressions/arrow-function/ArrowFunction_restricted-properties.js:
  • test262/test/language/expressions/class/elements/private-field-access-on-inner-arrow-function.js: Added. (C.prototype.method):
  • test262/test/language/expressions/class/elements/private-field-access-on-inner-function.js: Added. (C.prototype.method.innerFunction): (C.prototype.method):
  • test262/test/language/expressions/class/elements/private-getter-access-on-inner-arrow-function.js: Added. (C): (C.method):
  • test262/test/language/expressions/class/elements/private-getter-access-on-inner-function.js: Added. (C): (C.method.innerFunction): (C.method):
  • test262/test/language/expressions/class/elements/private-getter-is-not-a-own-property.js: Added. (C): (C.checkPrivateGetter):
  • test262/test/language/expressions/class/elements/private-method-access-on-inner-arrow-function.js: Added. (C): (C.method):
  • test262/test/language/expressions/class/elements/private-method-access-on-inner-function.js: Added. (C): (C.method.innerFunction): (C.method):
  • test262/test/language/expressions/class/elements/private-method-is-not-a-own-property.js: Added. (C): (C.checkPrivateMethod):
  • test262/test/language/expressions/class/elements/private-setter-access-on-inner-arrow-function.js: Added. (C): (C.method):
  • test262/test/language/expressions/class/elements/private-setter-access-on-inner-function.js: Added. (C): (C.method.innerFunction): (C.method):
  • test262/test/language/expressions/class/elements/private-setter-is-not-a-own-property.js: Added. (C): (C.checkPrivateSetter):
  • test262/test/language/expressions/class/elements/prod-private-getter-before-super-return-in-field-initializer.js:
  • test262/test/language/expressions/class/elements/prod-private-method-before-super-return-in-field-initializer.js:
  • test262/test/language/expressions/class/elements/prod-private-setter-before-super-return-in-field-initializer.js:
  • test262/test/language/expressions/class/poisoned-underscore-proto.js: Added.
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (const.C): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.return.prototype.m): (let.classStringExpression.return.prototype.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.return.prototype.m): (let.classStringExpression.return.prototype.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.prototype.m): (let.classStringExpression.prototype.access): (let.classStringExpression): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.prototype.m): (let.classStringExpression.prototype.access): (let.classStringExpression): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (const.C): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.return.C.prototype.m): (let.classStringExpression.return.C.prototype.access): (let.classStringExpression.return.C): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.return.C.prototype.m): (let.classStringExpression.return.C.prototype.access): (let.classStringExpression.return.C): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (const.C): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.return.prototype.m): (let.classStringExpression.return.prototype.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression.return.prototype.m): (let.classStringExpression.return.prototype.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js. (let.classStringExpression): (let.classStringExpression.access): (let.createAndInstantiateClass):
  • test262/test/language/expressions/new.target/unary-expr.js: Added. (new): (async):
  • test262/test/language/expressions/super/call-poisoned-underscore-proto.js: Added. (A):
  • test262/test/language/expressions/super/prop-poisoned-underscore-proto.js: Added.
  • test262/test/language/identifiers/vals-cjk-escaped.js: Added.
  • test262/test/language/identifiers/vals-cjk.js: Added.
  • test262/test/language/statements/class/elements/private-class-field-on-frozen-objects.js:
  • test262/test/language/statements/class/elements/private-field-access-on-inner-arrow-function.js: Added. (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-field-access-on-inner-function.js: Added. (C.prototype.method.innerFunction): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-field-is-not-clobbered-by-computed-property.js: Added. (C.prototype.checkPrivateField): (C):
  • test262/test/language/statements/class/elements/private-field-visible-to-direct-eval-on-initializer.js: Added. (C):
  • test262/test/language/statements/class/elements/private-field-visible-to-direct-eval.js: Added. (C.prototype.getWithEval): (C): (D):
  • test262/test/language/statements/class/elements/private-getter-access-on-inner-arrow-function.js: Added. (C.prototype.get m): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-getter-access-on-inner-function.js: Added. (C.prototype.get m): (C.prototype.method.innerFunction): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js: (let.createAndInstantiateClass):
  • test262/test/language/statements/class/elements/private-getter-is-not-a-own-property.js: Added. (C.prototype.get m): (C.prototype.checkPrivateGetter): (C):
  • test262/test/language/statements/class/elements/private-getter-is-not-clobbered-by-computed-property.js: Added. (C.prototype.get m): (C.prototype.checkPrivateGetter): (C):
  • test262/test/language/statements/class/elements/private-getter-visible-to-direct-eval-on-initializer.js: Added. (C.prototype.get m): (C):
  • test262/test/language/statements/class/elements/private-getter-visible-to-direct-eval.js: Added. (C.prototype.get m): (C.prototype.getWithEval): (C): (D.prototype.get m): (D):
  • test262/test/language/statements/class/elements/private-method-access-on-inner-arrow-function.js: Added. (C.prototype.m): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-method-access-on-inner-function.js: Added. (C.prototype.m): (C.prototype.method.innerFunction): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-method-is-not-a-own-property.js: Added. (C.prototype.m): (C.prototype.checkPrivateMethod): (C):
  • test262/test/language/statements/class/elements/private-method-is-not-clobbered-by-computed-property.js: Added. (C.prototype.m): (C.prototype.checkPrivateMethod): (C):
  • test262/test/language/statements/class/elements/private-method-visible-to-direct-eval-on-initializer.js: Added. (C.prototype.m): (C):
  • test262/test/language/statements/class/elements/private-method-visible-to-direct-eval.js: Added. (C.prototype.m): (C.prototype.getWithEval): (C): (D.prototype.m): (D):
  • test262/test/language/statements/class/elements/private-setter-access-on-inner-arrow-function.js: Added. (C.prototype.set m): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-setter-access-on-inner-function.js: Added. (C.prototype.set m): (C.prototype.method.innerFunction): (C.prototype.method): (C):
  • test262/test/language/statements/class/elements/private-setter-is-not-a-own-property.js: Added. (C.prototype.set m): (C.prototype.checkPrivateSetter): (C):
  • test262/test/language/statements/class/elements/private-setter-is-not-clobbered-by-computed-property.js: Added. (C.prototype.set m): (C.prototype.checkPrivateSetter): (C):
  • test262/test/language/statements/class/elements/private-setter-visible-to-direct-eval-on-initializer.js: Added. (C.prototype.set m): (C):
  • test262/test/language/statements/class/elements/private-setter-visible-to-direct-eval.js: Added. (C.prototype.set m): (C.prototype.setWithEval): (C): (D.prototype.set m): (D):
  • test262/test/language/statements/class/elements/prod-private-getter-before-super-return-in-field-initializer.js:
  • test262/test/language/statements/class/elements/prod-private-method-before-super-return-in-field-initializer.js:
  • test262/test/language/statements/class/elements/prod-private-setter-before-super-return-in-field-initializer.js:
  • test262/test/language/statements/class/elements/super-access-inside-a-private-getter.js: Added. (A.prototype.method): (A): (C.prototype.get m): (C.prototype.access): (C):
  • test262/test/language/statements/class/elements/super-access-inside-a-private-method.js: Added. (A.prototype.method): (A): (C.prototype.m): (C.prototype.access): (C):
  • test262/test/language/statements/class/elements/super-access-inside-a-private-setter.js: Added. (A.prototype.method): (A): (C.prototype.set m): (C.prototype.access): (C):
  • test262/test/language/statements/class/poisoned-underscore-proto.js: Added. (A):
  • test262/test/language/statements/function/13.2-30-s.js:
  • test262/test262-Revision.txt:

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

1:25 PM Changeset in webkit [247613] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247547. rdar://problem/53230043

Provide a NSURL cateogry to tell AppSSO Kerberos URLs
https://bugs.webkit.org/show_bug.cgi?id=199887
<rdar://problem/52323161>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.mm: (+[NSURL _web_willPerformSOKerberosAuthorizationWithURL:]):

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

1:25 PM Changeset in webkit [247612] by Kocsen Chung
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r247544. rdar://problem/53230040

Unable to bring up custom media controls on iOS for video.sina.cn
https://bugs.webkit.org/show_bug.cgi?id=199889
<rdar://problem/51883919>

Reviewed by Dean Jackson.

Source/WebCore:

Videos on video.sina.cn by default have the "controls" attribute and are set not to autoplay. This means that the original state
of the media controls are set to show the built-in media controls and also show the prominent play button to begin playback. The
display of the play button also requires a tap gesture recognizer, which calls preventDefault() when the "touchend" is received
to prevent double-tap-to-zoom, but also has the side-effect of preventing a "click" event from being dispatched for a tap.

The video.sina.cn code would eventually remove the "controls" attribute, which would make the built-in media controls not visible,
but still participate in hit-testing because we keep the shadow DOM around in order to potentially show the Airplay or picture-in-picture
placards. Additionally, we wouldn't disable the tap gesture recognizer when the "controls" attribute was removed.

We now ensure that both gesture recognizers used by iOS inline media controls are only enabled when media controls are visible.

Test: media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls.html

  • Modules/modern-media-controls/controls/ios-inline-media-controls.js: (IOSInlineMediaControls.prototype.set showsStartButton): (IOSInlineMediaControls.prototype.get visible): (IOSInlineMediaControls.prototype.set visible): (IOSInlineMediaControls.prototype._updateGestureRecognizers): (IOSInlineMediaControls.prototype._tapGestureRecognizerStateDidChange): (IOSInlineMediaControls.prototype._pinchGestureRecognizerStateDidChange):

LayoutTests:

This test replicates the scenario found on video.sina.cn that caused the issue: a <video> element originally has the "controls"
attribute and is not set to autoplay. This means the tap gesture recognizer is created to track a tap for the video to play. Then
the "controls" attribute is removed and we dispatch a tap on the video which would previously have *not* caused a "click" event to
eventually be dispatched on the <video> element since the tap gesture recognizer would call preventDefault(). With this patch applied,
we get the "click" event because the tap gesture recognizer is disabled once the controls are no longer visible.

  • media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls-expected.txt: Added.
  • media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls.html: Added.

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

1:24 PM Changeset in webkit [247611] by Kocsen Chung
  • 5 edits in branches/safari-608-branch/Source

Cherry-pick r247541. rdar://problem/53230029

Unable to tap buttons at top of Wells Fargo app’s Payees screen
https://bugs.webkit.org/show_bug.cgi?id=199846
<rdar://problem/48112220>

Reviewed by Simon Fraser.

Source/WebCore:

This patch restores the stop-before-reaching-the-body heuristics for the approximate node finding feature only.
(WebFrame::approximateNodeAtViewportLocation mistakenly relied on this odd quirk of nodeRespondingToClickEvents.)

  • page/Frame.h:
  • page/ios/FrameIOS.mm: (WebCore::Frame::approximateNodeAtViewportLocationLegacy):

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm: (-[WebFrame approximateNodeAtViewportLocation:]):

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

1:24 PM Changeset in webkit [247610] by Kocsen Chung
  • 14 edits
    4 adds in branches/safari-608-branch

Cherry-pick r247540. rdar://problem/53230036

[iOS WK2] Avoid lots of compositing backing store for offscreen position:fixed descendants
https://bugs.webkit.org/show_bug.cgi?id=199819
rdar://problem/51977416

Reviewed by Zalan Bujtas.

Source/WebCore:

There was code to ensure that position:fixed layers and their descendants don't have their
backing store detached (thrown away to save memory when offscreen), since that can trigger
flashing when async scrolling moves layers in and out of the visual viewport.

However, some pages have many descendant layers of positon:fixed which entrain backing
store, because, for example, they have a stack of translated-offscreen menu elements inside
a fixed header, and those elements may composite because of overflow:scroll.

To avoid using too much memory on such pages, allow backing store detachment for fixed
layers that are outside the layout viewport. Add a flag to RenderLayer that's set for layers
which are fixed, or descendants of fixed, and consult that flag in
updateAllowsBackingStoreDetaching(). The logic there is similar to
RenderLayerCompositor::requiresCompositingForPosition().

I considered allowing all position:fixed to composite (since this patch would keep most of
the memory saving), but historically we've avoided compositing out-of-viewport
position:fixed because it's quite common to have them with negative z-index, and compositing
those has significant compositing knock-on effects.

GraphicsLayer flushing no longer needs to track the viewport-constrained status of layers,
so remove that code.

This patch removes backing-store pinning for sticky layers.
scrolling/ios/reconcile-layer-position-recursive.html then revealed a bug in
ScrollingStateStickyNode::reconcileLayerPositionForViewportRect(), which was assuming that
the sticky element was scrolled by the page, causing a bad layer position to get sync'd onto
the layer. Fixed by copying code from ScrollingTreeStickyNode that is smarter about
computing layer positions.

This patch fixes jetsams on kmart.com.au in iOS 13 beta.

Test: compositing/layer-creation/fixed-position-descendants-out-of-view.html

  • page/scrolling/ScrollingStateStickyNode.cpp: (WebCore::ScrollingStateStickyNode::computeLayerPosition const): (WebCore::ScrollingStateStickyNode::reconcileLayerPositionForViewportRect):
  • page/scrolling/ScrollingStateStickyNode.h:
  • platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::setAllowsBackingStoreDetaching): (WebCore::GraphicsLayer::allowsBackingStoreDetaching const): (WebCore::GraphicsLayer::setIsViewportConstrained): Deleted. (WebCore::GraphicsLayer::isViewportConstrained const): Deleted. (WebCore::GraphicsLayer::setCanDetachBackingStore): Deleted. (WebCore::GraphicsLayer::canDetachBackingStore const): Deleted.
  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::GraphicsLayerCA): (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const): (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): (WebCore::GraphicsLayerCA::recursiveCommitChanges): (WebCore::GraphicsLayerCA::updateCoverage): (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::updateLayerPositions): (WebCore::outputPaintOrderTreeLegend): (WebCore::outputPaintOrderTreeRecursive):
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateAllowsBackingStoreDetaching): (WebCore::RenderLayerBacking::updateOverflowControlsLayers): (WebCore::RenderLayerBacking::setIsScrollCoordinatedWithViewportConstrainedRole): Deleted.
  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::requiresCompositingForPosition const): (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): (WebCore::RenderLayerCompositor::updateScrollCoordinationForLayer):

LayoutTests:

  • compositing/layer-creation/fixed-position-change-out-of-view-in-view.html:
  • compositing/layer-creation/fixed-position-descendants-out-of-view-expected.txt: Added.
  • compositing/layer-creation/fixed-position-descendants-out-of-view.html: Added.
  • compositing/layer-creation/fixed-position-out-of-view.html:
  • platform/ios-wk2/fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt: Added.

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

1:24 PM Changeset in webkit [247609] by Kocsen Chung
  • 2 edits
    1 delete in branches/safari-608-branch/Tools

Cherry-pick r247536. rdar://problem/53229635

Remove the file superfluously added in r247535.

  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.h: Removed.
  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.mm:

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

1:24 PM Changeset in webkit [247608] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-608-branch

Cherry-pick r247532. rdar://problem/53228435

ArgumentsEliminationPhase should insert KillStack nodes before PutStack nodes that it adds.
https://bugs.webkit.org/show_bug.cgi?id=199821
<rdar://problem/52452328>

Reviewed by Filip Pizlo.

JSTests:

  • stress/arguments-elimination-should-insert-KillStacks-before-added-PutStacks.js: Added.

Source/JavaScriptCore:

Excluding the ArgumentsEliminationPhase, PutStack nodes are converted from SetLocal
nodes in the SSAConversionPhase. SetLocal nodes are always preceded by MovHint nodes,
and the SSAConversionPhase always inserts a KillStack node before a MovHint node.
Hence, a PutStack node is always preceded by a KillStack node.

However, the ArgumentsEliminationPhase can convert LoadVarargs nodes into a series
of one or more PutStacks nodes, and it prepends MovHint nodes before the PutStack
nodes. However, it neglects to prepend KillStack nodes as well. Since the
ArgumentsEliminationPhase runs after the SSAConversionPhase, the PutStack nodes
added during ArgumentsElimination will not be preceded by KillStack nodes.

This patch fixes this by inserting a KillStack in the ArgumentsEliminationPhase
before it inserts a MovHint and a PutStack node.

Consider this test case which can manifest the above issue as a crash:

function inlinee(value) {

...
let tmp = value + 1;

}

function reflect() {

return inlinee.apply(undefined, arguments);

}

function test(arr) {

let object = inlinee.apply(undefined, arr); Uses a lot of SetArgumentMaybe nodes.
reflect();
Calls with a LoadVararg, which gets converted into a PutStack of a constant.

}

In this test case, we have a scenario where a SetArgumentMaybe's stack
slot is reused as the stack slot for a PutStack later. Here, the PutStack will
put a constant undefined value. Coincidentally, the SetArgumentMaybe may also
initialize that stack slot to a constant undefined value. Note that by the time
the PutStack executes, the SetArgumentMaybe's stack slot is dead. The liveness of
these 2 values are distinct.

However, because we were missing a KillStack before the PutStack, OSR availability
analysis gets misled into thinking that the PutStack constant value is still in the
stack slot because the value left there by the SetArgumentMaybe hasn't been killed
off yet. As a result, OSR exit code will attempt to recover the PutStack's undefined
constant by loading from the stack slot instead of materializing it. Since
SetArgumentMaybe may not actually initialize the stack slot, we get a crash in OSR
exit when we try to recover the PutStack constant value from the stack slot, and
end up using what ever junk value we read from there.

Fixing the ArgumentsEliminationPhase to insert KillStack before the PutStack
removes this conflation of the PutStack's constant value with the SetArgumentMaybe's
constant value in the same stack slot. And, OSR availability analysis will no
longer be misled to load the PutStack's constant value from the stack, but will
materialize the constant instead.

  • dfg/DFGArgumentsEliminationPhase.cpp:

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

1:24 PM Changeset in webkit [247607] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247531. rdar://problem/53229712

IndexedDB: error in starting version change transaction may be neglected
https://bugs.webkit.org/show_bug.cgi?id=199818
<rdar://problem/52925738>

Reviewed by Brady Eidson.

For version change transaction, IDBServer didn't wait the result of beginTransaction on the background thread
before giving the IDBClient the result of open request. In this case, beginTransaction may fail to update the
DatabaseVersion in database file or set m_originalDatabaseInfoBeforeVersionChange, but the transaction was
marked as started. When we later set m_databaseInfo with m_originalDatabaseInfoBeforeVersionChange,
m_databaseInfo could become nullptr.

To write a test for this, we will need to simulate an SQLite error. I manually tested this by crafting the
SQLiteStatement in beginTransaction, making it an invalid statement, and verified that error event, instead of
ungradeneeded event is dispatched to the IDBRequest.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction): (WebCore::IDBServer::UniqueIDBDatabase::performStartVersionChangeTransaction): (WebCore::IDBServer::UniqueIDBDatabase::didPerformStartVersionChangeTransaction): (WebCore::IDBServer::UniqueIDBDatabase::beginTransactionInBackingStore): Deleted.
  • Modules/indexeddb/server/UniqueIDBDatabase.h:

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

1:24 PM Changeset in webkit [247606] by Kocsen Chung
  • 15 edits
    4 adds in branches/safari-608-branch

Cherry-pick r247530. rdar://problem/53229569

Typing into a cell in a Google Sheet lags behind by one character
https://bugs.webkit.org/show_bug.cgi?id=199587
<rdar://problem/51616845>

Reviewed by Brent Fulgham.

Source/WebCore:

Add a Google Sheets quirk. Put all DOM timers scheduled from keydown and keypress event listeners
into a holding tank. The timers continue to tick, but are barred from executing their action until
the next text insertion or deletion or 32 ms (on device) have elapsed, whichever is sooner. We only
allocate a holding tank once per document, only if the quirk is active, and this allocation is done
when the document schedules a timer on keydown or keypress. The holding tank lives for the lifetime
of the document.

The story behind the quirk:

On keypress Google Sheets schedules timers and expects that a DOM update will occur (i.e. text
will be inserted or deleted) within the same event loop iteration as the dispatched keypress. The
UI Events spec. [1] makes no such guarantee of when a DOM update must occur in relation to the keypress
event. It could happen in the same event loop iteration as the key press (as Google expects), the
next iteration, 500ms later, 2 minutes later, etc. What the spec does guarantee is that by the time
a DOM input event is dispatched that the DOM will be updated. And this is the solution to the problem
Google Sheets is trying to solve, but is doing so using pre-IE 9 technology (though similar
functionality was available via onpropertychange in IE < 9).

See also <https://github.com/w3c/uievents/issues/238>, which is tracking a spec. text update for
this quirk.

Test: fast/events/ios/dom-update-on-keydown-quirk.html

[1] <https://w3c.github.io/uievents/> (Editor's Draft, 14 October 2018)

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj: Add some files to the project.
  • dom/Document.cpp: (WebCore::Document::domTimerHoldingTank): Added.
  • dom/Document.h: (WebCore::Document::domTimerHoldingTankIfExists): Added.
  • page/DOMTimer.cpp: (WebCore::DOMTimer::install): Put the newly instantiated timer into the holding tank. (WebCore::DOMTimer::removeById): Remove the timer from the holding tank. (WebCore::DOMTimer::fired): Check if the timer is in the holding tank. If it is and it is a one- shot timer then schedule it for the next event loop iteration. If it's a repeating timer just let it continue ticking. Otherwise, do what we no now and execute the timer's action. The reason we do not suspend timers in the holding tank is because:
    1. Far out timers (Google Sheets registers timers as far out as 5 minutes!) are not penalized. Though smart supension logic could avoid this. See (3).
  1. Empirical observations indicate that the keyboard will perform the insertion or deletion reasonably quickly (not the same event loop iteration as the keydown, but within two iterations out). So, the timers in the holding tank are short-lived.
  1. Simplifies the code. There is no need to keep additional bookkeeping to track multiple timer suspension reasons (timers currently can only have one suspension reason) or alternatively defer scheduling a timer until a later time and computing a new "fair" firing time when scheduled.
  • page/EventHandler.cpp: (WebCore::EventHandler::internalKeyEvent): Place a token on the stack to put all DOM timers scheduled on keydown and keypress into the holding tank if the quirk is enabled.
  • page/Quirks.cpp: (WebCore::Quirks::needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommand const): Added.
  • page/Quirks.h:
  • page/Settings.yaml: Added setting so that this quirk can be enabled from a layout test. This setting also lets us enable the quirk for all sites or for certain third-party apps if desired.
  • page/ios/DOMTimerHoldingTank.cpp: Added. (WebCore::DOMTimerHoldingTank::DOMTimerHoldingTank): (WebCore::DOMTimerHoldingTank::add): (WebCore::DOMTimerHoldingTank::remove): (WebCore::DOMTimerHoldingTank::contains): (WebCore::DOMTimerHoldingTank::removeAll): (WebCore::DOMTimerHoldingTank::stopExceededMaximumHoldTimer):
  • page/ios/DOMTimerHoldingTank.h: Added. (WebCore::DeferDOMTimersForScope::DeferDOMTimersForScope): (WebCore::DeferDOMTimersForScope::~DeferDOMTimersForScope): (WebCore::DeferDOMTimersForScope::isDeferring):

Source/WebKit:

Remove all timers from the holding tank on text insertion or deletion (represented as an
editing command). Timers that were in the holding tank never stopped ticking and will now
be able to execute their action.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::executeEditingCommand): (WebKit::WebPage::insertTextAsync): (WebKit::WebPage::setCompositionAsync): (WebKit::WebPage::confirmCompositionAsync): Call platformWillPerformEditingCommand().
  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::platformWillPerformEditingCommand): Added.
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformWillPerformEditingCommand): Remove all the timers from the holding tank if we have a holding tank.

LayoutTests:

Add a test that enables the quirk and ensures that the DOM is up-to-date on expiration of a
zero timer scheduled from keydown, keypress, keyup, and input.

  • fast/events/ios/dom-update-on-keydown-quirk-expected.txt: Added.
  • fast/events/ios/dom-update-on-keydown-quirk.html: Added.

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

1:24 PM Changeset in webkit [247605] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/ThirdParty/libwebrtc

Cherry-pick r247526. rdar://problem/53229680

Use VCP SPI in case creation of a compression session with VTB for 'h264.rtvc' fails
https://bugs.webkit.org/show_bug.cgi?id=199863
<rdar://problem/52922217>

Reviewed by Darin Adler.

Calling VTCompressionSessionCreate with kVTVideoEncoderList_EncoderID "com.apple.videotoolbox.videoencoder.h264.rtvc"
fails on some platforms. In such a case, use VCP SPI if available as a fallback.
Covered by exisiting webrtc tests on these specific platforms.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm: (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

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

1:24 PM Changeset in webkit [247604] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247525. rdar://problem/53229719

Hop to the main thread when doing logging in RealtimeIncomingVideoSourceCocoa
https://bugs.webkit.org/show_bug.cgi?id=199865

Reviewed by Darin Adler.

LoggerHelper routines allow logging messages in system console and inspector console.
These routines iterate through a Vector of log observers which is not thread safe.
Document, the main log observer, also expects to be called on the main thread.
Manually tested (writing a layout test for this would require more than 2 seconds).

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

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

1:24 PM Changeset in webkit [247603] by Kocsen Chung
  • 5 edits
    2 adds in branches/safari-608-branch

Cherry-pick r247524. rdar://problem/53229635

[iOS] Option + Up or Down Arrow key doesn’t move cursor past paragraph boundaries in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=199851

Reviewed by Wenson Hsieh.

Source/WebKit:

The bug was caused by the difference in the way AppKit and UIKit responds to Option + Up / Down.

On macOS, AppKit sends moveForward before sending moveToStartOfParagraph and moveBackward
before sending moveToEndOfParagraph. As a result, when Option + Down is pressed when we are at
the end of a line, we would first move to the beginning of the next line (i.e. after the line break)
before moving or extending selection with the paragraph boundary granurality.

On iOS, UIKit only calls _moveToStartOfParagraph without moving forward by a character. As a result,
moving forward by the paragraph boundary granurality immediately stops when we're starting at the
end of a line when Option + Down is pressed. Option + Up case is similar.

Fix the bug on iOS by emulating what happens on macOS. Namely, move the selection forward or backward
by the character granurality before moving by the paragraph boundary granurality.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _moveToStartOfParagraph:withHistory:]): (-[WKContentView _moveToEndOfParagraph:withHistory:]):

Tools:

Added a regression test for iOS. Unfortunately, event sender, etc... doesn't work because
this code is getting directly triggered from UIKeyboard's code.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.h: Added.
  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.mm: Added.
  • TestWebKitAPI/ios/UIKitSPI.h:

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

1:24 PM Changeset in webkit [247602] by Kocsen Chung
  • 13 edits in branches/safari-608-branch/Source

Cherry-pick r247521. rdar://problem/53229717

Make ANGLE work inside WebKit2's sandbox
https://bugs.webkit.org/show_bug.cgi?id=199844

Patch by Kenneth Russell <kbr@chromium.org> on 2019-07-17
Reviewed by Alex Christensen.

Source/ThirdParty/ANGLE:

Cherry-pick fix for crbug.com/angleproject/3383 to eliminate use
of deprecated API in SystemInfo_mac.mm.

  • BUILD.gn:
  • src/gpu_info_util/SystemInfo.cpp: (angle::FindActiveGPU): (angle::PrintSystemInfo): (angle::FindPrimaryGPU): Deleted.
  • src/gpu_info_util/SystemInfo.h:
  • src/gpu_info_util/SystemInfo_internal.h:
  • src/gpu_info_util/SystemInfo_linux.cpp: (angle::GetSystemInfo):
  • src/gpu_info_util/SystemInfo_mac.mm: (angle::GetSystemInfo):
  • src/gpu_info_util/SystemInfo_win.cpp: (angle::GetSystemInfo):
  • src/tests/BUILD.gn:
  • src/tests/test_expectations/GPUTestConfig.cpp:
  • src/tests/test_utils/angle_test_instantiate.cpp: (angle::IsConfigWhitelisted):

Source/WebCore:

Fix missing #import introduced at the last minute while removing
some debugging code in the last patch.

Tested with San Angeles WebGL demo and some conformance tests.

  • platform/graphics/cocoa/WebGLLayer.mm:

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

1:24 PM Changeset in webkit [247601] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247519. rdar://problem/53229612

Hang in WebCore::AccessibilityRenderObject::visiblePositionRangeForLine.
https://bugs.webkit.org/show_bug.cgi?id=199845
<rdar://problem/53121017>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-07-17
Reviewed by Chris Fleizach.

  • Added check for upper bound NSNotFound for parameter to visiblePositionRangeForLine.
  • Fixed signed/unsigned issue for AXTextMarkerRangeForLine attribute.
  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine const):
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

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

1:24 PM Changeset in webkit [247600] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247504. rdar://problem/53229614

Fix includes and make a constructor explicit to avoid unified-sources-triggered test failures
https://bugs.webkit.org/show_bug.cgi?id=199849

Reviewed by Wenson Hsieh.

webkit.org/b/199587 triggered some unexpected test failures because of unified sources include
order. The TextStream operator in ScrollingTreeOverflowScrollingNode::dumpProperties() was invoking
the implicit constructor of TransformOperations.

  • page/scrolling/ScrollingTreeOverflowScrollingNode.cpp: Include TextStream.h
  • platform/graphics/transforms/TransformOperations.h: Make ctor explicit.

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

1:24 PM Changeset in webkit [247599] by Kocsen Chung
  • 7 edits
    1 move in branches/safari-608-branch/Source

Cherry-pick r247502. rdar://problem/53229564

REGRESSION: fast/events/watchos/double-tap-to-zoom* tests crashing in com.apple.WebKit: -[WKContentView(WKInteraction) _singleTapDidReset:]
https://bugs.webkit.org/show_bug.cgi?id=199840
<rdar://problem/52856531>

Patch by Antoine Quint <Antoine Quint> on 2019-07-16
Reviewed by Wenson Hsieh.

Source/WebCore:

Fix a build error that occured when building for the watchOS Simulator in the debug configuration.

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingProxyRole):

Source/WebKit:

We need to ensure the NSNumber used for -[WKSyntheticTapGestureRecognizer lastActiveTouchIdentifier] is retained. This innocent change required
the use of RetainPtr<>, which required the move to an Objective-C++ file, which lead to a change in the order files are unified, which lead to
build errors, which leads to a much bigger patch than just the source change necessary to fix the crash.

  • SourcesCocoa.txt:
  • UIProcess/ios/WKSyntheticTapGestureRecognizer.mm: Renamed from Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.m.
  • UIProcess/ios/forms/WKFormPeripheralBase.h:
  • UIProcess/ios/forms/WKFormPeripheralBase.mm:
  • WebKit.xcodeproj/project.pbxproj:

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

1:24 PM Changeset in webkit [247598] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247494. rdar://problem/53229554

[macCatalyst] Do not include WebKitLegacy.h in WebKit.h
https://bugs.webkit.org/show_bug.cgi?id=199833
<rdar://problem/53036744>

Reviewed by Tim Horton.

  • Shared/API/Cocoa/WebKit.h:

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

1:24 PM Changeset in webkit [247597] by Kocsen Chung
  • 18 edits in branches/safari-608-branch

Cherry-pick r247490. rdar://problem/53229559

NSTextFinder holes don't scroll with the page
https://bugs.webkit.org/show_bug.cgi?id=199815
<rdar://problem/52280514>

Reviewed by Simon Fraser.

Source/WebCore:

  • rendering/ScrollAlignment.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _usePlatformFindUI]): (-[WKWebView _setUsePlatformFindUI:]): (-[WKWebView _ensureTextFinderClient]): Add a bit so that clients can choose whether they want our find UI, which respects scrolling, or the system find UI, which works when doing multi-document searches. Right now you can't have both.

(-[WKWebView scrollFindMatchToVisible:]):
Implement and plumb scrollFindMatchToVisible.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::indicateFindMatch):
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::indicateFindMatch):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Plumb indicateFindMatch to FindController.
  • UIProcess/mac/WKTextFinderClient.h:
  • UIProcess/mac/WKTextFinderClient.mm: (-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]): Store whether or not we are using the platform find UI.

(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
If using WebKit find UI, turn on our UI in the options passed to findString[Matches].

(-[WKTextFinderClient scrollFindMatchToVisible:]):
If using WebKit find UI, when the platform tells us to reveal a find match, indicate it.

(-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]):
If using WebKit find UI, lie to the platform and return no rects so that it doesn't paint a yellow rectangle.

(-[WKTextFinderClient getImageForMatchResult:completionHandler:]):
If using WebKit find UI, lie to the platform and return no image so that it doesn't paint a yellow rectangle.

(-[WKTextFinderClient initWithPage:view:]): Deleted.

  • WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindUIAfterPageScroll): Make it possible to use our find UI with 'findStringMatches'; since the platform find infrastrucutre depends on knowing about all matches up front, we need to use 'findStringMatches' instead of 'findString', but we had never combined that with our UI. Don't throw away the other matches when we indicate one, and don't send DidFindString in the case we are coming from 'findStringMatches'. This all needs a bit of cleanup in the future.

(WebKit::FindController::findString):
Tell updateFindUIAfterPageScroll that we are 'findString' so that it uses its normal behavior.

(WebKit::FindController::findStringMatches):
Tell updateFindUIAfterPageScroll that we are 'findStringMatches' so that it uses the adjusted behavior.

(WebKit::FindController::indicateFindMatch):
Add 'indicateFindMatch', which both selects the match and moves the indicator there.

  • WebProcess/WebPage/FindController.h:

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m: (-[MiniBrowserNSTextFinder performAction:]): (-[WK2BrowserWindowController awakeFromNib]): Adopt the WebKit UI in MiniBrowser. Also, override NSTextFinder's -performAction: so that we can intercept the close action and hide our own find UI, since there is no delegate for that action yet.
  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm: (TEST):

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

1:24 PM Changeset in webkit [247596] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247489. rdar://problem/53229754

[iOS] Make sure the first camera device in the list is the front camera
https://bugs.webkit.org/show_bug.cgi?id=199811
<rdar://problem/53125157>

Reviewed by Jer Noble.

Some websites call getUserMedia with a deviceId constraint and theey pick the
first deviceId in the list provided by enumerateDevices.
On iOS, this is the back camera which is often not what is expected by WebRTC applications.
Instead, make sure the first camera device is the front camera.

Manually tested.

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

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

1:24 PM Changeset in webkit [247595] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247487. rdar://problem/53229629

Remove "GraphicsContext 0x7ffd8765f6b0 stack changed by" logging
https://bugs.webkit.org/show_bug.cgi?id=199834

Reviewed by Dean Jackson.

I inadvertently left in a couple of GraphicsContextStateStackChecker (used to detect mismatched
GraphicsContext save/restore) in r246725, so remove them.

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayerContents):
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::paintIntoLayer):

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

1:23 PM Changeset in webkit [247594] by Kocsen Chung
  • 15 edits in branches/safari-608-branch/Source

Cherry-pick r247486. rdar://problem/53229738

Speed up StorageManager::getValues()
https://bugs.webkit.org/show_bug.cgi?id=199812

Reviewed by Alex Christensen.

Source/WebCore:

  • storage/StorageMap.cpp: (WebCore::StorageMap::importItems):
  • storage/StorageMap.h:

Source/WebKit:

Made the following performance improvements:

  • Made StorageManager a WorkQueueMessageReceiver again (like it was before it got moved from the UIProcess to the Network process). This avoids a lot of thread hopping (IPC thread -> Main thread -> StorageManagerThread -> Main Thread) and a lot of isolatedCopying of the strings.
  • Move values around when possible to avoid copying.
  • Add fast path to StorageMap::importItems() for when the StorageMap is empty when importing (15ms -> 2.5ms).
  • NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp: (WebKit::LocalStorageDatabase::importItems):
  • NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection): (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): (WebKit::StorageManager::processDidCloseConnection): (WebKit::StorageManager::createLocalStorageMap): (WebKit::StorageManager::createTransientLocalStorageMap): (WebKit::StorageManager::createSessionStorageMap): (WebKit::StorageManager::destroyStorageMap): (WebKit::StorageManager::getValues): (WebKit::StorageManager::setItem): (WebKit::StorageManager::setItems): (WebKit::StorageManager::removeItem): (WebKit::StorageManager::clear):
  • NetworkProcess/WebStorage/StorageManager.h:
  • Platform/IPC/Connection.cpp: (IPC::Connection::addWorkQueueMessageReceiver): (IPC::Connection::removeWorkQueueMessageReceiver): (IPC::Connection::processIncomingMessage): (IPC::Connection::dispatchMessage): (IPC::Connection::dispatchMessageToWorkQueueReceiver):
  • Platform/IPC/Connection.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::loadValuesIfNeeded): Messages to WorkQueueMessageReceivers are normally dispatched from the IPC WorkQueue. However, there is a race if a client (here StorageManager) adds itself as a WorkQueueMessageReceiver as a result of receiving an IPC message on the main thread (here NetworkConnectionToWebProcess::WebPageWasAdded). The message might have already been dispatched from the IPC WorkQueue to the main thread by the time the client registers itself as a WorkQueueMessageReceiver. To address this, we check again for messages receivers once the message arrives on the main thread.

Source/WebKitLegacy:

  • Storage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::importItems):
  • Storage/StorageAreaImpl.h:
  • Storage/StorageAreaSync.cpp: (WebKit::StorageAreaSync::performImport):

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

1:23 PM Changeset in webkit [247593] by Kocsen Chung
  • 5 edits in branches/safari-608-branch

Cherry-pick r247484. rdar://problem/53229757

[Text autosizing] [iPadOS] Paragraph text on the front page of LinkedIn.com is not boosted
https://bugs.webkit.org/show_bug.cgi?id=199827
<rdar://problem/53152660>

Reviewed by Zalan Bujtas.

Source/WebCore:

After r247467, we try to avoid boosting some text that might cause vertical overflow due to line height
increasing inside a container that expects a fixed integer number of lines. However, in the case of
linkedin.com, the line height specified is a fixed value of 26px, which greatly exceeds the specified font size
of 14px. In this case, it's safe to boost font size, since doing so would not affect the line height at all.

To handle this case, don't avoid text autosizing due to the "fixed number of lines" heuristic if the line height
is fixed, and is much larger than the font size.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html

  • rendering/style/TextSizeAdjustment.cpp: (WebCore::AutosizeStatus::updateStatus):

LayoutTests:

Add a new test case, inspired by paragraph text in a post on linkedin.com. This text should get autosized.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:

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

1:23 PM Changeset in webkit [247592] by Kocsen Chung
  • 5 edits in branches/safari-608-branch/Source

Cherry-pick r247483. rdar://problem/53229618

[ContentChangeObserver] Cancel ongoing content observation when tap is failed/cancelled
https://bugs.webkit.org/show_bug.cgi?id=199828
<rdar://problem/53152696>

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch ensures that we stop the content observation (initiated by touch start) when the tap
is cancelled/failed.

Not testable.

  • page/ios/ContentChangeObserver.cpp: (WebCore::ContentChangeObserver::didCancelPotentialTap):
  • page/ios/ContentChangeObserver.h:

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::commitPotentialTapFailed): (WebKit::WebPage::cancelPotentialTap):

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

1:23 PM Changeset in webkit [247591] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WTF

Cherry-pick r247482. rdar://problem/53229731

New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653

Unreviewed MacCatalyst build fix.

  • wtf/Platform.h:

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

1:23 PM Changeset in webkit [247590] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247480. rdar://problem/53229746

Hop to main thread for release logging in RealtimeIncomingAudioSource
https://bugs.webkit.org/show_bug.cgi?id=199813

Reviewed by Eric Carlson.

LoggerHelper routines allow logging messages in system console and inspector console.
These routines iterate through a Vector of log observers which is not thread safe.
Document, the main log observer, also expects to be called on the main thread.
Manually tested (writing a layout test for this would require more than 2 seconds).

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

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

1:23 PM Changeset in webkit [247589] by Kocsen Chung
  • 18 edits in branches/safari-608-branch

Cherry-pick r247474. rdar://problem/53229615

JSGlobalObject type macros should support feature flags and WeakRef should have one
https://bugs.webkit.org/show_bug.cgi?id=199601

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch refactors the various builtin type macros to have a
parameter, which is the feature flag enabling it. Since most
builtin types are enabled by default this patch adds a new global
bool typeExposedByDefault for clarity. Note, because static hash
tables have no concept of feature flags we can't use feature flags
with lazy properties. This is probably not a big deal as features
that are off by default won't be allocated anywhere we care about
memory usage anyway.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren):
  • runtime/JSGlobalObject.h: (JSC::JSGlobalObject::stringObjectStructure const): (JSC::JSGlobalObject::bigIntObjectStructure const): Deleted.
  • runtime/Options.h:
  • wasm/js/JSWebAssembly.cpp:

Tools:

JSC options need to be set before the window is created for the test.

  • DumpRenderTree/mac/DumpRenderTree.mm: (resetWebViewToConsistentStateBeforeTesting):
  • DumpRenderTree/win/DumpRenderTree.cpp: (setJSCOptions): (resetWebViewToConsistentStateBeforeTesting):

LayoutTests:

Add JSC option requirements for WeakRef tests.

  • js/script-tests/weakref-async-is-collected.js:
  • js/script-tests/weakref-eventually-collects-values.js:
  • js/script-tests/weakref-microtasks-dont-collect.js:
  • js/script-tests/weakref-weakset-consistency.js:
  • js/weakref-async-is-collected.html:
  • js/weakref-eventually-collects-values.html:
  • js/weakref-microtasks-dont-collect.html:
  • js/weakref-weakset-consistency.html:

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

1:23 PM Changeset in webkit [247588] by Kocsen Chung
  • 6 edits in branches/safari-608-branch/Source

Cherry-pick r247470. rdar://problem/53229634

outlook.live.com has odd viewport with edge gap
https://bugs.webkit.org/show_bug.cgi?id=199822
<rdar://problem/53029072>

Reviewed by Wenson Hsieh.

Source/WebCore:

r244944 introduced a viewport width quirk because at certain screen size outlook.live.com's flex setup produced a slighly broken layout.
We don't seem to need this quirk anymore (composed column's min-width is removed.)

  • page/Quirks.cpp: (WebCore::Quirks::shouldIgnoreShrinkToFitContent const): Deleted. (WebCore::Quirks::overriddenViewLayoutWidth const): Deleted.
  • page/Quirks.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::setViewportConfigurationViewLayoutSize): (WebKit::WebPage::dynamicViewportSizeUpdate): (WebKit::WebPage::resetViewportDefaultConfiguration): (WebKit::WebPage::immediatelyShrinkToFitContent): (WebKit::WebPage::viewLayoutSizeAdjustedForQuirks): Deleted.

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

1:23 PM Changeset in webkit [247587] by Kocsen Chung
  • 7 edits in branches/safari-608-branch

Cherry-pick r247467. rdar://problem/53229768

[Text autosizing] [iPadOS] Product label text is clipped in portrait mode on the front page of sephora.com
https://bugs.webkit.org/show_bug.cgi?id=199806
<rdar://problem/52902482>

Reviewed by Zalan Bujtas.

Source/WebCore:

On sephora.com, some product label text is currently boosted by idempotent text autosizing, which causes the
labels be vertically clipped. This patch augments the idempotent text autosizing heuristic to avoid this case by
checking if the element to be boosted has a fixed height or max height, whose value is very close to a small
integer multiple of the line height. In this case, it's likely that the website expects the text to be no more
than a few lines' worth of height, so boosting the text is likely to break the page.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html

  • rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::isIdempotentTextAutosizingCandidate const):
  • rendering/style/TextSizeAdjustment.cpp: (WebCore::AutosizeStatus::updateStatus):
  • rendering/style/TextSizeAdjustment.h:

Rename Fields::DisplayNone to Fields::AvoidSubtree to avoid introducing another bit in RenderStyle's inherited
flags.

LayoutTests:

Add a new test case to an existing layout test, which mimics the product label text on sephora.com's front page.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:

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

1:23 PM Changeset in webkit [247586] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Tools

Cherry-pick r247466. rdar://problem/53228860

[ Mojave WK1 ] Some Image tests are flakey failures and are failing in tandem with zoomed in or blank image results
https://bugs.webkit.org/show_bug.cgi?id=193108

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-07-15
Reviewed by Simon Fraser.

Add a workaround for <rdar://problem/17084993> in createBitmapContextFromWebView().
Re-request the snapshot at kCGWindowImageNominalResolution if it was captured
at the wrong scale.

  • DumpRenderTree/mac/PixelDumpSupportMac.mm: (takeWindowSnapshot): (createBitmapContextFromWebView):

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

1:23 PM Changeset in webkit [247585] by Kocsen Chung
  • 11 edits in branches/safari-608-branch/Source

Cherry-pick r247465. rdar://problem/53229731

New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653

Unreviewed watchOS build fix.

Source/WebCore:

  • page/ProcessWarming.cpp: (WebCore::ProcessWarming::prewarmGlobally):
  • page/cocoa/MemoryReleaseCocoa.mm: (WebCore::platformReleaseMemory):
  • platform/graphics/FontCascadeDescription.cpp:
  • platform/graphics/FontDescription.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::invalidateFontCache): (WebCore::lookupFallbackFont):
  • platform/graphics/cocoa/FontDescriptionCocoa.cpp: (WebCore::FontCascadeDescription::effectiveFamilyAt const):
  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: (WebCore::FontFamilySpecificationCoreText::fontRanges const):
  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

Source/WTF:

  • wtf/Platform.h:

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

1:23 PM Changeset in webkit [247584] by Kocsen Chung
  • 9 edits in branches/safari-608-branch

Cherry-pick r247461. rdar://problem/53229637

Make WKURLSchemeTask thread safe.
<rdar://problem/50471863> and https://bugs.webkit.org/show_bug.cgi?id=199764

Reviewed by Alex Christensen.

Source/WebKit:

Punt most of the WKURLSchemeTask operations back to the main thread.
Make accessing the NSURLRequest be thread safe with lock protection.

  • UIProcess/API/Cocoa/WKURLSchemeTask.mm: (getExceptionTypeFromMainRunLoop): (-[WKURLSchemeTaskImpl dealloc]): (-[WKURLSchemeTaskImpl request]): (-[WKURLSchemeTaskImpl _requestOnlyIfCached]): (-[WKURLSchemeTaskImpl didReceiveResponse:]): (-[WKURLSchemeTaskImpl didReceiveData:]): (-[WKURLSchemeTaskImpl didFinish]): (-[WKURLSchemeTaskImpl didFailWithError:]): (-[WKURLSchemeTaskImpl _didPerformRedirection:newRequest:]):
  • UIProcess/WebURLSchemeTask.cpp: (WebKit::WebURLSchemeTask::WebURLSchemeTask): (WebKit::WebURLSchemeTask::~WebURLSchemeTask): (WebKit::WebURLSchemeTask::didPerformRedirection): (WebKit::WebURLSchemeTask::didReceiveResponse): (WebKit::WebURLSchemeTask::didReceiveData): (WebKit::WebURLSchemeTask::didComplete): (WebKit::WebURLSchemeTask::pageDestroyed): (WebKit::WebURLSchemeTask::stop): (WebKit::WebURLSchemeTask::nsRequest const):
  • UIProcess/WebURLSchemeTask.h: (WebKit::WebURLSchemeTask::identifier const): (WebKit::WebURLSchemeTask::pageID const): (WebKit::WebURLSchemeTask::process): (WebKit::WebURLSchemeTask::process const): Deleted. (WebKit::WebURLSchemeTask::request const): Deleted.

Source/WTF:

  • wtf/MainThread.cpp: (WTF::callOnMainAndWait): (WTF::callOnMainRunLoopAndWait): (WTF::callOnMainThreadAndWait):
  • wtf/MainThread.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

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

1:23 PM Changeset in webkit [247583] by Kocsen Chung
  • 8 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r247460. rdar://problem/53229628

Followup to r247439
https://bugs.webkit.org/show_bug.cgi?id=199788
<rdar://problem/52142570>

Reviewed by Tim Horton.

As it turns out, sending modern async completion-handler based IPC messages while processing incoming sync
messages results in a debug assertion. Instead of migrating FontAtSelection to the new async IPC mechanism,
restore the older CallbackID-based async IPC.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::fontAtSelection): (WebKit::WebPageProxy::fontAtSelectionCallback):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::fontAtSelection):

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

1:23 PM Changeset in webkit [247582] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247459. rdar://problem/53229552

Crash under DisplayRefreshMonitorManager::displayWasUpdated()
https://bugs.webkit.org/show_bug.cgi?id=199808
<rdar://problem/53070144>

Reviewed by Geoffrey Garen.

Copy m_monitors before iterating over it because the calling displayLinkFired() on the
monitor may end up calling DisplayRefreshMonitorManager::displayDidRefresh() synchronously,
which removes the monitor from m_monitors.

  • platform/graphics/DisplayRefreshMonitorManager.cpp: (WebCore::DisplayRefreshMonitorManager::displayWasUpdated):

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

1:23 PM Changeset in webkit [247581] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Tools

Cherry-pick r247458. rdar://problem/53229545

Unreviewed, a build fix after r247437

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm: Added platform guard towards -[WKUIDelegate _presentingViewControllerForWebView:].

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

1:23 PM Changeset in webkit [247580] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WTF

Cherry-pick r247454. rdar://problem/53229624

MacCatalyst asserts when command key is raised
https://bugs.webkit.org/show_bug.cgi?id=199805
<rdar://problem/53120393>

Reviewed by Tim Horton.

Add USE_UIKIT_KEYBOARD_ADDITIONS for iOS 13+ and macCatalyst.

  • wtf/FeatureDefines.h:

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

1:23 PM Changeset in webkit [247579] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247450. rdar://problem/53229577

Add missing webgpu includes
https://bugs.webkit.org/show_bug.cgi?id=199802
<rdar://problem/53119120>

Reviewed by Myles C. Maxfield.

WHLSLFunctionWriter.cpp fails to compile on tvOS and watchOS due to
missing includes. This file likely compiles on other platforms due to
the Unified Sources facility that clumps several implementation files
together, exposing those implementation files to the others' includes.
It fails on tvOS and watchOS due to the different ways these
implementation files can get clumped together on different platforms.

No new tests as there is no functional change.

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

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

1:23 PM Changeset in webkit [247578] by Kocsen Chung
  • 10 edits in branches/safari-608-branch

Cherry-pick r247439. rdar://problem/53229628

[macOS 10.15] Cannot unbold selected text when the system font is used
https://bugs.webkit.org/show_bug.cgi?id=199788
<rdar://problem/52142570>

Reviewed by Tim Horton.

Source/WebKit:

In macOS 10.15, +[NSFont fontWithName:size:] no longer recognizes system fonts (of name
".SFNS-*") and returns nil instead. However, our existing implementation of
WebPageProxy::fontAtSelection works by grabbing the font name in the web process, and
sending it over to the UI process, where it is mapped to an NSFont. As a result, this always
results in a nil font in macOS 10.15, which causes us to never update NSFontManager's
selected font. In turn, this means that once selected text is bolded, it can't be unbolded
via NSFontManager, since NSFontManager thinks that the text is still not bold.

To fix this, we simply encode and send a platform FontInfo instead of sending the font name.
This allows the UI process to reconstruct NSFonts from font attribute dictionaries instead,
and update the font manager.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateFontManagerIfNeeded):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::fontAtSelection):

Refactor this to send a FontInfo (containing a font attribute dictionary) instead of a font
name.

(WebKit::WebPageProxy::fontAtSelectionCallback): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Change FontAtSelection to use sendWithAsyncReply instead of sending a callback ID. This also
allows us to remove FontAtSelectionCallback.

  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::fontAtSelection):

Tools:

Add a new API test to verify that bolding and unbolding updates the
shared font manager's selected font.

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm: (TestWebKitAPI::TEST):

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

1:23 PM Changeset in webkit [247577] by Kocsen Chung
  • 4 edits in branches/safari-608-branch

Cherry-pick r247437. rdar://problem/53229545

[iOS] SOAuthorizationSession should tell AppSSO whether the UIClient is capable of showing the extension UI
https://bugs.webkit.org/show_bug.cgi?id=199790
<rdar://problem/52790112>

Reviewed by Brent Fulgham.

Source/WebKit:

On iOS, WebKit relies on a SPI -[WKUIDelegatePrivate _presentingViewControllerForWebView:] to present the
extension UI. However, third party clients often don't implement this SPI. Therefore, WebKit will not be
able to present the extension UI for them.

To be able to show the extension UI for third party WebKit clients, WebKit should unset SOAuthorization.enableEmbeddedAuthorizationViewController
whenever clients don't implement the above SPI such that AppSSO could show the UI in their UI process.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: (WebKit::SOAuthorizationSession::start):

Tools:

Add tests to check SOAuthorization.enableEmbeddedAuthorizationViewController accordingly.

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm: (-[TestSOAuthorizationDelegate _presentingViewControllerForWebView:]): (configureSOAuthorizationWebView): (TestWebKitAPI::TEST): (-[TestSOAuthorizationNavigationDelegate init]): Deleted. (-[TestSOAuthorizationNavigationDelegate webView:didFinishNavigation:]): Deleted. (-[TestSOAuthorizationNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted. (-[TestSOAuthorizationNavigationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted. (-[TestSOAuthorizationNavigationDelegate _webView:decidePolicyForSOAuthorizationLoadWithCurrentPolicy:forExtension:completionHandler:]): Deleted.

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

1:22 PM Changeset in webkit [247576] by Kocsen Chung
  • 6 edits in branches/safari-608-branch

Cherry-pick r247434. rdar://problem/53229565

window.openDatabase is not writable
https://bugs.webkit.org/show_bug.cgi?id=199737
<rdar://problem/52551332>

Reviewed by Chris Dumez.

Source/WebCore:

In r246707 we made openDatabase an undetectable attribute of window, and it was set to be read-only. This broke
some sites which replace window.openDatabase with their own implementation when window.openDatabase does not
exists or WebSQL is not implemented.

This patch removes the readonly property and adds a setter for openDatabase.

  • Modules/webdatabase/DOMWindowWebDatabase.idl:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setOpenDatabase):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebSQLBasics.mm: (TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/opendatabase-always-exists.html:

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

1:22 PM Changeset in webkit [247575] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r247379. rdar://problem/53229731

Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::fontWithFamilySpecialCase):

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

1:22 PM Changeset in webkit [247574] by Kocsen Chung
  • 30 edits
    32 adds in branches/safari-608-branch

Cherry-pick r247377. rdar://problem/53229731

New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>

Reviewed by Simon Fraser.

Source/WebCore:

This patch adds support for -apple-system-ui-serif, -apple-system-ui-monospaced,
and -apple-system-ui-rounded, behind an SPI that is off-by-default. We don't want
to expose these fonts to the web because we don't a standardization story for them
yet, but we do want some apps to be able to use them.

WebKit clients who want to use these fonts can set
-[WKPreferences _shouldAllowDesignSystemUIFonts] = YES.

The patch generalizes our existing system-ui infrastructure to handle these three
additional fonts. It also explicitly disables the unsupported dot-prefixed names
so they don't leak out into Web content.

Tests: fast/text/design-system-ui-10.html

fast/text/design-system-ui-11.html
fast/text/design-system-ui-12.html
fast/text/design-system-ui-13.html
fast/text/design-system-ui-14.html
fast/text/design-system-ui-15.html
fast/text/design-system-ui-16.html
fast/text/design-system-ui-2.html
fast/text/design-system-ui-3.html
fast/text/design-system-ui-4.html
fast/text/design-system-ui-5.html
fast/text/design-system-ui-6.html
fast/text/design-system-ui-7.html
fast/text/design-system-ui-8.html
fast/text/design-system-ui-9.html
fast/text/design-system-ui.html

  • css/CSSFontFace.cpp: (WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const):
  • css/CSSFontFace.h:
  • css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::load):
  • css/StyleResolver.cpp: (WebCore::StyleResolver::initializeFontStyle):
  • page/Settings.yaml:
  • platform/graphics/FontDescription.cpp: (WebCore::m_shouldAllowDesignSystemUIFonts): (WebCore::m_shouldAllowUserInstalledFonts): Deleted.
  • platform/graphics/FontDescription.h: (WebCore::FontDescription::shouldAllowDesignSystemUIFonts const): (WebCore::FontDescription::setShouldAllowDesignSystemUIFonts): (WebCore::FontDescription::operator== const):
  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::platformFontLookupWithFamily): (WebCore::fontWithFamily):
  • platform/graphics/cocoa/FontCacheCoreText.h:
  • platform/graphics/cocoa/FontDescriptionCocoa.cpp: (WebCore::systemFontUse): (WebCore::systemFontCascadeList): (WebCore::FontCascadeDescription::effectiveFamilyCount const): (WebCore::FontCascadeDescription::effectiveFamilyAt const): (WebCore::isSystemFontString): Deleted. (WebCore::isUIFontTextStyle): Deleted.
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm: (WebCore::FontPlatformData::ctFont const):
  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp: (WebCore::SystemFontDatabaseCoreText::createSystemUI): (WebCore::SystemFontDatabaseCoreText::createDesignSystemUI): (WebCore::SystemFontDatabaseCoreText::createTextStyle): (WebCore::SystemFontDatabaseCoreText::cascadeList): (WebCore::SystemFontDatabaseCoreText::applyWeightItalicsAndFallbackBehavior): (WebCore::SystemFontDatabaseCoreText::systemFontParameters):
  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
  • platform/graphics/ios/FontCacheIOS.mm: (WebCore::platformFontWithFamilySpecialCase):
  • platform/graphics/mac/FontCacheMac.mm: (WebCore::platformFontWithFamilySpecialCase):
  • style/StyleResolveForDocument.cpp: (WebCore::Style::resolveForDocument):
  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged):
  • testing/InternalSettings.cpp: (WebCore::InternalSettings::Backup::Backup): (WebCore::InternalSettings::Backup::restoreTo): (WebCore::InternalSettings::setShouldAllowDesignSystemUIFonts):
  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebCore/PAL:

  • pal/spi/cocoa/CoreTextSPI.h:

Source/WebKit:

Add the SPI to enable the new fonts.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetShouldAllowDesignSystemUIFonts): (WKPreferencesGetShouldAllowDesignSystemUIFonts):
  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _shouldAllowDesignSystemUIFonts]): (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]):
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WTF:

  • wtf/Platform.h:

LayoutTests:

  • TestExpectations:
  • fast/text/design-system-ui-10-expected-mismatch.html: Added.
  • fast/text/design-system-ui-10.html: Added.
  • fast/text/design-system-ui-11-expected-mismatch.html: Added.
  • fast/text/design-system-ui-11.html: Added.
  • fast/text/design-system-ui-12-expected-mismatch.html: Added.
  • fast/text/design-system-ui-12.html: Added.
  • fast/text/design-system-ui-13-expected-mismatch.html: Added.
  • fast/text/design-system-ui-13.html: Added.
  • fast/text/design-system-ui-14-expected-mismatch.html: Added.
  • fast/text/design-system-ui-14.html: Added.
  • fast/text/design-system-ui-15-expected-mismatch.html: Added.
  • fast/text/design-system-ui-15.html: Added.
  • fast/text/design-system-ui-16-expected-mismatch.html: Added.
  • fast/text/design-system-ui-16.html: Added.
  • fast/text/design-system-ui-2-expected.html: Added.
  • fast/text/design-system-ui-2.html: Added.
  • fast/text/design-system-ui-3-expected-mismatch.html: Added.
  • fast/text/design-system-ui-3.html: Added.
  • fast/text/design-system-ui-4-expected-mismatch.html: Added.
  • fast/text/design-system-ui-4.html: Added.
  • fast/text/design-system-ui-5-expected-mismatch.html: Added.
  • fast/text/design-system-ui-5.html: Added.
  • fast/text/design-system-ui-6-expected.html: Added.
  • fast/text/design-system-ui-6.html: Added.
  • fast/text/design-system-ui-7-expected.html: Added.
  • fast/text/design-system-ui-7.html: Added.
  • fast/text/design-system-ui-8-expected-mismatch.html: Added.
  • fast/text/design-system-ui-8.html: Added.
  • fast/text/design-system-ui-9-expected-mismatch.html: Added.
  • fast/text/design-system-ui-9.html: Added.
  • fast/text/design-system-ui-expected.html: Added.
  • fast/text/design-system-ui.html: Added.
  • platform/mac/TestExpectations:

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

12:12 PM Changeset in webkit [247573] by graouts@webkit.org
  • 3 edits
    4 adds in trunk

[Pointer Events] The button and buttons properties are incorrect on iOS
https://bugs.webkit.org/show_bug.cgi?id=199910
<rdar://problem/52778374>

Reviewed by Dean Jackson.

Source/WebCore:

The button and buttons properties were always set to 0 on iOS. We now use the correct values such that
button is always 0 except for "pointermove" where it's -1, and "buttons" is 1 as long as the pointer is
in contact with the touch surface.

Tests: pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel.html

pointerevents/ios/pointer-event-button-and-buttons.html

  • dom/ios/PointerEventIOS.cpp:

(WebCore::buttonForType):
(WebCore::buttonsForType):
(WebCore::PointerEvent::PointerEvent):

LayoutTests:

  • pointerevents/ios/pointer-event-button-and-buttons-expected.txt: Added.
  • pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel-expected.txt: Added.
  • pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel.html: Added.
  • pointerevents/ios/pointer-event-button-and-buttons.html: Added.
12:11 PM Changeset in webkit [247572] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

REGRESSION: Unable to enable simulated mouse events using the runtime flag
https://bugs.webkit.org/show_bug.cgi?id=199909
<rdar://problem/53254895>

Reviewed by Dean Jackson.

The fix for wkb.ug/199508 (r247152) broke the ability enable simulated mouse events using the runtime flag.
We now add a check for the flag in Quirks::shouldDispatchSimulatedMouseEvents() so that the runtime flag
overrides the content of that function. This is more practical and allows for a quick override using the flag.

Additionally, we need only call shouldDispatchSimulatedMouseEvents() in simulatedMouseEventTypeForTarget() since
that function already calls needsQuirks().

  • dom/EventNames.h:

(WebCore::EventNames::isTouchRelatedEventType const):

  • dom/Node.cpp:

(WebCore::Node::moveNodeToNewDocument):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):

12:06 PM Changeset in webkit [247571] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Rebase fast/forms/ios/delete-in-input-in-iframe.html after r244141
https://bugs.webkit.org/show_bug.cgi?id=199875
<rdar://problem/50060561>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-18
Reviewed by Megan Gardner.

In r202295, we added an ios-specific quirk to prevent scrolling on iOS because of UIKit/WebKit scrolling discrepancies.
In r244141, we changed the scrolling behavior to be more like macOS, and the test was broken. Since this was an intentional
change and the bugs reported in rdar://problem/26805722 (initially fixed by r202295) and rdar://problem/49225507 (fixed by r244141)
are both behaving as desired, the intentional change in r244141 should be reflected by new test expectations.
We do want typing in an input field in an iframe to scroll as we type.

  • fast/forms/ios/delete-in-input-in-iframe-expected.txt:
  • fast/forms/ios/delete-in-input-in-iframe.html:
12:05 PM Changeset in webkit [247570] by commit-queue@webkit.org
  • 116 edits in trunk/Source/WebKitLegacy

Unify builds in WebKitLegacy/mac/DOM
https://bugs.webkit.org/show_bug.cgi?id=199771

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-18
Reviewed by Geoffrey Garen.

Source/WebKitLegacy:

  • SourcesCocoa.txt:
  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/generate-unified-sources.sh:

Source/WebKitLegacy/mac:

  • DOM/DOMAbstractView.mm:
  • DOM/DOMAttr.mm:
  • DOM/DOMBlob.mm:
  • DOM/DOMCDATASection.mm:
  • DOM/DOMCSSFontFaceRule.mm:
  • DOM/DOMCSSImportRule.mm:
  • DOM/DOMCSSMediaRule.mm:
  • DOM/DOMCSSPageRule.mm:
  • DOM/DOMCSSPrimitiveValue.mm:
  • DOM/DOMCSSRule.mm:
  • DOM/DOMCSSRuleList.mm:
  • DOM/DOMCSSStyleDeclaration.mm:
  • DOM/DOMCSSStyleRule.mm:
  • DOM/DOMCSSStyleSheet.mm:
  • DOM/DOMCSSUnknownRule.mm:
  • DOM/DOMCSSValue.mm:
  • DOM/DOMCSSValueList.mm:
  • DOM/DOMCharacterData.mm:
  • DOM/DOMComment.mm:
  • DOM/DOMCounter.mm:
  • DOM/DOMDocument.mm:
  • DOM/DOMDocumentFragment.mm:
  • DOM/DOMDocumentType.mm:
  • DOM/DOMEvent.mm:
  • DOM/DOMFile.mm:
  • DOM/DOMFileList.mm:
  • DOM/DOMHTMLAnchorElement.mm:
  • DOM/DOMHTMLAppletElement.mm:
  • DOM/DOMHTMLAreaElement.mm:
  • DOM/DOMHTMLBRElement.mm:
  • DOM/DOMHTMLBaseElement.mm:
  • DOM/DOMHTMLBaseFontElement.mm:
  • DOM/DOMHTMLBodyElement.mm:
  • DOM/DOMHTMLButtonElement.mm:
  • DOM/DOMHTMLCanvasElement.mm:
  • DOM/DOMHTMLCollection.mm:
  • DOM/DOMHTMLDListElement.mm:
  • DOM/DOMHTMLDirectoryElement.mm:
  • DOM/DOMHTMLDivElement.mm:
  • DOM/DOMHTMLDocument.mm:
  • DOM/DOMHTMLElement.mm:
  • DOM/DOMHTMLEmbedElement.mm:
  • DOM/DOMHTMLFieldSetElement.mm:
  • DOM/DOMHTMLFontElement.mm:
  • DOM/DOMHTMLFormElement.mm:
  • DOM/DOMHTMLFrameElement.mm:
  • DOM/DOMHTMLFrameSetElement.mm:
  • DOM/DOMHTMLHRElement.mm:
  • DOM/DOMHTMLHeadElement.mm:
  • DOM/DOMHTMLHeadingElement.mm:
  • DOM/DOMHTMLHtmlElement.mm:
  • DOM/DOMHTMLIFrameElement.mm:
  • DOM/DOMHTMLImageElement.mm:
  • DOM/DOMHTMLInputElement.mm:
  • DOM/DOMHTMLLIElement.mm:
  • DOM/DOMHTMLLabelElement.mm:
  • DOM/DOMHTMLLegendElement.mm:
  • DOM/DOMHTMLLinkElement.mm:
  • DOM/DOMHTMLMapElement.mm:
  • DOM/DOMHTMLMarqueeElement.mm:
  • DOM/DOMHTMLMediaElement.mm:
  • DOM/DOMHTMLMenuElement.mm:
  • DOM/DOMHTMLMetaElement.mm:
  • DOM/DOMHTMLModElement.mm:
  • DOM/DOMHTMLOListElement.mm:
  • DOM/DOMHTMLObjectElement.mm:
  • DOM/DOMHTMLOptGroupElement.mm:
  • DOM/DOMHTMLOptionElement.mm:
  • DOM/DOMHTMLOptionsCollection.mm:
  • DOM/DOMHTMLParagraphElement.mm:
  • DOM/DOMHTMLParamElement.mm:
  • DOM/DOMHTMLPreElement.mm:
  • DOM/DOMHTMLQuoteElement.mm:
  • DOM/DOMHTMLScriptElement.mm:
  • DOM/DOMHTMLSelectElement.mm:
  • DOM/DOMHTMLStyleElement.mm:
  • DOM/DOMHTMLTableCaptionElement.mm:
  • DOM/DOMHTMLTableCellElement.mm:
  • DOM/DOMHTMLTableColElement.mm:
  • DOM/DOMHTMLTableElement.mm:
  • DOM/DOMHTMLTableRowElement.mm:
  • DOM/DOMHTMLTableSectionElement.mm:
  • DOM/DOMHTMLTitleElement.mm:
  • DOM/DOMHTMLUListElement.mm:
  • DOM/DOMHTMLVideoElement.mm:
  • DOM/DOMKeyboardEvent.mm:
  • DOM/DOMMediaError.mm:
  • DOM/DOMMediaList.mm:
  • DOM/DOMMouseEvent.mm:
  • DOM/DOMMutationEvent.mm:
  • DOM/DOMNamedNodeMap.mm:
  • DOM/DOMNodeIterator.mm:
  • DOM/DOMNodeList.mm:
  • DOM/DOMOverflowEvent.mm:
  • DOM/DOMProcessingInstruction.mm:
  • DOM/DOMProgressEvent.mm:
  • DOM/DOMRGBColor.mm:
  • DOM/DOMRange.mm:
  • DOM/DOMRect.mm:
  • DOM/DOMStyleSheet.mm:
  • DOM/DOMStyleSheetList.mm:
  • DOM/DOMText.mm:
  • DOM/DOMTextEvent.mm:
  • DOM/DOMTimeRanges.mm:
  • DOM/DOMTokenList.mm:
  • DOM/DOMTreeWalker.mm:
  • DOM/DOMUIEvent.mm:
  • DOM/DOMWheelEvent.mm:
  • DOM/DOMXPath.mm:
  • DOM/DOMXPathExpression.mm:
  • DOM/DOMXPathResult.mm:
12:03 PM Changeset in webkit [247569] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Add build step to AnalyzeLayoutTestsResults
https://bugs.webkit.org/show_bug.cgi?id=199877

Reviewed by Jonathan Bedard.

Logic is ported from webkitpy/tool/bot/patchanalysistask.py::_retry_layout_tests()

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTestsWithoutPatch.evaluateCommand): invoke AnalyzeLayoutTestsResults step.
(AnalyzeLayoutTestsResults): Build step to analyze layout-test results.
(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.report_pre_existing_failures):
(AnalyzeLayoutTestsResults.retry_build):
(AnalyzeLayoutTestsResults._results_failed_different_tests):
(AnalyzeLayoutTestsResults._report_flaky_tests):
(AnalyzeLayoutTestsResults.start):

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
11:57 AM Changeset in webkit [247568] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION: Panning on an Amazon product image scrolls the page on iPadOS
https://bugs.webkit.org/show_bug.cgi?id=199905
<rdar://problem/49124529>

Reviewed by Dean Jackson.

Amazon product pages include images that the user can touch and pan to show zoomed details in a side image. This
currently works on iPadOS thanks to the dispatch of simulated "mousemove" events on the product image, but the site
doesn't call preventDefault() when handling those events as it wasn't necessary for macOS.

We add a new quirk that will indicate that a given element is such a product image.

  • page/Quirks.cpp:

(WebCore::Quirks::isAmazon const):
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented const):
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):

  • page/Quirks.h:
11:41 AM Changeset in webkit [247567] by achristensen@apple.com
  • 26 edits in trunk

Move NetworkCache ownership from NetworkProcess to NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=199817

Reviewed by Geoff Garen.

Source/WebKit:

I also added SPI to set the path of the NetworkCache with an API test.
If this new SPI is not used, it falls back to getting the cache location from the NetworkProcess to maintain compatibility.
We still get options, cache size, and cache model from the NetworkProcess. Those should be migrated with new SPI later.
Clearing the cache and other operations now iterate the NetworkSessions instead of assuming there is only one cache.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::setCacheModel):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::diskCacheDirectory const):
(WebKit::NetworkProcess::cacheOptions const):
(WebKit::NetworkProcess::cache): Deleted.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::cache):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::open):
(WebKit::NetworkCache::Cache::Cache):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/curl/NetworkSessionCurl.cpp:

(WebKit::NetworkSessionCurl::NetworkSessionCurl):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration networkCacheDirectory]):
(-[_WKWebsiteDataStoreConfiguration setNetworkCacheDirectory:]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedNetworkCacheDirectory const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView synchronouslyLoadRequest:]):

11:34 AM Changeset in webkit [247566] by youenn@apple.com
  • 12 edits
    5 adds in trunk

Make sure to set kCTFontFallbackOptionAttribute to kCTFontFallbackOptionSystem for system fonts
https://bugs.webkit.org/show_bug.cgi?id=199769
<rdar://problem/49390297>

Reviewed by Myles C. Maxfield.

Source/WebCore:

When getting a system font, set the appropriate attribute so that it
does not fallback to a user initiated font.
Add an ASSERT that checks that the font in use is not a user font if
policy is to not use user installed fonts.

Tests: fast/text/user-installed-fonts/extended-character-with-user-font.html

fast/text/user-installed-fonts/extended-character.html

  • platform/graphics/Font.h:
  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForSystemFallback):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):
(WebCore::FontDatabase::singletonAllowingUserInstalledFonts):
(WebCore::FontDatabase::singletonDisallowingUserInstalledFonts):
(WebCore::addAttributesForInstalledFonts):
(WebCore::addAttributesForWebFonts):
(WebCore::installedFontMandatoryAttributes):

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::isUserInstalledFont const):

Source/WTF:

  • wtf/Platform.h:

Tools:

Add a font containing one extended character not found in system fonts.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/fonts/FakeHelvetica-SingleExtendedCharacter.ttf: Added.

LayoutTests:

Tests require WTR and recent MacOS, hence why they are disabled elsewhere.

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • fast/text/user-installed-fonts/extended-character-expected.html: Added.
  • fast/text/user-installed-fonts/extended-character-with-user-font-expected-mismatch.html: Added.
  • fast/text/user-installed-fonts/extended-character-with-user-font.html: Added.
  • fast/text/user-installed-fonts/extended-character.html: Added.
10:44 AM Changeset in webkit [247565] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Regression(r247486) Multiple Layout Tests in http/tests/cache/* are crashing on iOS Debug WK2
https://bugs.webkit.org/show_bug.cgi?id=199892
<rdar://problem/53230217>

Reviewed by Geoffrey Garen.

The StorageManager was unregistering itself as a WorkQueueMessageReceiver on a given IPC
connection too early. As a result, we would sometimes receive a 'StorageManager:DestroyStorageMap'
IPC in NetworkConnectionToWebProcess::didReceiveMessage() with nobody to process it, which would
trigger an assertion. To address the issue, we stop unregistering the StorageManager as a
WorkQueueMessageReceiver inside removeAllowedSessionStorageNamespaceConnection(). Instead, we
let the logic inside processDidCloseConnection() take care of it once the connection closes.

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::processDidCloseConnection):

  • NetworkProcess/WebStorage/StorageManager.h:
10:34 AM Changeset in webkit [247564] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering.html
https://bugs.webkit.org/show_bug.cgi?id=199839

Unreviewed test gardening.

  • platform/ios/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:
7:42 AM Changeset in webkit [247563] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebKit

[GTK] Crash in webkitWebViewBaseRenderHostFileDescriptor
https://bugs.webkit.org/show_bug.cgi?id=199402

Reviewed by Michael Catanzaro.

There are two problems here:

  • We need to ensure that the checks we do in HardwareAccelerationManager to disable AC mode are the same as the ones done in AcceleratedBackingStore create() methods. This is not the case for WPE renderer.
  • Some of the places where accelerateBackingStore is used, can be called even if AC mode is disabled, so we need to null-check there before using the backing store.
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDraw): Add an assert to ensure accelerateBackingStore is not nullptr here.
(webkitWebViewBaseEnterAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseExitAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseMakeGLContextCurrent): Ditto.
(webkitWebViewBaseDidRelaunchWebProcess): Null-check accelerateBackingStore before using it.
(webkitWebViewBasePageClosed): Ditto.
(webkitWebViewBaseRenderHostFileDescriptor): Ditto.

  • UIProcess/gtk/AcceleratedBackingStore.cpp:

(WebKit::AcceleratedBackingStore::checkRequirements): Call AcceleratedBackingStoreWayland::checkRequirements()
or AcceleratedBackingStoreX11::checkRequirements() depending on the current display.
(WebKit::AcceleratedBackingStore::create): Return early if AC mode is disabled in HardwareAccelerationManager.

  • UIProcess/gtk/AcceleratedBackingStore.h:
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::checkRequirements): Check requirements for hardware acceleration in Wayland.
(WebKit::AcceleratedBackingStoreWayland::create): Assert that requirements are present.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::checkRequirements): Check requirements for hardware acceleration in X11.
(WebKit::AcceleratedBackingStoreX11::create): Assert that requirements are present.

  • UIProcess/gtk/AcceleratedBackingStoreX11.h:
  • UIProcess/gtk/HardwareAccelerationManager.cpp:

(WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Use
AcceleratedBackingStore::checkRequirements() to decide whether to disable AC mode.

6:37 AM Changeset in webkit [247562] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] InlineFormattingContext::LineLayout::placeInlineItems is getting too complex.
https://bugs.webkit.org/show_bug.cgi?id=199898
<rdar://problem/53235958>

Reviewed by Antti Koivisto.

It's time to restructure LineLayout::placeInlineItems to be able to expand it further.
Introduce the LineLayout class. This class is responsible to place the inline items on the current line.
(Rename InlineFormattingContext::lineLayout -> InlineFormattingContext::InlineLayout and
use Line::InitialConstraints in LineInput)

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layout const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthConstraints const):

  • layout/inlineformatting/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const): Deleted.

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::inlineItemWidth):
(WebCore::Layout::LineLayout::layoutState const):
(WebCore::Layout::LineLayout::UncommittedContent::runs):
(WebCore::Layout::LineLayout::UncommittedContent::isEmpty const):
(WebCore::Layout::LineLayout::UncommittedContent::size const):
(WebCore::Layout::LineLayout::UncommittedContent::width const):
(WebCore::Layout::LineLayout::UncommittedContent::add):
(WebCore::Layout::LineLayout::UncommittedContent::reset):
(WebCore::Layout::LineLayout::LineLayout):
(WebCore::Layout::LineLayout::commitPendingContent):
(WebCore::Layout::LineLayout::close):
(WebCore::Layout::LineLayout::layout):
(WebCore::Layout::LineInput::LineInput):
(WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::alignRuns const):
(WebCore::Layout::UncommittedContent::runs): Deleted.
(WebCore::Layout::UncommittedContent::isEmpty const): Deleted.
(WebCore::Layout::UncommittedContent::size const): Deleted.
(WebCore::Layout::UncommittedContent::width const): Deleted.
(WebCore::Layout::UncommittedContent::add): Deleted.
(WebCore::Layout::UncommittedContent::reset): Deleted.
(WebCore::Layout::LineInput::HorizontalConstraint::HorizontalConstraint): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::LineLayout): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::layout const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::alignRuns const): Deleted.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Line):

  • layout/inlineformatting/InlineLine.h:
2:34 AM Changeset in webkit [247561] by Konstantin Tokarev
  • 2 edits in trunk/Tools

Unreviewed, Add Olivier Blin as contributor

  • Scripts/webkitpy/common/config/contributors.json:
1:54 AM WebKitGTK/2.24.x edited by berto@igalia.com
(diff)
1:28 AM Changeset in webkit [247560] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] MOUSE_CURSOR_SCALE is not implemented
https://bugs.webkit.org/show_bug.cgi?id=109469

Reviewed by Darin Adler.

.:

Enable MOUSE_CURSOR_SCALE for the GTK port.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Use gdk_cursor_new_from_surface() instead of gdk_cursor_new_from_pixbuf() to avoid the surface to pixbuf
conversion.

  • platform/gtk/CursorGtk.cpp:

(WebCore::createCustomCursor):

Jul 17, 2019:

10:16 PM Changeset in webkit [247559] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Early Out of positionInfomation check if possible
https://bugs.webkit.org/show_bug.cgi?id=199885
<rdar://problem/53229413>

This is an early-out check that happens after most of the work is done.
Move it to happen before we make all these calls, if in the end, we will not use the information.

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

8:34 PM Changeset in webkit [247558] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, add debug logging to help diagnose flaky crashes on the bots.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):

8:25 PM Changeset in webkit [247557] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

[macCatalyst] Unable to interact with YouTube video while it's playing
https://bugs.webkit.org/show_bug.cgi?id=199893
<rdar://problem/51871151>

Reviewed by Simon Fraser.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKRemoteView initWithFrame:contextID:]):
(-[WKUIRemoteView initWithFrame:pid:contextID:]):
Disable remote context hit-testing for WKUIRemoteView just like we
already do for WKRemoteView.

8:05 PM Changeset in webkit [247556] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo port

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
7:52 PM Changeset in webkit [247555] by Chris Dumez
  • 17 edits in trunk/Source

Prewarm local storage in the NetworkProcess to reduce WebContent process hangs
https://bugs.webkit.org/show_bug.cgi?id=199879
<rdar://problem/53217757>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When JS accesses window.localStorage for the first time, we end up doing a
synchronous IPC to the network process to pull in all items in the local
storage for the origin. If the network process does not have this data in
memory, it has to read it from a database on disk, which may take a significant
amount of time and hang the WebContent process during this time.

To alleviate this problem, this patch introduces prewarming on the local storage
in the network process when loading a given origin in the WebContent process.
This way, in most cases, when the JS accesses window.localStorage for the first
time, the synchronous IPC to the network process returns much faster (measured
50-100ms for a very large database, down from 250-300ms), as it only needs to
IPC the data over, without the need to fetch it from disk.

As a safety net to avoid excessive prewarming, we currently prewarm at most 5
security origins per page load.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::prewarmLocalStorageIfNecessary):

  • page/DOMWindow.h:
  • page/Frame.cpp:

(WebCore::Frame::didPrewarmLocalStorage):
(WebCore::Frame::mayPrewarmLocalStorage const):

  • page/Frame.h:
  • storage/Storage.cpp:

(WebCore::Storage::prewarm):

  • storage/Storage.h:
  • storage/StorageArea.h:

(WebCore::StorageArea::prewarm):

Source/WebKit:

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::prewarm):
(WebKit::StorageManager::getValues):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManager.messages.in:
  • WebProcess/WebStorage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::prewarm):

  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::loadValuesIfNeeded):
(WebKit::StorageAreaMap::prewarm):

  • WebProcess/WebStorage/StorageAreaMap.h:
7:29 PM Changeset in webkit [247554] by rmorisset@apple.com
  • 8 edits in trunk

[WHLSL] The lexer should not choke on a single '/'
https://bugs.webkit.org/show_bug.cgi?id=199886

Reviewed by Myles Maxfield.

Source/WebCore:

The bug is trivial: just recognize that a single '/' without a '*' or '/' afterwards is not the beginning of a comment.

While investigating this bug, I also found that part of the parser fails to properly propagate errors, so I fixed it.

New test in LayoutTests/webgpu/whlsl/float-math.html
I also added a new flag to WHLSLPrepare.cpp. It can be used to parse the full standard library (this is how I found this bug in the first place).

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:

(WebCore::WHLSL::Lexer::skipWhitespaceAndComments):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parsePossibleTernaryConditional):

  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp:

(WebCore::WHLSL::prepareShared):

  • Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.cpp:

(WebCore::WHLSL::includeStandardLibrary):

  • Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.h:

LayoutTests:

Added a new basic test of division.

  • webgpu/whlsl/float-math.html:
7:00 PM Changeset in webkit [247553] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r247549.

  • Modules/webgpu/WHLSL/WHLSLRecursiveTypeChecker.cpp:
6:21 PM Changeset in webkit [247552] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Set WordIsNearTap flag, was not being set at all before
https://bugs.webkit.org/show_bug.cgi?id=199880

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):

6:18 PM Changeset in webkit [247551] by rmorisset@apple.com
  • 14 edits
    1 delete in trunk/Source/WebCore

[WHLSL] Remove traps from the compiler
https://bugs.webkit.org/show_bug.cgi?id=195811
<rdar://problem/50746299>

Reviewed by Myles Maxfield.

Remove the Trap statement from the language, see https://github.com/gpuweb/WHLSL/issues/301.

No new tests, as this part of the language was already untested, and we are removing it, not adding anything.

  • Modules/webgpu/WHLSL/AST/WHLSLAST.h:
  • Modules/webgpu/WHLSL/AST/WHLSLStatement.h:

(WebCore::WHLSL::AST::Statement::isSwitchStatement const):

  • Modules/webgpu/WHLSL/AST/WHLSLTrap.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
  • Modules/webgpu/WHLSL/WHLSLASTDumper.cpp:
  • Modules/webgpu/WHLSL/WHLSLASTDumper.h:
  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:

(WebCore::WHLSL::Token::typeName):
(WebCore::WHLSL::Lexer::recognizeKeyword):

  • Modules/webgpu/WHLSL/WHLSLLexer.h:
  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parseStatement):

  • Modules/webgpu/WHLSL/WHLSLParser.h:
  • Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.cpp:
  • Modules/webgpu/WHLSL/WHLSLVisitor.cpp:

(WebCore::WHLSL::Visitor::visit):

  • Modules/webgpu/WHLSL/WHLSLVisitor.h:
  • WebCore.xcodeproj/project.pbxproj:
6:05 PM Changeset in webkit [247550] by clopez@igalia.com
  • 12 edits in trunk/Tools

[GTK][WPE][webkitpy] Refactor drivers to use the base driver for setting up the environment and start the drivers.
https://bugs.webkit.org/show_bug.cgi?id=199855

Reviewed by Michael Catanzaro.

The webkitpy drivers for GTK and WPE use their own versions for setting
up the environment and starting/stopping the drivers.
This refactors those drivers to use the base class driver functions.
As a benefit we get some fixes like support for setting the profiler
environment variables, and a simpler code.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver): This already correctly setups LOCAL_RESOURCE_ROOT and DUMPRENDERTREE_TEMP.
Add the remaining environment variable XDG_CACHE_HOME that is needed for Linux.

  • Scripts/webkitpy/port/headlessdriver.py:

(HeadlessDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/waylanddriver.py:

(WaylandDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/westondriver.py:

(WestonDriver._setup_environ_for_test):
(WestonDriver.stop):

  • Scripts/webkitpy/port/westondriver_unittest.py: now mock _test_runner_process_constructor as base driver does.

(WestonDriverTest.make_driver):

  • Scripts/webkitpy/port/xorgdriver.py:

(XorgDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/xvfbdriver.py: the xvfb binary is started with the port server env

(XvfbDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/xvfbdriver_unittest.py: rename the variable to make clearer that it uses the port server env.

(XvfbDriverTest.make_driver):
(XvfbDriverTest.test_start):
(XvfbDriverTest.test_start_arbitrary_worker_number):

  • Scripts/webkitpy/w3c/wpt_runner.py:

(main): Start the driver before trying to get its environment to define all the environment variables.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:

(WebDriverTestRunner.init): Ditto.

  • glib/api_test_runner.py:

(TestRunner._setup_testing_environment): Ditto.

5:36 PM Changeset in webkit [247549] by rmorisset@apple.com
  • 2 edits in trunk/Source/WebCore

[WHLSL] checkRecursiveType should not have exponential complexity.
https://bugs.webkit.org/show_bug.cgi?id=199835

Reviewed by Myles Maxfield.

The change is very similar to that in https://bugs.webkit.org/show_bug.cgi?id=199688.
Just keep track of which types have already been visited, and don't visit them again.

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/WHLSLRecursiveTypeChecker.cpp:

(WebCore::WHLSL::RecursiveTypeChecker::visit):
(WebCore::WHLSL::checkRecursiveTypes):

5:17 PM Changeset in webkit [247548] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Add missing #include's
https://bugs.webkit.org/show_bug.cgi?id=199856

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2019-07-17
Reviewed by Simon Fraser.

The missing headers were found during development when unified sources changed.

No new tests required. Adding #include's only.

  • Modules/speech/DOMWindowSpeechSynthesis.cpp:
  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:
  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
  • Modules/webgpu/WebGPUCommandEncoder.cpp:
5:15 PM Changeset in webkit [247547] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebKit

Provide a NSURL cateogry to tell AppSSO Kerberos URLs
https://bugs.webkit.org/show_bug.cgi?id=199887
<rdar://problem/52323161>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.mm:

(+[NSURL _web_willPerformSOKerberosAuthorizationWithURL:]):

5:05 PM Changeset in webkit [247546] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Add inputmode to the feature status page
https://bugs.webkit.org/show_bug.cgi?id=199884

Reviewed by Wenson Hsieh.

Added as supported.

  • features.json:
4:58 PM Changeset in webkit [247545] by graouts@webkit.org
  • 12 edits in trunk

Disable Pointer Events prior to watchOS 6
https://bugs.webkit.org/show_bug.cgi?id=199890
<rdar://problem/53206113>

Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:57 PM Changeset in webkit [247544] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

Unable to bring up custom media controls on iOS for video.sina.cn
https://bugs.webkit.org/show_bug.cgi?id=199889
<rdar://problem/51883919>

Reviewed by Dean Jackson.

Source/WebCore:

Videos on video.sina.cn by default have the "controls" attribute and are set not to autoplay. This means that the original state
of the media controls are set to show the built-in media controls and also show the prominent play button to begin playback. The
display of the play button also requires a tap gesture recognizer, which calls preventDefault() when the "touchend" is received
to prevent double-tap-to-zoom, but also has the side-effect of preventing a "click" event from being dispatched for a tap.

The video.sina.cn code would eventually remove the "controls" attribute, which would make the built-in media controls not visible,
but still participate in hit-testing because we keep the shadow DOM around in order to potentially show the Airplay or picture-in-picture
placards. Additionally, we wouldn't disable the tap gesture recognizer when the "controls" attribute was removed.

We now ensure that both gesture recognizers used by iOS inline media controls are only enabled when media controls are visible.

Test: media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls.html

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

(IOSInlineMediaControls.prototype.set showsStartButton):
(IOSInlineMediaControls.prototype.get visible):
(IOSInlineMediaControls.prototype.set visible):
(IOSInlineMediaControls.prototype._updateGestureRecognizers):
(IOSInlineMediaControls.prototype._tapGestureRecognizerStateDidChange):
(IOSInlineMediaControls.prototype._pinchGestureRecognizerStateDidChange):

LayoutTests:

This test replicates the scenario found on video.sina.cn that caused the issue: a <video> element originally has the "controls"
attribute and is not set to autoplay. This means the tap gesture recognizer is created to track a tap for the video to play. Then
the "controls" attribute is removed and we dispatch a tap on the video which would previously have *not* caused a "click" event to
eventually be dispatched on the <video> element since the tap gesture recognizer would call preventDefault(). With this patch applied,
we get the "click" event because the tap gesture recognizer is disabled once the controls are no longer visible.

  • media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls-expected.txt: Added.
  • media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls.html: Added.
4:12 PM Changeset in webkit [247543] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Force useLLInt to true on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=199882
<rdar://problem/53207586>

Reviewed by Yusuke Suzuki.

Some jsc tests set useLLInt=false but on arm64_32 we don't support the JIT.
This causes the option coherency checker to get angry. We should force
useLLInt=true on arm64_32 unless useJIT=true.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

4:03 PM Changeset in webkit [247542] by chris.reid@sony.com
  • 23 edits in trunk

Bytecode cache should use FileSystem
https://bugs.webkit.org/show_bug.cgi?id=199759

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Update bytecode cache to use platform generic FileSystem calls.

  • API/JSScript.mm:
  • CMakeLists.txt:
  • jsc.cpp:
  • runtime/CachePayload.cpp:
  • runtime/CachePayload.h:
  • runtime/CachedBytecode.h:
  • runtime/CachedTypes.cpp:
  • runtime/CachedTypes.h:
  • runtime/CodeCache.cpp:
  • runtime/CodeCache.h:
  • runtime/Completion.cpp:
  • runtime/Completion.h:

Source/WebCore:

  • platform/SharedBuffer.cpp:

Source/WTF:

  • wtf/FileSystem.cpp:
  • wtf/FileSystem.h:

Add support for creating MappedFileData from a preexisting file handle
for use with locked files. Also support creating MappedFileData
with either private or shared mappings.

  • wtf/UUID.cpp:

Avoid ASSERT with returning a LazyNeverDestroyed object that hasn't been created.

  • wtf/glib/FileSystemGlib.cpp:
  • wtf/win/FileSystemWin.cpp:

Add truncateFile implementations.

Tools:

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:
4:01 PM Changeset in webkit [247541] by Alan Bujtas
  • 5 edits in trunk/Source

Unable to tap buttons at top of Wells Fargo app’s Payees screen
https://bugs.webkit.org/show_bug.cgi?id=199846
<rdar://problem/48112220>

Reviewed by Simon Fraser.

Source/WebCore:

This patch restores the stop-before-reaching-the-body heuristics for the approximate node finding feature only.
(WebFrame::approximateNodeAtViewportLocation mistakenly relied on this odd quirk of nodeRespondingToClickEvents.)

  • page/Frame.h:
  • page/ios/FrameIOS.mm:

(WebCore::Frame::approximateNodeAtViewportLocationLegacy):

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame approximateNodeAtViewportLocation:]):

3:49 PM Changeset in webkit [247540] by Simon Fraser
  • 14 edits
    4 adds in trunk

[iOS WK2] Avoid lots of compositing backing store for offscreen position:fixed descendants
https://bugs.webkit.org/show_bug.cgi?id=199819
rdar://problem/51977416

Reviewed by Zalan Bujtas.

Source/WebCore:

There was code to ensure that position:fixed layers and their descendants don't have their
backing store detached (thrown away to save memory when offscreen), since that can trigger
flashing when async scrolling moves layers in and out of the visual viewport.

However, some pages have many descendant layers of positon:fixed which entrain backing
store, because, for example, they have a stack of translated-offscreen menu elements inside
a fixed header, and those elements may composite because of overflow:scroll.

To avoid using too much memory on such pages, allow backing store detachment for fixed
layers that are outside the layout viewport. Add a flag to RenderLayer that's set for layers
which are fixed, or descendants of fixed, and consult that flag in
updateAllowsBackingStoreDetaching(). The logic there is similar to
RenderLayerCompositor::requiresCompositingForPosition().

I considered allowing all position:fixed to composite (since this patch would keep most of
the memory saving), but historically we've avoided compositing out-of-viewport
position:fixed because it's quite common to have them with negative z-index, and compositing
those has significant compositing knock-on effects.

GraphicsLayer flushing no longer needs to track the viewport-constrained status of layers,
so remove that code.

This patch removes backing-store pinning for sticky layers.
scrolling/ios/reconcile-layer-position-recursive.html then revealed a bug in
ScrollingStateStickyNode::reconcileLayerPositionForViewportRect(), which was assuming that
the sticky element was scrolled by the page, causing a bad layer position to get sync'd onto
the layer. Fixed by copying code from ScrollingTreeStickyNode that is smarter about
computing layer positions.

This patch fixes jetsams on kmart.com.au in iOS 13 beta.

Test: compositing/layer-creation/fixed-position-descendants-out-of-view.html

  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::computeLayerPosition const):
(WebCore::ScrollingStateStickyNode::reconcileLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateStickyNode.h:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setAllowsBackingStoreDetaching):
(WebCore::GraphicsLayer::allowsBackingStoreDetaching const):
(WebCore::GraphicsLayer::setIsViewportConstrained): Deleted.
(WebCore::GraphicsLayer::isViewportConstrained const): Deleted.
(WebCore::GraphicsLayer::setCanDetachBackingStore): Deleted.
(WebCore::GraphicsLayer::canDetachBackingStore const): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::updateCoverage):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::outputPaintOrderTreeLegend):
(WebCore::outputPaintOrderTreeRecursive):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAllowsBackingStoreDetaching):
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
(WebCore::RenderLayerBacking::setIsScrollCoordinatedWithViewportConstrainedRole): Deleted.

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition const):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::updateScrollCoordinationForLayer):

LayoutTests:

  • compositing/layer-creation/fixed-position-change-out-of-view-in-view.html:
  • compositing/layer-creation/fixed-position-descendants-out-of-view-expected.txt: Added.
  • compositing/layer-creation/fixed-position-descendants-out-of-view.html: Added.
  • compositing/layer-creation/fixed-position-out-of-view.html:
  • platform/ios-wk2/fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt: Added.
2:46 PM Changeset in webkit [247539] by commit-queue@webkit.org
  • 7 edits in trunk/LayoutTests

Add a runtime-disabled dialog element skeleton
https://bugs.webkit.org/show_bug.cgi?id=199839

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-17
Reviewed by Ryosuke Niwa.

Rebaseline WK2 test expectations.

  • platform/ios-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
2:40 PM Changeset in webkit [247538] by Jonathan Bedard
  • 4 edits in trunk/Tools

check-webkit-style: Add limited Python3 support
https://bugs.webkit.org/show_bug.cgi?id=199870

Rubber-stamped by Aakash Jain.

Since new services will be added in the near future which are Python 3, we
need to support Python 3 style checks. For now, assume all Python files are
Python 2 unless otherwise specified.

  • Scripts/webkitpy/style/checker.py:

(_all_categories): Add pycodestyle to valid categories for testing.
(CheckerDispatcher._create_checker): Check that the provided Python file is in
one of the declared Python 3 directories.

  • Scripts/webkitpy/style/checkers/python.py:

(Python3Checker): Add Python 3 checker, which doesn't lint and uses pycodestyle
instead of pep8.
(Python3Checker.init):
(Python3Checker.check):

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Support auto-installing pycodestyle.
(AutoinstallImportHook._install_pycodestyle):

2:18 PM Changeset in webkit [247537] by weinig@apple.com
  • 11 edits
    1 add in trunk

Add StringBuilder member function which allows makeString() style variadic argument construction
https://bugs.webkit.org/show_bug.cgi?id=198997

Reviewed by Darin Adler.

Source/WTF:

Adds new StringBuilder::flexibleAppend(...) member function which allows passing one or more
string-adaptable (in the sense that there is StringTypeAdapter specialization for the
type) parameters. This re-ususes the variadic template infrastructure in StringConcatenate.h
that is used for makeString(...) allowing for improvements in one to benefit the other.

The advantage of StringBuilder::flexibleAppend(...) over calling StringBuilder::append(...)
multiple times (beyond the code sharing with makeString(...) is that it can avoid unnecessary
additional re-allocations when the StringBuilder needs to expand it's capacity. It does this
by computing the complete required length for all the passed arguments and then ensuring enough
capacity is available. It also reduces the allocation overhead versus the anti-pattern of
builder.append(makeString(...)).

Ideally, this member function should eventually just be called StringBuilder::append(...), but
the current overload set for StringBuilder::append(...) makes this complicated due to overloads
that take two arguments such as StringBuilder::append(const UChar*, unsigned). Going forward, we
should rename or remove those overloads and move to a standard interface.

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::pathByAppendingComponents):
Adopt StringBuilder::flexibleAppend, using to combine the append of '/' and component.

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendUninitialized):
(WTF::StringBuilder::appendUninitializedWithoutOverflowCheck):
Extract the part of appendUnitialized that doesn't do the overflow check
into it's own member function to allow callers that have already done the
overflow check to bypass it.

(WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForUChar):
(WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForLChar):
Added to allow template member function flexibleAppendFromAdapters to call
appendUninitializedWithoutOverflowCheck without moving it to the header.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::flexibleAppendFromAdapters):
(WTF::StringBuilder::flexibleAppend):
Modeled on tryMakeStringFromAdapters in StringConcatenate.h, these
eagerly compute the required length, expand the buffer and then use
the existing string type adaptor accumulation functions used by makeString.

  • wtf/text/StringConcatenate.h:

(WTF::stringTypeAdapterAccumulator):
(WTF::tryMakeStringFromAdapters):
(WTF::makeStringAccumulator): Deleted.
Renames makeStringAccumulator to stringTypeAdapterAccumulator now that it is used
by more than just makeString.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

Add basic test showing that StringBuilder::flexibleAppend can be used to
append one or more string adaptable types.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add WTFStringUtilities.cpp

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

Add basic test showing that StringBuilder::flexibleAppend can be used to
append one or more string adaptable types.

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:
  • TestWebKitAPI/WTFStringUtilities.cpp: Added.
  • TestWebKitAPI/WTFStringUtilities.h:

Move WTF_STRINGTYPEADAPTER_COPIED_WTF_STRING() and wtfStringCopyCount to WTFStringUtilities.h/cpp
to allow for a single definition of StringTypeAdapter<String, void> which is required for ODR.

2:11 PM Changeset in webkit [247536] by rniwa@webkit.org
  • 2 edits
    1 delete in trunk/Tools

Remove the file superfluously added in r247535.

  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.h: Removed.
  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.mm:
1:46 PM Changeset in webkit [247535] by aboya@igalia.com
  • 6 edits in trunk/LayoutTests

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

  • platform/gtk/TestExpectations:
  • platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt:
  • platform/gtk/fast/events/shadow-event-path-2-expected.txt:
  • platform/gtk/fast/events/shadow-event-path-expected.txt:
  • platform/wpe/TestExpectations:
1:43 PM Changeset in webkit [247534] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Avoid unnecessary copy of monitors under DisplayRefreshMonitorManager::displayWasUpdated()
https://bugs.webkit.org/show_bug.cgi?id=199847

Reviewed by Said Abou-Hallawa.

There is always one one monitor in m_monitors for a given displayID so there is
no need to copy the monitors inside DisplayRefreshMonitorManager::displayWasUpdated()
and no need to iterate over all of them. This patch also factors a bit differently
so that it becomes more obvious.

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::unregisterClient):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):
(WebCore::DisplayRefreshMonitorManager::displayWasUpdated):
(WebCore::DisplayRefreshMonitorManager::findMonitorForDisplay const):
(WebCore::DisplayRefreshMonitorManager::monitorForDisplay const):

  • platform/graphics/DisplayRefreshMonitorManager.h:
1:39 PM Changeset in webkit [247533] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: application/xml content not shown
https://bugs.webkit.org/show_bug.cgi?id=199861

Patch by Olivier Blin <Olivier Blin> on 2019-07-17
Reviewed by Devin Rousso.

Source/WebInspectorUI:

application/xml content from XHR requests was not shown in the
inspector, an error message was displayed instead.

application/xml content should be treated as text, since
application/xml is the standard mimetype for XML content.
Apache serves XML content with the application/xml mimetype by
default.

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.fileExtensionForMIMEType):
Report "xml" extension for "application/xml" mimetype.
(WI.shouldTreatMIMETypeAsText):
Treat XML files as text.

LayoutTests:

  • inspector/unit-tests/mimetype-utilities-expected.txt:
  • inspector/unit-tests/mimetype-utilities.html:

Test for shouldTreatMIMETypeAsText.

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

ArgumentsEliminationPhase should insert KillStack nodes before PutStack nodes that it adds.
https://bugs.webkit.org/show_bug.cgi?id=199821
<rdar://problem/52452328>

Reviewed by Filip Pizlo.

JSTests:

  • stress/arguments-elimination-should-insert-KillStacks-before-added-PutStacks.js: Added.

Source/JavaScriptCore:

Excluding the ArgumentsEliminationPhase, PutStack nodes are converted from SetLocal
nodes in the SSAConversionPhase. SetLocal nodes are always preceded by MovHint nodes,
and the SSAConversionPhase always inserts a KillStack node before a MovHint node.
Hence, a PutStack node is always preceded by a KillStack node.

However, the ArgumentsEliminationPhase can convert LoadVarargs nodes into a series
of one or more PutStacks nodes, and it prepends MovHint nodes before the PutStack
nodes. However, it neglects to prepend KillStack nodes as well. Since the
ArgumentsEliminationPhase runs after the SSAConversionPhase, the PutStack nodes
added during ArgumentsElimination will not be preceded by KillStack nodes.

This patch fixes this by inserting a KillStack in the ArgumentsEliminationPhase
before it inserts a MovHint and a PutStack node.

Consider this test case which can manifest the above issue as a crash:

function inlinee(value) {

...
let tmp = value + 1;

}

function reflect() {

return inlinee.apply(undefined, arguments);

}

function test(arr) {

let object = inlinee.apply(undefined, arr); Uses a lot of SetArgumentMaybe nodes.
reflect();
Calls with a LoadVararg, which gets converted into a PutStack of a constant.

}

In this test case, we have a scenario where a SetArgumentMaybe's stack
slot is reused as the stack slot for a PutStack later. Here, the PutStack will
put a constant undefined value. Coincidentally, the SetArgumentMaybe may also
initialize that stack slot to a constant undefined value. Note that by the time
the PutStack executes, the SetArgumentMaybe's stack slot is dead. The liveness of
these 2 values are distinct.

However, because we were missing a KillStack before the PutStack, OSR availability
analysis gets misled into thinking that the PutStack constant value is still in the
stack slot because the value left there by the SetArgumentMaybe hasn't been killed
off yet. As a result, OSR exit code will attempt to recover the PutStack's undefined
constant by loading from the stack slot instead of materializing it. Since
SetArgumentMaybe may not actually initialize the stack slot, we get a crash in OSR
exit when we try to recover the PutStack constant value from the stack slot, and
end up using what ever junk value we read from there.

Fixing the ArgumentsEliminationPhase to insert KillStack before the PutStack
removes this conflation of the PutStack's constant value with the SetArgumentMaybe's
constant value in the same stack slot. And, OSR availability analysis will no
longer be misled to load the PutStack's constant value from the stack, but will
materialize the constant instead.

  • dfg/DFGArgumentsEliminationPhase.cpp:
1:27 PM Changeset in webkit [247531] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

IndexedDB: error in starting version change transaction may be neglected
https://bugs.webkit.org/show_bug.cgi?id=199818
<rdar://problem/52925738>

Reviewed by Brady Eidson.

For version change transaction, IDBServer didn't wait the result of beginTransaction on the background thread
before giving the IDBClient the result of open request. In this case, beginTransaction may fail to update the
DatabaseVersion in database file or set m_originalDatabaseInfoBeforeVersionChange, but the transaction was
marked as started. When we later set m_databaseInfo with m_originalDatabaseInfoBeforeVersionChange,
m_databaseInfo could become nullptr.

To write a test for this, we will need to simulate an SQLite error. I manually tested this by crafting the
SQLiteStatement in beginTransaction, making it an invalid statement, and verified that error event, instead of
ungradeneeded event is dispatched to the IDBRequest.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performStartVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformStartVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::beginTransactionInBackingStore): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
1:06 PM Changeset in webkit [247530] by dbates@webkit.org
  • 15 edits
    4 adds in trunk

Typing into a cell in a Google Sheet lags behind by one character
https://bugs.webkit.org/show_bug.cgi?id=199587
<rdar://problem/51616845>

Reviewed by Brent Fulgham.

Source/WebCore:

Add a Google Sheets quirk. Put all DOM timers scheduled from keydown and keypress event listeners
into a holding tank. The timers continue to tick, but are barred from executing their action until
the next text insertion or deletion or 32 ms (on device) have elapsed, whichever is sooner. We only
allocate a holding tank once per document, only if the quirk is active, and this allocation is done
when the document schedules a timer on keydown or keypress. The holding tank lives for the lifetime
of the document.

The story behind the quirk:

On keypress Google Sheets schedules timers and expects that a DOM update will occur (i.e. text
will be inserted or deleted) within the same event loop iteration as the dispatched keypress. The
UI Events spec. [1] makes no such guarantee of when a DOM update must occur in relation to the keypress
event. It could happen in the same event loop iteration as the key press (as Google expects), the
next iteration, 500ms later, 2 minutes later, etc. What the spec does guarantee is that by the time
a DOM input event is dispatched that the DOM will be updated. And this is the solution to the problem
Google Sheets is trying to solve, but is doing so using pre-IE 9 technology (though similar
functionality was available via onpropertychange in IE < 9).

See also <https://github.com/w3c/uievents/issues/238>, which is tracking a spec. text update for
this quirk.

Test: fast/events/ios/dom-update-on-keydown-quirk.html

[1] <https://w3c.github.io/uievents/> (Editor's Draft, 14 October 2018)

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add some files to the project.

  • dom/Document.cpp:

(WebCore::Document::domTimerHoldingTank): Added.

  • dom/Document.h:

(WebCore::Document::domTimerHoldingTankIfExists): Added.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install): Put the newly instantiated timer into the holding tank.
(WebCore::DOMTimer::removeById): Remove the timer from the holding tank.
(WebCore::DOMTimer::fired): Check if the timer is in the holding tank. If it is and it is a one-
shot timer then schedule it for the next event loop iteration. If it's a repeating timer just
let it continue ticking. Otherwise, do what we no now and execute the timer's action. The reason
we do not suspend timers in the holding tank is because:

  1. Far out timers (Google Sheets registers timers as far out as 5 minutes!) are not penalized. Though smart supension logic could avoid this. See (3).
  1. Empirical observations indicate that the keyboard will perform the insertion or deletion reasonably quickly (not the same event loop iteration as the keydown, but within two iterations out). So, the timers in the holding tank are short-lived.
  1. Simplifies the code. There is no need to keep additional bookkeeping to track multiple timer suspension reasons (timers currently can only have one suspension reason) or alternatively defer scheduling a timer until a later time and computing a new "fair" firing time when scheduled.
  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent): Place a token on the stack to put all DOM timers
scheduled on keydown and keypress into the holding tank if the quirk is enabled.

  • page/Quirks.cpp:

(WebCore::Quirks::needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommand const): Added.

  • page/Quirks.h:
  • page/Settings.yaml: Added setting so that this quirk can be enabled from a layout test. This setting

also lets us enable the quirk for all sites or for certain third-party apps if desired.

  • page/ios/DOMTimerHoldingTank.cpp: Added.

(WebCore::DOMTimerHoldingTank::DOMTimerHoldingTank):
(WebCore::DOMTimerHoldingTank::add):
(WebCore::DOMTimerHoldingTank::remove):
(WebCore::DOMTimerHoldingTank::contains):
(WebCore::DOMTimerHoldingTank::removeAll):
(WebCore::DOMTimerHoldingTank::stopExceededMaximumHoldTimer):

  • page/ios/DOMTimerHoldingTank.h: Added.

(WebCore::DeferDOMTimersForScope::DeferDOMTimersForScope):
(WebCore::DeferDOMTimersForScope::~DeferDOMTimersForScope):
(WebCore::DeferDOMTimersForScope::isDeferring):

Source/WebKit:

Remove all timers from the holding tank on text insertion or deletion (represented as an
editing command). Timers that were in the holding tank never stopped ticking and will now
be able to execute their action.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::executeEditingCommand):
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::setCompositionAsync):
(WebKit::WebPage::confirmCompositionAsync):
Call platformWillPerformEditingCommand().

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::platformWillPerformEditingCommand): Added.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand): Remove all the timers from the holding
tank if we have a holding tank.

LayoutTests:

Add a test that enables the quirk and ensures that the DOM is up-to-date on expiration of a
zero timer scheduled from keydown, keypress, keyup, and input.

  • fast/events/ios/dom-update-on-keydown-quirk-expected.txt: Added.
  • fast/events/ios/dom-update-on-keydown-quirk.html: Added.
1:02 PM Changeset in webkit [247529] by Darin Adler
  • 27 edits in trunk/Source

No need for isURLAllowed function in Frame
https://bugs.webkit.org/show_bug.cgi?id=120266

Reviewed by Alex Christensen.

Source/WebCore:

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFullScreenPseudoClass): Use is<> instead of
the isFrameElementBase function. Also updated includes and spacing.

  • dom/Document.cpp:

(WebCore::Document::resolveStyle): Shortened an old, long comment
that happened to mention HTMLFrameElementBase::isURLAllowed by name.

  • dom/Element.h: Deleted isFrameElementBase.
  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::updateWidget): Tweaked comment.

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedIntoAncestor): Moved comment from
here to didFinishInsertingNode, since the code it's talking about is there.
Also got rid of unnecessary local variable.
(WebCore::HTMLBodyElement::didFinishInsertingNode): Moved comment here
and elaborated a bit. Also changed the code to copy margin attributes in a
simpler way without requiring special getter functions. There is a slight
behavior change here, but seems unlikely to affect any websites or tests.
Would be good to add better test coverage, which I think should be done
when fixing the problems described in the FIXME.

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::updateWidget): allowedToLoadFrameURL -> canLoadURL
Also Tweaked comments.

  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::rendererIsNeeded): isURLAllowed -> canLoad

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::HTMLFrameElementBase): Removed initial
values for no-longer-needed data members.

(WebCore::HTMLFrameElementBase::canLoadScriptURL const): Renamed from
isURLAllowed. Also refactored so it now calls canLoadURL.
(WebCore::HTMLFrameElementBase::canLoad const): Renamed from isURLAllowed.
Also added FIXME comments about multiple ways that this code incorrectly
handles the empty string. Might inspire some tests and future fixes.
(WebCore::HTMLFrameElementBase::canLoadURL const): Renamed from isURLAllowed.
Added an overload that takes a relative URL string largely to make this
more parallel with the similar code in HTMLPlugInImageElement. Refactored
to call canAddSubframe and isProhibitedSelfReference, removing the need
to call Frame::isURLAllowed.
(WebCore::HTMLFrameElementBase::openURL): isURLAllowed -> canLoad
(WebCore::HTMLFrameElementBase::parseAttribute): Removed unneeded code
to parse marginwidth, marginheight, and scrolling, which are now done
as needed instead. Might have to add code back if we ever add code to
make these cause dynamic updates when changed, but that was not the
behavior of the existing code.
(WebCore::HTMLFrameElementBase::scrollingMode const): Changed to call
attributeWithoutSynchronization rather than reading from a data member.

  • html/HTMLFrameElementBase.h: Moved scrollingMode into the .cpp file.

Removed marginWidth and marginHeight since they are no longer called.
Made canContainRangeEndPoint override be private. Renamed isURLAllowed
to canLoad/canLoadScriptURL/canLoadURL. Removed unneeded isFrameElementBase
since is<HTMLFrameElementBase> already works without it. Removed unneeded
data members m_scrolling, m_marginWidth, and m_marginHeight.

  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Moved initialization
of m_contentFrame and m_sandboxFlags to the header.
(WebCore::HTMLFrameOwnerElement::clearContentFrame): 0 -> nullptr
(WebCore::HTMLFrameOwnerElement::canAddSubframe const): Added. Code was moved
here from multiple functions that enforced the subframe count limit.
(WebCore::HTMLFrameOwnerElement::isProhibitedSelfReference const): Added.
Moved code here from Frame::isURLAllowed so it's easy to use as needed.

  • html/HTMLFrameOwnerElement.h: Renamed isURLAllowed to canLoadScriptURL.

Added protected canAddSubframe and isProhibitedSelfReference functions.
Initialized the data members here.

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::sandbox): Added braces for multi-line if statement.
(WebCore::HTMLIFrameElement::parseAttribute): Removed unneeded storage of the
allow attribute value. Added missing code to invalidate m_featurePolicy when
the allow attribute changes. This could change behavior, but unlikely to affect
any websites of tests. Would be good to add a test for this.
(WebCore::HTMLIFrameElement::rendererIsNeeded): isURLAllowed -> canLoad. Also
reordered the code to be more efficient for display: none (why not?).
(WebCore::HTMLIFrameElement::featurePolicy const): Use attributeWithoutSynchronization
to read the allow attribute rather than using a data member.

  • html/HTMLIFrameElement.h: Removed the unneeded allow function member and

m_allow data member since DOM reflection takes care of the function and the
featurePolicy function can get the attribute without a data member.

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::updateWidget): allowedToLoadFrameURL -> canLoadURL
Also tweaked comments.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::canLoadScriptURL const): Added. Code moved here
from HTMLFrameOwnerElement::isURLAllowed. Added comment about why this is not
necessarily correct and might need improvement.

  • html/HTMLPlugInElement.h: Added private override of canLoadScriptURL.
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::canLoadURL const): Renamed from
allowedToLoadFrameURL and refactored into two functions to match the
structure of the similar function in HTMLFrameElementBase. Also refactored
to use canAddSubframe and isProhibitedSelfReference rather than Frame::isURLAllowed.
(WebCore::HTMLPlugInImageElement::canLoadPlugInContent const): Renamed from
allowedToLoadPluginContent.
(WebCore::HTMLPlugInImageElement::requestObject): allowedToLoadPluginContent
-> canLoadPlugInContent

  • html/HTMLPlugInImageElement.h: Renamed functions as mentioned above.
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::requestFrame): isURLAllowed -> canLoadScriptURL

  • page/FocusController.h: Removed unneeded forward declaration of HTMLFrameOwnerElement.
  • page/Frame.cpp:

(WebCore::Frame::isURLAllowed const): Deleted.

  • page/Frame.h: Ditto.
  • page/FrameView.cpp:

(WebCore::FrameView::init): Removed code to initialize m_margins, since nothing
was looking at it after that.
(WebCore::FrameView::setMarginWidth): Deleted.
(WebCore::FrameView::setMarginHeight): Deleted.

  • page/FrameView.h: Removed marginWidth, marginHeight, setMarginWidth,

setMarginHeight, and m_margins because there was no code anywhere calling
marginWidth or marginHeight, and no other side effects of these functions.

Source/WebKit:

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
Use is<HTMLFrameElementBase> instead of isFrameElementBase.

12:37 PM Changeset in webkit [247528] by mmaxfield@apple.com
  • 4 edits
    56 copies
    182 moves
    3 adds
    23 deletes in trunk/LayoutTests

[WHLSL] Move WHLSL tests to their own folder
https://bugs.webkit.org/show_bug.cgi?id=199838

Reviewed by Robin Morisset.

webgpu/whlsl-foo.html => webgpu/whlsl/foo.html

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webgpu/msl-harness-test.html:
  • webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html: Removed.
  • webgpu/whlsl-buffer-fragment-expected.html: Removed.
  • webgpu/whlsl-buffer-vertex-expected.html: Removed.
  • webgpu/whlsl-dereference-pointer-should-type-check-expected.html: Removed.
  • webgpu/whlsl-do-while-loop-continue-expected.html: Removed.
  • webgpu/whlsl-do-while-loop-expected.html: Removed.
  • webgpu/whlsl-dont-crash-parsing-enum-expected.html: Removed.
  • webgpu/whlsl-dot-expressions-expected.html: Removed.
  • webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html: Removed.
  • webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html: Removed.
  • webgpu/whlsl-ensure-proper-variable-lifetime-expected.html: Removed.
  • webgpu/whlsl-expected.html: Removed.
  • webgpu/whlsl-loops-expected.html: Removed.
  • webgpu/whlsl-nested-dot-expression-rvalue-expected.html: Removed.
  • webgpu/whlsl-return-local-variable-expected.html: Removed.
  • webgpu/whlsl-store-to-property-updates-properly-expected.html: Removed.
  • webgpu/whlsl-textures-load-expected.html: Removed.
  • webgpu/whlsl-textures-sample-expected.html: Removed.
  • webgpu/whlsl-while-loop-break-expected.html: Removed.
  • webgpu/whlsl-while-loop-continue-expected.html: Removed.
  • webgpu/whlsl-zero-initialize-values-2-expected.html: Removed.
  • webgpu/whlsl-zero-initialize-values-expected.html: Removed.
  • webgpu/whlsl/arbitrary-vertex-attribute-locations-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
  • webgpu/whlsl/arbitrary-vertex-attribute-locations.html: Renamed from LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations.html.
  • webgpu/whlsl/argument-evaluation-order-expected.txt: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order-expected.txt.
  • webgpu/whlsl/argument-evaluation-order.html: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order.html.
  • webgpu/whlsl/array-length-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests-expected.txt.
  • webgpu/whlsl/array-length-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests.html.
  • webgpu/whlsl/array-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests-expected.txt.
  • webgpu/whlsl/array-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests.html.
  • webgpu/whlsl/bad-add-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-add-expected.txt.
  • webgpu/whlsl/bad-add.html: Renamed from LayoutTests/webgpu/whlsl-bad-add.html.
  • webgpu/whlsl/bad-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-ander-expected.txt.
  • webgpu/whlsl/bad-ander.html: Renamed from LayoutTests/webgpu/whlsl-bad-ander.html.
  • webgpu/whlsl/bad-literals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-literals-expected.txt.
  • webgpu/whlsl/bad-literals.html: Renamed from LayoutTests/webgpu/whlsl-bad-literals.html.
  • webgpu/whlsl/bitwise-bool-ops-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops-expected.txt.
  • webgpu/whlsl/bitwise-bool-ops.html: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops.html.
  • webgpu/whlsl/bools-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bools-expected.txt.
  • webgpu/whlsl/bools.html: Renamed from LayoutTests/webgpu/whlsl-bools.html.
  • webgpu/whlsl/buffer-fragment-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-expected.html.
  • webgpu/whlsl/buffer-fragment.html: Renamed from LayoutTests/webgpu/whlsl-buffer-fragment.html.
  • webgpu/whlsl/buffer-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-buffer-length-expected.txt.
  • webgpu/whlsl/buffer-length.html: Renamed from LayoutTests/webgpu/whlsl-buffer-length.html.
  • webgpu/whlsl/buffer-vertex-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels-expected.html.
  • webgpu/whlsl/buffer-vertex.html: Renamed from LayoutTests/webgpu/whlsl-buffer-vertex.html.
  • webgpu/whlsl/builtin-vectors-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2-expected.txt.
  • webgpu/whlsl/builtin-vectors-2.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2.html.
  • webgpu/whlsl/builtin-vectors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-expected.txt.
  • webgpu/whlsl/builtin-vectors.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors.html.
  • webgpu/whlsl/casts-expected.txt: Renamed from LayoutTests/webgpu/whlsl-casts-expected.txt.
  • webgpu/whlsl/casts.html: Renamed from LayoutTests/webgpu/whlsl-casts.html.
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt.
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html.
  • webgpu/whlsl/comment-parsing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-comment-parsing-expected.txt.
  • webgpu/whlsl/comment-parsing.html: Renamed from LayoutTests/webgpu/whlsl-comment-parsing.html.
  • webgpu/whlsl/compute-expected.txt: Renamed from LayoutTests/webgpu/whlsl-compute-expected.txt.
  • webgpu/whlsl/compute.html: Renamed from LayoutTests/webgpu/whlsl-compute.html.
  • webgpu/whlsl/copy-expected.txt: Renamed from LayoutTests/webgpu/whlsl-copy-expected.txt.
  • webgpu/whlsl/copy.html: Renamed from LayoutTests/webgpu/whlsl-copy.html.
  • webgpu/whlsl/dereference-ordering-expected.txt: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering-expected.txt.
  • webgpu/whlsl/dereference-ordering.html: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering.html.
  • webgpu/whlsl/dereference-pointer-should-type-check-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-lvalue-expected.html.
  • webgpu/whlsl/dereference-pointer-should-type-check.html: Renamed from LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check.html.
  • webgpu/whlsl/do-while-loop-break-expected.html: Copied from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
  • webgpu/whlsl/do-while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break.html.
  • webgpu/whlsl/do-while-loop-continue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/getter-expected.html.
  • webgpu/whlsl/do-while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-continue.html.
  • webgpu/whlsl/do-while-loop-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html.
  • webgpu/whlsl/do-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop.html.
  • webgpu/whlsl/dont-crash-parsing-enum-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-expected.html.
  • webgpu/whlsl/dont-crash-parsing-enum.html: Renamed from LayoutTests/webgpu/whlsl-dont-crash-parsing-enum.html.
  • webgpu/whlsl/dot-expressions-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html.
  • webgpu/whlsl/dot-expressions.html: Renamed from LayoutTests/webgpu/whlsl-dot-expressions.html.
  • webgpu/whlsl/double-not-expected.txt: Renamed from LayoutTests/webgpu/whlsl-double-not-expected.txt.
  • webgpu/whlsl/double-not.html: Renamed from LayoutTests/webgpu/whlsl-double-not.html.
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt.
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html.
  • webgpu/whlsl/duplicates-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicates-expected.txt.
  • webgpu/whlsl/duplicates.html: Renamed from LayoutTests/webgpu/whlsl-duplicates.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-2-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-expected.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-2.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-2.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-3-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-getter-expected.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-3.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-3.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime.html.
  • webgpu/whlsl/enum-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests-expected.txt.
  • webgpu/whlsl/enum-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests.html.
  • webgpu/whlsl/equality-expected.txt: Renamed from LayoutTests/webgpu/whlsl-equality-expected.txt.
  • webgpu/whlsl/equality.html: Renamed from LayoutTests/webgpu/whlsl-equality.html.
  • webgpu/whlsl/float-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-float-math-expected.txt.
  • webgpu/whlsl/float-math.html: Renamed from LayoutTests/webgpu/whlsl-float-math.html.
  • webgpu/whlsl/getter-setter-type-expected.txt: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type-expected.txt.
  • webgpu/whlsl/getter-setter-type.html: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type.html.
  • webgpu/whlsl/huge-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-huge-array-expected.txt.
  • webgpu/whlsl/huge-array.html: Renamed from LayoutTests/webgpu/whlsl-huge-array.html.
  • webgpu/whlsl/if-statement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-if-statement-expected.txt.
  • webgpu/whlsl/if-statement.html: Renamed from LayoutTests/webgpu/whlsl-if-statement.html.
  • webgpu/whlsl/increment-decrement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-increment-decrement-expected.txt.
  • webgpu/whlsl/increment-decrement.html: Renamed from LayoutTests/webgpu/whlsl-increment-decrement.html.
  • webgpu/whlsl/index-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-ander-expected.txt.
  • webgpu/whlsl/index-ander.html: Renamed from LayoutTests/webgpu/whlsl-index-ander.html.
  • webgpu/whlsl/index-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter-expected.txt.
  • webgpu/whlsl/index-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter.html.
  • webgpu/whlsl/index-setter-getter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter-expected.txt.
  • webgpu/whlsl/index-setter-getter.html: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter.html.
  • webgpu/whlsl/int-bit-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-bit-math-expected.txt.
  • webgpu/whlsl/int-bit-math.html: Renamed from LayoutTests/webgpu/whlsl-int-bit-math.html.
  • webgpu/whlsl/int-literal-compare-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare-expected.txt.
  • webgpu/whlsl/int-literal-compare.html: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare.html.
  • webgpu/whlsl/js/test-harness.js: Renamed from LayoutTests/webgpu/js/whlsl-test-harness.js.

(isScalar):
(convertTypeToArrayType):
(convertTypeToWHLSLType):
(whlslArgumentType):
(convertToWHLSLOutputType):
(convertToWHLSLInputType):
(WebGPUUnsupportedError):
(Data):
(Data.prototype.async.getArrayBuffer):
(Data.prototype.get type):
(Data.prototype.get isBuffer):
(Data.prototype.get buffer):
(Data.prototype.get byteLength):
(Harness):
(Harness.prototype.async.requestDevice):
(Harness.prototype.set isWHLSL):
(Harness.prototype.get isWHLSL):
(Harness.prototype.async.callTypedFunction):
(Harness.prototype.callVoidFunction):
(Harness.prototype.async.checkCompileFail):
(Harness.prototype.get device):
(Harness.prototype._clearResults):
(Harness.prototype._setUpArguments):
(Harness.prototype.async._callFunction):
(makeBool):
(makeInt):
(makeUchar):
(makeUint):
(makeFloat):
(makeFloat4):
(makeFloat4x4):
(processArrays):
(async.callBoolFunction):
(async.callIntFunction):
(async.callUcharFunction):
(async.callUintFunction):
(async.callFloatFunction):
(async.callFloat4Function):
(async.callFloat4x4Function):
(async.checkFail):
(callVoidFunction):
(const.webGPUPromiseTest):

  • webgpu/whlsl/logical-negation-expected.txt: Renamed from LayoutTests/webgpu/whlsl-logical-negation-expected.txt.
  • webgpu/whlsl/logical-negation.html: Renamed from LayoutTests/webgpu/whlsl-logical-negation.html.
  • webgpu/whlsl/loops-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-break-expected.html.
  • webgpu/whlsl/loops-break.html: Renamed from LayoutTests/webgpu/whlsl-loops-break.html.
  • webgpu/whlsl/loops-continue-expected.html: Copied from LayoutTests/webgpu/whlsl-nested-loop-expected.html.
  • webgpu/whlsl/loops-continue.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue.html.
  • webgpu/whlsl/loops-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html.
  • webgpu/whlsl/loops-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests-expected.txt.
  • webgpu/whlsl/loops-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests.html.
  • webgpu/whlsl/loops.html: Renamed from LayoutTests/webgpu/whlsl-loops.html.
  • webgpu/whlsl/lots-of-local-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables-expected.txt.
  • webgpu/whlsl/lots-of-local-variables.html: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables.html.
  • webgpu/whlsl/lvalues-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lvalues-expected.txt.
  • webgpu/whlsl/lvalues.html: Renamed from LayoutTests/webgpu/whlsl-lvalues.html.
  • webgpu/whlsl/make-array-ref-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests-expected.txt.
  • webgpu/whlsl/make-array-ref-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests.html.
  • webgpu/whlsl/make-array-reference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-reference-expected.txt.
  • webgpu/whlsl/make-array-reference.html: Renamed from LayoutTests/webgpu/whlsl-make-array-reference.html.
  • webgpu/whlsl/matrices-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests-expected.txt.
  • webgpu/whlsl/matrices-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests.html.
  • webgpu/whlsl/matrix-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-2-expected.txt.
  • webgpu/whlsl/matrix-2.html: Renamed from LayoutTests/webgpu/whlsl-matrix-2.html.
  • webgpu/whlsl/matrix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-expected.txt.
  • webgpu/whlsl/matrix-memory-layout-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout-expected.txt.
  • webgpu/whlsl/matrix-memory-layout.html: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout.html.
  • webgpu/whlsl/matrix.html: Renamed from LayoutTests/webgpu/whlsl-matrix.html.
  • webgpu/whlsl/nested-dot-expression-rvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-expected.html.
  • webgpu/whlsl/nested-dot-expression-rvalue.html: Renamed from LayoutTests/webgpu/whlsl-nested-dot-expression-rvalue.html.
  • webgpu/whlsl/nested-loop-expected.html: Copied from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
  • webgpu/whlsl/nested-loop.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop.html.
  • webgpu/whlsl/null-arg-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-arg-expected.txt.
  • webgpu/whlsl/null-arg.html: Renamed from LayoutTests/webgpu/whlsl-null-arg.html.
  • webgpu/whlsl/null-array-ref.html: Renamed from LayoutTests/webgpu/whlsl-null-array-ref.html.
  • webgpu/whlsl/null-dereference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-dereference-expected.txt.
  • webgpu/whlsl/null-dereference.html: Renamed from LayoutTests/webgpu/whlsl-null-dereference.html.
  • webgpu/whlsl/oob-access-expected.txt: Renamed from LayoutTests/webgpu/whlsl-oob-access-expected.txt.
  • webgpu/whlsl/oob-access.html: Renamed from LayoutTests/webgpu/whlsl-oob-access.html.
  • webgpu/whlsl/operator-overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-operator-overload-expected.txt.
  • webgpu/whlsl/operator-overload.html: Renamed from LayoutTests/webgpu/whlsl-operator-overload.html.
  • webgpu/whlsl/overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-overload-expected.txt.
  • webgpu/whlsl/overload.html: Renamed from LayoutTests/webgpu/whlsl-overload.html.
  • webgpu/whlsl/override-subscript-expected.txt: Renamed from LayoutTests/webgpu/whlsl-override-subscript-expected.txt.
  • webgpu/whlsl/override-subscript.html: Renamed from LayoutTests/webgpu/whlsl-override-subscript.html.
  • webgpu/whlsl/plus-equals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-plus-equals-expected.txt.
  • webgpu/whlsl/plus-equals.html: Renamed from LayoutTests/webgpu/whlsl-plus-equals.html.
  • webgpu/whlsl/pointer-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests-expected.txt.
  • webgpu/whlsl/pointer-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests.html.
  • webgpu/whlsl/postfix-prefix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix-expected.txt.
  • webgpu/whlsl/postfix-prefix.html: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix.html.
  • webgpu/whlsl/propertyresolver/ander-abstract-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue.html.
  • webgpu/whlsl/propertyresolver/ander-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-expected.html.
  • webgpu/whlsl/propertyresolver/ander-lvalue-3-levels-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels-expected.html.
  • webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels.html.
  • webgpu/whlsl/propertyresolver/ander-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/ander-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue.html.
  • webgpu/whlsl/propertyresolver/ander.html: Renamed from LayoutTests/webgpu/propertyresolver/ander.html.
  • webgpu/whlsl/propertyresolver/getter-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/getter-expected.html.
  • webgpu/whlsl/propertyresolver/getter.html: Renamed from LayoutTests/webgpu/propertyresolver/getter.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue.html.
  • webgpu/whlsl/propertyresolver/indexer-ander.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander.html.
  • webgpu/whlsl/propertyresolver/indexer-getter-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-getter-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-getter.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-getter.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue.html.
  • webgpu/whlsl/propertyresolver/indexer-setter.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter.html.
  • webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Copied from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html.
  • webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html.
  • webgpu/whlsl/propertyresolver/setter-abstract-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue.html.
  • webgpu/whlsl/propertyresolver/setter-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/setter-lvalue-expected.html.
  • webgpu/whlsl/propertyresolver/setter-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-lvalue.html.
  • webgpu/whlsl/read-modify-write-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-expected.txt.
  • webgpu/whlsl/read-modify-write-high-zombies-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies-expected.txt.
  • webgpu/whlsl/read-modify-write-high-zombies.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies.html.
  • webgpu/whlsl/read-modify-write.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write.html.
  • webgpu/whlsl/recursive-structs-expected.txt: Renamed from LayoutTests/webgpu/whlsl-recursive-structs-expected.txt.
  • webgpu/whlsl/recursive-structs.html: Renamed from LayoutTests/webgpu/whlsl-recursive-structs.html.
  • webgpu/whlsl/return-local-variable-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue-expected.html.
  • webgpu/whlsl/return-local-variable.html: Renamed from LayoutTests/webgpu/whlsl-return-local-variable.html.
  • webgpu/whlsl/return-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests-expected.txt.
  • webgpu/whlsl/return-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests.html.
  • webgpu/whlsl/setter-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests-expected.txt.
  • webgpu/whlsl/setter-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests.html.
  • webgpu/whlsl/simple-arrays-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-arrays-expected.txt.
  • webgpu/whlsl/simple-arrays.html: Renamed from LayoutTests/webgpu/whlsl-simple-arrays.html.
  • webgpu/whlsl/simple-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter-expected.txt.
  • webgpu/whlsl/simple-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter.html.
  • webgpu/whlsl/simple-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-tests-expected.txt.
  • webgpu/whlsl/simple-tests.html: Renamed from LayoutTests/webgpu/whlsl-simple-tests.html.
  • webgpu/whlsl/simple-while-loop-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop-expected.txt.
  • webgpu/whlsl/simple-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop.html.
  • webgpu/whlsl/store-null-expected.txt: Renamed from LayoutTests/webgpu/whlsl-store-null-expected.txt.
  • webgpu/whlsl/store-null.html: Renamed from LayoutTests/webgpu/whlsl-store-null.html.
  • webgpu/whlsl/store-to-property-updates-properly-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html.
  • webgpu/whlsl/store-to-property-updates-properly.html: Renamed from LayoutTests/webgpu/whlsl-store-to-property-updates-properly.html.
  • webgpu/whlsl/struct-expected.txt: Renamed from LayoutTests/webgpu/whlsl-struct-expected.txt.
  • webgpu/whlsl/struct.html: Renamed from LayoutTests/webgpu/whlsl-struct.html.
  • webgpu/whlsl/switch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-switch-expected.txt.
  • webgpu/whlsl/switch.html: Renamed from LayoutTests/webgpu/whlsl-switch.html.
  • webgpu/whlsl/ternary-spec-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test-expected.txt.
  • webgpu/whlsl/ternary-spec-test.html: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test.html.
  • webgpu/whlsl/test-harness-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-test-harness-test-expected.txt.
  • webgpu/whlsl/test-harness-test.html: Renamed from LayoutTests/webgpu/whlsl-test-harness-test.html.
  • webgpu/whlsl/textures-getdimensions-expected.txt: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions-expected.txt.
  • webgpu/whlsl/textures-getdimensions.html: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions.html.
  • webgpu/whlsl/textures-load-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-expected.html.
  • webgpu/whlsl/textures-load.html: Renamed from LayoutTests/webgpu/whlsl-textures-load.html.
  • webgpu/whlsl/textures-sample-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-lvalue-expected.html.
  • webgpu/whlsl/textures-sample.html: Renamed from LayoutTests/webgpu/whlsl-textures-sample.html.
  • webgpu/whlsl/two-dimensional-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array-expected.txt.
  • webgpu/whlsl/two-dimensional-array.html: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array.html.
  • webgpu/whlsl/type-mismatch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-type-mismatch-expected.txt.
  • webgpu/whlsl/type-mismatch.html: Renamed from LayoutTests/webgpu/whlsl-type-mismatch.html.
  • webgpu/whlsl/uint-bitwise-expected.txt: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise-expected.txt.
  • webgpu/whlsl/uint-bitwise.html: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise.html.
  • webgpu/whlsl/use-undefined-variable-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2-expected.txt.
  • webgpu/whlsl/use-undefined-variable-2.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2.html.
  • webgpu/whlsl/use-undefined-variable-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-expected.txt.
  • webgpu/whlsl/use-undefined-variable.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable.html.
  • webgpu/whlsl/variable-shadowing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing-expected.txt.
  • webgpu/whlsl/variable-shadowing.html: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing.html.
  • webgpu/whlsl/vector-syntax-expected.txt: Renamed from LayoutTests/webgpu/whlsl-vector-syntax-expected.txt.
  • webgpu/whlsl/vector-syntax.html: Renamed from LayoutTests/webgpu/whlsl-vector-syntax.html.
  • webgpu/whlsl/while-loop-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
  • webgpu/whlsl/while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-break.html.
  • webgpu/whlsl/while-loop-continue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
  • webgpu/whlsl/while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-continue.html.
  • webgpu/whlsl/whlsl-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
  • webgpu/whlsl/whlsl.html: Renamed from LayoutTests/webgpu/whlsl.html.
  • webgpu/whlsl/wrong-argument-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length-expected.txt.
  • webgpu/whlsl/wrong-argument-length.html: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length.html.
  • webgpu/whlsl/wrong-types-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-types-expected.txt.
  • webgpu/whlsl/wrong-types.html: Renamed from LayoutTests/webgpu/whlsl-wrong-types.html.
  • webgpu/whlsl/zero-initialize-values-2-expected.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop-expected.html.
  • webgpu/whlsl/zero-initialize-values-2.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-2.html.
  • webgpu/whlsl/zero-initialize-values-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue-expected.html.
  • webgpu/whlsl/zero-initialize-values.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values.html.
11:58 AM Changeset in webkit [247527] by commit-queue@webkit.org
  • 32 edits
    3 adds in trunk

Add a runtime-disabled dialog element skeleton
https://bugs.webkit.org/show_bug.cgi?id=199839

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-17
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/custom-elements/builtin-coverage-expected.txt:
  • web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-close-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-open-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
  • web-platform-tests/html/semantics/interfaces-expected.txt:

Source/WebCore:

Beginning implementation of https://html.spec.whatwg.org/multipage/interactive-elements.html#the-dialog-element
Covered by rebaselining WPT tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • html/HTMLDialogElement.cpp: Added.

(WebCore::HTMLDialogElement::HTMLDialogElement):
(WebCore::HTMLDialogElement::open):
(WebCore::HTMLDialogElement::setOpen):
(WebCore::HTMLDialogElement::returnValue):
(WebCore::HTMLDialogElement::setReturnValue):
(WebCore::HTMLDialogElement::show):
(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):

  • html/HTMLDialogElement.h: Added.
  • html/HTMLDialogElement.idl: Added.
  • html/HTMLTagNames.in:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setDialogElementEnabled):
(WebCore::RuntimeEnabledFeatures::dialogElementEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetDialogElementEnabled):
(WKPreferencesGetDialogElementEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Add SPI to enable the dialog element for tests.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences dialogElementEnabled]):
(-[WebPreferences setDialogElementEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Add SPI to enable the dialog element for tests.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Enable the dialog element for layout tests.

11:35 AM Changeset in webkit [247526] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Use VCP SPI in case creation of a compression session with VTB for 'h264.rtvc' fails
https://bugs.webkit.org/show_bug.cgi?id=199863
<rdar://problem/52922217>

Reviewed by Darin Adler.

Calling VTCompressionSessionCreate with kVTVideoEncoderList_EncoderID "com.apple.videotoolbox.videoencoder.h264.rtvc"
fails on some platforms. In such a case, use VCP SPI if available as a fallback.
Covered by exisiting webrtc tests on these specific platforms.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

11:32 AM Changeset in webkit [247525] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Hop to the main thread when doing logging in RealtimeIncomingVideoSourceCocoa
https://bugs.webkit.org/show_bug.cgi?id=199865

Reviewed by Darin Adler.

LoggerHelper routines allow logging messages in system console and inspector console.
These routines iterate through a Vector of log observers which is not thread safe.
Document, the main log observer, also expects to be called on the main thread.
Manually tested (writing a layout test for this would require more than 2 seconds).

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

11:23 AM Changeset in webkit [247524] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

[iOS] Option + Up or Down Arrow key doesn’t move cursor past paragraph boundaries in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=199851

Reviewed by Wenson Hsieh.

Source/WebKit:

The bug was caused by the difference in the way AppKit and UIKit responds to Option + Up / Down.

On macOS, AppKit sends moveForward before sending moveToStartOfParagraph and moveBackward
before sending moveToEndOfParagraph. As a result, when Option + Down is pressed when we are at
the end of a line, we would first move to the beginning of the next line (i.e. after the line break)
before moving or extending selection with the paragraph boundary granurality.

On iOS, UIKit only calls _moveToStartOfParagraph without moving forward by a character. As a result,
moving forward by the paragraph boundary granurality immediately stops when we're starting at the
end of a line when Option + Down is pressed. Option + Up case is similar.

Fix the bug on iOS by emulating what happens on macOS. Namely, move the selection forward or backward
by the character granurality before moving by the paragraph boundary granurality.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):

Tools:

Added a regression test for iOS. Unfortunately, event sender, etc... doesn't work because
this code is getting directly triggered from UIKeyboard's code.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.h: Added.
  • TestWebKitAPI/Tests/ios/SelectionModifyByParagraphBoundary.mm: Added.
  • TestWebKitAPI/ios/UIKitSPI.h:
11:12 AM Changeset in webkit [247523] by commit-queue@webkit.org
  • 23 edits in trunk

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

"Caused failed ASSERT in stress test" (Requested by creid on
#webkit).

Reverted changeset:

"Bytecode cache should use FileSystem"
https://bugs.webkit.org/show_bug.cgi?id=199759
https://trac.webkit.org/changeset/247505

11:11 AM Changeset in webkit [247522] by youenn@apple.com
  • 9 edits in trunk/Source/WebCore

Add release logging to AudioSampleDataSource
https://bugs.webkit.org/show_bug.cgi?id=199814
<rdar://problem/53128140>

Reviewed by Eric Carlson.

Use release logging for AudioSampleDataSource in case of errors.
This requires passing a logger and a logger identifier.
For that purpose, pass a MediaStreamTrackPrivate to it constructor
and reuse its logger and log identifier.

For each log, hop to the main thread as release logging requires to be done in the main thread.
Add specific handling for RealtimeOutgoingAudioSource as its MediaStreamTrack can change in case of replaceTrack.
In that case, we change of logger when changing the MediaStreamTrackPrivate.

No observable change of behavior, covered by existing tests.

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::create):
(WebCore::AudioSampleDataSource::AudioSampleDataSource):
(WebCore::AudioSampleDataSource::setupConverter):
(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pullSamplesInternal):
(WebCore::AudioSampleDataSource::setLogger):
(WebCore::AudioSampleDataSource::logChannel const):

  • platform/mediastream/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::setSource):

  • platform/mediastream/RealtimeOutgoingAudioSource.h:

(WebCore::RealtimeOutgoingAudioSource::sourceUpdated):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h:

Instead of using its own logger/identifier member field, reuse its MediaStreamTrackPrivate.

  • platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp:

(WebCore::RealtimeOutgoingAudioSourceCocoa::RealtimeOutgoingAudioSourceCocoa):
(WebCore::RealtimeOutgoingAudioSourceCocoa::sourceUpdated):

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

(WebCore::WebAudioSourceProviderAVFObjC::prepare):

10:50 AM Changeset in webkit [247521] by commit-queue@webkit.org
  • 13 edits in trunk/Source

Make ANGLE work inside WebKit2's sandbox
https://bugs.webkit.org/show_bug.cgi?id=199844

Patch by Kenneth Russell <kbr@chromium.org> on 2019-07-17
Reviewed by Alex Christensen.

Source/ThirdParty/ANGLE:

Cherry-pick fix for crbug.com/angleproject/3383 to eliminate use
of deprecated API in SystemInfo_mac.mm.

  • BUILD.gn:
  • src/gpu_info_util/SystemInfo.cpp:

(angle::FindActiveGPU):
(angle::PrintSystemInfo):
(angle::FindPrimaryGPU): Deleted.

  • src/gpu_info_util/SystemInfo.h:
  • src/gpu_info_util/SystemInfo_internal.h:
  • src/gpu_info_util/SystemInfo_linux.cpp:

(angle::GetSystemInfo):

  • src/gpu_info_util/SystemInfo_mac.mm:

(angle::GetSystemInfo):

  • src/gpu_info_util/SystemInfo_win.cpp:

(angle::GetSystemInfo):

  • src/tests/BUILD.gn:
  • src/tests/test_expectations/GPUTestConfig.cpp:
  • src/tests/test_utils/angle_test_instantiate.cpp:

(angle::IsConfigWhitelisted):

Source/WebCore:

Fix missing #import introduced at the last minute while removing
some debugging code in the last patch.

Tested with San Angeles WebGL demo and some conformance tests.

  • platform/graphics/cocoa/WebGLLayer.mm:
10:09 AM Changeset in webkit [247520] by Kocsen Chung
  • 7 edits in branches/safari-608-branch/Source

Versioning.

10:05 AM Changeset in webkit [247519] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Hang in WebCore::AccessibilityRenderObject::visiblePositionRangeForLine.
https://bugs.webkit.org/show_bug.cgi?id=199845
<rdar://problem/53121017>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-07-17
Reviewed by Chris Fleizach.

  • Added check for upper bound NSNotFound for parameter to visiblePositionRangeForLine.
  • Fixed signed/unsigned issue for AXTextMarkerRangeForLine attribute.
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionRangeForLine const):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

10:03 AM Changeset in webkit [247518] by Kocsen Chung
  • 1 copy in branches/safari-608-branch

New branch.

9:59 AM Changeset in webkit [247517] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

9:29 AM Changeset in webkit [247516] by russell_e@apple.com
  • 2 edits in trunk/Tools

Adding self to contributors.json

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
9:11 AM Changeset in webkit [247515] by aakash_jain@apple.com
  • 3 edits
    1 add in trunk/Tools

[ews-build] Parse full_results.json for layout-tests
https://bugs.webkit.org/show_bug.cgi?id=199804

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests.start): Monitor json output.
(RunWebKitTests.commandComplete): Read json output, parse the results and set Buildbot properties accordingly. These
properties would be used in subsequent AnalyzeLayoutTests build step to determine whether the failures are introduced
by the patch or are pre-existing.
(ReRunWebKitTests.commandComplete): Ditto.
(RunWebKitTestsWithoutPatch.commandComplete): Ditto.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(BuildStepMixinAdditions.getProperty): Added.
(TestRunWebKitTests.test_parse_results_json): Added unit-tests.

  • BuildSlaveSupport/ews-build/layout_test_failures.py: Parse full_results.json and generate list of failing tests.
8:44 AM Changeset in webkit [247514] by Michael Catanzaro
  • 9 edits in trunk/Tools

Unreviewed, rolling out r247512.

Broke API test runners

Reverted changeset:

"[GTK][WPE][webkitpy] Refactor drivers to use the base driver
for setting up the environment and start the drivers."
https://bugs.webkit.org/show_bug.cgi?id=199855
https://trac.webkit.org/changeset/247512

7:57 AM Changeset in webkit [247513] by Truitt Savell
  • 3 edits
    203 copies
    1 delete in trunk/LayoutTests

Unreviewed, rolling out r247501.

Introduced 100 failures on Mojave WK2.

Reverted changeset:

"[WHLSL] Move WHLSL tests to their own folder"
https://bugs.webkit.org/show_bug.cgi?id=199838
https://trac.webkit.org/changeset/247501

6:00 AM Changeset in webkit [247512] by clopez@igalia.com
  • 9 edits in trunk/Tools

[GTK][WPE][webkitpy] Refactor drivers to use the base driver for setting up the environment and start the drivers.
https://bugs.webkit.org/show_bug.cgi?id=199855

Reviewed by Carlos Garcia Campos.

The webkitpy drivers for GTK and WPE use their own versions for setting
up the environment and starting/stopping the drivers.
This refactors those drivers to use the base class driver functions.
As a benefit we get some fixes like support for setting the profiler
environment variables, and a simpler code.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver): This already correctly setups LOCAL_RESOURCE_ROOT and DUMPRENDERTREE_TEMP.
Add the remaining environment variable XDG_CACHE_HOME that is needed for Linux.

  • Scripts/webkitpy/port/headlessdriver.py:

(HeadlessDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/waylanddriver.py:

(WaylandDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/westondriver.py:

(WestonDriver._setup_environ_for_test):
(WestonDriver.stop):

  • Scripts/webkitpy/port/westondriver_unittest.py: now mock _test_runner_process_constructor as base driver does.

(WestonDriverTest.make_driver):

  • Scripts/webkitpy/port/xorgdriver.py:

(XorgDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/xvfbdriver.py: the xvfb binary is started with the port server env

(XvfbDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/xvfbdriver_unittest.py: rename the variable to make clearer that it uses the port server env.

(XvfbDriverTest.make_driver):
(XvfbDriverTest.test_start):
(XvfbDriverTest.test_start_arbitrary_worker_number):

5:49 AM WebKitGTK/2.24.x edited by berto@igalia.com
(diff)
4:09 AM Changeset in webkit [247511] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo port

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
3:16 AM Changeset in webkit [247510] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix GTK and WPE debug build after r247508

  • UIProcess/API/glib/WebKitWebResource.cpp:

(webkitWebResourceCreate): Remove invalid assert.

3:06 AM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:03 AM Changeset in webkit [247509] by commit-queue@webkit.org
  • 25 edits
    58 adds in trunk

Add referrerpolicy attribute support for <script> elements
https://bugs.webkit.org/show_bug.cgi?id=185550

Patch by Rob Buis <rbuis@igalia.com> on 2019-07-17
Reviewed by Youenn Fablet.

Source/WebCore:

This patch adds 'referrerpolicy' attribute support for script elements.
If set, the value is restricted to the ReferrerPolicy enum, and
if valid it is used for the script fetch.
If not set or invalid, the current behavior is kept.

Tests: http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http-http.html

http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http.https.html
http/tests/referrer-policy-script/no-referrer-when-downgrade/same-origin.html
http/tests/referrer-policy-script/no-referrer/cross-origin-http-http.html
http/tests/referrer-policy-script/no-referrer/cross-origin-http.https.html
http/tests/referrer-policy-script/no-referrer/same-origin.html
http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-script/origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-script/origin/cross-origin-http-http.html
http/tests/referrer-policy-script/origin/cross-origin-http.https.html
http/tests/referrer-policy-script/origin/same-origin.html
http/tests/referrer-policy-script/same-origin/cross-origin-http-http.html
http/tests/referrer-policy-script/same-origin/cross-origin-http.https.html
http/tests/referrer-policy-script/same-origin/same-origin.html
http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-script/strict-origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-script/strict-origin/cross-origin-http-http.html
http/tests/referrer-policy-script/strict-origin/cross-origin-http.https.html
http/tests/referrer-policy-script/strict-origin/same-origin.html
http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http.html
http/tests/referrer-policy-script/unsafe-url/cross-origin-http.https.html
http/tests/referrer-policy-script/unsafe-url/same-origin.html

  • bindings/js/CachedScriptFetcher.cpp:

(WebCore::CachedScriptFetcher::requestScriptWithCache const):

  • bindings/js/CachedScriptFetcher.h:

(WebCore::CachedScriptFetcher::CachedScriptFetcher):

  • dom/InlineClassicScript.h:
  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::create):

  • dom/LoadableClassicScript.h:
  • dom/LoadableModuleScript.cpp:

(WebCore::LoadableModuleScript::create):
(WebCore::LoadableModuleScript::LoadableModuleScript):

  • dom/LoadableModuleScript.h:
  • dom/LoadableScript.h:

(WebCore::LoadableScript::LoadableScript):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):

  • dom/ScriptElement.h:
  • dom/ScriptElementCachedScriptFetcher.h:

(WebCore::ScriptElementCachedScriptFetcher::ScriptElementCachedScriptFetcher):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::referrerPolicyForBindings const):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::setReferrerPolicyForBindings):
(WebCore::HTMLScriptElement::referrerPolicyForBindings const):
(WebCore::HTMLScriptElement::referrerPolicy const):

  • html/HTMLScriptElement.h:
  • html/HTMLScriptElement.idl:
  • html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::emitRule):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • html/parser/HTMLResourcePreloader.h:

(WebCore::PreloadRequest::PreloadRequest):

  • platform/ReferrerPolicy.cpp:

(WebCore::referrerPolicyToString):

  • platform/ReferrerPolicy.h:
  • svg/SVGScriptElement.h:

LayoutTests:

Add tests for scripts with various referrerpolicy attribute values.

  • http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/no-referrer-when-downgrade/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/no-referrer-when-downgrade/same-origin.html: Added.
  • http/tests/referrer-policy-script/no-referrer/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/no-referrer/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/no-referrer/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/no-referrer/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/no-referrer/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/no-referrer/same-origin.html: Added.
  • http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-script/origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/origin/same-origin.html: Added.
  • http/tests/referrer-policy-script/same-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/same-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/same-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/same-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/same-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/same-origin/same-origin.html: Added.
  • http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/strict-origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/strict-origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-script/strict-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/strict-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/strict-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/strict-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/strict-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/strict-origin/same-origin.html: Added.
  • http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-script/unsafe-url/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-script/unsafe-url/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-script/unsafe-url/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-script/unsafe-url/same-origin.html: Added.
  • http/tests/referrer-policy/resources/script.php: Added.
  • platform/win/TestExpectations:
1:25 AM Changeset in webkit [247508] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit

[WPE][GTK] UI process crash due to NULL dereference in webkitWebViewResourceLoadStarted()
https://bugs.webkit.org/show_bug.cgi?id=199621

Reviewed by Michael Catanzaro.

Null-check frame received in injected bundle message to ensure the frame hasn't been destroyed.

  • UIProcess/API/glib/WebKitInjectedBundleClient.cpp:
  • UIProcess/API/glib/WebKitWebResource.cpp:

(webkitWebResourceCreate): Receive a reference to the frame instead of a pointer.

  • UIProcess/API/glib/WebKitWebResourcePrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewResourceLoadStarted): Ditto.

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
1:23 AM Changeset in webkit [247507] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Do not assert when receiving invalid data in injected bundle messages
https://bugs.webkit.org/show_bug.cgi?id=199830

Reviewed by Michael Catanzaro.

Just silently ignore them to avoid UI process crashes.

  • UIProcess/API/glib/WebKitInjectedBundleClient.cpp:
1:21 AM Changeset in webkit [247506] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK] No web view updates after swapping web process if AC mode is forced
https://bugs.webkit.org/show_bug.cgi?id=199826

Reviewed by Michael Catanzaro.

This is because when AC mode is forced the provisional page creates a drawing area that is always in AC
mode. When swapping processes, the current drawing area is destroyed (which exists AC mode) and the provisional
one is set. From that point the web process is in AC mode but the UI process isn't. We need to update the
compositing mode when swapping processes.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDidExitWebProcess):

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h:

Jul 16, 2019:

10:21 PM Changeset in webkit [247505] by chris.reid@sony.com
  • 23 edits in trunk

Bytecode cache should use FileSystem
https://bugs.webkit.org/show_bug.cgi?id=199759

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Update bytecode cache to use platform generic FileSystem calls.

  • API/JSScript.mm:
  • CMakeLists.txt:
  • jsc.cpp:
  • runtime/CachePayload.cpp:
  • runtime/CachePayload.h:
  • runtime/CachedBytecode.h:
  • runtime/CachedTypes.cpp:
  • runtime/CachedTypes.h:
  • runtime/CodeCache.cpp:
  • runtime/CodeCache.h:
  • runtime/Completion.cpp:
  • runtime/Completion.h:

Source/WebCore:

  • platform/SharedBuffer.cpp:

Source/WTF:

  • wtf/FileSystem.cpp:
  • wtf/FileSystem.h:

Add support for creating MappedFileData from a preexisting file handle
for use with locked files. Also support creating MappedFileData
with either private or shared mappings.

  • wtf/UUID.cpp:

Avoid ASSERT with returning a LazyNeverDestroyed object that hasn't been created.

  • wtf/glib/FileSystemGlib.cpp:
  • wtf/win/FileSystemWin.cpp:

Add truncateFile implementations.

Tools:

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:
9:56 PM Changeset in webkit [247504] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix includes and make a constructor explicit to avoid unified-sources-triggered test failures
https://bugs.webkit.org/show_bug.cgi?id=199849

Reviewed by Wenson Hsieh.

webkit.org/b/199587 triggered some unexpected test failures because of unified sources include
order. The TextStream operator in ScrollingTreeOverflowScrollingNode::dumpProperties() was invoking
the implicit constructor of TransformOperations.

  • page/scrolling/ScrollingTreeOverflowScrollingNode.cpp: Include TextStream.h
  • platform/graphics/transforms/TransformOperations.h: Make ctor explicit.
9:16 PM Changeset in webkit [247503] by Jonathan Bedard
  • 2 edits in trunk/Tools

svn-create-patch duplicates diffs when adding directories
https://bugs.webkit.org/show_bug.cgi?id=199842

Reviewed by Dewei Zhu.

  • Scripts/svn-create-patch:

(findKind): Add function which returns what 'kind' of file the provided path is.
(generateFileList): If the path is a directory and being added, don't add it.
Instead, rely on the fact that its children will be added.

7:46 PM Changeset in webkit [247502] by commit-queue@webkit.org
  • 7 edits
    1 move in trunk/Source

REGRESSION: fast/events/watchos/double-tap-to-zoom* tests crashing in com.apple.WebKit: -[WKContentView(WKInteraction) _singleTapDidReset:]
https://bugs.webkit.org/show_bug.cgi?id=199840
<rdar://problem/52856531>

Patch by Antoine Quint <Antoine Quint> on 2019-07-16
Reviewed by Wenson Hsieh.

Source/WebCore:

Fix a build error that occured when building for the watchOS Simulator in the debug configuration.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingProxyRole):

Source/WebKit:

We need to ensure the NSNumber used for -[WKSyntheticTapGestureRecognizer lastActiveTouchIdentifier] is retained. This innocent change required
the use of RetainPtr<>, which required the move to an Objective-C++ file, which lead to a change in the order files are unified, which lead to
build errors, which leads to a much bigger patch than just the source change necessary to fix the crash.

  • SourcesCocoa.txt:
  • UIProcess/ios/WKSyntheticTapGestureRecognizer.mm: Renamed from Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.m.
  • UIProcess/ios/forms/WKFormPeripheralBase.h:
  • UIProcess/ios/forms/WKFormPeripheralBase.mm:
  • WebKit.xcodeproj/project.pbxproj:
5:13 PM Changeset in webkit [247501] by mmaxfield@apple.com
  • 3 edits
    203 moves
    1 add in trunk/LayoutTests

[WHLSL] Move WHLSL tests to their own folder
https://bugs.webkit.org/show_bug.cgi?id=199838

Reviewed by Robin Morisset.

webgpu/whlsl-foo.html => webgpu/whlsl/foo.html

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webgpu/whlsl/arbitrary-vertex-attribute-locations-expected.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-continue-expected.html.
  • webgpu/whlsl/arbitrary-vertex-attribute-locations.html: Renamed from LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations.html.
  • webgpu/whlsl/argument-evaluation-order-expected.txt: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order-expected.txt.
  • webgpu/whlsl/argument-evaluation-order.html: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order.html.
  • webgpu/whlsl/array-length-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests-expected.txt.
  • webgpu/whlsl/array-length-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests.html.
  • webgpu/whlsl/array-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests-expected.txt.
  • webgpu/whlsl/array-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests.html.
  • webgpu/whlsl/bad-add-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-add-expected.txt.
  • webgpu/whlsl/bad-add.html: Renamed from LayoutTests/webgpu/whlsl-bad-add.html.
  • webgpu/whlsl/bad-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-ander-expected.txt.
  • webgpu/whlsl/bad-ander.html: Renamed from LayoutTests/webgpu/whlsl-bad-ander.html.
  • webgpu/whlsl/bad-literals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-literals-expected.txt.
  • webgpu/whlsl/bad-literals.html: Renamed from LayoutTests/webgpu/whlsl-bad-literals.html.
  • webgpu/whlsl/bitwise-bool-ops-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops-expected.txt.
  • webgpu/whlsl/bitwise-bool-ops.html: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops.html.
  • webgpu/whlsl/bools-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bools-expected.txt.
  • webgpu/whlsl/bools.html: Renamed from LayoutTests/webgpu/whlsl-bools.html.
  • webgpu/whlsl/buffer-fragment-expected.html: Renamed from LayoutTests/webgpu/whlsl-textures-sample-expected.html.
  • webgpu/whlsl/buffer-fragment.html: Renamed from LayoutTests/webgpu/whlsl-buffer-fragment.html.
  • webgpu/whlsl/buffer-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-expected.txt.
  • webgpu/whlsl/buffer-length.html: Renamed from LayoutTests/webgpu/whlsl-buffer-length.html.
  • webgpu/whlsl/buffer-vertex-expected.html: Renamed from LayoutTests/webgpu/whlsl-textures-load-expected.html.
  • webgpu/whlsl/buffer-vertex.html: Renamed from LayoutTests/webgpu/whlsl-buffer-vertex.html.
  • webgpu/whlsl/builtin-vectors-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2-expected.txt.
  • webgpu/whlsl/builtin-vectors-2.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2.html.
  • webgpu/whlsl/builtin-vectors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-expected.txt.
  • webgpu/whlsl/builtin-vectors.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors.html.
  • webgpu/whlsl/casts-expected.txt: Renamed from LayoutTests/webgpu/whlsl-casts-expected.txt.
  • webgpu/whlsl/casts.html: Renamed from LayoutTests/webgpu/whlsl-casts.html.
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2-expected.txt.
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html.
  • webgpu/whlsl/comment-parsing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-comment-parsing-expected.txt.
  • webgpu/whlsl/comment-parsing.html: Renamed from LayoutTests/webgpu/whlsl-comment-parsing.html.
  • webgpu/whlsl/compute-expected.txt: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array-expected.txt.
  • webgpu/whlsl/compute.html: Renamed from LayoutTests/webgpu/whlsl-compute.html.
  • webgpu/whlsl/copy-expected.txt: Renamed from LayoutTests/webgpu/whlsl-copy-expected.txt.
  • webgpu/whlsl/copy.html: Renamed from LayoutTests/webgpu/whlsl-copy.html.
  • webgpu/whlsl/dereference-ordering-expected.txt: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering-expected.txt.
  • webgpu/whlsl/dereference-ordering.html: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering.html.
  • webgpu/whlsl/dereference-pointer-should-type-check-expected.html: Renamed from LayoutTests/webgpu/whlsl-store-to-property-updates-properly-expected.html.
  • webgpu/whlsl/dereference-pointer-should-type-check.html: Renamed from LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check.html.
  • webgpu/whlsl/do-while-loop-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-expected.html.
  • webgpu/whlsl/do-while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break.html.
  • webgpu/whlsl/do-while-loop-continue-expected.html: Renamed from LayoutTests/webgpu/whlsl-return-local-variable-expected.html.
  • webgpu/whlsl/do-while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-continue.html.
  • webgpu/whlsl/do-while-loop-expected.html: Renamed from LayoutTests/webgpu/whlsl-nested-dot-expression-rvalue-expected.html.
  • webgpu/whlsl/do-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop.html.
  • webgpu/whlsl/dont-crash-parsing-enum-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-expected.html.
  • webgpu/whlsl/dont-crash-parsing-enum.html: Renamed from LayoutTests/webgpu/whlsl-dont-crash-parsing-enum.html.
  • webgpu/whlsl/dot-expressions-expected.html: Renamed from LayoutTests/webgpu/whlsl-expected.html.
  • webgpu/whlsl/dot-expressions.html: Renamed from LayoutTests/webgpu/whlsl-dot-expressions.html.
  • webgpu/whlsl/double-not-expected.txt: Renamed from LayoutTests/webgpu/whlsl-double-not-expected.txt.
  • webgpu/whlsl/double-not.html: Renamed from LayoutTests/webgpu/whlsl-double-not.html.
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions-expected.txt.
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html.
  • webgpu/whlsl/duplicates-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicates-expected.txt.
  • webgpu/whlsl/duplicates.html: Renamed from LayoutTests/webgpu/whlsl-duplicates.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-2-expected.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-expected.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-2.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-2.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-3-expected.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-3.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-3.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime-expected.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html.
  • webgpu/whlsl/ensure-proper-variable-lifetime.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime.html.
  • webgpu/whlsl/enum-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests-expected.txt.
  • webgpu/whlsl/enum-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests.html.
  • webgpu/whlsl/equality-expected.txt: Renamed from LayoutTests/webgpu/whlsl-equality-expected.txt.
  • webgpu/whlsl/equality.html: Renamed from LayoutTests/webgpu/whlsl-equality.html.
  • webgpu/whlsl/expected.html: Renamed from LayoutTests/webgpu/whlsl-dot-expressions-expected.html.
  • webgpu/whlsl/float-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-float-math-expected.txt.
  • webgpu/whlsl/float-math.html: Renamed from LayoutTests/webgpu/whlsl-float-math.html.
  • webgpu/whlsl/getter-setter-type-expected.txt: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type-expected.txt.
  • webgpu/whlsl/getter-setter-type.html: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type.html.
  • webgpu/whlsl/huge-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-arrays-expected.txt.
  • webgpu/whlsl/huge-array.html: Renamed from LayoutTests/webgpu/whlsl-huge-array.html.
  • webgpu/whlsl/if-statement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-if-statement-expected.txt.
  • webgpu/whlsl/if-statement.html: Renamed from LayoutTests/webgpu/whlsl-if-statement.html.
  • webgpu/whlsl/increment-decrement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-increment-decrement-expected.txt.
  • webgpu/whlsl/increment-decrement.html: Renamed from LayoutTests/webgpu/whlsl-increment-decrement.html.
  • webgpu/whlsl/index-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-ander-expected.txt.
  • webgpu/whlsl/index-ander.html: Renamed from LayoutTests/webgpu/whlsl-index-ander.html.
  • webgpu/whlsl/index-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter-expected.txt.
  • webgpu/whlsl/index-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter.html.
  • webgpu/whlsl/index-setter-getter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter-expected.txt.
  • webgpu/whlsl/index-setter-getter.html: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter.html.
  • webgpu/whlsl/int-bit-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-bit-math-expected.txt.
  • webgpu/whlsl/int-bit-math.html: Renamed from LayoutTests/webgpu/whlsl-int-bit-math.html.
  • webgpu/whlsl/int-literal-compare-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare-expected.txt.
  • webgpu/whlsl/int-literal-compare.html: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare.html.
  • webgpu/whlsl/logical-negation-expected.txt: Renamed from LayoutTests/webgpu/whlsl-logical-negation-expected.txt.
  • webgpu/whlsl/logical-negation.html: Renamed from LayoutTests/webgpu/whlsl-logical-negation.html.
  • webgpu/whlsl/loops-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-2-expected.html.
  • webgpu/whlsl/loops-break.html: Renamed from LayoutTests/webgpu/whlsl-loops-break.html.
  • webgpu/whlsl/loops-continue-expected.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-break-expected.html.
  • webgpu/whlsl/loops-continue.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue.html.
  • webgpu/whlsl/loops-expected.html: Renamed from LayoutTests/webgpu/whlsl-dont-crash-parsing-enum-expected.html.
  • webgpu/whlsl/loops-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests-expected.txt.
  • webgpu/whlsl/loops-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests.html.
  • webgpu/whlsl/loops.html: Renamed from LayoutTests/webgpu/whlsl-loops.html.
  • webgpu/whlsl/lots-of-local-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables-expected.txt.
  • webgpu/whlsl/lots-of-local-variables.html: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables.html.
  • webgpu/whlsl/lvalues-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lvalues-expected.txt.
  • webgpu/whlsl/lvalues.html: Renamed from LayoutTests/webgpu/whlsl-lvalues.html.
  • webgpu/whlsl/make-array-ref-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests-expected.txt.
  • webgpu/whlsl/make-array-ref-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests.html.
  • webgpu/whlsl/make-array-reference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies-expected.txt.
  • webgpu/whlsl/make-array-reference.html: Renamed from LayoutTests/webgpu/whlsl-make-array-reference.html.
  • webgpu/whlsl/matrices-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests-expected.txt.
  • webgpu/whlsl/matrices-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests.html.
  • webgpu/whlsl/matrix-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-expected.txt.
  • webgpu/whlsl/matrix-2.html: Renamed from LayoutTests/webgpu/whlsl-matrix-2.html.
  • webgpu/whlsl/matrix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-oob-access-expected.txt.
  • webgpu/whlsl/matrix-memory-layout-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-dereference-expected.txt.
  • webgpu/whlsl/matrix-memory-layout.html: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout.html.
  • webgpu/whlsl/matrix.html: Renamed from LayoutTests/webgpu/whlsl-matrix.html.
  • webgpu/whlsl/nested-dot-expression-rvalue-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-expected.html.
  • webgpu/whlsl/nested-dot-expression-rvalue.html: Renamed from LayoutTests/webgpu/whlsl-nested-dot-expression-rvalue.html.
  • webgpu/whlsl/nested-loop-expected.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop-expected.html.
  • webgpu/whlsl/nested-loop.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop.html.
  • webgpu/whlsl/null-arg-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-arg-expected.txt.
  • webgpu/whlsl/null-arg.html: Renamed from LayoutTests/webgpu/whlsl-null-arg.html.
  • webgpu/whlsl/null-array-ref.html: Renamed from LayoutTests/webgpu/whlsl-null-array-ref.html.
  • webgpu/whlsl/null-dereference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout-expected.txt.
  • webgpu/whlsl/null-dereference.html: Renamed from LayoutTests/webgpu/whlsl-null-dereference.html.
  • webgpu/whlsl/oob-access-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-expected.txt.
  • webgpu/whlsl/oob-access.html: Renamed from LayoutTests/webgpu/whlsl-oob-access.html.
  • webgpu/whlsl/operator-overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-operator-overload-expected.txt.
  • webgpu/whlsl/operator-overload.html: Renamed from LayoutTests/webgpu/whlsl-operator-overload.html.
  • webgpu/whlsl/overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-overload-expected.txt.
  • webgpu/whlsl/overload.html: Renamed from LayoutTests/webgpu/whlsl-overload.html.
  • webgpu/whlsl/override-subscript-expected.txt: Renamed from LayoutTests/webgpu/whlsl-override-subscript-expected.txt.
  • webgpu/whlsl/override-subscript.html: Renamed from LayoutTests/webgpu/whlsl-override-subscript.html.
  • webgpu/whlsl/plus-equals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-plus-equals-expected.txt.
  • webgpu/whlsl/plus-equals.html: Renamed from LayoutTests/webgpu/whlsl-plus-equals.html.
  • webgpu/whlsl/pointer-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests-expected.txt.
  • webgpu/whlsl/pointer-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests.html.
  • webgpu/whlsl/postfix-prefix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix-expected.txt.
  • webgpu/whlsl/postfix-prefix.html: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix.html.
  • webgpu/whlsl/read-modify-write-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-2-expected.txt.
  • webgpu/whlsl/read-modify-write-high-zombies-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-reference-expected.txt.
  • webgpu/whlsl/read-modify-write-high-zombies.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies.html.
  • webgpu/whlsl/read-modify-write.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write.html.
  • webgpu/whlsl/recursive-structs-expected.txt: Renamed from LayoutTests/webgpu/whlsl-recursive-structs-expected.txt.
  • webgpu/whlsl/recursive-structs.html: Renamed from LayoutTests/webgpu/whlsl-recursive-structs.html.
  • webgpu/whlsl/return-local-variable-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-continue-expected.html.
  • webgpu/whlsl/return-local-variable.html: Renamed from LayoutTests/webgpu/whlsl-return-local-variable.html.
  • webgpu/whlsl/return-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests-expected.txt.
  • webgpu/whlsl/return-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests.html.
  • webgpu/whlsl/setter-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests-expected.txt.
  • webgpu/whlsl/setter-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests.html.
  • webgpu/whlsl/simple-arrays-expected.txt: Renamed from LayoutTests/webgpu/whlsl-huge-array-expected.txt.
  • webgpu/whlsl/simple-arrays.html: Renamed from LayoutTests/webgpu/whlsl-simple-arrays.html.
  • webgpu/whlsl/simple-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter-expected.txt.
  • webgpu/whlsl/simple-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter.html.
  • webgpu/whlsl/simple-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-tests-expected.txt.
  • webgpu/whlsl/simple-tests.html: Renamed from LayoutTests/webgpu/whlsl-simple-tests.html.
  • webgpu/whlsl/simple-while-loop-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop-expected.txt.
  • webgpu/whlsl/simple-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop.html.
  • webgpu/whlsl/store-null-expected.txt: Renamed from LayoutTests/webgpu/whlsl-store-null-expected.txt.
  • webgpu/whlsl/store-null.html: Renamed from LayoutTests/webgpu/whlsl-store-null.html.
  • webgpu/whlsl/store-to-property-updates-properly-expected.html: Renamed from LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check-expected.html.
  • webgpu/whlsl/store-to-property-updates-properly.html: Renamed from LayoutTests/webgpu/whlsl-store-to-property-updates-properly.html.
  • webgpu/whlsl/struct-expected.txt: Renamed from LayoutTests/webgpu/whlsl-struct-expected.txt.
  • webgpu/whlsl/struct.html: Renamed from LayoutTests/webgpu/whlsl-struct.html.
  • webgpu/whlsl/switch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-switch-expected.txt.
  • webgpu/whlsl/switch.html: Renamed from LayoutTests/webgpu/whlsl-switch.html.
  • webgpu/whlsl/ternary-spec-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test-expected.txt.
  • webgpu/whlsl/ternary-spec-test.html: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test.html.
  • webgpu/whlsl/test-harness-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-test-harness-test-expected.txt.
  • webgpu/whlsl/test-harness-test.html: Renamed from LayoutTests/webgpu/whlsl-test-harness-test.html.
  • webgpu/whlsl/textures-getdimensions-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt.
  • webgpu/whlsl/textures-getdimensions.html: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions.html.
  • webgpu/whlsl/textures-load-expected.html: Renamed from LayoutTests/webgpu/whlsl-buffer-vertex-expected.html.
  • webgpu/whlsl/textures-load.html: Renamed from LayoutTests/webgpu/whlsl-textures-load.html.
  • webgpu/whlsl/textures-sample-expected.html: Renamed from LayoutTests/webgpu/whlsl-buffer-fragment-expected.html.
  • webgpu/whlsl/textures-sample.html: Renamed from LayoutTests/webgpu/whlsl-textures-sample.html.
  • webgpu/whlsl/two-dimensional-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-compute-expected.txt.
  • webgpu/whlsl/two-dimensional-array.html: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array.html.
  • webgpu/whlsl/type-mismatch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-type-mismatch-expected.txt.
  • webgpu/whlsl/type-mismatch.html: Renamed from LayoutTests/webgpu/whlsl-type-mismatch.html.
  • webgpu/whlsl/uint-bitwise-expected.txt: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise-expected.txt.
  • webgpu/whlsl/uint-bitwise.html: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise.html.
  • webgpu/whlsl/use-undefined-variable-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt.
  • webgpu/whlsl/use-undefined-variable-2.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2.html.
  • webgpu/whlsl/use-undefined-variable-expected.txt: Renamed from LayoutTests/webgpu/whlsl-buffer-length-expected.txt.
  • webgpu/whlsl/use-undefined-variable.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable.html.
  • webgpu/whlsl/variable-shadowing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing-expected.txt.
  • webgpu/whlsl/variable-shadowing.html: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing.html.
  • webgpu/whlsl/vector-syntax-expected.txt: Renamed from LayoutTests/webgpu/whlsl-vector-syntax-expected.txt.
  • webgpu/whlsl/vector-syntax.html: Renamed from LayoutTests/webgpu/whlsl-vector-syntax.html.
  • webgpu/whlsl/while-loop-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue-expected.html.
  • webgpu/whlsl/while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-break.html.
  • webgpu/whlsl/while-loop-continue-expected.html: Renamed from LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html.
  • webgpu/whlsl/while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-continue.html.
  • webgpu/whlsl/whlsl.html: Renamed from LayoutTests/webgpu/whlsl.html.
  • webgpu/whlsl/wrong-argument-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length-expected.txt.
  • webgpu/whlsl/wrong-argument-length.html: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length.html.
  • webgpu/whlsl/wrong-types-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-types-expected.txt.
  • webgpu/whlsl/wrong-types.html: Renamed from LayoutTests/webgpu/whlsl-wrong-types.html.
  • webgpu/whlsl/zero-initialize-values-2-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-break-expected.html.
  • webgpu/whlsl/zero-initialize-values-2.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-2.html.
  • webgpu/whlsl/zero-initialize-values-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
  • webgpu/whlsl/zero-initialize-values.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values.html.
4:51 PM Changeset in webkit [247500] by Justin Fan
  • 29 edits
    15 copies
    4 adds in trunk

[WebGPU] Convert GPUComputePipeline LOG statements to generate GPUErrors
https://bugs.webkit.org/show_bug.cgi?id=199773

Reviewed by Myles C. Maxfield.

Source/WebCore:

Generate a GPUError if GPUComputePipeline creation fails.
Rework the WHLSL test harness to take advantage of this.

Test: webgpu/compute-pipeline-errors.html

  • Modules/webgpu/WebGPUComputePipelineDescriptor.cpp:

(WebCore::WebGPUComputePipelineDescriptor::tryCreateGPUComputePipelineDescriptor const):

  • Modules/webgpu/WebGPUComputePipelineDescriptor.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createComputePipeline const):

  • platform/graphics/gpu/GPUBuffer.h:
  • platform/graphics/gpu/GPUComputePipeline.h:

Now inherits from GPUObjectBase, though this isn't super useful yet
since GPUComputePipeline itself does not expose any operations that can error.

  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateComputePipeline const):

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::validateBufferUsage):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):
(WebCore::tryCreateMTLComputePipelineState):
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):

LayoutTests:

Add a test to ensure GPUComputePipeline errors generate correctly.
Rework checkFail in the WHLSL test harness to check for GPUError.

  • webgpu/compute-pipeline-errors-expected.txt: Added.
  • webgpu/compute-pipeline-errors.html: Added.
  • webgpu/error-scopes-test.html:
  • webgpu/js/webgpu-functions.js:

(runTestsWithDevice): Runs tests in an object all with the same device.

  • webgpu/js/whlsl-test-harness.js: Add shader compilation error checking.

(Harness.prototype.async.callTypedFunction):
(Harness.prototype.async.checkCompileFail):
(Harness.prototype.async._callFunction):
(Harness):
(async.checkFail):
(Harness.prototype._callFunction): Deleted.

  • webgpu/whlsl-recursive-structs-expected.txt: Remove a WHLSL compiler buggy test.
  • webgpu/whlsl-recursive-structs.html:
  • webgpu/whlsl-test-harness-test-expected.txt:
  • webgpu/whlsl-test-harness-test.html:
4:10 PM Changeset in webkit [247499] by commit-queue@webkit.org
  • 18 edits
    1 copy
    2 deletes in trunk

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

"The new whlsl-for-loop.html test is failing on the bots"
(Requested by rmorisset on #webkit).

Reverted changeset:

"[WHLSL] Desugar for loops and while loops"
https://bugs.webkit.org/show_bug.cgi?id=199726
https://trac.webkit.org/changeset/247493

3:18 PM Changeset in webkit [247498] by pvollan@apple.com
  • 5 edits in trunk/Source/WebCore

Prewarm font cache with more fonts
https://bugs.webkit.org/show_bug.cgi?id=199283

Reviewed by Myles C. Maxfield.

Use the existing prewarm method in FontCache to prewarm the cache with a set of font family names.
The font list consists of some of the fonts used by the 10 most popular sites on Alexa top sites.
This is a confirmed improvement in page load time.

No new tests, covered by existing tests.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::prewarmGlobally):

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::prewarmGlobally):

1:43 PM Changeset in webkit [247497] by Alan Coon
  • 1 copy in tags/Safari-607.3.10

Tag Safari-607.3.10.

1:36 PM Changeset in webkit [247496] by Alan Coon
  • 7 edits in branches/safari-607-branch/Source

Versioning.

1:28 PM Changeset in webkit [247495] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Update WebContent Process sandbox based on user seed data
https://bugs.webkit.org/show_bug.cgi?id=199799
<rdar://problem/52903477>

Reviewed by Alexey Proskuryakov.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:26 PM Changeset in webkit [247494] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Do not include WebKitLegacy.h in WebKit.h
https://bugs.webkit.org/show_bug.cgi?id=199833
<rdar://problem/53036744>

Reviewed by Tim Horton.

  • Shared/API/Cocoa/WebKit.h:
1:26 PM Changeset in webkit [247493] by rmorisset@apple.com
  • 18 edits
    2 adds
    1 delete in trunk

[WHLSL] Desugar for loops and while loops
https://bugs.webkit.org/show_bug.cgi?id=199726

Reviewed by Myles C. Maxfield.

Source/WebCore:

This patch makes loops behave a lot more similarly to the spec.
In particular, while loops are just degenerate for loops, so they can be desugared in the parser.
And for loops can themselves be heavily desugared, into having no initializer, one condition and one increment
by putting any initializer in a block around the loop, putting true in the condition if there is none, and putting any litteral in the increment if there is none.

Debugging this patch revealed an unrelated bug where the parser would generate an empty comma expression on ";", which the checker would then choke on.
The parser now generates an empty block in that case (as specified in the spec), which fixes the problem.

Finally, while updating the NameResolver for the new structure of loops I realized that it was needlessly generating extra NameContext.
They are not expected by the spec, that forbids naked variable declarations outside of blocks anyway.
So I removed this unnecessary work, and fixed the parser to correctly forbid such naked variable declarations.

  • Modules/webgpu/WHLSL/AST/WHLSLAST.h:
  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop):
(WebCore::WHLSL::AST::ForLoop::condition):
(WebCore::WHLSL::AST::ForLoop::increment):

  • Modules/webgpu/WHLSL/AST/WHLSLStatement.h:

(WebCore::WHLSL::AST::Statement::isVariableDeclarationsStatement const):

  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):

  • Modules/webgpu/WHLSL/WHLSLASTDumper.cpp:

(WebCore::WHLSL::ASTDumper::visit):

  • Modules/webgpu/WHLSL/WHLSLASTDumper.h:
  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::Checker::visit):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:

(WebCore::WHLSL::NameResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.h:
  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parseBlockBody):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseWhileLoop):
(WebCore::WHLSL::Parser::parseStatement):
(WebCore::WHLSL::Parser::parseEffectfulExpression):

  • Modules/webgpu/WHLSL/WHLSLParser.h:
  • Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.cpp:
  • Modules/webgpu/WHLSL/WHLSLVisitor.cpp:

(WebCore::WHLSL::Visitor::visit):

  • Modules/webgpu/WHLSL/WHLSLVisitor.h:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

I added the for-loop tests from Test.mjs (with help from Saam).
I did not add the foo9 and foo10 tests, as they are forbidden by the behavior checker in the C++ implementation (and by the spec).

I also changed one test from whlsl-return-spec-tests.html to assert_fail, because it relied on a lone variable declaration in an if, which is forbidden by the spec.

  • webgpu/whlsl-for-loop-expected.txt: Added.
  • webgpu/whlsl-for-loop.html: Added.
  • webgpu/whlsl-return-spec-tests.html:
1:17 PM Changeset in webkit [247492] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Changes panel should be strictly LTR
https://bugs.webkit.org/show_bug.cgi?id=199767

Reviewed by Joseph Pecoraro.

Changes panel is primarily CSS code and CSS is strictly LTR.

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel):

1:08 PM Changeset in webkit [247491] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix build warning because of missing super_class initializer
https://bugs.webkit.org/show_bug.cgi?id=199825

Patch by Frederic Wang <fwang@igalia.com> on 2019-07-16
Reviewed by Jonathan Bedard.

  • UIProcess/ios/WKContentView.mm:

(keyCommandsPlaceholderHackForEvernote):

12:46 PM Changeset in webkit [247490] by timothy_horton@apple.com
  • 18 edits in trunk

NSTextFinder holes don't scroll with the page
https://bugs.webkit.org/show_bug.cgi?id=199815
<rdar://problem/52280514>

Reviewed by Simon Fraser.

Source/WebCore:

  • rendering/ScrollAlignment.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _usePlatformFindUI]):
(-[WKWebView _setUsePlatformFindUI:]):
(-[WKWebView _ensureTextFinderClient]):
Add a bit so that clients can choose whether they want our find UI,
which respects scrolling, or the system find UI, which works when
doing multi-document searches. Right now you can't have both.

(-[WKWebView scrollFindMatchToVisible:]):
Implement and plumb scrollFindMatchToVisible.

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

(WebKit::WebPageProxy::indicateFindMatch):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::indicateFindMatch):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb indicateFindMatch to FindController.

  • UIProcess/mac/WKTextFinderClient.h:
  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]):
Store whether or not we are using the platform find UI.

(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
If using WebKit find UI, turn on our UI in the options passed to findString[Matches].

(-[WKTextFinderClient scrollFindMatchToVisible:]):
If using WebKit find UI, when the platform tells us to reveal a find match, indicate it.

(-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]):
If using WebKit find UI, lie to the platform and return no rects so that it doesn't paint a yellow rectangle.

(-[WKTextFinderClient getImageForMatchResult:completionHandler:]):
If using WebKit find UI, lie to the platform and return no image so that it doesn't paint a yellow rectangle.

(-[WKTextFinderClient initWithPage:view:]): Deleted.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindUIAfterPageScroll):
Make it possible to use our find UI with 'findStringMatches'; since the platform
find infrastrucutre depends on knowing about all matches up front, we need
to use 'findStringMatches' instead of 'findString', but we had never combined
that with our UI. Don't throw away the other matches when we indicate one, and
don't send DidFindString in the case we are coming from 'findStringMatches'.
This all needs a bit of cleanup in the future.

(WebKit::FindController::findString):
Tell updateFindUIAfterPageScroll that we are 'findString' so that it uses its normal behavior.

(WebKit::FindController::findStringMatches):
Tell updateFindUIAfterPageScroll that we are 'findStringMatches' so that it uses the adjusted behavior.

(WebKit::FindController::indicateFindMatch):
Add 'indicateFindMatch', which both selects the match and moves the indicator there.

  • WebProcess/WebPage/FindController.h:

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[MiniBrowserNSTextFinder performAction:]):
(-[WK2BrowserWindowController awakeFromNib]):
Adopt the WebKit UI in MiniBrowser. Also, override NSTextFinder's
-performAction: so that we can intercept the close action and
hide our own find UI, since there is no delegate for that action yet.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(TEST):

11:56 AM Changeset in webkit [247489] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Make sure the first camera device in the list is the front camera
https://bugs.webkit.org/show_bug.cgi?id=199811
<rdar://problem/53125157>

Reviewed by Jer Noble.

Some websites call getUserMedia with a deviceId constraint and theey pick the
first deviceId in the list provided by enumerateDevices.
On iOS, this is the back camera which is often not what is expected by WebRTC applications.
Instead, make sure the first camera device is the front camera.

Manually tested.

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:
11:41 AM Changeset in webkit [247488] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[GTK] Fix a build warning in JavaScriptCore/API/tests/testapi.c
https://bugs.webkit.org/show_bug.cgi?id=199824

Patch by Joonghun Park <pjh0718@gmail.com> on 2019-07-16
Reviewed by Alex Christensen.

  • API/tests/testapi.c:

(main):

11:37 AM Changeset in webkit [247487] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove "GraphicsContext 0x7ffd8765f6b0 stack changed by" logging
https://bugs.webkit.org/show_bug.cgi?id=199834

Reviewed by Dean Jackson.

I inadvertently left in a couple of GraphicsContextStateStackChecker (used to detect mismatched
GraphicsContext save/restore) in r246725, so remove them.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintIntoLayer):

11:25 AM Changeset in webkit [247486] by Chris Dumez
  • 15 edits in trunk/Source

Speed up StorageManager::getValues()
https://bugs.webkit.org/show_bug.cgi?id=199812

Reviewed by Alex Christensen.

Source/WebCore:

  • storage/StorageMap.cpp:

(WebCore::StorageMap::importItems):

  • storage/StorageMap.h:

Source/WebKit:

Made the following performance improvements:

  • Made StorageManager a WorkQueueMessageReceiver again (like it was before it got moved from the UIProcess to the Network process). This avoids a lot of thread hopping (IPC thread -> Main thread -> StorageManagerThread -> Main Thread) and a lot of isolatedCopying of the strings.
  • Move values around when possible to avoid copying.
  • Add fast path to StorageMap::importItems() for when the StorageMap is empty when importing (15ms -> 2.5ms).
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::importItems):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::getValues):
(WebKit::StorageManager::setItem):
(WebKit::StorageManager::setItems):
(WebKit::StorageManager::removeItem):
(WebKit::StorageManager::clear):

  • NetworkProcess/WebStorage/StorageManager.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchMessageToWorkQueueReceiver):

  • Platform/IPC/Connection.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::loadValuesIfNeeded):
Messages to WorkQueueMessageReceivers are normally dispatched from the IPC WorkQueue. However, there is a race if
a client (here StorageManager) adds itself as a WorkQueueMessageReceiver as a result of receiving an IPC message
on the main thread (here NetworkConnectionToWebProcess::WebPageWasAdded).
The message might have already been dispatched from the IPC WorkQueue to the main thread by the time the
client registers itself as a WorkQueueMessageReceiver. To address this, we check again for messages receivers
once the message arrives on the main thread.

Source/WebKitLegacy:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::importItems):

  • Storage/StorageAreaImpl.h:
  • Storage/StorageAreaSync.cpp:

(WebKit::StorageAreaSync::performImport):

11:17 AM Changeset in webkit [247485] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, test262 gardening.

  • test262/expectations.yaml:
9:52 AM Changeset in webkit [247484] by Wenson Hsieh
  • 5 edits in trunk

[Text autosizing] [iPadOS] Paragraph text on the front page of LinkedIn.com is not boosted
https://bugs.webkit.org/show_bug.cgi?id=199827
<rdar://problem/53152660>

Reviewed by Zalan Bujtas.

Source/WebCore:

After r247467, we try to avoid boosting some text that might cause vertical overflow due to line height
increasing inside a container that expects a fixed integer number of lines. However, in the case of
linkedin.com, the line height specified is a fixed value of 26px, which greatly exceeds the specified font size
of 14px. In this case, it's safe to boost font size, since doing so would not affect the line height at all.

To handle this case, don't avoid text autosizing due to the "fixed number of lines" heuristic if the line height
is fixed, and is much larger than the font size.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html

  • rendering/style/TextSizeAdjustment.cpp:

(WebCore::AutosizeStatus::updateStatus):

LayoutTests:

Add a new test case, inspired by paragraph text in a post on linkedin.com. This text should get autosized.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:
9:43 AM Changeset in webkit [247483] by Alan Bujtas
  • 5 edits in trunk/Source

[ContentChangeObserver] Cancel ongoing content observation when tap is failed/cancelled
https://bugs.webkit.org/show_bug.cgi?id=199828
<rdar://problem/53152696>

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch ensures that we stop the content observation (initiated by touch start) when the tap
is cancelled/failed.

Not testable.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didCancelPotentialTap):

  • page/ios/ContentChangeObserver.h:

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::commitPotentialTapFailed):
(WebKit::WebPage::cancelPotentialTap):

9:18 AM Changeset in webkit [247482] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653

Unreviewed MacCatalyst build fix.

  • wtf/Platform.h:
8:55 AM Changeset in webkit [247481] by commit-queue@webkit.org
  • 8 edits
    4 adds
    2 deletes in trunk

Remove support for beforeload on link=prefetch
https://bugs.webkit.org/show_bug.cgi?id=199632

Patch by Rob Buis <rbuis@igalia.com> on 2019-07-16
Reviewed by Youenn Fablet.

Source/WebCore:

Remove support for beforeload on link=prefetch
by not calling shouldLoadLink for prefetch.
Also make loadLink return void since it always
succeeds.

Tests: http/wpt/prefetch/beforeload-dynamic.html

http/wpt/prefetch/beforeload.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::prefetchIfNeeded):
(WebCore::LinkLoader::loadLink):

  • loader/LinkLoader.h:

LayoutTests:

Add tests to verify that beforeload event is not called for link
rel=prefetch.

  • TestExpectations:
  • fast/dom/HTMLLinkElement/prefetch-beforeload-expected.txt: Removed.
  • fast/dom/HTMLLinkElement/prefetch-beforeload.html: Removed.
  • http/wpt/prefetch/beforeload-dynamic-expected.txt: Added.
  • http/wpt/prefetch/beforeload-dynamic.html: Added.
  • http/wpt/prefetch/beforeload-expected.txt: Added.
  • http/wpt/prefetch/beforeload.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
8:09 AM Changeset in webkit [247480] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Hop to main thread for release logging in RealtimeIncomingAudioSource
https://bugs.webkit.org/show_bug.cgi?id=199813

Reviewed by Eric Carlson.

LoggerHelper routines allow logging messages in system console and inspector console.
These routines iterate through a Vector of log observers which is not thread safe.
Document, the main log observer, also expects to be called on the main thread.
Manually tested (writing a layout test for this would require more than 2 seconds).

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:

(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

7:58 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
7:57 AM Changeset in webkit [247479] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/bmalloc

Merged r244422 - Unreviewed, fix build failure
https://bugs.webkit.org/show_bug.cgi?id=195938

Including <array>.

  • bmalloc/AvailableMemory.cpp:
7:56 AM Changeset in webkit [247478] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merged r243633 - Opcode.h(159,27): warning: adding 'unsigned int' to a string does not append to the string [-Wstring-plus-int]
https://bugs.webkit.org/show_bug.cgi?id=196343

Reviewed by Saam Barati.

Clang reports a compilation warning and recommend '&PADDING_STRING[PADDING_STRING_LENGTH]'
instead of 'PADDING_STRING + PADDING_STRING_LENGTH'.

  • bytecode/Opcode.cpp:

(JSC::padOpcodeName): Moved padOpcodeName from Opcode.h because
this function is used only in Opcode.cpp. Changed macros
PADDING_STRING and PADDING_STRING_LENGTH to simple variables.
(JSC::compareOpcodePairIndices): Replaced pair with std::pair.

  • bytecode/Opcode.h:

(JSC::padOpcodeName): Moved.

1:09 AM Changeset in webkit [247477] by Michael Catanzaro
  • 2 edits in trunk/Source/WTF

[WPE][GTK] Improvements and fixes in FileSystemGlib.cpp
https://bugs.webkit.org/show_bug.cgi?id=199800

Reviewed by Carlos Garcia Campos.

Use nullptr.

Fix a GFileInfo leak in getFileSize.

Use GRefPtr to clarify ownership of the GFileIOStream in openFile.

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::getFileSize):
(WTF::FileSystemImpl::getVolumeFreeSpace):
(WTF::FileSystemImpl::openTemporaryFile):
(WTF::FileSystemImpl::openFile):
(WTF::FileSystemImpl::seekFile):
(WTF::FileSystemImpl::writeToFile):
(WTF::FileSystemImpl::readFromFile):

Jul 15, 2019:

11:14 PM Changeset in webkit [247476] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Remove redundant WebsiteDataStoreConfiguration member
https://bugs.webkit.org/show_bug.cgi?id=199820

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-15
Reviewed by Geoffrey Garen.

m_webStorageDirectory was only used for _WKWebsiteDataStoreConfiguration._webStorageDirectory's backing,
which was copied over to m_localStorageDirectory of a new object in WKWebsiteDataStore's _initWithConfiguration.
This is a baby step towards cleaning up this mess with no behavior change. I see no reason to rename the SPI.

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration _webStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setWebStorageDirectory:]):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::webStorageDirectory const): Deleted.
(WebKit::WebsiteDataStoreConfiguration::setWebStorageDirectory): Deleted.

9:44 PM Changeset in webkit [247475] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS WK2] Layout Test http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=198670

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as flaky.
9:37 PM Changeset in webkit [247474] by keith_miller@apple.com
  • 18 edits in trunk

JSGlobalObject type macros should support feature flags and WeakRef should have one
https://bugs.webkit.org/show_bug.cgi?id=199601

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch refactors the various builtin type macros to have a
parameter, which is the feature flag enabling it. Since most
builtin types are enabled by default this patch adds a new global
bool typeExposedByDefault for clarity. Note, because static hash
tables have no concept of feature flags we can't use feature flags
with lazy properties. This is probably not a big deal as features
that are off by default won't be allocated anywhere we care about
memory usage anyway.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::stringObjectStructure const):
(JSC::JSGlobalObject::bigIntObjectStructure const): Deleted.

  • runtime/Options.h:
  • wasm/js/JSWebAssembly.cpp:

Tools:

JSC options need to be set before the window is created for the test.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(setJSCOptions):
(resetWebViewToConsistentStateBeforeTesting):

LayoutTests:

Add JSC option requirements for WeakRef tests.

  • js/script-tests/weakref-async-is-collected.js:
  • js/script-tests/weakref-eventually-collects-values.js:
  • js/script-tests/weakref-microtasks-dont-collect.js:
  • js/script-tests/weakref-weakset-consistency.js:
  • js/weakref-async-is-collected.html:
  • js/weakref-eventually-collects-values.html:
  • js/weakref-microtasks-dont-collect.html:
  • js/weakref-weakset-consistency.html:
9:35 PM Changeset in webkit [247473] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Make WKURLSchemeTask thread safe
https://bugs.webkit.org/show_bug.cgi?id=199764

Unreviewed build fix for WinCairo port.

Source\WebKit\UIProcess\socket\RemoteInspectorProtocolHandler.cpp(82): error C2039: 'request': is not a member of 'WebKit::WebURLSchemeTask'

  • UIProcess/WebURLSchemeTask.h:

(WebKit::WebURLSchemeTask::request const): Restored WebURLSchemeTask::request with a threading assertion.

9:27 PM Changeset in webkit [247472] by Ryan Haddad
  • 15 edits
    4 deletes in trunk

Unreviewed, rolling out r247444.

Caused two scrolling tests to fail on iOS Simulator

Reverted changeset:

"Typing into a cell in a Google Sheet lags behind by one
character"
https://bugs.webkit.org/show_bug.cgi?id=199587
https://trac.webkit.org/changeset/247444

9:26 PM Changeset in webkit [247471] by keith_miller@apple.com
  • 5 edits
    1 add in trunk

A Possible Issue of Object.create method
https://bugs.webkit.org/show_bug.cgi?id=199744

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/object-create-non-object-properties-parameter.js: Added.

(catch):

Source/JavaScriptCore:

We should call toObject on the properties argument if it was not undefined.
See: https://tc39.es/ecma262/#sec-object.create

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorCreate):

LayoutTests:

Rebaseline error message due to change of error point.

  • js/Object-create-expected.txt:
9:24 PM Changeset in webkit [247470] by Alan Bujtas
  • 6 edits in trunk/Source

outlook.live.com has odd viewport with edge gap
https://bugs.webkit.org/show_bug.cgi?id=199822
<rdar://problem/53029072>

Reviewed by Wenson Hsieh.

Source/WebCore:

r244944 introduced a viewport width quirk because at certain screen size outlook.live.com's flex setup produced a slighly broken layout.
We don't seem to need this quirk anymore (composed column's min-width is removed.)

  • page/Quirks.cpp:

(WebCore::Quirks::shouldIgnoreShrinkToFitContent const): Deleted.
(WebCore::Quirks::overriddenViewLayoutWidth const): Deleted.

  • page/Quirks.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setViewportConfigurationViewLayoutSize):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::resetViewportDefaultConfiguration):
(WebKit::WebPage::immediatelyShrinkToFitContent):
(WebKit::WebPage::viewLayoutSizeAdjustedForQuirks): Deleted.

9:11 PM Changeset in webkit [247469] by keith_miller@apple.com
  • 49 edits
    18 copies
    159 adds
    5 deletes in trunk/JSTests

Update test262
https://bugs.webkit.org/show_bug.cgi?id=199801

Rubber-stamped by Yusuke Suzuki.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/Symbol.toStringTag.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-job-not-active-throws.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-length.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-missing-internal-throws.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-name.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-not-object-throws.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-prop-desc.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/proto.js: Added.

(callback):
(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/constructor.js: Added.
  • test262/test/built-ins/FinalizationGroup/gc-has-one-chance-to-call-cleanupCallback.js: Added.

(cb):
(fg.new.FinalizationGroup):
(emptyCells):
(async.fn):
(fn.then.async):

  • test262/test/built-ins/FinalizationGroup/instance-extensible.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/newtarget-prototype-is-not-object.js: Added.

(newTarget):
(fn):

  • test262/test/built-ins/FinalizationGroup/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/proto-from-ctor-realm.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/proto.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype-from-newtarget-abrupt.js: Added.

(newTarget):

  • test262/test/built-ins/FinalizationGroup/prototype-from-newtarget-custom.js: Added.

(newTarget):

  • test262/test/built-ins/FinalizationGroup/prototype-from-newtarget.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/Symbol.toStringTag.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/callback-iterator-proto.js: Added.

(callback):
(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/callback-not-callable-throws.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-reference.js: Added.

(cb):
(fg.new.FinalizationGroup):
(emptyCells):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js: Added.

(fg.new.FinalizationGroup):
(fg.cleanupSome.cb):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanupcallback-iterator-proto.js: Added.

(callback):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/custom-this.js: Added.

(fn):
(cb):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/gc-cleanup-not-prevented-with-wr-deref.js: Added.

(cb):
(fg.new.FinalizationGroup):
(emptyCells):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-dynamic.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-holdings-multiple-values.js: Added.

(fg.new.FinalizationGroup):
(callback):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/poisoned-callback-throws.js: Added.

(poisoned):
(fg.new.FinalizationGroup):
(emptyCells):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/poisoned-cleanup-callback-throws.js: Added.

(poisoned):
(emptyCells):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/return-undefined-with-gc.js: Added.

(fn):
(cb):
(emptyCells):
(prototype.assert.sameValue.fg.cleanupSome):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/return-undefined.js: Added.

(fn):
(cb):
(poisoned):
(assert.sameValue.fg.cleanupSome):
(prototype.assert.sameValue.fg.cleanupSome):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js: Added.

(cb):

  • test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/this-not-object-throws.js: Added.

(cb):

  • test262/test/built-ins/FinalizationGroup/prototype/constructor.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/proto.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/custom-this.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/prototype/register/holdings-any-value-type.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/register/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/prototype/register/target-not-object-throws.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/register/this-does-not-have-internal-target-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/this-not-object-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-not-object-or-undefined-throws.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-target.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/prototype/unregister/custom-this.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/prototype/unregister/length.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/name.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/prop-desc.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/this-does-not-have-internal-cells-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/this-not-object-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister.js: Added.

(fn):

  • test262/test/built-ins/FinalizationGroup/prototype/unregister/unregisterToken-not-object-throws.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/returns-new-object-from-constructor.js: Added.

(cleanupCallback):
(let.key.of.Object.getOwnPropertyNames):
(set for):

  • test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js: Added.
  • test262/test/built-ins/FinalizationGroup/undefined-newtarget-throws.js: Added.

(FinalizationGroup):

  • test262/test/built-ins/FinalizationGroup/unnaffected-by-poisoned-cleanupCallback.js: Added.

(cleanupCallback):
(let.key.of.Object.getOwnPropertyNames):
(set for):

  • test262/test/built-ins/Function/StrictFunction_restricted-properties.js:
  • test262/test/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js:
  • test262/test/built-ins/Function/prototype/restricted-property-arguments.js:
  • test262/test/built-ins/Function/prototype/restricted-property-caller.js:
  • test262/test/built-ins/Object/prototype/toString/proxy-function-async.js: Added.

(asyncProxy.new.Proxy.async):

  • test262/test/built-ins/Object/prototype/toString/proxy-function.js:

(asyncProxy.new.Proxy.async):

  • test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-builtin.js: Added.

(setIter.set Symbol):
(set defaultTag):
(gen):
(get return):
(set new):

  • test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-proxy-function.js: Added.

(generatorProxy.new.Proxy):
(asyncProxy.new.Proxy.async):

  • test262/test/built-ins/Object/subclass-object-arg.js:
  • test262/test/built-ins/Promise/all/invoke-resolve-get-error-close.js:
  • test262/test/built-ins/Promise/all/resolve-element-function-name.js:
  • test262/test/built-ins/Promise/allSettled/invoke-resolve-get-error-close.js:
  • test262/test/built-ins/Promise/allSettled/reject-element-function-name.js:
  • test262/test/built-ins/Promise/allSettled/resolve-element-function-name.js:
  • test262/test/built-ins/Promise/executor-function-name.js:
  • test262/test/built-ins/Promise/race/invoke-resolve-get-error-close.js:
  • test262/test/built-ins/Promise/reject-function-name.js:
  • test262/test/built-ins/Promise/resolve-function-name.js:
  • test262/test/built-ins/Set/prototype/values/does-not-have-setdata-internal-slot-weakset.js:
  • test262/test/built-ins/WeakRef/constructor.js: Added.
  • test262/test/built-ins/WeakRef/instance-extensible.js: Added.
  • test262/test/built-ins/WeakRef/length.js: Added.
  • test262/test/built-ins/WeakRef/name.js: Added.
  • test262/test/built-ins/WeakRef/newtarget-prototype-is-not-object.js: Added.

(newTarget):

  • test262/test/built-ins/WeakRef/prop-desc.js: Added.
  • test262/test/built-ins/WeakRef/proto-from-ctor-realm.js: Added.
  • test262/test/built-ins/WeakRef/proto.js: Added.
  • test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js: Added.

(newTarget):

  • test262/test/built-ins/WeakRef/prototype-from-newtarget-custom.js: Added.

(newTarget):

  • test262/test/built-ins/WeakRef/prototype-from-newtarget.js: Added.
  • test262/test/built-ins/WeakRef/prototype/Symbol.toStringTag.js: Added.
  • test262/test/built-ins/WeakRef/prototype/constructor.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/custom-this.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js: Added.

(emptyCells):

  • test262/test/built-ins/WeakRef/prototype/deref/length.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/name.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/prop-desc.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/return-target.js: Added.
  • test262/test/built-ins/WeakRef/prototype/deref/this-does-not-have-internal-target-throws.js: Added.

(fg.new.FinalizationGroup):

  • test262/test/built-ins/WeakRef/prototype/deref/this-not-object-throws.js: Added.
  • test262/test/built-ins/WeakRef/prototype/prop-desc.js: Added.
  • test262/test/built-ins/WeakRef/prototype/proto.js: Added.
  • test262/test/built-ins/WeakRef/returns-new-object-from-constructor.js: Added.

(let.key.of.Object.getOwnPropertyNames):
(set for):

  • test262/test/built-ins/WeakRef/target-not-object-throws.js: Added.
  • test262/test/built-ins/WeakRef/undefined-newtarget-throws.js: Added.
  • test262/test/intl402/BigInt/prototype/toLocaleString/builtin.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/default-options-object-prototype.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/length.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/returns-same-results-as-NumberFormat.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/taint-Intl-NumberFormat.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/this-value-invalid.js:
  • test262/test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js:
  • test262/test/intl402/DateTimeFormat/constructor-options-order-quarter.js: Removed.
  • test262/test/intl402/DateTimeFormat/constructor-options-quarter-invalid.js: Removed.
  • test262/test/intl402/DateTimeFormat/constructor-options-quarter-valid.js: Removed.
  • test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-long-en.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-narrow-en.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-short-en.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-date-string.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-near-time-boundaries.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-to-integer.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/builtin.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/prop-desc.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-date-string.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-near-time-boundaries.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-to-integer.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/builtin.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/prop-desc.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-long-en.js: Added.

(assertParts):
(assertPartsNumeric):

  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-narrow-en.js: Added.

(assertParts):
(assertPartsNumeric):

  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-short-en.js: Added.

(assertParts):
(assertPartsNumeric):

  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js: Added.

(assertParts):

  • test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-quarter.js: Removed.
  • test262/test/intl402/DateTimeFormat/taint-Object-prototype-quarter.js: Removed.
  • test262/test/intl402/RelativeTimeFormat/prototype/format/en-us-numeric-auto.js:
  • test262/test/intl402/RelativeTimeFormat/prototype/formatToParts/en-us-numeric-auto.js:
  • test262/test/language/expressions/arrow-function/ArrowFunction_restricted-properties.js:
  • test262/test/language/expressions/class/elements/private-field-access-on-inner-arrow-function.js: Added.

(C.prototype.method):

  • test262/test/language/expressions/class/elements/private-field-access-on-inner-function.js: Added.

(C.prototype.method.innerFunction):
(C.prototype.method):

  • test262/test/language/expressions/class/elements/private-getter-access-on-inner-arrow-function.js: Added.

(C):
(C.method):

  • test262/test/language/expressions/class/elements/private-getter-access-on-inner-function.js: Added.

(C):
(C.method.innerFunction):
(C.method):

  • test262/test/language/expressions/class/elements/private-getter-is-not-a-own-property.js: Added.

(C):
(C.checkPrivateGetter):

  • test262/test/language/expressions/class/elements/private-method-access-on-inner-arrow-function.js: Added.

(C):
(C.method):

  • test262/test/language/expressions/class/elements/private-method-access-on-inner-function.js: Added.

(C):
(C.method.innerFunction):
(C.method):

  • test262/test/language/expressions/class/elements/private-method-is-not-a-own-property.js: Added.

(C):
(C.checkPrivateMethod):

  • test262/test/language/expressions/class/elements/private-setter-access-on-inner-arrow-function.js: Added.

(C):
(C.method):

  • test262/test/language/expressions/class/elements/private-setter-access-on-inner-function.js: Added.

(C):
(C.method.innerFunction):
(C.method):

  • test262/test/language/expressions/class/elements/private-setter-is-not-a-own-property.js: Added.

(C):
(C.checkPrivateSetter):

  • test262/test/language/expressions/class/elements/prod-private-getter-before-super-return-in-field-initializer.js:
  • test262/test/language/expressions/class/elements/prod-private-method-before-super-return-in-field-initializer.js:
  • test262/test/language/expressions/class/elements/prod-private-setter-before-super-return-in-field-initializer.js:
  • test262/test/language/expressions/class/poisoned-underscore-proto.js: Added.
  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(const.C):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.prototype.m):
(let.classStringExpression.prototype.access):
(let.classStringExpression):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.prototype.m):
(let.classStringExpression.prototype.access):
(let.classStringExpression):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(const.C):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.return.C.prototype.m):
(let.classStringExpression.return.C.prototype.access):
(let.classStringExpression.return.C):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.return.C.prototype.m):
(let.classStringExpression.return.C.prototype.access):
(let.classStringExpression.return.C):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(const.C):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.

(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):

  • test262/test/language/expressions/new.target/unary-expr.js: Added.

(new):
(async):

  • test262/test/language/expressions/super/call-poisoned-underscore-proto.js: Added.

(A):

  • test262/test/language/expressions/super/prop-poisoned-underscore-proto.js: Added.
  • test262/test/language/identifiers/vals-cjk-escaped.js: Added.
  • test262/test/language/identifiers/vals-cjk.js: Added.
  • test262/test/language/statements/class/elements/private-class-field-on-frozen-objects.js:
  • test262/test/language/statements/class/elements/private-field-access-on-inner-arrow-function.js: Added.

(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-field-access-on-inner-function.js: Added.

(C.prototype.method.innerFunction):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-field-is-not-clobbered-by-computed-property.js: Added.

(C.prototype.checkPrivateField):
(C):

  • test262/test/language/statements/class/elements/private-field-visible-to-direct-eval-on-initializer.js: Added.

(C):

  • test262/test/language/statements/class/elements/private-field-visible-to-direct-eval.js: Added.

(C.prototype.getWithEval):
(C):
(D):

  • test262/test/language/statements/class/elements/private-getter-access-on-inner-arrow-function.js: Added.

(C.prototype.get m):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-getter-access-on-inner-function.js: Added.

(C.prototype.get m):
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js:

(let.createAndInstantiateClass):

  • test262/test/language/statements/class/elements/private-getter-is-not-a-own-property.js: Added.

(C.prototype.get m):
(C.prototype.checkPrivateGetter):
(C):

  • test262/test/language/statements/class/elements/private-getter-is-not-clobbered-by-computed-property.js: Added.

(C.prototype.get m):
(C.prototype.checkPrivateGetter):
(C):

  • test262/test/language/statements/class/elements/private-getter-visible-to-direct-eval-on-initializer.js: Added.

(C.prototype.get m):
(C):

  • test262/test/language/statements/class/elements/private-getter-visible-to-direct-eval.js: Added.

(C.prototype.get m):
(C.prototype.getWithEval):
(C):
(D.prototype.get m):
(D):

  • test262/test/language/statements/class/elements/private-method-access-on-inner-arrow-function.js: Added.

(C.prototype.m):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-method-access-on-inner-function.js: Added.

(C.prototype.m):
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-method-is-not-a-own-property.js: Added.

(C.prototype.m):
(C.prototype.checkPrivateMethod):
(C):

  • test262/test/language/statements/class/elements/private-method-is-not-clobbered-by-computed-property.js: Added.

(C.prototype.m):
(C.prototype.checkPrivateMethod):
(C):

  • test262/test/language/statements/class/elements/private-method-visible-to-direct-eval-on-initializer.js: Added.

(C.prototype.m):
(C):

  • test262/test/language/statements/class/elements/private-method-visible-to-direct-eval.js: Added.

(C.prototype.m):
(C.prototype.getWithEval):
(C):
(D.prototype.m):
(D):

  • test262/test/language/statements/class/elements/private-setter-access-on-inner-arrow-function.js: Added.

(C.prototype.set m):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-setter-access-on-inner-function.js: Added.

(C.prototype.set m):
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):

  • test262/test/language/statements/class/elements/private-setter-is-not-a-own-property.js: Added.

(C.prototype.set m):
(C.prototype.checkPrivateSetter):
(C):

  • test262/test/language/statements/class/elements/private-setter-is-not-clobbered-by-computed-property.js: Added.

(C.prototype.set m):
(C.prototype.checkPrivateSetter):
(C):

  • test262/test/language/statements/class/elements/private-setter-visible-to-direct-eval-on-initializer.js: Added.

(C.prototype.set m):
(C):

  • test262/test/language/statements/class/elements/private-setter-visible-to-direct-eval.js: Added.

(C.prototype.set m):
(C.prototype.setWithEval):
(C):
(D.prototype.set m):
(D):

  • test262/test/language/statements/class/elements/prod-private-getter-before-super-return-in-field-initializer.js:
  • test262/test/language/statements/class/elements/prod-private-method-before-super-return-in-field-initializer.js:
  • test262/test/language/statements/class/elements/prod-private-setter-before-super-return-in-field-initializer.js:
  • test262/test/language/statements/class/elements/super-access-inside-a-private-getter.js: Added.

(A.prototype.method):
(A):
(C.prototype.get m):
(C.prototype.access):
(C):

  • test262/test/language/statements/class/elements/super-access-inside-a-private-method.js: Added.

(A.prototype.method):
(A):
(C.prototype.m):
(C.prototype.access):
(C):

  • test262/test/language/statements/class/elements/super-access-inside-a-private-setter.js: Added.

(A.prototype.method):
(A):
(C.prototype.set m):
(C.prototype.access):
(C):

  • test262/test/language/statements/class/poisoned-underscore-proto.js: Added.

(A):

  • test262/test/language/statements/function/13.2-30-s.js:
  • test262/test262-Revision.txt:
8:50 PM Changeset in webkit [247468] by sbarati@apple.com
  • 5 edits
    2 adds in trunk

[WHLSL] Matrix memory layout should match HLSL by laying out columns linearly
https://bugs.webkit.org/show_bug.cgi?id=199215

Reviewed by Myles C. Maxfield.

Source/WebCore:

This patch makes it so that we lay out matrices in memory in the same
way HLSL does. This is by laying out columns linearly in memory. So a float4x4
composed by this series of floats in memory:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

composes this logical matrix:
[[ 0, 4, 8, 12]

[ 1, 5, 9, 13]
[ 2, 6, 10, 14]
[ 3, 7, 11, 15]]

To implement this, we switch to using an array to represent the memory
contents linear memory layout of a matrix. So the matrix float4x3 will now
be an array<float, 12> in metal. Then, we change the indexed getter and
setter methods for matrices to load and store from and to the correct
memory locations. The memory layout of matrices is observable to WHLSL
when using a matrix as an input/output to a shader.

Test: webgpu/whlsl-matrix-memory-layout.html

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::writeNativeFunction):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:

(WebCore::WHLSL::Metal::writeNativeType):

LayoutTests:

  • webgpu/whlsl-matrix-memory-layout-expected.txt: Added.
  • webgpu/whlsl-matrix-memory-layout.html: Added.
  • webgpu/whlsl-test-harness-test.html:
7:51 PM Changeset in webkit [247467] by Wenson Hsieh
  • 7 edits in trunk

[Text autosizing] [iPadOS] Product label text is clipped in portrait mode on the front page of sephora.com
https://bugs.webkit.org/show_bug.cgi?id=199806
<rdar://problem/52902482>

Reviewed by Zalan Bujtas.

Source/WebCore:

On sephora.com, some product label text is currently boosted by idempotent text autosizing, which causes the
labels be vertically clipped. This patch augments the idempotent text autosizing heuristic to avoid this case by
checking if the element to be boosted has a fixed height or max height, whose value is very close to a small
integer multiple of the line height. In this case, it's likely that the website expects the text to be no more
than a few lines' worth of height, so boosting the text is likely to break the page.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::isIdempotentTextAutosizingCandidate const):

  • rendering/style/TextSizeAdjustment.cpp:

(WebCore::AutosizeStatus::updateStatus):

  • rendering/style/TextSizeAdjustment.h:

Rename Fields::DisplayNone to Fields::AvoidSubtree to avoid introducing another bit in RenderStyle's inherited
flags.

LayoutTests:

Add a new test case to an existing layout test, which mimics the product label text on sephora.com's front page.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:
7:32 PM Changeset in webkit [247466] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[ Mojave WK1 ] Some Image tests are flakey failures and are failing in tandem with zoomed in or blank image results
https://bugs.webkit.org/show_bug.cgi?id=193108

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-07-15
Reviewed by Simon Fraser.

Add a workaround for <rdar://problem/17084993> in createBitmapContextFromWebView().
Re-request the snapshot at kCGWindowImageNominalResolution if it was captured
at the wrong scale.

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(takeWindowSnapshot):
(createBitmapContextFromWebView):

5:53 PM Changeset in webkit [247465] by mmaxfield@apple.com
  • 11 edits in trunk/Source

New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653

Unreviewed watchOS build fix.

Source/WebCore:

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory):

  • platform/graphics/FontCascadeDescription.cpp:
  • platform/graphics/FontDescription.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::invalidateFontCache):
(WebCore::lookupFallbackFont):

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontCascadeDescription::effectiveFamilyAt const):

  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:

(WebCore::FontFamilySpecificationCoreText::fontRanges const):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

Source/WTF:

  • wtf/Platform.h:
5:43 PM Changeset in webkit [247464] by commit-queue@webkit.org
  • 12 edits in trunk/Source

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

completely messed up the patch (Requested by litherum on
#webkit).

Reverted changeset:

"New York font erroneously gets synthetic bold"
https://bugs.webkit.org/show_bug.cgi?id=199653
https://trac.webkit.org/changeset/247462

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

Keyword lookup can use memcmp to get around unaligned load undefined behavior
https://bugs.webkit.org/show_bug.cgi?id=199650

Patch by Saagar Jha <saagarjha@apple.com> on 2019-07-15
Reviewed by Yusuke Suzuki.

Replace KeywordLookup's hand-rolled "memcmp" with the standard version, which reduces the need to deal with
endianness and unaligned loads.

  • KeywordLookupGenerator.py:

(Trie.printSubTreeAsC): Use memcmp instead of macros to test for matches.
(Trie.printAsC): Unspecialize Lexer::parseKeyword as templating over the character type reduces the amount of
code we need to generate and moves this task out of the Python script and into the C++ compiler.

5:17 PM Changeset in webkit [247462] by mmaxfield@apple.com
  • 14 edits in trunk

Source/WebCore:
Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.

Patch by Simon Fraser <Simon Fraser> on 2019-07-11

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontWithFamilySpecialCase):

Source/WebKit:
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>

Reviewed by Simon Fraser.

Add the SPI to enable the new fonts.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetShouldAllowDesignSystemUIFonts):
(WKPreferencesGetShouldAllowDesignSystemUIFonts):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _shouldAllowDesignSystemUIFonts]):
(-[WKPreferences _setShouldAllowDesignSystemUIFonts:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WTF:
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>

Reviewed by Simon Fraser.

  • wtf/Platform.h:

LayoutTests:
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653
<rdar://problem/51692592>

Reviewed by Simon Fraser.

  • TestExpectations:
  • fast/text/design-system-ui-10-expected-mismatch.html: Added.
  • fast/text/design-system-ui-10.html: Added.
  • fast/text/design-system-ui-11-expected-mismatch.html: Added.
  • fast/text/design-system-ui-11.html: Added.
  • fast/text/design-system-ui-12-expected-mismatch.html: Added.
  • fast/text/design-system-ui-12.html: Added.
  • fast/text/design-system-ui-13-expected-mismatch.html: Added.
  • fast/text/design-system-ui-13.html: Added.
  • fast/text/design-system-ui-14-expected-mismatch.html: Added.
  • fast/text/design-system-ui-14.html: Added.
  • fast/text/design-system-ui-15-expected-mismatch.html: Added.
  • fast/text/design-system-ui-15.html: Added.
  • fast/text/design-system-ui-16-expected-mismatch.html: Added.
  • fast/text/design-system-ui-16.html: Added.
  • fast/text/design-system-ui-2-expected.html: Added.
  • fast/text/design-system-ui-2.html: Added.
  • fast/text/design-system-ui-3-expected-mismatch.html: Added.
  • fast/text/design-system-ui-3.html: Added.
  • fast/text/design-system-ui-4-expected-mismatch.html: Added.
  • fast/text/design-system-ui-4.html: Added.
  • fast/text/design-system-ui-5-expected-mismatch.html: Added.
  • fast/text/design-system-ui-5.html: Added.
  • fast/text/design-system-ui-6-expected.html: Added.
  • fast/text/design-system-ui-6.html: Added.
  • fast/text/design-system-ui-7-expected.html: Added.
  • fast/text/design-system-ui-7.html: Added.
  • fast/text/design-system-ui-8-expected-mismatch.html: Added.
  • fast/text/design-system-ui-8.html: Added.
  • fast/text/design-system-ui-9-expected-mismatch.html: Added.
  • fast/text/design-system-ui-9.html: Added.
  • fast/text/design-system-ui-expected.html: Added.
  • fast/text/design-system-ui.html: Added.
  • platform/mac/TestExpectations:
4:45 PM Changeset in webkit [247461] by beidson@apple.com
  • 9 edits in trunk

Make WKURLSchemeTask thread safe.
<rdar://problem/50471863> and https://bugs.webkit.org/show_bug.cgi?id=199764

Reviewed by Alex Christensen.

Source/WebKit:

Punt most of the WKURLSchemeTask operations back to the main thread.
Make accessing the NSURLRequest be thread safe with lock protection.

  • UIProcess/API/Cocoa/WKURLSchemeTask.mm:

(getExceptionTypeFromMainRunLoop):
(-[WKURLSchemeTaskImpl dealloc]):
(-[WKURLSchemeTaskImpl request]):
(-[WKURLSchemeTaskImpl _requestOnlyIfCached]):
(-[WKURLSchemeTaskImpl didReceiveResponse:]):
(-[WKURLSchemeTaskImpl didReceiveData:]):
(-[WKURLSchemeTaskImpl didFinish]):
(-[WKURLSchemeTaskImpl didFailWithError:]):
(-[WKURLSchemeTaskImpl _didPerformRedirection:newRequest:]):

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::WebURLSchemeTask):
(WebKit::WebURLSchemeTask::~WebURLSchemeTask):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::didReceiveResponse):
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):
(WebKit::WebURLSchemeTask::pageDestroyed):
(WebKit::WebURLSchemeTask::stop):
(WebKit::WebURLSchemeTask::nsRequest const):

  • UIProcess/WebURLSchemeTask.h:

(WebKit::WebURLSchemeTask::identifier const):
(WebKit::WebURLSchemeTask::pageID const):
(WebKit::WebURLSchemeTask::process):
(WebKit::WebURLSchemeTask::process const): Deleted.
(WebKit::WebURLSchemeTask::request const): Deleted.

Source/WTF:

  • wtf/MainThread.cpp:

(WTF::callOnMainAndWait):
(WTF::callOnMainRunLoopAndWait):
(WTF::callOnMainThreadAndWait):

  • wtf/MainThread.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
4:09 PM Changeset in webkit [247460] by Wenson Hsieh
  • 8 edits in trunk/Source/WebKit

Followup to r247439
https://bugs.webkit.org/show_bug.cgi?id=199788
<rdar://problem/52142570>

Reviewed by Tim Horton.

As it turns out, sending modern async completion-handler based IPC messages while processing incoming sync
messages results in a debug assertion. Instead of migrating FontAtSelection to the new async IPC mechanism,
restore the older CallbackID-based async IPC.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::fontAtSelection):
(WebKit::WebPageProxy::fontAtSelectionCallback):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::fontAtSelection):

4:06 PM Changeset in webkit [247459] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under DisplayRefreshMonitorManager::displayWasUpdated()
https://bugs.webkit.org/show_bug.cgi?id=199808
<rdar://problem/53070144>

Reviewed by Geoffrey Garen.

Copy m_monitors before iterating over it because the calling displayLinkFired() on the
monitor may end up calling DisplayRefreshMonitorManager::displayDidRefresh() synchronously,
which removes the monitor from m_monitors.

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::displayWasUpdated):

3:55 PM Changeset in webkit [247458] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

Unreviewed, a build fix after r247437

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

Added platform guard towards -[WKUIDelegate _presentingViewControllerForWebView:].

3:41 PM Changeset in webkit [247457] by ysuzuki@apple.com
  • 36 edits
    1 move
    139 adds
    2 deletes in trunk

[JSC] Improve wasm wpt test results by fixing miscellaneous issues
https://bugs.webkit.org/show_bug.cgi?id=199783

Reviewed by Mark Lam.

JSTests:

Fix our spec tests.

  • wasm/js-api/Module-compile.js:
  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch):

  • wasm/js-api/validate.js:
  • wasm/js-api/web-assembly-instantiate.js:
  • wasm/spec-tests/jsapi.js:

(testJSAPI.get test):
(testJSAPI.set test):

LayoutTests/imported/w3c:

Import web-platform-tests/wasm/jsapi. Some of tests are failing just because imported wpt tests are old.
They are fixed in the upstream. When upgrading wpt tests, we can mark them PASS.

  • resources/import-expectations.json:
  • web-platform-tests/wasm/jsapi/assertions.js: Added.

(assert_function_name):
(assert_function_length):

  • web-platform-tests/wasm/jsapi/bad-imports.js: Added.

(test_bad_imports):

  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.html: Added.
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.js: Added.

(test_bad_imports):

  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/constructor/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any.js: Added.

(assert_Global):
(test):
(test.get assert_array_equals):
(string_appeared_here.test):
(string_appeared_here.toString):
(string_appeared_here.valueOf):
(string_appeared_here.name.format_value):

  • web-platform-tests/wasm/jsapi/global/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/global/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any.js: Added.

(test):
(string_appeared_here.name.of.immutableOptions.test):
(string_appeared_here.name.of.mutableOptions.test):

  • web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/global/valueOf.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.js: Added.

(test_bad_imports):

  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any.js: Added.

(assert_exported_function):

  • web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any.js: Added.

(setup):
(test):

  • web-platform-tests/wasm/jsapi/instance/exports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/instance/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/interface.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/interface.any.html: Added.
  • web-platform-tests/wasm/jsapi/interface.any.js: Added.

(test_operations):
(test):
(const.name.of.interfaces.test):

  • web-platform-tests/wasm/jsapi/interface.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/interface.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/memory/buffer.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any.js: Added.

(assert_Memory):
(test):
(const.value.of.outOfRangeValues.test):
(test.get new):
(test.get assert_array_equals):

  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any.js: Added.

(assert_ArrayBuffer):
(test):
(valueOf):
(const.value.of.outOfRangeValues.test):

  • web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/memory/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any.js: Added.

(setup):
(test):

  • web-platform-tests/wasm/jsapi/module/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any.js: Added.

(assert_ArrayBuffer):
(assert_sections):
(setup):
(test):

  • web-platform-tests/wasm/jsapi/module/customSections.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any.js: Added.

(setup):
(assert_ModuleExportDescriptor):
(assert_exports):
(test):

  • web-platform-tests/wasm/jsapi/module/exports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any.js: Added.

(assert_ModuleImportDescriptor):
(assert_imports):
(setup):
(test):

  • web-platform-tests/wasm/jsapi/module/imports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/module/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/table/assertions.js: Added.

(assert_equal_to_array):

  • web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/constructor.any.js: Added.

(assert_Table):
(test):
(const.value.of.outOfRangeValues.test):
(test.get const):

  • web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any.js: Added.

(setup):
(test):
(test.set assert_equal_to_array):
(test.const.fn):
(valueOf):
(const.value.of.outOfRangeValues.test):

  • web-platform-tests/wasm/jsapi/table/get-set.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any.js: Added.

(nulls):
(test):
(valueOf):
(const.value.of.outOfRangeValues.test):

  • web-platform-tests/wasm/jsapi/table/grow.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/length.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/length.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/length.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/table/length.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/length.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/table/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/wasm-constants.js: Added.

(bytes):
(bytesWithHeader):
(makeSig):
(makeSig_v_x):
(makeSig_v_xx):
(makeSig_r_v):
(makeSig_r_x):
(makeSig_r_xx):
(assertTraps):
(assertWasmThrows):

  • web-platform-tests/wasm/jsapi/wasm-module-builder.js: Added.

(Binary.prototype.emit_u8):
(Binary.prototype.emit_u16):
(Binary.prototype.emit_u32):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_string):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(Binary):
(WasmFunctionBuilder):
(WasmFunctionBuilder.prototype.exportAs):
(WasmFunctionBuilder.prototype.exportFunc):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.addLocals):
(WasmFunctionBuilder.prototype.end):
(WasmGlobalBuilder):
(WasmGlobalBuilder.prototype.exportAs):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStart):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.addExplicitSection):
(WasmModuleBuilder.prototype.addType):
(WasmModuleBuilder.prototype.addGlobal):
(WasmModuleBuilder.prototype.addFunction):
(WasmModuleBuilder.prototype.addImport):
(WasmModuleBuilder.prototype.addImportedGlobal):
(WasmModuleBuilder.prototype.addImportedMemory):
(WasmModuleBuilder.prototype.addImportedTable):
(WasmModuleBuilder.prototype.addExport):
(WasmModuleBuilder.prototype.addExportOfKind):
(WasmModuleBuilder.prototype.addDataSegment):
(WasmModuleBuilder.prototype.exportMemoryAs):
(WasmModuleBuilder.prototype.addFunctionTableInit):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.setFunctionTableLength):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):

Source/JavaScriptCore:

This patch fixes miscellaneous issues in our Wasm JS API implementation to improve WPT score.
I picked trivial ones in this patch to make this easily reviewable.

  1. Remove WebAssemblyPrototype. It does not exist in the spec. Merging WebAssemblyPrototype into JSWebAssembly.
  2. Fix various attributes. It does not match to the usual JSC builtin's convention. But this change is correct because they are changed to be matched against WebIDL definition, and WebAssembly implementation follows WebIDL. In the future, we could move WebCore WebIDL things into WTF layer and even use (or leverage some of utility functions) in our WebAssembly JS API implementation.
  3. Fix how we interpret "present" in WebAssembly spec. This does not mean HasProperty? result. It follows to WebIDL spec, and it means that Get? result is not undefined.
  4. Add argument count check to Module.customSections, which is required because the method is defined in WebIDL.
  5. Fix toNonWrappingUint32 to match it to WebIDL's conversion rule.
  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/WebAssembly.js: Renamed from Source/JavaScriptCore/builtins/WebAssemblyPrototype.js.
  • jit/Repatch.cpp:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSModuleLoader.cpp:

(JSC::moduleLoaderParseModule):

  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::create):
(JSC::JSWebAssembly::finishCreation):
(JSC::reject):
(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::webAssemblyCompileFunc):
(JSC::resolve):
(JSC::JSWebAssembly::webAssemblyModuleValidateAsync):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::JSWebAssembly::instantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyValidateFunc):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):

  • wasm/js/JSWebAssembly.h:
  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::toNonWrappingUint32):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::finishCreation):

  • wasm/js/WebAssemblyInstancePrototype.cpp:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::constructJSWebAssemblyMemory):
(JSC::WebAssemblyMemoryConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryPrototype.cpp:
  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::webAssemblyModuleCustomSections):
(JSC::WebAssemblyModuleConstructor::finishCreation):

  • wasm/js/WebAssemblyPrototype.cpp: Removed.
  • wasm/js/WebAssemblyPrototype.h: Removed.
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::constructJSWebAssemblyTable):
(JSC::WebAssemblyTableConstructor::finishCreation):

  • wasm/js/WebAssemblyTablePrototype.cpp:

Source/WebCore:

Remove WebAssemblyPrototype.

Tests: imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.html

imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/valueOf.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/valueOf.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/exports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/exports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/interface.any.html
imported/w3c/web-platform-tests/wasm/jsapi/interface.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/buffer.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/buffer.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/grow.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/grow.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/customSections.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/customSections.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/exports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/exports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/imports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/imports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/get-set.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/get-set.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/grow.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/grow.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/length.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/length.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.worker.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::compileStreaming):
(WebCore::JSDOMWindowBase::instantiateStreaming):

LayoutTests:

  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
3:34 PM Changeset in webkit [247456] by Alan Coon
  • 30 edits
    32 deletes in tags/Safari-608.1.36

Revert r247377. rdar://problem/53125241

3:34 PM Changeset in webkit [247455] by Alan Coon
  • 2 edits in tags/Safari-608.1.36/Source/WebCore

Revert r247379. rdar://problem/53125241

3:29 PM Changeset in webkit [247454] by dino@apple.com
  • 2 edits in trunk/Source/WTF

MacCatalyst asserts when command key is raised
https://bugs.webkit.org/show_bug.cgi?id=199805
<rdar://problem/53120393>

Reviewed by Tim Horton.

Add USE_UIKIT_KEYBOARD_ADDITIONS for iOS 13+ and macCatalyst.

  • wtf/FeatureDefines.h:
3:27 PM Changeset in webkit [247453] by dino@apple.com
  • 15 edits in trunk/Source

[WebGL] Remove software rendering and simplify context creation on macOS
https://bugs.webkit.org/show_bug.cgi?id=199789

Reviewed by Sam Weinig.

Source/WebCore:

We don't ever want to fall-back to the software renderer. We'd be better
off failing to create the context completely.

Also, the number of fall-back attempts we were making before hitting
the software renderer was overkill. All hardware we support should
handle a 32bpp buffer.

Lastly, we don't want to support supersampling - multisampling only.

I lied… there is one more thing - failing to create the context
was causing an ASSERT trying to remove the GC3D from the global list.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • page/Settings.yaml: Remove forceSoftwareWebGL setting.
  • platform/graphics/GraphicsContext3DAttributes.h:
  • platform/graphics/GraphicsContext3DManager.cpp:

(WebCore::GraphicsContext3DManager::addContext):
(WebCore::GraphicsContext3DManager::removeContext):
(WebCore::GraphicsContext3DManager::removeContextRequiringHighPerformance):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::setPixelFormat): Deleted.

Source/WebKit:

Remove force software WebGL setting.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetForceSoftwareWebGLRendering): Deleted.
(WKPreferencesGetForceSoftwareWebGLRendering): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Remove force software WebGL setting.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences forceSoftwareWebGLRendering]): Deleted.
(-[WebPreferences setForceSoftwareWebGLRendering:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

3:24 PM Changeset in webkit [247452] by dino@apple.com
  • 52 edits in trunk/Source/WebCore

Move more WebGL things into unified builds
https://bugs.webkit.org/show_bug.cgi?id=199787

Reviewed by Wenson Hsieh.

Unify as many WebGL files as possible.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGLFramebuffer.cpp:
  • html/canvas/WebGLObject.h: Move a helper function into an inline.

(WebCore::objectOrZero):

  • html/canvas/WebGLRenderingContextBase.cpp:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:
3:14 PM Changeset in webkit [247451] by Alan Coon
  • 2 edits in tags/Safari-608.1.36/Source/WebKit

Cherry-pick r247436. rdar://problem/53106179

REGRESSION: Chase app crashes immediately after authentication
https://bugs.webkit.org/show_bug.cgi?id=199798
<rdar://problem/53106179>

Reviewed by Alex Christensen.

After r247411, we sometimes try to consult _page from WKWebView, before WKWebView's _page has been set. This
happens under a check for -[WKWebView _isEditable], from within -[WKContentView setupInteraction], which happens
if the host app is not linked on the iOS 12 SDK or earlier. To mitigate this, simply add a null check in
-_isEditable.

There's currently no great way to test this, since we don't have a mechanism for simulating linked-on checks.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isEditable]):

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

2:40 PM Changeset in webkit [247450] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Add missing webgpu includes
https://bugs.webkit.org/show_bug.cgi?id=199802
<rdar://problem/53119120>

Reviewed by Myles C. Maxfield.

WHLSLFunctionWriter.cpp fails to compile on tvOS and watchOS due to
missing includes. This file likely compiles on other platforms due to
the Unified Sources facility that clumps several implementation files
together, exposing those implementation files to the others' includes.
It fails on tvOS and watchOS due to the different ways these
implementation files can get clumped together on different platforms.

No new tests as there is no functional change.

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
2:36 PM Changeset in webkit [247449] by Alan Coon
  • 16 edits
    14 deletes in tags/Safari-608.1.36

Revert r247366. rdar://problem/53118665

2:36 PM Changeset in webkit [247448] by Alan Coon
  • 2 edits in tags/Safari-608.1.36/Source/WebCore

Revert r247378. rdar://problem/53118665

2:36 PM Changeset in webkit [247447] by Alan Coon
  • 11 edits
    3 deletes in tags/Safari-608.1.36/Source/WebCore

Revert r247397. rdar://problem/53118665

1:45 PM Changeset in webkit [247446] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

1:42 PM Changeset in webkit [247445] by Michael Catanzaro
  • 36 edits
    2 copies
    1 move
    1 delete in trunk

Unreviewed, rolling out r247440.

Broke builds

Reverted changeset:

"[JSC] Improve wasm wpt test results by fixing miscellaneous
issues"
https://bugs.webkit.org/show_bug.cgi?id=199783
https://trac.webkit.org/changeset/247440

1:40 PM Changeset in webkit [247444] by dbates@webkit.org
  • 15 edits
    4 adds in trunk

Typing into a cell in a Google Sheet lags behind by one character
https://bugs.webkit.org/show_bug.cgi?id=199587
<rdar://problem/51616845>

Reviewed by Brent Fulgham.

Source/WebCore:

Add a Google Sheets quirk. Put all DOM timers scheduled from keydown and keypress event listeners
into a holding tank. The timers continue to tick, but are barred from executing their action until
the next text insertion or deletion or 32 ms (on device) have elapsed, whichever is sooner. We only
allocate a holding tank once per document, only if the quirk is active, and this allocation is done
when the document schedules a timer on keydown or keypress. The holding tank lives for the lifetime
of the document.

The story behind the quirk:

On keypress Google Sheets schedules timers and expects that a DOM update will occur (i.e. text
will be inserted or deleted) within the same event loop iteration as the dispatched keypress. The
UI Events spec. [1] makes no such guarantee of when a DOM update must occur in relation to the keypress
event. It could happen in the same event loop iteration as the key press (as Google expects), the
next iteration, 500ms later, 2 minutes later, etc. What the spec does guarantee is that by the time
a DOM input event is dispatched that the DOM will be updated. And this is the solution to the problem
Google Sheets is trying to solve, but is doing so using pre-IE 9 technology (though similar
functionality was available via onpropertychange in IE < 9).

See also <https://github.com/w3c/uievents/issues/238>, which is tracking a spec. text update for
this quirk.

Test: fast/events/ios/dom-update-on-keydown-quirk.html

[1] <https://w3c.github.io/uievents/> (Editor's Draft, 14 October 2018)

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add some files to the project.

  • dom/Document.cpp:

(WebCore::Document::domTimerHoldingTank): Added.

  • dom/Document.h:

(WebCore::Document::domTimerHoldingTankIfExists): Added.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install): Put the newly instantiated timer into the holding tank.
(WebCore::DOMTimer::removeById): Remove the timer from the holding tank.
(WebCore::DOMTimer::fired): Check if the timer is in the holding tank. If it is and it is a one-
shot timer then schedule it for the next event loop iteration. If it's a repeating timer just
let it continue ticking. Otherwise, do what we no now and execute the timer's action. The reason
we do not suspend timers in the holding tank is because:

  1. Far out timers (Google Sheets registers timers as far out as 5 minutes!) are not penalized. Though smart supension logic could avoid this. See (3).
  1. Empirical observations indicate that the keyboard will perform the insertion or deletion reasonably quickly (not the same event loop iteration as the keydown, but within two iterations out). So, the timers in the holding tank are short-lived.
  1. Simplifies the code. There is no need to keep additional bookkeeping to track multiple timer suspension reasons (timers currently can only have one suspension reason) or alternatively defer scheduling a timer until a later time and computing a new "fair" firing time when scheduled.
  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent): Place a token on the stack to put all DOM timers
scheduled on keydown and keypress into the holding tank if the quirk is enabled.

  • page/Quirks.cpp:

(WebCore::Quirks::needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommand const): Added.

  • page/Quirks.h:
  • page/Settings.yaml: Added setting so that this quirk can be enabled from a layout test. This setting

also lets us enable the quirk for all sites or for certain third-party apps if desired.

  • page/ios/DOMTimerHoldingTank.cpp: Added.

(WebCore::DOMTimerHoldingTank::DOMTimerHoldingTank):
(WebCore::DOMTimerHoldingTank::add):
(WebCore::DOMTimerHoldingTank::remove):
(WebCore::DOMTimerHoldingTank::contains):
(WebCore::DOMTimerHoldingTank::removeAll):
(WebCore::DOMTimerHoldingTank::stopExceededMaximumHoldTimer):

  • page/ios/DOMTimerHoldingTank.h: Added.

(WebCore::DeferDOMTimersForScope::DeferDOMTimersForScope):
(WebCore::DeferDOMTimersForScope::~DeferDOMTimersForScope):
(WebCore::DeferDOMTimersForScope::isDeferring):

Source/WebKit:

Remove all timers from the holding tank on text insertion or deletion (represented as an
editing command). Timers that were in the holding tank never stopped ticking and will now
be able to execute their action.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::executeEditingCommand):
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::setCompositionAsync):
(WebKit::WebPage::confirmCompositionAsync):
Call platformWillPerformEditingCommand().

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::platformWillPerformEditingCommand): Added.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand): Remove all the timers from the holding
tank if we have a holding tank.

LayoutTests:

Add a test that enables the quirk and ensures that the DOM is up-to-date on expiration of a
zero timer scheduled from keydown, keypress, keyup, and input.

  • fast/events/ios/dom-update-on-keydown-quirk-expected.txt: Added.
  • fast/events/ios/dom-update-on-keydown-quirk.html: Added.
1:36 PM Changeset in webkit [247443] by Alan Coon
  • 1 copy in tags/Safari-608.1.36

Tag Safari-608.1.36.

1:35 PM Changeset in webkit [247442] by Ryan Haddad
  • 19 edits
    17 deletes in trunk

Unreviewed, rolling out r247397, r247378, r247366.

Broke watchOS builds.

Reverted changesets:

"[WebGPU] Implement GPUError and error scopes"
https://bugs.webkit.org/show_bug.cgi?id=199655
https://trac.webkit.org/changeset/247366/webkit

"[WebGPU] Move error scopes out of GPUDevice for more portable error generation"
https://bugs.webkit.org/show_bug.cgi?id=199740
https://trac.webkit.org/changeset/247397/webkit

1:23 PM Changeset in webkit [247441] by commit-queue@webkit.org
  • 8 edits in trunk

MathML WPT test for RadicalDegreeBottomRaisePercent fails
https://bugs.webkit.org/show_bug.cgi?id=183631

Patch by Rob Buis <rbuis@igalia.com> on 2019-07-15
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Adjust test expectation.

  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1-expected.txt:

Source/WebCore:

When stretching the radical operator also take thickness
and radical gap into account:
https://mathml-refresh.github.io/mathml-core/#radicals-msqrt-mroot

Test: imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1.html

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::layoutBlock):

LayoutTests:

Adjust test expectations.

  • platform/ios/mathml/presentation/roots-expected.txt:
  • platform/mac/mathml/presentation/roots-expected.txt:
  • platform/win/mathml/presentation/roots-expected.txt:
12:26 PM Changeset in webkit [247440] by ysuzuki@apple.com
  • 36 edits
    1 move
    139 adds
    2 deletes in trunk

[JSC] Improve wasm wpt test results by fixing miscellaneous issues
https://bugs.webkit.org/show_bug.cgi?id=199783

Reviewed by Mark Lam.

JSTests:

Fix our spec tests.

  • wasm/js-api/Module-compile.js:
  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch):

  • wasm/js-api/validate.js:
  • wasm/js-api/web-assembly-instantiate.js:
  • wasm/spec-tests/jsapi.js:

(testJSAPI.get test):
(testJSAPI.set test):

LayoutTests/imported/w3c:

Import web-platform-tests/wasm/jsapi. Some of tests are failing just because imported wpt tests are old.
They are fixed in the upstream. When upgrading wpt tests, we can mark them PASS.

  • resources/import-expectations.json:
  • web-platform-tests/wasm/jsapi/assertions.js: Added.

(assert_function_name):
(assert_function_length):

  • web-platform-tests/wasm/jsapi/bad-imports.js: Added.

(test_bad_imports):

  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.html: Added.
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.js: Added.

(test_bad_imports):

  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/constructor/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any.js: Added.

(assert_Global):
(test):
(test.get assert_array_equals):
(string_appeared_here.test):
(string_appeared_here.toString):
(string_appeared_here.valueOf):
(string_appeared_here.name.format_value):

  • web-platform-tests/wasm/jsapi/global/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/global/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any.js: Added.

(test):
(string_appeared_here.name.of.immutableOptions.test):
(string_appeared_here.name.of.mutableOptions.test):

  • web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/value-set.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any.html: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/global/valueOf.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/global/valueOf.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/global/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.js: Added.

(test_bad_imports):

  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any.js: Added.

(assert_exported_function):

  • web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any.js: Added.

(setup):
(test):

  • web-platform-tests/wasm/jsapi/instance/exports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/exports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/instance/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/instance/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/instance/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/interface.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/interface.any.html: Added.
  • web-platform-tests/wasm/jsapi/interface.any.js: Added.

(test_operations):
(test):
(const.name.of.interfaces.test):

  • web-platform-tests/wasm/jsapi/interface.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/interface.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/memory/buffer.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/buffer.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any.js: Added.

(assert_Memory):
(test):
(const.value.of.outOfRangeValues.test):
(test.get new):
(test.get assert_array_equals):

  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any.js: Added.

(assert_ArrayBuffer):
(test):
(valueOf):
(const.value.of.outOfRangeValues.test):

  • web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/grow.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/memory/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/memory/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/memory/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any.js: Added.

(setup):
(test):

  • web-platform-tests/wasm/jsapi/module/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any.js: Added.

(assert_ArrayBuffer):
(assert_sections):
(setup):
(test):

  • web-platform-tests/wasm/jsapi/module/customSections.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/customSections.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any.js: Added.

(setup):
(assert_ModuleExportDescriptor):
(assert_exports):
(test):

  • web-platform-tests/wasm/jsapi/module/exports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/exports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any.js: Added.

(assert_ModuleImportDescriptor):
(assert_imports):
(setup):
(test):

  • web-platform-tests/wasm/jsapi/module/imports.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/imports.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/module/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/module/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/module/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/table/assertions.js: Added.

(assert_equal_to_array):

  • web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/constructor.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/constructor.any.js: Added.

(assert_Table):
(test):
(const.value.of.outOfRangeValues.test):
(test.get const):

  • web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/constructor.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any.js: Added.

(setup):
(test):
(test.set assert_equal_to_array):
(test.const.fn):
(valueOf):
(const.value.of.outOfRangeValues.test):

  • web-platform-tests/wasm/jsapi/table/get-set.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/get-set.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any.js: Added.

(nulls):
(test):
(valueOf):
(const.value.of.outOfRangeValues.test):

  • web-platform-tests/wasm/jsapi/table/grow.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/grow.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/length.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/length.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/length.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/table/length.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/length.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any.html: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/table/toString.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/table/toString.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/wasm-constants.js: Added.

(bytes):
(bytesWithHeader):
(makeSig):
(makeSig_v_x):
(makeSig_v_xx):
(makeSig_r_v):
(makeSig_r_x):
(makeSig_r_xx):
(assertTraps):
(assertWasmThrows):

  • web-platform-tests/wasm/jsapi/wasm-module-builder.js: Added.

(Binary.prototype.emit_u8):
(Binary.prototype.emit_u16):
(Binary.prototype.emit_u32):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_string):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(Binary):
(WasmFunctionBuilder):
(WasmFunctionBuilder.prototype.exportAs):
(WasmFunctionBuilder.prototype.exportFunc):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.addLocals):
(WasmFunctionBuilder.prototype.end):
(WasmGlobalBuilder):
(WasmGlobalBuilder.prototype.exportAs):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStart):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.addExplicitSection):
(WasmModuleBuilder.prototype.addType):
(WasmModuleBuilder.prototype.addGlobal):
(WasmModuleBuilder.prototype.addFunction):
(WasmModuleBuilder.prototype.addImport):
(WasmModuleBuilder.prototype.addImportedGlobal):
(WasmModuleBuilder.prototype.addImportedMemory):
(WasmModuleBuilder.prototype.addImportedTable):
(WasmModuleBuilder.prototype.addExport):
(WasmModuleBuilder.prototype.addExportOfKind):
(WasmModuleBuilder.prototype.addDataSegment):
(WasmModuleBuilder.prototype.exportMemoryAs):
(WasmModuleBuilder.prototype.addFunctionTableInit):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.setFunctionTableLength):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):

Source/JavaScriptCore:

This patch fixes miscellaneous issues in our Wasm JS API implementation to improve WPT score.
I picked trivial ones in this patch to make this easily reviewable.

  1. Remove WebAssemblyPrototype. It does not exist in the spec. Merging WebAssemblyPrototype into JSWebAssembly.
  2. Fix various attributes. It does not match to the usual JSC builtin's convention. But this change is correct because they are changed to be matched against WebIDL definition, and WebAssembly implementation follows WebIDL. In the future, we could move WebCore WebIDL things into WTF layer and even use (or leverage some of utility functions) in our WebAssembly JS API implementation.
  3. Fix how we interpret "present" in WebAssembly spec. This does not mean HasProperty? result. It follows to WebIDL spec, and it means that Get? result is not undefined.
  4. Add argument count check to Module.customSections, which is required because the method is defined in WebIDL.
  5. Fix toNonWrappingUint32 to match it to WebIDL's conversion rule.
  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/WebAssembly.js: Renamed from Source/JavaScriptCore/builtins/WebAssemblyPrototype.js.
  • jit/Repatch.cpp:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSModuleLoader.cpp:

(JSC::moduleLoaderParseModule):

  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::create):
(JSC::JSWebAssembly::finishCreation):
(JSC::reject):
(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::webAssemblyCompileFunc):
(JSC::resolve):
(JSC::JSWebAssembly::webAssemblyModuleValidateAsync):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::JSWebAssembly::instantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyValidateFunc):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):

  • wasm/js/JSWebAssembly.h:
  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::toNonWrappingUint32):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::finishCreation):

  • wasm/js/WebAssemblyInstancePrototype.cpp:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::constructJSWebAssemblyMemory):
(JSC::WebAssemblyMemoryConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryPrototype.cpp:
  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::webAssemblyModuleCustomSections):
(JSC::WebAssemblyModuleConstructor::finishCreation):

  • wasm/js/WebAssemblyPrototype.cpp: Removed.
  • wasm/js/WebAssemblyPrototype.h: Removed.
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::constructJSWebAssemblyTable):
(JSC::WebAssemblyTableConstructor::finishCreation):

  • wasm/js/WebAssemblyTablePrototype.cpp:

Source/WebCore:

Remove WebAssemblyPrototype.

Tests: imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.html

imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/global/valueOf.any.html
imported/w3c/web-platform-tests/wasm/jsapi/global/valueOf.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/exports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/exports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/interface.any.html
imported/w3c/web-platform-tests/wasm/jsapi/interface.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/buffer.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/buffer.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/grow.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/grow.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/customSections.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/customSections.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/exports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/exports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/imports.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/imports.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/constructor.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/constructor.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/get-set.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/get-set.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/grow.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/grow.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/length.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/length.any.worker.html
imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.html
imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.worker.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::compileStreaming):
(WebCore::JSDOMWindowBase::instantiateStreaming):

LayoutTests:

  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
12:09 PM Changeset in webkit [247439] by Wenson Hsieh
  • 10 edits in trunk

[macOS 10.15] Cannot unbold selected text when the system font is used
https://bugs.webkit.org/show_bug.cgi?id=199788
<rdar://problem/52142570>

Reviewed by Tim Horton.

Source/WebKit:

In macOS 10.15, +[NSFont fontWithName:size:] no longer recognizes system fonts (of name
".SFNS-*") and returns nil instead. However, our existing implementation of
WebPageProxy::fontAtSelection works by grabbing the font name in the web process, and
sending it over to the UI process, where it is mapped to an NSFont. As a result, this always
results in a nil font in macOS 10.15, which causes us to never update NSFontManager's
selected font. In turn, this means that once selected text is bolded, it can't be unbolded
via NSFontManager, since NSFontManager thinks that the text is still not bold.

To fix this, we simply encode and send a platform FontInfo instead of sending the font name.
This allows the UI process to reconstruct NSFonts from font attribute dictionaries instead,
and update the font manager.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::fontAtSelection):

Refactor this to send a FontInfo (containing a font attribute dictionary) instead of a font
name.

(WebKit::WebPageProxy::fontAtSelectionCallback): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Change FontAtSelection to use sendWithAsyncReply instead of sending a callback ID. This also
allows us to remove FontAtSelectionCallback.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::fontAtSelection):

Tools:

Add a new API test to verify that bolding and unbolding updates the
shared font manager's selected font.

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

(TestWebKitAPI::TEST):

11:59 AM Changeset in webkit [247438] by youenn@apple.com
  • 20 edits
    2 adds in trunk

Enable a debug WebRTC mode without any encryption
https://bugs.webkit.org/show_bug.cgi?id=199177
<rdar://problem/52074986>

Reviewed by Eric Carlson.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

For every RTCPeerConnection, first set whether to use encryption or not
based on page settings.
If encryption is disabled, log it.
Add internals API to toggle the switch from tests.
Test: webrtc/disable-encryption.html

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::RTCPeerConnection):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):

  • inspector/agents/InspectorPageAgent.cpp:
  • page/Settings.yaml:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::setEnableWebRTCEncryption):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setEnableWebRTCEncryption):

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

Source/WebInspectorUI:

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

LayoutTests:

  • webrtc/disable-encryption-expected.txt: Added.
  • webrtc/disable-encryption.html: Added.
11:56 AM Changeset in webkit [247437] by jiewen_tan@apple.com
  • 4 edits in trunk

[iOS] SOAuthorizationSession should tell AppSSO whether the UIClient is capable of showing the extension UI
https://bugs.webkit.org/show_bug.cgi?id=199790
<rdar://problem/52790112>

Reviewed by Brent Fulgham.

Source/WebKit:

On iOS, WebKit relies on a SPI -[WKUIDelegatePrivate _presentingViewControllerForWebView:] to present the
extension UI. However, third party clients often don't implement this SPI. Therefore, WebKit will not be
able to present the extension UI for them.

To be able to show the extension UI for third party WebKit clients, WebKit should unset SOAuthorization.enableEmbeddedAuthorizationViewController
whenever clients don't implement the above SPI such that AppSSO could show the UI in their UI process.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::start):

Tools:

Add tests to check SOAuthorization.enableEmbeddedAuthorizationViewController accordingly.

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(-[TestSOAuthorizationDelegate _presentingViewControllerForWebView:]):
(configureSOAuthorizationWebView):
(TestWebKitAPI::TEST):
(-[TestSOAuthorizationNavigationDelegate init]): Deleted.
(-[TestSOAuthorizationNavigationDelegate webView:didFinishNavigation:]): Deleted.
(-[TestSOAuthorizationNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
(-[TestSOAuthorizationNavigationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted.
(-[TestSOAuthorizationNavigationDelegate _webView:decidePolicyForSOAuthorizationLoadWithCurrentPolicy:forExtension:completionHandler:]): Deleted.

11:50 AM Changeset in webkit [247436] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

REGRESSION: Chase app crashes immediately after authentication
https://bugs.webkit.org/show_bug.cgi?id=199798
<rdar://problem/53106179>

Reviewed by Alex Christensen.

After r247411, we sometimes try to consult _page from WKWebView, before WKWebView's _page has been set. This
happens under a check for -[WKWebView _isEditable], from within -[WKContentView setupInteraction], which happens
if the host app is not linked on the iOS 12 SDK or earlier. To mitigate this, simply add a null check in
-_isEditable.

There's currently no great way to test this, since we don't have a mechanism for simulating linked-on checks.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isEditable]):

11:03 AM Changeset in webkit [247435] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: AXI: Audit: Typos in Accessibility audits
https://bugs.webkit.org/show_bug.cgi?id=199716
<rdar://problem/52721711>

Patch by Greg Doolittle <gr3g@apple.com> on 2019-07-15
Reviewed by Devin Rousso.

  • UserInterface/Controllers/AuditManager.js:
10:17 AM Changeset in webkit [247434] by sihui_liu@apple.com
  • 6 edits in trunk

window.openDatabase is not writable
https://bugs.webkit.org/show_bug.cgi?id=199737
<rdar://problem/52551332>

Reviewed by Chris Dumez.

Source/WebCore:

In r246707 we made openDatabase an undetectable attribute of window, and it was set to be read-only. This broke
some sites which replace window.openDatabase with their own implementation when window.openDatabase does not
exists or WebSQL is not implemented.

This patch removes the readonly property and adds a setter for openDatabase.

  • Modules/webdatabase/DOMWindowWebDatabase.idl:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::setOpenDatabase):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebSQLBasics.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/opendatabase-always-exists.html:
9:54 AM Changeset in webkit [247433] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Parse and display layout test failures
https://bugs.webkit.org/show_bug.cgi?id=199709

Rubber-stamped by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests.start): Initialize log_observer.
(RunWebKitTests._strip_python_logging_prefix): Copied from similar code in build.webkit.org buildbot config.
(RunWebKitTests._parseRunWebKitTestsOutput): Ditto.
(RunWebKitTests.commandComplete): Gather and parse the stdout and stderr logs.
(RunWebKitTests.evaluateResult): Analyze the results and decide build status.
(RunWebKitTests.getResultSummary): Update build and step summary.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added and updated unit-tests.
9:18 AM Changeset in webkit [247432] by Ryan Haddad
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, attempt to fix production builds after r247403.

9:00 AM Changeset in webkit [247431] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Device Settings: update Safari user agent from 12.2 to 13.0
https://bugs.webkit.org/show_bug.cgi?id=199758

Reviewed by Maciej Stachowiak.

  • UserInterface/Base/Main.js:

(WI._handleDeviceSettingsToolbarButtonClicked):

7:32 AM Changeset in webkit [247430] by youenn@apple.com
  • 4 edits in trunk

Filter SDP c lines
https://bugs.webkit.org/show_bug.cgi?id=199791

Reviewed by Eric Carlson.

Source/WebCore:

As discussed in https://github.com/rtcweb-wg/mdns-ice-candidates/issues/91,
use 0.0.0.0 for c lines when filtering the SDP.
Covered by updated test.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::filterSDP const):

LayoutTests:

  • webrtc/datachannel/filter-ice-candidate.html:
6:39 AM Changeset in webkit [247429] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

naver.com: Video stops when tapping on the video to use buttons
https://bugs.webkit.org/show_bug.cgi?id=199784
<rdar://problem/48068610>

Reviewed by Maciej Stachowiak.

Opt out of simulated mouse event sending for tv.naver.com.
When tv.naver.com receives the simulated mouseUp at touchEnd, it pauses the video right away and calls preventDefault()
which prevents us from running the hover heuristics.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

5:37 AM WebKitGTK/2.24.x edited by Michael Catanzaro
(diff)
4:58 AM Changeset in webkit [247428] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

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

broke mips and arm EWS (Requested by guijemont on #webkit).

Reverted changeset:

"run-javascriptcore-tests won't report test results for
testmasm, testair, testb3, testdfg and test api"
https://bugs.webkit.org/show_bug.cgi?id=199489
https://trac.webkit.org/changeset/247393

1:58 AM Changeset in webkit [247427] by Michael Catanzaro
  • 3 edits in trunk/Source/WebCore

[GTK] GitHub breaks on FreeBSD because of "unsupported browser"
https://bugs.webkit.org/show_bug.cgi?id=199745

Reviewed by Carlos Garcia Campos.

It's been a while since I last updated the fake version numbers in our user agent, both for
the user agent quirks for naughty websites and also the Safari version in our standard user
agent. Update them. This should fix github.com on FreeBSD at least. I also noticed some
wonkiness on Google Docs recently that I thought required this update, but I didn't do
anything about it at the time because I wasn't able to reproduce the issue when I tried
again later.

This could absolutely break websites, because the web is awful, but that's calculated risk.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

1:47 AM Changeset in webkit [247426] by Tadeu Zagallo
  • 3 edits in trunk/Source/JavaScriptCore

Concurrent GC should not rely on current phase to determine if it's safe to steal conn
https://bugs.webkit.org/show_bug.cgi?id=199786
<rdar://problem/52505197>

Reviewed by Saam Barati.

In r246507, we fixed a race condition in the concurrent GC where the mutator might steal
the conn from the collector thread while it transitions from the End phase to NotRunning.
However, that fix was not sufficient. In the case that the mutator steals the conn, and the
execution interleaves long enough for the mutator to progress to a different collection phase,
the collector will resume in a phase other than NotRunning, and hence the check added to
NotRunning will not suffice. To fix that, we add a new variable to track whether the collector
thread is running (m_collectorThreadIsRunning) and use it to determine whether it's safe to
steal the conn, rather than relying on m_currentPhase.

  • heap/Heap.cpp:

(JSC::Heap::runNotRunningPhase):
(JSC::Heap::requestCollection):

  • heap/Heap.h:

Jul 14, 2019:

3:18 PM Changeset in webkit [247425] by Chris Dumez
  • 5 edits in trunk/Source

Add threading assertion to WeakPtrFactory::createWeakPtr()
https://bugs.webkit.org/show_bug.cgi?id=199639

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • platform/ScrollableArea.cpp:
  • rendering/RenderObject.cpp:

Source/WTF:

Add threading assertion to WeakPtrFactory::createWeakPtr() to make sure it
is called on the same thread where the WeakPtrFactory wad constructed.

  • wtf/WeakPtr.h:

(WTF::WeakPtrFactory::WeakPtrFactory):
(WTF::WeakPtrFactory::createWeakPtr const):

1:47 PM Changeset in webkit [247424] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.35.1/Source

Versioning.

1:35 PM Changeset in webkit [247423] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.35.1

New tag.

1:21 PM Changeset in webkit [247422] by dino@apple.com
  • 5 edits
    2 adds in trunk

WebGL not supported on WKWebView on UIKit for Mac
https://bugs.webkit.org/show_bug.cgi?id=199785
<rdar://problem/52911449>

Reviewed by Antoine Quint.

Source/WebCore:

UIKit for Mac was not creating a CGLPixelFormatObj because
it wasn't using the code hidden in PLATFORM(MAC). Instead
we should be guarding for USE(OPENGL).

There are still some inconsistencies: <rdar://53062794>

Test: webgl/smell-test.html

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::allowOfflineRenderers const): We have to return
true for this, since we don't have access to the Window Server.

Source/WTF:

MacCatalyst has Apple Graphics Control, although
this area is very messy, see <rdar://53062794>.

  • wtf/Platform.h:

LayoutTests:

Even though we don't yet run tests on UIKit for Mac, we
should have the most simple "is WebGL working?" ref test.

  • webgl/smell-test-expected.html: Added.
  • webgl/smell-test.html: Added.
Note: See TracTimeline for information about the timeline view.