Timeline



Feb 18, 2021:

10:36 PM Changeset in webkit [273129] by Simon Fraser
  • 3 edits
    1 add in trunk

Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
https://bugs.webkit.org/show_bug.cgi?id=222136
rdar://71881767

Reviewed by Zalan Bujtas.

Source/WebCore:

On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
"conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
composited layers.

On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
webkit.org/b/222124) which has the end result of changing the composited bounds of the
"position:sticky" layer on every scroll. This results in layer contents temporarily
appearing stretched or in the wrong place (webkit.org/b/222132).

For now, do a conservative fix to avoid this problem, which is to continue to allow
"will-change: transform" to trigger compositing on macOS in conservative mode. This
actually reduces memory use on this page, because webkit.org/b/222092 was triggering
excessively large backing store.

Tested by compositing/layer-creation/compositing-policy.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):

LayoutTests:

  • platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
10:12 PM Changeset in webkit [273128] by Chris Dumez
  • 20 edits in trunk/Source

Reduce explicit usage of [objC autorelease] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=221932
<rdar://problem/74410900>

Reviewed by Darin Adler.

Follow-up to r272936 in order to address post-landing review comments.

Source/JavaScriptCore:

  • API/JSContext.mm:

(-[JSContext init]):

  • API/JSWrapperMap.mm:

(-[JSWrapperMap classInfoForClass:]):

Source/WebCore:

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _stringFromStartMarker:toEndMarker:attributed:]):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attributesForAttributedStringConversion):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController init]):

  • platform/ios/wak/WAKView.mm:

(-[WAKView dealloc]):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):

Source/WebKit:

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(+[NSAttributedString _loadFromHTMLWithOptions:contentLoader:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView findString:withConfiguration:completionHandler:]):
(-[WKWebView _frames:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):

  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession init]):

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]):

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]):

  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):

  • UIProcess/Automation/ios/WebAutomationSessionIOS.mm:

(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):

  • UIProcess/Cocoa/WKContactPicker.mm:

(-[WKContactPicker _contactsFromJSContacts:]):

9:51 PM Changeset in webkit [273127] by weinig@apple.com
  • 8 edits
    2 adds in trunk

Add experimental support for CSS Color 5 Relative Color Syntax
https://bugs.webkit.org/show_bug.cgi?id=221880

Reviewed by Darin Adler.

Source/WebCore:

Adds initial support for CSS Color 5 Relative Color Syntax - https://drafts.csswg.org/css-color-5/#relative-colors

This feature is off by default and can be enabled via the CSSRelativeColorSyntaxEnabled
experimental preference flag.

As this is the initial commit for this functionality, it is not yet complete.
This adds basic parsing and resolution for relative rgb(), hsl(), hwb(), lab()
and lch(), but does not yet implement support for calc() functions that can operate
on the channel keywords nor does it support using system keyword colors as the
origin of the relative colors.

Some additional caveats about this initial implementation that need further
clarification from the spec editors:

  1. Currently, we only allow using the channel corresponding to to the position of that channel

in the replacement syntax. This means you can't do:

rgb(from red g r b)

to permute the channels.

  1. For rgb(), which allows r, g, and b to be all numbers or all percentages,

we currently don't assume either number or percentage, and wait until some
constant value is provided to set the type. That means that:

rgb(from red r g 10)

will treat r, ang g as numbers, but:

rgb(from red r g 10%)

will treat r and g as percentages. This is not currently observable other than
that we reject something that mixes the two, such as

rgb(from red r 10 10%)

but will be fully observable once processing the channels via calc() is supported.

Test: fast/css/parsing-relative-color-syntax.html

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

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeOriginColor):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlphaOrIdent):
(WebCore::CSSPropertyParserHelpers::consumeHueOrIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrIdent):
(WebCore::CSSPropertyParserHelpers::consumePercentOrIdent):
(WebCore::CSSPropertyParserHelpers::extractChannelValue):
(WebCore::CSSPropertyParserHelpers::resolveRelativeColorChannel):
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent):
(WebCore::CSSPropertyParserHelpers::parseRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::normalizeWhitenessBlackness):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add new experimental preference for CSS Color 5 Relative Color Syntax
which is off by default.

LayoutTests:

  • fast/css/parsing-relative-color-syntax-expected.txt: Added.
  • fast/css/parsing-relative-color-syntax.html: Added.

Add basic parsing and computed style computation tests for relative color syntax.

9:44 PM Changeset in webkit [273126] by Peng Liu
  • 4 edits in trunk/Source/WebKit

[ MacOS Wk2 Debug ] http/tests/misc/copy-resolves-urls.html is a flakey crash in RemoteMediaPlayerProxy
https://bugs.webkit.org/show_bug.cgi?id=222080

Reviewed by Eric Carlson.

No new tests, this will fix some crashing macOS tests.

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::RemoteMediaResource):
(WebKit::RemoteMediaResource::~RemoteMediaResource):

  • GPUProcess/media/RemoteMediaResource.h:
  • GPUProcess/media/RemoteMediaResourceManager.h:
8:39 PM Changeset in webkit [273125] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable private methods
https://bugs.webkit.org/show_bug.cgi?id=222137

Reviewed by Tadeu Zagallo.

  • runtime/OptionsList.h:
8:25 PM Changeset in webkit [273124] by Lauro Moura
  • 4 edits in trunk

[GLIB] Gardening debug OffscreenCanvas crashes

Unreviewed test gardening.

Tools:

  • TestWebKitAPI/glib/TestExpectations.json: Update bug number after

last gardening.

LayoutTests:

  • platform/glib/TestExpectations:
7:35 PM Changeset in webkit [273123] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Unreviewed.

Upgrade motionmark1.1.plan to r273122.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
7:29 PM Changeset in webkit [273122] by mmaxfield@apple.com
  • 2 edits in trunk/PerformanceTests

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Reviewed by Maciej Stachowiak and Jon Lee.

Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.

  • MotionMark/tests/resources/main.js:

(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(start):
(didFinishInterval):

7:25 PM Changeset in webkit [273121] by mmaxfield@apple.com
  • 9 edits
    7 adds in trunk

[GPU Process] Temporarily disable drawing OT-SVG glyphs in the GPU process until it can be implemented properly
https://bugs.webkit.org/show_bug.cgi?id=221744
Source/WebCore:

<rdar://problem/74222334>

Reviewed by Simon Fraser.

Link with the system OTSVG framework to determine if glyphs will be rendered using that infrastructure.
Filter out glyphs which would be rendered using that infrastructure in the web process, and RELEASE_ASSERT()
in the GPU process that it won't be using that infrastructure.

This is just a temporary plug of a security hole, until we can properly transcode OT-SVG glyphs into WebKit's
display list infrastructure. This patch explicitly breaks drawing OT-SVG glyphs using the GPU process (which,
right now, only means it will be broken in canvas drawing, since regular DOM drawing doesn't use the GPU
process yet.)

Test: fast/text/otsvg-spacing.html

  • platform/graphics/Font.h:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::findOTSVGGlyphs const):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::filterOutOTSVGGlyphs):
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

Source/WebCore/PAL:

Reviewed by Simon Fraser.

This patch soft-links the OTSVG framework because it's a private framework that doesn't exist on watchOS.

  • PAL.xcodeproj/project.pbxproj:
  • pal/cf/CoreTextSoftLink.cpp: Added.
  • pal/cf/CoreTextSoftLink.h: Added.
  • pal/cf/OTSVGTable.cpp: Added.

(PAL::OTSVGTable::OTSVGTable):
(PAL::OTSVGTable::~OTSVGTable):
(PAL::OTSVGTable::operator=):

  • pal/cf/OTSVGTable.h: Added.
  • pal/spi/cf/CoreTextSPI.h:

LayoutTests:

<rdar://problem/74222334>

Reviewed by Simon Fraser.

Create an OTSVG font for testing.
The A glyph is a green rectangle.
The B glyph is an image.
The C glyph is another image, with a different EXIF orientation than the B glyph.

This test makes sure that two glyphs with an OTSVG glyph between them don't get smooshed together in canvas.

I'm explicitly not testing the behavior of OTSVG itself in canvas, because this test explicitly disables
that behavior. I think it's wrong to create tests that make sure some functionality is broken, because the
functionality, philosophically, shouldn't be broken.

  • fast/text/otsvg-spacing-expected.html: Added.
  • fast/text/otsvg-spacing.html: Added.
  • fast/text/resources/Ahem-SVG.ttf: Added.
6:53 PM Changeset in webkit [273120] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

[iOS] Remove access to AppleJPEGDriverUserClient
https://bugs.webkit.org/show_bug.cgi?id=221458
<rdar://problem/73518481>

Reviewed by Brent Fulgham.

Remove access to AppleJPEGDriverUserClient in the WebContent process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):

6:16 PM Changeset in webkit [273119] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Correctly retain properties in _WKAppHighlight
https://bugs.webkit.org/show_bug.cgi?id=222151

Reviewed by Wenson Hsieh.

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

(-[_WKAppHighlight initWithHighlight:text:image:]):
(-[_WKAppHighlight highlight]):
(-[_WKAppHighlight text]):
(-[_WKAppHighlight image]):

6:10 PM Changeset in webkit [273118] by Dewei Zhu
  • 6 edits in trunk/Websites/perf.webkit.org

Fix a bug that a syncing script may try to reuse a delete root.
https://bugs.webkit.org/show_bug.cgi?id=222144

Reviewed by Ryosuke Niwa.

UploadedFile.deletedAt is not returned by API which makes UploadedFile instance always claims
the file it not deleted.
Fix a logical bug in CommitSet.areAllRootsAvailable.

  • public/include/uploaded-file-helpers.php: Include 'deletedAt' filed in the API response.
  • public/v3/models/commit-set.js:

(CommitSet.prototype.areAllRootsAvailable): Fixed an syntax error and a logical bug.

  • server-tests/api-build-requests-tests.js: Added check on 'deletedAt' to be set on deleted files.
  • unit-tests/commit-set-tests.js: Added unit tests for CommitSet.areAllRootsAvailable.
  • unit-tests/resources/mock-v3-models.js: Cleared static map for UploadedFile.
5:57 PM Changeset in webkit [273117] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not create the line with negative width when negative letter spacing is present
https://bugs.webkit.org/show_bug.cgi?id=222119

Reviewed by Antti Koivisto.

We already handle the case of individual runs. This patch fixes the case when we merge runs together.
see fast/text/text-letter-spacing.html.

  • layout/inlineformatting/InlineLine.cpp:

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

5:16 PM Changeset in webkit [273116] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in IPC::decode(Decoder& decoder, RetainPtr<SecKeychainItemRef>& result)
https://bugs.webkit.org/show_bug.cgi?id=222084

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-18
Reviewed by Ryosuke Niwa.

Source/WebKit:

Add a check for a CFDataRef of 0 length so that we do not pass those
to SecKeychainItemCopyFromPersistentReference(), which crashes with them.

Test: ipc/argument-coders-crash.html

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

LayoutTests:

Add the test provided by Nils Sommer that catches this crash.

  • ipc/argument-coders-crash-expected.txt: Added.
  • ipc/argument-coders-crash.html: Added.
4:58 PM Changeset in webkit [273115] by commit-queue@webkit.org
  • 5 edits in trunk

Unconditionally return information in _autofillContext SPI when a field is focused
https://bugs.webkit.org/show_bug.cgi?id=221828
rdar://74211237

Patch by Ricky Mondello <Ricky Mondello> on 2021-02-18
Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _autofillContext]): Change the contract of _autofillContext to return information for any focused

text field. Add a "version" key. Explicitly indicate whether we're in a login context. This SPI remains stringly
typed for flexibility.

Tools:

Tests updated by Wenson Hsieh.

Rebaseline tests.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(-[AutoFillTestView acceptsAutoFillLoginCredentials]): Renamed in line with the Password AutoFill-related

contract these tests are about.

4:47 PM Changeset in webkit [273114] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Re-add fsctl support for marking files as potentially 'hot'
https://bugs.webkit.org/show_bug.cgi?id=222120
<rdar://problem/74387453>

Reviewed by Per Arne Vollan.

Rolled out r271959.

  • WebProcess/com.apple.WebProcess.sb.in:
4:37 PM Changeset in webkit [273113] by Devin Rousso
  • 35 edits
    2 copies
    6 adds in trunk

[Payment Request] add an object data to PaymentItem so that data specific to Apple Pay can be provided
https://bugs.webkit.org/show_bug.cgi?id=221970
<rdar://problem/69806999>

Reviewed by Alex Christensen.

Source/WebCore:

  • Modules/paymentrequest/PaymentItem.idl:
  • Modules/paymentrequest/PaymentItem.h:
  • Modules/applepay/ApplePayLineItem.idl:
  • Modules/applepay/ApplePayLineItem.h:

(WebCore::ApplePayLineItem::encode const): Added.
(WebCore::ApplePayLineItem::decode): Added.

  • Modules/applepay/ApplePayLineItemData.idl: Added.
  • Modules/applepay/ApplePayLineItemData.h: Added.

(WebCore::ApplePayLineItemData::encode const):
(WebCore::ApplePayLineItemData::decode):
(WebCore::ApplePayLineItemData::decodeData):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::checkAndCanonicalizeData): Added.
(WebCore::checkAndCanonicalizePaymentItem): Added.
(WebCore::checkAndCanonicalizeTotal):
(WebCore::checkAndCanonicalizeDetails):
(WebCore::PaymentRequest::create):
(WebCore::PaymentRequest::settleDetailsPromise):
Add IPC support and extend from ApplePayLineItemData which is used to pull values out of
the object data from PaymentItem. This way, both Apple Pay JS and PaymentRequest can be
given the same data (albeit in slightly different places) and have the same capabilities.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidateTotal):
(WebCore::convertAndValidate):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:

(WebCore::ApplePaySessionPaymentRequest::lineItems const):
(WebCore::ApplePaySessionPaymentRequest::setLineItems):
(WebCore::ApplePaySessionPaymentRequest::total const):
(WebCore::ApplePaySessionPaymentRequest::setTotal):

  • Modules/applepay/PaymentMethodUpdate.h:
  • Modules/applepay/PaymentRequestValidator.h:
  • Modules/applepay/PaymentRequestValidator.mm:

(WebCore::PaymentRequestValidator::validateTotal):

  • Modules/applepay/PaymentSummaryItems.h:
  • Modules/applepay/cocoa/PaymentMethodUpdateCocoa.mm:

(WebCore::PaymentMethodUpdate::PaymentMethodUpdate):

  • Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:

(WebCore::toPKPaymentSummaryItemType):
(WebCore::toPKPaymentSummaryItem):
(WebCore::platformSummaryItems):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::merge): Added.
(WebCore::convertAndValidate):
(WebCore::ApplePayPaymentHandler::show):
(WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):

  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::updateTotalAndLineItems):
Just use ApplePayLineItem instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::LineItem).

  • inspector/WebInjectedScriptHost.cpp:

(WebCore::objectForPaymentDetailsModifier):
Drive-by: Don't always set modifier.total or modifier.additionalDisplayItems since they
might not have been provided.
Drive-by: Don't bother setting modifier.data since it's cleared during validation.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):

  • bindings/scripts/test/SupplementalDependencies.dep:
  • bindings/scripts/test/TestDictionaryWithOnlyConditionalMembers.idl: Added.
  • bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.h: Added.
  • bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.cpp: Added.

(WebCore::convertDictionary<TestDictionaryWithOnlyConditionalMembers>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/TestEmptyDictionary.idl: Added.
  • bindings/scripts/test/JS/JSTestEmptyDictionary.h: Added.
  • bindings/scripts/test/JS/JSTestEmptyDictionary.cpp: Added.

(WebCore::convertDictionary<TestEmptyDictionary>):
(WebCore::convertDictionaryToJS):
Modify the IDL code generator to be able to handle empty IDL dictionaries.

  • platform/cocoa/WebCoreAdditions.mm:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.h:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::TotalAndLineItems>::decode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::LineItem>::encode): Deleted.
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::LineItem>::decode): Deleted.
Just use ApplePayLineItem instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::LineItem).

LayoutTests:

  • http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt:
4:19 PM Changeset in webkit [273112] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ]inspector/indexeddb/clearObjectStore.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222140

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-18

  • platform/mac-wk2/TestExpectations:
4:15 PM Changeset in webkit [273111] by achristensen@apple.com
  • 4 edits in trunk

Add null check in _getMainResourceDataWithCompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=222139
<rdar://problem/74449438>

Reviewed by Tim Horton.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getMainResourceDataWithCompletionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GetResourceData.mm:

(TEST):

4:15 PM Changeset in webkit [273110] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: m_state == State::Committed in WebKit::FrameLoadState::didFailLoad()
https://bugs.webkit.org/show_bug.cgi?id=221783
<rdar://problem/74257153>

Skip the test temporarily on debug bots while we figure out how to fix it.

  • platform/wk2/TestExpectations:
4:07 PM Changeset in webkit [273109] by BJ Burg
  • 12 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: add support for using custom process pool and page group identifier
https://bugs.webkit.org/show_bug.cgi?id=222046
<rdar://74180162>

Reviewed by Timothy Hatcher.

These additions are necessary for clients to inject Web Extensions API into the tabs created
using _WKInspectorExtension.

Currently, Web Inspector pages use a private process pool that is separate from page content.
Since there is no way to set the pool's injected bundle path prior to opening Web Inspector,
we need to allow clients to explicitly configure and set a process pool to be used for
WebInspectorUI and any iframe tabs created using _WKInspectorExtension.

  • UIProcess/API/APIInspectorConfiguration.cpp:

(API::InspectorConfiguration::processPool):
(API::InspectorConfiguration::setProcessPool):

  • UIProcess/API/APIInspectorConfiguration.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.mm:

(-[_WKInspectorConfiguration setProcessPool:]):
(-[_WKInspectorConfiguration processPool]):
(-[_WKInspectorConfiguration applyToWebViewConfiguration:]):
(-[_WKInspectorConfiguration copyWithZone:]):
Add some plumbing for the new properties.

  • UIProcess/Inspector/WebInspectorUtilities.h:
  • UIProcess/Inspector/WebInspectorUtilities.cpp:

(WebKit::defaultInspectorPageGroupIdentifierForPage): Renamed.
(WebKit::defaultInspectorProcessPool): Renamed.
(WebKit::allInspectorProcessPools): Move to using a WeakHashSet since there could
be a number of pools specified by the client for different inspector instances.
(WebKit::prepareProcessPoolForInspector): Added.
(WebKit::isInspectorProcessPool): Turn this into a set lookup.

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webViewConfiguration]):
Add logic to use a custom process pool or a default process pool (existing behavior).
Add logic to use a custom page group identifier or a default value (existing behavior).

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):

  • UIProcess/Inspector/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
Adapt to renames.

4:01 PM Changeset in webkit [273108] by wenson_hsieh@apple.com
  • 24 edits in trunk/Source

Plumb an Optional<PageIdentifier> through WebPasteboardProxy
https://bugs.webkit.org/show_bug.cgi?id=222071

Reviewed by Tim Horton.

Source/WebCore:

Update various PasteboardStrategy methods to additionally take a const PasteboardContext*; additionally
update call sites of PasteboardStrategy methods to pass in a context (e.g. Pasteboard::context(), in the
vast majority of cases below).

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::takeFindStringFromSelection):

  • page/mac/DragControllerMac.mm:

(WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod const):

  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::allPasteboardItemInfo const):
(WebCore::Pasteboard::pasteboardItemInfo const):
(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::readBuffer):
(WebCore::Pasteboard::readURL):

  • platform/PasteboardStrategy.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::containsURLTypeIdentifier const):
(WebCore::DragData::containsColor const):
(WebCore::DragData::numberOfFiles const):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::asColor const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::containsURL const):
(WebCore::DragData::asURL const):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):
(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::writeCustomData):
(WebCore::Pasteboard::changeCount const):
(WebCore::Pasteboard::readTypesWithSecurityCheck):
(WebCore::Pasteboard::readBufferForTypeWithSecurityCheck):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::writeCustomData):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::changeCountForPasteboard):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::readPasteboardWebContentDataForType):
(WebCore::readURLAlongsideAttachmentIfNecessary):
(WebCore::Pasteboard::readRespectingUTIFidelities):
(WebCore::Pasteboard::hasData):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::readPlatformValuesAsStrings):
(WebCore::Pasteboard::writeString):
(WebCore::Pasteboard::readFilePaths):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::read):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):
(WebCore::writeURLForTypes):
(WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
(WebCore::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::canSmartReplace):
(WebCore::readStringAtPreferredItemIndex):
(WebCore::readBufferAtPreferredItemIndex):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::hasData):
(WebCore::Pasteboard::readPlatformValuesAsStrings):
(WebCore::Pasteboard::writeString):
(WebCore::Pasteboard::readFilePaths):
(WebCore::Pasteboard::setDragImage):

Source/WebKit:

Add const PasteboardContext* arguments to the PasteboardStrategy methods on WebPlatformStrategies, convert
them to PageIdentifiers, and send them over to the UI process via WebPasteboardProxy methods.

While currently unused inside WebPasteboardProxy, the next patch will attempt to use these page identifiers to
retrieve a data owner type from the corresponding WebPageProxy, and then forward this data owner type to the
PlatformPasteboard.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getPasteboardChangeCount):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):
(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getNumberOfFiles):
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):
(WebKit::WebPasteboardProxy::updateSupportedTypeIdentifiers):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):

  • UIProcess/libwpe/WebPasteboardProxyLibWPE.cpp:

(WebKit::WebPasteboardProxy::readStringFromPasteboard):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::pageIdentifier):
(WebKit::WebPlatformStrategies::getTypes):
(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::getPathnamesForType):
(WebKit::WebPlatformStrategies::stringForType):
(WebKit::WebPlatformStrategies::allStringsForType):
(WebKit::WebPlatformStrategies::changeCount):
(WebKit::WebPlatformStrategies::color):
(WebKit::WebPlatformStrategies::url):
(WebKit::WebPlatformStrategies::addTypes):
(WebKit::WebPlatformStrategies::setTypes):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::setURL):
(WebKit::WebPlatformStrategies::setColor):
(WebKit::WebPlatformStrategies::setStringForType):
(WebKit::WebPlatformStrategies::getNumberOfFiles):
(WebKit::WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebKit::WebPlatformStrategies::urlStringSuitableForLoading):
(WebKit::WebPlatformStrategies::writeToPasteboard):
(WebKit::WebPlatformStrategies::updateSupportedTypeIdentifiers):
(WebKit::WebPlatformStrategies::typesSafeForDOMToReadAndWrite):
(WebKit::WebPlatformStrategies::writeCustomData):
(WebKit::WebPlatformStrategies::containsStringSafeForDOMToReadForType):
(WebKit::WebPlatformStrategies::getPasteboardItemsCount):
(WebKit::WebPlatformStrategies::allPasteboardItemInfo):
(WebKit::WebPlatformStrategies::informationForItemAtIndex):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):
(WebKit::WebPlatformStrategies::readURLFromPasteboard):
(WebKit::WebPlatformStrategies::readStringFromPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Add const PasteboardContext* arguments to the PasteboardStrategy methods on WebPlatformStrategies.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::getTypes):
(WebPlatformStrategies::bufferForType):
(WebPlatformStrategies::getPathnamesForType):
(WebPlatformStrategies::allStringsForType):
(WebPlatformStrategies::stringForType):
(WebPlatformStrategies::changeCount):
(WebPlatformStrategies::color):
(WebPlatformStrategies::url):
(WebPlatformStrategies::addTypes):
(WebPlatformStrategies::setTypes):
(WebPlatformStrategies::setBufferForType):
(WebPlatformStrategies::setURL):
(WebPlatformStrategies::setColor):
(WebPlatformStrategies::setStringForType):
(WebPlatformStrategies::getNumberOfFiles):
(WebPlatformStrategies::typesSafeForDOMToReadAndWrite):
(WebPlatformStrategies::writeCustomData):
(WebPlatformStrategies::containsStringSafeForDOMToReadForType):
(WebPlatformStrategies::informationForItemAtIndex):
(WebPlatformStrategies::allPasteboardItemInfo):
(WebPlatformStrategies::getPasteboardItemsCount):
(WebPlatformStrategies::readBufferFromPasteboard):
(WebPlatformStrategies::readURLFromPasteboard):
(WebPlatformStrategies::readStringFromPasteboard):
(WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebPlatformStrategies::urlStringSuitableForLoading):
(WebPlatformStrategies::writeToPasteboard):
(WebPlatformStrategies::updateSupportedTypeIdentifiers):

3:48 PM Changeset in webkit [273107] by Caio Lima
  • 12 edits
    6 adds in trunk

[JSC] Implement private static method
https://bugs.webkit.org/show_bug.cgi?id=219181

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/class-private-method-access.js: Added.
  • stress/private-accessor-static-non-static.js: Added.
  • stress/private-getter-inner-class.js:
  • stress/static-private-methods-and-accessor-inner-class.js: Added.
  • stress/static-private-methods-and-accessor-multiple-evaluation.js: Added.
  • stress/static-private-methods-and-accessors-postfix-node.js: Added.
  • stress/static-private-methods-and-accessors-prefix-node.js: Added.
  • test262/config.yaml:

Source/JavaScriptCore:

This patch is implementing static private methods and accessors
proposal based on https://github.com/tc39/proposal-static-class-features.
This implementation diverge a bit from private methods&accessors on the
brand check, because we are using a simpler way to perform static
brand checks. Since only the class constructor is allowed to access
its private methods and accessors, we save it on @privateClassBrand
on class lexical scope and compare it with the receiver of the static
private method (and accessors) using === operation.
While this genenrates more bytecodes than check_private_brand, we
don't need to perform a Structure transition to install a brand,
and avoid allocation of a private symbol. Since each evaluation of a
class generates a different constructor object, we preserve the semantics
that private methods are lexically scoped.

  • builtins/BuiltinNames.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCreatePrivateBrand):
(JSC::BytecodeGenerator::emitInstallPrivateBrand):
(JSC::BytecodeGenerator::emitInstallPrivateClassBrand):
(JSC::BytecodeGenerator::emitGetPrivateBrand):
(JSC::BytecodeGenerator::emitCheckPrivateBrand):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::BaseDotNode::emitGetPropertyValue):
(JSC::BaseDotNode::emitPutProperty):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitDot):
(JSC::ClassExprNode::emitBytecode):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseGetterSetter):

  • parser/Parser.h:

(JSC::Scope::declarePrivateMethod):
(JSC::Scope::declarePrivateAccessor):
(JSC::Scope::declarePrivateSetter):
(JSC::Scope::declarePrivateGetter):

  • parser/VariableEnvironment.cpp:

(JSC::VariableEnvironment::declarePrivateAccessor):
(JSC::VariableEnvironment::declarePrivateSetter):
(JSC::VariableEnvironment::declarePrivateGetter):
(JSC::VariableEnvironment::declarePrivateMethod):

  • parser/VariableEnvironment.h:

(JSC::PrivateNameEntry::isStatic const):
(JSC::VariableEnvironment::isEmpty const):
(JSC::VariableEnvironment::declareStaticPrivateMethod):
(JSC::VariableEnvironment::declarePrivateSetter):
(JSC::VariableEnvironment::declareStaticPrivateSetter):
(JSC::VariableEnvironment::declarePrivateGetter):
(JSC::VariableEnvironment::declareStaticPrivateGetter):
(JSC::VariableEnvironment::hasStaticPrivateMethodOrAccessor const):
(JSC::VariableEnvironment::hasInstancePrivateMethodOrAccessor const):
(JSC::VariableEnvironment::hasPrivateMethodOrAccessor const): Deleted.

3:37 PM Changeset in webkit [273106] by Russell Epstein
  • 1 copy in tags/Safari-612.1.4

Tag Safari-612.1.4.

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

REGRESSION (r273004): [ macOS ] media/modern-media-controls/volume-support/volume-support-drag.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222117

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-18

  • platform/mac/TestExpectations:
3:20 PM Changeset in webkit [273104] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix segfaults on 32-bit big endian systems
https://bugs.webkit.org/show_bug.cgi?id=221710

Patch by Daniel Kolesa <dkolesa@igalia.com> on 2021-02-18
Reviewed by Yusuke Suzuki.

In these cases, we are loading values from memory into registers.
Seemingly, these values are present at an offset on 32-bit big
endian targets; therefore, add PayloadOffset, which is 4 on BE
and 0 on LE (same behavior as right now) and is already present
in other similar accesses in the file.

  • llint/LowLevelInterpreter32_64.asm:
3:14 PM Changeset in webkit [273103] by achristensen@apple.com
  • 4 edits in trunk

Fix null dereferencing in RangeResponseGenerator::giveResponseToTasksWithFinishedRanges
https://bugs.webkit.org/show_bug.cgi?id=222126

Reviewed by Darin Adler.

Source/WebCore:

Setting the resource to nullptr can delete the resource, which deletes the client, which is this.
When we go to read m_generator from this, we get a nullptr crash. Let's not crash.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

1:22 PM Changeset in webkit [273102] by Kate Cheney
  • 29 edits in trunk

Add support for non app-bound requests
https://bugs.webkit.org/show_bug.cgi?id=221909
<rdar://problem/73512988>

Source/WebCore:

Reviewed by Brent Fulgham.

Store whether the last navigation was app-bound in the DocumentLoader
so we can pass it to all sub resource loads. See WebKit changelog for more details.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::lastNavigationWasAppBound const):
(WebCore::DocumentLoader::setlastNavigationWasAppBound):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::isAppBound const):
(WebCore::ResourceRequestBase::setIsAppBound):
(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::ResourceRequestBase::encodeBase const):
(WebCore::ResourceRequestBase::decodeBase):

Source/WebKit:

Reviewed by Brent Fulgham.

Add a new parameter to the ResourceRequest class specifying app
bound requests and populate subresource loads, redirects, and
preconnect tasks with this value.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

  • Scripts/webkit/messages.py:
  • Shared/NavigatingToAppBoundDomain.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _lastNavigationWasAppBound:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setLastNavigationWasAppBound):
(WebKit::WebPageProxy::lastNavigationWasAppBound):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::preconnectTo):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
For the case of a main resource load without a navigation, like from about:blank,
the main resource load uses the original document loader which was created before
WebPage::loadRequest sets the value of m_lastNavigationWasAppBound. For this reason,
we should not check the document loader value for the main resource and
know that the resource request has the correct value.

(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::createDocumentLoader):
We should store lastNavigationWasAppBound in the document loader
instead of the page so we don't affect previous loads while initiating
the navigation to the next site.

(WebKit::WebPage::lastNavigationWasAppBound):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setLastNavigationWasAppBound):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

API test coverage.

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView lastNavigationWasAppBound:]):

1:17 PM Changeset in webkit [273101] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Undeprecate some webkit-patch commands
https://bugs.webkit.org/show_bug.cgi?id=222106

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-18
Reviewed by Jonathan Bedard.

This removes the deprecated decorator from the webkit-patch commands we quickly heard are
actually used: apply-watchlist-local, check-style, clean, create-revert, prepare-revert,
and validate-changelog.

  • Scripts/webkitpy/tool/commands/applywatchlistlocal.py:
  • Scripts/webkitpy/tool/commands/download.py:
1:04 PM Changeset in webkit [273100] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[iOS][FCR] Adjust button colors and fonts to match new specification
https://bugs.webkit.org/show_bug.cgi?id=222123
<rdar://problem/74485781>

Reviewed by Wenson Hsieh.

  • css/formControlsIOS.css:

(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::file-selector-button, button):
(input:matches([type="button"], [type="reset"]), input[type="file"]::file-selector-button, button):

Use a blue on gray color scheme, rather than dark blue on light blue.

(input[type="submit"]):

Submit buttons have a bold font by default.

1:02 PM Changeset in webkit [273099] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Remove unused IPC shared memory reads in WebContent process
https://bugs.webkit.org/show_bug.cgi?id=222083
<rdar://problem/73509623>

Reviewed by Per Arne Vollan.

  • WebProcess/com.apple.WebProcess.sb.in:
12:58 PM Changeset in webkit [273098] by Patrick Angle
  • 2 edits in trunk/Source/WebCore

Web Inspector: Implement Grid Overlay "Show track sizes" drawing
https://bugs.webkit.org/show_bug.cgi?id=222007

Reviewed by BJ Burg.

Show computed and authored track sizes in the grid overlay. Authored sizes are determined from the original
CSSValue, not from the GridTrackSize as the later loses the exact authored syntax (e.g. 14vw is already
resolved to an absolute pixel value).

When the authored size is in px and is identical to the computed size, the value is only shown once for the
track.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawLayoutLabel):

  • Use the system-ui font for layout labels and reduce the font size to improve information density.
  • Drive-by further adjustment to label text positioning to be more accurate.

(WebCore::authoredGridTrackSizes):

  • Get the authored sizes for each track in a sizing direction (row-wise or column-wise).

(WebCore::InspectorOverlay::drawGridOverlay):

  • Draw labels for track sizes with their computed and, if different from the computed, authored values.
  • Drive-by to have area name label backgrounds share a common constant color with track size label backgrounds.
12:51 PM Changeset in webkit [273097] by Nikita Vasilyev
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Elements: show badges for CSS Grid container elements
https://bugs.webkit.org/show_bug.cgi?id=221370

Reviewed by BJ Burg.

Clicking "grid" CSS badge shows/hides the grid overlay for the corresponding element.

  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager.prototype.isGridOverlayVisible):
(WI.OverlayManager.prototype.toggleGridOverlay):

  • UserInterface/Main.html:
  • UserInterface/Views/DOMTreeElement.css: Added.

(.tree-outline.dom .badge-css-grid):
(.tree-outline.dom .badge-css-grid.activated):
(.tree-outline.dom li.selected .badge-css-grid):
(.tree-outline.dom li.selected .badge-css-grid.activated):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .badge-css-grid):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .badge-css-grid.activated):
(@media (prefers-color-scheme: dark) .tree-outline.dom .badge-css-grid):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement):
(WI.DOMTreeElement.prototype.onattach):
(WI.DOMTreeElement.prototype.ondetach):
(WI.DOMTreeElement.prototype.updateTitle):
(WI.DOMTreeElement.prototype._updateGridBadge):
(WI.DOMTreeElement.prototype._gridBadgeClicked):
(WI.DOMTreeElement.prototype._gridBadgeDoubleClicked):
(WI.DOMTreeElement.prototype._updateGridBadgeStatus):
(WI.DOMTreeElement.prototype._handleLayoutContextTypeChanged):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

12:46 PM Changeset in webkit [273096] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Update .eslintrc to account for ECMAScript 2021
https://bugs.webkit.org/show_bug.cgi?id=222107

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-18
Reviewed by BJ Burg.

Add ES2021 parser option so ESLint-based linters don't throw errors

for newer JavaScript features, like logical assignment operators (??=, &&=,
)

Note: The linter in an editor must support ESLint v7.8.0 or newer to understand ES2021.

  • .eslintrc:
12:46 PM Changeset in webkit [273095] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r273063.

GTK port layout tests are timint out.

Reverted changeset:

"[CoordinatedGraphics] The whole content is unnecessarily
repainted by animations in non-AC mode pages"
https://bugs.webkit.org/show_bug.cgi?id=221391
https://commits.webkit.org/r273063

12:38 PM Changeset in webkit [273094] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

Unreviewed, reverting r272849.
https://bugs.webkit.org/show_bug.cgi?id=222121

