Timeline



Jul 12, 2019:

10:14 PM Changeset in webkit [247414] by aestes@apple.com
  • 5 edits in trunk

[Cocoa] -loadFileURL:allowingReadAccessToURL: should fully resolve file URLs
https://bugs.webkit.org/show_bug.cgi?id=199768
<rdar://problem/52002206>

Reviewed by Geoffrey Garen.

Source/WebKit:

-loadFileURL:allowingReadAccessToURL: used -_web_originalDataAsWTFString from WKNSURLExtras
to convert the file and read access NSURLs to strings, which under the hood calls
CFURLGetBytes(). CFURLGetBytes() gets the URL's string without considering the base URL, so
if the client creates a URL like this:

NSURL *url = [NSURL fileURLWithPath:@"tmpfile.txt" relativeToURL:[NSURL fileURLWithPath:@"/tmp"]]

... then -_web_originalDataAsWTFString will merely return the string "tmpfile.txt". When
that is later converted back to a URL in WebPageProxy::loadFile(), we lose track of the base
component and refuse to load something that no longer looks like a file: URL.

Fixed this by fully resolving the URLs passed to -loadFileURL:allowingReadAccessToURL: when
converting to strings by using -[NSURL absoluteString] instead of -_web_originalDataAsWTFString.

  • Shared/Cocoa/WKNSURLExtras.mm:

(-[NSURL _web_originalDataAsWTFString]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadFileURL:allowingReadAccessToURL:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm:

(TEST):

8:22 PM Changeset in webkit [247413] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Remove wincairo queue from old EWS and dashboard
https://bugs.webkit.org/show_bug.cgi?id=199776

Reviewed by Don Olmstead.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
  • QueueStatusServer/config/queues.py:
8:21 PM Changeset in webkit [247412] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews-build] Enable wincairo queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=199593

Reviewed by Don Olmstead.

  • BuildSlaveSupport/ews-build/config.json: Enabled the triggers for wincairo builder.
  • BuildSlaveSupport/ews-build/factories.py: Added required build steps for wincairo factory.
  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Enable wincairo status-bubble.

6:50 PM Changeset in webkit [247411] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Turn off two finger gestures for editable non-scaled content
https://bugs.webkit.org/show_bug.cgi?id=199739
<rdar://problem/52107190>

Reviewed by Tim Horton.

This gesture is blocking a selection gesture. Turn it off as it is not
even being used in editable content.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView _didChangeWebViewEditability]):

5:53 PM Changeset in webkit [247410] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

SOAuthorizationSession::presentViewController should check WebPageProxy::isClosed()
https://bugs.webkit.org/show_bug.cgi?id=199755
<rdar://problem/52323585>

Reviewed by Chris Dumez.

WebPageProxy::pageClient() is not guaranteed to be non null all the time. Therefore, we should check
WebPageProxy::isClosed() before using it.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::presentViewController):

5:22 PM Changeset in webkit [247409] by keith_miller@apple.com
  • 2 edits in trunk/Source/bmalloc

Increase JSValue cage size on iOS and reduce the max slide
https://bugs.webkit.org/show_bug.cgi?id=199765

Reviewed by Saam Barati.

Since the WebContent jetsam limit has changed we sometimes run out
of JSValue cage VA space causing us to run out of memory for
arrays. This change makes the JSValue cage a more reasonable upper
limit for what should be possible without jetsamming.

The worst case memory mapping with this configuration is has not
changed from before. Under both configurations we could map 36GB
with a temporary mapping of 38GB (to align the VA to 2GB).

  • bmalloc/Gigacage.h:
5:09 PM Changeset in webkit [247408] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Enable logging for clicking SubmitToEWS button
https://bugs.webkit.org/show_bug.cgi?id=199757

Unreviewed minor infrastructure fix.

  • BuildSlaveSupport/ews-app/ews/views/submittoews.py:

(SubmitToEWS.post): Change logging level from debug to info.

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

[GStreamer] Mock GStreamer realtime sources should keep a Ref of their mock realtime media sources
https://bugs.webkit.org/show_bug.cgi?id=194326

WrappedMockRealtimeVideoSource is a subclass of RealtimeMediaSource which is refcounted, we can't
use a unique_ptr on those.

Also changed m_wrappedSource type to its actual type so it is cleaner even if needed
to upcast it to RealtimeMediaSource so some method that are made private in the mock
can still be called.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-07-12
Reviewed by Youenn Fablet.

This fixes MediaStream tests

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::create):
(WebCore::WrappedMockRealtimeAudioSource::asRealtimeMediaSource):
(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource):
(WebCore::m_wrappedSource):
(WebCore::MockGStreamerAudioCaptureSource::startProducingData):
(WebCore::MockGStreamerAudioCaptureSource::settings):
(WebCore::MockGStreamerAudioCaptureSource::capabilities):

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:

(WebCore::WrappedMockRealtimeVideoSource::create):
(WebCore::WrappedMockRealtimeVideoSource::asRealtimeMediaSource):
(WebCore::WrappedMockRealtimeVideoSource::WrappedMockRealtimeVideoSource):
(WebCore::m_wrappedSource):
(WebCore::MockGStreamerVideoCaptureSource::settings):
(WebCore::MockGStreamerVideoCaptureSource::capabilities):

  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:
4:21 PM Changeset in webkit [247406] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Changes: dismissing a blank property makes style rule to show in Changes panel
https://bugs.webkit.org/show_bug.cgi?id=199760

Reviewed by Devin Rousso.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype._updateOwnerStyleText):
Call updatePropertiesModifiedState even when _updateOwnerStyleText returns early.

4:09 PM Changeset in webkit [247405] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: always show all navigation bar items, but disable those that wouldn't work
https://bugs.webkit.org/show_bug.cgi?id=199594

Reviewed by Ross Kirsling.

Reorder the navigation items of the Elements tab (left to right):

  • Show rulers
  • Force print media styles
  • Force Dark Appearance / Force Light Appearance
  • Show compositing borders
  • Enable paint flashing
  • Show shadow DOM nodes

This way, "related" (e.g. print styles and dark/light appearance both relate to CSS media)
toggles are grouped closer together.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype._defaultAppearanceDidChange):
(WI.DOMTreeContentView.prototype._toggleAppearance):

  • Localizations/en.lproj/localizedStrings.js:
3:51 PM Changeset in webkit [247404] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Enable client certificate authentication unit test
https://bugs.webkit.org/show_bug.cgi?id=199735

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):
I originally wrote this in https://bugs.webkit.org/show_bug.cgi?id=197800 but it was disabled because it crashed.
I found what was crashing. I was reading out of bounds on my vector of 2 strings :(

3:15 PM Changeset in webkit [247403] by keith_miller@apple.com
  • 11 edits
    2 moves
    8 adds in trunk/Source/JavaScriptCore

Add API to get all the dependencies of a given JSScript
https://bugs.webkit.org/show_bug.cgi?id=199746

Reviewed by Saam Barati.

The method only returns the dependencies if the module was
actually evaluated. Technically, we know what the dependencies are
at the satisfy phase but for API simplicity we only provide that
information if the module graph was complete enough to at least
run.

This patch also fixes an issue where we would allow import
specifiers that didn't start "./" or "/". For reference, We have
this restriction to be consistent with the web/node. The
restriction exists in order to preserve namespace for
builtin-modules.

Lastly, this patch makes it so that we copy all scripts in the
API/tests/testapiScripts directory so they don't have to be
individually added to the xcode project.

  • API/JSAPIGlobalObject.mm:

(JSC::computeValidImportSpecifier):
(JSC::JSAPIGlobalObject::moduleLoaderResolve):
(JSC::JSAPIGlobalObject::moduleLoaderImportModule):

  • API/JSContext.mm:

(-[JSContext dependencyIdentifiersForModuleJSScript:]):

  • API/JSContextPrivate.h:
  • API/JSScript.h:
  • API/tests/testapi.mm:

(testFetchWithTwoCycle):
(testFetchWithThreeCycle):
(testModuleBytecodeCache):
(+[JSContextFileLoaderDelegate newContext]):
(-[JSContextFileLoaderDelegate fetchModuleScript:]):
(-[JSContextFileLoaderDelegate findScriptForKey:]):
(-[JSContextFileLoaderDelegate context:fetchModuleForIdentifier:withResolveHandler:andRejectHandler:]):
(testDependenciesArray):
(testDependenciesEvaluationError):
(testDependenciesSyntaxError):
(testDependenciesBadImportId):
(testDependenciesMissingImport):
(testObjectiveCAPI):

  • API/tests/testapiScripts/dependencyListTests/badModuleImportId.js: Added.
  • API/tests/testapiScripts/dependencyListTests/bar.js: Added.
  • API/tests/testapiScripts/dependencyListTests/dependenciesEntry.js: Added.
  • API/tests/testapiScripts/dependencyListTests/foo.js: Added.
  • API/tests/testapiScripts/dependencyListTests/missingImport.js: Added.
  • API/tests/testapiScripts/dependencyListTests/referenceError.js: Added.
  • API/tests/testapiScripts/dependencyListTests/syntaxError.js: Added.
  • API/tests/testapiScripts/testapi-function-overrides.js: Renamed from Source/JavaScriptCore/API/tests/testapi-function-overrides.js.
  • API/tests/testapiScripts/testapi.js: Renamed from Source/JavaScriptCore/API/tests/testapi.js.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ModuleLoader.js:

(dependencyKeysIfEvaluated):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::dependencyKeysIfEvaluated):

  • runtime/JSModuleLoader.h:
  • shell/CMakeLists.txt:
3:12 PM Changeset in webkit [247402] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk/Tools

Begin unifying TestWebKitAPI build
https://bugs.webkit.org/show_bug.cgi?id=199728

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Keith Miller.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Scripts/generate-unified-sources.sh: Added.
  • TestWebKitAPI/Sources.txt: Added.
  • TestWebKitAPI/SourcesCocoa.txt: Added.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3:08 PM Changeset in webkit [247401] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Source/WebKitLegacy

Begin unifying WebKitLegacy sources
https://bugs.webkit.org/show_bug.cgi?id=199730

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Keith Miller.

Source/WebKitLegacy:

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

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
3:03 PM Changeset in webkit [247400] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(macOS Catalina): Cannot quick look html documents in Mail
https://bugs.webkit.org/show_bug.cgi?id=199754
<rdar://problem/51304961>

Reviewed by Geoff Garen.

If the client asks us to load a file URL but does not provide a resource path, WebKit
would fallback to issuing a sandbox extension for /. This no longer works on mac OS
Catalina and it would thus fail to load the file.

To address the issue, if the attempt to create a sandbox extension for / fails, we now
fall back to issuing one for the file's baseURL (path of containing folder).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

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

Change RELEASE_ASSERT in DocumentWriter::addData to ASSERT and early return
https://bugs.webkit.org/show_bug.cgi?id=199756
<rdar://problem/51554775>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Brady Eidson.

Attempts to reach this assertion were unsuccessful, but sometimes this assertion crashes.
Let's change it to an early return to prevent crashes.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::addData):

2:35 PM Changeset in webkit [247398] by Simon Fraser
  • 10 edits
    1 move
    6 adds in trunk

[iOS WK2] Can't place caret or select in content that overflows a contenteditable element
https://bugs.webkit.org/show_bug.cgi?id=199741
rdar://problem/50545233

Reviewed by Wenson Hsieh.
Source/WebCore:

Various code paths for editing used renderer->absoluteBoundingBoxRect(), which is the border
box of the element (or a set of line boxes for inline elements) converted to absolute
coordinates. This excludes overflow content, but contenteditable needs to be able to
place the caret in overflow content, and allow selection rects to be in the overflow area
(if the element has visible overflow).

Try to clean this up by adding some static helpers on WebPage for accessing the relevant
rects, and use them in code call from visiblePositionInFocusedNodeForPoint(), and
code that is input to selectionClipRect.

This changes selectionClipRect to use the padding box (excluding borders), which is a progression.

Tests: editing/caret/ios/caret-in-overflow-area.html

editing/selection/ios/place-selection-in-overflow-area.html
editing/selection/ios/selection-extends-into-overflow-area.html

  • editing/FrameSelection.cpp:

(WebCore::DragCaretController::editableElementRectInRootViewCoordinates const):

Source/WebKit:

Various code paths for editing used renderer->absoluteBoundingBoxRect(), which is the border
box of the element (or a set of line boxes for inline elements) converted to absolute
coordinates. This excludes overflow content, but contenteditable needs to be able to
place the caret in overflow content, and allow selection rects to be in the overflow area
(if the element has visible overflow).

Try to clean this up by adding some static helpers on WebPage for accessing the relevant
rects, and use them in code call from visiblePositionInFocusedNodeForPoint(), and
code that is input to selectionClipRect.

This changes selectionClipRect to use the padding box (excluding borders), which is a progression.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):
(WebKit::elementBoundsInFrame):
(WebKit::constrainPoint):
(WebKit::WebPage::rootViewBoundsForElement):
(WebKit::WebPage::absoluteInteractionBoundsForElement):
(WebKit::WebPage::rootViewInteractionBoundsForElement):
(WebKit::WebPage::dispatchSyntheticMouseEventsForSelectionGesture):
(WebKit::WebPage::getFocusedElementInformation):
(WebKit::innerFrameQuad): Deleted.
(WebKit::elementRectInRootViewCoordinates): Deleted.

LayoutTests:

Re-enable editing/caret/ios, fixing the result of emoji.html which for some reason was
checked in as an html file (the test still fails).

  • editing/caret/ios/caret-in-overflow-area-expected.txt: Added.
  • editing/caret/ios/caret-in-overflow-area.html: Added.
  • editing/caret/ios/emoji-expected.txt: Renamed from LayoutTests/editing/caret/ios/emoji-expected.html.
  • editing/caret/ios/fixed-caret-position-after-scroll-expected.txt:
  • editing/caret/ios/fixed-caret-position-after-scroll.html:
  • editing/selection/ios/place-selection-in-overflow-area-expected.txt: Added.
  • editing/selection/ios/place-selection-in-overflow-area.html: Added.
  • editing/selection/ios/selection-extends-into-overflow-area-expected.txt: Added.
  • editing/selection/ios/selection-extends-into-overflow-area.html: Added.
  • platform/ios-wk2/TestExpectations:
2:07 PM Changeset in webkit [247397] by Justin Fan
  • 11 edits
    3 copies in trunk/Source/WebCore

[WebGPU] Move error scopes out of GPUDevice for more portable error generation
https://bugs.webkit.org/show_bug.cgi?id=199740

Reviewed by Myles C. Maxfield.

Move error generation into a separate RefCounted class to allow GPU objects to generate
errors independent of any GPUDevice.
Create GPUObjectBase to delegate error generation and refactor GPUBuffer to inherit from GPUObjectBase.

No behavior change or new tests. Error scopes covered by error-scopes-test.html.

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::WebGPUDevice): Now creates a GPUErrorGenerator.
(WebCore::WebGPUDevice::createBuffer const): Pass the GPUErrorGenerator to any created GPUBuffer.
(WebCore::WebGPUDevice::createBufferMapped const): Ditto.
(WebCore::WebGPUDevice::popErrorScope): Shouldn't be const. Can just ask for the GPUError rather than passing a lambda.
(WebCore::WebGPUDevice::pushErrorScope const): Deleted.
(WebCore::WebGPUDevice::popErrorScope const): Deleted.

  • Modules/webgpu/WebGPUDevice.h:

(WebCore::WebGPUDevice::pushErrorScope):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUBuffer.h: Now inherits from GPUObjectBase for error generation ease.
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateBuffer): Ensure GPUBuffers reference the GPUErrorGenerator.
(WebCore::GPUDevice::pushErrorScope): Deleted. No longer needed here.
(WebCore::GPUDevice::popErrorScope): Deleted.
(WebCore::GPUDevice::registerError): Deleted.

  • platform/graphics/gpu/GPUDevice.h: Move error scope logic out.
  • platform/graphics/gpu/GPUErrorGenerator.cpp: Added.

(WebCore::GPUErrorGenerator::pushErrorScope):
(WebCore::GPUErrorGenerator::popErrorScope):
(WebCore::GPUErrorGenerator::generateError):

  • platform/graphics/gpu/GPUErrorGenerator.h: Added.

(WebCore::GPUErrorGenerator::create):

  • platform/graphics/gpu/GPUObjectBase.h: Added.

(WebCore::GPUObjectBase::generateError):
(WebCore::GPUObjectBase::GPUObjectBase):

  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm: Use the GPUErrorGenerator directly during buffer creation.

(WebCore::GPUBuffer::validateBufferUsage):
(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::GPUBuffer):

  • platform/graphics/gpu/cocoa/GPUQueueMetal.mm:

(WebCore::GPUQueue::submit): Prevent possible null dereference.

1:58 PM Changeset in webkit [247396] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit

WebBackForwardListItem::setPageState should receive pageState by rvalue reference
https://bugs.webkit.org/show_bug.cgi?id=199535

Reviewed by Alex Christensen

Coverity is complaining here about copying PageState by value in the parameter list. It's
sort of a false positive, in that the PageState really does need to be copied here, so this
is the best we can do. But pass by value and then WTFMove() is a pretty strange way to write
it. Passing by rvalue reference would be better. This makes the copy more clear.

  • Shared/WebBackForwardListItem.h:

(WebKit::WebBackForwardListItem::setPageState):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::updateBackForwardItem):

1:14 PM Changeset in webkit [247395] by youenn@apple.com
  • 6 edits in trunk/Source

Add release logging for quota checks
https://bugs.webkit.org/show_bug.cgi?id=199697

Reviewed by Alex Christensen.

Source/WebCore:

Log whether a request to extend quota is made and the result of the request.
This logging should happen in the networking process.
No change of behavior.

  • platform/Logging.h:
  • storage/StorageQuotaManager.cpp:

(WebCore::StorageQuotaManager::askForMoreSpace):
(WebCore::StorageQuotaManager::processPendingRequests):

Source/WebKit:

Log requests made to the page and the result from the application.

  • Platform/Logging.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestStorageSpace):

1:08 PM Changeset in webkit [247394] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Remove unneeded variable in LocalStorageNamespace::getOrCreateStorageArea
https://bugs.webkit.org/show_bug.cgi?id=199477

Reviewed by Alex Christensen.

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):

12:50 PM Changeset in webkit [247393] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

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
<rdar://problem/47891081>

Patch by Zhifei Fang <zhifei_fang@apple.com> on 2019-07-12
Reviewed by Aakash Jain.

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

(RunJavaScriptCoreTests.countFailures):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
  • Scripts/run-javascriptcore-tests:

(runTest):
(reportTestFailures):
(runJSCStressTests):

11:01 AM Changeset in webkit [247392] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Connection::waitForSyncReply() uses wall time clock for timeout
https://bugs.webkit.org/show_bug.cgi?id=198712
Due to a nature of the system time (it might not be set, jump, be off
by a lot) it is better to use monotonically increasing time which is
exactly what's used in a similar place i.e. Connection::waitForMessage()

Patch by Pawel Stanek <p.stanek@metrological.com> on 2019-07-12
Reviewed by Alex Christensen.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::waitForSyncReply):

10:27 AM Changeset in webkit [247391] by youenn@apple.com
  • 8 edits in trunk

Stopping a cloned MediaStream video track should not stop any other video track
https://bugs.webkit.org/show_bug.cgi?id=199635

Reviewed by Eric Carlson.

Source/WebCore:

In case a track is requesting its source to end, the
RealtimeVideoSource should request its own source to end and not stop it directly.

Also, if a track is removing itself as an observer to a RealtimeVideoSource, we should
stop the underlying source only if this one does not have any other observer.
Covered by updated test.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::removeObserver):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::requestToEnd):
(WebCore::RealtimeVideoSource::stopBeingObserved):

  • platform/mediastream/RealtimeVideoSource.h:

LayoutTests:

  • fast/mediastream/mediastreamtrack-video-clone-expected.txt:
  • fast/mediastream/mediastreamtrack-video-clone.html:
10:11 AM Changeset in webkit [247390] by Justin Michaud
  • 4 edits
    1 add in trunk

B3 should reduce (integer) Sub(Neg(x), y) to Neg(Add(x, y))
https://bugs.webkit.org/show_bug.cgi?id=196371

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/mul-immediate-sub.js: Added.

(doTest):

Source/JavaScriptCore:

Adding these strength reductions gives 2x a (x86) and 3x (arm64) performance improvement
on the microbenchmark.

  • b3/B3ReduceStrength.cpp:
  • b3/testb3.cpp:

(JSC::B3::testSubSub):
(JSC::B3::testSubSub2):
(JSC::B3::testSubAdd):
(JSC::B3::testSubFirstNeg):
(JSC::B3::run):

9:59 AM Changeset in webkit [247389] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Make layout-tests' full_results.json accessible in Buildbot
https://bugs.webkit.org/show_bug.cgi?id=199743

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:
  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
8:19 AM Changeset in webkit [247388] by timothy@apple.com
  • 23 edits in trunk

Drop DarkModeCSSEnabled as an experimental feature and always enable it.
https://bugs.webkit.org/show_bug.cgi?id=199725
rdar://problem/52970972

Reviewed by Megan Gardner.

Source/WebCore:

Tests: css-dark-mode

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/MediaQueryEvaluator.cpp:

(WebCore::prefersColorSchemeEvaluate):

  • css/MediaQueryExpression.cpp:

(WebCore::featureWithValidIdent):
(WebCore::isFeatureValidWithoutValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::process):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Deleted.

Source/WebKit:

  • Shared/WebPreferences.yaml: Removed DarkModeCSSEnabled.

LayoutTests:

Removed <!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
from all dark mode tests.

  • css-dark-mode/color-scheme-css-parse.html:
  • css-dark-mode/color-scheme-css.html:
  • css-dark-mode/color-scheme-meta.html:
  • css-dark-mode/color-scheme-priority.html:
  • css-dark-mode/color-scheme-scrollbar.html:
  • css-dark-mode/default-colors.html:
  • css-dark-mode/older-syntax/supported-color-schemes-css.html:
  • css-dark-mode/older-syntax/supported-color-schemes-meta.html:
  • css-dark-mode/older-systems/color-scheme-css.html:
  • css-dark-mode/older-systems/color-scheme-meta.html:
  • css-dark-mode/older-systems/prefers-color-scheme.html:
  • css-dark-mode/prefers-color-scheme-picture-element.html:
  • css-dark-mode/prefers-color-scheme.html:
7:47 AM Changeset in webkit [247387] by Caio Lima
  • 30 edits
    6 adds in trunk

[BigInt] Add ValueBitLShift into DFG
https://bugs.webkit.org/show_bug.cgi?id=192664

Reviewed by Saam Barati.

JSTests:

We are adding tests to cover ValueBitwise operations AI changes.

  • stress/big-int-left-shift-untyped.js: Added.
  • stress/bit-op-with-object-returning-int32.js:
  • stress/value-bit-and-ai-rule.js: Added.
  • stress/value-bit-lshift-ai-rule.js: Added.
  • stress/value-bit-or-ai-rule.js: Added.
  • stress/value-bit-xor-ai-rule.js: Added.

PerformanceTests:

  • BigIntBench/big-int-simple-lshift.js: Added.

Source/JavaScriptCore:

This patch is splitting the BitLShift into ArithBitLShift and
ValueBitLShift to handle BigInt speculation more efficiently during
DFG and FTL layers. Following the same approach of other ValueBitOps,
ValueBitLShift handles Untyped and BigInt speculations, while
ArithBitLShift handles number and boolean operands and always results into
Int32.

  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/Opcode.h:
  • dfg/DFGAbstractInterpreter.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