Increased page load time

Reverted changeset:

"CSSFontFace should not need its m_fontSelector data member"
https://bugs.webkit.org/show_bug.cgi?id=208351
https://trac.webkit.org/changeset/272849

12:36 PM Changeset in webkit [273093] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove access to audio IOKit
https://bugs.webkit.org/show_bug.cgi?id=222062
<rdar://problem/70496648>

Reviewed by Brent Fulgham.

Remove access to audio IOKit in the WebContent process on macOS when GPUP is enabled.

  • WebProcess/com.apple.WebProcess.sb.in:
12:15 PM Changeset in webkit [273092] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

Skip platform specific Python tests
https://bugs.webkit.org/show_bug.cgi?id=222066

Reviewed by Jonathan Bedard.

Catalog platform specific tests based on operating system. Skip those tests that don't
apply to the platform. Mac should continue to run all tests since it runs the webkitpy
tests in EWS.

  • Scripts/webkitpy/test/main.py:
12:14 PM Changeset in webkit [273091] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur] imported/w3c/web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222118

Unreviewed test gardening.

Patch by Amir Mark Jr <amir_mark@apple.com> on 2021-02-18

  • platform/mac/TestExpectations:
12:08 PM Changeset in webkit [273090] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Ensure that uat instance doesn't comment on bugs
https://bugs.webkit.org/show_bug.cgi?id=222035

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(SetCommitQueueMinusFlagOnPatch.getResultSummary):
(SetCommitQueueMinusFlagOnPatch.doStepIf):
(CommentOnBug.getResultSummary):
(CommentOnBug.doStepIf):
(PushCommitToWebKitRepo.doStepIf):

  • CISupport/ews-build/steps_unittest.py: Updated unit-test accordingly.
12:04 PM Changeset in webkit [273089] by youenn@apple.com
  • 5 edits in trunk/Source

libwebrtc installs some files into incorrect locations in /usr/local/include
https://bugs.webkit.org/show_bug.cgi?id=221534
<rdar://problem/74333613>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj:

Mark optional.h as project instead of private.
Move vp9 header copying from common to webm.

Source/WebCore:

No change of behavior.

  • platform/graphics/cocoa/SourceBufferParserWebM.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

Update according new vp9 header code path.

11:44 AM Changeset in webkit [273088] by wilander@apple.com
  • 35 edits
    2 copies
    3 adds in trunk

PCM: Request signature for unlinkable token using attributionSourceNonce
https://bugs.webkit.org/show_bug.cgi?id=222076
<rdar://73581651>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

Adoption of renamed function PrivateClickMeasurement::attributionReportURL().

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::tokenSignatureURL const):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):

New functions to facilitate the request for a token signature.

(WebCore::PrivateClickMeasurement::attributionReportURL const):
(WebCore::PrivateClickMeasurement::attributionReportJSON const):

Renamed functions to make them distinct from their token signing peers.

(WebCore::PrivateClickMeasurement::reportURL const): Deleted.
(WebCore::PrivateClickMeasurement::json const): Deleted.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::encode const):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::decode):

Encode and decode to facilitate transfer over IPC.

Source/WebKit:

This patch makes PrivateClickMeasurementManager::storeUnattributed() look
for incoming source nonces and if found, call the new function
PrivateClickMeasurementManager::getSignedUnlinkableToken().

A new static function generateNetworkResourceLoadParameters() was added
to reuse code between PrivateClickMeasurementManager::getSignedUnlinkableToken()
and the existing PrivateClickMeasurementManager::fireConversionRequest().

To enable testing, there is a new function called
NetworkSession::setPrivateClickMeasurementTokenSignatureURLForTesting() and
function setPrivateClickMeasurementConversionURLForTesting() was renamed
setPrivateClickMeasurementAttributionReportURLForTesting() in NetworkProcess,
NetworkSession, WKPagePrivate, WKWebViewPrivateForTesting, and
PrivateClickMeasurementManager to align with the naming used in other places.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementAttributionReportURLForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementAttributionReportURLForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::generateNetworkResourceLoadParameters):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::setTokenSignatureURLForTesting):
(WebKit::PrivateClickMeasurementManager::setAttributionReportURLForTesting):
(WebKit::PrivateClickMeasurementManager::setConversionURLForTesting): Deleted.

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementTokenSignatureURLForTesting):
(WKPageSetPrivateClickMeasurementAttributionReportURLForTesting):
(WKPageSetPrivateClickMeasurementConversionURLForTesting): Deleted.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setPrivateClickMeasurementAttributionReportURLForTesting:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementConversionURLForTesting:completionHandler:]): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementAttributionReportURLForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • UIProcess/WebPageProxy.h:

Tools:

The changes to the TestRunner are:

  • Rename setPrivateClickMeasurementConversionURLForTesting() to

setPrivateClickMeasurementAttributionReportURLForTesting() to align with other
naming and make it clear that it does.

  • Add the new setPrivateClickMeasurementTokenSignatureURLForTesting() used for

testing the token signing request.

The changes to API tests are to adopt renamed functions in
WebCore::PrivateClickMeasurement:

  • reportURL() renamed attributionReportURL().
  • json() renamed attributionReportJSON().
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

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

(WTR::TestRunner::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WTR::TestRunner::setPrivateClickMeasurementAttributionReportURLForTesting):
(WTR::TestRunner::setPrivateClickMeasurementConversionURLForTesting): Deleted.

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

(WTR::TestController::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WTR::TestController::setPrivateClickMeasurementAttributionReportURLForTesting):
(WTR::TestController::setPrivateClickMeasurementConversionURLForTesting): Deleted.

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/contentextensions/block-private-click-measurement.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/resources/getConversionData.php:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/resources/getTokenSigningData.php: Added.
  • http/tests/privateClickMeasurement/resources/signToken.php: Added.
  • http/tests/privateClickMeasurement/resources/tokenSigningFilePath.php: Added.
  • http/tests/privateClickMeasurement/resources/util.js:

(tearDownAndFinish):

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
Now also calls setPrivateClickMeasurementTokenSignatureURLForTesting().

  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html: Added.
11:40 AM Changeset in webkit [273087] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Avoid another child setup function in process launcher code
https://bugs.webkit.org/show_bug.cgi?id=222049

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-18
Reviewed by Carlos Garcia Campos.

Avoiding child setup functions is desirable because it could allow GSubprocess to use
posix_spawn() instead of fork() in the future. That's not possible to do if we have code
that needs to run between fork() and exec().

In this case, the child setup is used only to unset CLOEXEC. We could simply not set it in
the first place. This only fails if a secondary thread decides to launch a subprocess before
XDGDBusProxyLauncher::launch returns. That window already exists in many other places (e.g.
anywhere else setCloseOnExec is called, such as for IPC::Connection objects). Threads should
not do that.

This also fixes a bug where unsetting CLOEXEC would fail if we get unlucky and receive
EINTR. A loop is required here. WTF::setCloseOnExec handles that for us.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::launch):
(WebKit::XDGDBusProxyLauncher::childSetupFunc): Deleted.

11:14 AM Changeset in webkit [273086] by msaboff@apple.com
  • 24 edits in trunk

[JSC] Implement RegExp Match Indices proposal
https://bugs.webkit.org/show_bug.cgi?id=202475

Reviewed by Yusuke Suzuki.

JSTests:

Updated tests.

  • es6/Proxy_internal_get_calls_RegExp.prototype.flags.js:
  • stress/static-getter-in-names.js:
  • test262/config.yaml:

Source/JavaScriptCore:

This implements the latest version of the RegExp match indices proposal (https://github.com/tc39/proposal-regexp-match-indices).
It includes a new 'd' flag to RegExp's to trigger the population of the 'indices' property tree in a Matches result from
RegExp.exec() and related methods. This change is performance neutral on JetStream2.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGStrengthReductionPhase.cpp:

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

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpMatchesArrayWithIndicesStructure const):
(JSC::JSGlobalObject::regExpMatchesIndicesArrayStructure const):

  • runtime/RegExp.cpp:

(JSC::RegExpFunctionalTestCollector::outputOneTest):
(JSC::regexpToSourceString):

  • runtime/RegExp.h:
  • runtime/RegExpMatchesArray.cpp:

(JSC::createEmptyRegExpMatchesArray):
(JSC::createStructureWithIndicesImpl):
(JSC::createIndicesStructureImpl):
(JSC::createRegExpMatchesArrayWithIndicesStructure):
(JSC::createRegExpMatchesIndicesArrayStructure):
(JSC::createRegExpMatchesArrayWithIndicesSlowPutStructure):
(JSC::createRegExpMatchesIndicesArraySlowPutStructure):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::flagsString):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • yarr/YarrFlags.cpp:

(JSC::Yarr::parseFlags):

  • yarr/YarrFlags.h:
  • yarr/YarrInterpreter.h:

(JSC::Yarr::BytecodePattern::hasIndices const):

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::hasIndices const):

LayoutTests:

Updated tests.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/regexp-named-capture-groups-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/regexp-named-capture-groups.js:
11:12 AM Changeset in webkit [273085] by youenn@apple.com
  • 7 edits in trunk

Set ENABLE_VP9 to 1 on IOS
https://bugs.webkit.org/show_bug.cgi?id=222042
<rdar://problem/74433523>

Reviewed by Eric Carlson.

Source/WebKit:

No change of behavior.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetVP9DecoderEnabled):
(WKPreferencesGetVP9DecoderEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
Disable VP9Decoder in ios simulator since there is no support for it through VTB.

10:58 AM Changeset in webkit [273084] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] Remove all Google user agent quirks except for Google Docs
https://bugs.webkit.org/show_bug.cgi?id=222039

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-18
Reviewed by Carlos Garcia Campos.

Source/WebCore:

The Google user agent quirks have a very long and complex history, detailed across over a
dozen different bug reports. But Google seems to have improved its practices, and they are
no longer needed except on Google Docs, at least for now. This is a historic moment!

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.

10:38 AM Changeset in webkit [273083] by Devin Rousso
  • 11 edits in trunk/Source

Experiment with using the theme-color as the scroll area background if provided
https://bugs.webkit.org/show_bug.cgi?id=222078
<rdar://problem/74158818>

Reviewed by Tim Horton.

Source/WebCore:

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

(WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor): Added.
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):

  • dom/Document.cpp:

(WebCore::Document::processThemeColor):
Notify the RenderLayerCompositor when <meta name="theme-color" content="..."> changes.

Source/WebKit:

  • UIProcess/API/ios/WKWebViewIOS.mm:

(baseScrollViewBackgroundColor):

  • UIProcess/ViewSnapshotStore.cpp:

(WebKit::ViewSnapshotStore::recordSnapshot):

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

(WebPageProxy::scrollAreaBackgroundColor): Added.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
10:18 AM Changeset in webkit [273082] by pvollan@apple.com
  • 12 edits in trunk/Source

[macOS] Observe system sleep events in the UI process
https://bugs.webkit.org/show_bug.cgi?id=221996
<rdar://problem/74406570>

Reviewed by Chris Dumez.

Source/WebCore:

System sleep events should be observed in the UI process, which should notify the WebContent process.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebCore/PAL:

Export symbols, since the system sleep listener will be instantiated in the UI process.

  • pal/system/SystemSleepListener.h:

Source/WebKit:

System sleep events should be observed in the UI process, which should notify the WebContent process.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
(WebKit::WebProcessPool::systemWillSleep):
(WebKit::WebProcessPool::systemDidWake):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::systemWillSleep):
(WebKit::WebProcess::systemDidWake):

9:52 AM Changeset in webkit [273081] by achristensen@apple.com
  • 4 edits in trunk

Disable RangeResponseGenerator again.
https://bugs.webkit.org/show_bug.cgi?id=221072

Source/WebCore:

It seems to be causing GPU process crashes. Needs more investigating.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

9:46 AM Changeset in webkit [273080] by commit-queue@webkit.org
  • 30 edits in trunk

WebGL contexts do not work as source for Context2D drawImage calls in GPU process
https://bugs.webkit.org/show_bug.cgi?id=221811

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-18
Reviewed by Darin Adler.

Source/WebCore:

Implements rudimentary support for reading the WebGL context and transfering
it to a ImageBuffer.

Fixes many tests that are removed from gpu-process/TestExpectations.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::transferToImageBitmap):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):

  • platform/graphics/GraphicsContextGL.h:

Make paintRenderingResultsToCanvas and paintCompositedResultsToCanvas
take ImageBuffer& instead of ImageBuffer*, since the buffer always
exists.

  • platform/graphics/cairo/GraphicsContextGLCairo.cpp:

(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGLOpenGL::paintToCanvas):
Change the function signature so that it can be called from
other thread and without GraphicsContextGL instance.
It is not really a GraphicsContextGLOpenGL related function..

  • platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.cpp:

(WebCore::GraphicsContextGLIOSurfaceSwapChain::displayBuffer const):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::recycleBuffer):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::detachClient):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::present):

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

(WebGLLayerSwapChain::present):
Move the triple buffering implementation to the base class.
The implementation is now also used in GPU process side,
since the GPU process needs to be able to read the composited
results.

Previously the same logic was split between Web process and GPU process.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToImageData):
(WebCore::GraphicsContextGLOpenGL::readRenderingResultsForPainting):
(WebCore::GraphicsContextGLOpenGL::readCompositedResultsForPainting):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

Expose public functions to get ImageData out of drawing buffer and
display buffer.

Source/WebKit:

Implements rudimentary support for reading the WebGL context and transfering
it to a ImageBuffer.

Fixes many tests that are removed from gpu-process/TestExpectations.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createGraphicsContextGL):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::RemoteRenderingBackendWrapper::get const):

  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createGraphicsContextGL const):

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLCocoa::RemoteGraphicsContextGLCocoa):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

(WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const):

RemoteGraphicsContextGL takes a ref of the respective RemoteRenderingBackend.
RemoteRenderingBackend is the one that can handle ImageBuffers.

(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintImageDataToImageBuffer):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:

Implement the functions by:

1) Wait for the pending changes to the ImageBuffer
2) Send a synchronous message from Web process to GPU process WebGL sequence
3) Reading the buffer, post the task to RenderingBackend sequence
4) Paint the results to the ImageBuffer
5) Return the synchronous message result

(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

RemoteGraphicsContextGL now retains the reference to display buffer.
Before, just sent the display buffer to Web process and forgot
about it.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::dispatch):

  • GPUProcess/graphics/RemoteRenderingBackend.h:

Add function to dispatch work to rendering backend sequence.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:

Send the messages.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::connectToGPUProcess):

Use IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply to
send CreateRenderingBackend. It must be dispatched in order compared to other
messages such as CreateRemoteGraphicsContextGL.

Tools:

Update two signatures for manually implemented messages.

  • Scripts/generate-gpup-webgl:

LayoutTests:

Remove now passing tests from the expectations.

  • gpu-process/TestExpectations:
9:42 AM Changeset in webkit [273079] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed tiny cleanup after r273056.

  • wtf/Forward.h:
9:02 AM Changeset in webkit [273078] by weinig@apple.com
  • 10 edits in trunk

lch() colors should serialize as lch(), not lab()
https://bugs.webkit.org/show_bug.cgi?id=222085

Reviewed by Darin Adler.

Source/WebCore:

Updates fast/css/parsing-lab-colors.html

The spec was updated to require lch() to serialize to itself.

Store LCHA colors in Color to allow serialization. This just moves
the conversion to Lab from parse time to CGColor creation time (it
happens implicitly in the conversion to extended sRGB).

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseLCHParameters):

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorSpace.cpp:

(WebCore::operator<<):

  • platform/graphics/ColorSpace.h:

(WebCore::callWithColorType):

  • platform/graphics/ColorUtilities.h:

(WebCore::isBlack):
(WebCore::isWhite):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedNullableCGColorSpace):

LayoutTests:

The spec was updated to require lch() to serialize to itself.

  • fast/css/parsing-lab-colors-expected.txt:
  • fast/css/parsing-lab-colors.html:

Update test to reflect new serialization of lch().

8:56 AM Changeset in webkit [273077] by wenson_hsieh@apple.com
  • 34 edits
    2 adds in trunk/Source

Plumb an Optional<PageIdentifier> through Pasteboard-related codepaths
https://bugs.webkit.org/show_bug.cgi?id=221987

Reviewed by Tim Horton.

Source/WebCore:

In order to facilitate tagging pasteboard reads and writes with a data owner type on iOS sourced from
WKContentView, we add infrastructure to (indirectly) tag Pasteboard with an optional PageIdentifier to
indicate which page is triggering the pasteboard operation.

However, since the Pasteboard class should only be responsible for interfacing with platform-dependent
strategies for reading or writing data, we can't directly add a PageIdentifier member to Pasteboard.
Instead, we introduce a separate PasteboardContext object, and let Pasteboard hold a unique pointer to this
context (which is set during construction). PasteboardContext is then subclassed by PagePasteboardContext,
which holds a PageIdentifier and is created from call sites of the Pasteboard constructor that have access
to page identifiers (e.g. Editor, Clipboard, EventHandler).

In a future patch, this opaque PasteboardContext will be converted back to a PagePasteboardContext in order
to retrieve the page identifier in the WebKit client layer.

  • Headers.cmake:
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::readText):
(WebCore::Clipboard::writeText):
(WebCore::Clipboard::read):
(WebCore::Clipboard::ItemWriter::ItemWriter):

Here (and in many places below), create PagePasteboardContext objects and use them to create Pasteboards,
passing them in as opaque PasteboardContexts.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::createForDrag):

  • dom/DataTransfer.h:
  • editing/Editor.cpp:

(WebCore::createDataTransferForClipboardEvent):
(WebCore::dispatchClipboardEvent):
(WebCore::Editor::pasteAsPlainTextBypassingDHTML):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsQuotation):
(WebCore::Editor::copyURL):
(WebCore::Editor::copyImage):

  • editing/EditorCommand.cpp:

(WebCore::executePasteGlobalSelection):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::readSelectionFromPasteboard):
(WebCore::Editor::replaceNodeFromPasteboard):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::copyText):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::copyText):

  • page/DragController.cpp:

(WebCore::documentFragmentFromDragData):
(WebCore::DragController::dragExited):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDHTMLDrag):
(WebCore::DragController::tryToUpdateDroppedImagePlaceholders):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

  • page/PagePasteboardContext.h: Added.

Add PagePasteboardContext, a PasteboardContext subclass that contains a PageIdentifier indicating which
Page is requesting pasteboard access.

(isType):

  • platform/DragData.cpp:

(WebCore::DragData::DragData):
(WebCore::DragData::createPasteboardContext const):

Also plumb a PageIdentifier through DragData, and use it to implement a helper method that returns a context
object for Pasteboard.

  • platform/DragData.h:

Additionally make operator= platform-agnostic, instead of limited to GTK. (It isn't clear why this needs to be
limited to the GTK port).

(WebCore::DragData::DragData):
(WebCore::DragData::pageID const):

  • platform/Pasteboard.h:

Augment Pasteboard's (numerous) platform-specific constructors to take in a PasteboardContext unique
pointer as well, and store it in m_context.

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::context const):

  • platform/PasteboardContext.h: Added.

Add PasteboardContext, which provides additional context for an arbitrary pasteboard operation in an opaque
fashion. See PagePasteboardContext above.

(WebCore::PasteboardContext::isPagePasteboardContext const):

  • platform/StaticPasteboard.cpp:

(WebCore::StaticPasteboard::StaticPasteboard):

  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):
(WebCore::DragData::canSmartReplace const):
(WebCore::DragData::asPlainText const):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForGlobalSelection):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):
(WebCore::Pasteboard::Pasteboard):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):
(WebCore::Pasteboard::createForCopyAndPaste):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::Pasteboard):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):

  • platform/win/DragDataWin.cpp:

(WebCore::DragData::DragData):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):
(WebCore::Pasteboard::Pasteboard):

Source/WebKit:

Update more DragData and Pasteboard initialization sites by passing in a PageIdentifier or
PasteboardContext, respectively. See WebCore ChangeLog for more details.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):
(WebKit::WebViewImpl::draggingExited):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragDataForDropSession:dragDestinationAction:]):

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::performActionOnElement):

Source/WebKitLegacy/mac:

Create and pass in a PasteboardContext when creating a Pasteboard. See WebCore ChangeLog for more details.

  • WebCoreSupport/WebDragClient.mm:

(WebDragClient::declareAndWriteDragImage):

8:52 AM Changeset in webkit [273076] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

Enable separated graphics layer experiments on internal variant
https://bugs.webkit.org/show_bug.cgi?id=222088

Reviewed by Dean Jackson.

  • wtf/PlatformEnableCocoa.h:
8:06 AM Changeset in webkit [273075] by achristensen@apple.com
  • 27 edits
    1 add in trunk

Add SPI for getting size of PDF document during printing
https://bugs.webkit.org/show_bug.cgi?id=222064
<rdar://problem/74370891>

Reviewed by Geoff Garen and Tim Horton.

Source/WebKit:

When printing a PDF, we want to know its page size. If the print is initiated by the web process (such as when window.print is called
or if the PDF contains JavaScript that tells the browser to print it) then we would like that information with the print request so we
don't have to ask the web process, which is hung waiting for a synchronous message reply. If the print is initiated by the UI process
(such as if the user prints from a menu or keyboard shortcut) then we need a way to ask what the size of a PDF is.

I reused the SPI in WKUIDelegatePrivate because it was only briefly adopted before we knew we needed this and then reverted.
I'm also adding an SPI way to get from a WKPageRef to a WKWebView so this can be adopted without redoing all of Safari.

Covered by API tests.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::printFrame):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getPDFFirstPageSizeInFrame:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::printFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::getPDFFirstPageSize):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pdfDocumentSizeForPrinting const):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::pdfDocumentSizeForPrinting const):

  • WebProcess/Plugins/Plugin.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getPDFFirstPageSize):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getPDFFirstPageSize):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/test_print.pdf: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]):
(-[PrintUIDelegate waitForPageSize]):
(-[PrintUIDelegate lastPrintedFrame]):
(TEST):

7:59 AM Changeset in webkit [273074] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebKit

ThreadMessageReceiverRefCounted subclasses are accessed in non-thread-safe way
https://bugs.webkit.org/show_bug.cgi?id=221891

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-18
Reviewed by Chris Dumez.

For each ThreadMessageReceiverRefCounted subclass, remove calls
to Connection::addThreadMessageReceiver() from the constructor.
The calls pass 'this' as the ThreadMessageReceiver*. If the
connection tries to dispatch a message during the constructor, this
results in some or all of below:

  • non-thread-safe read of mutated virtual function pointer
  • call to incorrect member function, mostly to MessageReceiver::didReceiveMessage
  • an assert from above
  • skipped message

For each ThreadMessageReceiverRefCounted subclass, remove calls
to Connection::removeThreadMessageReceiver() from the destructor.
The message receive destination is still active during destructor,
so Connection might dispatch new message tasks during that time.
This causes ref of the instance already being destroyed, which
then causes the tasks to use deleted instance and then later
deleting it again.

Does not try to fix any other potential thread-related issues in
the modified areas.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp:

(WebKit::RemoteAudioMediaStreamTrackRendererManager::RemoteAudioMediaStreamTrackRendererManager):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::startListeningForIPC):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::close):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::RemoteSampleBufferDisplayLayerManager):
(WebKit::RemoteSampleBufferDisplayLayerManager::startListeningForIPC):
(WebKit::RemoteSampleBufferDisplayLayerManager::close):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::startListeningForIPC):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::create):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::startListeningForIPC):
(WebKit::LibWebRTCCodecs::~LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:

(WebKit::LibWebRTCCodecs::create):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:

(WebKit::LibWebRTCNetwork::~LibWebRTCNetwork):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::libWebRTCCodecs):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::~RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::stopListeningForIPC):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):

  • WebProcess/glib/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):

4:02 AM Changeset in webkit [273073] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

LayoutTests/imported/w3c:
Root scroll snapping broken overflow:scroll is set on the <body>
https://bugs.webkit.org/show_bug.cgi?id=221407

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Simon Fraser.

  • web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps-expected.txt:

Source/WebCore:
Root scroll snapping broken overflow:scroll is set on the <body>
https://bugs.webkit.org/show_bug.cgi?id=221407

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Simon Fraser.

No new tests. This change fixes the WPT test:
imported/w3c/web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps.html

Instead of walking up the render tree to find the containing element, be sure to
walk up the containing block chain. This will prevent WebKit from using the wrong
scrolling container for positioned elements that snap.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findEnclosingScrollableContainerForSnapping const): Deleted.

  • rendering/RenderBox.h: Remove method definition.
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Find the
scrolling container respecting the containing block chain. Never consider the
RenderView as a containing block. Although this element has a scroll area
and looks scrollable, it's a historical artifact and the real scroll container
is the FrameView.

LayoutTests:
Root scroll snapping broken when overflow:scroll is set on the <body>
https://bugs.webkit.org/show_bug.cgi?id=221407

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Simon Fraser.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps-expected.txt: Removed.

This baseline no longer differs between platforms.

1:58 AM Changeset in webkit [273072] by svillar@igalia.com
  • 12 edits in trunk

[css-flex] Implement section 9.8 Definite and Indefinite Sizes case 1
https://bugs.webkit.org/show_bug.cgi?id=219538
<rdar://problem/72136484>

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Replaced FAIL by PASS expectations.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt: Ditto.
  • web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html: Updated expectation. Still failing.

Source/WebCore:

If a single-line flex container has a definite cross size, the automatic preferred outer cross size
of any stretched flex items is the flex container's inner cross size (clamped to the flex item's
min and max cross size) and is considered definite. Before that we were considering all automatic
sizes as indefinite (see https://drafts.csswg.org/css-flexbox/#definite-sizes).

This patch does not consider all the cases where the container cross size is definite but just when
that size is fixed. Support for additional cases should be added in followup patches.

This change unveiled an implementation mistake when computing content sizes for the min-size:auto case.
In those cases we were always calling computeMainAxisExtentForChild() but that does not take into
account the aspect ratio, that's why we added an additional code path which computes the content
size using computeMainSizeFromAspectRatioUsing() instead.

This fixes 8 full tests plus 24 subtests in some other flexbox aspect ratio tests from the WPT suite.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::useChildAspectRatio const): Use ternary operator to simplify code.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Resolve child size to container's
size if childCrossSizeShouldUseContainerCrossSize().
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): New method implementing
section 9.8.1 of the specs.
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Use aspect ratio to compute cross size
also if childCrossSizeShouldUseContainerCrossSize().
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Use aspect ratio specific code to compute
content size if aspect ratio should be used for child.
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):

  • rendering/RenderFlexibleBox.h:

LayoutTests:

12:53 AM Changeset in webkit [273071] by youenn@apple.com
  • 5 edits in trunk

[GPUP] Test webrtc/audio-video-element-playing.html fails when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221844
<rdar://problem/74388532>

Reviewed by Eric Carlson.

Source/WebCore:

Move from Clock to MonotonicTime since we do not need high precision anyway for MediaPlayerPrivateMediaStreamAVFObjC.
This allows not requiring access to the underlying coreaudio clock.
Covered by updated test.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentMediaTime const):

LayoutTests:

  • webrtc/audio-video-element-playing.html:
12:49 AM Changeset in webkit [273070] by commit-queue@webkit.org
  • 12 edits in trunk

[GTK][WPE] Implement support for CSS Scroll Snap
https://bugs.webkit.org/show_bug.cgi?id=203684

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Carlos Garcia Campos.

.:

Add initial support for css-scroll-snap on WebKitGTK+ and WebKitWPE. This
adds support for all types of scroll snapping that WebKit supports apart
from mouse wheel snapping. Support for that will be added in a followup
change.

  • Source/cmake/OptionsGTK.cmake: Enable scroll snapping when experimental features

are enabled.

  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebCore:

No new tests. This change unskips all cross-platform scroll-snap tests
on both platforms.

  • Headers.cmake: Add headers to header list.
  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::findFirstSnapStopOffsetBetweenOriginAndDestination): Fix a compilation
warning that now shows up on my system.

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::scroll): Pass the 'behavior' parameter to
the superclass call.
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation): Call into the super
class to update the position instead of using the special method in the subclass.
(WebCore::ScrollAnimatorGeneric::updatePosition): Also update the current snap index.
This is necessary so that changes to the scroll position also modify the currently
target snap index.

LayoutTests:

  • css3/scroll-snap/scroll-padding-mainframe-paging.html: Since the GTK+ port has

animated scrolling, we need to modify this test to support a scroll operation
that does not happen immediately.

  • platform/gtk/TestExpectations: Unskip scroll snap tests.
  • platform/wpe/TestExpectations: Ditto.
  • resources/ui-helper.js:

(window.UIHelper.waitForTargetScrollAnimationToSettle): Added a new helper that
uses rAF to detect when an animated scroll operation has finished. This is the
same strategy that the WPT tests use to detect this.

12:43 AM Changeset in webkit [273069] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Backgrounding a page that is playing and capturing audio will stop audio playing
https://bugs.webkit.org/show_bug.cgi?id=222032
<rdar://problem/74389497>

Reviewed by Eric Carlson.

When a page gets backgrounded while capturing, it will continue doing capture, as can be seen with the red status bar.
In that case, for video conferencing, it makes sense that audio being played continues playing, at least for MediaStreamTrack.
The red status bar is an indication that the call is continuing.
Also, for MediaStreamTrack, audio and video content are not buffered: they are played or discarded.
The media player, whenever not visible, will stop processing video but will continue processing audio if not interrupted.
This makes it working for websites using video elements for both audio and video, which is more common than websites using video elements for video and audio elements for audio.

Manually tested.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):

12:38 AM Changeset in webkit [273068] by commit-queue@webkit.org
  • 5 edits in trunk

Treat <ratio> that ends with forward slash as invalid
https://bugs.webkit.org/show_bug.cgi?id=221978

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-18
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/aspect-ratio-invalid-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/aspect-ratio-invalid.html:

Source/WebCore:

Treat <ratio> that ends with forward slash as invalid:
https://drafts.csswg.org/css-values-4/#ratio-value

Test: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/parsing/aspect-ratio-invalid.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAspectRatio):

12:04 AM Changeset in webkit [273067] by graouts@webkit.org
  • 8 edits
    1 add in trunk

Page updates and rAF callbacks should run at a frequency close to 60Hz on high refresh-rate displays
https://bugs.webkit.org/show_bug.cgi?id=221673
<rdar://problem/72398605>

Reviewed by Simon Fraser.

Source/WebCore:

Up to now, page rendering updates, which can, for instance, be triggered by registering a requestAnimationFrame()
callback or having CSS Animations, CSS Transitions or Web Animations running non-accelerated, would be triggered
at the current display's refresh rate on macOS, and 60fps on iOS.

For instance, this meant that plugging in a 144Hz display on a Mac would attempt to update the page rendering at
144fps. We think it's better, for Web compatibility reasons, to try to use a page rendering update cadence that
is as close to 60fps as possible while matching a display update. This means finding the whole multiple for which
the interval between frames would be as close to that for 60Hz.

Using the 144Hz case again, this means we would shoot for 72fps, since the refresh interval for 72fps is nearest
that at 60fps than that at 48fps (another multiple of 144).

In the case where the internal preference to control whether the refresh rate for page rendering updates is
forced to 60fps, which defaults to false, we pass in the page's "nominal refresh rate" to preferredFrameInterval().
If that rate is 60fps, we use the same rate and intervals as we always have. If that rate is less than 60fps, we
use that rate as-is.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const):

  • page/Page.cpp:

(WebCore::Page::preferredRenderingUpdateInterval const):

  • platform/graphics/AnimationFrameRate.h:

(WebCore::framesPerSecondNearestFullSpeed):
(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):

Source/WTF:

Add a new internal preference to force the refresh rate for page rendering updates to 60fps
rather than use the display's refresh rate. This setting defaults to false.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Add API tests for the methods in AnimationFrameRate.h.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/AnimationFrameRate.cpp: Added.

Feb 17, 2021:

11:59 PM Changeset in webkit [273066] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Return correct target for App Highlight menus.
https://bugs.webkit.org/show_bug.cgi?id=222089

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView targetForAction:withSender:]):

11:08 PM Changeset in webkit [273065] by Fujii Hironori
  • 6 edits
    463 adds in trunk/LayoutTests

Import CSS @counter-style WPTs
https://bugs.webkit.org/show_bug.cgi?id=222024

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-02-17
Reviewed by Fujii Hironori.

LayoutTests/imported/w3c:

Import css-counter-style WPTs via Tools/Scripts/import-w3c-tests -t web-platform-tests/css/css-counter-styles
and add expectations.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-counter-styles/META.yml: Added.
  • web-platform-tests/css/css-counter-styles/README: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-101-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-101.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-102-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-102.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-103-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-103.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-006-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-006.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-007-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-007.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-008-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-008.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-009-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-009.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-116-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-116.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-117-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-117.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-118-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-118.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/broken-symbols-expected.htm: Added.
  • web-platform-tests/css/css-counter-styles/broken-symbols.htm: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-158-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-158.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-159-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-159.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-160-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-160.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-001-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-001.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-004-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-004.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-005-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-005.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-201-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-201.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-202-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-202.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-203-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-203.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-204-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-204.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-205-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-205.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-206-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-206.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-fallback-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-fallback.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-name-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-name-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-negative-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-negative-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-range-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-range-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-speak-as-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-speak-as-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-system-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-system-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-1-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-1.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-2-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-2.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-119-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-119.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-120-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-120.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-121-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-121.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-010-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-010.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-011-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-011.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-012-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-012.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-014-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-014.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-122-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-122.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-123-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-123.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-124-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-124.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-125-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-125.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-126-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-126.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-127-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-127.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-015-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-015.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016a-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016a.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-017-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-017.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-033-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-033.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-034-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-034.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-035-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-035.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-030-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-030.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-031-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-031.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-032-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-032.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/idlharness-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/idlharness.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-047-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-047.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-048-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-048.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-049-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-049.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-050-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-050.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-051-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-051.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-042-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-042.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-043-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-043.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-044-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-044.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-045-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-045.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-046-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-046.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-128-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-128.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-129-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-129.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-130-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-130.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-039-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-039.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-040-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-040.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-041-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-041.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-036-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-036.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-037-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-037.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-038-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-038.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-161-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-161.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-162-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-162.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-163-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-163.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-052-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-052.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-053-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-053.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-054-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-054.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-055-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-055.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-056-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-056.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-062-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-062.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-063-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-063.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-064-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-064.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-065-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-065.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-066-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-066.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-057-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-057.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-058-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-058.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-059-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-059.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-060-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-060.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-061-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-061.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-131-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-131.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-132-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-132.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-133-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-133.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-111-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-111.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-112-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-112.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-114-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-114.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-115-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-115.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-027-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-027.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-028-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-028.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-029-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-029.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-019-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-019.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020a-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020a.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020b-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020b.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-021-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-021.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-022-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-022.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-134-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-134.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-135-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-135.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-136-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-136.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-137-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-137.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-138-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-138.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-139-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-139.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-140-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-140.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-141-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-141.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-142-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-142.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-143-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-143.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-144-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-144.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-145-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-145.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-104-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-104.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-105-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-105.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-106-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-106.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-076-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-076.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-077-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-077.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-078-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-078.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-079-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-079.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-080-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-080.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-071-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-071.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-072-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-072.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-073-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-073.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-074-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-074.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-075-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-075.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/support/counter-style-testcommon.js: Added.

(test_counter_style_descriptor):
(test_valid_counter_style_descriptor):
(test_invalid_counter_style_descriptor):
(test_counter_style_name):
(test_valid_name):
(test_invalid_name):

  • web-platform-tests/css/css-counter-styles/support/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-146-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-146.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-147-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-147.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-148-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-148.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-149-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-149.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-150-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-150.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-151-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-151.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-152-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-152.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-153-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-153.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-154-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-154.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-155-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-155.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-157-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-157.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-086-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-086.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-087-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-087.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-088-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-088.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-089-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-089.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-090-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-090.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-081-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-081.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-082-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-082.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-083-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-083.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-084-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-084.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-085-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-085.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-107-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-107.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-108-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-108.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-109-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-109.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-110-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-110.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-023-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-023.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024a-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024a.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-025-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-025.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-026-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-026.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/w3c-import.log: Added.

LayoutTests:

css-counter-style WPTs.

10:53 PM Changeset in webkit [273064] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[GPUP] Remove RemoteLegacyCDMSessionProxy and RemoteLegacyCDMSessionProxy from the message receiver map in the destructor of RemoteLegacyCDMFactoryProxy
https://bugs.webkit.org/show_bug.cgi?id=222079

Reviewed by Jer Noble.

Fix a GPU process crash when running http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html.

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::~RemoteLegacyCDMFactoryProxy):

9:48 PM Changeset in webkit [273063] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391

Reviewed by Carlos Garcia Campos.

When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages.

Call scheduleDisplay instead of setNeedsDisplay in
triggerRenderingUpdate.

However, if the dirty region is empty, display() exited early. If
triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.

Added a new flag m_scheduledWhileWaitingForDidUpdate.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:

Added m_scheduledWhileWaitingForDidUpdate.

9:06 PM Changeset in webkit [273062] by Chris Dumez
  • 176 edits in trunk

Reduce explicit usage of [objC autorelease] in WebKit even further
https://bugs.webkit.org/show_bug.cgi?id=222060

Reviewed by Darin Adler.

Reduce explicit usage of [objC autorelease] in WebKit further by using RetainPtr.

Source/WebKit:

  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::safeBrowsingDetailsText):

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

(WebKit::MockNfcService::transceive):

  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(appLinkForURL):

  • UIProcess/ios/WKContentViewInteraction.mm:

(ensureLocalDragSessionContext):
(-[WKContentView insertTextPlaceholderWithSize:completionHandler:]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
(-[WKContentView _presentationSnapshotForPreviewItemController:]):
(+[WKTextRange textRangeWithState:isRange:isEditable:startRect:endRect:selectionRects:selectedTextLength:]):
(+[WKTextPosition textPositionWithRect:]):

  • UIProcess/ios/WKTextPlaceholder.mm:

(-[WKTextPlaceholder rects]):

  • UIProcess/ios/WKWebEvent.mm:

(-[WKWebEvent initWithEvent:]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsViewController tableView:cellForRowAtIndexPath:]):

  • UIProcess/ios/forms/WKDatePickerViewController.mm:

(-[WKDatePickerViewController _dateComponentForDay:month:year:era:]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKOptionPickerCell initWithOptionItem:]):
(-[WKOptionGroupPickerCell initWithOptionItem:]):
(-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
(-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
(-[WKSelectPickerTableViewController tableView:viewForHeaderInSection:]):
(-[WKSelectPickerTableViewController tableView:cellForRowAtIndexPath:]):

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectPopover initWithView:hasGroups:]):

  • UIProcess/ios/forms/WKNumberPadView.mm:

(-[WKNumberPadView _buttonForPosition:]):

  • UIProcess/ios/forms/WKNumberPadViewController.mm:

(-[WKNumberPadViewController _handleKeyPress:]):

  • UIProcess/ios/forms/WKQuickboardListViewController.mm:

(-[WKQuickboardListViewController actionController]):

  • UIProcess/ios/forms/WKTextInputListViewController.mm:

(-[WKTextInputListViewController enterText:]):

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController enterFullScreen]):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

  • UIProcess/mac/WKTextInputWindowController.mm:

(-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]):

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):

  • UIProcess/mac/WebColorPickerMac.mm:

(-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionsController tableView:rowViewForRow:]):
(-[WKDataListSuggestionsController tableView:viewForTableColumn:row:]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame _certificateChain]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:width:]):

  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:

(-[WKDOMDocument parserYieldToken]):

  • WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:

(WebKit::toWKDOMType):

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController handle]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformInitialize):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebSelectionRect.m:

(+[WebSelectionRect selectionRect]):

  • WebCoreSupport/WebVisiblePosition.mm:
  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView _checkPDFTitle]):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(kit):

  • DOM/DOMAbstractView.mm:

(kit):

  • DOM/DOMBlob.mm:

(kit):

  • DOM/DOMCSSRule.mm:

(kit):

  • DOM/DOMCSSRuleList.mm:

(kit):

  • DOM/DOMCSSStyleDeclaration.mm:

(kit):

  • DOM/DOMCSSValue.mm:

(kit):

  • DOM/DOMCounter.mm:

(kit):

  • DOM/DOMEvent.mm:

(kit):

  • DOM/DOMFileList.mm:

(kit):

  • DOM/DOMHTMLCollection.mm:

(kit):

  • DOM/DOMHTMLOptionsCollection.mm:

(kit):

  • DOM/DOMImplementation.mm:

(kit):

  • DOM/DOMMediaError.mm:

(kit):

  • DOM/DOMMediaList.mm:

(kit):

  • DOM/DOMNamedNodeMap.mm:

(kit):

  • DOM/DOMNode.mm:

(kit):

  • DOM/DOMNodeIterator.mm:

(kit):

  • DOM/DOMNodeList.mm:

(kit):

  • DOM/DOMRGBColor.mm:

(kit):

  • DOM/DOMRange.mm:

(kit):

  • DOM/DOMRect.mm:

(kit):

  • DOM/DOMStyleSheet.mm:

(kit):

  • DOM/DOMStyleSheetList.mm:

(kit):

  • DOM/DOMTimeRanges.mm:

(kit):

  • DOM/DOMTokenList.mm:

(kit):

  • DOM/DOMTreeWalker.mm:

(kit):

  • DOM/DOMXPath.mm:

(kit):

  • DOM/DOMXPathExpression.mm:

(kit):

  • DOM/DOMXPathResult.mm:

(kit):

  • DOM/WebDOMOperations.mm:

(-[DOMNode webArchive]):
(-[DOMNode webArchiveByFilteringSubframes:]):
(-[DOMRange webArchive]):

  • DefaultDelegates/WebDefaultContextMenuDelegate.mm:

(-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):

  • History/WebBackForwardList.mm:

(kit):
(-[WebBackForwardList addItem:]):
(-[WebBackForwardList backItem]):
(-[WebBackForwardList currentItem]):
(-[WebBackForwardList forwardItem]):
(-[WebBackForwardList itemAtIndex:]):

  • History/WebHistory.mm:

(-[WebHistoryPrivate data]):

  • History/WebHistoryItem.mm:

(kit):
(+[WebHistoryItem entryWithURL:]):

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _webkit_stringByTrimmingWhitespace]):

  • Misc/WebNSDataExtras.mm:

(-[NSData _webkit_parseRFC822HeaderFields]):

  • Misc/WebNSObjectExtras.mm:

(-[WebMainThreadInvoker forwardInvocation:]):
(-[WebMainThreadInvoker handleException:]):
(+[NSObject _webkit_invokeOnMainThread]):
(-[NSObject _webkit_invokeOnMainThread]):

  • Misc/WebNSURLExtras.mm:

(-[NSURL _web_originalDataAsString]):
(-[NSURL _web_hostString]):

  • Plugins/Hosted/HostedNetscapePluginStream.mm:

(WebKit::HostedNetscapePluginStream::pluginCancelledConnectionError const):

  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage pluginWithPath:]):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::pluginCancelledConnectionError const):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):

  • Plugins/WebPluginContainerCheck.mm:

(+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:contextInfo:]):

  • Plugins/WebPluginDatabase.mm:

(-[WebPluginDatabase _plugInPaths]):

  • WebCoreSupport/WebEditorClient.mm:

(+[WebUndoStep stepWithUndoStep:]):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::convertMainResourceLoadToDownload):
(makeFormFieldValuesDictionary):
(WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebFrameLoaderClient::createPlugin):

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController webView:contextMenuItemsForElement:defaultMenuItems:]):

  • WebCoreSupport/WebSecurityOrigin.mm:
  • WebView/WebArchive.mm:

(-[WebArchive data]):

  • WebView/WebDataSource.mm:

(-[WebDataSource _fileWrapperForURL:]):
(-[WebDataSource webArchive]):
(-[WebDataSource mainResource]):
(-[WebDataSource subresourceForURL:]):

  • WebView/WebDeviceOrientationProviderMock.mm:

(-[WebDeviceOrientationProviderMockInternal lastOrientation]):

  • WebView/WebFrame.mm:

(-[WebFrame elementAtPoint:]):
(-[WebFrame parentFrame]):

  • WebView/WebFrameView.mm:

(-[WebFrameView initWithFrame:]):
(-[WebFrameView _setCustomScrollViewClass:]):

  • WebView/WebHTMLRepresentation.mm:

(-[WebHTMLRepresentation documentSource]):
(-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:]):

  • WebView/WebHTMLView.mm:

(+[WebHTMLView _excludedElementsForAttributedStringConversion]):
(-[WebHTMLView _plainTextFromPasteboard:]):
(-[WebHTMLView view:stringForToolTip:point:userData:]):
(-[WebHTMLView rightMouseUp:]):
(-[WebHTMLView menuForEvent:]):
(-[WebHTMLView scrollWheel:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
(-[WebHTMLView mouseDown:]):
(-[WebHTMLView mouseDragged:]):
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
(-[WebHTMLView mouseUp:]):
(-[WebHTMLView keyDown:]):
(-[WebHTMLView keyUp:]):
(-[WebHTMLView flagsChanged:]):
(-[WebHTMLView _fontAttributesFromFontPasteboard]):
(-[WebHTMLView performKeyEquivalent:]):
(-[WebHTMLView textStorage]):
(-[WebHTMLView pasteboardTypesForSelection]):
(-[WebHTMLView _legacyAttributedStringFrom:offset:to:offset:]):
(-[WebHTMLView attributedString]):
(-[WebHTMLView selectedAttributedString]):
(-[WebHTMLView elementAtPoint:allowShadowContent:]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):

  • WebView/WebNotification.mm:

(-[WebNotification origin]):

  • WebView/WebPDFView.mm:

(-[WebPDFView selectionImageForcingBlackText:]):
(-[WebPDFView _scaledAttributedString:]):

  • WebView/WebResource.mm:

(-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]):
(-[WebResource _fileWrapperRepresentation]):
(-[WebResource _response]):

  • WebView/WebScriptWorld.mm:

(+[WebScriptWorld world]):
(+[WebScriptWorld findOrCreateWorld:]):

  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController init]):

  • WebView/WebView.mm:

(-[WebView _menuForElement:defaultItems:]):
(+[WebView _registerViewClass:representationClass:forURLScheme:]):
(-[WebView _displayURL]):
(-[WebView textIteratorForRect:]):
(+[WebView MIMETypesShownAsHTML]):

Tools:

  • DumpRenderTree/ios/DumpRenderTreeBrowserView.mm:

(-[DumpRenderTreeWebScrollView initWithFrame:]):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(createJSStringRef):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):
(dumpFramesAsText):
(dump):

  • DumpRenderTree/mac/DumpRenderTreeWindow.mm:
  • DumpRenderTree/mac/EventSendingController.mm:

(+[SyntheticTouch touchWithLocation:phase:identifier:]):
(-[EventSendingController beginDragWithFiles:]):
(+[EventSendingController replaySavedEvents]):

  • DumpRenderTree/mac/PolicyDelegate.mm:

(dispositionTypeFromContentDispositionHeader):

  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]):

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

  • TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:

(+[EventSerializer dictionaryForEvent:relativeToTime:]):

  • TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:

(-[LayoutTestSpellChecker setResultsFromJSValue:inContext:]):

  • TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:

(TestWebKitAPI::triggerGC):

  • TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:

(TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleEditingDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegatePlugIn.mm:

(-[BundleFormDelegatePlugIn _webProcessPlugInBrowserContextController:willBeginInputSessionForElement:inFrame:userIsInteracting:]):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(readMarkupFromPasteboard):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(-[TestContextMenuUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuAPIBeforeSPIUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

(readHTMLStringFromPasteboard):

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceManagementRestrictions.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(TestWebKitAPI::webViewWithDownloadMonitorSpeedMultiplier):
(TestWebKitAPI::mutateFile):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBMultiProcess.mm:

(getNextMessage):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm:

(getNextMessage):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/JITEnabled.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageDatabaseTracker.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NavigationAction.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcessCrashNonPersistentDataStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ReparentWebViewTimeout.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):
(-[ResourceLoadStatisticsSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(+[TestServiceLookupResult resultWithProvider:phishing:malware:unwantedSoftware:]):
(+[TestLookupResult resultWithResults:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[SWCustomUserAgentDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::makeWebViewWith):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):
(-[UITestDelegate webView:startURLSchemeTask:]):
(-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(webViewForScriptMessageHandlerMultipleHandlerRemovalTest):
(TEST):
(-[AsyncScriptMessageHandler userContentController:didReceiveScriptMessage:replyHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(platformCopyRichTextWithImage):
(platformImageWithData):

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[UIDelegate _webView:configurationForLocalInspector:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(TEST):

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

(-[TaskSchemeHandler webView:startURLSchemeTask:]):
(-[SyncErrorScheme webView:startURLSchemeTask:]):
(-[FrameSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:

(-[WebGLTestDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessKillIDBCleanup.mm:

(getNextMessage):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(getNextMessage):
(runWebsiteDataStoreCustomPaths):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[ContentBlockingWebsitePoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[AutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[AsyncAutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(TEST):
(-[TestSchemeHandler webView:startURLSchemeTask:]):
(respond):
(-[CustomHeaderFieldsDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[CustomUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomJavaScriptUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomNavigatorPlatformDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[WebsitePoliciesDeviceOrientationDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]):
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/DateTimeInputsAccessoryViewTests.mm:

(cellForRowAtIndexPath):

  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

(TestWebKitAPI::swizzledResizableSnapshotViewFromRect):

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/InspectorBar.mm:

(-[InspectorBarController convertAttributes:]):

  • TestWebKitAPI/Tests/mac/JavascriptURLNavigation.mm:

(-[JavascriptURLNavigationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm:

(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(TestWebKitAPI::getTestImage):

  • TestWebKitAPI/Tests/mac/MemoryPressureHandler.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm:

(TEST):

  • TestWebKitAPI/Tests/mac/WebViewIconLoading.mm:

(imageFromData):

  • TestWebKitAPI/cocoa/TestProtocol.mm:

(additionalResponseHeaders):
(+[TestProtocol additionalResponseHeaders]):
(+[TestProtocol setAdditionalResponseHeaders:]):
(-[TestProtocol startLoading]):

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView objectByCallingAsyncFunction:withArguments:error:]):
(-[TestWKWebView initWithFrame:]):
(-[TestWKWebView initWithFrame:configuration:processPoolConfiguration:]):

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[MockDropSession initWithProviders:location:window:allowMove:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator _webView:willUpdateDropProposalToProposal:forSession:]):

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(defaultExternalDragImage):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator runFrom:to:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::createJSStringRef):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformInitializeDataStore):
(WTR::TestController::platformCreateOtherPage):

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator sendEventStream:completionBlock:]):

8:33 PM Changeset in webkit [273061] by achristensen@apple.com
  • 7 edits in trunk

Fix a few issues with RangeResponseGenerator
https://bugs.webkit.org/show_bug.cgi?id=222087

Reviewed by Jer Noble.

Source/WebCore:

When it was enabled from r272908 to r273033 serveral issues were found and it was disabled until I fixed them.

The first was that RangeResponseGenerator was owned direclty by the WebCoreNSURLSession which is often deallocated on a non-main thread,
which caused all kinds of problems with the Strings and AtomStrings that are owned by its structures.
This was fixed by using WTF::DestructionThread::Main and I added assertions in the constructor and destructor.

The second was that WebCoreNSURLSessionDataTask's dealloc is casting _resource->client() to a WebCoreNSURLSessionDataTaskClient* and calling clearTask on it,
which writes null to that memory. Before r272908 it was a good assumption that the client was always a WebCoreNSURLSessionDataTaskClient, so there was no problem.
Since then, though, it could be a MediaResourceClient. The frustrating thing is that those two clients have the same size (32 bytes) so there was no out-of-bounds
memory writes, so ASAN wasn't seeing anything wrong. I was just seeing 0's written randomly to my client's data. I solved this by setting _resource to null when
the RangeResponseGenerator adopts the resource and client, so WebCoreNSURLSessionDataTask's dealloc won't do anything with it any more.

The third was that when the media stack calls WebCoreNSURLSessionDataTask's cancel, we were not removing the task from the RangeResponseGenerator's structures.
I noticed that when looking at logs, and added a call to removeTask.

Before fixing these three things, about 2/3 of the time I couldn't watch a real video on the real internet successfully. Now, I can about 95% of the time with my
test video, which responds with an HTTP 503 about 5% of the time, and there's nothing I can do about that. There were also some flaky tests that exercised these paths,
which have passed for me locally almost 2000 times without any failures.

  • platform/network/cocoa/RangeResponseGenerator.h:

(WebCore::RangeResponseGenerator::create):

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::RangeResponseGenerator):
(WebCore::RangeResponseGenerator::~RangeResponseGenerator):
(WebCore::RangeResponseGenerator::removeTask):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]):
(-[WebCoreNSURLSession rangeResponseGenerator]):
(-[WebCoreNSURLSessionDataTask _cancel]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

8:27 PM Changeset in webkit [273060] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Gardening most common EWS flakiness

Unreviewed test gardening.

Flakiness happening mostly on a single bot. Marking them temporarily
as flaky until investigation is performed.

  • TestWebKitAPI/glib/TestExpectations.json:
7:02 PM Changeset in webkit [273059] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] Child process environment on Windows can only contain strings
https://bugs.webkit.org/show_bug.cgi?id=222012
<rdar://problem/74437205>

Unreviewed test runner fix.

Use old Python 2 behavior of encoding when running with that version.

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

(Executive.popen):

6:48 PM Changeset in webkit [273058] by mark.lam@apple.com
  • 4 edits in trunk/Source

Build fix for Debug builds using --force-opt=O3.

Not reviewed.

#include a needed Inlines.h.

Source/WebCore:

  • editing/markup.cpp:

Source/WebKit:

  • Platform/IPC/JSIPCBinding.cpp:
6:33 PM Changeset in webkit [273057] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

_W3CTestConverter tests don't run on Windows
https://bugs.webkit.org/show_bug.cgi?id=221855

Reviewed by Jonathan Bedard.

In _W3CTestConverter it retrieves a relative path and then uses that to populate a
regular expression. On Windows the path separator is \ which causes a re.error due to
a bad escape. Normalize the path to use / in this code.

  • Scripts/webkitpy/w3c/test_converter.py:

(_W3CTestConverter.init):

  • Scripts/webkitpy/w3c/test_converter_unittest.py:

(W3CTestConverterTest.verify_test_harness_paths):

6:26 PM Changeset in webkit [273056] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, address post-landing review comments from Darin Adler for r273046.

  • wtf/Forward.h:
5:57 PM Changeset in webkit [273055] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

Add additions to LocalConnection.mm
https://bugs.webkit.org/show_bug.cgi?id=222029
<rdar://problem/69031303>

Reviewed by Jiewen Tan.

  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::createCredentialPrivateKey const):

5:46 PM Changeset in webkit [273054] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r273019.

GTK port layout tests are timint out.

Reverted changeset:

"[CoordinatedGraphics] The whole content is unnecessarily
repainted by animations in non-AC mode pages"
https://bugs.webkit.org/show_bug.cgi?id=221391
https://commits.webkit.org/r273019

5:24 PM Changeset in webkit [273053] by Alan Coon
  • 1 copy in tags/Safari-611.1.19

Tag Safari-611.1.19.

5:21 PM Changeset in webkit [273052] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.20

5:19 PM Changeset in webkit [273051] by Alan Coon
  • 46 edits in branches/safari-611-branch

Cherry-pick r272345. rdar://problem/74195248

[WebAuthn] Allow one user gesture free prompt for each navigation
https://bugs.webkit.org/show_bug.cgi?id=220897
<rdar://problem/73541303>

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::resetUserGestureRequirement):
  • Modules/webauthn/AuthenticatorCoordinator.h:
  • Modules/webauthn/AuthenticatorCoordinatorClient.h:
  • page/Quirks.cpp:
  • page/Quirks.cpp.h:
  • replay/UserInputBridge.cpp: (WebCore::UserInputBridge::loadRequest): (WebCore::UserInputBridge::reloadFrame): Adds the ability to reset the user gesture requirement flag for user initiated reloads and quirks.

Source/WebKit:

This is a quirk that only allows certain websites.

Covered by existing tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::filterTransports const): (WebKit::AuthenticatorManager::runPanel): (WebKit::AuthenticatorManager::runPresenter): Cancel the whole WebAuthn operation if no user gesture is indicated.
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::makeCredential): (WebKit::WebAuthenticatorCoordinator::getAssertion):
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: Set a boolean to indicate a free coupon for each navigation.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/ctap-hid-failure.https-expected.txt:
  • http/wpt/webauthn/ctap-hid-success.https-expected.txt:
  • http/wpt/webauthn/ctap-nfc-failure.https-expected.txt:
  • http/wpt/webauthn/idl.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:

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

5:13 PM Changeset in webkit [273050] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

media/track/track-in-band-style.html needs to be rebaselined after changes in r272055
https://bugs.webkit.org/show_bug.cgi?id=221835

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • media/track/track-in-band-style-expected.txt: rebaseline
5:10 PM Changeset in webkit [273049] by Aditya Keerthi
  • 22 edits
    5 adds in trunk

[iOS][FCR] Add new datalist dropdown for text inputs
https://bugs.webkit.org/show_bug.cgi?id=222008
<rdar://problem/74410513>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Add missing file to project.

  • css/formControlsIOS.css:

(input::-webkit-list-button):

Slightly reduce the size of the button.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isFocusingWithDataListDropdown const):

  • html/HTMLInputElement.h:
  • html/InputType.h:

(WebCore::InputType::isFocusingWithDataListDropdown const):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldOnlyShowDataListDropdownButtonWhenFocusedOrEdited const):

The new datalist appearance always has the dropdown button visible.

(WebCore::TextFieldInputType::dataListButtonElementWasClicked):

Ensure clicking the datalist button sets the selection to end of the
input. Set the isFocusingWithDataListDropdown flag so that the keyboard
view can be suppressed when showing the dropdown.

(WebCore::TextFieldInputType::isFocusingWithDataListDropdown const):

  • html/TextFieldInputType.h:

Source/WebKit:

The new datalist dropdown appears as a popover on both iPhones and iPads.
Previously, iPhones displayed a UIPickerView when tapping on the datalist
button, while iPads displayed a popover. Furthermore, the datalist button
was only visible after focusing the field. Now, the button can be used at
any time.

If the dropdown is presented while the software keyboard is visible, the
keyboard will be dismissed to create space for the dropdown. On devices
with a hardware keyboard, the dropdown is updated as characters are typed.

Tests: fast/forms/ios/form-control-refresh/datalist/datalist-show-hide.html

fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order.html

  • Platform/spi/ios/UIKitSPI.h:

Added SPI declarations to configure the presentation of the presented
dropdown and to check whether the keyboard is visible.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:

Added the isFocusingWithDataListDropdown member to control the presentation
of the keyboard when presenting a datalist dropdown.

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _selectDataListOption:]):

Added a testing hook to select an option from the presented dropdown.

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

(-[WKContentView shouldShowAutomaticKeyboardUI]):

Do not show the keyboard when a datalist dropdown is visible, unless a
hardware keyboard is attached.

(-[WKContentView updateFocusedElementFocusedWithDataListDropdown:]):

Toggle keyboard visibility depending on the visibility of the dropdown.

(-[WKContentView _selectDataListOption:]):
(-[WKContentView _setDataListSuggestionsControl:]):

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

(WebKit::WebDataListSuggestionsDropdownIOS::show):
(-[WKDataListSuggestionsControl initWithInformation:inView:]):
(-[WKDataListSuggestionsViewController reloadData]):
(-[WKDataListSuggestionsDropdown initWithInformation:inView:]):
(-[WKDataListSuggestionsDropdown updateWithInformation:]):
(-[WKDataListSuggestionsDropdown showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsDropdown invalidate]):
(-[WKDataListSuggestionsDropdown didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsDropdown dealloc]):
(-[WKDataListSuggestionsDropdown _displayWithActivationType:]):
(-[WKDataListSuggestionsDropdown _showSuggestions]):
(-[WKDataListSuggestionsDropdown _presentSuggestionsViewController]):
(-[WKDataListSuggestionsDropdown _updateTextSuggestions]):
(-[WKDataListSuggestionsDropdown _removeKeyboardDismissalObserver]):
(-[WKDataListSuggestionsDropdown presentationControllerDidDismiss:]):
(-[WKDataListSuggestionsDropdown adaptivePresentationStyleForPresentationController:traitCollection:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::activateDataListSuggestion):

Implemented this method to enable testing selection of datalist options
on iOS.

(WTR::UIScriptControllerIOS::isShowingDataListSuggestions const):

The new appearance does not use a UIPickerView, check for the presence
of the new view controller instead.

LayoutTests:

Modified two tests from fast/forms/datalist to work with the new
dropdown. These tests will replace the old ones once the form control
refresh is enabled by default.

  • fast/forms/ios/form-control-refresh/datalist/datalist-show-hide-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/datalist/datalist-show-hide.html: Added.
  • fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order.html: Added.
4:40 PM Changeset in webkit [273048] by Brent Fulgham
  • 4 edits in trunk

Follow-up fix after r273023.
https://bugs.webkit.org/show_bug.cgi?id=221641
<rdar://problem/74166568>

Reviewed by Chris Dumez.

Source/WebKit:

Tested by TestWebKitAPI.

Resource loading expects the passed ResourceResponse to have a certificateInfo object.
This patch ensures that one exists.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadSimulatedRequest): Ensure certificate info is included.

Tools:

Correct the string comparison for the back/forward list test.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:
4:32 PM Changeset in webkit [273047] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[Mac] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221100

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac/TestExpectations:
4:24 PM Changeset in webkit [273046] by Chris Dumez
  • 6 edits in trunk

DumpRenderTree's createWebViewAndOffscreenWindow() should return a RetainPtr
https://bugs.webkit.org/show_bug.cgi?id=222068

Reviewed by Sam Weinig.

Source/WTF:

  • wtf/Forward.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):
(createGlobalWebViewAndOffscreenWindow):

  • DumpRenderTree/mac/DumpRenderTreeMac.h:
  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

4:22 PM Changeset in webkit [273045] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ BigSur ] imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=221218

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac/TestExpectations:
4:19 PM Changeset in webkit [273044] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use a smart pointer for s_exception in objc_instance.mm
https://bugs.webkit.org/show_bug.cgi?id=222070

Reviewed by Geoffrey Garen.

  • bridge/objc/objc_instance.mm:

(globalException):
(ObjcInstance::setGlobalException):
(ObjcInstance::moveGlobalExceptionToExecState):

4:03 PM Changeset in webkit [273043] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ BigSur WK1] media/video-multiple-concurrent-playback.html is flakey text failing
https://bugs.webkit.org/show_bug.cgi?id=221368

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac-wk1/TestExpectations:
3:54 PM Changeset in webkit [273042] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Wk2 ] inspector/model/remote-object/array-large.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=221849

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
3:43 PM Changeset in webkit [273041] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Wk2 ] inspector/debugger/stepping/stepInto.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=221853

Unreviewed test gardneing.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
3:42 PM Changeset in webkit [273040] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Add SPI to allow apps to initiate highlight creation.
https://bugs.webkit.org/show_bug.cgi?id=222063

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _addAppHighlight]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
3:31 PM Changeset in webkit [273039] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use VTIsHardwareDecodeSupported to test VP9 decoder availability on IOS
https://bugs.webkit.org/show_bug.cgi?id=222040

Reviewed by Eric Carlson.

VTIsHardwareDecodeSupported is simpler to use than VTSelectAndCreateVideoDecoderInstance
and we want to restrict decoding for regular streaming to hardware anyway.
Manually tested.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::isVP9DecoderAvailable):

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

[ macOS ] media/webaudio-background-playback.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221935

Ureviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac/TestExpectations:
3:30 PM Changeset in webkit [273037] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Fix build break after r272948
https://bugs.webkit.org/show_bug.cgi?id=222061

Reviewed by Don Olmstead.

  • inspector/InspectorOverlay.cpp:
3:14 PM Changeset in webkit [273036] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219733
<rdar://problem/70628137>

Reviewed by Brent Fulgham.

Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process on iOS when the GPU process is enabled, since this is
not needed when allowing access to IOGPU. The IOGPU class is the superclass of AGXDeviceUserClient, and is the preferred IOKit
reference to use according to the Sandbox team.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:04 PM Changeset in webkit [273035] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ] fast/selectors/text-field-selection-window-inactive-text-shadow.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=221857

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
2:58 PM Changeset in webkit [273034] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[JSC] Rename entitlements for JITCage
https://bugs.webkit.org/show_bug.cgi?id=222077
<rdar://problem/74451093>

Reviewed by Mark Lam.

  • Scripts/process-entitlements.sh:

Source/JavaScriptCore:

  • entitlements.plist:
  • runtime/Options.cpp:

(JSC::canUseJITCage):

2:44 PM Changeset in webkit [273033] by achristensen@apple.com
  • 4 edits in trunk

Effectively revert r272908
https://bugs.webkit.org/show_bug.cgi?id=221072

Source/WebCore:

That revision has some issues, causing bug 222067 among others.
This effectively reverts it without pulling out all the infrastructure changes from that patch.
This will make it easier to see what changes when I fix it.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::runVideoTest):
(TestWebKitAPI::TEST):

2:41 PM Changeset in webkit [273032] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Metal-Angle on IOS fails in ValidateCreatePbufferFromClientBuffer
https://bugs.webkit.org/show_bug.cgi?id=222069

Reviewed by Simon Fraser.

Due to the differences between OpenGL and OpenGLES, WebCore
binds its IOSurfaces to a different texture target on macOS and iOS.
This isn't really needed with the Metal-ANGLE backend, but while we're
still supporting the OpenGL backend it is easier to have the Metal backend
use both targets.

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::generateConfigs): Look for EGL_TEXTURE_2D on iOS. Note
we don't have to worry about the weird "iOS App on macOS" situation since
that only applies to using OpenGLES on macOS. Yay for Metal!

2:38 PM Changeset in webkit [273031] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r272842): [ BigSur Wk2 ] imported/w3c/web-platform-tests/media-source/mediasource-seekable.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221965

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
1:53 PM Changeset in webkit [273030] by commit-queue@webkit.org
  • 22 edits
    1 copy in trunk/Tools

Add deprecation notices to believed-unused commands in webkit-patch
https://bugs.webkit.org/show_bug.cgi?id=222058

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-17
Reviewed by Jonathan Bedard.

This only adds notices, asking any users of the commands to comment on
https://bugs.webkit.org/show_bug.cgi?id=221991; it doesn't in any way break the commands,
and the deprecation is easily undone.

  • Scripts/webkitpy/tool/commands/adduserstogroups.py:
  • Scripts/webkitpy/tool/commands/analyzechangelog.py:
  • Scripts/webkitpy/tool/commands/applywatchlistlocal.py:
  • Scripts/webkitpy/tool/commands/bugfortest.py:
  • Scripts/webkitpy/tool/commands/bugsearch.py:
  • Scripts/webkitpy/tool/commands/commandtest.py:

(CommandsTest.assert_execute_outputs): Strip the warnings from unittest output to avoid changing every test
(CommandsTest._remove_deprecated_warning):

  • Scripts/webkitpy/tool/commands/deprecatedcommand.py: Added. Class decorator for Commands output notice.
  • Scripts/webkitpy/tool/commands/download.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/findusers.py:
  • Scripts/webkitpy/tool/commands/gardenomatic.py:
  • Scripts/webkitpy/tool/commands/openbugs.py:
  • Scripts/webkitpy/tool/commands/queries.py:
  • Scripts/webkitpy/tool/commands/rebaseline.py:
  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
  • Scripts/webkitpy/tool/commands/rebaselineserver.py:
  • Scripts/webkitpy/tool/commands/setupgitclone.py:
  • Scripts/webkitpy/tool/commands/suggestnominations.py:
  • Scripts/webkitpy/tool/commands/upload.py:
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests.run): Deprecate running tests through webkit-patch, even indirectly.

  • Scripts/webkitpy/tool/steps/runtests_unittest.py:

(RunTestsTest.test_webkit_run_unit_tests):

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(StepsTest.test_runtests_args):

1:51 PM Changeset in webkit [273029] by Truitt Savell
  • 15 edits in trunk/Source/WebKit

Unreviewed, reverting r272905.

caused
TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturingAndCalling
to timeout

Reverted changeset:

"ThreadMessageReceiverRefCounted subclasses are accessed in
non-thread-safe way"
https://bugs.webkit.org/show_bug.cgi?id=221891
https://commits.webkit.org/r272905

1:47 PM Changeset in webkit [273028] by commit-queue@webkit.org
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/preconnect convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221980
<rdar://problem/74399549>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-17
Reviewed by Jonathan Bedard.

  • http/tests/preconnect/link-header-rel-preconnect-http.html:
  • http/tests/preconnect/resources/header-preconnect.php: Removed.
  • http/tests/preconnect/resources/header-preconnect.py: Added.
1:46 PM Changeset in webkit [273027] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed attempt to fix GTK build after r273023.

  • UIProcess/API/APINavigation.cpp:
1:39 PM Changeset in webkit [273026] by Devin Rousso
  • 9 edits
    1 delete in trunk/Source/WebCore

[iOS] update media controls to use new SF Symbols
https://bugs.webkit.org/show_bug.cgi?id=222023

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/images/iOS/Airplay.svg:
  • Modules/modern-media-controls/images/iOS/EnterFullscreen.svg:
  • Modules/modern-media-controls/images/iOS/MediaSelector.svg:
  • Modules/modern-media-controls/images/iOS/MiniPipIn.svg: Removed.
  • Modules/modern-media-controls/images/iOS/Pause.svg:
  • Modules/modern-media-controls/images/iOS/PipIn.svg:
  • Modules/modern-media-controls/images/iOS/Play.svg:
  • Modules/modern-media-controls/images/iOS/SkipBack15.svg:
  • Modules/modern-media-controls/images/iOS/SkipForward15.svg:
1:38 PM Changeset in webkit [273025] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Remove missing files from WebKit Xcode project
<https://webkit.org/b/222054>

Reviewed by Youenn Fablet.

Found using tidy-Xcode-project-file --missing (see Bug
188754).

  • WebKit.xcodeproj/project.pbxproj:

(ConcreteShareableImageBuffer.h):

  • Remove references to this missing file. This regressed in r270470 when the file was removed.