We moved BitLShift constant fold rules to a new method
handleConstantBinaryBitwiseOp to be reused by ArithBitLShift and
ValueBitLShift. This also enables support of constant folding on other
bitwise operations like ValueBitAnd, ValueBitOr and ValueBitXor, when
their binary use kind is UntypedUse. Such cases can happen on those
nodes because fixup phase is conservative.

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
(JSC::DFG::ByteCodeParser::parseBlock):

We parse op_lshift as ArithBitLShift when its operands are numbers.
Otherwise, we fallback to ValueBitLShift and rely on fixup phase to
convert ValueBitLShift into ArithBitLShift when possible.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

ArithBitLShift has the same clobberize rules as former BitLShift.
ValueBitLShift only clobberize world when it is UntypedUse.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

ValueBitLShift can GC when BigIntUse because it allocates new
JSBigInts to perform this operation. It also can GC on UntypedUse
because of observable user code.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

ValueBitLShift and ArithBitLShift has the same fixup rules of
other binary bitwise operations. In the case of ValueBitLShift
We check if we should speculate on BigInt or Untyped and fallback to
ArithBitLShift when both cheks fail.

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:

We updated operationValueBitLShift to handle BigInt cases. Also, we
added operationBitLShiftBigInt that is used when we compile
ValueBitLValueBitLShift(BigIntUse).

  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

ValueBitLShift's prediction propagation rules differs from other
bitwise operations, because using only heap prediction for this node causes
significant performance regression on Octane's zlib and mandreel.
The reason is because of cases where a function is compiled but the
instruction op_lshift was never executed before. If we use
getPrediction() we will emit a ForceOSRExit, resulting in more OSR
than desired. To solve such issue, we are then using
getPredictionWithoutOSR() and falling back to getHeapPrediction()
only on cases where we can't rely on node's input types.

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueLShiftOp):
(JSC::DFG::SpeculativeJIT::compileShiftOp):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::shiftOp):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileArithBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileBitLShift): Deleted.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

6:24 AM Changeset in webkit [247386] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

getIndexQuickly should be const
https://bugs.webkit.org/show_bug.cgi?id=199747

Reviewed by Yusuke Suzuki.

  • runtime/Butterfly.h:

(JSC::Butterfly::indexingPayload const):
(JSC::Butterfly::arrayStorage const):
(JSC::Butterfly::contiguousInt32 const):
(JSC::Butterfly::contiguousDouble const):
(JSC::Butterfly::contiguous const):

  • runtime/JSObject.h:

(JSC::JSObject::canGetIndexQuickly const):
(JSC::JSObject::getIndexQuickly const):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canGetIndexQuickly): Deleted.
(JSC::JSObject::getIndexQuickly): Deleted.

5:31 AM Changeset in webkit [247385] by clopez@igalia.com
  • 3 edits in trunk/Source/WebCore

Refactor ShadowBlur: remove some class variables and use function parameters instead.
https://bugs.webkit.org/show_bug.cgi?id=199511

Reviewed by Said Abou-Hallawa.

On the ShadowBlur class it is confusing to know if the status of the m_layerImage buffer or the
values calculated by calculateLayerBoundingRect() are valid between the different function calls.

To avoid this problem, pass this values as function parameters instead of storing them in the class.

No new tests, no intended behaviour change.

  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::ShadowBlur):
(WebCore::ShadowBlur::calculateLayerBoundingRect):
(WebCore::ShadowBlur::drawShadowBuffer):
(WebCore::ShadowBlur::drawRectShadow): Pass the parameters from the callback.
(WebCore::ShadowBlur::drawInsetShadow): Ditto.
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawLayerPieces):
(WebCore::ShadowBlur::drawLayerPiecesAndFillCenter):
(WebCore::ShadowBlur::blurShadowBuffer):
(WebCore::ShadowBlur::blurAndColorShadowBuffer):
(WebCore::ShadowBlur::drawShadowLayer):

  • platform/graphics/ShadowBlur.h: Use a struct to pass the values calculated on calculateLayerBoundingRect().
3:08 AM Changeset in webkit [247384] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[ATK] Avoid unneeded call to to core(selection) in listObjectForSelection()
https://bugs.webkit.org/show_bug.cgi?id=199748
<rdar://problem/52995908>

Reviewed by Konstantin Tokarev.

No new tests needed.

  • accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:

(listObjectForCoreSelection): Renamed from listObjectForSelection() and remove the
unneeded call to core() now that coreSelection is passed directly to the function.
(optionFromList): Change to pass coreSelection directly to listObjectForCoreSelection().

Jul 11, 2019:

9:36 PM Changeset in webkit [247383] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix non-thread safe use of makeWeakPtr() under MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify()
https://bugs.webkit.org/show_bug.cgi?id=199727

Reviewed by Eric Carlson.

Stop calling makeWeakPtr() on a main thread object from a background thread.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):

9:24 PM Changeset in webkit [247382] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Register a MediaStreamTrack as media producer only if it is a capture track
https://bugs.webkit.org/show_bug.cgi?id=199566
<rdar://problem/52761361>

Addressing post-landing comment to simplify setMuted call.
Unreviewed.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):

9:22 PM Changeset in webkit [247381] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Protect CoreAudioSharedUnit::m_clients for accessing in different threads simultaneously
https://bugs.webkit.org/show_bug.cgi?id=199717

Reviewed by Eric Carlson.

Add a lock whenever accessing to m_clients.
Manual tests show that audio capture still works.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::addClient):
(WebCore::CoreAudioSharedUnit::removeClient):
(WebCore::CoreAudioSharedUnit::forEachClient const):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::CoreAudioSharedUnit::captureFailed):

7:35 PM Changeset in webkit [247380] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Drop non thread-safe usage of WeakPtr in PlaybackSessionInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=199698

Reviewed by Eric Carlson.

The PlaybackSessionInterfaceAVKit constructor was making a weakPtr on the UI Thread
of an WebThread object. The WeakPtr would then be used as a data member throughout
the class on the UIThread. This is not thread-safe.

This patch switches to using a raw pointer instead of a WeakPtr. This is a partial
rollout of r243337, which turned the raw pointer into a WeakPtr for hardening
purposes. For extra safety, this patch updates the VideoFullscreenControllerContext
so that it notifies its clients (i.e. PlaybackSessionInterfaceAVKit) that it is
getting destroyed, so that they can null-out their m_playbackSessionModel data
member. This gives the sames guarantees than WeakPtr but in a thread-safe way.

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModelClient::modelDestroyed):

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

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceAVKit::modelDestroyed):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):

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

Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontWithFamilySpecialCase):

6:13 PM Changeset in webkit [247378] by Justin Fan
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp: Missing include.
6:08 PM Changeset in webkit [247377] by mmaxfield@apple.com
  • 30 edits
    32 adds in trunk

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:
5:49 PM Changeset in webkit [247376] by clopez@igalia.com
  • 23 edits in trunk/LayoutTests

[GTK][WPE] Rebaseline css3/blending tests with an empty homedir.

It seems this tests are sensible to some configuration of some
library as they produce different output (the layers with more left
margin) depending on that. The test pass on both cases, but the
check with the expected result fails, so it is flagged as failing.

This rebaselines the results to those that happen when running with
an empty/temporal homedir on Debian 10 to match what happens on the
bots. For more info see bugs 169916 and 199738.

Unreviewed gardening commit.

  • platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
  • platform/wpe/TestExpectations: css3/blending/svg-isolation-isolated-group.html passes with an empty homedir.
  • platform/wpe/css3/blending/svg-blend-layer-blend-expected.png:
  • platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt:
  • platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png:
  • platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt:
  • platform/wpe/css3/blending/svg-blend-layer-filter-expected.png:
  • platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt:
  • platform/wpe/css3/blending/svg-blend-layer-mask-expected.png:
  • platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt:
  • platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png:
  • platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt:
4:58 PM Changeset in webkit [247375] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: RunLoop::isMain() under IPC::Connection::sendWithAsyncReply()
https://bugs.webkit.org/show_bug.cgi?id=199734
<rdar://problem/52977439>

Reviewed by Geoffrey Garen.

It appears WKProcessTaskStateObserverDelegate's taskStateDidChange handler can get called
on a background thread so we need to make sure we go back to the main thread before we
go into WebKit and do IPC.

  • Shared/Cocoa/ProcessTaskStateObserver.mm:

(-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]):

4:47 PM Changeset in webkit [247374] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[iOS] fast/events/ios/rotation/orientationchange-event-listener-on.body.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=199732
<rdar://problem/52693087>

Reviewed by Alex Christensen.

Stop logging in each event listener to not be reliant on the order in which listener are called.
Instead, simply make sure all event listeners that should be called were actually called.

  • fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt:
  • fast/events/ios/rotation/orientationchange-event-listener-on.body.html:
4:30 PM Changeset in webkit [247373] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Make the test added in r247327 more reliable.

  • editing/selection/ios/autoscroll-with-top-content-inset-2.html:
4:18 PM Changeset in webkit [247372] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Unreviewed follow-up fix to r247364.
[ews-build] Add build step to clean up .git/index.lock file
https://bugs.webkit.org/show_bug.cgi?id=199722

  • BuildSlaveSupport/ews-build/steps.py:

(CheckOutSource): CheckOutSource should not haltOnFailure since CleanUpGitIndexLock step needs
to be run after this step.

3:53 PM Changeset in webkit [247371] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Layout Test fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is Failing Consistently on iOS-WK2.
https://bugs.webkit.org/show_bug.cgi?id=199731

Unreviewed Test Gardening

Patch by Russell Epstein <russell_e@apple.com> on 2019-07-11

  • platform/ios-wk2/TestExpectations:
3:26 PM Changeset in webkit [247370] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

StorageArea should not be destructed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=199713
<rdar://problem/52911900>

Reviewed by Alex Christensen.

After r246079, LocalStorageNameSpace could be destructed on the main thread and it may hold the last reference
to StorageArea. Then we saw the crashes that StorageArea was wrongly destructed on the main thread.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::~NetworkSession):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::waitUntilTasksFinished):
(WebKit::StorageManager::waitUntilWritesFinished): Deleted.

  • NetworkProcess/WebStorage/StorageManager.h:
3:22 PM Changeset in webkit [247369] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Null deref of Range under WebPage::startAutoscrollAtPosition
https://bugs.webkit.org/show_bug.cgi?id=199724
<rdar://problem/41127089>

Reviewed by Dean Jackson.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::startAutoscrollAtPosition):
Refactor this function to be early-return-y, and add one more
early return if the Range is null.

2:56 PM Changeset in webkit [247368] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Flaky API Test TestWTF.bmalloc.ScavengedMemoryShouldBeReused
https://bugs.webkit.org/show_bug.cgi?id=199524
<rdar://problem/52783816>

Reviewed by Saam Barati.

This test is white-box one and it has strong assumption how IsoHeap allocates pages.
But this test has several problems.

  1. IsoPage::numObjects is not the exact number of how many we allocate objects. This number is calculated by pageSize / sizeof(T), and this does not account the header size of IsoPage. So, # of objects per IsoPage is less than numObjects. Since sizeof(double) is very small, we can have many objects in one IsoPage. As a result, we need a large bitmap in IsoPage. This reduces # of objects in IsoPage largely. So, ptrs.size() becomes less than numObjects.
  1. We now have lower tier of allocation in IsoHeap. It means that we allocate 8 objects in shared page (page is shared, but memory is pinned for a specific type) before using IsoHeap's page. This also makes the intention of this test wrong.

Due to (1), we access OoB of ptrs vector, passing a garbage to IsoHeap::deallocate, and crashing.

We make this test robust while we still keep this test white-box one to test the critical feature
of IsoHeap. We first exhaust lower tier of IsoHeap, and after that, start testing the memory. We
allocate many pointers, deallocate them, allocate one pointer while keeping pointers in the lower
tier live, and check whether the deallocated memory is reused.

  • TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:

(TEST):

2:51 PM Changeset in webkit [247367] by Pablo Saavedra
  • 87 edits in trunk

[WPE][GTK] Build failure with ENABLE_ACCESSIBILITY=OFF
https://bugs.webkit.org/show_bug.cgi?id=199625

Added ENABLE(ACCESSIBILITY) and replaced HAVE(ACCESSIBILITY)
with ENABLE(ACCESSIBILITY) in the code.

Additionally, the TestRunner code generator now honors the
Conditional IDL format.

.:

Reviewed by Konstantin Tokarev.

  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

No new tests as there is no intended functional change

Reviewed by Konstantin Tokarev.

  • accessibility/AXObjectCache.cpp:
  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::detach):
(WebCore::AccessibilityObject::isDetached const):

  • accessibility/AccessibilityObject.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:
  • accessibility/atk/AccessibilityObjectAtk.cpp:
  • accessibility/atk/WebKitAccessible.cpp:
  • accessibility/atk/WebKitAccessible.h:
  • accessibility/atk/WebKitAccessibleHyperlink.cpp:
  • accessibility/atk/WebKitAccessibleHyperlink.h:
  • accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceAction.h:
  • accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceComponent.h:
  • accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceDocument.h:
  • accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
  • accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
  • accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceHypertext.h:
  • accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceImage.h:
  • accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceSelection.h:
  • accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceTable.h:
  • accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceTableCell.h:
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceText.h:
  • accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceValue.h:
  • accessibility/atk/WebKitAccessibleUtil.cpp:
  • accessibility/atk/WebKitAccessibleUtil.h:
  • accessibility/ios/AXObjectCacheIOS.mm:
  • accessibility/ios/AccessibilityObjectIOS.mm:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
  • accessibility/mac/AXObjectCacheMac.mm:
  • accessibility/mac/AccessibilityObjectBase.mm:
  • accessibility/mac/AccessibilityObjectMac.mm:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
  • accessibility/win/AccessibilityObjectWin.cpp:
  • accessibility/win/AccessibilityObjectWrapperWin.cpp:
  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):

  • editing/FrameSelection.h:
  • editing/atk/FrameSelectionAtk.cpp:
  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

Source/WebKit:

Reviewed by Konstantin Tokarev.

  • UIProcess/API/glib/WebKitWebViewAccessible.cpp:
  • UIProcess/API/glib/WebKitWebViewAccessible.h:
  • UIProcess/API/wpe/PageClientImpl.cpp:
  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):
(WKWPE::View::~View):

  • UIProcess/API/wpe/WPEView.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKAccessibilityRootObject):
(WKAccessibilityFocusedObject):
(WKAccessibilityEnableEnhancedAccessibility):
(WKAccessibilityEnhancedAccessibilityEnabled):

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp:
  • WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WebKitLegacy/mac:

Reviewed by Konstantin Tokarev.

  • WebView/WebFrame.mm:

(-[WebFrame setAccessibleName:]):
(-[WebFrame enhancedAccessibilityEnabled]):
(-[WebFrame setEnhancedAccessibility:]):
(-[WebFrame accessibilityRoot]):

Source/WTF:

Reviewed by Konstantin Tokarev.

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:

Tools:

Reviewed by Konstantin Tokarev.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityTextMarker.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityTextMarkerRange.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:

(_generateImplementationFile):

2:32 PM Changeset in webkit [247366] by Justin Fan
  • 16 edits
    14 adds in trunk

[WebGPU] Implement GPUError and error scopes
https://bugs.webkit.org/show_bug.cgi?id=199655

Reviewed by Myles C. Maxfield.

Source/WebCore:

Add GPUErrorFilter, GPUError, and the ability to push and pop error scopes on a GPUDevice.
This will allow us to check for WebGPU errors from JavaScript.
Currently, only some GPUBuffer creation errors are reported for testing; more errors will follow in later patches.

Test: webgpu/error-scopes-test.html

  • Modules/webgpu/GPUErrorFilter.idl: Added.
  • Modules/webgpu/GPUOutOfMemoryError.idl: Added.
  • Modules/webgpu/GPUValidationError.idl: Added.
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::pushErrorScope):
(WebCore::WebGPUDevice::popErrorScope): Resolve the Promise here, since GPUDevice shouldn't worry about DOM layer.

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDeviceErrorScopes.cpp: Added.

(WebCore::WebGPUDeviceErrorScopes::pushErrorScope): Delegates to WebGPUDevice.
(WebCore::WebGPUDeviceErrorScopes::popErrorScope): Ditto.

  • Modules/webgpu/WebGPUDeviceErrorScopes.h: Added.
  • Modules/webgpu/WebGPUDeviceErrorScopes.idl: Added.
  • platform/graphics/gpu/GPUBuffer.h:
  • platform/graphics/gpu/GPUDevice.cpp: The actual error stack lives here.

(WebCore::GPUDevice::pushErrorScope):
(WebCore::GPUDevice::popErrorScope): Calls a callback with a GPUError, if any.
(WebCore::GPUDevice::registerError): Actually creates GPUErrors.

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUError.cpp: Added.

(WebCore::createError): Factory function for various error types.

  • platform/graphics/gpu/GPUError.h: Added.
  • platform/graphics/gpu/GPUErrorFilter.h: Added.
  • platform/graphics/gpu/GPUOutOfMemoryError.h: Added.

(WebCore::GPUOutOfMemoryError::create):

  • platform/graphics/gpu/GPUValidationError.cpp: Added.

(WebCore::GPUValidationError::create):
(WebCore::GPUValidationError::GPUValidationError):

  • platform/graphics/gpu/GPUValidationError.h: Added.

(WebCore::GPUValidationError::message const):

  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::validateBufferUsage): Create an actual GPUValidationError :)
(WebCore::GPUBuffer::tryCreate): Create GPUOutOfMemoryErrors where appropriate.

Add file/name references:

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

Missing includes:

  • Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.cpp:

LayoutTests:

Add a test to cover the cases outlined in the WebGPU error handling design doc.

  • webgpu/error-scopes-test-expected.txt: Added.
  • webgpu/error-scopes-test.html: Added.
2:15 PM Changeset in webkit [247365] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Null deref of RenderView under FrameView::setNeedsCompositingConfigurationUpdate
https://bugs.webkit.org/show_bug.cgi?id=199723
<rdar://problem/51554747>

Reviewed by Simon Fraser.

  • page/FrameView.cpp:

(WebCore::FrameView::setNeedsCompositingConfigurationUpdate):
Add a null-check; it looks like it is possible to get here by dismissing
the find overlay (or other page overlay) at an inopportune time.

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

[ews-build] Add build step to clean up .git/index.lock file
https://bugs.webkit.org/show_bug.cgi?id=199722

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckOutSource.getResultSummary): Run CleanUpGitIndexLock step when CheckOutSource fails.
(CleanUpGitIndexLock.init): Configure timeout and logEnviron.
(CleanUpGitIndexLock.evaluateCommand): Always RETRY the build after this step is run.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
2:08 PM Changeset in webkit [247363] by Justin Michaud
  • 9 edits
    3 adds in trunk

Add b3 macro lowering for CheckMul on arm64
https://bugs.webkit.org/show_bug.cgi?id=199251

Reviewed by Robin Morisset.

JSTests:

  • microbenchmarks/check-mul-constant.js: Added.

(doTest):

  • microbenchmarks/check-mul-no-constant.js: Added.

(doTest):

  • microbenchmarks/check-mul-power-of-two.js: Added.

(doTest):

Source/JavaScriptCore:

  • Lower CheckMul for 32-bit arguments on arm64 into a mul and then an overflow check.
  • Add a new opcode to air on arm64 for smull (multiplySignExtend32).
  • Fuse sign extend 32 + mul into smull (taking two 32-bit arguments and producing 64 bits).
  • 1.25x speedup on power of two microbenchmark, 1.15x speedup on normal constant microbenchmark, and no change on the no-constant benchmark.

Also, skip some of the b3 tests that were failing before this patch so that the new tests can run
to completion.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplySignExtend32):

  • assembler/testmasm.cpp:

(JSC::testMul32SignExtend):
(JSC::run):

  • b3/B3LowerMacros.cpp:
  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testMulArgs32SignExtend):
(JSC::B3::testMulImm32SignExtend):
(JSC::B3::testMemoryFence):
(JSC::B3::testStoreFence):
(JSC::B3::testLoadFence):
(JSC::B3::testPinRegisters):
(JSC::B3::run):

2:04 PM Changeset in webkit [247362] by commit-queue@webkit.org
  • 3 edits
    5 deletes in trunk

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

Caused performance regression. (Requested by deanj on
#webkit).

Reverted changeset:

"Disable speculative loading if cache is not to be used for
the load"
https://bugs.webkit.org/show_bug.cgi?id=199644
https://trac.webkit.org/changeset/247314

1:52 PM Changeset in webkit [247361] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Pages using Google Tag Manager Google's anti-flicker optimization may take ~5 seconds to do initial paint
https://bugs.webkit.org/show_bug.cgi?id=199704
<rdar://problem/52966461>

Reviewed by Geoffrey Garen.

Apply the same fix as r246764 for when "https://www.googletagmanager.com/gtm.js" load is blocked by a content
extension to avoid delaying initial paint by ~5 seconds. This was tested on https://www.formula1.com/en.html.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

1:11 PM Changeset in webkit [247360] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

CrashTracer: Regression : MobileSafari at UIKit: -[CALayerAccessibilityUIKitQuartzCore setBounds:]
https://bugs.webkit.org/show_bug.cgi?id=199720
<rdar://problem/51470469>

Reviewed by Tim Horton.

Speculative fix after confirming that this crash can occur when
a zero width/height view is used for a UITargetedPreview. We
already guarded against this in the default flow, but not in
the fallback path where we take a view snapshot.

  • UIProcess/ios/WKContentViewInteraction.mm:

(createFallbackTargetedPreview): Return early if rectangles are empty.

12:39 PM Changeset in webkit [247359] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

11:43 AM Changeset in webkit [247358] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Disable RGB10 IOSurface pixel format for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=199712
<rdar://problem/52793584>

Reviewed by Beth Dakin.

Disable RGB10 IOSurface pixel format for Mac Catalyst. This format is not supported
on Mac Catalyst and causes us not to render anything.

  • platform/graphics/cocoa/IOSurface.h:
11:39 AM Changeset in webkit [247357] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use mobile UA on jsfiddle.net
https://bugs.webkit.org/show_bug.cgi?id=199687
<rdar://problem/50839844>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-11
Reviewed by Maciej Stachowiak.

Text selection does not work on iPads using desktop UA.
This isn't the best solution, but it's certainly *a* solution.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):

11:36 AM Changeset in webkit [247356] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Layers: Uncaught Exception: Request with id = 2 failed. {"code":-32601,"message":"'Page' domain was not found","data":[{"code":-32601,"message":"'Page' domain was not found"}]}
https://bugs.webkit.org/show_bug.cgi?id=199555

Reviewed by Joseph Pecoraro.

Use modern inspected target support checking, and defer agent commands until a target is
available.

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
(WI.Layers3DContentView.prototype._updateCompositingBordersButtonState):
(WI.Layers3DContentView.prototype._toggleCompositingBorders):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype._toggleCompositingBorders):
(WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
(WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged):
(WI.DOMTreeContentView.prototype._showPrintStylesChanged):
(WI.DOMTreeContentView.prototype._showRulersChanged):
Drive-by: apply the same changes to the Elements tab for when the Layers tab isn't enabled.

10:17 AM Changeset in webkit [247355] by Jonathan Bedard
  • 15 edits
    17 adds in trunk

[iOS 13] Enable WebKit build
https://bugs.webkit.org/show_bug.cgi?id=199481
<rdar://problem/52619048>

Reviewed by Tim Horton.

Source/WebCore:

No new tests, iOS 13 test expectations will be migrated in the near future.

  • platform/ios/LocalCurrentTraitCollection.mm:

(WebCore::LocalCurrentTraitCollection::LocalCurrentTraitCollection): Remove underscore from currentTraitCollection.
(WebCore::LocalCurrentTraitCollection::~LocalCurrentTraitCollection): Remove underscore from setCurrentTraitCollection.

Source/WebCore/PAL:

  • pal/spi/cocoa/NSProgressSPI.h: We need the NSProgress SPI in public builds because NSProgress API

is marked unavailable on iOS, watchOS and tvOS.

  • pal/spi/ios/CoreUISPI.h: Add CUIStyleEffectConfiguration.appearanceName SPI.
  • pal/spi/ios/DataDetectorsUISPI.h: Add UIContextMenuConfiguration.contextMenuConfigurationForURL SPI.
  • pal/spi/ios/SystemPreviewSPI.h: Add ARQuickLookWebKitItem.initWithPreviewItemProvider SPI.
  • pal/spi/ios/UIKitSPI.h: Add systemBrownColor, UIColor.tableCellDefaultSelectionTintColor should be marked nullable.
  • pal/spi/mac/AVFoundationSPI.h: Add AVOutputDevice.name SPI.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h: Add UITextEffectsWindow.sharedTextEffectsWindowForWindowScene SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView showGlobalMenuControllerInRect:]): setTargetRect, setMenuVisible marked depreciated in iOS 13.