(ImageDataReference.h):

  • Remove references to this missing file. This regressed in r272786 when the file was removed.

(NetworkCacheFileSystemCocoa.mm):

  • Remove references to this missing file. This regressed in r244921 when the file was removed.

(Recovered References):

  • Remove "Recovered References" folder and missing com.apple.WebKit.GPU.sb file that regressed in r253098. The file was added back separately in r253131.

(WebRTCSocket.h):
(WebRTCSocket.cpp):
(WebRTCNetwork.messages.in):

  • Remove references to these missing files. This apparently regressed in r261163 when the files were renamed to have a "Lib" prefix, but the old references were not removed.
1:36 PM Changeset in webkit [273024] by Devin Rousso
  • 7 edits in trunk/Source/WebCore

[iOS] the tracks button should be emphasized while the media controls context menu is showing
https://bugs.webkit.org/show_bug.cgi?id=221938

Reviewed by Eric Carlson.

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::~MediaControlsHost): Added.
(WebCore::MediaControlsHost::showMediaControlsContextMenu):
Modify MediaControlsHost::showMediaControlsContextMenu to return a bool indicating
whether the media controls contextmenu was able to be shown and also accept a VoidCallback
that's invoked when the media controls contextmenu is dismissed. Also keep track of whether
a media controls contextmenu is already showing so that the media controls don't attempt to
show another media controls contextmenu until the existing one has been dismissed.

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

(MediaController.prototype.get canShowMediaControlsContextMenu): Added.
(MediaController.prototype.showMediaControlsContextMenu): Added.
Add helper functions for querying whether the media controls contextmenu can be shown and
for actually showing the media controls contextmenu (based on the given Button's element
and contextMenuOptions) which will emphasize (.on = true) if showing the media controls
contextmenu was successful and de-emphasize (.on = false) once the media controls
contextmenu is dismissed.

  • Modules/modern-media-controls/media/overflow-support.js:

(OverflowSupport.prototype.buttonWasPressed):
(OverflowSupport.prototype.syncControl):

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.buttonWasPressed):
(TracksSupport.prototype.syncControl):
Use the MediaController helper functions instead of querying MediaControlsHost directly.

1:26 PM Changeset in webkit [273023] by Brent Fulgham
  • 13 edits in trunk

Expand stubs to thread actual NSURLRequest/NSURLResponse for the new simulated-request API
https://bugs.webkit.org/show_bug.cgi?id=221641
<rdar://problem/74166568>

Reviewed by Chris Dumez.

Source/WebKit:

Tested by new API Test LoadSimulatedRequestUpdatesBackForwardList.

This bug builds on the stubs created in Bug 221430 to use actual Request and
Response objects for simulated loads:

  1. Thread the NSURLRequest and NSURLResponse objects to the loading layer when handling loads for HTML strings and data.
  2. Loads via the simulated request API should cause entries to be added to the back/forward list.
  3. Create a new API Test to confirm the back/forward list works as expected.
  • UIProcess/API/APINavigation.cpp:

(API::SubstituteData::SubstituteData): New convenience constructor accepting a ResourceResponse.
(API::Navigation::Navigation): Ditto.

  • UIProcess/API/APINavigation.h:

(API::Navigation::create): Added.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadSimulatedRequest:withResponse:responseData:]): Switch from using the plain 'loadData'
method to the new 'loadSimulatedRequest' implementation.

  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::createSimulatedLoadWithDataNavigation): Added.

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

(WebKit::WebPageProxy::loadSimulatedRequest): New method to support the loadSimulatedRequest WKWebView API.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadSimulatedRequestAndResponse): Added message handler to perform a simulated load using
ResourceRequest and ResourceResponse objects.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Added LoadSimulatedRequestAndResponse IPC message.

Tools:

Add a new test to confirm that simulated loads work and are properly added to the
back-forward list.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:

(TEST):

1:15 PM Changeset in webkit [273022] by Chris Dumez
  • 3 edits in trunk/Tools

Use smart pointer for WebView ownership in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=222009

Reviewed by Geoffrey Garen.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(globalWebView):
(createWebViewAndOffscreenWindow):
(destroyGlobalWebViewAndOffscreenWindow):
(createGlobalWebViewAndOffscreenWindow):
(dumpRenderTree):
(runTest):
(destroyWebViewAndOffscreenWindow): Deleted.

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

12:33 PM Changeset in webkit [273021] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] UnicodeDecodeError when checking for an interpreter on Windows
https://bugs.webkit.org/show_bug.cgi?id=222059

Reviewed by Jonathan Bedard.

When calling open to determine which interpreter should be used Python 3 was throwing a
UnicodeDecodeError. On Python 3 an encoding of cp437 is specified since all characters are
defined in it. Python 2 does not have this problem and throws with a TypeError if an
encoding argument is passed.

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

(Executive.popen):

12:31 PM Changeset in webkit [273020] by dino@apple.com
  • 2 edits in trunk/Source/WTF

Use element fullscreen for video on some configurations
https://bugs.webkit.org/show_bug.cgi?id=222048
<rdar://problem/74439214>

Reviewed by Sam Weinig.

  • wtf/PlatformEnableCocoa.h:
12:11 PM Changeset in webkit [273019] by Fujii Hironori
  • 4 edits in trunk

[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391
Source/WebKit:

Reviewed by Carlos Garcia Campos.

When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages

If triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.

LayoutTests:

<rdar://problem/74207093>

Reviewed by Carlos Garcia Campos.

  • platform/gtk/TestExpectations: Unmarked tests for Bug 222026.
11:57 AM Changeset in webkit [273018] by lingho@apple.com
  • 2 edits in trunk/Websites/webkit.org

WebKit nighly archives page not working for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222016
<rdar://problem/74037376>

Reviewed by Alexey Proskuryakov.

  • wp-content/themes/webkit/build-archives.php:
11:55 AM Changeset in webkit [273017] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] Catch winerror.ERROR_INVALID_FUNCTION in ServerProcess
https://bugs.webkit.org/show_bug.cgi?id=222047

Reviewed by Jonathan Bedard.

The catch statement in _non_blocking_read_win32 throws a TypeError because the 'error'
object is not subscriptable. The block assumed a pywintypes.error so it was modified
to catch that exception. Using the proper type stopped that occurance but surfaced
additional issues.

When shutting down the server process the call to win32pipe.PeekNamedPipe can throw a
winerror.ERROR_INVALID_FUNCTION. There isn't really any documentation on MSDN pointing to
why this error would be thrown. ERROR_INVALID_FUNCTION seems to be around device driver
issues so the best guess is that the handle is no longer valid at this point of execution.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._non_blocking_read_win32):

11:23 AM Changeset in webkit [273016] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r272625): Fix missing headers in Xcode project
<https://webkit.org/b/222052>

Reviewed by Eric Carlson.

  • WebKit.xcodeproj/project.pbxproj:
  • Manually reconstruct missing PBXBuildFile entries for Xcode project.
11:09 AM Changeset in webkit [273015] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Failure to retrieve commit in EWS (Investigation)
https://bugs.webkit.org/show_bug.cgi?id=222050
<rdar://problem/74439957>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.request): Increase logging.

11:01 AM Changeset in webkit [273014] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[iOS][FCR] Add new look for input type=date
https://bugs.webkit.org/show_bug.cgi?id=222013
<rdar://problem/74415329>

Reviewed by Wenson Hsieh.

The new appearance is based on UIDatePicker.

  • css/formControlsIOS.css:

(input:matches([type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"])):
(input::-webkit-date-and-time-value):

  • rendering/RenderThemeIOS.mm:

(WebCore::adjustInputElementButtonStyle):

No additional padding is neccessary for the new appearance.

(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):

Do not paint any additional glyphs.

10:38 AM Changeset in webkit [273013] by Megan Gardner
  • 11 edits
    3 copies in trunk/Source

Change App Highlight delegate to pass more information about the highlight for display.
https://bugs.webkit.org/show_bug.cgi?id=222014

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _storeAppHighlight:]):

  • UIProcess/API/Cocoa/_WKAppHighlightDelegate.h:
  • WebKit.xcodeproj/project.pbxproj:
10:22 AM Changeset in webkit [273012] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ BigSur ] platform/mac-bigsur/media/media-webm-no-duration.html is constantly text failing
https://bugs.webkit.org/show_bug.cgi?id=221973

Unreviewed test gardening.

Patch by Robert Jenner <jenner@apple.com> on 2021-02-17

  • platform/mac/TestExpectations:
9:58 AM Changeset in webkit [273011] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test to exercise CSS scroll snap in an independently scrollable body
https://bugs.webkit.org/show_bug.cgi?id=222031

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-17
Reviewed by Simon Fraser.

  • css3/scroll-snap/scroll-snap-on-independently-scrollable-body-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-on-independently-scrollable-body.html: Added.
9:53 AM Changeset in webkit [273010] by Alan Coon
  • 1 copy in tags/Safari-611.1.18

Tag Safari-611.1.18.

9:50 AM Changeset in webkit [273009] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.19

9:39 AM Changeset in webkit [273008] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

[Python-3] Child process environment on Windows can only contain strings
https://bugs.webkit.org/show_bug.cgi?id=222012

Reviewed by Jonathan Bedard.

When running Python 3 on Windows a 'TypeError: environment can only contain strings' is
thrown during execution of run-webkit-tests. If the Executive is running on native Windows
it converts the keys and values of the environment dictionary into strings and passes them
into the popen call.

In ServerProcess it was modifying the environment as well. This code was removed so
Executive is the only place that handles this issue.

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

(Executive.popen):

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.init):

9:36 AM Changeset in webkit [273007] by Devin Rousso
  • 3 edits in trunk/Source/WebKit

[iOS] Add support for additional accessibility image extraction contextmenu actions
https://bugs.webkit.org/show_bug.cgi?id=222022
<rdar://problem/74157750>

Reviewed by Tim Horton.

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

(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

9:35 AM Changeset in webkit [273006] by Devin Rousso
  • 6 edits in trunk

[iOS] don't "promote" media controls contextmenu items if they are the only item being shown
https://bugs.webkit.org/show_bug.cgi?id=221939

Reviewed by Eric Carlson.

Source/WebKit:

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]):

LayoutTests:

  • media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu.html:
  • media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api.html:
  • media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api-expected.txt:
9:33 AM Changeset in webkit [273005] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Support unicode when printing changelogs
https://bugs.webkit.org/show_bug.cgi?id=222044
<rdar://problem/74435276>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:

(Find.main): Explicitly print unicode.

9:32 AM Changeset in webkit [273004] by Devin Rousso
  • 22 edits
    1 copy
    3 adds in trunk

[iOS] Add an overflow button that's shown when controls are dropped so that it's still possible to trigger the dropped button's actions
https://bugs.webkit.org/show_bug.cgi?id=221937
<rdar://problem/20968078>

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.cpp:
  • Modules/mediacontrols/MediaControlsHost.h:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):
Use a JSON options argument instead of a defined dictionary so that it's easier to add
new values and is more flexible with the types of values.

  • Modules/modern-media-controls/controls/overflow-button.js: Added.

(OverflowButton):
(OverflowButton.prototype.get visible):
(OverflowButton.prototype.set visible):
(OverflowButton.prototype.get contextMenuOptions):
(OverflowButton.prototype.addContextMenuOptions):
(OverflowButton.prototype.clearContextMenuOptions):
(OverflowButton.prototype.set defaultContextMenuOptions):

  • Modules/modern-media-controls/media/overflow-support.js: Copied from Source/WebCore/Modules/modern-media-controls/controls/tracks-button.js.

(OverflowSupport.prototype.get mediaEvents):
(OverflowSupport.prototype.get control):
(OverflowSupport.prototype.buttonWasPressed):
(OverflowSupport.prototype.syncControl):

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

(InlineMediaControls.prototype.layout):
(InlineMediaControls.prototype._rightContainerButtons):
(InlineMediaControls.prototype._droppableButtons):
Create an OverflowButton that mainains a JSON object of contextMenuOptions which are
passed to MediaControlsHost::showMediaControlsContextMenu. Whenever a Button is dropped,
add its get contextMenuOptions to the OverflowButton's contextMenuOptions so that when
the OverflowButton is pressed it shows a contextmenu with actions for all dropped buttons.

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

(Button.prototype.get contextMenuOptions): Added.

  • Modules/modern-media-controls/controls/tracks-button.js:

(TracksButton.prototype.get contextMenuOptions): Added.

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.buttonWasPressed):
Add a get contextMenuOptions to the base Button class so that all buttons are able to
be merged into OverflowButton.

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

(MediaControls):

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

(MediaController.prototype._supportingObjectClasses):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript):

  • en.lproj/modern-media-controls-localized-strings.js:
  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/images/iOS/Overflow.svg: Added.
  • Modules/modern-media-controls/images/macOS/Overflow.svg: Added.
  • Modules/modern-media-controls/js-files:
  • WebCore.xcodeproj/project.pbxproj:

Add new files, icons, and text.

LayoutTests:

  • media/modern-media-controls/audio/audio-controls-buttons.html:
  • media/modern-media-controls/audio/audio-controls-buttons-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt:
9:27 AM Changeset in webkit [273003] by Antti Koivisto
  • 5 edits
    2 adds in trunk

Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747

Reviewed by Zalan Bujtas.

Source/WebCore:

We can create unadjusted styles via keyframe animations and those may cause problems in rendering.

Test: fast/animation/animation-position-crash.html

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustAnimatedStyle):

Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.

  • style/StyleAdjuster.h:
  • style/StyleTreeResolver.cpp:

Always use style adjuster for keyframe animation.

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

  • fast/animation/animation-position-crash-expected.html: Added.
  • fast/animation/animation-position-crash.html: Added.
9:10 AM Changeset in webkit [273002] by Philippe Normand
  • 3 edits in trunk/LayoutTests

Unreviewed, GLib/GTK test expectations gardening

  • platform/glib/TestExpectations: These tests are expected to fail with GPU process and on

Mac, but pass on GTK and WPE

  • platform/gtk/TestExpectations: Unflag

http/tests/inspector/network/intercept-request-properties.html passing since r272582.

8:50 AM Changeset in webkit [273001] by graouts@webkit.org
  • 17 edits in trunk

CSS properties that disallow negative values should not animate to negative values
https://bugs.webkit.org/show_bug.cgi?id=222034

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-left-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-right-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-interpolation-expected.txt:

Source/WebCore:

Some CSS properties disallow negative values, but the blending code used for animations allows them.
We now add a new animation wrapper for those values, NonNegativeLengthPropertyWrapper, which will clamp
the blended value to 0 if negative. This new wrapper is used for the padding properties, width, height,
min-width, min-height and shape-margin.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::NonNegativeLengthPropertyWrapper::NonNegativeLengthPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

LayoutTests:

Mark WPT output changes for a couple tests with platform-specific results.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
8:23 AM Changeset in webkit [273000] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

commit-queue should retry when it fails to commit
https://bugs.webkit.org/show_bug.cgi?id=222038

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(PushCommitToWebKitRepo):
(PushCommitToWebKitRepo.evaluateCommand):

  • CISupport/ews-build/steps_unittest.py:
8:16 AM Changeset in webkit [272999] by pvollan@apple.com
  • 11 edits in trunk/Source

[macOS] Deny mach-lookup to the fonts service
https://bugs.webkit.org/show_bug.cgi?id=221610
<rdar://problem/69168609>

Reviewed by Brent Fulgham.

Source/WebCore:

Disable global font prewarming when the platform has a static font registry. Font prewarming will attempt to communicate with the font daemon. Since this usually
will take place before the first page load where the decision about using the static registry is made, and this change by default blocks access to the font daemon,
the system will automatically choose to use the static registry. This might be the wrong choice, and it is currently not possible to switch to not use the static
registry at a later point.

No new tests, covered by existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::prewarmGlobally):

Source/WebKit:

This change will by default block access to the font daemon when the platform has support for a static font registry. When the client prefers
to allow user installed fonts, or Safari Reader configuration has been customized, access to the font daemon will still be allowed by issuing
an extension to the font daemon.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::customizedReaderConfiguration):
(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::~WebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Add HAVE define for platform static font registry.

  • wtf/PlatformHave.h:
7:56 AM Changeset in webkit [272998] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, silence -Wimplicit-fallthrough warning
https://bugs.webkit.org/show_bug.cgi?id=222010
<rdar://problem/74422474>

Normally I use RELEASE_ASSERT_NOT_REACHED() for this, but in this massive switch we have
previously used ASSERT_NOT_REACHED() plus return nullptr, so let's do that instead.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-17

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

7:49 AM Changeset in webkit [272997] by wenson_hsieh@apple.com
  • 24 edits in trunk

[macOS] Introduce a new context menu item to preview images
https://bugs.webkit.org/show_bug.cgi?id=221917
<rdar://problem/74363578>

Reviewed by Darin Adler and Tim Horton.

Source/WebCore:

Add plumbing for a new context menu tag, ContextMenuItemTagRevealImage, which will be used to invoke a special
type of QuickLook preview for extracted images when the relevant accessibility features are enabled.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::contextMenuItemTagRevealImage):

Source/WebKit:

Add plumbing to support the ContextMenuItemTagRevealImage action, as well as some WebKitAdditions extension
points. See below for more details. This patch was mostly written by Devin Rousso, with some adjustments from
me.

  • Configurations/WebKit.xcconfig:

Link against UniformTypeIdentifiers.

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

(WebKit::toAPI):
(WebKit::toImpl):

Add kWKContextMenuItemTagRevealImage, and add helpers to convert from WebCore::ContextMenuItemTagRevealImage
to kWKContextMenuItemTagRevealImage and vice versa.

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::webHitTestResultData):

Add a non-const version of webHitTestResultData(), so that we can generate a CGImage using
WebHitTestResultData's bitmap data.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::handleContextMenuRevealImage):

Add a helper method, handleContextMenuRevealImage, to handle the new context menu action; additionally,
introduce another helper method, revealExtractedImageInPreviewPanel, to handle the Mac-specific
QLPreviewPanel logic when invoking the new item. See WebKitAdditions changes for more detail.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):

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

(WebKit::menuItemIdentifier):

Source/WebKitLegacy/mac:

Legacy WebKit won't be supporting this new context menu action; see other ChangeLog entries for more details.

  • WebView/WebHTMLView.mm:

(toTag):

Source/WTF:

Add a new soft-linking macro to optionally link against an umbrella framework.

  • wtf/cocoa/SoftLinking.h:

Tools:

Rebaseline an existing API test, since ContextMenuItemTagRevealImage is now the last valid enum.

  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp:

(TestWebKitAPI::TEST):

6:16 AM Changeset in webkit [272996] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[Flatpak SDK] Script 'webkit-flatpak-run-nightly' expects different format for a built product name
https://bugs.webkit.org/show_bug.cgi?id=221950

Reviewed by Philippe Normand.

The name format for uploaded built products for WPE and GTK has
changed. Now the format is: '[release|debug]_rXXXXXX.zip'. The script
is still expecting the former name format, so it needs to be updated.

  • Scripts/webkit-flatpak-run-nightly:
5:53 AM Changeset in webkit [272995] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Deny access to unused IOKit classes
https://bugs.webkit.org/show_bug.cgi?id=221969
<rdar://problem/74395400>

Reviewed by Brent Fulgham.

Deny access to the IOKit classes AppleIntelMEUserClient and AppleSNBFBUserClient when the GPU process is enabled.

  • WebProcess/com.apple.WebProcess.sb.in:
5:52 AM Changeset in webkit [272994] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

RemoteMediaPlayerManager does not need to support media stream code path
https://bugs.webkit.org/show_bug.cgi?id=221956

Reviewed by Eric Carlson.

RemoteMediaPlayerManager does not support isMediaStream code path so it is simpler to return IsNotSupported instead of MaybeSupported.

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs):

5:00 AM Changeset in webkit [272993] by Andres Gonzalez
  • 15 edits
    2 adds in trunk

Support aria-errormessage on iOS.
https://bugs.webkit.org/show_bug.cgi?id=221975
<rdar://problem/74397704>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-errormessage.html

  • Added the method accessibilityErrorMessageElements to the WebAccessibilityObjectWrapper

interface on iOS.

  • Some code cleanup.
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::elementsFromAttribute const): Minor code cleanup.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]): Added.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertToNSArray): Minor code cleanup.

Tools:

  • Added AccessibilityUIElement::errorMessageElements on iOS and MacOS,

which is used in the new test.

  • For completion, added implementation for ariaErrorMessageElementAtIndex

on iOS, which is not in use at the moment.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::errorMessageElements const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::errorMessageElements const): Added.
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): Added.
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): Added.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::errorMessageElements const): Added.

LayoutTests:

  • accessibility/aria-errormessage-expected.txt: Added.
  • accessibility/aria-errormessage.html: Added.
  • platform/gtk/TestExpectations: Skip.
  • platform/ios/TestExpectations: Pass.
  • platform/mac-wk1/TestExpectations: Skip.
  • platform/win/TestExpectations: Skip.
2:37 AM Changeset in webkit [272992] by commit-queue@webkit.org
  • 4 edits in trunk

Improve percentage height in shouldComputeLogicalWidthFromAspectRatio
https://bugs.webkit.org/show_bug.cgi?id=221405

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-17
Reviewed by Simon Fraser.

Source/WebCore:

When checking whether the percentage logical height can be used to
calculate the logical width, we need to also check that it is resolvable.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):

LayoutTests:

Enable some tests that pass now.

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

REGRESSION(r272636) [GTK] Crash and failures in API test /WebKit2Gtk/TestResources
https://bugs.webkit.org/show_bug.cgi?id=221672

Reviewed by Michael Catanzaro.

Source/WebKit:

Since r272636 it's no longer possible to differentiate between async reply being cancelled or data just being
empty for WebPageProxy data completion handlers. Use Optional to indicate that the reply was canlled when its
data is nullopt, and ensure we always provide a valid API::Data object when data is not nullopt.

  • Scripts/webkit/messages.py: Handle the special case of SharedBufferDataReference as Optional.
  • UIProcess/API/glib/WebKitWebResource.cpp:

(resourceDataCallback): Bring back the cancellation error handling.

  • UIProcess/WebPageProxy.cpp:

(WebKit::CompletionHandler<void):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):

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

Tools:

  • TestWebKitAPI/glib/TestExpectations.json:
1:38 AM Changeset in webkit [272990] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Regression(r268097): Calling processDidTerminate delegate asynchronously is risky compatibility-wise
https://bugs.webkit.org/show_bug.cgi?id=222011

Reviewed by Carlos Garcia Campos.

Calling processDidTerminate delegate asynchronously like we did in r268097 is risky compatibility-wise.
This caused breakage in at least 2 client applications. While this can be dealt with on the client side,
it would be better to fix what r268097 was trying to fix without making the delegate call asynchronous.
The reason calling the delegate asynchronously is risky is because some view state may have time to get
reset by the time the client gets notified on the crash, potentially confusing the crash handling logic
in the client.

No new tests, covered by WKNavigation.ReloadRelatedViewsInProcessDidTerminate API test that is
still passing even though the delegate call is no longer asynchronous.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::resetStateAfterProcessTermination):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

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

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::requestTermination):

1:22 AM Changeset in webkit [272989] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Build fix for non MEDIA_STREAM enabled ports after r272858
https://bugs.webkit.org/show_bug.cgi?id=222030

Unreviewed.

  • WebProcess/GPU/webrtc/MediaRecorderProvider.h:

(WebKit::MediaRecorderProvider::MediaRecorderProvider):
Do not declare m_webPage in configs that do not use it.

Feb 16, 2021:

11:21 PM Changeset in webkit [272988] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[GPUP] Video as image source triggers IOSurface readback (unnecessarily slow)
https://bugs.webkit.org/show_bug.cgi?id=221993

Reviewed by Tim Horton.

Use IOSurface::sinkIntoImage() instead of IOSurface::createImage() to avoid expensive GPU readback.

Manually tested.

  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

10:47 PM Changeset in webkit [272987] by weinig@apple.com
  • 15 edits in trunk/Source

Add CSS property to enable separated bit on GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=222010

Reviewed by Dean Jackson.

Add internal access to the separated bit on graphics layer via a
new "optimized-3d" transform-style. This is all off by default and
is expected to change, but is useful and non-invasive for experimentation.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TransformStyle3D const):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.h:

Plumb optimized-3d all the way to graphics layer. Currently we are just mapping
optimized-3d to separated, but I expect to change this a bit to make it a bit
more useful for experimentation.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnable.h:
10:16 PM Changeset in webkit [272986] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r272476.

GTK port is crashing.

Reverted changeset:

"[CoordinatedGraphics] The whole content is unnecessarily
repainted by animations in non-AC mode pages"
https://bugs.webkit.org/show_bug.cgi?id=221391
https://commits.webkit.org/r272476

10:16 PM Changeset in webkit [272985] by Chris Dumez
  • 5 edits in trunk/Source/WTF

Clients of ARC-dependent WTF functions may get incorrect/crashy behavior
https://bugs.webkit.org/show_bug.cgi?id=222004
<rdar://73620184>

Reviewed by Geoffrey Garen.

ARC is enabled in WTF but not in our other frameworks. This can lead to bad/crashy
behavior. To address the issue, renames functions like adoptNS() to adoptNSArc()
when ARC is enabled, via a #define.

This patch was written by Geoff Garen.

  • wtf/BlockPtr.h:
  • wtf/OSObjectPtr.h:
  • wtf/RetainPtr.h:
  • wtf/WeakObjCPtr.h:
10:10 PM Changeset in webkit [272984] by Carlos Garcia Campos
  • 8 edits in trunk/Tools

[GTK][WPE] Reduce the use of SoupURI in unit tests in preparation for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=221963

Reviewed by Adrian Perez de Castro.

Now that URL is in WTF we can just use it instead.

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationRequest):
(ProxyAuthenticationTest::ProxyAuthenticationTest):
(ProxyAuthenticationTest::proxyServerPortAsString):
(testWebViewAuthenticationProxy):
(testWebViewAuthenticationProxyHTTPS):

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(testLoadFailedWithTLSErrors):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionPageID):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(ProxyTest::ProxyTest):
(ProxyTest::proxyServerPortAsString):
(testWebContextProxySettings):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(setInitialNotificationPermissionsAllowedCallback):
(setInitialNotificationPermissionsDisallowedCallback):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::run):
(WebKitTestServer::addWebSocketHandler):
(WebKitTestServer::removeWebSocketHandler):
(WebKitTestServer::getWebSocketURIForPath const):
(WebKitTestServer::getURIForPath const):
(WebKitTestServer::port const):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:

(WebKitTestServer::baseURL const):
(WebKitTestServer::baseWebSocketURL const):

9:54 PM Changeset in webkit [272983] by Manuel Rego Casasnovas
  • 32 edits
    1 copy
    1 add in trunk

[selectors] :focus-visible parsing and experimental flag
https://bugs.webkit.org/show_bug.cgi?id=221895

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations as now :focus-visible is a valid selector.

  • web-platform-tests/css/selectors/focus-in-focus-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-in-focusin-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-002-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-003-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-004-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-005-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-006-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-007-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-009-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-010-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-012-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-015-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-016-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-017-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-018-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-focus-visible-expected.txt:

Source/WebCore:

Add parsing for :focus-visible pseudo class, it'll only be enabled if the experimental feature flag is enabled.

Test: imported/w3c/web-platform-tests/css/selectors/parsing/parse-focus-visible.html

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFocusVisiblePseudoClass):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSSelectorParser.cpp:

(WebCore::isUserActionPseudoClass):
(WebCore::CSSSelectorParser::consumePseudo):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add experimental feature flag.

LayoutTests:

  • platform/ios/TestExpectations: Skip test that timeouts in iOS platform.
  • platform/mac/imported/w3c/web-platform-tests/css/selectors/focus-visible-009-expected.txt:

Slightly different rebaseline due to default outline color on Mac.

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

Fix typo in CSSProperties for "text-align" -- should be "url", not "ur"
https://bugs.webkit.org/show_bug.cgi?id=222027

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-02-16
Reviewed by Simon Fraser.

Fix typo for "text-align" property. Key should be "url", but is
instead "ur".

  • css/CSSProperties.json: Fix typo -- "ur" --> "url"
9:18 PM Changeset in webkit [272981] by commit-queue@webkit.org
  • 208 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/resources/redirect.php to Python
https://bugs.webkit.org/show_bug.cgi?id=221784
<rdar://problem/74257227>

Patch by Jonathan Bedard <JonWBedard@gmail.com> on 2021-02-16
Reviewed by Dewei Zhu.

  • http/tests/appcache/decide-navigation-policy-after-delay.html:
  • http/tests/appcache/interrupted-update.html:
  • http/tests/appcache/main-resource-redirect-with-sw.html:
  • http/tests/contentextensions/main-resource-redirect-error-expected.txt:
  • http/tests/contentextensions/main-resource-redirect-error.html:
  • http/tests/contentextensions/sync-xhr-redirection-blocked-expected.txt:
  • http/tests/contentextensions/sync-xhr-redirection-blocked.html:
  • http/tests/contentfiltering/allow-after-redirect.html:
  • http/tests/contentfiltering/block-after-redirect.html:
  • http/tests/contentfiltering/load-substitute-data-from-appcache.html:
  • http/tests/contentfiltering/modify-redirect-request-url.html:
  • http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect.html:
  • http/tests/cookies/same-site/fetch-after-top-level-same-origin-redirect.html:
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html:
  • http/tests/cookies/same-site/user-load-cross-site-redirect.php:
  • http/tests/css/css-imports-redirect-cycle.css:
  • http/tests/css/css-imports-url-fragment.css:
  • http/tests/download/anchor-download-redirect.html:
  • http/tests/globalhistory/history-delegate-basic-302-redirect-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-302-redirect.html:
  • http/tests/globalhistory/history-delegate-basic-refresh-redirect-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-refresh-redirect.html:
  • http/tests/misc/form-submit-file-cross-site-redirect.html:
  • http/tests/misc/webtiming-two-redirects.php:
  • http/tests/plugins/get-url-redirect-notify.html:
  • http/tests/resources/redirect.php: Removed.
  • http/tests/resources/redirect.py: Added.

(addCacheControl):

  • http/tests/security/beforeload-iframe-server-redirect.html:
  • http/tests/security/blocked-on-redirect-expected.txt:
  • http/tests/security/blocked-on-redirect.html:
  • http/tests/security/cannot-read-cssrules-redirect.html:
  • http/tests/security/canvas-remote-read-data-url-image-redirect.html:
  • http/tests/security/canvas-remote-read-redirect-to-remote-image.html:
  • http/tests/security/canvas-remote-read-remote-image-redirect.html:
  • http/tests/security/canvas-remote-read-remote-video-redirect.html:
  • http/tests/security/contentSecurityPolicy/audio-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-secure-image-after-upgrade-redirect.html:
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked2.html:
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked3.html:
  • http/tests/security/contentSecurityPolicy/font-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/font-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src.html:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2.html:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src.html:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2.html:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src.html:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src.html:
  • http/tests/security/contentSecurityPolicy/image-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/image-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked2.html:
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked3.html:
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.php:
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-blocked.php:
  • http/tests/security/contentSecurityPolicy/script-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/script-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-after-redirect.https.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-http-to-https-script.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-https-to-http-script.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-sync-xhr-in-main-frame-window.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-image-after-redirect.html:
  • http/tests/security/contentSecurityPolicy/video-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-redirect-allowed-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html:
  • http/tests/security/cors-post-redirect-301.html:
  • http/tests/security/cors-post-redirect-302.html:
  • http/tests/security/cors-post-redirect-303.html:
  • http/tests/security/cors-post-redirect-307-pson.html:
  • http/tests/security/cors-post-redirect-307.html:
  • http/tests/security/cors-post-redirect-308.html:
  • http/tests/security/cross-origin-css-1-expected.txt:
  • http/tests/security/cross-origin-css-1.html:
  • http/tests/security/cross-origin-css-2-expected.txt:
  • http/tests/security/cross-origin-css-2.html:
  • http/tests/security/cross-origin-css-3.html:
  • http/tests/security/cross-origin-css-5-expected.txt:
  • http/tests/security/cross-origin-css-5.html:
  • http/tests/security/cross-origin-css-6.html:
  • http/tests/security/cross-origin-css-in-quirks-1-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-1.html:
  • http/tests/security/cross-origin-css-in-quirks-2-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-2.html:
  • http/tests/security/cross-origin-css-in-quirks-3.html:
  • http/tests/security/cross-origin-css-in-quirks-5-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-5.html:
  • http/tests/security/cross-origin-css-in-quirks-6.html:
  • http/tests/security/cross-origin-script-error-event-redirected.html:
  • http/tests/security/cross-origin-script-window-onerror-redirected.html:
  • http/tests/security/load-image-after-redirection-2-expected.txt:
  • http/tests/security/load-image-after-redirection-2.html:
  • http/tests/security/load-image-after-redirection-expected.txt:
  • http/tests/security/load-image-after-redirection.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.https.txt:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.txt:
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt:
  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
  • http/tests/security/mixedContent/resources/frame-with-insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-script-redirects-to-basic-auth-secure-script.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
  • http/tests/security/mixedContent/resources/frame-with-programmatically-added-insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-script.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-image-secure-cookie-block.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-image-secure-cookie.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-script.html:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https-expected.txt:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/redirect-BLOCKED-to-localURL.html:
  • http/tests/security/regress-52192.html:
  • http/tests/security/resources/cross-origin-xsl-redirect.xml:
  • http/tests/security/resources/referrer-policy-redirect-link-downgrade.html:
  • http/tests/security/resources/referrer-policy-redirect-link.html:
  • http/tests/security/resources/referrer-policy-redirect.html:
  • http/tests/security/resources/xsl-using-document-redirect.xsl:
  • http/tests/security/resources/xsl-using-external-entity-redirect.xsl:
  • http/tests/security/same-origin-css-1-expected.txt:
  • http/tests/security/same-origin-css-1.html:
  • http/tests/security/same-origin-css-2-expected.txt:
  • http/tests/security/same-origin-css-2.html:
  • http/tests/security/same-origin-css-3.html:
  • http/tests/security/same-origin-css-5-expected.txt:
  • http/tests/security/same-origin-css-5.html:
  • http/tests/security/same-origin-css-6.html:
  • http/tests/security/same-origin-css-in-quirks.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-1.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-3.html:
  • http/tests/security/shape-image-cors-redirect.html:
  • http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html:
  • http/tests/security/stylesheet-href-redirect-expected.txt:
  • http/tests/security/stylesheet-href-redirect.html:
  • http/tests/security/worker-cross-origin-expected.txt:
  • http/tests/security/worker-cross-origin.html:
  • http/tests/security/worker-same-origin-expected.txt:
  • http/tests/security/worker-same-origin.html:
  • http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt:
  • http/tests/security/xssAuditor/block-does-not-leak-referrer.html:
  • http/tests/security/xssAuditor/script-tag-open-redirect.html:
  • http/tests/security/xssAuditor/script-tag-redirect.html:
  • http/tests/workers/resources/worker-importScripts-error.js:
  • http/tests/workers/resources/worker-importScripts.js:
  • http/tests/workers/resources/worker-redirect.js:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin.html:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects.html:
  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-2.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-post-sync.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-post.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-sync-double.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-sync.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html:
  • http/tests/xmlhttprequest/redirect-cross-origin.html:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html:
  • platform/gtk/http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt:
  • platform/mac-wk1/http/tests/security/worker-cross-origin-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • platform/win/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • platform/win/http/tests/security/worker-cross-origin-expected.txt:
  • platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • platform/wk2/http/tests/security/blocked-on-redirect-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
8:51 PM Changeset in webkit [272980] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove unnecessary hack for iOS7
https://bugs.webkit.org/show_bug.cgi?id=222017

Reviewed by Mark Lam.

Remove this symbol hack since we are not supporting iOS7.

  • API/JSBase.cpp:

(JSGetMemoryUsageStatistics):

8:41 PM Changeset in webkit [272979] by Lauro Moura
  • 3 edits
    4 adds in trunk/LayoutTests

[GLIB] Gardening GTK crashes and canvas failures

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.broken-expected.txt: Added

after r272776.

  • platform/gtk/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent-expected.txt:

Ditto.

8:20 PM Changeset in webkit [272978] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Unreviewed, build fix after r272925

  • UIProcess/ios/WKContentViewInteraction.mm:
8:10 PM Changeset in webkit [272977] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

REGRESSION (r266695): Unable to scroll the menu in 北京114预约挂号 official account - WeChat
https://bugs.webkit.org/show_bug.cgi?id=221948
<rdar://problem/71661277>

Reviewed by Simon Fraser.

r266695 caused this to regress, but it actually is a progression, because all browsers agree
that this content, as it exists in the app, doesn't scroll. So, we don't want to revert the
change itself, because it's a good change, but we also want to make sure that WeChat continues
to work. So, we can temporarily quirk one particular element in the WeChat app, until the
the content can be fixed (<rdar://problem/74377902>).

Because this is a WeChat-specific quirk, it is untestable. I tested manually.

  • page/Quirks.cpp:

(WebCore::Quirks::needsWeChatScrollingQuirk const):

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

(WebCore::IOSApplication::isWechat):

  • platform/cocoa/VersionChecks.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):

7:47 PM Changeset in webkit [272976] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Grids with overlays that disappear and reappear remain checked in Layout pane, toggling hits assertion
https://bugs.webkit.org/show_bug.cgi?id=221919
<rdar://problem/74363006>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-16
Reviewed by Devin Rousso.

When a DOMNode's grid layout context changes to something else,
its corresponding shown grid overlay is automatically hidden on the backend.
The frontend needs to update its mapping of nodes to overlays and notify listeners of the change in state.

  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager):
(WI.OverlayManager.prototype._handleLayoutContextTypeChanged):

6:42 PM Changeset in webkit [272975] by pvollan@apple.com
  • 9 edits in trunk/Source/WebKit

[iOS] Remove access to the Mobile asset service
https://bugs.webkit.org/show_bug.cgi?id=221959
<rdar://problem/73362858>

Reviewed by Brent Fulgham.

Remove access to the Mobile asset service in the WebContent process, since there are no longer reports of this being in use.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::nonBrowserServices):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::grantAccessToAssetServices):

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::grantAccessToAssetServices):

6:34 PM Changeset in webkit [272974] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove access to IOAccelerationUserClient
https://bugs.webkit.org/show_bug.cgi?id=221967
<rdar://problem/70495933>

Reviewed by Brent Fulgham.

Remove access to IOAccelerationUserClient in the WebContent process on macOS when the GPU process is enabled.

  • WebProcess/com.apple.WebProcess.sb.in:
6:33 PM Changeset in webkit [272973] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Update syntax in the sandbox bootstrap filter
https://bugs.webkit.org/show_bug.cgi?id=221913
<rdar://problem/73463985>

Reviewed by Brent Fulgham.

Update syntax in the sandbox bootstrap filter on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
6:31 PM Changeset in webkit [272972] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r271493 ) Crash in +[NSAttributedString(WKPrivate) _loadFromHTMLWithOptions:contentLoader:completionHandler:] on background thread
<rdar://problem/74038372> and https://bugs.webkit.org/show_bug.cgi?id=222005

Reviewed by Geoffrey Garen.

Test not possible as TestWebKitAPI seems to always initialize WebKit on the main thread.

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(+[NSAttributedString _loadFromHTMLWithOptions:contentLoader:completionHandler:]): Switch this RunLoop::main() back to dispatch_async to main.

6:27 PM Changeset in webkit [272971] by commit-queue@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

[perf.webkit.org] Do not schedule jobs to Buildbot if the last job failed
https://bugs.webkit.org/show_bug.cgi?id=221943

Patch by Dean Johnson <dean_johnson@apple.com> on 2021-02-16
Reviewed by Dewei Zhu.

  • server-tests/resources/mock-data.js:

(MockData.sampleBuildData): Allow options.results to be specified.

  • server-tests/tools-buildbot-triggerable-tests.js:

(async const): Add tests for new functionality. Existing tests still pass.

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.prototype.initialize): Track the 'results' key from a build.
(BuildbotBuildEntry.prototype.result): Make the build result available.
(BuildbotSyncer): Track the last completed build.
(BuildbotSyncer.prototype.lastCompletedBuildSuccessful): Check if the last completed
build was successful.
(BuildbotSyncer.prototype.pullBuildbot):

  • tools/js/buildbot-triggerable.js: Do not schedule a job to a builder who failed

its last completedd build.
(BuildbotTriggerable.prototype._scheduleRequestIfSlaveIsAvailable):

6:27 PM Changeset in webkit [272970] by Andres Gonzalez
  • 8 edits in trunk/Tools

Use makeJSArray in both AccessibilityUIElementMac/IOS.mm.
https://bugs.webkit.org/show_bug.cgi?id=221999
<rdar://problem/74407113>

Reviewed by Chris Fleizach.

We had functions makeJSArray and convertElementsToObjectArray doing
exactly the same thing, one for Mac and One for iOS.

  • Moved makeJSArray to the platform independent header so it can be used

in both platforms.

  • Moved the retrieval of the JS context inside makeJSArray, so that the

caller doesn't have to do that.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:

(WTR::makeJSArray): Added to platform independent header.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::elementsForRange):
(WTR::convertElementsToObjectArray): Deleted.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::uiElementArrayAttributeValue const):
(WTR::AccessibilityUIElement::searchTextWithCriteria):
(WTR::makeJSArray): Deleted.

5:21 PM Changeset in webkit [272969] by Russell Epstein
  • 5 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272880. rdar://problem/74409363

Crash under WorkerThreadableLoader::MainThreadBridge::notifyIsDone()
https://bugs.webkit.org/show_bug.cgi?id=221906
<rdar://74225448>

Reviewed by Alex Christensen.

  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::computeIsDone): r267227 added this function and this was the first case where the DocumentThreadableLoader would do an async operation and ref itself during the operation. I believe this was the source of the crash as this could cause DocumentThreadableLoader to outlive its client. When DocumentThreadableLoader::notifyIsDone() would get called later on, m_client may be bad. To maintain pre-r267227 behavior, we now capture a WeakPtr to |this| instead of a Ref<>, so that we don't unnecessarily extend the lifetime of the DocumentThreadableLoader.
  • loader/DocumentThreadableLoader.h: (WebCore::DocumentThreadableLoader::clearClient): Add new clearClient() function to DocumentThreadableLoader so that the client can clear the raw pointer the DocumentThreadableLoader holds to it before getting destroyed. I wanted to use WeakPtr but this did not work out due to multithreading.
  • loader/WorkerThreadableLoader.cpp: (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy): Before destroying itself, WorkerThreadableLoader::MainThreadBridge now clears the raw pointer to it that DocumentThreadableLoader holds. This is important since DocumentThreadableLoader is RefCounted and its lifetime may get extended past the MainThreadBridge.
  • loader/WorkerThreadableLoader.h: Use tighter typing for clarity.

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

5:20 PM Changeset in webkit [272968] by Russell Epstein
  • 4 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272856. rdar://problem/74410114

[LFC][IFC] Do not re-measure wrapped content
https://bugs.webkit.org/show_bug.cgi?id=221874

Reviewed by Antti Koivisto.

This patch addresses the performance issue with extremely long content when
the content gets re-measured many time while performing line breaking.

When a certain text content does not fit the line we can

  1. keep it on the current line and let it overflow or
  2. wrap the entire content to the next line or
  3. split it somewhere in the middle.

In case of 2 and 3 this overflowing content turns into the leading content on the subsequent line.
Now due to ligature (#3) and position dependent glyph sizing(#2) we need to remeasure this leading content again.
However with unreasonably long content and relatively small horizontal constraint, this could lead to
repeated, continuous text measuring.
In this patch we turn the overflow width into the leading width so that we measure the long text content only once.
(FIXME: This should be turned into a generic "use the overflow content as-is when turning it into leading content")

  • layout/inlineformatting/InlineFormattingContext.cpp: (WebCore::Layout::InlineFormattingContext::lineLayout):
  • layout/inlineformatting/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::layoutInlineContent): (WebCore::Layout::LineBuilder::computedIntrinsicWidth): (WebCore::Layout::LineBuilder::placeInlineContent): (WebCore::Layout::LineBuilder::candidateContentForLine): (WebCore::Layout::LineBuilder::handleInlineContent):
  • layout/inlineformatting/InlineLineBuilder.h:

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

5:20 PM Changeset in webkit [272967] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272841. rdar://problem/74409856

[iOS] MobileSafari crashes at WebCore: WebCore::VideoFullscreenInterfaceAVKit::doEnterFullscreen
https://bugs.webkit.org/show_bug.cgi?id=221863
<rdar://73861140>

Patch by Jean-Yves Avenard <jya@apple.com> on 2021-02-14
Reviewed by Darin Adler.

On iPad, it's possible for AVKit to fail due to racing requests to exit full screen and enter full screen. The enterFullscreenHandler would attempt to immediately re-enter full screen.
For now we bail-out early to avoid the crash. In a follow-up patch we will ensure that the condition to enter fullscreen while there's a pending operation to exit fullscreen can't occur.
No new tests, can't reproduce. Analysis has been entirely theoretical.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (VideoFullscreenInterfaceAVKit::enterFullscreenHandler): Exit early if error returned.

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

5:20 PM Changeset in webkit [272966] by Russell Epstein
  • 7 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272829. rdar://problem/74409245

[Mac] Sound does not play on YouTube after switching back to foreground
https://bugs.webkit.org/show_bug.cgi?id=221858
<rdar://70602677>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/unmute-after-loading.html

Remove a stray, unnecessary reset of a cached muted state which kept mute
state from being changed the first time after loading.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
  • testing/Internals.cpp: (WebCore::Internals::privatePlayerMuted):
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm: (WebCore::Internals::privatePlayerMuted):

LayoutTests:

  • platform/mac/media/unmute-after-loading-expected.txt: Added.
  • platform/mac/media/unmute-after-loading.html: Added.

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

5:20 PM Changeset in webkit [272965] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272777. rdar://problem/74410399

Nullopt crash in DOMSelection::getRangeAt
https://bugs.webkit.org/show_bug.cgi?id=221786

Reviewed by Darin Adler.

No new tests since we don't have any way to reproduce this crash.

  • page/DOMSelection.cpp: (WebCore::DOMSelection::getRangeAt): Added a nullopt check with an assertion.

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

5:20 PM Changeset in webkit [272964] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272723. rdar://problem/74410353

[macOS] Add syscall to allow list in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=221705
<rdar://problem/74162777>

Reviewed by Brent Fulgham.

Add required syscall to allow list in WebContent sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:

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

5:19 PM Changeset in webkit [272963] by Russell Epstein
  • 9 edits in branches/safari-611-branch/Source

Cherry-pick r272703. rdar://problem/74409698

Reduce the overhead of DocumentFragment in innerHTML & outerHTML
https://bugs.webkit.org/show_bug.cgi?id=221535
<rdar://problem/73861015>

Reviewed by Geoffrey Garen.

Source/WebCore:

This patch reduces the overhead of using DocumentFragment in innerHTMl and outerHTML setters by

  1. Cache DocumentFragment used for innerHTML and outerHTML.
  2. Adding a fast path to removeAllChildrenWithScriptAssertion when removing child nodes from (1) immediately before appending it to the new parent. This is safe for now since no DOM nodes or API store information about its root node or parent node when it's DocumentFragment, and and there are no node flags to be updated or invalidated since we're removing already-disconnected nodes to which no script ever had access up until this point. We release-assert these conditions before going into the fast path.

No new tests since there should be no observable behavior change.

  • dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added a fast path. See above.
  • dom/Document.cpp: (WebCore::Document::commonTeardown): Clear m_documentFragmentForInnerOuterHTML as it would keep the ownewr document (this Document) alive otherwise. (WebCore::Document::documentFragmentForInnerOuterHTML): Added. Lazily create a DocumentFragment used to parse the fragment for innerHTML and outerHTML setters. Remove any child nodes left in the document fragment in the case the last call to replaceChildrenWithFragment took a fast path for a single text node, which case we don't remove any child nodes from DocumentFragment.
  • dom/Document.h:
  • dom/DocumentFragment.h: (WebCore::DocumentFragment::setIsDocumentFragmentForInnerOuterHTML): Added.
  • dom/Node.h: (WebCore::Node::isDocumentFragmentForInnerOuterHTML const): Added.
  • editing/markup.cpp: (WebCore::createFragmentForMarkup): Extracted from createFragmentForInnerOuterHTML to share code between createFragmentForInnerOuterHTML and createContextualFragment. (WebCore::createFragmentForInnerOuterHTML): Reuse the fragment in createFragmentForMarkup. (WebCore::createContextualFragment): Don't reuse the fragment in createFragmentForMarkup as this function is used by Range::createContextualFragment which exposes the document fragment to arbitrary author scripts. (WebCore::hasOneChild): Deleted since we now have Node::hasOneChild. (WebCore::hasOneTextChild): Use Node::hasOneChild. (WebCore::replaceChildrenWithFragment): Added assertions to make sure we don't have any child nodes left after replacing the children.

Source/WTF:

Added a helper function for writing assertions.

  • wtf/WeakPtr.h: (WTF::WeakPtrFactory::isInitialized const): Added.

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

5:19 PM Changeset in webkit [272962] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272698. rdar://problem/74410282

REGRESSION (r269824) IOSurface allocation failure causes crash in RemoteLayerBackingStore::display()
https://bugs.webkit.org/show_bug.cgi?id=221729
rdar://72651289

Reviewed by Tim Horton.

The refactoring in r269824 dropped a null check on the front buffer surface (IOSurface allocation
can fail when the process reaches a hardcoded limit). Restore the null check.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::display):

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

5:19 PM Changeset in webkit [272961] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r272685. rdar://problem/74410538

We should not static_assert on an ENABLE() macro.
https://bugs.webkit.org/show_bug.cgi?id=221714
rdar://74197896

Reviewed by Yusuke Suzuki.

This is because the ENABLE() macro reduces to a macro expression
(defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE) which is not a C++
expression that a static_assert can evaluate.

  • llint/LLIntData.cpp:
  • llint/LLIntData.h: (JSC::LLInt::getCodePtr): (JSC::LLInt::getWide16CodePtr): (JSC::LLInt::getWide32CodePtr):

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

5:19 PM Changeset in webkit [272960] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r272663. rdar://problem/74409155

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

5:19 PM Changeset in webkit [272959] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272633. rdar://problem/74410421

REGRESSION: (r272458): [BigSur Debug] ASSERTION FAILED: m_haveAddedMediaUsageManagerSession in WebCore::MediaElementSession::updateMediaUsageIfChanged()
https://bugs.webkit.org/show_bug.cgi?id=221634
<rdar://problem/74161017>

Reviewed by Ryosuke Niwa.

No new tests, this fixes an assertion in an existing test.

  • html/MediaElementSession.cpp: (WebCore::MediaElementSession::MediaElementSession): (WebCore::MediaElementSession::addMediaUsageManagerSessionIfNecessary): (WebCore::MediaElementSession::inActiveDocumentChanged): (WebCore::MediaElementSession::updateMediaUsageIfChanged): (WebCore::MediaElementSession::addedMediaUsageManagerSessionIfNecessary): Deleted.
  • html/MediaElementSession.h:

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

5:18 PM Changeset in webkit [272958] by Russell Epstein
  • 7 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272622. rdar://problem/74410599

Reduce the overhead of HTMLDocumentParser in innerHTML setter
https://bugs.webkit.org/show_bug.cgi?id=221596

Reviewed by Simon Fraser.

This patch reduces the overhead of HTMLDocumentParser for innerHTML.
This appears to be ~0.5% Speedometer progression.

No new tests since there should be no observable behavior differences.

  • dom/ScriptableDocumentParser.h: (WebCore::ScriptableDocumentParser:isWaitingForScripts): Removed since this abstract virtual function is only used in HTMLDocumentParser.
  • html/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocument::isWaitingForScripts): Removed. There are no scripts in ftp directory document but there is no need to override it here.
  • html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::pumpTokenizer): Exit early when we're parsing a fragment to avoid accessing the scheduler, preloader, and document loader for various things since they're all irrelevant for fragment parsing. (WebCore::HTMLDocumentParser::isWaitingForScripts const): Return false immediately when parsing a document fragment as a fast path.
  • html/parser/HTMLDocumentParser.h:
  • xml/parser/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::isWaitingForScripts const): Removed. Unused.
  • xml/parser/XMLDocumentParser.h:

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

5:18 PM Changeset in webkit [272957] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272602. rdar://problem/74409444

[LFC][IFC] Disable BIDI processing for modern line layout
https://bugs.webkit.org/show_bug.cgi?id=221615

Reviewed by Sam Weinig.

This was added in preparation for BIDI content support but we are not there yet. Let's just disable it for now.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp: (WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

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

5:18 PM Changeset in webkit [272956] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272583. rdar://problem/74409637

MediaStream-backed video elements should not compute the mediaType based on track muted states
https://bugs.webkit.org/show_bug.cgi?id=221601

Reviewed by Eric Carlson.

Source/WebCore:

In case of entering background, two things happen:

  • video elements get paused
  • local video capture track gets muted When entering foreground:
  • video element should resume but did not as the local video track was muted and video element was considered as an audio element.
  • local video capture track gets unmuted but this is too late. To fix this, compute hasVideo/hasAudio based on available tracks, no matter their active state.

Test: fast/mediastream/MediaStream-video-element-enter-background.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasVideo const): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAudio const):

LayoutTests:

  • fast/mediastream/MediaStream-video-element-enter-background-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-enter-background.html: Added.

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

5:18 PM Changeset in webkit [272955] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272567. rdar://problem/74410033

REGRESSION (r269458): yahoo.com social / comments bar shows as transparent when scrolling page
https://bugs.webkit.org/show_bug.cgi?id=221582
Source/WebCore:

<rdar://problem/73795359>

Reviewed by Tim Horton.

Fix some copypasta in r269458 that resulted in scrolling state fixed nodes failing to get
the right dirty bits after attach, resulting bad viewport constraint data.

Test: scrollingcoordinator/fixed-node-reattach.html

  • page/scrolling/ScrollingStateFixedNode.cpp: (WebCore::ScrollingStateFixedNode::applicableProperties const):

LayoutTests:

Reviewed by Tim Horton.

  • scrollingcoordinator/fixed-node-reattach-expected.html: Added.
  • scrollingcoordinator/fixed-node-reattach.html: Added.

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

5:17 PM Changeset in webkit [272954] by Russell Epstein
  • 19 edits in branches/safari-611-branch/Source

Cherry-pick r272550. rdar://problem/74409264

Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503

Reviewed by Alex Christensen.
Source/WebCore:

  • loader/EmptyClients.cpp: (WebCore::pageConfigurationWithEmptyClients):
  • page/Page.cpp: (WebCore::Page::Page):
  • page/PageConfiguration.cpp: (WebCore::PageConfiguration::PageConfiguration):
  • page/PageConfiguration.h:

Source/WebKit:

Normal Pages always have a UserContentProvider, even if they just create an empty default one.

Same should be true for ServiceWorkers.

  • Shared/ServiceWorkerInitializationData.cpp: (WebKit::ServiceWorkerInitializationData::decode):
  • Shared/ServiceWorkerInitializationData.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers): (WebKit::WebProcessPool::createWebPage):
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::enableServiceWorkers):
  • UIProcess/WebProcessProxy.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::m_userContentController): (WebKit::m_userAgent): Deleted.
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_limitsNavigationsToAppBoundDomains):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp: (WebView::initWithFrame):

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

5:17 PM Changeset in webkit [272953] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272506. rdar://problem/74409747

Check that CGPDFDocumentRef is consistently unlocked and printable
<https://webkit.org/b/221512>
<rdar://problem/65277765>

Reviewed by Daniel Bates.

This patch does the following when printing PDFs:

  • Checks return value of CGPDFDocumentUnlockWithPassword().
  • Calls CGPDFDocumentAllowsPrinting() consistently.
  • Handles -_ensureDocumentForPrinting and -_wk_printedDocument returning nullptr.
  • UIProcess/_WKWebViewPrintFormatter.mm: (-[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:]):
  • Check return value of -_wk_printedDocument since it may return nullptr now.
  • UIProcess/ios/WKPDFView.mm: (-[WKPDFView _ensureDocumentForPrinting]):
  • Check return value of CGPDFDocumentUnlockWithPassword(), and return nullptr if unsuccessful.
  • Add CGPDFDocumentAllowsPrinting() check and return nullptr if it fails. (-[WKPDFView _wk_pageCountForPrintFormatter:]):
  • Move the CGPDFDocumentAllowsPrinting() check into -[WKPDFView _ensureDocumentForPrinting].
  • Check return value of -_ensureDocumentForPrinting since it may return nullptr now.

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

5:17 PM Changeset in webkit [272952] by Russell Epstein
  • 12 edits
    4 adds in branches/safari-611-branch

Cherry-pick r272495. rdar://problem/74409320

[macOS] Return key binding for date inputs conflicts with return to submit form
https://bugs.webkit.org/show_bug.cgi?id=221532
<rdar://problem/74039204>

Reviewed by Wenson Hsieh.

Source/WebCore:

Currently, pressing the return key within a focused date input presents
the calendar view, rather than submitting an associated form. This is a
usability issue for keyboard users, and is different from the behavior
in Chrome. This patch matches the behavior in Chrome, and makes it so
that a return keypress submits an associated form.

However, since the return key is now reserved for form submission, we
need a new key to present the calendar view for the date input. Chrome
and Firefox use the space key for this functionality, so this patch
matches that behavior.

Note that r267281 updated date inputs to focus the next editable component
when pressing the space key. This behavior is now removed in favor of
presenting the calendar. Other separator keys, and arrow keys, can still be
used to focus the next editable component.

Tests: fast/forms/date/date-editable-components/date-picker-show-on-space-keypress.html

fast/forms/date/date-editable-components/form-submit-on-return-keypress.html

  • html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::handleKeypressEvent):

Date and time inputs are BaseClickableWithKeyInputTypes. This gives them
activation behavior on return and space keypresses, similar to button and
color inputs. However, since date/time inputs are closer to textfields,
than buttons, we elide activation behavior on a return keypress, allowing
the event to submit an associated form. Activation behavior on a space
keypress is supported by going through the existing code path.

  • html/shadow/DateTimeFieldElement.cpp: (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):

Remove "Space" from the list of separator keys that focus the next
editable component.

LayoutTests:

Added tests to verify that pressing the space key in a focused date
input presents a calendar view, and pressing the enter key in a focused
date input submits a form.

Rebaselined existing tests to account for the fact that the space key
no longer focuses the next editable component within a date input.

  • fast/forms/date/date-editable-components/date-editable-components-keyboard-events-expected.txt:
  • fast/forms/date/date-editable-components/date-editable-components-keyboard-events.html:
  • fast/forms/date/date-editable-components/date-picker-show-on-space-keypress-expected.txt: Added.
  • fast/forms/date/date-editable-components/date-picker-show-on-space-keypress.html: Added.
  • fast/forms/date/date-editable-components/form-submit-on-return-keypress-expected.txt: Added.
  • fast/forms/date/date-editable-components/form-submit-on-return-keypress.html: Added.
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-keyboard-events-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-keyboard-events.html:
  • fast/forms/month/month-editable-components/month-editable-components-keyboard-events-expected.txt:
  • fast/forms/month/month-editable-components/month-editable-components-keyboard-events.html:
  • fast/forms/time/time-editable-components/time-editable-components-keyboard-events-expected.txt:
  • fast/forms/time/time-editable-components/time-editable-components-keyboard-events.html:

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

5:16 PM Changeset in webkit [272951] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272488. rdar://problem/74410510

Perform layout before running Editor::findString
https://bugs.webkit.org/show_bug.cgi?id=220384

Patch by Frédéric Wang <fwang@igalia.com> on 2021-02-08
Reviewed by Ryosuke Niwa.

This ensures that the layout is up-to-date before performing any search.
Also disable any post-resolution that could cause more changes to happen.

  • editing/Editor.cpp: (WebCore::Editor::findString):

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

5:16 PM Changeset in webkit [272950] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272483. rdar://problem/74409975

Nullptr crash in editingIgnoresContent via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=220349

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-08
Reviewed by Ryosuke Niwa.

Add an early return to InsertParagraphSeparatorCommand::doApply if insert position is null.

  • editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::insertNodeBefore): Return early if a InsertNodeBeforeCommand can't be created.
  • editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): Abort the insertion if the insert position is null.

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

5:16 PM Changeset in webkit [272949] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272439. rdar://problem/74409122

[Cocoa] CRASH in MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer()
https://bugs.webkit.org/show_bug.cgi?id=221490
<rdar://73966316>

Reviewed by Eric Carlson.

Add null-checks to every use of player() in SourceBufferPrivateAVFObjC.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): (WebCore::SourceBufferPrivateAVFObjC::destroyParser): (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): (WebCore::SourceBufferPrivateAVFObjC::readyState const): (WebCore::SourceBufferPrivateAVFObjC::setReadyState): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::SourceBufferPrivateAVFObjC::flushVideo): (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): (WebCore::SourceBufferPrivateAVFObjC::bufferWasConsumed): (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): (WebCore::SourceBufferPrivateAVFObjC::player const):

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

5:16 PM Changeset in webkit [272948] by Patrick Angle
  • 3 edits in trunk/Source/WebCore

Web Inspector: Implement Grid Overlay "Show area names" drawing
https://bugs.webkit.org/show_bug.cgi?id=221979

Reviewed by Devin Rousso.

Added support for showing grid area names and bounds in the grid overlay.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawLayoutLabel):

  • Added support for arrow-less layout labels.
  • Added support for providing a background color to allow area names to have a semi-translucent label background.
  • Added support for clipping labels to a target width.

(WebCore::InspectorOverlay::drawGridOverlay):

  • Added support for stroking grid areas and showing their names in a label.
  • inspector/InspectorOverlay.h:
5:16 PM Changeset in webkit [272947] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272435. rdar://problem/74410448

[LFC][Integration] Hit testing broken for descendants of pointer-events:none boxes
https://bugs.webkit.org/show_bug.cgi?id=221460

Reviewed by Zalan Bujtas.

Source/WebCore:

Descendants of pointer-events:none boxes may still be hittestable if they override the value.
LFC integration hit testing code didn't take this into account.

Test: fast/events/hittest-pointer-event-none-descendants.html

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::hitTest):

Replaced and inline-block boxes do the visibility/pointer-events test themselves.
This code just needs to take care of text boxes.

LayoutTests:

  • fast/events/hittest-pointer-event-none-descendants-expected.html: Added.
  • fast/events/hittest-pointer-event-none-descendants.html: Added.

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

5:15 PM Changeset in webkit [272946] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r272430. rdar://problem/74409193

Unreviewed, follow-up change after r272428
https://bugs.webkit.org/show_bug.cgi?id=221454

isPropertyNameExcluded can invoke GC etc. Structure::forEachProperty can miss PropertyTable and Structure
reference when it is highly optimized, so that it can crash if GC happens in the middle of Structure::forEachProperty.

  1. Insert ensureStillAliveHere in Structure::forEachProperty to ensure liveness of PropertyTable
  2. We should not perform side-effectful operation including GC in Structure::forEachProperty. So we moved isPropertyNameExcluded.
  • runtime/StructureInlines.h: (JSC::Structure::forEachProperty):

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

5:15 PM Changeset in webkit [272945] by Russell Epstein
  • 3 edits
    1 add in branches/safari-611-branch

Cherry-pick r272428. rdar://problem/74409193

[JSC] globalFuncCopyDataProperties should not perform GC-sensitive operation in the middle of Structure::forEachProperty
https://bugs.webkit.org/show_bug.cgi?id=221454

Reviewed by Mark Lam.

JSTests:

  • stress/copy-data-properties-fast-path.js: Added. (foo):

Source/JavaScriptCore:

isPropertyNameExcluded can invoke GC etc. And running Structure::forEachProperty
is fragile state against any side-effect including GC.
We should not perform GC-sensitive operation during Structure::forEachProperty.

  • runtime/JSGlobalObjectFunctions.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):

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

5:15 PM Changeset in webkit [272944] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272418. rdar://problem/74410581

CrashTracer: com.apple.WebKit.Networking at WebKit: WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource
https://bugs.webkit.org/show_bug.cgi?id=221432
<rdar://problem/67069819>

Reviewed by John Wilander.

We are seeing crashes in ResourceLoadStatisticsDatabaseStore::setPrevalentResource
as a result of trying to use a nullopt domainID value. In theory this should
never be WTF::nullopt but is because of a failing SQLite query in
ResourceLoadStatisticsDatabaseStore::domainID which reports the error "not an error".

To fix this we should check the domain ID and return early with a
debug assert in setPrevalentResource() if it is WTF::nullopt to avoid
a crash. Additionally, we should add more information to the logging
statement, specifically the SQLite statement string, to try and debug further.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::domainID const): (WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):

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

5:15 PM Changeset in webkit [272943] by Russell Epstein
  • 3 edits
    1 add in branches/safari-611-branch

Cherry-pick r272406. rdar://problem/74410311

[JSC] JSImmutableButterfly's toString cache should not happen for generic join
https://bugs.webkit.org/show_bug.cgi?id=221444
<rdar://problem/73972862>

Reviewed by Mark Lam.

JSTests:

  • stress/immutable-butterfly-to-string-cache-should-not-happen-for-generic-join.js: Added. (foo):

Source/JavaScriptCore:

We should not cache Array#toString results with JSImmutableButterfly if
its join operation becomes generic join: including objects in array, since
this can invoke object.toString(), and it isn't side-effect free.

  • runtime/ArrayPrototype.cpp: (JSC::fastJoin): (JSC::JSC_DEFINE_HOST_FUNCTION):

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

5:15 PM Changeset in webkit [272942] by Russell Epstein
  • 5 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272394. rdar://problem/74409285

Avoid creating JS wrapper on a removed node when the subtree is not observable
https://bugs.webkit.org/show_bug.cgi?id=221243
<rdar://problem/73719386>

Reviewed by Geoffrey Garen.

Prior to this patch, WebKit forced the creation the JS wrapper on the root DOM node of a removed subtree
to avoid script observable deletion of nodes. This is necessary because DOM nodes are reference counted
in the C++ side, and while a DOM node keeps its child nodes alive, it won't keep its parent node alive
to avoid reference cycles (leaks). If we didn't force the creation of the JS wrapper and the root node
of the removed subtree didn't have any external reference to it in C++ side, we would happily delete it
and all its descendant nodes above any subtree with a JS wrapper or an external C++ reference.

While this turned out to be an effective strategy for implementing DOM nodes' GC semantics correctly,
it has a significant runtime and memory cost - the latter is because we don't collect the JS wrappers
of DOM nodes once they're created until they're ready to be destructed.

This patch introduces a new optimization to avoid creating these JS wrappers when the removed subtree
won't be observable by scripts in the future. The current heuristic is to check if the removed node
has any external reference to it (i.e. refCount() > 0 excluding any reference counting that happens within
our algorithm). This is sufficient because a given node should not be observable at a later time unless
it has an external reference to it. This is ~0.5% progression on Speedometer-2.0 on MacBookAir7,2.

To do this, we take advantage of the fact notifyChildNodeRemoved already traverses each removed subtree,
and check if any of them has a reference count greater than 1 (greater than 1 because notifyChildNodeRemoved
itself increments node's reference count before calling itself on child nodes). Note that we exclude the
root node of the removed subtree as these JS wrapper creation is only needed to keep the root node alive.
If the root node is already kept alive by some external reference to it, there is no need to keep it alive
again by creating a JS wrapper on it.

No new tests since existing tests such as fast/dom/gc-3.html covers it.

  • dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Call willCreatePossiblyOrphanedTreeByRemoval if the removed subtree contains an observable node. (WebCore::ContainerNode::removeNodeWithScriptAssertion): Ditto. (WebCore::ContainerNode::removeSelfOrChildNodesForInsertion): Renamed from collectChildrenAndRemoveFromOldParent. Avoid collecting the removed nodes in this function in addition to removeAllChildrenWithScriptAssertion. (WebCore::ContainerNode::insertBefore): (WebCore::ContainerNode::replaceChild): (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): (WebCore::dispatchChildRemovalEvents): Don't call willCreatePossiblyOrphanedTreeByRemoval here.
  • dom/ContainerNode.h:
  • dom/ContainerNodeAlgorithms.cpp: (WebCore::observabilityOfRemovedNode): Added. Checks the observability of a node excluding the root node of the removed subtree since it needs a special case in removeAllChildrenWithScriptAssertion. As notifyNodeRemovedFromDocument and notifyNodeRemovedFromTree ref's each child node before recursing on itself, we check refCount() > 1 here. (WebCore::updateObservability): Added. A helper function to update RemovedSubtreeObservability. (WebCore::notifyNodeRemovedFromDocument): Now returns RemovedSubtreeObservability, (WebCore::notifyNodeRemovedFromTree): Ditto. (WebCore::notifyChildNodeRemoved): Ditto.
  • dom/ContainerNodeAlgorithms.h:

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

5:15 PM Changeset in webkit [272941] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272390. rdar://problem/74409535

AX: expose focusable elements even if element or ancestor has aria-hidden=true
https://bugs.webkit.org/show_bug.cgi?id=220534
<rdar://problem/71865875>

Reviewed by Zalan Bujtas.

Source/WebCore:

ARIA states that if an item is focused, then it should override aria-hidden status.
https://github.com/w3c/aria/pull/1387/files

Test: accessibility/focusable-inside-hidden.html

  • accessibility/AXObjectCache.cpp: (WebCore::isNodeAriaVisible):
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isAXHidden const): (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):

LayoutTests:

  • accessibility/focusable-inside-hidden-expected.txt: Added.
  • accessibility/focusable-inside-hidden.html: Added.

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

5:14 PM Changeset in webkit [272940] by Russell Epstein
  • 7 edits in branches/safari-611-branch

Cherry-pick r271746. rdar://problem/74410558

Disable Options:useAtMethod because of compatibility issue.
https://bugs.webkit.org/show_bug.cgi?id=220788
rdar://72933608

Reviewed by Saam Barati and Yusuke Suzuki.

Source/JavaScriptCore:

See https://github.com/tc39/proposal-relative-indexing-method/issues/41.

  • jsc.cpp: (CommandLine::parseArguments):
  • enable Options::useAtMethod by default for the jsc shell for testing.
  • runtime/OptionsList.h:

LayoutTests:

Enable Options::useAtMethod for these tests.

  • inspector/model/remote-object-get-properties.html:
  • js/Object-getOwnPropertyNames.html:
  • js/array-unscopables-properties.html:

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

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