(-[WKContentView hideGlobalMenuController]): Ditto.

Tools:

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Add iOS framework stubs.

WebKitLibraries:

Added iOS 13 framework stubs, used tbd version 3 in all new stubs.

  • WebKitPrivateFrameworkStubs/iOS/13: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/AppSupport.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/AssertionServices.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/AuthKit.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/CorePDF.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/CorePrediction.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/SafariSafeBrowsing.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/URLFormatting.framework: Added.
10:10 AM Changeset in webkit [247354] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Fix non thread-safe usage of makeWeakPtr() in MediaPlayerPrivateMediaFoundation
https://bugs.webkit.org/show_bug.cgi?id=199700

Reviewed by Eric Carlson.

The code was calling makeWeakPtr() on a main-thread object, from a background thread.
This is not thread safe. To address the issue, this patches creates the WeakPtr ahead
of time, on the main thread.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:

(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::create):
(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::wrapped):
(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::ThreadSafeWrapper):

10:08 AM Changeset in webkit [247353] by Ryan Haddad
  • 34 edits
    26 copies
    6 moves
    105 adds in trunk

Add test expectations and baselines for iOS 13
https://bugs.webkit.org/show_bug.cgi?id=199329

Reviewed by Jonathan Bedard.

Tools:

  • Scripts/webkitpy/port/ios.py:

(IOSPort): Increment current version to 13.

  • Scripts/webkitpy/port/ios_device_unittest.py: Update unit tests.

(IOSDeviceTest.test_layout_test_searchpath_with_apple_additions):
(IOSDeviceTest.test_layout_test_searchpath_without_apple_additions):
(IOSDeviceTest.test_layout_searchpath_wih_device_type):

  • Scripts/webkitpy/port/ios_simulator_unittest.py: Ditto.

(IOSSimulatorTest.make_port):
(IOSSimulatorTest.test_layout_test_searchpath_with_apple_additions):
(IOSSimulatorTest.test_layout_test_searchpath_without_apple_additions):
(IOSSimulatorTest.test_layout_searchpath_wih_device_type):

  • Scripts/webkitpy/port/ios_testcase.py: Ditto.

(IOSTest.make_port):