[webkitscmpy] Document package usage
https://bugs.webkit.org/show_bug.cgi?id=221986
<rdar://problem/74401363>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitcorepy/README.md: Add library.
  • Scripts/libraries/webkitscmpy/README.md:
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.from_path): Remove unneeded space.

4:33 PM Changeset in webkit [272938] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

operationNewArrayWithSize should call tryCreate instead of create
https://bugs.webkit.org/show_bug.cgi?id=221983
<rdar://74265630>

Reviewed by Mark Lam.

I disassembled crashlogs inside operationNewArrayWithSize. They are crashing
inside array allocation. They are crashing on OOM. By code inspection,
operationNewArrayWithSizeAndHint has the same problem.

Callsites to both functions already handle exceptions being thrown, so
converting both operationNewArrayWithSize and operationNewArrayWithSizeAndHint
to throw instead of crash on OOM is trivial.

I wasn't able to come up with a test case for this.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • runtime/ObjectConstructor.cpp:

(JSC::ownPropertyKeys):

4:15 PM Changeset in webkit [272937] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.18

4:00 PM Changeset in webkit [272936] by Chris Dumez
  • 94 edits in trunk/Source

Reduce explicit usage of [objC autorelease] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=221932

Reviewed by Geoff Garen.

Reduce explicit usage of [objC autorelease] in WebKit by using RetainPtr<>.

Source/JavaScriptCore:

  • API/JSContext.mm:

(-[JSContext init]):
(+[JSContext contextWithJSGlobalContextRef:]):

  • API/JSManagedValue.mm:

(+[JSManagedValue managedValueWithValue:]):
(+[JSManagedValue managedValueWithValue:andOwner:]):

  • API/JSScript.mm:

(+[JSScript scriptOfType:withSource:andSourceURL:andBytecodeCache:inVirtualMachine:error:]):
(+[JSScript scriptOfType:memoryMappedFromASCIIFile:withSourceURL:andBytecodeCache:inVirtualMachine:error:]):

  • API/JSVirtualMachine.mm:

(+[JSVirtualMachine virtualMachineWithContextGroupRef:]):

  • API/JSWrapperMap.mm:

(-[JSWrapperMap classInfoForClass:]):
(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]):

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteConnectionToTarget::connectionIdentifier const):
(Inspector::RemoteConnectionToTarget::destination const):

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.objc_protocol_import_expression_for_variable):

Source/WebCore:

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]):
(+[WebAccessibilityTextMarker textMarkerWithCharacterOffset:cache:]):
(+[WebAccessibilityTextMarker startOrEndTextMarkerForRange:isStart:cache:]):
(-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
(-[WebAccessibilityObjectWrapper _stringFromStartMarker:toEndMarker:attributed:]):
(-[WebAccessibilityObjectWrapper nextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper previousMarkerForCharacterOffset:]):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::textReplacementChangeDictionary):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(arrayRemovingNonSupportedTypes):
(dictionaryRemovingNonSupportedTypes):

  • bridge/objc/WebScriptObject.mm:

(WebCore::getJSWrapper):
(WebCore::createJSWrapper):
(+[WebUndefined undefined]):

  • bridge/testbindings.mm:

(-[MyFirstInterface setJSObject:]):
(-[MyFirstInterface callJSObject::]):

  • editing/cocoa/HTMLConverter.mm:

(_shadowForShadowStyle):
(HTMLConverter::_addAttachmentForElement):
(_dateForString):
(fileWrapperForURL):

  • editing/cocoa/WebArchiveResourceWebResourceHandler.mm:

(-[WebArchiveResourceWebResourceHandler resourceForData:URL:MIMEType:textEncodingName:frameName:]):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attributesForAttributedStringConversion):

  • loader/mac/LoaderNSURLExtras.mm:

(filenameByFixingIllegalCharacters):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController init]):

  • platform/ios/WebEvent.mm:

(-[WebEvent characters]):
(-[WebEvent charactersIgnoringModifiers]):
(-[WebEvent inputManagerHint]):

  • platform/ios/WebItemProviderPasteboard.mm:

(+[WebItemProviderLoadResult loadResultWithItemProvider:typesToLoad:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(-[WebVideoFullscreenController didFinishFullscreen:]):

  • platform/ios/wak/WAKView.mm:

(+[WAKView _wrapperForViewRef:]):
(-[WAKView dealloc]):

  • platform/mac/PasteboardMac.mm:

(WebCore::fileWrapper):

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::URLByCanonicalizingURL):

  • platform/mac/WebNSAttributedStringExtras.mm:

(WebCore::attributedStringByStrippingAttachmentCharacters):

  • platform/network/cf/ResourceRequest.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::nsCookieStorage const):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::nsURLRequest const):
(WebCore::ResourceRequest::setStorageSession):
(WebCore::copyRequestWithStorageSession):
(WebCore::cachedResponseForRequest):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession dataTaskWithURL:]):
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]):

  • platform/network/mac/AuthenticationMac.mm:

(WebCore::mac):

  • platform/network/mac/ResourceErrorMac.mm:

(dictionaryThatCanCode):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):

  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::synthesizeRedirectResponseIfNecessary):

  • platform/text/ios/LocalizedDateCache.h:
  • platform/text/ios/LocalizedDateCache.mm:

(WebCore::LocalizedDateCache::formatterForDateType):
(WebCore::LocalizedDateCache::createFormatterForType):
(WebCore::LocalizedDateCache::calculateMaximumWidth):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(downgradeRequest):
(updateIgnoreStrictTransportSecuritySettingIfNecessary):
(WebKit::proxyDictionary):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::createWebSocketTask):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeObject):

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(+[_WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):

  • Shared/Cocoa/WKObject.h:

(WebKit::wrapper):

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(+[_WKAttributedStringWebViewCache configuration]):
(+[NSAttributedString _loadFromHTMLWithOptions:contentLoader:completionHandler:]):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(makePolicyDecisionBlock):
(setUpPagePolicyClient):
(-[WKBrowsingContextController handle]):

  • UIProcess/API/Cocoa/WKContentWorld.mm:

(-[WKContentWorld _userContentWorld]):

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo securityOrigin]):
(-[WKFrameInfo webView]):
(-[WKFrameInfo _handle]):
(-[WKFrameInfo _parentFrameHandle]):

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _userContentWorld]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView configuration]):
(-[WKWebView findString:withConfiguration:completionHandler:]):
(-[WKWebView _frames:]):
(-[WKWebView _handle]):
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
(-[WKWebView _sessionState]):
(-[WKWebView _sessionStateWithFilter:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):

  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(+[WKWebpagePreferences defaultPreferences]):

  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(-[WKWebsiteDataRecord _dataSize]):

  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(+[_WKActivatedElementInfo activatedElementInfoWithInteractionInformationAtPosition:userInfo:]):
(-[_WKActivatedElementInfo image]):

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment info]):

  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession init]):
(-[_WKAutomationSession configuration]):

  • UIProcess/API/Cocoa/_WKDownload.mm:

(+[_WKDownload downloadWithDownload:]):
(-[_WKDownload originatingWebView]):

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction elementActionWithTitle:actionHandler:]):
(+[_WKElementAction _elementActionWithType:title:actionHandler:]):
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode securityOrigin]):
(-[_WKFrameTreeNode webView]):
(-[_WKFrameTreeNode _handle]):
(-[_WKFrameTreeNode _parentFrameHandle]):

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]):

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration customClassesForParameterCoder]):

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]):

  • UIProcess/API/Cocoa/_WKTextManipulationToken.mm:

(-[_WKTextManipulationToken _descriptionPreservingPrivacy:]):

  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(+[_WKUserContentExtensionStore defaultStore]):
(+[_WKUserContentExtensionStore storeWithURL:]):
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):

  • UIProcess/API/Cocoa/_WKUserContentWorld.mm:

(+[_WKUserContentWorld worldWithName:]):
(+[_WKUserContentWorld normalWorld]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _uiEventAttribution]):
(-[WKWebView _retainActiveFocusedState]):

  • UIProcess/Automation/ios/WebAutomationSessionIOS.mm:

(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):

  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::requestAutomationSession):

  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::addLinkAndReplace):
(WebKit::safeBrowsingDetailsText):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(-[WKLayerHostView makeBackingLayer]):

  • UIProcess/Cocoa/WKContactPicker.mm:

(-[WKContactPicker _contactsFromJSContacts:]):

  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(makeButton):
(makeLabel):
(-[WKSafeBrowsingWarning addContent]):
(-[WKSafeBrowsingWarning showDetailsClicked]):
(-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::fullScreenWindow):

3:43 PM Changeset in webkit [272935] by BJ Burg
  • 4 edits in trunk/Source/WebKit

REGRESSION(r266890): [Cocoa] Fix InspectorDelegate / API::InspectorClient leak
https://bugs.webkit.org/show_bug.cgi?id=221988
<rdar://73594555>

Reviewed by Devin Rousso.

There was a logic error introduced into the new delegate situation after
moving _WKInspectorDelegate from WKWebView to _WKInspector. When setting
.delegate to nil, we shouldn't allocate dummy API::InspectorClient/
InspectorDelegate instances. As written, these instances form their own retain
cycle and cause a leak if Web Inspector has been opened or if
WKWebView._inspector is accessed (which lazily creates the delegates).

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector setDelegate:]):
Adopt new constructor and pass in the ObjC delegate.

  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm:

(WebKit::InspectorDelegate::InspectorDelegate):
(WebKit::InspectorDelegate::createInspectorClient): Deleted.
(WebKit::InspectorDelegate::setDelegate): Deleted.
Clean up this class so that we always receive the ObjC delegate
via the constructor. If a nil delegate is passed---for example, when
closing the WKWebView---then don't create an API::InspectorClient
and set the WebInspectorProxy's client to nullptr.

3:36 PM Changeset in webkit [272934] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Grid list in Layout panel missing empty message
https://bugs.webkit.org/show_bug.cgi?id=221763
<rdar://problem/74242610>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-16
Reviewed by BJ Burg.

Show a message instead of an empty list in the Layout sidebar panel
when there are no CSS Grid contexts found on the inspected page.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.set gridNodeSet):
(WI.CSSGridSection.prototype.attached):
(WI.CSSGridSection.prototype.detached):
(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection):
Move logic to update the gridNodeSet from CSSGridSection up to LayoutDetailsSidebarPanel
so the parent view can toggle between the empty message and the populated CSS grid section accordingly.

  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel):
(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.detached):
(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype._handleLayoutContextTypeChanged):
(WI.LayoutDetailsSidebarPanel.prototype._refreshGridNodeSet):

3:28 PM Changeset in webkit [272933] by ysuzuki@apple.com
  • 14 edits in trunk

WebAssembly: implement non-trapping float to int conversion
https://bugs.webkit.org/show_bug.cgi?id=173471

Patch by Yusuke Suzuki <ysuzuki@apple.com> and Sergey Rubanov <Sergey Rubanov> on 2021-02-16
Reviewed by Tadeu Zagallo.

JSTests:

  • wasm/spec-tests/binary-leb128.wast.js:
  • wasm/spec-tests/conversions.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

This patch implements trunc-saturated opcodes in Wasm. This does not trap, and instead it generates
saturated-truncated integer results from floats.

  1. If the input is NaN, then return 0.
  2. If the input is higher than the maximum value, then return the maximum value (e.g. INT_32MAX).
  3. If the input is lower than the minimum value, then return the minimum value (e.g. INT_32MIN).

These wasm opcodes are defined as two-byte opcodes. Currently, we do not have a mechanism to define
this kind of opcodes automatically, so we manually define them. We will clean up in the future patch.

We rename ExtTableOpType to Ext1OpType since it is no longer limited to table opcodes.

  • generator/Wasm.rb:
  • llint/WebAssembly.asm:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::truncSaturated):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::truncSaturated):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::truncSaturated):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::truncSaturated):

  • wasm/generateWasm.py:

(isNormal):

  • wasm/generateWasmOpsHeader.py:

(opcodeWithTypesMacroizer):
(saturatedTruncMacroizer):
(saturatedTruncMacroizer.modifier):
(Ext1OpType):
(ExtTableOpType): Deleted.

  • wasm/wasm.json:
2:57 PM Changeset in webkit [272932] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Unreviewed, reverting r272914.
https://bugs.webkit.org/show_bug.cgi?id=222001

broke macOS build

Reverted changeset:

"libwebrtc installs some files into incorrect locations in
/usr/local/include"
https://bugs.webkit.org/show_bug.cgi?id=221534
https://trac.webkit.org/changeset/272914

2:55 PM Changeset in webkit [272931] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

RenderElement::containingBlockForAbsolutePosition may call RenderObject::containingBlock recursively
https://bugs.webkit.org/show_bug.cgi?id=221976
<rdar://problem/72775667>

Reviewed by Simon Fraser.

When a RenderInline happens to be absolute positioned (this is a highly incorrect state, see webkit.org/b/221994), containingBlockForAbsolutePosition() calls containingBlock()
with |this| and in return containingBlock() calls back on containingBlockForAbsolutePosition() with the same renderer.
This patch ensures that we always call containingBlock() from containingBlockForAbsolutePosition() with an ancestor -mostly with the parent().

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::containingBlockForAbsolutePosition const):

2:47 PM Changeset in webkit [272930] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove unneeded sandbox access to some file paths
https://bugs.webkit.org/show_bug.cgi?id=221946
<rdar://problem/62865856>

Reviewed by Per Arne Vollan.

Block access to /etc/passwd now that none of WebContent's dependencies
expect access.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
2:38 PM Changeset in webkit [272929] by timothy_horton@apple.com
  • 2 edits in trunk

Local macCatalyst builds should not build WebInspectorUI
https://bugs.webkit.org/show_bug.cgi?id=221992

Reviewed by Wenson Hsieh.

  • Source/Makefile:

This project is not used in macCatalyst, and is not even built in production builds.
We should stop building it in local release/debug builds as well.

2:05 PM Changeset in webkit [272928] by rniwa@webkit.org
  • 10 edits
    2 adds in trunk

EventHandler::updateSelectionForMouseDownDispatchingSelectStart should not use an orphaned selection
https://bugs.webkit.org/show_bug.cgi?id=221942

Reviewed by Wenson Hsieh.

Source/WebCore:

In r272777, we re-introduced a nullptr check in DOMSelection::getRangeAt as we were getting crash reports
in this code but we weren't sure of the root cause. Since then we've identified that one of the root causes
is that EventHandler::updateSelectionForMouseDownDispatchingSelectStart doesn't check if VisibleSelection
is still in a good state after dispatching selectstart event. This results in FrameSelection's
setSelectionWithoutUpdatingAppearance getting called with a selection with end points already being orphaned.

This patch fixes this bug in setSelectionWithoutUpdatingAppearance and also adds an additional check in
FrameSelection::setSelectionWithoutUpdatingAppearance itself to avoid using an orphaned selection. It also
introduces a number of release and debug assertions in a number of places to help catch similar bugs.

Test: editing/selection/click-selection-with-selectstart-node-removal.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added a debug-only assertion.
(WebCore::ContainerNode::removeNodeWithScriptAssertion): Ditto.

  • dom/Document.cpp:

(WebCore::Document::removedLastRef): Disallow script execution in this code entirely. Also release assert
that the selection had already been cleared by this point.
(WebCore::Document::willBeRemovedFromFrame): Disallow script execution once we've unloaded subframes.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Return early if the new selection's
end points had been orphaned, and disallow script execution between that and until we update the selection.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::isOrphan const): Added.

  • editing/VisibleSelection.h:
  • page/DOMSelection.cpp:

(WebCore::DOMSelection::getRangeAt): Removed nullptr check added in r272777.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Fixed what is now believed to be
the root cause of the bug 221786.

LayoutTests:

Added a regression test for the bug 221786 / r272777.

Also updated a test imported from blink to expect rangeCount of 0 instead of 1
since we no longer update the selection when the target node has been removed
during selectstart.

  • editing/selection/click-selection-with-selectstart-node-removal-expected.txt: Added.
  • editing/selection/click-selection-with-selectstart-node-removal.html: Added.
  • imported/blink/editing/selection/selectstart-event-crash.html:
2:01 PM Changeset in webkit [272927] by graouts@webkit.org
  • 4 edits in trunk

REGRESSION(r271515): ::marker fired at wrong time
https://bugs.webkit.org/show_bug.cgi?id=221961
<rdar://problem/74397846>

Reviewed by Dean Jackson.

Source/WebCore:

Restore the order in which we generate CSS Animations for pseudo-elements as it was prior to r271515.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

LayoutTests:

Remove flakiness for this test since it didn't allow us to spot the regression introduced by r271515.

1:46 PM Changeset in webkit [272926] by commit-queue@webkit.org
  • 17 edits
    9 adds
    9 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/eventsource convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221940
<rdar://problem/74372782>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-16
Reviewed by Jonathan Bedard.

  • http/tests/eventsource/eventsource-content-type-charset.html:
  • http/tests/eventsource/eventsource-cors-basic-expected.txt:
  • http/tests/eventsource/eventsource-cors-basic.html:
  • http/tests/eventsource/eventsource-cors-with-credentials-expected.txt:
  • http/tests/eventsource/eventsource-cors-with-credentials.html:
  • http/tests/eventsource/eventsource-eof.html:
  • http/tests/eventsource/eventsource-events-after-close.html:
  • http/tests/eventsource/eventsource-page-cache-connected.html:
  • http/tests/eventsource/eventsource-page-cache-connecting.html:
  • http/tests/eventsource/eventsource-parse-event-stream.html:
  • http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html:
  • http/tests/eventsource/eventsource-reconnect.html:
  • http/tests/eventsource/eventsource-status-code-states.html:
  • http/tests/eventsource/eventsource-url-attribute-expected.txt:
  • http/tests/eventsource/eventsource-url-attribute.html:
  • http/tests/eventsource/resources/es-cors-basic.php: Removed.
  • http/tests/eventsource/resources/es-cors-basic.py: Added.
  • http/tests/eventsource/resources/es-cors-credentials.php: Removed.
  • http/tests/eventsource/resources/es-cors-credentials.py: Added.
  • http/tests/eventsource/resources/es-eof.php: Removed.
  • http/tests/eventsource/resources/es-eof.py: Added.
  • http/tests/eventsource/resources/event-stream.php: Removed.
  • http/tests/eventsource/resources/event-stream.py: Added.
  • http/tests/eventsource/resources/infinite-event-stream.php: Removed.
  • http/tests/eventsource/resources/infinite-event-stream.py: Added.
  • http/tests/eventsource/resources/reconnect.php: Removed.
  • http/tests/eventsource/resources/reconnect.py: Added.
  • http/tests/eventsource/resources/request-existent-eventsource-error.html:
  • http/tests/eventsource/resources/response-content-type-charset.php: Removed.
  • http/tests/eventsource/resources/response-content-type-charset.py: Added.
  • http/tests/eventsource/resources/status-codes.php: Removed.
  • http/tests/eventsource/resources/status-codes.py: Added.
  • http/tests/eventsource/resources/wait-then-notify-done.php: Removed.
  • http/tests/eventsource/resources/wait-then-notify-done.py: Added.
1:44 PM Changeset in webkit [272925] by Megan Gardner
  • 33 edits
    1 move
    2 adds
    2 deletes in trunk/Source

Change App Highlights API to operate in terms of a single serialized highlight at a time
https://bugs.webkit.org/show_bug.cgi?id=221802

Reviewed by Tim Horton.

Source/WebCore:

Pipe through additional data needed for display, and update to allow for more information to be added more easily.

  • Modules/highlight/AppHighlightListData.cpp: Removed.
  • Modules/highlight/AppHighlightRangeData.h: Renamed from Source/WebCore/Modules/highlight/AppHighlightListData.h.
  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::createAppHighlightRangeData):
(WebCore::AppHighlightStorage::storeAppHighlight):
(WebCore::AppHighlightStorage::restoreAppHighlight):
(WebCore::AppHighlightStorage::updateAppHighlightsStorage): Deleted.
(WebCore::AppHighlightStorage::restoreAppHighlights): Deleted.

  • Modules/highlight/AppHighlightStorage.h:
  • Modules/highlight/HighlightRegister.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::storeAppHighlight const):
(WebCore::EmptyChromeClient::updateAppHighlightsStorage const): Deleted.

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::storeAppHighlight const):
(WebCore::Chrome::updateAppHighlightsStorage const): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:

Source/WebKit:

Pipe through additional data needed for display, and update to allow for more information to be added more easily.

  • Shared/CreateNewGroupForHighlight.h: Removed.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _storeAppHighlight:]):
(-[WKWebView _restoreAppHighlights:]):
(-[WKWebView _updateAppHighlightsStorage:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::storeAppHighlight):
(WebKit::PageClientImplCocoa::updateAppHighlightsStorage): Deleted.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createAppHighlightInSelectedRange):
(WebKit::WebPageProxy::restoreAppHighlights):

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

(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::storeAppHighlight):
(WebKit::WebPageProxy::updateAppHighlightsStorage): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView createHighlightInCurrentGroupWithRange:]):
(-[WKContentView createHighlightInNewGroupWithRange:]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::storeAppHighlight const):
(WebKit::WebChromeClient::updateAppHighlightsStorage const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createAppHighlightInSelectedRange):
(WebKit::WebPage::restoreAppHighlights):

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

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::storeAppHighlight const):
(WebChromeClient::updateAppHighlightsStorage const): Deleted.

1:43 PM Changeset in webkit [272924] by commit-queue@webkit.org
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/plugins convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221941
<rdar://problem/74373443>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-16
Reviewed by Jonathan Bedard.

  • http/tests/plugins/get-url-redirect.html:
  • http/tests/plugins/resources/redirection-response.php: Removed.
  • http/tests/plugins/resources/redirection-response.py: Added.
1:27 PM WebKitGTK/2.30.x edited by Michael Catanzaro
(diff)
12:59 PM Changeset in webkit [272923] by Kate Cheney
  • 9 edits
    1 delete in trunk

Clean up WKWebView media API
https://bugs.webkit.org/show_bug.cgi?id=221929
<rdar://problem/73460121>

Reviewed by Youenn Fablet.

Source/WebKit:

A few fixes that came from API review:

1) Change closeAllMediaPresentations to be
closeAllMediaPresentationsWithCompletionHandler. Ditto for
pauseAllMediaPlayback and requestMediaPlaybackState. This leads to
better Swift imports.

2) Combine suspendAllMediaPlayback and resumeAllMediaPlayback into a
single setAllMediaPlaybackSuspended:completionHandler function which
takes a boolean. This reinforces the relationship between
suspend/resume and differentiates them from pause.

And a few other drive-by fixes, like moving WKMediaPlaybackState to
the WKWebView class because it is unlikely to be used outside of that
context, changing NSUInteger -> NSInteger, and changing the ordering
of the WKMediaPlaybackState enum to be more natural.

No new tests. No behavior change. Covered by existing API tests.

  • UIProcess/API/Cocoa/WKMediaPlaybackState.h: Removed.
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView closeAllMediaPresentationsWithCompletionHandler:]):
(-[WKWebView pauseAllMediaPlaybackWithCompletionHandler:]):
(-[WKWebView setAllMediaPlaybackSuspended:completionHandler:]):
(toWKMediaPlaybackState):
(-[WKWebView requestMediaPlaybackStateWithCompletionHandler:]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _stopAllMediaPlayback]):
(-[WKWebView _suspendAllMediaPlayback]):
(-[WKWebView _resumeAllMediaPlayback]):
(-[WKWebView closeAllMediaPresentations:]): Deleted.
(-[WKWebView pauseAllMediaPlayback:]): Deleted.
(-[WKWebView suspendAllMediaPlayback:]): Deleted.
(-[WKWebView resumeAllMediaPlayback:]): Deleted.
(-[WKWebView requestMediaPlaybackState:]): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Update naming.

  • TestWebKitAPI/Tests/WebKitCocoa/StopSuspendResumeAllMedia.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:

(TEST):

12:51 PM Changeset in webkit [272922] by ysuzuki@apple.com
  • 7 edits in trunk/Source

[JSC] Enable JITCage on macOS
https://bugs.webkit.org/show_bug.cgi?id=221805
<rdar://problem/74153806>

Reviewed by Mark Lam.

Source/JavaScriptCore:

We enable JITCage too on macOS if it is ARM64E.
We need to add this entitlement only when building it on macOS 120000 or higher version.
Otherwise, we cannot launch the process. This means that we need to dynamically generate entitlements file
because we must not attach this entitlement when building JSC for non 120000 macOS.

We also remove install_name for jsc binary because it broke codesigning. Previously, it was OK since we didn't
have com.apple.private.xxx, but now this broken codesigning makes JSC binary unlaunchable.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/process-entitlements.sh:

Source/WebKit:

We need to add this entitlement only when building it on macOS 120000 or higher version.
Otherwise, we cannot launch the process. And we attach this entitlement only when building processes
with Apple Internal SDKs.

  • Scripts/process-entitlements.sh:

Source/WTF:

Enable JIT_CAGE when macOS is 120000 or higher with ARM64E.

  • wtf/PlatformEnable.h:
12:30 PM UsingGitWithWebKit edited by Fujii Hironori
(diff)
12:20 PM Changeset in webkit [272921] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] Need new user agent quirk for Google Docs and Google Drive
https://bugs.webkit.org/show_bug.cgi?id=221845

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-16
Reviewed by Adrian Perez de Castro.

Source/WebCore:

Switch Google Docs to use a Chrome browser quirk instead of an Internet Explorer quirk.
Remove the Google Drive quirk altogether. Remove the Internet Explorer and Windows platform
quirks, which are no longer used. Retarget the Google Docs quirk to apply only to
docs.google.com because we no longer need to send the quirk to accounts.youtube.com for it
to be effective. Lastly, update Chrome and Firefox version strings for good measure.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresInternetExplorerBrowser): Deleted.
(WebCore::urlRequiresWindowsPlatform): Deleted.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasInternetExplorerBrowserQuirk): Deleted.
(TestWebKitAPI::assertUserAgentForURLHasWindowsPlatformQuirk): Deleted.

11:40 AM Changeset in webkit [272920] by achristensen@apple.com
  • 27 edits in trunk

Add API to disable HTTPS upgrade
https://bugs.webkit.org/show_bug.cgi?id=221591
<rdar://problem/56254945>

Reviewed by Geoff Garen.

Source/WebCore:

We are upgrading requests from HTTP to HTTPS, but an app may have a reason to want to make a plaintext connection.
Make API on WKWebViewConfiguration to enable that to happen, and use opensource.apple.com as a test host.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • contentextensions/ContentExtensionsBackend.cpp:

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

  • contentextensions/ContentExtensionsBackend.h:
  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::subresourcesAllowReuse const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/PingLoader.cpp:

(WebCore::processContentRuleListsForLoad):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/Page.cpp:

(WebCore::m_httpsUpgradeEnabled):
(WebCore::m_textInteractionEnabled): Deleted.

  • page/Page.h:

(WebCore::Page::httpsUpgradeEnabled const):

  • page/PageConfiguration.h:
  • page/UserContentProvider.cpp:

(WebCore::UserContentProvider::processContentRuleListsForLoad):

  • page/UserContentProvider.h:

Source/WebKit:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::setHTTPSUpgradeEnabled):
(API::PageConfiguration::httpsUpgradeEnabled const):

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

(-[WKWebViewConfiguration upgradeCommonKnownRequestsToHTTPS]):
(-[WKWebViewConfiguration setUpgradeCommonKnownRequestsToHTTPS:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:

(TEST):

11:26 AM Changeset in webkit [272919] by Chris Dumez
  • 52 edits in trunk

Reduce explicit usage of [objC release] in WebKit even more
https://bugs.webkit.org/show_bug.cgi?id=221914

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • API/JSContext.mm:

(-[JSContext initWithVirtualMachine:]):
(-[JSContext dealloc]):
(-[JSContext virtualMachine]):
(-[JSContext initWithGlobalContextRef:]):

  • API/JSManagedValue.mm:

(-[JSManagedValue initWithValue:]):
(-[JSManagedValue dealloc]):
(-[JSManagedValue didAddOwner:]):
(-[JSManagedValue didRemoveOwner:]):

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine initWithContextGroupRef:]):
(-[JSVirtualMachine dealloc]):
(-[JSVirtualMachine contextForGlobalContextRef:]):
(-[JSVirtualMachine addContext:forGlobalContextRef:]):
(-[JSVirtualMachine externalObjectGraph]):
(-[JSVirtualMachine externalRememberedSet]):

  • API/JSWrapperMap.mm:

(createRenameMap):
(copyMethodsToObject):
(-[JSWrapperMap initWithGlobalContextRef:]):
(-[JSWrapperMap classInfoForClass:]):
(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]):

  • inspector/scripts/codegen/generate_objc_configuration_implementation.py:

(ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
(ObjCConfigurationImplementationGenerator._generate_ivars):

  • inspector/scripts/codegen/objc_generator_templates.py:

Source/WebCore:

  • bridge/objc/objc_instance.mm:

(ObjcInstance::setGlobalException):
(ObjcInstance::moveGlobalExceptionToExecState):

  • bridge/testbindings.mm:

(-[MyFirstInterface init]):
(-[MyFirstInterface getMySecondInterface]):

  • platform/ios/wak/WAKView.mm:

(setGlobalFocusView):

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow sendEventSynchronously:]):

  • platform/ios/wak/WebCoreThread.mm:

(MainThreadAdoptAndRelease):
(HandleWebThreadReleaseSource):

Source/WebKitLegacy/mac:

  • History/WebHistory.mm:

(+[WebHistory setOptionalSharedHistory:]):

  • Plugins/WebPluginDatabase.mm:

(+[WebPluginDatabase setAdditionalWebPlugInPaths:]):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::enterFullScreenForElement):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::updateGlobalHistory):
(NetscapePluginWidget::getFormValue):

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView _attach:numLayers:]):

  • WebView/WebFrameView.mm:

(-[WebFrameView _makeDocumentViewForDataSource:]):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _closePluginDatabases]):
(-[WebView _close]):
(-[WebView inspector]):
(-[WebView setShowingInspectorIndication:]):
(-[WebView _setFormDelegate:]):
(-[WebView _formDelegateForwarder]):
(-[WebView _UIKitDelegateForwarder]):
(-[WebView _policyDelegateForwarder]):
(-[WebView _UIDelegateForwarder]):
(-[WebView _editingDelegateForwarder]):
(-[WebView _setUIKitDelegate:]):
(-[WebView caretChangeListeners]):
(-[WebView addCaretChangeListener:]):
(-[WebView _setAdditionalWebPlugInPaths:]):
(-[WebView setBackgroundColor:]):
(-[WebView backgroundColor]):
(-[WebView _fixedPositionContent]):
(-[WebView setUIDelegate:]):
(-[WebView _resourceLoadDelegateForwarder]):
(-[WebView setResourceLoadDelegate:]):
(-[WebView setPolicyDelegate:]):
(-[WebView _frameLoadDelegateForwarder]):
(-[WebView setFrameLoadDelegate:]):
(-[WebView setApplicationNameForUserAgent:]):
(-[WebView applicationNameForUserAgent]):
(-[WebView setMediaStyle:]):
(-[WebView mediaStyle]):
(-[WebView _userAgentString]):
(-[WebView setHostWindow:]):
(-[WebView hostWindow]):
(-[WebView setCurrentNodeHighlight:]):
(-[WebView currentNodeHighlight]):
(-[WebView _allowsLinkPreview]):
(-[WebView _setAllowsLinkPreview:]):
(-[WebView setEditingDelegate:]):
(-[WebView _immediateActionController]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate dealloc]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(destroyWebViewAndOffscreenWindow):
(releaseAndZero):
(runTest):

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(+[DumpRenderTreePasteboard releaseLocalPasteboards]):

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController clearSavedEvents]):

  • TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:

(TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):
(TestWebKitAPI::WebCoreNSURLSessionTest::TearDown):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(setUpCookieTestWithWebsiteDataStore):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(runTestWithWebsiteDataStore):
(TEST):

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

(TEST_F):

  • TestWebKitAPI/Tests/WebKitObjC/WKBrowsingContextGroupTest.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitObjC/WKBrowsingContextLoadDelegateTest.mm:

(TEST_F):

  • TestWebKitAPI/Tests/ios/WKScrollViewDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/CandidateTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/DOMNodeFromJSObject.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/SubresourceErrorCrash.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/TypingStyleCrash.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebScriptObjectDescription.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebViewCanPasteURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm:

(-[DidCreateJavaScriptContextFrameLoadDelegate webView:didCreateJavaScriptContext:forFrame:]):

  • TestWebKitAPI/cocoa/TestProtocol.mm:

(+[TestProtocol registerWithScheme:]):
(+[TestProtocol unregister]):

  • TestWebKitAPI/mac/InjectedBundleControllerMac.mm:

(TestWebKitAPI::InjectedBundleController::platformInitialize):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::addChromeInputField):

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(+[WebKitTestRunnerPasteboard releaseLocalPasteboards]):

11:25 AM Changeset in webkit [272918] by Patrick Angle
  • 3 edits in trunk/Source/WebCore

Web Inspector: CSS Grid - implement grid overlay options
https://bugs.webkit.org/show_bug.cgi?id=221644

Reviewed by Devin Rousso.

Added support to grid overlays for showExtendedGridlines and showLineNumbers settings and resolved issue
where scrolling the page did not adjust the overlay accordingly.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawLayoutHatching):

  • Draw a hatched fill for grid column and row gaps.

(WebCore::InspectorOverlay::drawLayoutLabel):

  • Draw a label inside a box with an arrow pointing to the target of the label.

(WebCore::InspectorOverlay::drawGridOverlay):

  • Added support for showExtendedGridlines setting.
  • Added support for showLineNumbers setting.
  • Overlay now scrolls with the page.
  • inspector/InspectorOverlay.h:
10:53 AM Changeset in webkit [272917] by Lauro Moura
  • 4 edits
    5 deletes in trunk/LayoutTests

[GLIB] Gardening and updating baselines

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:

Replaced these custom baselines with DumpJSConsoleLogInStdErr for the
soup messages to keep a single baseline. They were failing in WPE
after the php/py XMLHTTPRequest test server changes.

  • platform/wpe/http/tests/xmlhttprequest/XMLHttpRequestException-expected.txt: Removed.
  • platform/wpe/http/tests/xmlhttprequest/connection-error-sync-expected.txt: Removed.
  • platform/wpe/http/tests/xmlhttprequest/onloadend-event-after-error-expected.txt: Removed.
  • platform/wpe/http/tests/xmlhttprequest/onloadend-event-after-sync-requests-expected.txt: Removed.
  • platform/wpe/http/tests/xmlhttprequest/response-access-on-error-expected.txt: Removed.
10:47 AM Changeset in webkit [272916] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk/Source/WebKit

Connection clients should be able to obtain the messages as data instead of embedded in function references
https://bugs.webkit.org/show_bug.cgi?id=221560

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-16
Reviewed by Chris Dumez.

Add IPC::MessageReceiveQueue, an interface which obtains messages from
the message receive thread and forwards them to caller as data.
This is important in order to be able to skip messages that are stale
or originating from a sender which is incorrect. Before, the client
could only get the messages as Function references, and those cannot
be skipped as it would be undefined what not executing a function means.

IPC::MessageReceiveQueue is a generalization and simplification of current
IPC::Connection::ThreadMessageReceiverRefCounted and
IPC::Connection::WorkQueueMessageReceiver. It has different ref-count
semantics, in the way that client controls the life-time with add and
remove.

IPC::MessageReceiveQueue fixes message reordering bug with
WorkQueueMessageReceiver and ThreadMessageReceiver where first few messages
that are routed to main thread message queue can come later than some
other message that gets handled from message receive thread.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::addMessageReceiveQueue):
Add plain raw MessageReceiveQueue, to be used in WebGL IPC implementation.
Implement ThreadMessageReceiver and WorkQueueMessageReceiver with the
above.

(IPC::Connection::removeMessageReceiveQueue):
(IPC::Connection::dispatchMessageReceiverMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchMessage):

  • Platform/IPC/Connection.h:
  • Platform/IPC/MessageReceiveQueue.h: Copied from Source/WTF/wtf/FunctionDispatcher.h.
  • Platform/IPC/MessageReceiveQueues.h: Added.
  • Platform/IPC/MessageReceiveQueueMap.cpp: Added.

(IPC::MessageReceiveQueueMap::addImpl):
(IPC::MessageReceiveQueueMap::remove):
(IPC::MessageReceiveQueueMap::get const):

  • Platform/IPC/MessageReceiveQueueMap.h: Copied from Source/WTF/wtf/FunctionDispatcher.h.

(IPC::MessageReceiveQueueMap::isValidMessage):
(IPC::MessageReceiveQueueMap::add):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
10:08 AM Changeset in webkit [272915] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebKit

RemoteAudioSourceProviderManager is accessed in non-thread-safe manner
https://bugs.webkit.org/show_bug.cgi?id=221894

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-16
Reviewed by Chris Dumez.

Remove call to Connection::removeWorkQueueMessageReceiver() from the destructor.
The message receive destination is still active during destructor,
so Connection might dispatch new message tasks during that time.
This causes ref of the instance already being destroyed, which
then causes the tasks to use deleted instance and then later
deleting it again.

Other subclasses call add...() correctly.
Other subclasses never call remove..(). Assert that the instances are
never destroyed, as to never leave a dangling reference in the connection.

  • UIProcess/mac/SecItemShimProxy.cpp:

(WebKit::SecItemShimProxy::~SecItemShimProxy):

  • UIProcess/mac/SecItemShimProxy.h:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::~GPUProcessConnection):

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:

(WebKit::RemoteAudioSourceProviderManager::~RemoteAudioSourceProviderManager):
(WebKit::RemoteAudioSourceProviderManager::stopListeningForIPC):

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.h:
  • WebProcess/Inspector/WebInspectorInterruptDispatcher.cpp:

(WebKit::WebInspectorInterruptDispatcher::~WebInspectorInterruptDispatcher):

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::~PluginProcessConnectionManager):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::~EventDispatcher):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::~ViewUpdateDispatcher):

10:07 AM Changeset in webkit [272914] by youenn@apple.com
  • 5 edits in trunk/Source

libwebrtc installs some files into incorrect locations in /usr/local/include
https://bugs.webkit.org/show_bug.cgi?id=221534
<rdar://problem/74333613>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj:

Remove no longer needed private header copying.
Move vp9 header copying from common to webm.

Source/WebCore:

No change of behavior.

  • platform/graphics/cocoa/SourceBufferParserWebM.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

Update according new vp9 header code path.

10:04 AM Changeset in webkit [272913] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

AVAudioSessionCaptureDeviceManager should disable its audio session in a background thread
https://bugs.webkit.org/show_bug.cgi?id=221949
<rdar://problem/74315824>

Reviewed by Eric Carlson.

Manually tested.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::disableAllDevicesQuery):
Hop to a background thread before disabling the audio session.
Abort if audio session is no longer marked as unneeded.

10:04 AM Changeset in webkit [272912] by youenn@apple.com
  • 39 edits in trunk/LayoutTests

Reenable GPUProcess Media flag in WebRTC tests
https://bugs.webkit.org/show_bug.cgi?id=221911

Reviewed by Eric Carlson.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:
  • webrtc/captureCanvas-webrtc-software-h264-baseline.html:
  • webrtc/captureCanvas-webrtc-software-h264-high.html:
  • webrtc/captureCanvas-webrtc.html:
  • webrtc/concurrentVideoPlayback2.html:
  • webrtc/direction-change.html:
  • webrtc/disable-encryption.html:
  • webrtc/h264-baseline.html:
  • webrtc/h264-high.html:
  • webrtc/multi-audio.html:
  • webrtc/multi-video.html:
  • webrtc/peer-connection-track-end.html:
  • webrtc/peerconnection-page-cache-long.html:
  • webrtc/peerconnection-page-cache.html:
  • webrtc/remove-track.html:
  • webrtc/utf8-sdp.html:
  • webrtc/video-addTrack.html:
  • webrtc/video-addTransceiver.html:
  • webrtc/video-autoplay.html:
  • webrtc/video-disabled-black.html:
  • webrtc/video-h264.html:
  • webrtc/video-interruption.html:
  • webrtc/video-mediastreamtrack-stats.html:
  • webrtc/video-mute.html:
  • webrtc/video-remote-mute.html:
  • webrtc/video-replace-muted-track.html:
  • webrtc/video-replace-track-to-null.html:
  • webrtc/video-replace-track.html:
  • webrtc/video-rotation-no-cvo.html:
  • webrtc/video-rotation.html:
  • webrtc/video-setDirection.html:
  • webrtc/video-sframe.html:
  • webrtc/video-stats.html:
  • webrtc/video-unmute.html:
  • webrtc/video-with-data-channel.html:
  • webrtc/video.html:
9:57 AM Changeset in webkit [272911] by youenn@apple.com
  • 5 edits in trunk

MediaRecorder.stop() does not work correctly when recording has been paused.
https://bugs.webkit.org/show_bug.cgi?id=221916
<rdar://problem/74366154>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html:

Source/WebCore:

Proceed with stop steps in case of paused state, and not only in case of recording state.
Covered by added WPT test.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::stopRecordingInternal):

9:56 AM Changeset in webkit [272910] by youenn@apple.com
  • 5 edits in trunk

Set a default path for device ID hash salts
https://bugs.webkit.org/show_bug.cgi?id=221955

Reviewed by Eric Carlson.

Source/WebKit:

The default path was the empty string, which leads to not persist device IDs.
Update this to provide a valid default path like for other persisting data types.
Covered by API test.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::TEST):

9:26 AM Changeset in webkit [272909] by weinig@apple.com
  • 5 edits in trunk

lab() and lch() are not clamping out of bounds values at parse time
https://bugs.webkit.org/show_bug.cgi?id=221947

Reviewed by Simon Fraser.

The model level assertions caught this (yay). The spec requires that we
clamp negative lightness values to 0 for lab(), lch() and color(lab)
and negative chroma values to 0 for lch().

Source/WebCore:

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):

LayoutTests:

  • fast/css/parsing-lab-colors-expected.txt:
  • fast/css/parsing-lab-colors.html:
8:59 AM Changeset in webkit [272908] by achristensen@apple.com
  • 18 edits
    5 adds in trunk

Synthesize range responses if needed in WebCoreNSURLSession
https://bugs.webkit.org/show_bug.cgi?id=221072

Reviewed by Geoff Garen.

Source/WebCore:

When we make a media request with a Range HTTP header field and the server doesn't respond with a 206 with Content-Range header field,
until now we would just fail to play the video. In order to successfully play these videos, I introduce the RangeResponseGenerator class,
which will receive the data for a request for such a video and feed the data into WebCoreNSURLSession as the requested ranges are received.
Seeking is problematic, but at least we will try our best to play the video.

I added API tests that try to play a video that didn't play before using a server that doesn't support range requests. Manual verification is also necessary.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/PlatformMediaResourceLoader.h:

(WebCore::PlatformMediaResource::setClient):

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

(WebCore::PlatformResourceMediaLoader::create):

  • platform/network/ParsedRequestRange.cpp: Added.

(WebCore::ParsedRequestRange::parse):

  • platform/network/ParsedRequestRange.h: Added.

(WebCore::ParsedRequestRange::begin const):
(WebCore::ParsedRequestRange::end const):
(WebCore::ParsedRequestRange::ParsedRequestRange):

  • platform/network/cocoa/RangeResponseGenerator.h: Added.
  • platform/network/cocoa/RangeResponseGenerator.mm: Added.

(WebCore::RangeResponseGenerator::Data::Data):
(WebCore::RangeResponseGenerator::Data::TaskData::TaskData):
(WebCore::synthesizedResponseForRange):
(WebCore::RangeResponseGenerator::removeTask):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
(WebCore::RangeResponseGenerator::expectedContentLengthFromData):
(WebCore::RangeResponseGenerator::giveResponseToTasksWithFinishedRanges):
(WebCore::RangeResponseGenerator::willHandleRequest):
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession rangeResponseGenerator]):
(-[WebCoreNSURLSession dataTaskWithURL:]):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent):
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::shouldCacheResponse):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::accessControlCheckFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFinished):
(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask _finish]):
(-[WebCoreNSURLSessionDataTask resource:sentBytes:totalBytesToBeSent:]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):
(-[WebCoreNSURLSessionDataTask resource:shouldCacheResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedData:length:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]):
(-[WebCoreNSURLSessionDataTask resource:accessControlCheckFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resource:loadFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resourceFinished:metrics:]):
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:URL:]): Deleted.

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::requestResource):

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TestWebKitAPI::clientCertServer):

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::testVideoBytes):
(TestWebKitAPI::runVideoTest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPResponse::HTTPResponse):
(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse): Deleted.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::RequestData::RequestData):
(TestWebKitAPI::appendToVector):
(TestWebKitAPI::HTTPServer::parsePath):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::HTTPResponse::bodyFromString):
(TestWebKitAPI::HTTPResponse::serialize):

8:48 AM Changeset in webkit [272907] by commit-queue@webkit.org
  • 3 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/in-app-browser-privacy convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221928
<rdar://problem/74366517>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-16
Reviewed by Jonathan Bedard.

  • http/tests/in-app-browser-privacy/resources/redirect.php: Removed.
  • http/tests/in-app-browser-privacy/resources/redirect.py: Added.
  • http/tests/in-app-browser-privacy/sub-frame-redirect-to-non-app-bound-domain-blocked.html:
  • http/tests/in-app-browser-privacy/top-frame-redirect-to-non-app-bound-domain-blocked.html:
8:46 AM Changeset in webkit [272906] by Antti Koivisto
  • 5 edits
    2 adds in trunk

[LFC][Integration] Pass child inline block scroll overflow to parent
https://bugs.webkit.org/show_bug.cgi?id=221958
rdar://74050874

Reviewed by Zalan Bujtas.

Source/WebCore:

Integrated LFC fails to pass through overflow from nested inline blocks.

Test: fast/overflow/inline-block-scroll-overflow.html

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::InlineContentBuilder):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

Find the associated RenderBox and collect overflow from it.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

LayoutTests:

  • fast/overflow/inline-block-scroll-overflow-expected.html: Added.
  • fast/overflow/inline-block-scroll-overflow.html: Added.
8:10 AM Changeset in webkit [272905] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebKit

ThreadMessageReceiverRefCounted subclasses are accessed in non-thread-safe way
https://bugs.webkit.org/show_bug.cgi?id=221891

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-16
Reviewed by Chris Dumez.

For each ThreadMessageReceiverRefCounted subclass, remove calls
to Connection::addThreadMessageReceiver() from the constructor.
The calls pass 'this' as the ThreadMessageReceiver*. If the
connection tries to dispatch a message during the constructor, this
results in some or all of below:

  • non-thread-safe read of mutated virtual function pointer
  • call to incorrect member function, mostly to MessageReceiver::didReceiveMessage
  • an assert from above
  • skipped message

For each ThreadMessageReceiverRefCounted subclass, remove calls
to Connection::removeThreadMessageReceiver() from the destructor.
The message receive destination is still active during destructor,
so Connection might dispatch new message tasks during that time.
This causes ref of the instance already being destroyed, which
then causes the tasks to use deleted instance and then later
deleting it again.

Does not try to fix any other potential thread-related issues in
the modified areas.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp:

(WebKit::RemoteAudioMediaStreamTrackRendererManager::RemoteAudioMediaStreamTrackRendererManager):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::startListeningForIPC):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::close):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::RemoteSampleBufferDisplayLayerManager):
(WebKit::RemoteSampleBufferDisplayLayerManager::startListeningForIPC):
(WebKit::RemoteSampleBufferDisplayLayerManager::close):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::startListeningForIPC):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::create):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::startListeningForIPC):
(WebKit::LibWebRTCCodecs::~LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:

(WebKit::LibWebRTCCodecs::create):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:

(WebKit::LibWebRTCNetwork::~LibWebRTCNetwork):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::libWebRTCCodecs):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::~RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::stopListeningForIPC):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):

  • WebProcess/glib/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):

7:18 AM Changeset in webkit [272904] by graouts@webkit.org
  • 77 edits in trunk

Web Animations JS API does not support "inherit" CSS values for keyframes
https://bugs.webkit.org/show_bug.cgi?id=221931

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-align/animation/column-gap-interpolation-expected.txt:
  • web-platform-tests/css/css-align/animation/row-gap-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-color-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-position-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-position-origin-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-position-x-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-position-y-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-color-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-source-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-interpolation-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt:
  • web-platform-tests/css/css-color/animation/color-interpolation-expected.txt:
  • web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-basis-interpolation-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-grow-interpolation-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-shrink-interpolation-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/order-interpolation-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-size-interpolation-001-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-size-interpolation-002-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-stretch-interpolation-expected.txt:
  • web-platform-tests/css/css-lists/animations/list-style-image-interpolation-expected.txt:
  • web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt:
  • web-platform-tests/css/css-multicol/animation/column-rule-color-interpolation-expected.txt:
  • web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
  • web-platform-tests/css/css-position/animations/bottom-interpolation-expected.txt:
  • web-platform-tests/css/css-position/animations/left-interpolation-expected.txt:
  • web-platform-tests/css/css-position/animations/right-interpolation-expected.txt:
  • web-platform-tests/css/css-position/animations/top-interpolation-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-image-threshold-interpolation-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-interpolation-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/height-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-height-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-width-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt:
  • web-platform-tests/css/css-text/animations/letter-spacing-interpolation-expected.txt:
  • web-platform-tests/css/css-text/animations/text-indent-interpolation-expected.txt:
  • web-platform-tests/css/css-text/animations/word-spacing-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/perspective-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-006-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-origin-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-transitions/animations/z-index-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/caret-color-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-color-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-offset-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-width-interpolation-expected.txt:

Source/WebCore:

When a KeyframeEffect compute its blending keyframes with KeyframeEffect::updateBlendingKeyframes(),
it calls into Style::Resolver::styleForKeyframe(). However, we wouldn't have a parent element style
to pass into this method and thus the "inherit" value wouldn't have a parent element style to know
what it should be, which meant we just used the value set on the element as fallback.

In a similar fashion as to what was done in r272898, the fix for bug 221926, we send down the parent
element style throughout the Web Animations resolution code such that KeyframeEffect::apply() can
pass it to KeyframeEffect::updateBlendingKeyframes() and finally to Style::Resolver::styleForKeyframe().

This simple fix adds 354 new PASS results in the WPT test suite.

  • animation/AnimationEffect.h:
  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForStyleableAndProperty):

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::resolve):

  • animation/CSSTransition.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::applyKeyframeEffects):

  • animation/KeyframeEffectStack.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::commitStyles):

  • animation/WebAnimation.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

  • style/Styleable.h:

(WebCore::Styleable::applyKeyframeEffects const):

LayoutTests:

Mark WPT progressions for a couple tests with platform-specific results.

  • platform/ios/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt:
6:15 AM Changeset in webkit [272903] by Chris Lord
  • 2 edits in trunk/LayoutTests

[GLIB] Many service worker tests unexpectedly pass consistently
https://bugs.webkit.org/show_bug.cgi?id=221954

Unreviewed test gardening.

  • platform/glib/TestExpectations: Remove a bunch of failure expectations in service worker tests
4:35 AM Changeset in webkit [272902] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Enable GPU WebRTC codecs in GPUProcess by default on iOS
https://bugs.webkit.org/show_bug.cgi?id=221562

Reviewed by Eric Carlson.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebRTCCodecsInGPUProcess):

4:26 AM Changeset in webkit [272901] by Chris Lord
  • 2 edits in trunk/LayoutTests

[GTK][WPE] tex-image-and-sub-image-2d-with-video tests pass unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=221951

Unreviewed test gardening.

  • platform/glib/TestExpectations:
3:57 AM Changeset in webkit [272900] by commit-queue@webkit.org
  • 4 edits in trunk

Teardown shadow root renderers on hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=221386

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-16
Reviewed by Antti Koivisto.

Source/WebCore:

When details element has a display contents style, the default summary renderer is not cleared when a new
summary element is added. This causes that both summary elements are rendered at the same time, instead of the
active one. The crash happens when the details element is removed from the document, because the default summary
element still has a valid renderer on destroy.

  • dom/SlotAssignment.h:

(WebCore::ShadowRoot::hostChildElementDidChange):

LayoutTests:

  • tables/table-col-indent-crash-expected.txt:
2:26 AM Changeset in webkit [272899] by Chris Lord
  • 2 edits in trunk/LayoutTests

REGRESSION(r214503): [GTK] Test canvas/philip/tests/2d.pattern.animated.gif.html started to fail after r214503
https://bugs.webkit.org/show_bug.cgi?id=170335

It looks like this was fixed by r272776.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
12:56 AM Changeset in webkit [272898] by graouts@webkit.org
  • 15 edits in trunk/Source/WebCore

Style::Resolver::styleForKeyframe() should take in the parent style
https://bugs.webkit.org/show_bug.cgi?id=221926

Reviewed by Darin Adler.

Address the FIXME in Style::TreeResolver::createAnimatedElementUpdate() such that the parent
style is passed all the way from that function down to Style::Resolver::styleForKeyframe()
removing the need for Style::Resolver::setParentElementStyleForKeyframes().

This is a refactoring change only, so there is no new test.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSAnimationsForStyleable):

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create):

  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::create):

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::initialize):

  • animation/DeclarativeAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • animation/KeyframeEffect.h:
  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::fillImplicitKeyframes):

  • rendering/style/KeyframeList.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::keyframeStylesForAnimation):

  • style/StyleResolver.h:

(WebCore::Style::Resolver::setParentElementStyleForKeyframes): Deleted.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

12:54 AM Changeset in webkit [272897] by ysuzuki@apple.com
  • 5 edits
    1 copy
    1 add
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Dynamically generate entitlements
https://bugs.webkit.org/show_bug.cgi?id=221944

Reviewed by Saam Barati.

This patch generates entitlements at compile time since we need to selectively add certain entitlements to binaries.
It follows r248164's way: we must not use CODE_SIGN_ENTITLEMENTS because XCode inserts implicit code-signing
and it breaks our pipeline. We need to disable this XCode's implicit behavior by setting CODE_SIGN_INJECT_BASE_ENTITLEMENTS.

And we also create TestAPI.xcconfig to apply generated entitlements only to testapi and jsc shell.

  • Configurations/Base.xcconfig:
  • Configurations/JSC.xcconfig:
  • Configurations/TestAPI.xcconfig: Copied from Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig.
  • Configurations/ToolExecutable.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/process-entitlements.sh: Added.
  • allow-jit-macOS.entitlements: Removed.
  • testapi.entitlements: Removed.

Feb 15, 2021:

8:29 PM Changeset in webkit [272896] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] Close XPC connections before entering sandbox
https://bugs.webkit.org/show_bug.cgi?id=221905
<rdar://problem/70359582>

Reviewed by Brent Fulgham.

Source/WebKit:

XPC connections that are now allowed in the sandbox should be closed before entering the sandbox.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters):

Source/WTF:

Add softlinking macro for libraries in /usr/lib/system/.

  • wtf/cocoa/SoftLinking.h:
8:21 PM Changeset in webkit [272895] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

Remove 'com.apple.powerlog.plxpclogger.xpc' from WebKit sandboxes
https://bugs.webkit.org/show_bug.cgi?id=221840
<rdar://problem/73579040>

Reviewed by Brent Fulgham.

Remove this service from WebKit sandboxes, since it is not required for correctness.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::diagnosticServices):

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
8:11 PM Changeset in webkit [272894] by wilander@apple.com
  • 8 edits in trunk

PCM: Add high entropy attributionSourceNonce attribute to anchor tags
https://bugs.webkit.org/show_bug.cgi?id=221934
<rdar://73581230>

Reviewed by Jiewen Tan.

In Private Click Measurement (PCM), the source site should have the option to
provide a high entropy nonce with which PCM can asynchronously validate its
subsequent, asynchronous request for a signature of its unlinkable token.

The nonce attribute's name is attributionSourceNonce and it's a
128-bit/16-byte Base64URL encoded string.

The attribute is behind the experimental feature flag
PrivateClickMeasurementFraudPrevention.

Source/WebCore:

New API tests added.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • html/HTMLAnchorElement.idl:
  • html/HTMLAttributeNames.in:
  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::EphemeralSourceNonce):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const):
(WebCore::PrivateClickMeasurement::setEphemeralSourceNonce):
(WebCore::PrivateClickMeasurement::ephemeralSourceNonce const):
(WebCore::PrivateClickMeasurement::clearEphemeralSourceNonce):

  • page/Settings.yaml:

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

6:06 PM Changeset in webkit [272893] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed, fix the Apple internal iOS build after r272878

Wrap NSScrollViewSPI.h in a USE(APPKIT) guard, so that we don't attempt to import AppKit headers when
building for iOS using the internal SDK.

  • pal/spi/mac/NSScrollViewSPI.h:
5:51 PM Changeset in webkit [272892] by msaboff@apple.com
  • 10 edits in trunk/Source

[ARM64] Change break instruction comment to indicate possible security failure
https://bugs.webkit.org/show_bug.cgi?id=221936

Reviewed by Mark Lam.

Source/bmalloc:

Change the ASSERT break comment immediate to the same value the C++ compiler uses.

  • bmalloc/BAssert.h:

Source/JavaScriptCore:

We change the comment value to indicate a possible security issue by
using the same value the C++ compiler emits.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::breakpoint):

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64OpcodeExceptionGeneration::format):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64OpcodeExceptionGeneration::immediate16):

  • offlineasm/arm64.rb:

Source/WTF:

Change the ASSERT break comment immediate to the same value the C++ compiler uses.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
4:27 PM Changeset in webkit [272891] by Truitt Savell
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r272867.

Broke 50+ fast/layoutformattingcontext/ tests on Mac Debug WK2

Reverted changeset:

"Page scrolling by wheel events doesn't work in non-AC mode
pages if Hardware Acceleration Policy is changed dynamically
from "always" to "never""
https://bugs.webkit.org/show_bug.cgi?id=221067
https://commits.webkit.org/r272867

4:18 PM Changeset in webkit [272890] by eric.carlson@apple.com
  • 29 edits in trunk/Source

[macOS] Connect Touch Bar to MediaSession
https://bugs.webkit.org/show_bug.cgi?id=221921
<rdar://problem/74363311>

Reviewed by Jer Noble.

Source/WebCore:

These changes can only be tested manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): PlatformMediaSession::RemoteCommandArgument
is a struct.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::didReceiveRemoteControlCommand): Ditto. Track BeginScrubbing
and EndScrubbing so we know when to set the 'fastSeek' flag when sending a SeekTo command.

  • html/MediaElementSession.h:
  • platform/NowPlayingManager.h:
  • platform/audio/PlatformMediaSession.cpp: PlatformMediaSession::RemoteCommandArgument

is a struct.
(WebCore::convertEnumerationToString):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::RemoteCommandArgument::encode const):
(WebCore::PlatformMediaSession::RemoteCommandArgument::decode):

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModel::sendRemoteCommand): Ditto.

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::sendRemoteCommand): Ditto.

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Ditto.

  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm:

(WebCore::PlaybackSessionInterfaceMac::willBeginScrubbing): Pull the logic to update
controls manager timing out of beginScrubbing so it can be used from WebPlaybackControlsManager.
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):

  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): PlatformMediaSession::RemoteCommandArgument
is a struct.

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): Call
sendRemoteCommand.
(-[WebPlaybackControlsManager beginTouchBarScrubbing]): Ditto.
(-[WebPlaybackControlsManager endTouchBarScrubbing]): Ditto.
(-[WebPlaybackControlsManager togglePlayback]): Ditto.
(-[WebPlaybackControlsManager setPlaying:]): Ditto.
(-[WebPlaybackControlsManager togglePictureInPicture]): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::postRemoteControlCommand): Ditto.

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didReceiveRemoteControlCommand): PlatformMediaSession::RemoteCommandArgument
is a struct.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionModelContext::sendRemoteCommand):
(WebKit::PlaybackSessionManagerProxy::sendRemoteCommand):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveRemoteCommand):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/GPUProcessConnection.messages.in:
  • WebProcess/GPU/media/RemoteRemoteCommandListener.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionManager::sendRemoteCommand):

4:16 PM Changeset in webkit [272889] by timothy@apple.com
  • 8 edits in trunk/Source

Web Inspector: Add a way to wake up debuggables to the remote inspector protocol
https://bugs.webkit.org/show_bug.cgi?id=221871
rdar://70351644

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::xpcConnectionReceivedMessage): Handle WIRApplicationWakeUpDebuggablesMessage.
(Inspector::RemoteInspector::receivedWakeUpDebuggables): Added. Call the client.

Source/WebKit:

  • UIProcess/API/Cocoa/_WKAutomationDelegate.h:
  • UIProcess/Cocoa/AutomationClient.h:
  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::AutomationClient): Check if the delegate responds to new method.
(WebKit::AutomationClient::requestedDebuggablesToWakeUp): Added. Call new process pool delegate method.

4:09 PM Changeset in webkit [272888] by Said Abou-Hallawa
  • 8 edits in trunk/Source

[GPU Process] Ensure that no image decoders run in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221885
<rdar://problem/74341122>

Reviewed by Simon Fraser.

Source/WebCore:

Release assert no PDF image is created in the GPU Process.

  • platform/graphics/cg/PDFDocumentImage.h:

Source/WebCore/PAL:

Add CGImageSourceSetAllowableTypes() to the ImageIO SPI header file.

  • pal/spi/cg/ImageIOSPI.h:

Source/WebKit:

Make GPU Process force ImageIO to disable all image decoding.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

Source/WTF:

CGImageSourceSetAllowableTypes() is available starting from macOS Big Sur
and iOS 14.0.

  • wtf/PlatformHave.h:
3:49 PM Changeset in webkit [272887] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[GPUP] Ignore an IPC message if the message receiver has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=221920

Reviewed by Eric Carlson.

No new tests, fixing test crashes due to assertion failures.

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

3:29 PM Changeset in webkit [272886] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION r272823): Crash in ARM64e Wasm tests
https://bugs.webkit.org/show_bug.cgi?id=221922

Reviewed by Mark Lam.

Updated to properly compute the size of thread_state_t as well as the offset of
the PC found in thread_state_t.

  • wtf/threads/Signals.cpp:

(WTF::hashThreadState):

3:08 PM Changeset in webkit [272885] by Alexey Shvayka
  • 31 edits
    6 adds
    2 deletes in trunk

[JSC] PropertySlot should allow passing custom setters
https://bugs.webkit.org/show_bug.cgi?id=221872

Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/attributes-accessors-unique-function-objects-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/attributes-accessors-unique-function-objects.html: Added.
  • web-platform-tests/dom/events/Event-isTrusted.any-expected.txt:
  • web-platform-tests/dom/events/Event-isTrusted.any.worker-expected.txt:
  • web-platform-tests/html/browsers/history/the-location-interface/document_location-expected.txt:
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt:
  • web-platform-tests/html/browsers/windows/embedded-opener-expected.txt:

Source/JavaScriptCore:

This patch:

  1. Merges PropertySlot::TypeCustomAccessor into TypeCustom, allowing to pass a setter for CustomAccessor / CustomValue. Raw C++ function pointers are used to avoid creating CustomGetterSetter instances for non-reified static properties.
  2. Reworks JSObject::getOwnPropertyDescriptor() for custom accessors, making it simpler, more robust, and no longer required to reify all static properties.
  3. Hoists GetValueFunc / PutValueFunc declarations to JSC namespace so they can be used in header files.
  4. Moves CustomAccessor's wrapper maps to JSGlobalObject (because VM outlives it) and simplifies their keys to C++ function pointers.
  5. Splits JSCustomGetterSetterFunction into JSCustomGetterFunction / JSCustomSetterFunction since their signatures and Call? logic are quite different. This is a nice refactor that also simplifies garbage collection and reduces memory needed for setter wrappers.
  6. Removes PropertyDescriptor::setCustomDescriptor(), making PropertyDescriptor unaware of custom accessors. Also, drops CustomAccessor check from validateAndApplyPropertyDescriptor() that was incorrect (no error should be thrown if accessors are unchanged) yet unreachable because PropertyDescriptor::equalTo() ignores CustomAccessor.

This change fixes a) accessor functions of unforgeable properties [1] to be persistent
(in terms of referential equality) and b) cross-realm accessor functions to be of correct
global object (instead of lexical).

[1]: https://heycam.github.io/webidl/#dfn-unforgeable-on-an-interface

  • API/JSCallbackObject.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/JSCustomGetterFunction.cpp: Added.

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSCustomGetterFunction::JSCustomGetterFunction):
(JSC::JSCustomGetterFunction::create):

  • runtime/JSCustomGetterFunction.h: Added.
  • runtime/JSCustomGetterSetterFunction.cpp: Removed.
  • runtime/JSCustomGetterSetterFunction.h: Removed.
  • runtime/JSCustomSetterFunction.cpp: Added.

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSCustomSetterFunction::JSCustomSetterFunction):
(JSC::JSCustomSetterFunction::create):

  • runtime/JSCustomSetterFunction.h: Added.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::customGetterFunctionMap):
(JSC::JSGlobalObject::customSetterFunctionMap):
(JSC::JSGlobalObject::customGetterFunctionStructure const):
(JSC::JSGlobalObject::customSetterFunctionStructure const):
(JSC::JSGlobalObject::customGetterSetterFunctionStructure const): Deleted.

  • runtime/JSObject.cpp:

(JSC::getCustomGetterFunction):
(JSC::getCustomSetterFunction):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::validateAndApplyPropertyDescriptor):
(JSC::getCustomGetterSetterFunctionForGetterSetter): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::fillCustomGetterPropertySlot):

  • runtime/Lookup.h:

(JSC::getStaticPropertySlotFromTable):

  • runtime/PropertyDescriptor.cpp:

(JSC::PropertyDescriptor::setAccessorDescriptor):
(JSC::PropertyDescriptor::setCustomDescriptor): Deleted.

  • runtime/PropertyDescriptor.h:
  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::customAccessorGetter const): Deleted.

  • runtime/PropertySlot.h:

(JSC::PropertySlot::isCustom const):
(JSC::PropertySlot::customGetter const):
(JSC::PropertySlot::customSetter const):
(JSC::PropertySlot::setCustom):
(JSC::PropertySlot::setCacheableCustom):
(JSC::PropertySlot::getValue const):
(JSC::PropertySlot::isCustomAccessor const): Deleted.
(JSC::PropertySlot::customGetterSetter const): Deleted.
(JSC::PropertySlot::setCustomGetterSetter): Deleted.

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

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

To prevent cross-origin accessor functions from different realms to have the same wrapper,
return PropertySlot::TypeGetter instead.

Tests: fast/dom/Window/getOwnPropertyDescriptor-other-window.html

js/instance-property-getter-other-instance.html
imported/w3c/web-platform-tests/dom/events/Event-isTrusted.any.js
imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/document_location.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::getOwnPropertySlotCommon):

LayoutTests:

  • fast/dom/Window/getOwnPropertyDescriptor-other-window-expected.txt:
  • fast/dom/Window/getOwnPropertyDescriptor-other-window.html:
  • js/instance-property-getter-other-instance-expected.txt:
  • js/instance-property-getter-other-instance.html:
3:03 PM Changeset in webkit [272884] by wenson_hsieh@apple.com
  • 8 edits
    2 adds in trunk/Source/WebKit

[macOS] Add a ShareableBitmap with decoded image data to WebHitTestResultData
https://bugs.webkit.org/show_bug.cgi?id=221869

Reviewed by Tim Horton.

Add WebHitTestResultData::imageBitmap; we'll use this in future patches to vend decoded image data to system
frameworks for image extraction.

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):
(WebKit::WebHitTestResultData::encode const):
(WebKit::WebHitTestResultData::decode):

Add imageBitmap and decoding/encoding support using ShareableBitmap::Handle.

  • Shared/WebHitTestResultData.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp: Added.

(WebKit::createShareableBitmap):

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.h: Added.

Pull logic to decode rendered image data into a bitmap into a separate helper function; use this helper function
in WebHitTestResultData, as well as a couple of existing call sites in WebPage.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestImageExtraction):
(WebKit::WebPage::shareableBitmap const): Deleted.

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

(WebKit::imagePositionInformation):

2:40 PM Changeset in webkit [272883] by Caio Lima
  • 14 edits
    1 copy
    8 adds in trunk

[ESNext] Implement private accessors
https://bugs.webkit.org/show_bug.cgi?id=194435

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/private-accesor-duplicate-name-early-errors.js: Added.
  • stress/private-getter-brand-check.js: Added.
  • stress/private-getter-inner-class.js: Added.
  • stress/private-members-get-and-set.js: Added.
  • stress/private-methods-and-accessors-postfix-node.js: Added.
  • stress/private-methods-and-accessors-prefix-node.js: Added.
  • stress/private-names-available-on-direct-eval.js:
  • stress/private-names-available-on-eval-during-field-initialization.js: Copied from JSTests/stress/private-names-available-on-direct-eval.js.
  • stress/private-setter-brand-check.js: Added.
  • stress/private-setter-inner-class.js: Added.
  • test262/config.yaml:
  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch is implementing support for instance private getters and
setters following the proposal on https://tc39.es/proposal-private-methods.
Private accessors also use the private brand check mechanism of
private methods, which means that we are using both
op_set_private_brand and op_check_private_brand to perform brand
checks. Accessors are also stored on class lexical scope as a pair of
getter and setter. This is done creating a new JSObject and
storing the getter on get property, and setter on set
property. This is designed in such way that we can always hit IC fast
path on get_by_id_direct to access the property, and also to allow
constant folding of accessors on DFG/FTL, since acessors objects are
going to be constant once created.

For reference, we have the following bytecode for a private getter
access:

`
class C {

get #m() {...}
access() {

return this.#m;

}

}
`

Bytecode for class declaration:

`
...
new_object dst:loc12, inlineCapacity:2 this is the object to store getter and setter pair
new_func_exp dst:loc13, scope:loc4, functionDecl:"get #m() {...}"
put_by_id base:loc13, property:@homeObject, value:loc11, flags:Strict
put_by_id base:loc12, property:@get, value:loc13, flags:IsDirect|Strict
put_to_scope scope:loc4, var:#m, value:loc12
loc4 is the class lexical scope
...

`

Bytecode for access():