LayoutTests:

  • platform/ios-12/*: Move iOS 12 specific baselines to their own directory.
  • platform/ios/*: Add iOS 13 baselines and test expectations.
8:46 AM Changeset in webkit [247352] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations after r247346.

  • platform/gtk/TestExpectations:
8:33 AM Changeset in webkit [247351] by Kocsen Chung
  • 7 edits in tags/Safari-608.1.35

Cherry-pick r247307. rdar://problem/52859522

Unreviewed, rolling out r247286.

Caused TestWTF.WTF.StringOperators to fail on debug bots

Reverted changeset:

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

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

7:09 AM Changeset in webkit [247350] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Cleanup InlineFormattingContext::LineLayout class.
https://bugs.webkit.org/show_bug.cgi?id=199702
<rdar://problem/52931733>

Reviewed by Sam Weinig.

Move some structs to .cpp. They don't need to pollute the class declaration.

  • layout/inlineformatting/InlineFormattingContext.h:

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

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::LineInput::HorizontalConstraint::HorizontalConstraint):
(WebCore::Layout::LineInput::LineInput):
(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::HorizontalConstraint::HorizontalConstraint): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput): Deleted.

6:36 AM Changeset in webkit [247349] by jdiggs@igalia.com
  • 26 edits in trunk

AX: Implement support for ARIA roles insertion, deletion, subscript, superscript, and time
https://bugs.webkit.org/show_bug.cgi?id=199692

Reviewed by Chris Fleizach.

Source/WebCore:

Create new AccessibilityRole types which correspond to the new ARIA roles and
update AccessibilityRenderObject::determineAccessibilityRole() to assign these
internal roles to the related HTML elements.

Update both ATK and Mac to recognize these new internal roles. In addition, update
the ATK mappings for the ins and del elements to ATK_ROLE_CONTENT_INSERTION and
ATK_ROLE_CONTENT_DELETION respectively. Also expose "insertion" and "deletion" via
the AtkObject xml-roles attribute so that this information is not completely absent
for GTK or WPE built against earlier versions of ATK.

Remove AccessibilityObject's isSubscriptStyleGroup() and isSuperscriptStyleGroup().
These two methods were only being used by ATK and are no longer needed for platform
role mapping.

No new tests. Instead add the roles to the existing role-exposure tests.

  • accessibility/AccessibilityObject.cpp:

(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::isSubscriptStyleGroup const): Deleted.
(WebCore::AccessibilityObject::isSuperscriptStyleGroup const): Deleted.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessible.cpp:

(webkitAccessibleGetAttributes):
(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

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

Tools:

Add support for output of AXDeletion and AXInsertion roles for tests.
Update GTK and WPE jhbuild modules to use version of ATK and AT-SPI2
which include ROLE_CONTENT_DELETION and ROLE_CONTENT_INSERTION.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • gtk/jhbuild.modules:
  • wpe/jhbuild.modules:

LayoutTests:

Add the new roles to the existing role-exposure tests and update expectations accordingly.

  • accessibility/gtk/object-attributes-expected.txt:
  • accessibility/gtk/object-attributes.html:
  • accessibility/gtk/xml-roles-exposed-expected.txt:
  • accessibility/gtk/xml-roles-exposed.html:
  • accessibility/roles-computedRoleString.html:
  • accessibility/roles-exposed.html:
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt:
  • platform/gtk/accessibility/roles-exposed-expected.txt:
  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:
  • platform/mac/accessibility/roles-computedRoleString-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
  • platform/wpe/accessibility/roles-computedRoleString-expected.txt:
  • platform/wpe/accessibility/roles-exposed-expected.txt:
5:45 AM Changeset in webkit [247348] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[ews-build] Remove workers {ltilve,tanty}-gtk-wk2-ews from configuration
https://bugs.webkit.org/show_bug.cgi?id=199707

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json: Remove old unused workers.
3:57 AM Changeset in webkit [247347] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer][MediaStream] Use the new dispatchMediaSampleToObservers to dispatch new buffers
https://bugs.webkit.org/show_bug.cgi?id=199689

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-07-11
Reviewed by Philippe Normand.

We already have tests for this.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::processNewFrame):
(WebCore::GStreamerVideoCaptureSource::newSampleCallback):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
2:42 AM Changeset in webkit [247346] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Unreviewed, revert r243617.
https://bugs.webkit.org/show_bug.cgi?id=196341

Mark pointed out that JSVirtualMachine can be gone in the other thread while we are executing GC constraint-solving.
This patch does not account that JavaScriptCore.framework is multi-thread safe: JSVirtualMachine wrapper can be destroyed,
and [JSVirtualMachine dealloc] can be executed in any threads while the VM is retained and used in the other thread (e.g.
destroyed from AutoReleasePool in some thread).

  • API/JSContext.mm:

(-[JSContext initWithVirtualMachine:]):
(-[JSContext dealloc]):
(-[JSContext initWithGlobalContextRef:]):
(-[JSContext wrapperMap]):
(+[JSContext contextWithJSGlobalContextRef:]):

  • API/JSVirtualMachine.mm:

(initWrapperCache):
(wrapperCache):
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
(-[JSVirtualMachine initWithContextGroupRef:]):
(-[JSVirtualMachine dealloc]):
(+[JSVirtualMachine virtualMachineWithContextGroupRef:]):
(-[JSVirtualMachine contextForGlobalContextRef:]):
(-[JSVirtualMachine addContext:forGlobalContextRef:]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):

  • API/JSVirtualMachineInternal.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::setWrapperMap):
(JSC::JSGlobalObject::setAPIWrapper): Deleted.
(JSC::JSGlobalObject::apiWrapper const): Deleted.

  • runtime/VM.h:
12:34 AM Changeset in webkit [247345] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

MobileSafari may crash under -[UIKeyboardTaskExecutionContext transferExecutionToMainThreadWithTask:]
https://bugs.webkit.org/show_bug.cgi?id=199701
<rdar://problem/52590170>

Reviewed by Tim Horton.

Mitigates a crash wherein we end up calling the completion handler of
-requestAutocorrectionContextWithCompletionHandler: within a nested call
to -requestAutocorrectionContextWithCompletionHandler:. In this particular
case, a sync window.open from the web process to the UI process happens
while the UI process is already handling a sync autocorrection context
request. This causes the UI process to try and immediately dispatch the
incoming sync message to avoid deadlock. However, Safari's logic to create
and set up a new web view when opening a new window makes the new view the
first responder, which then prompts UIKit logic to request an autocorrection
context for the new web view.

To avoid the issue for now, simply use -resignFirstResponder as a cue to invoke
pending autocorrection context handlers in the original web view before UIKit
tries to request autocorrection context in the newly created view.

I attempted to write a test for this, but realized that we only end up hitting
the debug assertion pointed out in <https://webkit.org/b/199680>; we should be
able to write a test for this in the future, if we teach Connection to handle
multiple outgoing sync messages.

For the time being, I've attached a manual test case to the bug.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView _cancelPendingAutocorrectionContextHandler]):

Add a new helper to signify that a pending autocorrection context handler should be cancelled (invoked
immediately with empty data). Use this in a few places where we currently explicitly pass
-[WKAutocorrectionContext emptyAutocorrectionContext].

(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

Jul 10, 2019:

9:28 PM Changeset in webkit [247344] by Simon Fraser
  • 21 edits
    1 add in trunk

[iOS WK2] With modal overlay and body overflow:hidden, can't access all the content
https://bugs.webkit.org/show_bug.cgi?id=199693
rdar://problem/51930364

Reviewed by Tim Horton.
Source/WebCore:

A page with overflow:hidden on the root needs to be scrollable if:

  • it's zoomed
  • the visual viewport is smaller than the layout viewport (including visible keyboard)
  • scrolling is required to hide MobileSafari's squishy bars

This patch does the last two, plumbing a "visual viewport is smaller than layout viewport"
bit up from WebCore via the scrolling tree (that way, when it changes we automatically trigger
a commit), and checking for squished bars in WKWebView.

Tested by new API tests.

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::layoutOrVisualViewportChanged): Make this not iOS-specific. It's not yet called
in all the right places (doing so has risk because it's exposed via VisualViewport resize events).
(WebCore::FrameView::didUpdateViewportOverrideRects): Deleted.

  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewVisualViewportChanged):
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::frameViewVisualViewportChanged):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateFrameScrollingNode::setVisualViewportIsSmallerThanLayoutViewport):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

Source/WebKit:

A page with overflow:hidden on the root needs to be scrollable if:

  • it's zoomed
  • the visual viewport is smaller than the layout viewport (including visible keyboard)
  • scrolling is required to hide MobileSafari's squishy bars

This patch does the last two, plumbing a "visual viewport is smaller than layout viewport"
bit up from WebCore via the scrolling tree (that way, when it changes we automatically trigger
a commit), and checking for squished bars in WKWebView.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::maximumUnobscuredSize const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::updateVisibleContentRects):

Tools:

New API tests that test scrollability with various combinations of content, insets,
input accessory bars etc.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm: Added.

(TestWebKitAPI::webViewWithAutofocusedInput):
(TestWebKitAPI::TEST):

9:20 PM Changeset in webkit [247343] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 87

Added a tag for Safari Technology Preview release 87.

9:09 PM Changeset in webkit [247342] by timothy_horton@apple.com
  • 4 edits in trunk

Long pressing on attachments will crash the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=199696
<rdar://problem/52920241>

Reviewed by Dean Jackson.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::linkIndicatorPositionInformation):
(WebKit::elementPositionInformation):
(WebKit::selectionPositionInformation):
(WebKit::WebPage::positionInformation):
Instead of one-off creating a node snapshot for <attachment>, just
use TextIndicator. This way, we get an estimated background color,
paint at the right resolution, etc.

Also, hitNode was often null where we were previously calling
shareableBitmapSnapshotForNode, because it depends on the element
having click event handlers. selectionPositionInformation() re-hit-tests
more permissively to find the <attachment>, so moving this code
inside that function ensures that we don't try to snapshot a null node.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):
Add a test that previously crashed.

7:09 PM Changeset in webkit [247341] by rmorisset@apple.com
  • 5 edits in trunk/Source/WebCore

[WHLSL] Optional<UniqueRef<T>> -> std::unique_ptr in Return/IfStatement/ForLoop
https://bugs.webkit.org/show_bug.cgi?id=199695

Reviewed by Dean Jackson.

Trivial patch that saves 8 bytes per Return/If, and 16 bytes per For loop.

No new tests as there is no intended functional change.

  • 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/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement):
(WebCore::WHLSL::AST::IfStatement::elseBody):

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return):
(WebCore::WHLSL::AST::Return::value):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parseIfStatement):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseStatement):

6:27 PM Changeset in webkit [247340] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Safari’s context menu actions are missing options
https://bugs.webkit.org/show_bug.cgi?id=199694
<rdar://problem/52726822>

Reviewed by Tim Horton.

One of the most embarrassing errors I've ever made. I was returning
early when something existed, instead of when it didn't exist.
(*cough* tests *cough*)

  • UIProcess/ios/WKContentViewInteraction.mm:
6:18 PM Changeset in webkit [247339] by rmorisset@apple.com
  • 2 edits in trunk/Source/WebCore

[WHLSL] The recursion checker should not have quadratic complexity
https://bugs.webkit.org/show_bug.cgi?id=199688

Reviewed by Saam Barati.

I fix it by using two different hash sets, tracking which functions we have started visiting, and which we have finished visiting.
The difference are those that are currently "on the stack", and calling any of those is an error.
As a bonus, I also overrode visit(Program&), so that we only bother visiting function definitions.

On whlsl-compute.html ran 5 times, this patch reduces the time spent in the recursion checker from 26ms to 12ms.
It is likely to be a much bigger win on larger programs (since it took the complexity from quadratic to linear).

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp:
5:59 PM Changeset in webkit [247338] by sbarati@apple.com
  • 3 edits
    50 adds in trunk/LayoutTests

[WHLSL] Import all tests that pass without compiler changes from the JS reference test suite
https://bugs.webkit.org/show_bug.cgi?id=199595

Rubber stamped by Robin Morisset.

  • webgpu/whlsl-argument-evaluation-order-expected.txt: Added.
  • webgpu/whlsl-argument-evaluation-order.html: Added.
  • webgpu/whlsl-array-length-spec-tests-expected.txt: Added.
  • webgpu/whlsl-array-length-spec-tests.html: Added.
  • webgpu/whlsl-array-spec-tests-expected.txt:
  • webgpu/whlsl-array-spec-tests.html:
  • webgpu/whlsl-bad-add-expected.txt: Added.
  • webgpu/whlsl-bad-add.html: Added.
  • webgpu/whlsl-bools-expected.txt: Added.
  • webgpu/whlsl-bools.html: Added.
  • webgpu/whlsl-casts-expected.txt: Added.
  • webgpu/whlsl-casts.html: Added.
  • webgpu/whlsl-comment-parsing-expected.txt: Added.
  • webgpu/whlsl-comment-parsing.html: Added.
  • webgpu/whlsl-copy-expected.txt: Added.
  • webgpu/whlsl-copy.html: Added.
  • webgpu/whlsl-dereference-ordering-expected.txt: Added.
  • webgpu/whlsl-dereference-ordering.html: Added.
  • webgpu/whlsl-double-not-expected.txt: Added.
  • webgpu/whlsl-double-not.html: Added.
  • webgpu/whlsl-duplicates-expected.txt: Added.
  • webgpu/whlsl-duplicates.html: Added.
  • webgpu/whlsl-increment-decrement-expected.txt: Added.
  • webgpu/whlsl-increment-decrement.html: Added.
  • webgpu/whlsl-index-ander-expected.txt: Added.
  • webgpu/whlsl-index-ander.html: Added.
  • webgpu/whlsl-index-setter-getter-expected.txt: Added.
  • webgpu/whlsl-index-setter-getter.html: Added.
  • webgpu/whlsl-logical-negation-expected.txt: Added.
  • webgpu/whlsl-logical-negation.html: Added.
  • webgpu/whlsl-lots-of-local-variables-expected.txt: Added.
  • webgpu/whlsl-lots-of-local-variables.html: Added.
  • webgpu/whlsl-lvalues-expected.txt: Added.
  • webgpu/whlsl-lvalues.html: Added.
  • webgpu/whlsl-null-arg-expected.txt: Added.
  • webgpu/whlsl-null-arg.html: Added.
  • webgpu/whlsl-operator-overload-expected.txt: Added.
  • webgpu/whlsl-operator-overload.html: Added.
  • webgpu/whlsl-overload-expected.txt: Added.
  • webgpu/whlsl-overload.html: Added.
  • webgpu/whlsl-setter-spec-tests-expected.txt: Added.
  • webgpu/whlsl-setter-spec-tests.html: Added.
  • webgpu/whlsl-store-null-expected.txt: Added.
  • webgpu/whlsl-store-null.html: Added.
  • webgpu/whlsl-struct-expected.txt: Added.
  • webgpu/whlsl-struct.html: Added.
  • webgpu/whlsl-switch-expected.txt: Added.
  • webgpu/whlsl-switch.html: Added.
  • webgpu/whlsl-variable-shadowing-expected.txt: Added.
  • webgpu/whlsl-variable-shadowing.html: Added.
  • webgpu/whlsl-vector-syntax-expected.txt: Added.
  • webgpu/whlsl-vector-syntax.html: Added.
5:43 PM Changeset in webkit [247337] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Crash at WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator
https://bugs.webkit.org/show_bug.cgi?id=199677
<rdar://problem/52334665>

Reviewed by Alex Christensen.

Add an early return in incrementReverseIterator when setFirstInRemainingRange fails to set m_iterator. This is
in line with what we did in incrementForwardIterator.

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):

5:41 PM Changeset in webkit [247336] by dino@apple.com
  • 2 edits in trunk/Tools

Support MacCatalyst in run-webkit-app
https://bugs.webkit.org/show_bug.cgi?id=199690

Reviewed by Tim Horton.

Add a --maccatalyst option to run-webkit-app that
can launch MacCatalyst applications with a built WebKit.

  • Scripts/webkitdirs.pm:

(argumentsForConfiguration):
(determineXcodeSDK):
(xcodeSDKPlatformName):
(determineConfigurationProductDir):
(determinePortName):
(isCatalystWebKit):
(isAppleCocoaWebKit):
(willUseCatalystSDK):

5:29 PM Changeset in webkit [247335] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.1.1

Tag Safari-608.1.34.1.1.

5:23 PM Changeset in webkit [247334] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.0.3

Tag Safari-608.1.34.0.3.

5:06 PM Changeset in webkit [247333] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Marking webgpu/whlsl-builtin-vectors-2.html as Slow after https://trac.webkit.org/changeset/247319/webkit
https://bugs.webkit.org/show_bug.cgi?id=199651

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:36 PM Changeset in webkit [247332] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit

Opt trello.com to mobile UA
https://bugs.webkit.org/show_bug.cgi?id=199686
rdar://problem/51708119

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest): Currently the desktop version
of the site prevents users from tapping cards to edit them. Opt trello into the mobile
UA for now.

4:08 PM Changeset in webkit [247331] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using GenericTaskQueue from multiple threads
https://bugs.webkit.org/show_bug.cgi?id=199652

Reviewed by Eric Carlson and Geoffrey Garen.

WebCoreAVFLoaderDelegate was calling GenericTaskQueue::enqueueTask() from a background thread,
which is not safe because the implementation of enqueueTask() calls makeWeakPtr() on the
GenericTaskQueue (a main thread object).

Update WebCoreAVFLoaderDelegate to make sure it is on the main thread before it calls
GenericTaskQueue::enqueueTask().

  • platform/GenericTaskQueue.h:

Remove last template parameter which was used exclusively by WebCoreAVFLoaderDelegate to try and
make GenericTaskQueue thread-safe.

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

(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):

3:42 PM Changeset in webkit [247330] by Chris Fleizach
  • 5 edits in trunk

AX: VoiceOver ignored role="presentation" on <table> HTML elements
https://bugs.webkit.org/show_bug.cgi?id=199659

Reviewed by Zalan Bujtas.

Source/WebCore:

Only include a table ancestor if it's a table we care about for accessibility.

Modified Test: accessibility/ios-simulator/tables-lists.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):

LayoutTests:

  • accessibility/ios-simulator/tables-lists-expected.txt:
  • accessibility/ios-simulator/tables-lists.html:
3:33 PM Changeset in webkit [247329] by rmorisset@apple.com
  • 82 edits in trunk/Source/WebCore

[WHLSL] Track code locations correctly throughout the compiler to get good error messages
https://bugs.webkit.org/show_bug.cgi?id=199675

Reviewed by Myles Maxfield.

The basic idea is to go from having each AST node contain its own token to having each AST node contain a pair of offsets into the source,
the offset before its start and the offset after its end. This will let us get good error messages.
As a bonus, it saves a bit of memory as Tokens are larger (one extra word for their type).

The new CodeLocation class is put in Lexer.h, because it has a cyclic dependency on Token, which also has a cyclic dependency on Lexer.

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:

(WebCore::WHLSL::AST::ArrayReferenceType::ArrayReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:

(WebCore::WHLSL::AST::ArrayType::ArrayType):

  • Modules/webgpu/WHLSL/AST/WHLSLAssignmentExpression.h:

(WebCore::WHLSL::AST::AssignmentExpression::AssignmentExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseFunctionAttribute.h:

(WebCore::WHLSL::AST::BaseFunctionAttribute::BaseFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseSemantic.h:

(WebCore::WHLSL::AST::BaseSemantic::BaseSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLBlock.h:

(WebCore::WHLSL::AST::Block::Block):

  • Modules/webgpu/WHLSL/AST/WHLSLBooleanLiteral.h:

(WebCore::WHLSL::AST::BooleanLiteral::BooleanLiteral):
(WebCore::WHLSL::AST::BooleanLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLBreak.h:

(WebCore::WHLSL::AST::Break::Break):

  • Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h:

(WebCore::WHLSL::AST::BuiltInSemantic::BuiltInSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:

(WebCore::WHLSL::AST::CallExpression::CallExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLCommaExpression.h:

(WebCore::WHLSL::AST::CommaExpression::CommaExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLContinue.h:

(WebCore::WHLSL::AST::Continue::Continue):

  • Modules/webgpu/WHLSL/AST/WHLSLDereferenceExpression.h:

(WebCore::WHLSL::AST::DereferenceExpression::DereferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLDoWhileLoop.h:

(WebCore::WHLSL::AST::DoWhileLoop::DoWhileLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h:

(WebCore::WHLSL::AST::DotExpression::DotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLEffectfulExpressionStatement.h:

(WebCore::WHLSL::AST::EffectfulExpressionStatement::EffectfulExpressionStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:

(WebCore::WHLSL::AST::EnumerationDefinition::EnumerationDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMember.h:

(WebCore::WHLSL::AST::EnumerationMember::EnumerationMember):
(WebCore::WHLSL::AST::EnumerationMember::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h:

(WebCore::WHLSL::AST::EnumerationMemberLiteral::EnumerationMemberLiteral):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::wrap):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:

(WebCore::WHLSL::AST::Expression::Expression):
(WebCore::WHLSL::AST::Expression::codeLocation const):
(WebCore::WHLSL::AST::Expression::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLFallthrough.h:

(WebCore::WHLSL::AST::Fallthrough::Fallthrough):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteral.h:

(WebCore::WHLSL::AST::FloatLiteral::FloatLiteral):
(WebCore::WHLSL::AST::FloatLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.cpp:

(WebCore::WHLSL::AST::FloatLiteralType::FloatLiteralType):
(WebCore::WHLSL::AST::FloatLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:

(WebCore::WHLSL::AST::FunctionDeclaration::FunctionDeclaration):
(WebCore::WHLSL::AST::FunctionDeclaration::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h:

(WebCore::WHLSL::AST::GlobalVariableReference::GlobalVariableReference):

  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:

(WebCore::WHLSL::AST::IndexExpression::IndexExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.h:

(WebCore::WHLSL::AST::IntegerLiteral::IntegerLiteral):
(WebCore::WHLSL::AST::IntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::IntegerLiteralType::IntegerLiteralType):
(WebCore::WHLSL::AST::IntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLLogicalExpression.h:

(WebCore::WHLSL::AST::LogicalExpression::LogicalExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLLogicalNotExpression.h:

(WebCore::WHLSL::AST::LogicalNotExpression::LogicalNotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h:

(WebCore::WHLSL::AST::MakeArrayReferenceExpression::MakeArrayReferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h:

(WebCore::WHLSL::AST::MakePointerExpression::MakePointerExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:

(WebCore::WHLSL::AST::NamedType::NamedType):
(WebCore::WHLSL::AST::NamedType::codeLocation const):
(WebCore::WHLSL::AST::NamedType::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:

(WebCore::WHLSL::AST::NativeTypeDeclaration::NativeTypeDeclaration):

  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteral.h:

(WebCore::WHLSL::AST::NullLiteral::NullLiteral):
(WebCore::WHLSL::AST::NullLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLNumThreadsFunctionAttribute.h:

(WebCore::WHLSL::AST::NumThreadsFunctionAttribute::NumThreadsFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:

(WebCore::WHLSL::AST::PointerType::PointerType):

  • Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:

(WebCore::WHLSL::AST::PropertyAccessExpression::PropertyAccessExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:

(WebCore::WHLSL::AST::ReadModifyWriteExpression::create):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:

(WebCore::WHLSL::AST::ReferenceType::ReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.h:

(WebCore::WHLSL::AST::ResourceSemantic::ResourceSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return):

  • Modules/webgpu/WHLSL/AST/WHLSLSpecializationConstantSemantic.h:

(WebCore::WHLSL::AST::SpecializationConstantSemantic::SpecializationConstantSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLStageInOutSemantic.h:

(WebCore::WHLSL::AST::StageInOutSemantic::StageInOutSemantic):

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

(WebCore::WHLSL::AST::Statement::Statement):
(WebCore::WHLSL::AST::Statement::codeLocation const):
(WebCore::WHLSL::AST::Statement::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLStatementList.h:

(WebCore::WHLSL::AST::StatementList::StatementList):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:

(WebCore::WHLSL::AST::StructureDefinition::StructureDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:

(WebCore::WHLSL::AST::StructureElement::StructureElement):
(WebCore::WHLSL::AST::StructureElement::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchCase.h:

(WebCore::WHLSL::AST::SwitchCase::SwitchCase):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchStatement.h:

(WebCore::WHLSL::AST::SwitchStatement::SwitchStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLTernaryExpression.h:

(WebCore::WHLSL::AST::TernaryExpression::TernaryExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLTrap.h:

(WebCore::WHLSL::AST::Trap::Trap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:

(WebCore::WHLSL::AST::TypeDefinition::TypeDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.cpp:

(WebCore::WHLSL::AST::TypeReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:

(WebCore::WHLSL::AST::TypeReference::TypeReference):
(WebCore::WHLSL::AST::TypeReference::cloneTypeReference const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:

(WebCore::WHLSL::AST::UnnamedType::UnnamedType):
(WebCore::WHLSL::AST::UnnamedType::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.h:

(WebCore::WHLSL::AST::UnsignedIntegerLiteral::UnsignedIntegerLiteral):
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::UnsignedIntegerLiteralType):
(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclarationsStatement.h:

(WebCore::WHLSL::AST::VariableDeclarationsStatement::VariableDeclarationsStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:

(WebCore::WHLSL::AST::VariableReference::VariableReference):
(WebCore::WHLSL::AST::VariableReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h:

(WebCore::WHLSL::AST::WhileLoop::WhileLoop):

  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:

(WebCore::WHLSL::AutoInitialize::visit):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
(WebCore::WHLSL::resolveByInstantiation):
(WebCore::WHLSL::resolveFunction):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::argumentTypeForAndOverload):
(WebCore::WHLSL::Checker::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::matchAndCommit):

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:

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

  • Modules/webgpu/WHLSL/WHLSLLexer.h:

(WebCore::WHLSL::AST::CodeLocation::CodeLocation):
(WebCore::WHLSL::AST::CodeLocation::startOffset const):
(WebCore::WHLSL::AST::CodeLocation::endOffset const):
(WebCore::WHLSL::Token::startOffset const):
(WebCore::WHLSL::Lexer::errorString):
(WebCore::WHLSL::Token::stringView const):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:

(WebCore::WHLSL::NameResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parse):
(WebCore::WHLSL::Parser::peek):
(WebCore::WHLSL::Parser::peekFurther):
(WebCore::WHLSL::Types::includes):
(WebCore::WHLSL::Types::appendNameTo):
(WebCore::WHLSL::Types<t>::includes):
(WebCore::WHLSL::Types<t>::appendNameTo):
(WebCore::WHLSL::Parser::peekType):
(WebCore::WHLSL::Parser::tryType):
(WebCore::WHLSL::Parser::tryTypes):
(WebCore::WHLSL::Parser::consumeType):
(WebCore::WHLSL::Parser::consumeTypes):
(WebCore::WHLSL::Parser::consumeIntegralLiteral):
(WebCore::WHLSL::Parser::parseConstantExpression):
(WebCore::WHLSL::Parser::parseTypeArgument):
(WebCore::WHLSL::Parser::parseTypeArguments):
(WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
(WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
(WebCore::WHLSL::Parser::parseType):
(WebCore::WHLSL::Parser::parseTypeDefinition):
(WebCore::WHLSL::Parser::parseBuiltInSemantic):
(WebCore::WHLSL::Parser::parseResourceSemantic):
(WebCore::WHLSL::Parser::parseSpecializationConstantSemantic):
(WebCore::WHLSL::Parser::parseStageInOutSemantic):
(WebCore::WHLSL::Parser::parseSemantic):
(WebCore::WHLSL::Parser::parseQualifiers):
(WebCore::WHLSL::Parser::parseStructureElement):
(WebCore::WHLSL::Parser::parseStructureDefinition):
(WebCore::WHLSL::Parser::parseEnumerationDefinition):
(WebCore::WHLSL::Parser::parseEnumerationMember):
(WebCore::WHLSL::Parser::parseNativeTypeDeclaration):
(WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
(WebCore::WHLSL::Parser::parseAttributeBlock):
(WebCore::WHLSL::Parser::parseParameter):
(WebCore::WHLSL::Parser::parseParameters):
(WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
(WebCore::WHLSL::Parser::parseVertexOrFragmentFunctionDeclaration):
(WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
(WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
(WebCore::WHLSL::Parser::parseFunctionDeclaration):
(WebCore::WHLSL::Parser::parseBlock):
(WebCore::WHLSL::Parser::parseBlockBody):
(WebCore::WHLSL::Parser::parseIfStatement):
(WebCore::WHLSL::Parser::parseSwitchStatement):
(WebCore::WHLSL::Parser::parseSwitchCase):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseWhileLoop):
(WebCore::WHLSL::Parser::parseDoWhileLoop):
(WebCore::WHLSL::Parser::parseVariableDeclaration):
(WebCore::WHLSL::Parser::parseVariableDeclarations):
(WebCore::WHLSL::Parser::parseStatement):
(WebCore::WHLSL::Parser::parseEffectfulExpression):
(WebCore::WHLSL::Parser::parseEffectfulAssignment):
(WebCore::WHLSL::Parser::parseLimitedSuffixOperator):
(WebCore::WHLSL::Parser::parseSuffixOperator):
(WebCore::WHLSL::Parser::parseExpression):
(WebCore::WHLSL::Parser::completeTernaryConditional):
(WebCore::WHLSL::Parser::completeAssignment):
(WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
(WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleShift):
(WebCore::WHLSL::Parser::completePossibleAdd):
(WebCore::WHLSL::Parser::completePossibleMultiply):
(WebCore::WHLSL::Parser::parsePossiblePrefix):
(WebCore::WHLSL::Parser::parsePossibleSuffix):
(WebCore::WHLSL::Parser::parseCallExpression):
(WebCore::WHLSL::Parser::parseTerm):

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

(WebCore::WHLSL::anonymousToken):
(WebCore::WHLSL::PreserveLifetimes::PreserveLifetimes):
(WebCore::WHLSL::PreserveLifetimes::assignVariableIntoStruct):
(WebCore::WHLSL::preserveVariableLifetimes):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit):
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::setterCall):
(WebCore::WHLSL::getterCall):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::simplifyRightValue):
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:

(WebCore::WHLSL::synthesizeArrayOperatorLength):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

(WebCore::WHLSL::synthesizeConstructors):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:

(WebCore::WHLSL::synthesizeEnumerationFunctions):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:

(WebCore::WHLSL::synthesizeStructureAccessors):

3:07 PM Changeset in webkit [247328] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] Selection handles "Lollipops" can become gray and stay gray
https://bugs.webkit.org/show_bug.cgi?id=198852
<rdar://problem/51736130>

Reviewed by Wenson Hsieh.

Tell the text interaction assistant to update the selection UI when the tint color changes.
We do this by way of deactivating and activating selection.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView tintColorDidChange]):

2:12 PM Changeset in webkit [247327] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] REGRESSION(r244851): Revealing caret sometimes fails when content inset is used
https://bugs.webkit.org/show_bug.cgi?id=199662

Reviewed by Simon Fraser.

Source/WebCore:

The bug was caused by ScrollableArea::maximumScrollPosition using ScrollableArea::visibleSize, which does not
take the content insets into account correctly, rather than FrameView::visualViewportRectExpandedByContentInsets,
which does, and is used for "viewRect" in RenderLayer::scrollRectToVisible.

Override the maximum scroll position using visualViewportRectExpandedByContentInsets in iOS to fix the issue.

Test: editing/selection/ios/autoscroll-with-top-content-inset-2.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible): Fixed the bug.

LayoutTests:

Added a regression test.

  • editing/selection/ios/autoscroll-with-top-content-inset-2-expected.txt: Added.
  • editing/selection/ios/autoscroll-with-top-content-inset-2.html: Added.
1:40 PM Changeset in webkit [247326] by dino@apple.com
  • 7 edits in trunk/Source/WebKit

Share or Copy image from context menu does not share the correct data
https://bugs.webkit.org/show_bug.cgi?id=199681
<rdar://problem/50538771>

Reviewed by Tim Horton.

The UIContextMenuInteraction calls didEndInteraction before executing the
actions of a selected menu item. This means we were assuming the interaction
had finished before performing the action triggered in the interaction, ending
up in the state where we had forgotten which element we were working with.

Rather than ask for UIKit to change, I'm just starting the interaction again
as the action is run. Thankfully we already had the location of the interaction.
There is a small risk that the page has changed in the meantime, but I'm not
sure what to do about that.

While here, I moved a method only used by us into _WKElementActionInternal,
and changed the location stored by _WKActivatedElementInfo from a CGPoint
to an WebCore::IntPoint (since it doesn't escape WebKit).

  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: Use a WebCore::IntPoint rather than a CGPoint.

(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:]):
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:userInfo:]):
(-[_WKActivatedElementInfo _interactionLocation]):

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKElementAction.h: Move uiActionForElementInfo to Internal.
  • UIProcess/API/Cocoa/_WKElementActionInternal.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm: When executing the handlers, restart the interaction

using the location in _WKActivatedElementInfo.
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/ios/WKContentViewInteraction.mm: Explicitly start and stop interactions at

the appropriate points in the UIContextMenu flow. This isn't really needed since we're
doing it in the handlers, but it will be correct if the UIKit delegate order changes.
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteractionDidEnd:]):

1:37 PM Changeset in webkit [247325] by Ryan Haddad
  • 82 edits in trunk/Source/WebCore

Unreviewed, rolling out r247316.

Broke Mojave build

Reverted changeset:

"[WHLSL] Track code locations correctly throughout the
compiler to get good error messages"
https://bugs.webkit.org/show_bug.cgi?id=199675
https://trac.webkit.org/changeset/247316

1:30 PM Changeset in webkit [247324] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Allow CMake to build WebCore on Mac
https://bugs.webkit.org/show_bug.cgi?id=198979

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-10
Reviewed by Don Olmstead.

Source/ThirdParty/ANGLE:

  • include/GLSLANG/ShaderLang.h:

Source/WebCore:

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • PlatformMac.cmake:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:
  • platform/ios/WebItemProviderPasteboard.h:

Source/WebCore/PAL:

  • pal/PlatformMac.cmake:
1:13 PM Changeset in webkit [247323] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r247292.

Caused CloseWebViewDuringEnterFullscreen.VideoFullscreen API
test to time out on Mojave bots

Reverted changeset:

"Stop using GenericTaskQueue from multiple threads"
https://bugs.webkit.org/show_bug.cgi?id=199652
https://trac.webkit.org/changeset/247292

1:10 PM Changeset in webkit [247322] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Crash under IPC::Connection::waitForMessage()
https://bugs.webkit.org/show_bug.cgi?id=199680
<rdar://problem/52500561>

Reviewed by Tim Horton.

IPC::Connection::waitForMessage() is crashing due to a null defererence of
m_waitingForMessage. Since m_waitingForMessage is only ever set to null in
waitForMessage(), this seems to imply we've re-entered waitForMessage().
This is in theory possible since the loop inside waitForMessage() calls
SyncMessageState::singleton().dispatchMessages() on every iteration to
process incoming synchronous IPC messages. In theory, one of these sync
IPC messages could run code which ends up calling waitForAndDispatchImmediately()
(and thus waitForMessage()).

We had a debug assertion to try and catch re-entrancy with a comment stating
"We don't support having multiple clients waiting for messages." but we
would not see those in release and we would crash with a null dereference
instead.

To address the crashes in release, return early in case of re-entrancy
(we would still hit an assertion in debug).

  • Platform/IPC/Connection.cpp:

(IPC::Connection::Connection):
(IPC::Connection::waitForMessage):

  • Platform/IPC/Connection.h:
1:04 PM Changeset in webkit [247321] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Context menus are not presented for WKWebViews that don't have UIDelegates
https://bugs.webkit.org/show_bug.cgi?id=199678

Reviewed by Dean Jackson.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView continueContextMenuInteraction:]):
Remove this unnecessary early-return if we don't have a UIDelegate.
We have a default behavior that we totally want to happen.
Also, rename completion() to continueWithContextMenuConfiguration()
to reduce confusion between completion() and completionBlock() in
this method.

1:02 PM Changeset in webkit [247320] by Alan Coon
  • 2 edits in branches/safari-608.1.34.0-branch/Source/WebKit

Cherry-pick r247185. rdar://problem/52554137

[iOS] Context Menu - Add to Reading List does nothing
https://bugs.webkit.org/show_bug.cgi?id=199504
<rdar://problem/52554137>

Reviewed by Anders Carlsson.

We were holding weak references to the _WKElementAction in
the handler provided to UIAction. By the time the handler was
called, the object had been deallocated.

  • UIProcess/API/Cocoa/_WKElementAction.mm: (-[_WKElementAction uiActionForElementInfo:]): Use strong references in handler.

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

1:01 PM Changeset in webkit [247319] by sbarati@apple.com
  • 1 edit
    23 adds in trunk/LayoutTests

[WHLSL Import more JS reference spec tests
https://bugs.webkit.org/show_bug.cgi?id=199651

Rubber stamped by Robin Morisset.

  • webgpu/whlsl-builtin-vectors-2-expected.txt: Added.
  • webgpu/whlsl-builtin-vectors-2.html: Added.
  • webgpu/whlsl-builtin-vectors-expected.txt: Added.
  • webgpu/whlsl-builtin-vectors.html: Added.
  • webgpu/whlsl-getter-setter-type-expected.txt: Added.
  • webgpu/whlsl-getter-setter-type.html: Added.
  • webgpu/whlsl-loops-spec-tests-expected.txt: Added.
  • webgpu/whlsl-loops-spec-tests.html: Added.
  • webgpu/whlsl-null-array-ref.html: Added.
  • webgpu/whlsl-override-subscript-expected.txt: Added.
  • webgpu/whlsl-override-subscript.html: Added.
  • webgpu/whlsl-plus-equals-expected.txt: Added.
  • webgpu/whlsl-plus-equals.html: Added.
  • webgpu/whlsl-recursive-structs-expected.txt: Added.
  • webgpu/whlsl-recursive-structs.html: Added.
  • webgpu/whlsl-ternary-spec-test-expected.txt: Added.
  • webgpu/whlsl-ternary-spec-test.html: Added.
  • webgpu/whlsl-wrong-argument-length-expected.txt: Added.
  • webgpu/whlsl-wrong-argument-length.html: Added.
  • webgpu/whlsl-wrong-types-expected.txt: Added.
  • webgpu/whlsl-wrong-types.html: Added.
12:58 PM Changeset in webkit [247318] by Alan Coon
  • 7 edits in branches/safari-608.1.34.0-branch/Source

Versioning.

12:46 PM Changeset in webkit [247317] by commit-queue@webkit.org
  • 7 edits
    2 deletes in trunk

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

Caused perf regression. (Requested by deanj on #webkit).

Reverted changeset:

"[iPadOS] Viewport pops while loading sohu.com, xinhuanet.com,
and various other websites"
https://bugs.webkit.org/show_bug.cgi?id=199575
https://trac.webkit.org/changeset/247223

12:44 PM Changeset in webkit [247316] by rmorisset@apple.com
  • 82 edits in trunk/Source/WebCore

[WHLSL] Track code locations correctly throughout the compiler to get good error messages
https://bugs.webkit.org/show_bug.cgi?id=199675

Reviewed by Myles Maxfield.

The basic idea is to go from having each AST node contain its own token to having each AST node contain a pair of offsets into the source,
the offset before its start and the offset after its end. This will let us get good error messages.
As a bonus, it saves a bit of memory as Tokens are larger (one extra word for their type).

The new CodeLocation class is put in Lexer.h, because it has a cyclic dependency on Token, which also has a cyclic dependency on Lexer.

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:

(WebCore::WHLSL::AST::ArrayReferenceType::ArrayReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:

(WebCore::WHLSL::AST::ArrayType::ArrayType):

  • Modules/webgpu/WHLSL/AST/WHLSLAssignmentExpression.h:

(WebCore::WHLSL::AST::AssignmentExpression::AssignmentExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseFunctionAttribute.h:

(WebCore::WHLSL::AST::BaseFunctionAttribute::BaseFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseSemantic.h:

(WebCore::WHLSL::AST::BaseSemantic::BaseSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLBlock.h:

(WebCore::WHLSL::AST::Block::Block):

  • Modules/webgpu/WHLSL/AST/WHLSLBooleanLiteral.h:

(WebCore::WHLSL::AST::BooleanLiteral::BooleanLiteral):
(WebCore::WHLSL::AST::BooleanLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLBreak.h:

(WebCore::WHLSL::AST::Break::Break):

  • Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h:

(WebCore::WHLSL::AST::BuiltInSemantic::BuiltInSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:

(WebCore::WHLSL::AST::CallExpression::CallExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLCommaExpression.h:

(WebCore::WHLSL::AST::CommaExpression::CommaExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLContinue.h:

(WebCore::WHLSL::AST::Continue::Continue):

  • Modules/webgpu/WHLSL/AST/WHLSLDereferenceExpression.h:

(WebCore::WHLSL::AST::DereferenceExpression::DereferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLDoWhileLoop.h:

(WebCore::WHLSL::AST::DoWhileLoop::DoWhileLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h:

(WebCore::WHLSL::AST::DotExpression::DotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLEffectfulExpressionStatement.h:

(WebCore::WHLSL::AST::EffectfulExpressionStatement::EffectfulExpressionStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:

(WebCore::WHLSL::AST::EnumerationDefinition::EnumerationDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMember.h:

(WebCore::WHLSL::AST::EnumerationMember::EnumerationMember):
(WebCore::WHLSL::AST::EnumerationMember::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h:

(WebCore::WHLSL::AST::EnumerationMemberLiteral::EnumerationMemberLiteral):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::wrap):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:

(WebCore::WHLSL::AST::Expression::Expression):
(WebCore::WHLSL::AST::Expression::codeLocation const):
(WebCore::WHLSL::AST::Expression::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLFallthrough.h:

(WebCore::WHLSL::AST::Fallthrough::Fallthrough):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteral.h:

(WebCore::WHLSL::AST::FloatLiteral::FloatLiteral):
(WebCore::WHLSL::AST::FloatLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.cpp:

(WebCore::WHLSL::AST::FloatLiteralType::FloatLiteralType):
(WebCore::WHLSL::AST::FloatLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:

(WebCore::WHLSL::AST::FunctionDeclaration::FunctionDeclaration):
(WebCore::WHLSL::AST::FunctionDeclaration::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h:

(WebCore::WHLSL::AST::GlobalVariableReference::GlobalVariableReference):

  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:

(WebCore::WHLSL::AST::IndexExpression::IndexExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.h:

(WebCore::WHLSL::AST::IntegerLiteral::IntegerLiteral):
(WebCore::WHLSL::AST::IntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::IntegerLiteralType::IntegerLiteralType):
(WebCore::WHLSL::AST::IntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLLogicalExpression.h:

(WebCore::WHLSL::AST::LogicalExpression::LogicalExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLLogicalNotExpression.h:

(WebCore::WHLSL::AST::LogicalNotExpression::LogicalNotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h:

(WebCore::WHLSL::AST::MakeArrayReferenceExpression::MakeArrayReferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h:

(WebCore::WHLSL::AST::MakePointerExpression::MakePointerExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:

(WebCore::WHLSL::AST::NamedType::NamedType):
(WebCore::WHLSL::AST::NamedType::codeLocation const):
(WebCore::WHLSL::AST::NamedType::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:

(WebCore::WHLSL::AST::NativeTypeDeclaration::NativeTypeDeclaration):

  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteral.h:

(WebCore::WHLSL::AST::NullLiteral::NullLiteral):
(WebCore::WHLSL::AST::NullLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLNumThreadsFunctionAttribute.h:

(WebCore::WHLSL::AST::NumThreadsFunctionAttribute::NumThreadsFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:

(WebCore::WHLSL::AST::PointerType::PointerType):

  • Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:

(WebCore::WHLSL::AST::PropertyAccessExpression::PropertyAccessExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:

(WebCore::WHLSL::AST::ReadModifyWriteExpression::create):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:

(WebCore::WHLSL::AST::ReferenceType::ReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.h:

(WebCore::WHLSL::AST::ResourceSemantic::ResourceSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return):

  • Modules/webgpu/WHLSL/AST/WHLSLSpecializationConstantSemantic.h:

(WebCore::WHLSL::AST::SpecializationConstantSemantic::SpecializationConstantSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLStageInOutSemantic.h:

(WebCore::WHLSL::AST::StageInOutSemantic::StageInOutSemantic):

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

(WebCore::WHLSL::AST::Statement::Statement):
(WebCore::WHLSL::AST::Statement::codeLocation const):
(WebCore::WHLSL::AST::Statement::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLStatementList.h:

(WebCore::WHLSL::AST::StatementList::StatementList):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:

(WebCore::WHLSL::AST::StructureDefinition::StructureDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:

(WebCore::WHLSL::AST::StructureElement::StructureElement):
(WebCore::WHLSL::AST::StructureElement::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchCase.h:

(WebCore::WHLSL::AST::SwitchCase::SwitchCase):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchStatement.h:

(WebCore::WHLSL::AST::SwitchStatement::SwitchStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLTernaryExpression.h:

(WebCore::WHLSL::AST::TernaryExpression::TernaryExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLTrap.h:

(WebCore::WHLSL::AST::Trap::Trap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:

(WebCore::WHLSL::AST::TypeDefinition::TypeDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.cpp:

(WebCore::WHLSL::AST::TypeReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:

(WebCore::WHLSL::AST::TypeReference::TypeReference):
(WebCore::WHLSL::AST::TypeReference::cloneTypeReference const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:

(WebCore::WHLSL::AST::UnnamedType::UnnamedType):
(WebCore::WHLSL::AST::UnnamedType::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.h:

(WebCore::WHLSL::AST::UnsignedIntegerLiteral::UnsignedIntegerLiteral):
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::UnsignedIntegerLiteralType):
(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclarationsStatement.h:

(WebCore::WHLSL::AST::VariableDeclarationsStatement::VariableDeclarationsStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:

(WebCore::WHLSL::AST::VariableReference::VariableReference):
(WebCore::WHLSL::AST::VariableReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h:

(WebCore::WHLSL::AST::WhileLoop::WhileLoop):

  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:

(WebCore::WHLSL::AutoInitialize::visit):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
(WebCore::WHLSL::resolveByInstantiation):
(WebCore::WHLSL::resolveFunction):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::argumentTypeForAndOverload):
(WebCore::WHLSL::Checker::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::matchAndCommit):

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:

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

  • Modules/webgpu/WHLSL/WHLSLLexer.h:

(WebCore::WHLSL::AST::CodeLocation::CodeLocation):
(WebCore::WHLSL::AST::CodeLocation::startOffset const):
(WebCore::WHLSL::AST::CodeLocation::endOffset const):
(WebCore::WHLSL::Token::startOffset const):
(WebCore::WHLSL::Lexer::errorString):
(WebCore::WHLSL::Token::stringView const):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:

(WebCore::WHLSL::NameResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parse):
(WebCore::WHLSL::Parser::peek):
(WebCore::WHLSL::Parser::peekFurther):
(WebCore::WHLSL::Types::includes):
(WebCore::WHLSL::Types::appendNameTo):
(WebCore::WHLSL::Types<t>::includes):
(WebCore::WHLSL::Types<t>::appendNameTo):
(WebCore::WHLSL::Parser::peekType):
(WebCore::WHLSL::Parser::tryType):
(WebCore::WHLSL::Parser::tryTypes):
(WebCore::WHLSL::Parser::consumeType):
(WebCore::WHLSL::Parser::consumeTypes):
(WebCore::WHLSL::Parser::consumeIntegralLiteral):
(WebCore::WHLSL::Parser::parseConstantExpression):
(WebCore::WHLSL::Parser::parseTypeArgument):
(WebCore::WHLSL::Parser::parseTypeArguments):
(WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
(WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
(WebCore::WHLSL::Parser::parseType):
(WebCore::WHLSL::Parser::parseTypeDefinition):
(WebCore::WHLSL::Parser::parseBuiltInSemantic):
(WebCore::WHLSL::Parser::parseResourceSemantic):
(WebCore::WHLSL::Parser::parseSpecializationConstantSemantic):
(WebCore::WHLSL::Parser::parseStageInOutSemantic):
(WebCore::WHLSL::Parser::parseSemantic):
(WebCore::WHLSL::Parser::parseQualifiers):
(WebCore::WHLSL::Parser::parseStructureElement):
(WebCore::WHLSL::Parser::parseStructureDefinition):
(WebCore::WHLSL::Parser::parseEnumerationDefinition):
(WebCore::WHLSL::Parser::parseEnumerationMember):
(WebCore::WHLSL::Parser::parseNativeTypeDeclaration):
(WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
(WebCore::WHLSL::Parser::parseAttributeBlock):
(WebCore::WHLSL::Parser::parseParameter):
(WebCore::WHLSL::Parser::parseParameters):
(WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
(WebCore::WHLSL::Parser::parseVertexOrFragmentFunctionDeclaration):
(WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
(WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
(WebCore::WHLSL::Parser::parseFunctionDeclaration):
(WebCore::WHLSL::Parser::parseBlock):
(WebCore::WHLSL::Parser::parseBlockBody):
(WebCore::WHLSL::Parser::parseIfStatement):
(WebCore::WHLSL::Parser::parseSwitchStatement):
(WebCore::WHLSL::Parser::parseSwitchCase):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseWhileLoop):
(WebCore::WHLSL::Parser::parseDoWhileLoop):
(WebCore::WHLSL::Parser::parseVariableDeclaration):
(WebCore::WHLSL::Parser::parseVariableDeclarations):
(WebCore::WHLSL::Parser::parseStatement):
(WebCore::WHLSL::Parser::parseEffectfulExpression):
(WebCore::WHLSL::Parser::parseEffectfulAssignment):
(WebCore::WHLSL::Parser::parseLimitedSuffixOperator):
(WebCore::WHLSL::Parser::parseSuffixOperator):
(WebCore::WHLSL::Parser::parseExpression):
(WebCore::WHLSL::Parser::completeTernaryConditional):
(WebCore::WHLSL::Parser::completeAssignment):
(WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
(WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleShift):
(WebCore::WHLSL::Parser::completePossibleAdd):
(WebCore::WHLSL::Parser::completePossibleMultiply):
(WebCore::WHLSL::Parser::parsePossiblePrefix):
(WebCore::WHLSL::Parser::parsePossibleSuffix):
(WebCore::WHLSL::Parser::parseCallExpression):
(WebCore::WHLSL::Parser::parseTerm):

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

(WebCore::WHLSL::anonymousToken):
(WebCore::WHLSL::PreserveLifetimes::PreserveLifetimes):
(WebCore::WHLSL::PreserveLifetimes::assignVariableIntoStruct):
(WebCore::WHLSL::preserveVariableLifetimes):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit):
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::setterCall):
(WebCore::WHLSL::getterCall):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::simplifyRightValue):
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:

(WebCore::WHLSL::synthesizeArrayOperatorLength):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

(WebCore::WHLSL::synthesizeConstructors):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:

(WebCore::WHLSL::synthesizeEnumerationFunctions):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:

(WebCore::WHLSL::synthesizeStructureAccessors):

11:43 AM Changeset in webkit [247315] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Hook up WebGL's back buffer in ANGLE backend on macOS
https://bugs.webkit.org/show_bug.cgi?id=198982

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

Source/ThirdParty/ANGLE:

Add source files needed to implement and call ANGLE extensions, and
export headers necessary for those extensions. Update the script which
adjusts include paths to handle the new headers.

Cherry-pick fix for ANGLE bug crbug.com/angleproject/3669 to support
antialias:true for ANGLE-backed WebGL contexts.

  • ANGLE.xcodeproj/project.pbxproj:
  • adjust-angle-include-paths.sh:
  • src/libANGLE/FramebufferAttachment.cpp:

(gl::FramebufferAttachment::getTextureImageIndex const): Deleted.

  • src/libANGLE/FramebufferAttachment.h:

(gl::FramebufferAttachment::getTextureImageIndex const):

  • src/libANGLE/validationES2.cpp:

(gl::ValidateBlitFramebufferANGLE):

Source/WebCore:

Fix a few places which were accidentally calling desktop OpenGL rather
than ANGLE. Fix some calls which were using ANGLE's OpenGL ES 3.0
entry points rather than the OpenGL ES 2.0 extension APIs, causing
them to generate errors in WebGL 1.0's backend. Change
Extensions3DANGLE to use ANGLE's requestable extension mechanism.

Fix framebuffer setup when using ANGLE for WebGL 1.0 contexts, for
both antialias:true and false.

Remove ANGLEWebKitBridge in ANGLE backend. It interfered with the
correct operation of ANGLE's internal shader compiler, and was
unnecessary given the use of ANGLE. Remove all manual shader name
hashing and mapping in ANGLE backend.

Tested with parts of the WebGL conformance suite and the San
Angeles demo, which now runs properly with WebKit's ANGLE backend
for WebGL.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations):

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/angle/Extensions3DANGLE.cpp:

(WebCore::Extensions3DANGLE::Extensions3DANGLE):
(WebCore::Extensions3DANGLE::supports):
(WebCore::Extensions3DANGLE::ensureEnabled):
(WebCore::Extensions3DANGLE::isEnabled):
(WebCore::Extensions3DANGLE::getTranslatedShaderSourceANGLE):
(WebCore::Extensions3DANGLE::initializeAvailableExtensions):
(WebCore::Extensions3DANGLE::blitFramebuffer):
(WebCore::Extensions3DANGLE::renderbufferStorageMultisample):
(WebCore::Extensions3DANGLE::createVertexArrayOES):
(WebCore::Extensions3DANGLE::deleteVertexArrayOES):
(WebCore::Extensions3DANGLE::isVertexArrayOES):
(WebCore::Extensions3DANGLE::bindVertexArrayOES):
(WebCore::Extensions3DANGLE::supportsExtension):
(WebCore::Extensions3DANGLE::drawBuffersEXT):
(WebCore::Extensions3DANGLE::drawArraysInstanced):
(WebCore::Extensions3DANGLE::drawElementsInstanced):
(WebCore::Extensions3DANGLE::vertexAttribDivisor):

  • platform/graphics/angle/Extensions3DANGLE.h:
  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::validateAttributes):
(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::attachDepthAndStencilBufferIfNeeded):
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContext3D::validateDepthStencil):
(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::attachShader):
(WebCore::GraphicsContext3D::bindAttribLocation):
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::compileShaderDirect):
(WebCore::GraphicsContext3D::detachShader):
(WebCore::GraphicsContext3D::getActiveAttribImpl):
(WebCore::GraphicsContext3D::getActiveAttrib):
(WebCore::GraphicsContext3D::getActiveUniformImpl):
(WebCore::GraphicsContext3D::getActiveUniform):
(WebCore::GraphicsContext3D::getAttribLocation):
(WebCore::GraphicsContext3D::getAttribLocationDirect):
(WebCore::GraphicsContext3D::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContext3D::linkProgram):
(WebCore::GraphicsContext3D::shaderSource):
(WebCore::GraphicsContext3D::getUnmangledInfoLog):
(WebCore::GraphicsContext3D::getShaderiv):
(WebCore::GraphicsContext3D::getShaderInfoLog):
(WebCore::GraphicsContext3D::getUniformLocation):
(WebCore::GraphicsContext3D::createBuffer):
(WebCore::GraphicsContext3D::createFramebuffer):
(WebCore::GraphicsContext3D::createProgram):
(WebCore::GraphicsContext3D::createRenderbuffer):
(WebCore::GraphicsContext3D::createShader):
(WebCore::GraphicsContext3D::createTexture):
(WebCore::GraphicsContext3D::deleteBuffer):
(WebCore::GraphicsContext3D::deleteFramebuffer):
(WebCore::GraphicsContext3D::deleteProgram):
(WebCore::GraphicsContext3D::deleteRenderbuffer):
(WebCore::GraphicsContext3D::deleteShader):
(WebCore::GraphicsContext3D::deleteTexture):
(WebCore::GraphicsContext3D::synthesizeGLError):
(): Deleted.
(WebCore::setCurrentNameHashMapForShader): Deleted.
(WebCore::nameHashForShader): Deleted.
(WebCore::GraphicsContext3D::checkVaryingsPacking const): Deleted.
(WebCore::GraphicsContext3D::precisionsMatch const): Deleted.
(WebCore::generateHashedName): Deleted.
(WebCore::GraphicsContext3D::mappedSymbolInShaderSourceMap): Deleted.
(WebCore::GraphicsContext3D::mappedSymbolName): Deleted.
(WebCore::GraphicsContext3D::originalSymbolInShaderSourceMap): Deleted.
(WebCore::GraphicsContext3D::originalSymbolName): Deleted.
(WebCore::GraphicsContext3D::getNonBuiltInActiveSymbolCount): Deleted.
(WebCore::GraphicsContext3D::getShaderSource): Deleted.

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::checkGPUStatus):
(WebCore::GraphicsContext3D::allocateIOSurfaceBackingStore):
(WebCore::GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):
(-[WebGLLayer setEGLDisplay:andConfig:]):
(-[WebGLLayer dealloc]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):
(-[WebGLLayer bindFramebufferToNextAvailableSurface]):

11:17 AM Changeset in webkit [247314] by youenn@apple.com
  • 3 edits
    5 adds in trunk

Disable speculative loading if cache is not to be used for the load
https://bugs.webkit.org/show_bug.cgi?id=199644

Reviewed by Chris Dumez.

Source/WebKit:

When the page is reloaded, loads are instructed to not use the cache.
It is therefore unneeded to do speculative revalidation.
Allow speculative revalidation if the cache policy is either the default HTTP policy or
if policy is to refresh all cache data.
Covered by added test.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::cachePolicyValidForSpeculativeRevalidation):
(WebKit::NetworkCache::canRequestUseSpeculativeRevalidation):

LayoutTests:

  • http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
  • http/wpt/fetch/disable-speculative-for-reload.html: Added.
  • http/wpt/fetch/resources/iframe-with-image.py: Added.

(main):

  • http/wpt/fetch/resources/image-load-count.py: Added.

(main):

  • http/wpt/fetch/resources/image-load.py: Added.

(main):

11:09 AM Changeset in webkit [247313] by youenn@apple.com
  • 3 edits
    2 adds in trunk

openDatabase property should not be enumerable on DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=199672
<rdar://problem/52809000>

Reviewed by Chris Dumez.

Source/WebCore:

Test: storage/websql/openDatabase-deprecation.html

  • Modules/webdatabase/DOMWindowWebDatabase.idl:

LayoutTests:

  • storage/websql/openDatabase-deprecation-expected.txt: Added.
  • storage/websql/openDatabase-deprecation.html: Added.
11:09 AM Changeset in webkit [247312] by Alan Coon
  • 3 edits in tags/Safari-608.1.35/Source/WebKit

Cherry-pick r247308. rdar://problem/52390453

Fix build after Foundation changes UIEdgeInsets definition
https://bugs.webkit.org/show_bug.cgi?id=199660
<rdar://problem/52390453>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-10
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProvider.h:

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

11:06 AM Changeset in webkit [247311] by Alan Coon
  • 1 copy in tags/Safari-608.1.35

Tag Safari-608.1.35.

11:00 AM Changeset in webkit [247310] by Ryan Haddad
  • 2 edits in trunk/Tools

[MacOS] Filter VPA info logged to stdout
https://bugs.webkit.org/show_bug.cgi?id=199673

Reviewed by Eric Carlson.

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):

10:34 AM Changeset in webkit [247309] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Fix unsafe usage of makeWeakPtr() in CMTimebaseEffectiveRateChangedCallback()
https://bugs.webkit.org/show_bug.cgi?id=199656

Reviewed by Eric Carlson.

CMTimebaseEffectiveRateChangedCallback() is getting called on a background thread and would call
makeWeakPtr() on the MediaPlayerPrivateMediaSourceAVFObjC object, which is not safe because
MediaPlayerPrivateMediaSourceAVFObjC is a main thread object.

To address the issue, move the logic for listening to effective rate changes to its own
Listener class which is ThreadSafeRefCounted. Instead of using makeWeakPtr() on the background
thread, we now merely ref the thread-safe listener.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::EffectiveRateChangedListener::create):
(WebCore::EffectiveRateChangedListener::effectiveRateChanged):
(WebCore::CMTimebaseEffectiveRateChangedCallback):
(WebCore::EffectiveRateChangedListener::stop):
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):

10:17 AM Changeset in webkit [247308] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Fix build after Foundation changes UIEdgeInsets definition
https://bugs.webkit.org/show_bug.cgi?id=199660
<rdar://problem/52390453>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-10
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProvider.h:
10:09 AM Changeset in webkit [247307] by Ryan Haddad
  • 7 edits in trunk

Unreviewed, rolling out r247286.

Caused TestWTF.WTF.StringOperators to fail on debug bots

Reverted changeset:

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

10:03 AM Changeset in webkit [247306] by Antti Koivisto
  • 16 edits in trunk/Source

Remove TouchActionData
https://bugs.webkit.org/show_bug.cgi?id=199668

Reviewed by Simon Fraser.

Source/WebCore:

TouchActionData structure has been superseded by touch-action regions in EventRegion and is unused.
Remove it and the supporting code.

No functional changes.

  • dom/Document.cpp:

(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::updateTouchActionElements): Deleted.

  • dom/Document.h:

(WebCore::Document::mayHaveElementsWithNonAutoTouchAction const):
(WebCore::Document::setMayHaveElementsWithNonAutoTouchAction):

Replace touchActionElements set with a bit that covers the only remaining clients (optimizations).
Note that touchActionElements was not deleted when emptied, it had the same "may have" behavior (which
is currently needed).

(WebCore::Document::touchActionElements const): Deleted.

  • dom/Element.cpp:

(WebCore::Element::computedTouchActions const): Deleted.

  • dom/Element.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::touchActionDataAtPoint const): Deleted.

  • page/scrolling/ScrollingTree.h:
  • platform/EventTrackingRegions.cpp:

(WebCore::operator==):

  • platform/EventTrackingRegions.h:

(): Deleted.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
(IPC::ArgumentCoder<TouchActionData>::encode): Deleted.
(IPC::ArgumentCoder<TouchActionData>::decode): Deleted.

9:10 AM Changeset in webkit [247305] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Explicitly use perl or python while invoking scripts
https://bugs.webkit.org/show_bug.cgi?id=199669

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py: Explicitly added perl or python while invoking scripts.
  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
9:09 AM Changeset in webkit [247304] by Alan Coon
  • 2 edits in branches/safari-608.1.34.1-branch/Source/WebCore

Cherry-pick r247266. rdar://problem/49884391

Null check HistoryItems given to loadDifferentDocumentItem
https://bugs.webkit.org/show_bug.cgi?id=199596
<rdar://problem/49884391>

Reviewed by Ryosuke Niwa.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad): Under some rare and mysterious conditions we can have a null provisionalItem when loading from the cache.

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

9:09 AM Changeset in webkit [247303] by Alan Coon
  • 2 edits in branches/safari-608.1.34.1-branch/Source/WebCore

Cherry-pick r247231. rdar://problem/52640967

Prevent null dereferencing in SubresourceLoader::init's lambda
https://bugs.webkit.org/show_bug.cgi?id=199580

Reviewed by Ryosuke Niwa.

Crash logs indicate that sometimes m_documentLoader is null.
This is similar to https://bugs.webkit.org/show_bug.cgi?id=187360

  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::init):

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

9:06 AM Changeset in webkit [247302] by Alan Coon
  • 7 edits in branches/safari-608.1.34.1-branch/Source

Versioning.

9:06 AM Changeset in webkit [247301] by guijemont@igalia.com
  • 2 edits in trunk/Tools

Run tests on mips EWS
https://bugs.webkit.org/show_bug.cgi?id=196854

Reviewed by Carlos Garcia Campos.

  • Scripts/webkitpy/common/config/ews.json:
9:03 AM Changeset in webkit [247300] by Alan Coon
  • 1 copy in branches/safari-608.1.34.1-branch

New branch.

8:53 AM Changeset in webkit [247299] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant InlineFormattingContext::LineLayout members.
https://bugs.webkit.org/show_bug.cgi?id=199654
<rdar://problem/52869206>

Reviewed by Antti Koivisto.

Some of the members are actually only needed in selected functions.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.h:

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

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::LineLayout::LineLayout):
(WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
(WebCore::Layout::InlineFormattingContext::LineLayout::alignRuns const):

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::inlineItems):
(WebCore::Layout::InlineFormattingState::inlineRuns):
(WebCore::Layout::InlineFormattingState::lineBoxes):

7:53 AM Changeset in webkit [247298] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Protect against null samples and samples with null buffers
https://bugs.webkit.org/show_bug.cgi?id=199619

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder): Assert to enforce non-null samples.
(WebCore::GstVideoFrameHolder::updateTexture): Protect against null m_buffer and improperly mapped video frame.

4:59 AM Changeset in webkit [247297] by clopez@igalia.com
  • 23 edits
    1 copy
    72 adds in trunk

[GTK][WPE] Enable support for CSS_COMPOSITING
https://bugs.webkit.org/show_bug.cgi?id=199513

Reviewed by Michael Catanzaro.

.:

This feature is needed to support the CSS properties "mix-blend-mode" and "isolation".
Enable it for all ports except for AppleWin (doesn't build).

It has been tested that it builds on the EWS bots of all the ports enabled (for those that have an EWS).
Also, for the GTK and WPE ports it also has been tested that the feature works fine on most of the cases and that doesn't cause regressions.

  • Source/cmake/OptionsFTW.cmake: Enable the feature.
  • Source/cmake/OptionsMac.cmake: Use the new default.
  • Source/cmake/OptionsWin.cmake: Enable for WinCairo only.
  • Source/cmake/WebKitFeatures.cmake: Enable it Globally

LayoutTests:

Rebaseline the tests that pass after enabling CSS_COMPOSITING.
The feature works is most of the cases, but there are still some tests/cases not working.

There are also some new failures marked related to SVG blending (css3/blending/svg*), but those were already failing before.
So its unrelated to this change.

  • platform/gtk/TestExpectations:
  • platform/gtk/css3/blending/background-blend-mode-default-value-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-different-image-formats-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-image-color-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-image-image-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-single-layer-no-blending-expected.png:
  • platform/gtk/css3/blending/blend-mode-background-expected.png:
  • platform/gtk/css3/blending/blend-mode-background-expected.txt:
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-overflow-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-overflow-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-simple-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-simple-expected.txt: Added.
  • platform/gtk/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
  • platform/wpe/TestExpectations:
  • platform/wpe/css3/blending/background-blend-mode-default-value-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-default-value-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-color-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-color-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-image-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-image-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-background-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-background-expected.txt: Copied from LayoutTests/platform/gtk/css3/blending/blend-mode-background-expected.txt.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-overflow-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-overflow-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-simple-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-simple-expected.txt: Added.
  • platform/wpe/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-blend-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-filter-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-mask-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt: Added.
1:24 AM Changeset in webkit [247296] by Tadeu Zagallo
  • 3 edits
    2 adds in trunk

Optimize join of large empty arrays
https://bugs.webkit.org/show_bug.cgi?id=199636

Reviewed by Mark Lam.

JSTests:

  • microbenchmarks/large-empty-array-join.js: Added.
  • microbenchmarks/large-empty-array-join-resolve-rope.js: Added.

Source/JavaScriptCore:

Replicate the behavior of str.repeat(count) when performing new Array(count + 1).join(str).
I added two new microbenchmarks:

  • large-empty-array-join, which does not use the result of the join and runs ~44x faster and uses ~18x less memory.
  • large-empty-array-join-resolve-rope, which uses the result of the join and runs 2x faster.

baseline diff

large-empty-array-join 2713.9698+-72.7621 61.2335+-10.4836 definitely 44.3217x faster
large-empty-array-join-resolve-string 26.5517+-0.3995 12.9309+-0.5516 definitely 2.0533x faster

large-empty-array-join memory usage with baseline (dirty):

733012 kB current_mem
756824 kB lifetime_peak

large-empty-array-join memory usage with diff (dirty):

41904 kB current_mem
41972 kB lifetime_peak

Additionally, I ran JetStream2, sunspider and v8-spider and all were neutral.

  • runtime/ArrayPrototype.cpp:

(JSC::fastJoin):

Jul 9, 2019:

11:33 PM Changeset in webkit [247295] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

AX: HTML datalist accessibility is not exposed by WebKit
https://bugs.webkit.org/show_bug.cgi?id=196998
<rdar://problem/49962521>

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

Source/WebCore:

Input fields with datalist are exposed as having a listbox popup.

Test: accessibility/datalist.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::popupValue const):
(WebCore::AccessibilityObject::hasDatalist const):

  • accessibility/AccessibilityObject.h:

LayoutTests:

  • accessibility/datalist-expected.txt: Added.
  • accessibility/datalist.html: Added.
11:02 PM Changeset in webkit [247294] by Michael Catanzaro
  • 8 edits in trunk

[WPE][GTK] GUniqueOutPtr::release should return a raw pointer
https://bugs.webkit.org/show_bug.cgi?id=199579

Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • NetworkProcess/glib/WebKitCachedResolver.cpp:

(webkitCachedResolverLookupByNameAsync):
(webkitCachedResolverLookupByNameWithFlagsAsync):

  • UIProcess/API/glib/WebKitFaviconDatabase.cpp:

(processPendingIconsForPageURL):
(webkit_favicon_database_get_favicon):

  • UIProcess/API/glib/WebKitUserContentFilterStore.cpp:

(webkit_user_content_filter_store_save_from_file):

Source/WTF:

GUniqueOutPtr::release should release to a raw pointer, rather than a GUniquePtr. If a
GUniquePtr is desired, it's trivial to construct one from the raw pointer, but all existing
callsites under Source/ would rather have a raw pointer. Currently they have to call
release().release() to get the raw pointer, which is annoying.

  • wtf/glib/GUniquePtr.h:

(WTF::GUniqueOutPtr::release):

Tools:

  • TestWebKitAPI/Tests/WTF/glib/GUniquePtr.cpp:

(TestWebKitAPI::TEST):

9:39 PM Changeset in webkit [247293] by Justin Fan
  • 54 edits in trunk/Source/WebCore

Replace old, broken WebGPU IDL spec link with the new one in IDL comments.

Rubber-stamped by Myles C. Maxfield.

No test changes or change in behavior.

  • Modules/webgpu/GPUBindGroupLayoutBinding.idl:
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.idl:
  • Modules/webgpu/GPUBlendDescriptor.idl:
  • Modules/webgpu/GPUBufferDescriptor.idl:
  • Modules/webgpu/GPUBufferUsage.idl:
  • Modules/webgpu/GPUCanvasContext.idl:
  • Modules/webgpu/GPUColor.idl:
  • Modules/webgpu/GPUColorStateDescriptor.idl:
  • Modules/webgpu/GPUColorWriteBits.idl:
  • Modules/webgpu/GPUCompareFunction.idl:
  • Modules/webgpu/GPUDepthStencilStateDescriptor.idl:
  • Modules/webgpu/GPUExtent3D.idl:
  • Modules/webgpu/GPULoadOp.idl:
  • Modules/webgpu/GPUOrigin3D.idl:
  • Modules/webgpu/GPURequestAdapterOptions.idl:
  • Modules/webgpu/GPUSamplerDescriptor.idl:
  • Modules/webgpu/GPUShaderStageBit.idl:
  • Modules/webgpu/GPUStoreOp.idl:
  • Modules/webgpu/GPUTextureDescriptor.idl:
  • Modules/webgpu/GPUTextureUsage.idl:
  • Modules/webgpu/GPUVertexAttributeDescriptor.idl:
  • Modules/webgpu/GPUVertexBufferDescriptor.idl:
  • Modules/webgpu/GPUVertexInputDescriptor.idl:
  • Modules/webgpu/WebGPU.idl:
  • Modules/webgpu/WebGPUAdapter.idl:
  • Modules/webgpu/WebGPUBindGroup.idl:
  • Modules/webgpu/WebGPUBindGroupBinding.idl:
  • Modules/webgpu/WebGPUBindGroupDescriptor.idl:
  • Modules/webgpu/WebGPUBindGroupLayout.idl:
  • Modules/webgpu/WebGPUBuffer.idl:
  • Modules/webgpu/WebGPUBufferBinding.idl:
  • Modules/webgpu/WebGPUCommandBuffer.idl:
  • Modules/webgpu/WebGPUCommandEncoder.idl:
  • Modules/webgpu/WebGPUComputePassEncoder.idl:
  • Modules/webgpu/WebGPUComputePipeline.idl:
  • Modules/webgpu/WebGPUComputePipelineDescriptor.idl:
  • Modules/webgpu/WebGPUDevice.idl:
  • Modules/webgpu/WebGPUPipelineDescriptorBase.idl:
  • Modules/webgpu/WebGPUPipelineLayout.idl:
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl:
  • Modules/webgpu/WebGPUPipelineStageDescriptor.idl:
  • Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
  • Modules/webgpu/WebGPUQueue.idl:
  • Modules/webgpu/WebGPURenderPassDescriptor.idl:
  • Modules/webgpu/WebGPURenderPassEncoder.idl:
  • Modules/webgpu/WebGPURenderPipeline.idl:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
  • Modules/webgpu/WebGPUSampler.idl:
  • Modules/webgpu/WebGPUShaderModule.idl:
  • Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
  • Modules/webgpu/WebGPUSwapChain.idl:
  • Modules/webgpu/WebGPUTexture.idl:
  • Modules/webgpu/WebGPUTextureView.idl:
9:19 PM Changeset in webkit [247292] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using GenericTaskQueue from multiple threads
https://bugs.webkit.org/show_bug.cgi?id=199652

Reviewed by Geoffrey Garen.

WebCoreAVFLoaderDelegate was calling GenericTaskQueue::enqueueTask() from a background thread,
which is not safe because the implementation of enqueueTask() calls makeWeakPtr() on the
GenericTaskQueue (a main thread object).

Update WebCoreAVFLoaderDelegate to use callOnMainThread() instead.

  • platform/GenericTaskQueue.h:

Stop last template parameter which was used exclusively by WebCoreAVFLoaderDelegate to try and
make GenericTaskQueue thread-safe.

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

(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):

6:52 PM Changeset in webkit [247291] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Fixed elements appear in the middle of full page screenshots taken when scrolled
https://bugs.webkit.org/show_bug.cgi?id=199649
<rdar://problem/52476226>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/FrameView.h:

Expose a getter for the layout viewport override rect.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::computePagesForPrintingAndDrawToPDF):
Temporarily expand the layout viewport to the size of the snapshotting page,
so that fixed elements sit against the bounds of the page instead of
wherever you're currently scrolled to.

6:31 PM Changeset in webkit [247290] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

[iOS WK2] Use Optional<> for two data members of WKWebView
https://bugs.webkit.org/show_bug.cgi?id=199637

Reviewed by Tim Horton.

Use Optional<CGSize> to replace _overridesViewLayoutSize/_viewLayoutSizeOverride
and _overridesMaximumUnobscuredSize/_maximumUnobscuredSizeOverride.

No behavior change.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView activeViewLayoutSize:]):
(-[WKWebView _frameOrBoundsChanged]):
(activeMaximumUnobscuredSize):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _maximumUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _clearOverrideLayoutParameters]):

5:23 PM Changeset in webkit [247289] by sbarati@apple.com
  • 24 edits
    16 adds in trunk/LayoutTests

[WHLSL] Import another round of JS spec tests
https://bugs.webkit.org/show_bug.cgi?id=199647

Reviewed by Myles C. Maxfield.

This patch also removes the unneded <!-- webkit-test-runner [ experimental:WebGPUEnabled=true ] -->
comments in various tests.

  • webgpu/bind-groups.html:
  • webgpu/blit-commands.html:
  • webgpu/map-read-buffers.html:
  • webgpu/map-write-buffers.html:
  • webgpu/msl-harness-test.html:
  • webgpu/pipeline-layouts.html:
  • webgpu/queue-creation.html:
  • webgpu/render-command-encoding.html:
  • webgpu/shader-modules.html:
  • webgpu/textures-textureviews.html:
  • webgpu/whlsl-array-spec-tests.html:
  • webgpu/whlsl-bad-ander-expected.txt: Added.
  • webgpu/whlsl-bad-ander.html: Added.
  • webgpu/whlsl-bad-literals-expected.txt: Added.
  • webgpu/whlsl-bad-literals.html: Added.
  • webgpu/whlsl-bitwise-bool-ops.html:
  • webgpu/whlsl-enum-spec-tests.html:
  • webgpu/whlsl-equality.html:
  • webgpu/whlsl-float-math-expected.txt: Added.
  • webgpu/whlsl-float-math.html: Added.
  • webgpu/whlsl-index-getter-setter-expected.txt: Added.
  • webgpu/whlsl-index-getter-setter.html: Added.
  • webgpu/whlsl-int-bit-math-expected.txt: Added.
  • webgpu/whlsl-int-bit-math.html: Added.
  • webgpu/whlsl-int-literal-compare.html:
  • webgpu/whlsl-make-array-ref-spec-tests-expected.txt: Added.
  • webgpu/whlsl-make-array-ref-spec-tests.html: Added.
  • webgpu/whlsl-matrices-spec-tests.html:
  • webgpu/whlsl-pointer-spec-tests-expected.txt: Added.
  • webgpu/whlsl-pointer-spec-tests.html: Added.
  • webgpu/whlsl-postfix-prefix-expected.txt: Added.
  • webgpu/whlsl-postfix-prefix.html: Added.
  • webgpu/whlsl-return-spec-tests.html:
  • webgpu/whlsl-simple-getter-setter.html:
  • webgpu/whlsl-simple-tests.html:
  • webgpu/whlsl-simple-while-loop.html:
  • webgpu/whlsl-test-harness-test.html:
  • webgpu/whlsl-type-mismatch.html:
  • webgpu/whlsl-uint-bitwise.html:
5:13 PM Changeset in webkit [247288] by Chris Dumez
  • 6 edits in trunk

Fix integer type encoding / decoding in WKRemoteObjectCoder
https://bugs.webkit.org/show_bug.cgi?id=199643
<rdar://problem/52732342>

Reviewed by Anders Carlsson.

Source/WebKit:

As per [1], q / Q match to long long / unsigned long long, not long / unsigned long.

[1] https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html#//apple_ref/doc/uid/TP40008048-CH100

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments):
(decodeInvocationArguments):

Tools:

Update API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:
  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn takeUnsignedLongLong:completionHandler:]):
(-[RemoteObjectRegistryPlugIn takeLongLong:completionHandler:]):
(-[RemoteObjectRegistryPlugIn takeUnsignedLong:completionHandler:]):
(-[RemoteObjectRegistryPlugIn takeLong:completionHandler:]):

5:05 PM Changeset in webkit [247287] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.0.2

Tag Safari-608.1.34.0.2.

4:54 PM Changeset in webkit [247286] by weinig@apple.com
  • 7 edits 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.

4:20 PM Changeset in webkit [247285] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, address TestExpectations linter warning.

the directory doesn't exist anymore.

4:05 PM Changeset in webkit [247284] by sbarati@apple.com
  • 1 edit
    14 adds in trunk/LayoutTests

[WHLSL] Add another group of WHLSL JS reference spec tests
https://bugs.webkit.org/show_bug.cgi?id=199642

Reviewed by Robin Morisset.

  • webgpu/whlsl-array-spec-tests-expected.txt: Added.
  • webgpu/whlsl-array-spec-tests.html: Added.
  • webgpu/whlsl-enum-spec-tests-expected.txt: Added.
  • webgpu/whlsl-enum-spec-tests.html: Added.
  • webgpu/whlsl-equality-expected.txt: Added.
  • webgpu/whlsl-equality.html: Added.
  • webgpu/whlsl-matrices-spec-tests-expected.txt: Added.
  • webgpu/whlsl-matrices-spec-tests.html: Added.
  • webgpu/whlsl-return-spec-tests-expected.txt: Added.
  • webgpu/whlsl-return-spec-tests.html: Added.
  • webgpu/whlsl-simple-getter-setter-expected.txt: Added.
  • webgpu/whlsl-simple-getter-setter.html: Added.
  • webgpu/whlsl-simple-while-loop-expected.txt: Added.
  • webgpu/whlsl-simple-while-loop.html: Added.
3:40 PM Changeset in webkit [247283] by Chris Dumez
  • 5 edits in trunk/Source

Cleanup uses of NetworkProcess::m_sessionByConnection
https://bugs.webkit.org/show_bug.cgi?id=199586

Reviewed by Alex Christensen.

Avoid double HashMap lookups and call add() instead of ensure() when appropriate.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::networkSessionByConnection const):
(WebKit::NetworkProcess::webPageWasAdded):
(WebKit::NetworkProcess::webProcessWasDisconnected):

3:11 PM Changeset in webkit [247282] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build after r247279
https://bugs.webkit.org/show_bug.cgi?id=199640

  • WebCore.xcodeproj/project.pbxproj:
2:49 PM Changeset in webkit [247281] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

WKObject's minimum object alignment needs to be larger
https://bugs.webkit.org/show_bug.cgi?id=199523

Patch by Saagar Jha <saagarjha@apple.com> on 2019-07-09
Reviewed by Alex Christensen.

WKObject's wrapped objects are currently constructed at addresses aligned to 8-byte boundaries, but some
classes have more stringent requirements. By querying std::aligned_storage for the alignment of an object
larger than anything we can construct, we should be able to satisfy alignment for any of WebKit's types.

  • Shared/Cocoa/APIObject.mm: Use std::aligned_storage in conjunction with alignof to determine

minimumObjectAlignment, instead of hardcoding 8.

2:45 PM Changeset in webkit [247280] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Don't strip out spaces for personalized Autocorrections
https://bugs.webkit.org/show_bug.cgi?id=199476
<rdar://problem/50782015>

Reviewed by Dean Jackson.

When inserting 'autocorrections' that are really predictive
text suggestions based on personal data, we would remove the space
before the suggestion, resulting in incorrect input.
To fix, do not remove a space when the autocorrected text and the text it is
replacing do not have any length.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applyAutocorrectionInternal):

2:30 PM Changeset in webkit [247279] by achristensen@apple.com
  • 3 edits
    2 moves in trunk/Source/WebCore

Move AutofillElements.{h,cpp} from editing/ios to editing/cocoa since they're used on macOS
https://bugs.webkit.org/show_bug.cgi?id=199640

Reviewed by Chris Dumez.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/AutofillElements.cpp: Copied from Source/WebCore/editing/ios/AutofillElements.cpp.
  • editing/cocoa/AutofillElements.h: Copied from Source/WebCore/editing/ios/AutofillElements.h.
  • editing/ios/AutofillElements.cpp: Removed.
  • editing/ios/AutofillElements.h: Removed.
2:07 PM Changeset in webkit [247278] by Devin Rousso
  • 14 edits in trunk/Source

Web Inspector: Canvas: replace WTF::Vector with std::initializer_list in CallTracer to avoid dynamic allocations
https://bugs.webkit.org/show_bug.cgi?id=199611

Reviewed by Joseph Pecoraro.

Source/WebCore:

The number of arguments for each member function is known at build time, so there's no need
to dynamically allocate a WTF::Vector when capturing the arguments. One downside to using
a std::initializer_list is that we can no longer "flatten" WTF::Variant arguments into
a RecordCanvasActionVariant, but this is acceptable because WTF::Variant supports having
yet another WTF::Variant as one of it's types, which the InspectorCanvas can then figure
out when it finally gets the data. The same applies to nullptr/Optional checks as well.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeSetterBodyDefinition):
(GenerateImplementationFunctionCall):
(GenerateCallTracer):
(GenerateCallTracerParameter): Deleted.

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/js/CallTracerTypes.h:
  • bindings/js/CallTracer.h:
  • bindings/js/CallTracer.cpp:

(WebCore::CallTracer::recordCanvasAction):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::recordCanvasAction):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::recordCanvasActionImpl):

  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::recordCanvasAction):

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildAction):
Drive-by: handle the situation where a parameter is an array of deduplicated strings, which

would otherwise be treated as an array of numbers.

Source/WebInspectorUI:

  • UserInterface/Models/Recording.js:

(WI.Recording.prototype.async swizzle):
Drive-by: handle the situation where a parameter is an array of deduplicated strings, which

would otherwise be treated as an array of numbers.

2:01 PM Changeset in webkit [247277] by Truitt Savell
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r247230.

Caused storage/domstorage/localstorage/private-browsing-
affects-storage.html to crash with an assertion.

Reverted changeset:

"Cleanup uses of NetworkProcess::m_sessionByConnection"
https://bugs.webkit.org/show_bug.cgi?id=199586
https://trac.webkit.org/changeset/247230

1:44 PM Changeset in webkit [247276] by youenn@apple.com
  • 3 edits
    4 adds in trunk

XHR CORS requests logged twice in the server
https://bugs.webkit.org/show_bug.cgi?id=199492
<rdar://problem/52757558>

Reviewed by Chris Dumez.

Source/WebKit:

Disable speculative loading for XHR and fetch.
These speculative requests might have specific headers that are no longer relevant
when reloading the page. This might then confuse servers.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::canRequestUseSpeculativeRevalidation):
(WebKit::NetworkCache::Cache::retrieve):

LayoutTests:

  • http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads-expected.txt: Added.
  • http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads.html: Added.
  • http/wpt/fetch/resources/fetch-xhr-load.py: Added.

(main):

  • http/wpt/fetch/resources/xhr-and-fetch.html: Added.
1:41 PM Changeset in webkit [247275] by Joseph Pecoraro
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 13.0)
https://bugs.webkit.org/show_bug.cgi?id=199631
<rdar://problem/47538193>

Reviewed by Devin Rousso.

  • UserInterface/Protocol/Legacy/13.0/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-13.0.json: Added.
1:28 PM Changeset in webkit [247274] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Fix validation of method signature in decodeInvocation()
https://bugs.webkit.org/show_bug.cgi?id=199629
<rdar://problem/52731659>

Reviewed by Dan Bernstein.

The decoder was mistakenly assigning remoteMethodSignature to localMethodSignature
before comparing remoteMethodSignature and localMethodSignature, thus making the
check useless.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(decodeInvocation):

1:03 PM Changeset in webkit [247273] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Fix non thread-safe use of WeakPtr in DisplayRefreshMonitorMac::displayLinkFired()
https://bugs.webkit.org/show_bug.cgi?id=199626

Reviewed by Ryosuke Niwa.

Fix non thread-safe use of WeakPtr in DisplayRefreshMonitorMac::displayLinkFired().
DisplayRefreshMonitorMac gets constructed / destroyed on the main thread, it is
not thread-safe to call makeWeakPtr() on a DisplayRefreshMonitorMac object like it
was done before.

To address the issue, mark the object as ThreadSafeRefCounted and ref the object
in the lambda instead.

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::stop):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::unregisterClient):

  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebCore::DisplayRefreshMonitorMac::stop):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/mac/DisplayRefreshMonitorMac.h:
12:56 PM Changeset in webkit [247272] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Revert conditional WebPageProxy check to grant universal file read sandbox upon correct sandbox creation
https://bugs.webkit.org/show_bug.cgi?id=199622
<rdar://problem/52357508>

Reviewed by Alex Christensen.

On iOS, the sandbox extension to '/' will usually fail, thus the universal file read sandbox is not granted.
This makes WebPageProxy cancel some file:// loads to the application own container.
As a short term fix, go back to previous behavior.
Covered by testing broken app identified in rdar://problem/52357508.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

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

Remove rel=subresource tests
https://bugs.webkit.org/show_bug.cgi?id=199616

Patch by Rob Buis <rbuis@igalia.com> on 2019-07-09
Reviewed by Ryosuke Niwa.

Remove rel=subresource references by deleting or using rel=prefetch
instead.

  • TestExpectations:
  • fast/dom/HTMLLinkElement/cachedresource-types.html:
  • http/tests/misc/link-rel-prefetch-and-subresource.html: Removed.
  • webarchive/test-link-rel-subresource-beforeload-expected.webarchive: Removed.
  • webarchive/test-link-rel-subresource-beforeload.html: Removed.
12:25 PM Changeset in webkit [247270] by sihui_liu@apple.com
  • 17 edits in trunk

Only allow fetching and removing session credentials from WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=199385
<rdar://problem/52622080>

Reviewed by Alex Christensen.

Source/WebCore:

Fetch and remove only session credentials from NSURLCredentialStorage.

Modified existing API tests: WKWebsiteDataStore.FetchPersistentCredentials

  • platform/network/CredentialStorage.cpp:

(WebCore::CredentialStorage::originsWithCredentials const):
(WebCore::CredentialStorage::originsWithSessionCredentials):
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
(WebCore::CredentialStorage::clearSessionCredentials):
(WebCore::CredentialStorage::clearPermanentCredentialsForProtectionSpace):

  • platform/network/CredentialStorage.h:
  • platform/network/mac/CredentialStorageMac.mm:

(WebCore::CredentialStorage::originsWithSessionCredentials):
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
(WebCore::CredentialStorage::clearSessionCredentials):
(WebCore::CredentialStorage::clearPermanentCredentialsForProtectionSpace):
(WebCore::CredentialStorage::originsWithPersistentCredentials): Deleted.

Source/WebKit:

Stop sending an extra message to network process for fetching or removing persistent credentials.

Also introduce a new SPI for clearing persistent credentials created in test.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearPermanentCredentialsForProtectionSpace):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted.
(WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted.
(WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _clearPermanentCredentialsForProtectionSpace:completionHandler:]):

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

(WebKit::WebProcessPool::clearPermanentCredentialsForProtectionSpace):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):

Tools:

removeDataOfTypes will no longer remove persistent credentials. We should clear persistent credentials using
the new SPI after each test that creates persistent credentials, otherwise the later tests may use credentials
left by previous tests and didReceiveAuthenticationChallenge will not be invoked.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

12:15 PM Changeset in webkit [247269] by achristensen@apple.com
  • 4 edits in trunk

When parsing an IPv4 address, wait until after deciding it is indeed an IPv4 address before reporting syntax violations
https://bugs.webkit.org/show_bug.cgi?id=199628

Reviewed by Brady Eidson.

Source/WTF:

Otherwise, we sometimes report syntax violations on things that are not IPv4 addresses and don't have syntax violations.
I added a unit test with one such URL that used to cause an assertion.

  • wtf/URLParser.cpp:

(WTF::URLParser::parseIPv4Host):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

12:13 PM Changeset in webkit [247268] by achristensen@apple.com
  • 4 edits in trunk

Remove invalid assertion in URLParser::domainToASCII
https://bugs.webkit.org/show_bug.cgi?id=199624

Reviewed by Brady Eidson.

Source/WTF:

When a non-ASCII domain's punycode encoding is longer than 63 characters,
the URL is supposed to fail to parse, according to https://www.unicode.org/reports/tr46/#ToASCII
We and all other browsers do this. When uidna_nameToASCII tries to punycode encode such a domain,
it can return a number larger than 63. In this case, processingDetails.errors is UIDNA_ERROR_LABEL_TOO_LONG
and we fail to parse as desired and uidna_nameToASCII did not write out of bounds, so it was just the assertion
that was wrong. I added some unit tests that would have hit the assertion and verify that we fail at the correct length.

  • wtf/URLParser.cpp:

(WTF::URLParser::domainToASCII):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

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

URLParser should reserialize IPv6 addresses that end with a colon
https://bugs.webkit.org/show_bug.cgi?id=199627

Reviewed by Brady Eidson.

Source/WTF:

When an IPv6 address ends in a colon, the colon should be removed which means the
serialized output is different than the input, which the URLParser calls a syntax violation.
This matches the URL specification, and I added a unit test that used to assert.

  • wtf/URLParser.cpp:

(WTF::URLParser::parseIPv6Host):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

11:55 AM Changeset in webkit [247266] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Null check HistoryItems given to loadDifferentDocumentItem
https://bugs.webkit.org/show_bug.cgi?id=199596
<rdar://problem/49884391>

Reviewed by Ryosuke Niwa.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
Under some rare and mysterious conditions we can have a null provisionalItem when loading from the cache.

11:43 AM Changeset in webkit [247265] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

[Pointer Events] Scroll indicators should not show for scrollable content with touch-action: none
https://bugs.webkit.org/show_bug.cgi?id=199618

Reviewed by Simon Fraser.

Source/WebKit:

Even though we correctly didn't scroll when "touch-action: none" was specified on an element, we would only apply
scrolling constraints after the panning gesture was recognized and the backing UIScrollView would show its scroll
indicators. While this is correct when only "pan-x" or "pan-y" is specified, we should not show the scroll indicators
at all for "touch-action: none" since no scrolling should happen.

To do this, we add a new method to the WKTouchActionGestureRecognizerDelegate protocol to indicate whether a given
gesture recognizer may pan content in the WKWebView. If the gesture recognizer is the top-level scroll view or one
created within the page to back "overflow: scroll" content or an iframe, we correctly make that gesture recognizer
fail to recognize if neither "pan-x" nor "pan-y" is specified for this touch identifier.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerMayPanWebView:]):

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

(-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]):

LayoutTests:

Add a new test that swipes "overflow: scroll" content which would show scroll indicators without scrolling
prior to this patch.

  • pointerevents/ios/touch-action-none-no-scroll-indicators-expected.html: Added.
  • pointerevents/ios/touch-action-none-no-scroll-indicators.html: Added.
11:41 AM Changeset in webkit [247264] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Validate reply block signature in [WKRemoteObjectRegistry _invokeMethod]
https://bugs.webkit.org/show_bug.cgi?id=199584
<rdar://problem/46268249>

Reviewed by Geoffrey Garen.

Validate reply block signature in [WKRemoteObjectRegistry _invokeMethod] for robustness.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(validateReplyBlockSignature):
(-[_WKRemoteObjectRegistry _invokeMethod:]):

11:27 AM Changeset in webkit [247263] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

UserData::decode should return false when decoding an unrecognized type
https://bugs.webkit.org/show_bug.cgi?id=199598
<rdar://52735138>

Reviewed by Ryosuke Niwa.

  • Shared/UserData.cpp:

(WebKit::UserData::decode):

11:26 AM Changeset in webkit [247262] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Fix LOG_DISABLED and TREE_DEBUGGING enabled build.
https://bugs.webkit.org/show_bug.cgi?id=199623
<rdar://problem/52837648>

Reviewed by Simon Fraser.

  • rendering/RenderLayerCompositor.cpp:
10:46 AM Changeset in webkit [247261] by Alan Coon
  • 14 edits
    2 adds in branches/safari-608.1.34.0-branch

Cherry-pick r247180. rdar://problem/51597945

[iOS] Crash in WebKit::WebPage::positionInformation via Range::startPosition
https://bugs.webkit.org/show_bug.cgi?id=199503

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/Editor.cpp: (WebCore::Editor::compositionRange const): Added a FIXME.

Source/WebKit:

The crash was caused because focusedElementPositionInformation asssumes Editor::compositionRange is not null
whenever Editor::hasComposition returns true, which is not necessary the case when Editor::m_compositionNode
contains no text (data is of length 0).

Fixed the crash by adding an early return for when Editor::compositionRange returns nullptr.

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

Tools:

Added UIScriptController.ensurePositionInformationIsUpToDateAt using the existing WKWebView SPI:
_requestActivatedElementAtPosition

  • DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • WebKitTestRunner/ios/UIScriptControllerMac.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):

LayoutTests:

Added a regression test for the crash.

  • editing/input/delete-text-in-composition-expected.txt: Added.
  • editing/input/delete-text-in-composition.html: Added.
  • resources/ui-helper.js: (window.UIHelper.ensurePositionInformationUpdateForElement): Added.

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

10:44 AM Changeset in webkit [247260] by Alan Coon
  • 7 edits in branches/safari-608.1.34.0-branch/Source

Versioning.

9:52 AM Changeset in webkit [247259] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[GStreamer] HLS media test gardening
https://bugs.webkit.org/show_bug.cgi?id=199620

Unreviewed gardening commit.

  • platform/gtk/TestExpectations:
9:14 AM Changeset in webkit [247258] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Do not run unix commands for windows in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=199605

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:
8:29 AM Changeset in webkit [247257] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Remove InlineItem references from inline runs.
https://bugs.webkit.org/show_bug.cgi?id=199608
<rdar://problem/52812775>

Reviewed by Antti Koivisto.

Constructing the inline runs is where we stop using InlineItems in the process of processing the inline content.
InlineItems are redundant in the context of Display::Runs.
It also enables us to create temporary InlineItems to process split content.

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Content::Run::Run):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Content::Run::layoutBox const):
(WebCore::Layout::Line::Content::Run::logicalRect const):
(WebCore::Layout::Line::Content::Run::textContext const):
(WebCore::Layout::Line::Content::Run::type const):
(WebCore::Layout::Line::Content::Run::isText const):
(WebCore::Layout::Line::Content::Run::isBox const):
(WebCore::Layout::Line::Content::Run::isLineBreak const):
(WebCore::Layout::Line::Content::Run::isContainerStart const):
(WebCore::Layout::Line::Content::Run::isContainerEnd const):
(WebCore::Layout::Line::Content::Run::adjustLogicalTop):
(WebCore::Layout::Line::Content::Run::moveVertically):
(WebCore::Layout::Line::Content::Run::moveHorizontally):
(WebCore::Layout::Line::Content::Run::setTextIsCollapsed):

8:21 AM Changeset in webkit [247256] by Antti Koivisto
  • 7 edits
    2 adds in trunk

REGRESSION(r244906): Crash in WebCore::positionOffsetValue
https://bugs.webkit.org/show_bug.cgi?id=199613
<rdar://problem/51518172>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/css/getComputedStyle/sticky-scroll-container-crash.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::enclosingScrollportBox const): Deleted.

The client trivally hits nullptr when this is called for element without overflow scroll parent.

Fix by removing the whole function and using shared enclosingClippingBoxForStickyPosition instead.
It does the same ancestor walk more efficiently via layer tree.

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::enclosingClippingBoxForStickyPosition const):

Factor into function.

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const):

  • rendering/RenderBoxModelObject.h:

LayoutTests:

  • fast/css/getComputedStyle/sticky-scroll-container-crash-expected.txt: Added.
  • fast/css/getComputedStyle/sticky-scroll-container-crash.html: Added.
3:03 AM Changeset in webkit [247255] by commit-queue@webkit.org
  • 9 edits
    1 delete in trunk

Support writing-mode and direction for scrollIntoViewOptions.
https://bugs.webkit.org/show_bug.cgi?id=161611

Patch by Cathie Chen <cathiechen> on 2019-07-09
Reviewed by Frédéric Wang and Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt:
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-lr-writing-mode-and-rtl-direction-expected.txt:
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-lr-writing-mode-expected.txt:
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-rl-writing-mode-expected.txt:

Source/WebCore:

To determine which physical side to align we need to transform ScrollIntoViewOptions to scrollAlignment.
We'll translate the inline and block direction separately. The writing-mode will affect the block scrollAlignment.
While both writing-mode and CSS direction will affect the inline scrollAlignment. The argument for scrollRectToVisible
should be physical, so if !isHorizontalWritingMode(), we need to switch alignX and alignY.

For direction: rtl and writing-mode: horizontal-tb box, WebKit puts the scrollbar on the left side. The visible rect
starts from the right side of the scroll bar, so localExposeRect should also start from the right side of
scroll bar.

  • dom/Element.cpp:

(WebCore::toScrollAlignmentForInlineDirection):
(WebCore::toScrollAlignmentForBlockDirection):
(WebCore::Element::scrollIntoView):
(WebCore::toScrollAlignment): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

LayoutTests:

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt: Removed.

Jul 8, 2019:

10:32 PM Changeset in webkit [247254] by sbarati@apple.com
  • 8 edits
    8 adds in trunk

[WHLSL Import 23 new JS reference spec tests
https://bugs.webkit.org/show_bug.cgi?id=199604

Reviewed by Myles C. Maxfield.

Source/WebCore:

This patch imports a bunch of JS reference spec tests on our way to
completing https://bugs.webkit.org/show_bug.cgi?id=199595

It also fixes the recursion checker phase. That phase had two bugs:

  1. We'd assert after visiting the function declaration that it was

still in the set. However, it will not be in the set when we actually
detect recursion.

  1. We would not visit the arguments to a call, so if they contained other

calls which were recursive, we would not detect such recursive calls.

Tests: webgpu/whlsl-int-literal-compare.html

webgpu/whlsl-simple-tests.html
webgpu/whlsl-type-mismatch.html
webgpu/whlsl-uint-bitwise.html

  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp:

LayoutTests:

This moves some stuff down into whlsl-test-harness which are needed by
all tests. This also adds a new checkFail that ensures the program never
runs (e.g, it has a compile error).

  • webgpu/js/whlsl-test-harness.js:

(async.checkFail):
(const.webGPUPromiseTest):

  • webgpu/whlsl-bitwise-bool-ops-expected.txt:
  • webgpu/whlsl-bitwise-bool-ops.html:
  • webgpu/whlsl-int-literal-compare-expected.txt: Added.
  • webgpu/whlsl-int-literal-compare.html: Added.
  • webgpu/whlsl-simple-tests-expected.txt: Added.
  • webgpu/whlsl-simple-tests.html: Added.
  • webgpu/whlsl-type-mismatch-expected.txt: Added.
  • webgpu/whlsl-type-mismatch.html: Added.
  • webgpu/whlsl-uint-bitwise-expected.txt: Added.
  • webgpu/whlsl-uint-bitwise.html: Added.
8:30 PM Changeset in webkit [247253] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger: special breakpoints and event targets should be sorted into separate "areas"
https://bugs.webkit.org/show_bug.cgi?id=199554

Reviewed by Joseph Pecoraro.

Move the special All Requests breakpoint down to be right above all other URL breakpoints.
Move the window object tree element below other DOM node tree elements.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._addTreeElement):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement):

8:16 PM Changeset in webkit [247252] by Devin Rousso
  • 3 edits
    4 adds in trunk/Source/WebInspectorUI

Web Inspector: DOM Debugger: there should be different icons for each type of DOM breakpoint
https://bugs.webkit.org/show_bug.cgi?id=199552

Reviewed by Joseph Pecoraro.

[S] for Subtree Modified
[A] for Attribute Modified
[R] for Node Removed

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement):

  • UserInterface/Views/DOMBreakpointTreeElement.css: Added.

(.breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon):
(.breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon):
(.breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon):

  • UserInterface/Main.html:
  • UserInterface/Images/DOMBreakpointAttributeModified.svg: Added.
  • UserInterface/Images/DOMBreakpointNodeRemoved.svg: Added.
  • UserInterface/Images/DOMBreakpointSubtreeModified.svg: Added.
8:10 PM Changeset in webkit [247251] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

[iOS 13] paste-does-not-fire-promises-while-sanitizing-web-content.html times out when run with multiple iterations
https://bugs.webkit.org/show_bug.cgi?id=199597

Reviewed by Tim Horton.

Make this test more robust to work around bugs in iOS 13 that currently prevent some single tap gestures from
being recognized, due to conflicts with double tap gesture recognizers.

  • Make both the subframe and editable element taller, so that they're easier to hit.
  • Tap twice when attempting to trigger a paste, in hopes that at least one of the taps will be recognized as a

single click.

  • Make several event listeners one-shot, to prevent the double tap gesture from triggering paste twice.
  • editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html:
8:06 PM Changeset in webkit [247250] by Chris Dumez
  • 11 edits in trunk/Source/WebKit

Speculative fix for crashes under LocalStorageDatabaseTracker::databasePath()
https://bugs.webkit.org/show_bug.cgi?id=199599
<rdar://problem/31169686>

Reviewed by Ryosuke Niwa.

Speculative fix for crashes under LocalStorageDatabaseTracker::databasePath():

  • Add new localStorageDirectory() getter to LocalStorageDatabaseTracker which calls isolatedCopy() on m_localStorageDirectory before returning it. Use it everywhere instead of m_localStorageDirectory since it is not safe to use the same String from various threads like it was done.
  • Move localStorageDirectory when constructing the LocalStorageDatabaseTracker instead of copying it.
  • Make sure that LocalStorageDatabaseTracker and StorageManager are both constructed and destroyed on the main thread.
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::create):
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
(WebKit::LocalStorageDatabaseTracker::localStorageDirectory const):
(WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker):
(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases):
(WebKit::LocalStorageDatabaseTracker::origins const):
(WebKit::LocalStorageDatabaseTracker::databasePath const):

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::create):
(WebKit::StorageManager::StorageManager):
(WebKit::StorageManager::~StorageManager):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm:

(WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/curl/NetworkSessionCurl.cpp:

(WebKit::NetworkSessionCurl::NetworkSessionCurl):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):

7:22 PM Changeset in webkit [247249] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: Unexpected enum value: CPU
https://bugs.webkit.org/show_bug.cgi?id=199564

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype._updateAutoCaptureInstruments):
Filter the list of auto-capture instruments based on what's actually supported, instead of
directly using the saved list from the WI.Setting.

7:19 PM Changeset in webkit [247248] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Enabling the Layers tab hides the paint flashing button
https://bugs.webkit.org/show_bug.cgi?id=199549

Reviewed by Joseph Pecoraro.

Still show the Compositing Borders and Paint Flashing navigation items in the Elements tab
even when the Layers tab is enabled (just like the Layers details sidebar).

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):

7:18 PM Changeset in webkit [247247] by keith_miller@apple.com
  • 10 edits in trunk

Enable Intl.PluralRules and Intl.NumberFormatToParts by default
https://bugs.webkit.org/show_bug.cgi?id=199288

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

These features have been around for a while. We should turn them on by default.

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation): Deleted.

  • runtime/IntlObject.h:
  • runtime/Options.h:

LayoutTests:

Remove runtime flag from testing.

  • js/intl-numberformat-format-to-parts.html:
  • js/intl-pluralrules.html:
  • js/script-tests/intl-numberformat-format-to-parts.js:
  • js/script-tests/intl-pluralrules.js:
6:24 PM Changeset in webkit [247246] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

YouTube embedding iframes in WebView sometimes go blank when the video starts playing
https://bugs.webkit.org/show_bug.cgi?id=199600
rdar://problem/47806012

Reviewed by Tim Horton.

With some combinations of nested iframes that are being resized from empty, and toggling into
compositing mode, we'd fail to update compositing in the iframe's enclosing document, so never
host the iframes's layers.

Fix by moving some widget-resize-related code into RenderLayerCompositor::widgetDidChangeSize(),
and adding code to schedule a compositing update.

I was unable to come up with a layout test for this.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::widgetDidChangeSize):

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

(WebCore::RenderWidget::setWidgetGeometry):

6:07 PM Changeset in webkit [247245] by Fujii Hironori
  • 3 edits in trunk/Source/WebKitLegacy/win

[WinCairo] ASSERTION FAILED: info.bmBitsPixel == 32 in createCairoContextWithHDC
https://bugs.webkit.org/show_bug.cgi?id=198323

Reviewed by Per Arne Vollan.

WebView::paint binds m_backingStoreBitmap to a DC by using
SelectObject. WebView::paint can be called recursively, but
m_backingStoreBitmap can't be bound to multiple DCs at the same
time. Then, SelectObject was failing in such case.

Call WebCore::Page::updateRendering before binding
m_backingStoreBitmap instead of after it.

Reverted r202744 change which won't be needed since this change.

  • WebView.cpp:

(WebView::scrollBackingStore): Removed r202744's change.
(WebView::updateBackingStore): Removed m_page->updateRendering().
(WebView::paint): Do m_page->updateRendering() before binding m_backingStoreBitmap.

  • WebView.h: Removed unused WebView::isPainting.
6:03 PM Changeset in webkit [247244] by Fujii Hironori
  • 2 edits in trunk/Tools

JSTestGlobalObject.cpp of bindings-generation-tests is failing for Windows Python
https://bugs.webkit.org/show_bug.cgi?id=199487

Reviewed by Ross Kirsling.

In Windows Python, preprocessor.pm is using cl.exe. cl.exe was
failing to open testglobalscope_constructors_file which was
created by using tempfile.mkstemp() because it keeps the file
open. Use tempfile.mkdtemp() to create temporary files in the
temporary directory instead of tempfile.mkstemp().

  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.run_tests):
(BindingsTests.main):
(BindingsTests.close_and_remove): Deleted.

5:53 PM Changeset in webkit [247243] by Chris Dumez
  • 5 edits in trunk/Source

Use WeakHashSet for WebUserContentControllerProxy::m_processes
https://bugs.webkit.org/show_bug.cgi?id=199591
<rdar://problem/52798721>

Reviewed by Youenn Fablet.

Source/WebKit:

Use WeakHashSet for WebUserContentControllerProxy::m_processses for safety. In theory, a WebProcessProxy could
stay in the map if we failed to call WebProcessProxy::shutDown() before destroying it.

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy):
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::removeProcess):
(WebKit::WebUserContentControllerProxy::addUserContentWorldUse):
(WebKit::WebUserContentControllerProxy::removeUserContentWorldUses):
(WebKit::WebUserContentControllerProxy::addUserScript):
(WebKit::WebUserContentControllerProxy::removeUserScript):
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::addUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
(WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
(WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
(WebKit::WebUserContentControllerProxy::addContentRuleList):
(WebKit::WebUserContentControllerProxy::removeContentRuleList):
(WebKit::WebUserContentControllerProxy::removeAllContentRuleLists):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:

(WebKit::WebUserContentControllerProxy::addNetworkProcess):
(WebKit::WebUserContentControllerProxy::removeNetworkProcess):

Source/WTF:

Update WeakHashSet::add() to return an AddResult type, similarly to our other containers.

  • wtf/WeakHashSet.h:

(WTF::WeakHashSet::add):

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

[ews-build] Add KillOldProcesses step before running API or Layout tests
https://bugs.webkit.org/show_bug.cgi?id=199592

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
5:27 PM Changeset in webkit [247241] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Elements: pasting in the Styles sidebar adds a text node to the DOM tree
https://bugs.webkit.org/show_bug.cgi?id=199588

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WI._paste):
Bail if event.defaultPrevented, as that means that something else has handled (and likely
overrode) this event.

5:03 PM Changeset in webkit [247240] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: the "x" in the Exception icon overlaps the border
https://bugs.webkit.org/show_bug.cgi?id=199553

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/Exception.svg:
  • UserInterface/Images/Function.svg:
  • UserInterface/Images/TailDeletedFunction.svg:
4:56 PM Changeset in webkit [247239] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Make Document::postTask() safe to call from a background thread
https://bugs.webkit.org/show_bug.cgi?id=199585

Reviewed by Alex Christensen.

Make Document::postTask() safe to call from a background thread by not calling makeWeakPtr() on the Document.
Calling makeWeakPtr() on a document from a background thread is not safe since Document is a main thread
object. Instead, capture Document::identifier() in the lambda and lookup the document from its identifier
once we're on the main thread.

  • dom/Document.cpp:

(WebCore::Document::postTask):

4:51 PM Changeset in webkit [247238] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Hop explicitly to the main thread after generating a frame in ScreenDisplayCaptureSourceMac
https://bugs.webkit.org/show_bug.cgi?id=199581

Reviewed by Eric Carlson.

Instead of locking and setting the current frame from a background thread, hop to the main thread.
This also makes sure the weakThis check is done in the main thread.
Manually tested.

  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:

(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::DisplaySurface):

  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::generateFrame):
(WebCore::ScreenDisplayCaptureSourceMac::newFrame):
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Deleted.

4:49 PM Changeset in webkit [247237] by Devin Rousso
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Debugger: there should be a different icon for URL breakpoints
https://bugs.webkit.org/show_bug.cgi?id=199550

Reviewed by Joseph Pecoraro.

Use the same (down|up) arrow icon for the Network Tab and the Network timeline.

  • UserInterface/Views/URLBreakpointTreeElement.js:

(WI.URLBreakpointTreeElement):

  • UserInterface/Views/URLBreakpointTreeElement.css:

(.breakpoint.url:not(.breakpoint-paused-icon) .icon): Added.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._addBreakpoint):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint):

  • UserInterface/Images/URLBreakpoint.svg: Added.
4:35 PM Changeset in webkit [247236] by Alan Coon
  • 1 copy in tags/Safari-607.3.9

Tag Safari-607.3.9.

4:34 PM Changeset in webkit [247235] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: CPU: the Duration string isn't localized
https://bugs.webkit.org/show_bug.cgi?id=199582
<rdar://problem/51698165>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype._layoutEnergyChart):

  • Localizations/en.lproj/localizedStrings.js:
4:31 PM Changeset in webkit [247234] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.0.1

Tag Safari-608.1.34.0.1.

4:08 PM Changeset in webkit [247233] by dbates@webkit.org
  • 6 edits
    2 adds in trunk

[iOS] Support select all in non-editable element
https://bugs.webkit.org/show_bug.cgi?id=199257
<rdar://problem/52553667>

Reviewed by Wenson Hsieh.

Source/WebKit:

Unless we are populating the callout bar always advertise that WebKit can perform Select All
when building with USE(UIKIT_KEYBOARD_ADDITIONS). This way you can press Command + A to select
all text even in a non-editable element just like you can on Mac.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):

LayoutTests:

Add a test to ensure that we can perform Select All even when a non-editable element is focused.

Also disallow testing of Command + A until we fix <https://bugs.webkit.org/show_bug.cgi?id=199475>.
Otherwise, the test fast/events/ios/key-events-comprehensive/key-events-meta.html fails since
Command + A now triggers page selection even in a non-editable (the purpose of this change)
and hence Command + C also triggers the copy command. The triggering of these commands causes
the test to fail the Command + A and Command + C sub-tests since no keypress event is dispatched
for the key that triggered these key commands. This is expected, but Command + A should not have
triggered selection as key-tester.js calls preventDefault() from a keypress handler. That's
the bug. See <https://bugs.webkit.org/show_bug.cgi?id=199475> for more details.

  • editing/selection/ios/select-all-non-editable-text-using-keyboard-expected.txt: Added.
  • editing/selection/ios/select-all-non-editable-text-using-keyboard.html: Added.
  • fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt: Updated result.
  • fast/events/ios/resources/key-tester.js: Disallow Command + A until we fix <https://bugs.webkit.org/show_bug.cgi?id=199475>.
  • platform/ios/TestExpectations: Skip the test until the fix for <rdar://problem/48322899>

has shipped.

4:07 PM Changeset in webkit [247232] by dbates@webkit.org
  • 4 edits in trunk

Command + . generates Escape with key identifier Period, should be Escape
https://bugs.webkit.org/show_bug.cgi?id=199393
<rdar://problem/52498001>

Reviewed by Wenson Hsieh.

Source/WebCore:

Remap the key code for Command + . before we compute the Windows virtual key code.
Otherwise, the Windows virtual key code reveals the pre-mapped key code.

  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]):

LayoutTests:

Update test result.

  • fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt:
3:59 PM Changeset in webkit [247231] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Prevent null dereferencing in SubresourceLoader::init's lambda
https://bugs.webkit.org/show_bug.cgi?id=199580

Reviewed by Ryosuke Niwa.

Crash logs indicate that sometimes m_documentLoader is null.
This is similar to https://bugs.webkit.org/show_bug.cgi?id=187360

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init):

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

Cleanup uses of NetworkProcess::m_sessionByConnection
https://bugs.webkit.org/show_bug.cgi?id=199586

Reviewed by Alex Christensen.

Avoid double HashMap lookups and call add() instead of ensure() when appropriate.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::networkSessionByConnection const):
(WebKit::NetworkProcess::webPageWasAdded):
(WebKit::NetworkProcess::webProcessWasDisconnected):

1:51 PM Changeset in webkit [247229] by cturner@igalia.com
  • 33 edits in trunk/LayoutTests

[GTK] Some media fragment tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=132248

Reviewed by Eric Carlson.

These tests look like they're flakey due to a small stop time. I'm
surmising that based on the bot's load, we step over the 0.5 mark
often. When I run this locally, despite running the fragment tests
100 times, I saw no timeouts.

I have seen crashes in the flakiness dashboard, but I would prefer
for these to have separate bugs so that we can squash them rather
than allowing them to linger. Having them expected to crash means
we have no crash logs to investigate.

Updated the baselines in the LayoutTests/ directory to reflect the
new stop time delta.

  • media/media-fragments/media-fragments.js:

(pause): Increase stop delta, on simulator builds the stddev
crossed the 0.5s mark, and I suspect on GTK builds, our bots being
heavily loaded cause the majority of timeouts.

  • platform/gtk/TestExpectations: Remove expectations.
12:57 PM Changeset in webkit [247228] by Jonathan Bedard
  • 3 edits in trunk/Tools

test-webkitpy: Explicitly use Python 2.7 lldb library
https://bugs.webkit.org/show_bug.cgi?id=199578
<rdar://problem/51853557>

Reviewed by Aakash Jain.

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

(SystemHost.path_to_lldb_python_directory): Explicitly use Python 2.7 lldb libary.

  • Scripts/webkitpy/test/main.py:

(_supports_building_and_running_lldb_tests): Run lldb tests on Catalina again.

12:54 PM Changeset in webkit [247227] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

WKWebView fails to render when another view uses CoreImage filters
https://bugs.webkit.org/show_bug.cgi?id=199488
<rdar://problem/52695825>

Reviewed by Dean Jackson.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::layerHostingModeDidChange):
Update m_layerHostingMode when it changes, even if we can't message
the Web Content process. This ensures that the next time we launch
a Web Content process, WebPageCreationParameters will have the correct
layer hosting mode, and is the usual pattern for such things.

12:12 PM Changeset in webkit [247226] by Ryan Haddad
  • 23 edits
    18 copies
    12 moves
    120 adds in trunk

Add test expectations and baselines for Catalina
https://bugs.webkit.org/show_bug.cgi?id=199328

Reviewed by Jonathan Bedard.

Tools:

  • Scripts/webkitpy/port/mac.py:

(MacPort): Increment current version to 10.15 so that baseline search paths are correctly constructed for High Sierra.

LayoutTests:

  • platfrom/mac/*: Adding Catalina test expectations and baselines.
  • platform/mac-mojave/*: Migrating Mojave baselines from platform/mac directory.
12:09 PM Changeset in webkit [247225] by chris.reid@sony.com
  • 5 edits in trunk

Implement MappedFileData for Windows
https://bugs.webkit.org/show_bug.cgi?id=198269

Reviewed by Darin Adler.

Source/WTF:

Original patch by Fujii Hironori.

Add Windows implementations for MappedFileData constructor and destructor.

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

Tools:

  • TestWebKitAPI/PlatformWin.cmake:
12:08 PM Changeset in webkit [247224] by Alan Coon
  • 1 edit in branches/safari-607-branch/Source/JavaScriptCore/runtime/RegExpInlines.h

Unreviewed build fix. rdar://problem/51349045

12:03 PM Changeset in webkit [247223] by Wenson Hsieh
  • 7 edits
    2 adds in trunk

[iPadOS] Viewport pops while loading sohu.com, xinhuanet.com, and various other websites
https://bugs.webkit.org/show_bug.cgi?id=199575
<rdar://problem/51842220>

Reviewed by Simon Fraser.

Source/WebKit:

Currently, the shrink-to-fit-content heuristic added to scale desktop sites fit within the viewport on iPadOS
only runs during two intervals: after document load, and after page load. On very script-heavy websites, this
may cause a visible jump, as rendering may commence well before the document is finished parsing.

To mitigate this, we move the first opportunity for the shrink-to-fit heuristic from after document, to right
after the page transition has completed (before we unfreeze the layer tree).

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):
(WebKit::WebPage::didFinishDocumentLoad): Deleted.

Remove this didFinishDocumentLoad hook, which was only used to schedule the shrink-to-fit timer.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::immediatelyShrinkToFitContent):

m_mainFrame might be null after page transition completes, so we need to ensure immediatelyShrinkToFitContent is
robust in this scenario.

LayoutTests:

Adjusts an existing layout test, and introduces a new test to verify that the shrink-to-fit heuristic is given a
chance to run before document load. See WebKit ChangeLog for more details.

  • fast/viewport/ios/shrink-to-fit-content-before-document-load-expected.txt: Added.
  • fast/viewport/ios/shrink-to-fit-content-before-document-load.html: Added.
  • fast/viewport/ios/shrink-to-fit-content-temporary-overflow.html:

Tweak this layout test to add the temporarily overflowing element after document load.

11:59 AM Changeset in webkit [247222] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Unable to paste from Notes into Excel 365 spreadsheet
https://bugs.webkit.org/show_bug.cgi?id=199565
<rdar://problem/43615497>

Reviewed by Chris Dumez.

Source/WebCore:

When pasting into Microsoft Excel 365, the copied data is all inserted into a single cell, even when copying a
table. To understand why this happens, we first need to understand how Excel's logic for handling paste works.
When tapping on the "Paste" button, Excel performs and expects the following:

  1. Before triggering programmatic paste, move focus into a hidden contenteditable area specifically intended to

capture pasted content.

  1. Run a promise that resolves immediately; the promise callback restores focus to the originally focused

element prior to (1).

  1. Invoke programmatic paste using document.execCommand("Paste").
  2. The callback scheduled in step (2) then runs, restoring focus to the main editable element representing a

table cell.

However, what ends up happening is this:

Steps (1)-(3): same as before.

  1. We (WebKit) create a temporary Page for the purposes of sanitizing copied web content before exposing it to

the paste handler. This involves creating and loading a document; when this is finished, we call into
Document::finishedParsing which flushes the microtask queue.

  1. This causes us to immediately run the microtask enqueued in step (2), which restores focus to the previously

focused element (importantly, this is not the element that was focused in step (1)).

  1. The paste commences, and inserts the sanitized fragment into the originally focused element rather than the

content editable area intended to capture pasted content.

Excel's script then gets confused, and does not end up using their special paste logic to handle the paste. The
pasted content is instead just inserted as plain text in a cell. To address this, we simply prevent document
load in the Page for web content sanitization from triggering a microtask checkpoint; this allows any scheduled
main thread microtasks to be deferred until the next turn of the runloop.

Test: editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html

  • dom/Document.cpp:

(WebCore::Document::finishedParsing):

Don't immediately dispatch microtasks when we finish document parsing, in the case where the page is intended
only for web content sanitization, since this may end up executing script in the original document. As explained
above, this causes compatibility issues when pasting in Excel.

  • editing/markup.cpp:

(WebCore::createPageForSanitizingWebContent):

When creating a page for sanitizing web content, mark it as such.

  • page/Page.h:

Add a new flag to indicate that a Page is only intended for sanitizing web content.

(WebCore::Page::setIsForSanitizingWebContent):
(WebCore::Page::isForSanitizingWebContent const):

LayoutTests:

Add a test to verify that promises scheduled right before a programmatic paste resolve in the middle of the
paste, while creating a document for web content sanitization. See WebCore ChangeLog for more details.

  • editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content-expected.txt: Added.
  • editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html: Added.
11:55 AM Changeset in webkit [247221] by Alan Coon
  • 4 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r246808. rdar://problem/52505041

Add didBecomePrototype() calls to global context prototypes
https://bugs.webkit.org/show_bug.cgi?id=199202

Reviewed by Mark Lam.

This fixes some crashes related to asserting that all prototypes
have been marked as such in JSC from
https://trac.webkit.org/changeset/246801. It's ok to call
didBecomePrototype here as we setting up the world state right now
so we won't be having a bad time.

We don't automatically call didBecomePrototype() for
setPrototypeWithoutTransition because existing objects may already
have this structure so it seems more reasonable to be explicit
there.

  • bindings/js/JSWindowProxy.cpp: (WebCore::JSWindowProxy::setWindow):
  • bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::initScript):
  • worklets/WorkletScriptController.cpp: (WebCore::WorkletScriptController::initScriptWithSubclass):

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

11:44 AM Changeset in webkit [247220] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

Remove unused #include "ImageBufferData.h"
https://bugs.webkit.org/show_bug.cgi?id=199574

Reviewed by Michael Catanzaro.

  • html/canvas/ImageBitmapRenderingContext.h:
11:38 AM Changeset in webkit [247219] by Chris Dumez
  • 11 edits in trunk/Source/WebCore

Fix thread safety issue in Database::scheduleTransactionCallback()
https://bugs.webkit.org/show_bug.cgi?id=199557

Reviewed by Alex Christensen.

I am working on adding threading assertions to WeakPtr and found a potentially
unsafe call to makeWeakPtr() on a Document from Database::scheduleTransactionCallback()
via Document::postTask(), on a background database thread. Document is a main thread
object and we should therefore not be interacting with it from a background thread.

For clarity, this patch also switches the webdatabase code to use Document instead
of ScriptExecution as type since it is only exposed to Window contexts, not workers.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::~Database):
(WebCore::Database::runTransaction):
(WebCore::Database::scheduleTransactionCallback):
(WebCore::Database::logErrorMessage):
(WebCore::Database::securityOrigin):
(WebCore::Database::didExceedQuota):

  • Modules/webdatabase/Database.h:

(WebCore::Database::document):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::DatabaseContext):

  • Modules/webdatabase/DatabaseContext.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::databaseContext):
(WebCore::logOpenDatabaseError):
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::tryToOpenDatabaseBackend):
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::hasOpenDatabases):
(WebCore::DatabaseManager::stopDatabases):
(WebCore::DatabaseManager::logErrorMessage):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::SQLStatement):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::SQLTransaction):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didOpenDatabase):

  • inspector/agents/InspectorDatabaseAgent.cpp:

(WebCore::InspectorDatabaseAgent::executeSQL):

11:26 AM Changeset in webkit [247218] by Chris Dumez
  • 15 edits in trunk/Source

Add threading assertion to WTF::CompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=199516

Reviewed by Alex Christensen.

Source/WebCore:

Update some MessagePort-related code to use WTF::Function instead of WTF::CompletionHandler
since the callback is always called on the main thread, even when it was created on a
worker thread. Ideally, this code would be refactored so that the callback gets called on
the worker thread directly.

  • dom/messageports/MessagePortChannel.cpp:

(WebCore::MessagePortChannel::checkRemotePortForActivity):

  • dom/messageports/MessagePortChannel.h:
  • dom/messageports/MessagePortChannelProvider.h:
  • dom/messageports/MessagePortChannelProviderImpl.cpp:

(WebCore::MessagePortChannelProviderImpl::checkRemotePortForActivity):

  • dom/messageports/MessagePortChannelProviderImpl.h:
  • dom/messageports/MessagePortChannelRegistry.cpp:

(WebCore::MessagePortChannelRegistry::checkRemotePortForActivity):

  • dom/messageports/MessagePortChannelRegistry.h:

Source/WebKit:

Update some MessagePort-related code to use WTF::Function instead of WTF::CompletionHandler
since the callback is always called on the main thread, even when it was created on a
worker thread. Ideally, this code would be refactored so that the callback gets called on
the worker thread directly.

  • UIProcess/UIMessagePortChannelProvider.cpp:

(WebKit::UIMessagePortChannelProvider::checkRemotePortForActivity):

  • UIProcess/UIMessagePortChannelProvider.h:
  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:

(WebKit::WebMessagePortChannelProvider::checkRemotePortForActivity):

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:

Source/WTF:

Add threading assertion to WTF::CompletionHandler to try and catch common cases
of unsafe usage (completion handler constructed on one thread but called on
another).

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):

11:25 AM WebKitGTK/2.24.x edited by Michael Catanzaro
(diff)
11:19 AM Changeset in webkit [247217] by Alan Coon
  • 4 edits in branches/safari-608.1.34.0-branch/Source/WebKit

Cherry-pick r247192. rdar://problem/52563665

AX: CrashTracer: com.apple.WebKit.WebContent at WebKit: WebKit::WebSpeechSynthesisClient::speak
https://bugs.webkit.org/show_bug.cgi?id=199435

Reviewed by Ryosuke Niwa.

Ensure we don't access null observers in speech callbacks.

  • WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp: (WebKit::WebSpeechSynthesisClient::voiceList): (WebKit::WebSpeechSynthesisClient::speak): (WebKit::WebSpeechSynthesisClient::pause): (WebKit::WebSpeechSynthesisClient::resume):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::speakingErrorOccurred): (WebKit::WebPage::boundaryEventOccurred): (WebKit::WebPage::voicesDidChange):

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

11:17 AM Changeset in webkit [247216] by Alan Coon
  • 7 edits in branches/safari-608.1.34.0-branch/Source

Versioning.

11:16 AM Changeset in webkit [247215] by cturner@igalia.com
  • 4 edits
    1 add in trunk

REGRESSION(r243197): [GStreamer] Web process hangs when scrolling twitter timeline which contains HLS videos
https://bugs.webkit.org/show_bug.cgi?id=197558

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Not covered, I have a test locally that would probably trigger the
deadlock if the network requests took a realistic amount of time,
but from a local webserver the window of time to hit this deadlock
is too narrow.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init): Make the websrc start asynchronously, this
allows the main thread to be free to complete resource loader
setup.
(webKitWebSrcCreate): Calling start() from the create() vfunc is a
recipe for deadlock, since BaseSrc holds the streaming lock during
seeks, and then calls create(). In these cases, we do not want to
notify async-completion, since we've already completed from the
necessarily preceeding start() vfunc, and calling it again would
require the stream-lock and deadlock us.
(webKitWebSrcStart): Refactor to use webKitWebSrcMakeRequest, but
ensuring that we do perform an async-complete notification.
(webKitWebSrcMakeRequest): What Start() used to be, but now can be
toggled when to notify of async-completion. Start() no longer
blocks, since the return value of initiating a resource loader is
of no interest to the callers.
(webKitWebSrcCloseSession): Similarly to Start(), we do not need
to wait for the completion of cancelled net requests.

Tools:

On shutdown we can easily deadlock the web process if we don't
ensure all network operations are completed before comitting state
changes. In HLS, make sure the network operations are cancelled,
and also prevent hlsdemux's retry logic from scuppering our
efforts.

  • gstreamer/jhbuild.modules: Include the patch.
  • gstreamer/patches/gst-plugins-bad-do-not-retry-downloads-during-shutdown.patch: Added.
11:14 AM Changeset in webkit [247214] by Alan Coon
  • 1 copy in branches/safari-608.1.34.0-branch

New branch.

11:14 AM Changeset in webkit [247213] by Chris Dumez
  • 5 edits in trunk

Unable to play videos on xfinity.com/stream on macOS Catalina
https://bugs.webkit.org/show_bug.cgi?id=199576
<rdar://problem/50101264>

Reviewed by Alex Christensen.

Source/WebCore:

Enable invalidate Fetch signal quirk for all sites as the blacklist is getting too large and
we are finding too much breakage too late in the release cycle.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::processInvalidSignal):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldIgnoreInvalidSignal const):

LayoutTests:

Rebaseline existing test.

  • http/wpt/fetch/request-abort-expected.txt:
11:00 AM Changeset in webkit [247212] by graouts@webkit.org
  • 6 edits
    4 adds in trunk

[Pointer Events] "touch-action: none" does not prevent double-tap-to-zoom
https://bugs.webkit.org/show_bug.cgi?id=199571
<rdar://problem/51715002>

Reviewed by Wenson Hsieh.

Source/WebKit:

We add a new WKTouchActionGestureRecognizerDelegate method to check whether a gesture recognizer may lead to
zooming the page as a result of double-tapping, which can be caused by two different gesture recognizers
managed by WKContentViewInteraction. If that delegate method returns true and we have "touch-action: none"
set for this touch, we cause those gesture recognizers to fail and prevent double-tap-to-zoom behavior.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerMayDoubleTapToZoomWebView:]):

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

(-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]):

LayoutTests:

Add two new tests that check that setting "touch-action: none" on an element does not allow double-tap-to-zoom
and that "touch-action: manipulation" allows it.

  • pointerevents/ios/touch-action-manipulation-double-tap-to-zoom-expected.txt: Added.
  • pointerevents/ios/touch-action-manipulation-double-tap-to-zoom.html: Added.
  • pointerevents/ios/touch-action-none-double-tap-to-zoom-expected.txt: Added.
  • pointerevents/ios/touch-action-none-double-tap-to-zoom.html: Added.
  • pointerevents/utils.js:

(const.ui.new.UIController.prototype.doubleTapToZoom):

10:46 AM Changeset in webkit [247211] by youenn@apple.com
  • 8 edits in trunk/Source/WebCore

MediaStreamTrackPrivate should always call readyStateChanged on the main thread
https://bugs.webkit.org/show_bug.cgi?id=199538
<rdar://problem/52709106>

Reviewed by Eric Carlson.

MediaStreamTrackPrivate is sometimes calling readyStateChanged in a
background thread inside its audioSamplesAvailable method.
Instead of doing that, we hop to the main thread to call readyStateChanged.
Once the call is made in the main thread, MediaStreamTrackPrivate will
send the audio samples to its observers.

To make mock audio source closer to real capture audio sources,
audioSamplesAvailable is called on a background thread.
RealtimeMediaSource is updated to always be destroyed in the main
run loop since it is WebKit2 only.

Covered by existing tests and making sure the mock audio source calls
the audioSamplesAvailable method on a background thread.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::videoSampleAvailable):
(WebCore::MediaStreamTrackPrivate::audioSamplesAvailable):

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::scheduleDeferredTask):
scheduleDeferredTask may be called from a background thread.
It is thus safer to ref the source instead of creating a weak pointer.

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

(WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac):
(WebCore::MockRealtimeAudioSourceMac::emitSampleBuffers):
(WebCore::MockRealtimeAudioSourceMac::reconfigure):
(WebCore::MockRealtimeAudioSourceMac::render):
(WebCore::MockRealtimeAudioSourceMac::settingsDidChange):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource):
(WebCore::MockRealtimeAudioSource::tick):

  • platform/mock/MockRealtimeAudioSource.h:
9:51 AM Changeset in webkit [247210] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] WebContent processes should not globally allow mach lookup to the AX server.
https://bugs.webkit.org/show_bug.cgi?id=199386
<rdar://problem/52487468>

Reviewed by Chris Fleizach.

Instead, a mach extension for this service should be issued to the WebContent process. This has already been implemented.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:40 AM Changeset in webkit [247209] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit

REGRESSION(r246671): [WPE][GTK] Crash in NetworkProcess since the DNS cache landed
https://bugs.webkit.org/show_bug.cgi?id=199572

Reviewed by Michael Catanzaro.

The GError coming from the wrapped resolver shouldn't be freed,
but passed onto the caller.

  • NetworkProcess/glib/WebKitCachedResolver.cpp:

(webkitCachedResolverLookupByNameAsync):
(webkitCachedResolverLookupByNameWithFlagsAsync):

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

Register a MediaStreamTrack as media producer only if it is a capture track
https://bugs.webkit.org/show_bug.cgi?id=199566

Reviewed by Eric Carlson.

MediaStreamTrack registration as a media producer is only useful for capture tracks.
Otherwise, the audio/video playing state is computed through HTMLMediaElement.
Do not register MediaStreamTrack as a media producer if it is not a capture track.

Set the muted state of the track before registering it as an audio
producer. Otherwise, it might create unnecessary small change of playing state.
Covered by existing tests.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):

  • Modules/mediastream/MediaStreamTrack.h:
4:47 AM Changeset in webkit [247207] by cturner@igalia.com
  • 3 edits in trunk/LayoutTests

[GStreamer] media/video-volume.html broken after switching from cubic to linear scaling
https://bugs.webkit.org/show_bug.cgi?id=199505

Reviewed by Xabier Rodriguez-Calvar.

PulseAudio has a conversion process from volume's in
double-precision to uint32_t volumes. Depending on the environment
can introduce rounding errors. Be more lenient in our comparison
code.

  • media/video-volume-expected.txt: Update baseline
  • media/video-volume.html: Compare volume values within a

reasonable tolerance.

4:26 AM Changeset in webkit [247206] by graouts@webkit.org
  • 3 edits in trunk/Source/WebKit

[Pointer Events] touch-action should affect the behavior of pinch-to-zoom to show tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=199560
<rdar://problem/52742265>

Reviewed by Dean Jackson.

There are other UIPinchGestureRecognizer objects that may lead to pinch-to-zoom behavior, for instance pinching
out to show open tabs in Safari on iOS. We add a new WKUIDelegatePrivate method that will allow Safari to indicate
that a UIPinchGestureRecognizer considered for prevention would lead to pinch-to-zoom behavior.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerMayPinchToZoomWebView:]):

4:22 AM Changeset in webkit [247205] by graouts@webkit.org
  • 20 edits
    1 copy in trunk

[Pointer Events] Enable only on the most recent version of the supported iOS family
https://bugs.webkit.org/show_bug.cgi?id=199562
<rdar://problem/52766511>

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:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cancelPointersForGestureRecognizer:]):
(-[WKContentView activeTouchIdentifierForGestureRecognizer:]):
(-[WKContentView touchActionActiveTouches]):

  • UIProcess/ios/WKSyntheticTapGestureRecognizer.m:

(-[WKSyntheticTapGestureRecognizer touchesEnded:withEvent:]):

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

(-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]):

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

We really don't need HAVE_UI_WEB_TOUCH_EVENTS_GESTURE_RECOGNIZER_WITH_ACTIVE_TOUCHES_BY_ID since the UIKit SPI
that was added in iOS 13 that it's checking for is really required for all parts of the implementation of Pointer
Events, including dispatch of the "pointercancel" event and support for the "touch-action" CSS property.

  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • js/dom/navigator-maxtouchpoints-expected.txt: Since ENABLE_POINTER_EVENTS is now disabled by default, navigator.maxTouchPoints

is "undefined" in thed default case.

  • platform/mac/js/dom/navigator-maxtouchpoints-expected.txt: But 0 on macOS.
3:08 AM Changeset in webkit [247204] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] The CREATE_TRACK macro is messed up
https://bugs.webkit.org/show_bug.cgi?id=199356

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Fix the
CREATE_TRACK macro for !VIDEO_TRACK builds.

1:17 AM Changeset in webkit [247203] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[GTK] ViewGestureController constructor leaves m_direction uninitialized
https://bugs.webkit.org/show_bug.cgi?id=199532

Reviewed by Carlos Garcia Campos.

This is harmless because it should never be read until after it's initialized, but still not
robust. Fix it by assuming Back as the default value until the first swipe begins.

  • UIProcess/ViewGestureController.h:
Note: See TracTimeline for information about the timeline view.