`
...
resolve_scope dst:loc7, scope:loc4, var:"#m", resolveType:GlobalProperty, localScopeDepth:0
get_from_scope dst:loc8, scope:loc7, var:@privateBrand
check_private_brand base:this, brand:loc8
get_from_scope dst:loc8, scope:loc7, var:"#m"
get_by_id_direct dst:loc9, base:loc8, property:@get
mov dst:loc10, src:this
call dst:loc6, callee:loc9, argc:1, argv:16
...

`

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::getPrivateTraits):
(JSC::BytecodeGenerator::getAvailablePrivateAccessNames):
(JSC::BytecodeGenerator::isPrivateMethod): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode):
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::BaseDotNode::emitGetPropertyValue):
(JSC::BaseDotNode::emitPutProperty):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitDot):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseGetterSetter):

  • parser/Parser.h:

(JSC::Scope::declarePrivateSetter):
(JSC::Scope::declarePrivateGetter):

  • parser/VariableEnvironment.cpp:

(JSC::VariableEnvironment::declarePrivateAccessor):
(JSC::VariableEnvironment::declarePrivateSetter):
(JSC::VariableEnvironment::declarePrivateGetter):

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::isPrivateSetter const):
(JSC::VariableEnvironmentEntry::isPrivateGetter const):
(JSC::VariableEnvironmentEntry::setIsPrivateSetter):
(JSC::VariableEnvironmentEntry::setIsPrivateGetter):
(JSC::PrivateNameEntry::isSetter const):
(JSC::PrivateNameEntry::isGetter const):
(JSC::PrivateNameEntry::isField const):
(JSC::PrivateNameEntry::isPrivateMethodOrAcessor const):
(JSC::VariableEnvironment::declarePrivateSetter):
(JSC::VariableEnvironment::declarePrivateGetter):

  • runtime/ExceptionHelpers.cpp:

(JSC::createPrivateMethodAccessError):

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

[WPE][GTK] SleepDisabler does not inhibit sleep with bubblewrap sandbox enabled: need to run xdg-dbus-proxy under bwrap or xdg-desktop-portal does not read our app ID
https://bugs.webkit.org/show_bug.cgi?id=219010

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-15
Reviewed by Carlos Garcia Campos.

We need to run xdg-dbus-proxy under bubblewrap so that we can mount /.flatpak-info in its
mount namespace. Why? Because xdg-desktop-portal checks the pid of its D-Bus peer using
Unix credentials, then looks in that process's mount namespace to read its app ID from
/.flatpak-info. If /.flatpak-info doesn't exist, then any portals that depend on the app ID
will break, including the inhibit portal that we need to prevent the system from suspending
during video playback. This normally works because flatpak runs xdg-dbus-proxy under
bubblewrap and mounts /.flatpak-info, but it breaks for WebKit because we don't. Start doing
so.

This method of getting the app ID might seem like a strange contortion, but it's really
required beacuse the sandboxed process cannot be trusted to provide its own app ID, and will
not have write access to its /.flatpak-info so we can rely on that.

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::createFlatpakInfo):
(WebKit::XDGDBusProxyLauncher::launch):
(WebKit::bubblewrapSpawn):

2:22 PM Changeset in webkit [272881] by Aditya Keerthi
  • 10 edits in trunk

[iOS][FCR] Add new look for input type=range with datalist
https://bugs.webkit.org/show_bug.cgi?id=221782
<rdar://problem/74251214>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/forms/ios/form-control-refresh/range/datalist.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::listOptionValueAsDouble):

Added a helper method to validate and sanitize an option element's
value, and return it as a double.

  • html/HTMLInputElement.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSliderTicks):

  • rendering/RenderTheme.h:

Make paintSliderTicks a virtual method to support a custom implementation
for iOS. Use FloatRect instead of IntRect for subpixel accuracy.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSliderTicks):
(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):

LayoutTests:

Added a reference mismatch test to verify that range inputs with
different datalist option values do not appear the same.

  • fast/forms/ios/form-control-refresh/range/datalist-expected-mismatch.html:
  • fast/forms/ios/form-control-refresh/range/datalist.html:
2:16 PM Changeset in webkit [272880] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Crash under WorkerThreadableLoader::MainThreadBridge::notifyIsDone()
https://bugs.webkit.org/show_bug.cgi?id=221906
<rdar://74225448>

Reviewed by Alex Christensen.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::computeIsDone):
r267227 added this function and this was the first case where the DocumentThreadableLoader
would do an async operation and ref itself during the operation. I believe this was the
source of the crash as this could cause DocumentThreadableLoader to outlive its client.
When DocumentThreadableLoader::notifyIsDone() would get called later on, m_client may be
bad. To maintain pre-r267227 behavior, we now capture a WeakPtr to |this| instead of a
Ref<>, so that we don't unnecessarily extend the lifetime of the DocumentThreadableLoader.

  • loader/DocumentThreadableLoader.h:

(WebCore::DocumentThreadableLoader::clearClient):
Add new clearClient() function to DocumentThreadableLoader so that the client can clear
the raw pointer the DocumentThreadableLoader holds to it before getting destroyed. I wanted
to use WeakPtr but this did not work out due to multithreading.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
Before destroying itself, WorkerThreadableLoader::MainThreadBridge now clears the
raw pointer to it that DocumentThreadableLoader holds. This is important since
DocumentThreadableLoader is RefCounted and its lifetime may get extended past
the MainThreadBridge.

  • loader/WorkerThreadableLoader.h:

Use tighter typing for clarity.

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

Fix -Wunused-variable warning
https://bugs.webkit.org/show_bug.cgi?id=221653
<rdar://problem/74280146>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-15
Reviewed by Alex Christensen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

1:48 PM Changeset in webkit [272878] by commit-queue@webkit.org
  • 8 edits
    4 moves
    1 add in trunk/Source/WebCore

Pull Mac-only code out of ScrollController
https://bugs.webkit.org/show_bug.cgi?id=221462
<rdar://problem/74273853>

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-15
Reviewed by Simon Fraser.

No new tests. This should not change behavior.

Split out Mac-specific code from ScrollController and prepare it for use on
non-Cocoa platforms. This code must be pulled out primarily because it is
Objective-C++ code and should maintain the .mm extension. The idea here is to
isolate the basic platform-independent scroll snapping code and gradually make
the rest (related to handling wheel events) more-and-more platform-independent.

  • PlatformMac.cmake: Update source list.
  • Sources.txt: Ditto.
  • SourcesCocoa.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • page/scrolling/ScrollingMomentumCalculator.cpp: Guard code with ENABLE(CSS_SCROLL_SNAP).
  • platform/ScrollController.cpp: Added.

This file contains only the platform-independent scroll snapping code that will be
used to add initial scroll snap support to other ports.

  • platform/ScrollController.h: Renamed from Source/WebCore/platform/cocoa/ScrollController.h.
  • platform/ScrollSnapAnimatorState.cpp: Renamed from Source/WebCore/platform/cocoa/ScrollSnapAnimatorState.mm.
  • platform/ScrollSnapAnimatorState.h: Renamed from Source/WebCore/platform/cocoa/ScrollSnapAnimatorState.h.
  • platform/graphics/cg/GraphicsContextGLCG.cpp: Fix unified source build issue exposed by this

change.

  • platform/mac/ScrollController.mm: Renamed from Source/WebCore/platform/cocoa/ScrollController.mm.
  • platform/mac/VideoFullscreenInterfaceMac.mm: Fix unified source build issue.
1:42 PM Changeset in webkit [272877] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Fix fast/text/justify-nbsp.html tests with inlines enabled
https://bugs.webkit.org/show_bug.cgi?id=221908

Reviewed by Antti Koivisto.

Non-breaking-space is not taken into account when counting the number of expansion opportunities. Disable IFC for now.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForCharacter):

  • layout/integration/LayoutIntegrationCoverage.h:
1:40 PM Changeset in webkit [272876] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, silence -Wreturn-type warning
https://bugs.webkit.org/show_bug.cgi?id=221881
<rdar://problem/74358043>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-15

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseRGBParameters):

1:21 PM Changeset in webkit [272875] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Unreviewed, reverting r272863.
https://bugs.webkit.org/show_bug.cgi?id=221918

broke process launching

Reverted changeset:

"[WPE][GTK] SleepDisabler does not inhibit sleep with
bubblewrap sandbox enabled: need to run xdg-dbus-proxy under
bwrap or xdg-desktop-portal does not read our app ID"
https://bugs.webkit.org/show_bug.cgi?id=219010
https://trac.webkit.org/changeset/272863

12:42 PM Changeset in webkit [272874] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add python 3 support - part 2
https://bugs.webkit.org/show_bug.cgi?id=221899

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py: Map unicode() to str() for python 3, in order to keep code compatible with

both Python 2 and 3.
(ValidateCommiterAndReviewer.load_contributors): Used items instead of iteritems.
(PrintConfiguration.convert_build_to_os_name): Ditto.

  • CISupport/ews-build/steps_unittest.py:

(BuildStepMixinAdditions.executedSteps): Converted filter to list comprehension.

  • CISupport/ews-build/factories_unittest.py: Ditto.
12:28 PM Changeset in webkit [272873] by achristensen@apple.com
  • 11 edits in trunk/Source/WebKit

Unexpected ASSERT when touch events are dispatched on the main thread
https://bugs.webkit.org/show_bug.cgi?id=221832

Reviewed by Dean Jackson.

The TouchEvent message is special. It's received on a non-main thread and completed on the main thread, which asserts.
Rather than lose our asserts making sure our message CompletionHandlers are called on the correct thread,
mark this one with a new attribute, MainThreadCallback, which indicates that it is ok for the callback to be called on the main thread
like it was before r272558 in a different form.

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsync):

  • Scripts/webkit/messages.py:
  • Scripts/webkit/model.py:
  • Scripts/webkit/tests/TestWithImageDataMessages.h:
  • Scripts/webkit/tests/TestWithLegacyReceiverMessages.h:
  • Scripts/webkit/tests/TestWithSemaphoreMessages.h:
  • Scripts/webkit/tests/TestWithSuperclass.messages.in:
  • Scripts/webkit/tests/TestWithSuperclassMessages.h:
  • Scripts/webkit/tests/TestWithoutAttributesMessages.h:
  • WebProcess/WebPage/EventDispatcher.messages.in:
11:58 AM Changeset in webkit [272872] by Jonathan Bedard
  • 2 edits in trunk/Tools

[results.webkit.org] Distinguish hash and revision
https://bugs.webkit.org/show_bug.cgi?id=221861
<rdar://problem/74298457>

Reviewed by Aakash Jain.

  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit.py:

(Commit.from_json): Pass hash and revision via json.
(Commit.init): Convert id to hash or revision.

11:50 AM Changeset in webkit [272871] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

[GPU Process] (REGRESSION r272776): Incorrect order for decoding the Pattern repeat properties
https://bugs.webkit.org/show_bug.cgi?id=221910

Reviewed by Simon Fraser.

The order of decoding the repeatX and repeatY properties is reversed.

This is already caught by the GPU bots. Some of the wpt canvas tests have
been failing unexpectedly like 2d.pattern.paint.repeatx.basic.html.

  • platform/graphics/Pattern.h:

(WebCore::Pattern::Parameters::decode):

11:24 AM Changeset in webkit [272870] by weinig@apple.com
  • 13 edits in trunk

Prepare for adding relative color support
https://bugs.webkit.org/show_bug.cgi?id=221881

Reviewed by Darin Adler.

Source/WebCore:

In preparation for adding experimental relative color support a little cleanup
is in order. This change:

  • Threads a CSSParserContext through the color parsing functions. This will be needed to check if the feature is enabled or not.
  • Does a small cleanup of CSSParserContext, sorting features and using the initialization list in the constructor.
  • Refactors some of the color parsing helpers to extract more helpers. These clarify the code better and will be shared by the relative parsers.
  • Move normalization of components to after parsing to avoid unnecessary work in the case of failure and separate the phases a bit more.
  • Removes some unnecessary ValueRangeAll parameters that were already the default.
  • Switch HSLA and HWBA to stop storing their components in a 0-1 normalization and instead use values that match the input, 0-360 for hue, and 0-100 for the the remaining two components. This seems more natural, and will simplify future color function work that expects the values in this form.
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseColorWorkerSafe):

  • css/parser/CSSParserContext.cpp:

(WebCore::shouldEnableLegacyOverflowScrollingTouch):
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeShadow):
(WebCore::consumeCaretColor):
(WebCore::consumeOutlineColor):
(WebCore::consumePaintStroke):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::consumeBorder):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::consumeHue):
(WebCore::CSSPropertyParserHelpers::normalizeHue):
(WebCore::CSSPropertyParserHelpers::clampRGBComponent):
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::normalizeWhitenessBlackness):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
(WebCore::CSSPropertyParserHelpers::consumeColorWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeColor):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientStopColor):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
(WebCore::CSSPropertyParserHelpers::consumeImageOrNone):
(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeSingleShadow):
(WebCore::CSSPropertyParserHelpers::consumeImage):
(WebCore::CSSPropertyParserHelpers::parseOptionalAlpha): Deleted.

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::consumeImage):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • platform/graphics/ColorConversion.cpp:

(WebCore::calculateHSLHue):
(WebCore::SRGBA<float>>::convert):
(WebCore::HSLA<float>>::convert):
(WebCore::HWBA<float>>::convert):

  • platform/graphics/ColorModels.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::datePlaceholderTextColor const):

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

Update HSLA tests to account for HSLA now using 0-360, 0-100, 0-100 bounds rather than 0-1, 0-1, 0-1.

11:21 AM Changeset in webkit [272869] by Russell Epstein
  • 1 copy in branches/safari-612.1.4-branch

New branch.

11:18 AM Changeset in webkit [272868] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU Process] Repopulate the TestExpectations file #3
https://bugs.webkit.org/show_bug.cgi?id=221708

Unreviewed test gardening.

Patch by Rini Patel <rini_patel@apple.com> on 2021-02-15

  • gpu-process/TestExpectations:
11:12 AM Changeset in webkit [272867] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

Page scrolling by wheel events doesn't work in non-AC mode pages if Hardware Acceleration Policy is changed dynamically from "always" to "never"
https://bugs.webkit.org/show_bug.cgi?id=221067

Reviewed by Carlos Garcia Campos.

GTK port is still supporting non-AC mode in WebKit2, and it can
enable/disable accelerated compositing dynamically.

r271235 fixed the bug that wheel event scrolling didn't work in
non-AC mode pages by checking if EventDispatcher's
m_scrollingTrees has a scrolling tree for a WebKit::WebPage.
However, if accelerated compositing is disabled dynamically,
m_scrollingTrees keeps to have a scrolling tree for the WebPage.
m_scrollingTrees should remove the item if accelerated compositing
is disabled.

r271235 added a code to check m_scrollingTrees, but it didn't lock
m_scrollingTreesMutex. The code can be removed. Removed it by
moving to above code.

EventDispatcher::wheelEvent was using a local lambda expression.
However the return value wasn't used. It can be a do-while
statement.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent): Replaced the lambda
expression with a do-while statement. Unified code of the checking
scrolling tree existence.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::enterAcceleratedCompositingMode):
(WebKit::WebPage::exitAcceleratedCompositingMode):
(WebKit::WebPage::close):

11:10 AM Changeset in webkit [272866] by graouts@webkit.org
  • 8 edits in trunk

Getting the computed style should resolve animations using the last style change event style
https://bugs.webkit.org/show_bug.cgi?id=221882

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark 20 new PASS results.

  • web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-006-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:

Source/WebCore:

We would fail some WTP tests when animating from the "neutral" value to some explicit value,
where "neutral" is the underlying value for the element, because we cloned the current element
style to be the target style when resolving animations under KeyframeEffect::getAnimatedStyle().
However, that current style may already carry the result of animation resolution, so we should
use the "last style change event style" set on the target to not see any unanimated styles.

If it's not set, then we can use the current element style since it means we will not have
resolved styles for this element yet.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getAnimatedStyle):

10:48 AM Changeset in webkit [272865] by Russell Epstein
  • 1 edit in branches/safari-612.1.3-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb

Revert "Unreviewed infrastructure test."

This reverts commit r272864.

10:42 AM Changeset in webkit [272864] by Russell Epstein
  • 1 edit in branches/safari-612.1.3-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb

Unreviewed infrastructure test.

10:40 AM Changeset in webkit [272863] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

[WPE][GTK] SleepDisabler does not inhibit sleep with bubblewrap sandbox enabled: need to run xdg-dbus-proxy under bwrap or xdg-desktop-portal does not read our app ID
https://bugs.webkit.org/show_bug.cgi?id=219010

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-15
Reviewed by Carlos Garcia Campos.

We need to run xdg-dbus-proxy under bubblewrap so that we can mount /.flatpak-info in its
mount namespace. Why? Because xdg-desktop-portal checks the pid of its D-Bus peer using
Unix credentials, then looks in that process's mount namespace to read its app ID from
/.flatpak-info. If /.flatpak-info doesn't exist, then any portals that depend on the app ID
will break, including the inhibit portal that we need to prevent the system from suspending
during video playback. This normally works because flatpak runs xdg-dbus-proxy under
bubblewrap and mounts /.flatpak-info, but it breaks for WebKit because we don't. Start doing
so.

This method of getting the app ID might seem like a strange contortion, but it's really
required beacuse the sandboxed process cannot be trusted to provide its own app ID, and will
not have write access to its /.flatpak-info so we can rely on that.

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::createFlatpakInfo):
(WebKit::XDGDBusProxyLauncher::launch):
(WebKit::bubblewrapSpawn):

10:17 AM Changeset in webkit [272862] by commit-queue@webkit.org
  • 9 edits
    2 adds
    2 deletes in trunk/Source

Unreviewed, reverting r272831.
https://bugs.webkit.org/show_bug.cgi?id=221907

breaking internal build

Reverted changeset:

"[JSC] Enable JITCage on macOS"
https://bugs.webkit.org/show_bug.cgi?id=221805
https://trac.webkit.org/changeset/272831

10:06 AM Changeset in webkit [272861] by Ruben Turcios
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.5

10:00 AM Changeset in webkit [272860] by commit-queue@webkit.org
  • 3 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/svg convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221859
<rdar://problem/74298062>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-15
Reviewed by Jonathan Bedard.

  • http/tests/svg/cached-image-sizing.html:
  • http/tests/svg/resources/delayCachedLoad.php: Removed.
  • http/tests/svg/resources/delayCachedLoad.py: Added.
  • imported/blink/http/tests/svg/svgload-vs-load.svg:
10:00 AM Changeset in webkit [272859] by commit-queue@webkit.org
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/incremental convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221902
<rdar://problem/74348931>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-15
Reviewed by Jonathan Bedard.

  • http/tests/incremental/resources/delayed-css.php: Removed.
  • http/tests/incremental/resources/delayed-css.py: Added.
  • http/tests/incremental/stylesheet-body-incremental-rendering.html:
9:35 AM Changeset in webkit [272858] by youenn@apple.com
  • 16 edits in trunk/Source

Move WebRTCPlatformCodecsInGPUProcessEnabled to Page Settings
https://bugs.webkit.org/show_bug.cgi?id=221893

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Always use the remote factory to simplify things. This ensures that factories remain in sync whether callbacks are set or not.
We check anyway whether callbacks are set and use them if needed.
Otherwise, we default to the in-process code path.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(webrtc::createWebKitEncoderFactory):

Source/WebCore:

Covered by existing tests.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebRTCH264SimulcastEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCPlatformCodecsInGPUProcessEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformCodecsInGPUProcessEnabled): Deleted.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setWebRTCPlatformCodecsInGPUProcessEnabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit:

Make LibWebRTCProvider and MediaRecorder provider keep a WebPage reference.
Use it to get WebRTCPlatformCodecsInGPUProcessEnabled setting when needed.
For LibWebRTCProvider, set callback only once before creating the first peer connection.
This makes sure we do not change callbacks while using them in another thread.

  • WebProcess/GPU/webrtc/MediaRecorderProvider.cpp:

(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):

  • WebProcess/GPU/webrtc/MediaRecorderProvider.h:

(WebKit::MediaRecorderProvider::MediaRecorderProvider):

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:

(WebKit::LibWebRTCProvider::LibWebRTCProvider):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
9:26 AM Changeset in webkit [272857] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add git commit -v support to commit-log-editor
https://bugs.webkit.org/show_bug.cgi?id=221903

Patch by Adam Roben <Adam Roben> on 2021-02-15
Reviewed by Darin Adler.

From the git-commit documentation:

-v, --verbose

Show unified diff between the HEAD commit and what would be
committed at the bottom of the commit message template to help
the user describe the commit by reminding what changes the
commit has. Note that this diff output doesn't have its lines
prefixed with #. This diff will not be a part of the commit
message. See the commit.verbose configuration variable in
git-config(1).

commit-log-editor was getting confused about the diff not being prefixed
with #. Now it looks for the "cut line" that Git puts in the log just
before the diff. It looks like this:

# ------------------------ >8 ------------------------

See https://github.com/git/git/blob/e6362826a0409539642a5738db61827e5978e2e4/wt-status.c#L24-L25

  • Scripts/commit-log-editor: Keep track of whether the "cut line" has been found. If it has, consider it and everything after it to be part of the log contents but not the existing log message.
9:11 AM Changeset in webkit [272856] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Do not re-measure wrapped content
https://bugs.webkit.org/show_bug.cgi?id=221874

Reviewed by Antti Koivisto.

This patch addresses the performance issue with extremely long content when
the content gets re-measured many time while performing line breaking.

When a certain text content does not fit the line we can

  1. keep it on the current line and let it overflow or
  2. wrap the entire content to the next line or
  3. split it somewhere in the middle.

In case of 2 and 3 this overflowing content turns into the leading content on the subsequent line.
Now due to ligature (#3) and position dependent glyph sizing(#2) we need to remeasure this leading content again.
However with unreasonably long content and relatively small horizontal constraint, this could lead to
repeated, continuous text measuring.
In this patch we turn the overflow width into the leading width so that we measure the long text content only once.
(FIXME: This should be turned into a generic "use the overflow content as-is when turning it into leading content")

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::handleInlineContent):

  • layout/inlineformatting/InlineLineBuilder.h:
9:09 AM Changeset in webkit [272855] by youenn@apple.com
  • 7 edits
    2 adds in trunk/Source/WebKit

Share more code between RemoteRealtimeAudioSource and RemoteRealtimeVideoSource
https://bugs.webkit.org/show_bug.cgi?id=221898

Reviewed by Eric Carlson.

Introduce RemoteRealtimeMediaSourceProxy to share more code between the two classes.
This class implements most of the messaging with capture process.
No change of behavior.

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::createRemoteMediaSource):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.h:

(WebKit::RemoteRealtimeAudioSource::identifier const): Deleted.
(WebKit::RemoteRealtimeAudioSource::connection): Deleted.
(WebKit::RemoteRealtimeAudioSource::applyConstraintsFailed): Deleted.

  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:

(WebKit::RemoteRealtimeMediaSourceProxy::isReady const):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::setShouldApplyRotation):
(WebKit::RemoteRealtimeVideoSource::hasEnded):
(WebKit::RemoteRealtimeVideoSource::generatePresets):
(WebKit::RemoteRealtimeVideoSource::setFrameRateWithPreset):
(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):
(WebKit::RemoteRealtimeVideoSource::whenReady): Deleted.
(WebKit::RemoteRealtimeVideoSource::didFail): Deleted.
(WebKit::RemoteRealtimeVideoSource::setAsReady): Deleted.
(WebKit::RemoteRealtimeVideoSource::connection): Deleted.
(WebKit::RemoteRealtimeVideoSource::startProducingData): Deleted.
(WebKit::RemoteRealtimeVideoSource::stopProducingData): Deleted.

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:

(WebKit::RemoteRealtimeVideoSource::identifier const): Deleted.

9:07 AM Changeset in webkit [272854] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] BubblewrapLauncher should create flatpak-info keyfile only once
https://bugs.webkit.org/show_bug.cgi?id=221224

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-15
Reviewed by Adrian Perez de Castro.

BubblewrapLauncher should create its flatpak-info keyfile only once, because its contents
will never change. Makes more sense to cache this tiny string in memory than to recompute it
every time a subprocess is launched.

When working on this, I noticed a quirk in the documentation of g_key_file_to_data: although
the function has a GError parameter, it is legacy and the function is actually guaranteed to
succeed. So icky though it seems, I've removed the error checking for that, as recommended
by its documentation.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::createFlatpakInfo):

9:01 AM Changeset in webkit [272853] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[iOS] Cleanup exit/enterFullScreenHandler and how the global states are set.
https://bugs.webkit.org/show_bug.cgi?id=221886

Patch by Jean-Yves Avenard <jya@apple.com> on 2021-02-15
Reviewed by Darin Adler.

There is no change in behavior with this commit.

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

(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::doExitFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreenHandler):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
Pass new nextActions OptionSet to define the behaviour of the handler; either call doEnterFullScreen or doExitFullScreen, rather than set member booleans that could be incorrectly used by other methods.

8:58 AM Changeset in webkit [272852] by youenn@apple.com
  • 4 edits
    3 adds in trunk

Use page setting to expose or not registerRTCRtpScriptTransformer in workers
https://bugs.webkit.org/show_bug.cgi?id=221892

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/wpt/webrtc/no-webrtc-transform.html

  • bindings/js/WebCoreBuiltinNames.h:
  • workers/DedicatedWorkerGlobalScope.idl:

LayoutTests:

  • http/wpt/webrtc/no-webrtc-transform-expected.txt: Added.
  • http/wpt/webrtc/no-webrtc-transform.html: Added.
  • http/wpt/webrtc/no-webrtc-transform.js: Added.
8:52 AM Changeset in webkit [272851] by commit-queue@webkit.org
  • 5 edits
    4 adds
    4 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/ssl convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221862
<rdar://problem/74298527>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-15
Reviewed by Jonathan Bedard.

  • http/tests/ssl/referer-301.html:
  • http/tests/ssl/referer-303.html:
  • http/tests/ssl/resources/ping-with-unsafe-redirect-frame.html:
  • http/tests/ssl/resources/redirect-ping-to-http.php: Removed.
  • http/tests/ssl/resources/redirect-ping-to-http.py: Added.
  • http/tests/ssl/resources/referer-301-redir.php: Removed.
  • http/tests/ssl/resources/referer-301-redir.py: Added.
  • http/tests/ssl/resources/referer-303-redir.php: Removed.
  • http/tests/ssl/resources/referer-303-redir.py: Added.
  • http/tests/ssl/verify-ssl-enabled.php: Removed.
  • http/tests/ssl/verify-ssl-enabled.py: Added.
  • platform/win/TestExpectations:
8:51 AM Changeset in webkit [272850] by msaboff@apple.com
  • 1 edit
    1 delete in trunk

Unreviewed cleanup after r272824.

  • Restored stepped on Tools/ChangeLog entries.
  • Eliminated unneeded empty directory.
4:56 AM Changeset in webkit [272849] by Chris Lord
  • 10 edits in trunk/Source/WebCore

CSSFontFace should not need its m_fontSelector data member
https://bugs.webkit.org/show_bug.cgi?id=208351

Reviewed by Myles C. Maxfield.

Remove the last use of m_fontSelector from CSSFontFace. Adding
CachedFontClient::fontRequested allows us to add the FontSelector as a
client while we have access to both the FontSelector and the CachedFont
in CSSFontFace::appendSources.

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFace::document):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::font):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFaceSource::load):

  • css/CSSFontFaceSource.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontSelector::clearDocument):
(WebCore::CSSFontSelector::willBeginLoadingFontSoon):
(WebCore::CSSFontSelector::fontRequested):
(WebCore::CSSFontSelector::loadPendingFonts):

  • css/CSSFontSelector.h:
  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::requestLoad):

  • loader/cache/CachedFont.h:
  • loader/cache/CachedFontClient.h:

(WebCore::CachedFontClient::fontRequested):

3:39 AM Changeset in webkit [272848] by Lauro Moura
  • 2 edits in trunk/Source/WTF

REGRESSION(r272842) [GStreamer] Layout tests exiting early due to crashes after GPUProcess for media enabled by default for WTR
https://bugs.webkit.org/show_bug.cgi?id=221883

Reviewed by Philippe Normand.

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Disable

UseGPUProcessForMediaEnabled when using GStreamer for now.

3:24 AM Changeset in webkit [272847] by Manuel Rego Casasnovas
  • 7 edits
    2 adds in trunk/LayoutTests

[selectors] Update WPT test suite
https://bugs.webkit.org/show_bug.cgi?id=221890

Reviewed by Carlos Alberto Lopez Perez.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-002-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-002.html:
  • web-platform-tests/css/selectors/focus-visible-006.html:
  • web-platform-tests/css/selectors/selectors-dir-selector-auto-direction-change-001-expected.xht: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-auto-direction-change-001.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:

LayoutTests:

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

Improve readability in RenderFlexibleBox::childIntrinsicLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=221877

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-15
Reviewed by Sergio Villar Senin.

Improve readability in RenderFlexibleBox::childIntrinsicLogicalWidth by
using Optional instead of -1, which is a magic value that ends up not
being used.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth const):

2:38 AM Changeset in webkit [272845] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Crash in RetainPtr<CGImage*>::RetainPtr via ImageBufferCGBackend::toCFData
https://bugs.webkit.org/show_bug.cgi?id=221376

Patch by Frederic Wang <fwang@igalia.com> on 2021-02-15
Reviewed by Said Abou-Hallawa.

Source/WebCore:

Call to copyNativeImage(CopyBackingStore) may return a null pointer if CGBitmapContextCreateImage
does. This patch fixes a crash due to null pointer dereference and adds a similar check for
copyNativeImage(DontCopyBackingStore).

Test: fast/canvas/resize-to-large-canvas-and-convert-to-blog.html

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::toCFData const):

LayoutTests:

  • fast/canvas/resize-to-large-canvas-and-convert-to-blog-expected.txt: Added.
  • fast/canvas/resize-to-large-canvas-and-convert-to-blog-expected.txt: Added.
  • fast/canvas/resize-to-large-canvas-and-convert-to-blog.html: Added.
2:23 AM Changeset in webkit [272844] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

[selectors] Update :focus-visible status in features.json
https://bugs.webkit.org/show_bug.cgi?id=221889

Reviewed by Sergio Villar Senin.

  • features.json:
1:04 AM Changeset in webkit [272843] by svillar@igalia.com
  • 4 edits in trunk/Source/WebCore

Don't update form control elements validity status if they are detached from the document.
https://bugs.webkit.org/show_bug.cgi?id=220390

Reviewed by Ryosuke Niwa.

When a radio button input element is removed from a form (either because it's moved or because the form
is deleted) then it's also removed from its current RadioButtonGroup. The latter removal might require the
update of the input validity status. In case of validity status changes, then we have to walk up
the ancestor chain in order to update the style for pseudo classes such as :valid :invalid. That node traversal
should not be done in case of being detached from the main document because our ancestors might have been
deleted before.

Apart from that we're replacing the HashSet of raw pointers to descendants in HTMLFieldSetElement by a WeakHashSet
which is safer.

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::matchesValidPseudoClass const):
(WebCore::HTMLFieldSetElement::matchesInvalidPseudoClass const):
(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):

  • html/HTMLFieldSetElement.h:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::updateValidity(): Early return in case of isConnected().

Feb 14, 2021:

6:08 PM Changeset in webkit [272842] by Peng Liu
  • 46 edits in trunk

[GPUP] Move UseGPUProcessForMediaEnabled from WebPreferencesInternal to WebPreferencesExperimental
https://bugs.webkit.org/show_bug.cgi?id=221310

Reviewed by Eric Carlson.

Source/WTF:

Move UseGPUProcessForMediaEnabled from WebPreferencesInternal to WebPreferencesExperimental,
so that the WebKitTestRunner will turn it on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):
Use WKPreferencesSetBoolValueForKeyForTesting() to set the preference for testing.
It works no matter the preference is internal or experimental.

LayoutTests:

Update expectations of the tests which are affected by the "Media In GPUProcess" feature
(WebKitTestRunner will enable the feature by default). Also set "UseGPUProcessForMediaEnabled=false"
for some webrtc tests.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:
  • platform/wk2/TestExpectations:
  • webrtc/captureCanvas-webrtc-software-h264-baseline.html:
  • webrtc/captureCanvas-webrtc-software-h264-high.html:
  • webrtc/captureCanvas-webrtc.html:
  • webrtc/concurrentVideoPlayback2.html:
  • webrtc/direction-change.html:
  • webrtc/disable-encryption.html:
  • webrtc/h264-baseline.html:
  • webrtc/h264-high.html:
  • webrtc/multi-audio.html:
  • webrtc/multi-video.html:
  • webrtc/peer-connection-track-end.html:
  • webrtc/peerconnection-page-cache-long.html:
  • webrtc/peerconnection-page-cache.html:
  • webrtc/remove-track.html:
  • webrtc/utf8-sdp.html:
  • webrtc/video-addTrack.html:
  • webrtc/video-addTransceiver.html:
  • webrtc/video-autoplay.html:
  • webrtc/video-disabled-black.html:
  • webrtc/video-h264.html:
  • webrtc/video-interruption.html:
  • webrtc/video-mediastreamtrack-stats.html:
  • webrtc/video-mute.html:
  • webrtc/video-remote-mute.html:
  • webrtc/video-replace-muted-track.html:
  • webrtc/video-replace-track-to-null.html:
  • webrtc/video-replace-track.html:
  • webrtc/video-rotation-no-cvo.html:
  • webrtc/video-rotation.html:
  • webrtc/video-setDirection.html:
  • webrtc/video-sframe.html:
  • webrtc/video-stats.html:
  • webrtc/video-unmute.html:
  • webrtc/video-with-data-channel.html:
  • webrtc/video.html:
12:51 PM Changeset in webkit [272841] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] MobileSafari crashes at WebCore: WebCore::VideoFullscreenInterfaceAVKit::doEnterFullscreen
https://bugs.webkit.org/show_bug.cgi?id=221863
<rdar://73861140>

Patch by Jean-Yves Avenard <jya@apple.com> on 2021-02-14
Reviewed by Darin Adler.

On iPad, it's possible for AVKit to fail due to racing requests to exit full screen and enter full screen. The enterFullscreenHandler would attempt to immediately re-enter full screen.
For now we bail-out early to avoid the crash. In a follow-up patch we will ensure that the condition to enter fullscreen while there's a pending operation to exit fullscreen can't occur.
No new tests, can't reproduce. Analysis has been entirely theoretical.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
Exit early if error returned.

11:06 AM Changeset in webkit [272840] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

JSC stress test stress/copy-data-properties-fast-path.js.default fails on s390x and ppc64le
https://bugs.webkit.org/show_bug.cgi?id=221557
<rdar://problem/74311603>

Unreviewed, unskip this test since it seems Yusuke has already fixed it.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-14

  • stress/copy-data-properties-fast-path.js:
9:18 AM Changeset in webkit [272839] by Darin Adler
  • 3 edits
    2 adds in trunk

Crash calling replaceTrack on a sender that outlives its RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=221870

Reviewed by Youenn Fablet.

Source/WebCore:

Test: fast/mediastream/RTCRtpSender-outlives-RTCPeerConnection.html

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack): Added a null check for m_connection.
It's already using WeakPtr, so null check is all we need.

LayoutTests:

  • fast/mediastream/RTCRtpSender-outlives-RTCPeerConnection-expected.txt: Added.
  • fast/mediastream/RTCRtpSender-outlives-RTCPeerConnection.html: Added.
Note: See TracTimeline for information about the timeline view.