Timeline



Jul 10, 2020:

11:30 PM Changeset in webkit [264266] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Prompt for requestStorageAccess is inverted in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=214198
<rdar://problem/65369725>

Reviewed by Darin Adler.

The labels for "allow" and "deny" StorageAccess API were inverted in the WKWebView
implementation.

  • UIProcess/Cocoa/WKStorageAccessAlert.mm:

(WebKit::presentStorageAccessAlert):

10:40 PM Changeset in webkit [264265] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark a couple of user-timing WPT tests as flaky since their import in r264255.

10:36 PM Changeset in webkit [264264] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, silence console logging in a couple of payment request WPT tests to address flakiness

9:49 PM Changeset in webkit [264263] by Chris Dumez
  • 19 edits
    7 copies
    38 moves
    235 adds
    181 deletes in trunk/LayoutTests

Resync web-platform-tests/streams from upstream
https://bugs.webkit.org/show_bug.cgi?id=214207

Reviewed by Sam Weinig.

Resync web-platform-tests/streams from upstream 859527a3513029d2.

  • resources/import-expectations.json:
  • web-platform-tests/streams/*: Updated.
9:45 PM WebKitGTK/DependenciesPolicy edited by Fujii Hironori
(diff)
9:35 PM Changeset in webkit [264262] by Chris Dumez
  • 10 edits
    1 delete in trunk

Unreviewed, reverting r264242.

Caused many crashes on iOS bots

Reverted changeset:

"JSRunLoopTimer should use WTF::RunLoop rather than custom CF
code"
https://bugs.webkit.org/show_bug.cgi?id=214102
https://trac.webkit.org/changeset/264242

9:32 PM Changeset in webkit [264261] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK][WPE] Unreviewed, garden failure and new passes

Payment request is not supported and a single test was being executed

Also pass 4 css-writing-modes tests that are passing since r263855.

  • platform/glib/TestExpectations:
9:30 PM Changeset in webkit [264260] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/user-timing/measure_associated_with_navigation_timing.html as flaky.

This has been flaky since import in r264255.

9:22 PM Changeset in webkit [264259] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark img-aspect-ratio-lazy.tentative.html WPT test as flaky since import in r264117.

8:44 PM Changeset in webkit [264258] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Cleanup GameController framework button binding with some constants
https://bugs.webkit.org/show_bug.cgi?id=214210

Reviewed by Darin Adler.

No new tests (No behavior change)

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsExtendedGamepad): Use named constants instead of magic numbers.

8:44 PM Changeset in webkit [264257] by Chris Dumez
  • 4 edits
    8 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/notifications from upstream
https://bugs.webkit.org/show_bug.cgi?id=214206

Reviewed by Geoff Garen.

Resync web-platform-tests/notifications from upstream 859527a3513029d2.

  • web-platform-tests/notifications/META.yml: Added.
  • web-platform-tests/notifications/OWNERS: Removed.
  • web-platform-tests/notifications/constructor-invalid.html:
  • web-platform-tests/notifications/idlharness.https.any-expected.txt: Added.
  • web-platform-tests/notifications/idlharness.https.any.html: Added.
  • web-platform-tests/notifications/idlharness.https.any.js: Added.
  • web-platform-tests/notifications/idlharness.https.any.worker-expected.txt: Added.
  • web-platform-tests/notifications/idlharness.https.any.worker.html: Added.
  • web-platform-tests/notifications/interfaces-expected.txt: Removed.
  • web-platform-tests/notifications/interfaces.html: Removed.
  • web-platform-tests/notifications/resources/w3c-import.log:
  • web-platform-tests/notifications/w3c-import.log:
8:35 PM Changeset in webkit [264256] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed gardening after WPT resync in r264239.

Mark one payment-request test as flaky and silence console logging for another one
to try and address flakiness.

8:23 PM Changeset in webkit [264255] by Chris Dumez
  • 17 edits
    68 adds
    5 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/user-timing from upstream
https://bugs.webkit.org/show_bug.cgi?id=214208

Reviewed by Sam Weinig.

Resync web-platform-tests/user-timing from upstream 859527a3513029d2.

  • web-platform-tests/user-timing/*: Updated.
8:02 PM Changeset in webkit [264254] by Chris Dumez
  • 4 edits
    1 move
    6 adds
    3 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/touch-events from upstream
https://bugs.webkit.org/show_bug.cgi?id=214209

Reviewed by Darin Adler.

Resync web-platform-tests/touch-events from upstream 859527a3513029d2.

  • web-platform-tests/touch-events/META.yml: Added.
  • web-platform-tests/touch-events/OWNERS: Removed.
  • web-platform-tests/touch-events/create-touch-touchlist-expected.txt: Removed.
  • web-platform-tests/touch-events/create-touch-touchlist.html: Removed.
  • web-platform-tests/touch-events/historical.html:
  • web-platform-tests/touch-events/idlharness.window-expected.txt: Added.
  • web-platform-tests/touch-events/idlharness.window.html: Added.
  • web-platform-tests/touch-events/idlharness.window.js: Added.
  • web-platform-tests/touch-events/support/touch.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/touch-events/touch-support.js.
  • web-platform-tests/touch-events/support/w3c-import.log: Added.
  • web-platform-tests/touch-events/touch-touchevent-constructor.html:
  • web-platform-tests/touch-events/w3c-import.log:
7:37 PM Changeset in webkit [264253] by Fujii Hironori
  • 2 edits in trunk/Tools

[TestWebKitAPI][Win] Remove WEBCORE_EXPORT and WEBCORE_TESTSUPPORT_EXPORT definitions in PlatformWin.cmake
https://bugs.webkit.org/show_bug.cgi?id=214212

Reviewed by Don Olmstead.

Those macros should be defined only by WebCore/platform/PlatformExportMacros.h.

  • TestWebKitAPI/PlatformWin.cmake: Removed WEBCORE_EXPORT and WEBCORE_TESTSUPPORT_EXPORT.

Added STATICALLY_LINKED_WITH_WebCore=1 to TestWebCore_DEFINITIONS.

7:00 PM Changeset in webkit [264252] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Add tvOS and watchOS support to built-product-archive
https://bugs.webkit.org/show_bug.cgi?id=214214

Unreviewed infrastructure fix.

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):
(extractBuiltProduct):

6:24 PM Changeset in webkit [264251] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix build for PLATFORM(IOS_FAMILY) && !ENABLE(REVEAL), for example, tvOS

  • editing/cocoa/DictionaryLookup.mm: Added include of "SimpleRange.h".
6:16 PM Changeset in webkit [264250] by Alan Coon
  • 1 copy in tags/Safari-610.1.22

Tag Safari-610.1.22.

6:11 PM Changeset in webkit [264249] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix build for PLATFORM(IOS_FAMILY) && !ENABLE(REVEAL), for example tvOS

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Update to return SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

5:30 PM Changeset in webkit [264248] by wenson_hsieh@apple.com
  • 4 edits in trunk

[iOS] Prevent SPI clients from making the minimum layout height or width negative
https://bugs.webkit.org/show_bug.cgi?id=214199
<rdar://problem/64109242>

Reviewed by Tim Horton.

Source/WebKit:

It's an error in the embedding client to override the minimum layout size with a negative width or height (in
this case, Mail on iOS). This happens when double tapping on a contact pill in the "To:" line in Mail compose,
which causes the top content inset of the web view's scroll view to increase such that Mail's logic for
overriding layout width ends up passing a negative height.

After a recent change (<https://trac.webkit.org/r261874>), this now results in the web view immediately
scrolling to an incorrect content offset when rotating into landscape mode after double tapping a contact. Fix
this by clamping the overridden layout size to a minimum of (0, 0), to prevent SPI clients from triggering
subtle bugs like this in the future.

Test: WebKit.OverrideMinimumLayoutSizeWithNegativeHeight

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/FixedLayoutSize.mm:
4:59 PM Changeset in webkit [264247] by Darin Adler
  • 20 edits in trunk/Source

Remove live ranges from Document.h, AlternativeTextController.h, DictionaryLookup.h, and WebPage.h
https://bugs.webkit.org/show_bug.cgi?id=214109

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::characterOffsetForPoint): Updated to call
caretPositionFromPoint, internal function, instead of caretRangeFromPoint,
public DOM function.

  • dom/Document.cpp:

(WebCore::Document::Document): Changed documentClasses argument to DocumentClassFlags.
(WebCore::Document::caretRangeFromPoint): Refactored so this calls createLiveRange,
since it's a DOM function that returns a live range.
(WebCore::Document::caretPositionFromPoint): Renamed so this is not just an overload
and changed to return a BoundaryPoint rather than a live range.

  • dom/Document.h: Simplified forward declarations by getting rid of all the conditionals.

Tweaked a few typedef things. Updated for the changes above.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::startAlternativeTextUITimer): Updated since
m_rangeWithAlternative is an Optional<SimpleRange>.
(WebCore::AlternativeTextController::stopAlternativeTextUITimer): Ditto.
(WebCore::AlternativeTextController::applyPendingCorrection): Ditto.
(WebCore::AlternativeTextController::hasPendingCorrection const): Ditto.
(WebCore::AlternativeTextController::isSpellingMarkerAllowed const): Take SimpleRange.
(WebCore::AlternativeTextController::show): Ditto.
(WebCore::AlternativeTextController::applyAutocorrectionBeforeTypingIfAppropriate):
Updated since m_rangeWithAlternative is an Optional<SimpleRange>.
(WebCore::AlternativeTextController::timerFired): Ditto.
(WebCore::AlternativeTextController::handleAlternativeTextUIResult): Ditto.
(WebCore::AlternativeTextController::markReversed): Take SimpleRange.
(WebCore::AlternativeTextController::markCorrection): Ditto.
(WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection): Ditto.
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult): Ditto.
(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord): Use SimpleRange
instead of a live range.
(WebCore::AlternativeTextController::applyAlternativeTextToRange): Take SimpleRange.

  • editing/AlternativeTextController.h: Use SimpleRange instead of live ranges.
  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Return SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
(WebCore::showPopupOrCreateAnimationController): Renamed type from RevealView to CocoaView.
(WebCore::DictionaryLookup::showPopup): Ditto.

  • editing/mac/DictionaryLookup.h: Simplified header since it is included only from

Objective-C files. Use SimpleRange instead of live ranges.

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::DictionaryLookup::rangeForSelection): Return SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup): Updated
since DictionaryLookup::rangeAtHitTestResult returns SimpleRange.
(WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Use constexpr instead of
macros for constants.

  • testing/Internals.mm:

(WebCore::Internals::rangeForDictionaryLookupAtLocation): Updated
since DictionaryLookup::rangeAtHitTestResult returns SimpleRange.
(WebCore::Internals::encodedPreferenceValue): Removed unneeded error local, and
fixed formatting.

Source/WebKit:

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

(-[WKWebProcessPlugInBrowserContextController selectedRange]): Updated since
WebPage::currentSelectionAsRange returns SimpleRange.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation): Updated since
DictionaryLookup::rangeAtHitTestResult returns SimpleRange.
(WebKit::WebPage::performDictionaryLookupForSelection): Updated since
DictionaryLookup::rangeForSelection returns SimpleRange.
(WebKit::WebPage::performDictionaryLookupForRange): Take SimpleRange.
(WebKit::WebPage::dictionaryPopupInfoForRange): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::currentSelectionAsRange): Return SimpleRange.

  • WebProcess/WebPage/WebPage.h: Use SimpleRange instead of live ranges.
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture): Updated since m_startingGestureRange
is SimpleRange.
(WebKit::WebPage::clearSelection): Ditto.
(WebKit::WebPage::rangeForGranularityAtPoint): Return SimpleRange.
(WebKit::WebPage::selectTextWithGranularityAtPoint): Update since
rangeForGranularityAtPoint returns SimpleRange.
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): Use
SimpleRange.
(WebKit::WebPage::updateSelectionWithExtentPoint): Use auto.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation): Update
since lookupTextAtLocation returns SimpleRange.
(WebKit::WebPage::lookupTextAtLocation): Return SimpleRange.

Source/WebKitLegacy/mac:

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _animationControllerForText]): Update since
DictionaryLookup::rangeAtHitTestResult returns SimpleRange.

4:34 PM Changeset in webkit [264246] by beidson@apple.com
  • 6 edits in trunk/Source

GameController.framework gamepads should support Home buttons.
<rdar://problem/63500696> and https://bugs.webkit.org/show_bug.cgi?id=212933

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Cannot yet drive GameController framework directly in tests)

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::homeButtonFromExtendedGamepad): Try a few different techniques of extracting the home button

from a GCExtendedGamepad.

(WebCore::GameControllerGamepad::setupAsExtendedGamepad): If there's a home button, put it at button index 16,

defined by the spec as "Center button in center cluster"

  • platform/gamepad/cocoa/GameControllerSoftLink.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.mm:

Source/WTF:

  • wtf/PlatformHave.h:
4:07 PM Changeset in webkit [264245] by Chris Dumez
  • 36 edits
    5 moves
    33 adds
    5 deletes in trunk/LayoutTests

Resync web-platform-tests/eventsource from upstream
https://bugs.webkit.org/show_bug.cgi?id=214203

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/eventsource from upstream 859527a3513029d2.

  • web-platform-tests/eventsource/*: Updated.

LayoutTests:

4:07 PM Changeset in webkit [264244] by Chris Dumez
  • 18 edits
    2 moves
    196 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/shadow-dom from upstream
https://bugs.webkit.org/show_bug.cgi?id=214201

Reviewed by Sam Weinig.

Resync web-platform-tests/shadow-dom from upstream 859527a3513029d2.

  • web-platform-tests/shadow-dom/*: Updated.
3:42 PM Changeset in webkit [264243] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Build failure for catalyst
https://bugs.webkit.org/show_bug.cgi?id=214202
<rdar://problem/65366125>

Reviewed by Zalan Bujtas.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):

3:00 PM Changeset in webkit [264242] by ggaren@apple.com
  • 10 edits
    1 add in trunk

Source/JavaScriptCore:
JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
https://bugs.webkit.org/show_bug.cgi?id=214102

Reviewed by Darin Adler.

The generic RunLoop codepath was already mostly right. Just needed to
clarify the API to demonstrate that VMs do not hop from one RunLoop
to another.

  • runtime/JSRunLoopTimer.cpp:

(JSC::epochTime): Removed the CF path.

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData): Include a RunLoop
as a constructor argument so that the web thread can override it.

(JSC::JSRunLoopTimer::Manager::timerDidFireCallback): Removed the CF path.

(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData): No need to
explicitly clear our RunLoop -- the RunLoop::Timer destructor will do
the job.

(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer): Removed the CF path.

(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop): Deleted. Changing
RunLoops is not actually a feature we use.

  • runtime/JSRunLoopTimer.h:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData): Deleted.

  • runtime/PromiseTimer.cpp:

(JSC::PromiseTimer::doWork):
(JSC::PromiseTimer::runRunLoop): Removed the CF path.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::create):
(JSC::VM::setRunLoop): Deleted.

  • runtime/VM.h:

(JSC::VM::runLoop const): Require a RunLoop in the VM constructor in
order to clarify that we always know our RunLoop and never change it.

Source/WebCore:
JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
https://bugs.webkit.org/show_bug.cgi?id=214102

Reviewed by Darin Adler.

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow): Supply a RunLoop at construction time since
JSC requires that now.

Tools:
Add some testing for JSRunLoopTimer
https://bugs.webkit.org/show_bug.cgi?id=214193

Reviewed by Darin Adler.

Add some test coverage to JSRunLoopTimer since I'm changing it.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm: Added.

(-[TestObject dealloc]):
(TestWebKitAPI::TEST):

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

Removing usage of "using namespace WebCore" from TextTrackRepresentationCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=214196

Patch by Guowei Yang <guowei_yang@apple.com> on 2020-07-10
Reviewed by Tim Horton.

The line "using namespace WebCore" will cause problems
when compiling unified source. Removing this line and
replace it with WebCore::prefix and namespace WebCore{ }
to enclose C++ calls.

No new tests are requied as this is a code style fix

  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: removed usage of "using namespace WebCore" to avoid future errors while compiling

(-[WebCoreTextTrackRepresentationCocoaHelper initWithParent:]): added "WebCore::" prefix
(-[WebCoreTextTrackRepresentationCocoaHelper setParent:]): ditto
(-[WebCoreTextTrackRepresentationCocoaHelper parent]): ditto
(TextTrackRepresentation::create): enclosed inside namespace WebCore{ }
(TextTrackRepresentationCocoa::TextTrackRepresentationCocoa): Deleted.

enclosed inside namespace WebCore{ }

(TextTrackRepresentationCocoa::~TextTrackRepresentationCocoa): ditto
(TextTrackRepresentationCocoa::update): ditto
(TextTrackRepresentationCocoa::setContentScale): ditto
(TextTrackRepresentationCocoa::setHidden const): ditto
(TextTrackRepresentationCocoa::bounds const): ditto
(TextTrackRepresentationCocoa::boundsChanged): ditto

2:54 PM Changeset in webkit [264240] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, Mark WebRTC WPT test as flaky.

It has been flaky since import in r264202.

2:48 PM Changeset in webkit [264239] by Chris Dumez
  • 60 edits
    1 copy
    7 moves
    25 adds in trunk/LayoutTests

Resync web-platform-tests/payment-request from upstream
https://bugs.webkit.org/show_bug.cgi?id=214167

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/payment-request from upstream cef93b58e7cf31f1d47c.

  • resources/resource-files.json:
  • web-platform-tests/payment-request/*: Updated.

LayoutTests:

  • tests-options.json:
1:24 PM Changeset in webkit [264238] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

Remove glBindFramebuffer flush workaround from ANGLE
https://bugs.webkit.org/show_bug.cgi?id=214104

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

Remove this driver bug workaround, which very likely had no
effect, and which was never upstreamed to ANGLE.

  • include/platform/FeaturesGL.h:
  • src/libANGLE/renderer/gl/StateManagerGL.cpp:

(rx::StateManagerGL::bindFramebuffer):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::InitializeFeatures):

1:13 PM Changeset in webkit [264237] by Peng Liu
  • 2 edits in trunk/Source/WebCore

MobileSafari rotates its scene to portrait upside down if it has a PiP on screen
https://bugs.webkit.org/show_bug.cgi?id=214169

Reviewed by Jer Noble.

The UIViewController for video fullscreen/picture-in-picture should not ignore
the App's supported orientations when the video element is in picture-in-picture.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

1:04 PM Changeset in webkit [264236] by Fujii Hironori
  • 6 edits in trunk

[WinCairo] WOFF2 font support
https://bugs.webkit.org/show_bug.cgi?id=214174

Reviewed by Per Arne Vollan.

.:

  • Source/cmake/OptionsWinCairo.cmake: Unmarked fast/text/woff2-totalsfntsize.html and fast/text/woff2.html.

Source/WebCore:

  • PlatformWinCairo.cmake: Added additional libraries for static WOFF2 library to WebCore_LIBRARIES.
  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::supportsFormat): Added woff2.

12:56 PM Changeset in webkit [264235] by Chris Fleizach
  • 7 edits
    2 adds in trunk

AX: iOS VoiceOver should support definition lists
https://bugs.webkit.org/show_bug.cgi?id=210214
<rdar://problem/61478299>

Reviewed by Darin Adler.

Source/WebCore:

Expose bits to make definition lists accessibility on iOS.

Test: accessibility/ios-simulator/definition-list.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityDescriptionListAncestor]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):

LayoutTests:

  • accessibility/ios-simulator/definition-list.html: Added.
12:25 PM Changeset in webkit [264234] by dino@apple.com
  • 1 edit in trunk/WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme

Another attempt to fix the Xcode Workspace by ensuring that ANGLE builds the correct things.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
12:03 PM Changeset in webkit [264233] by Lauro Moura
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK/WPE debug crash gardening

  • platform/glib/TestExpectations:
11:51 AM Changeset in webkit [264232] by beidson@apple.com
  • 11 edits in trunk/Source

Limit MultiGamepadProvider to Catalina and Big Sur.
https://bugs.webkit.org/show_bug.cgi?id=214190

Unreviewed build fix.

Source/WebCore:

  • platform/gamepad/cocoa/GameControllerSPI.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.mm:
  • platform/gamepad/mac/HIDGamepadProvider.mm:

(WebCore::HIDGamepadProvider::deviceAdded):

  • platform/gamepad/mac/MultiGamepadProvider.h:
  • platform/gamepad/mac/MultiGamepadProvider.mm:

Source/WebKit:

  • UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:

(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):

10:54 AM Changeset in webkit [264231] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK/WPE gardening

  • platform/glib/TestExpectations: Mark a few GStreamer-related tests as crashing on Debug.
10:36 AM Changeset in webkit [264230] by weinig@apple.com
  • 13 edits in trunk/Source/WebCore

Part 4 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=214158

Reviewed by Darin Adler.

Removes SimpleColor!

Alas, makeSimpleColor() remains for now, seeking a new name in a follow up.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor): Deleted.
(WebCore::SimpleColor::alphaComponent const): Deleted.
(WebCore::SimpleColor::alphaComponentAsFloat const): Deleted.
(WebCore::SimpleColor::isOpaque const): Deleted.
(WebCore::SimpleColor::isVisible const): Deleted.
(WebCore::SimpleColor::colorWithAlpha const): Deleted.
(WebCore::SimpleColor::invertedColorWithAlpha const): Deleted.
(WebCore::SimpleColor::asSRGBA const): Deleted.
(WebCore::SimpleColor::get const): Deleted.
(): Deleted.
(WebCore::operator==): Deleted.
(WebCore::operator!=): Deleted.
Remove the SimpleColor class.

  • platform/graphics/Color.cpp:

(WebCore::Color::operator=):
(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::invertedColorWithAlpha const):
(WebCore::Color::colorSpaceAndComponents const):

  • platform/graphics/Color.h:

(WebCore::Color::isHashTableDeletedValue const):
(WebCore::Color::isValid const):
(WebCore::Color::isSemantic const):
(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alpha const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::isExtended const):
(WebCore::Color::isInline const):
(WebCore::Color::tagAsSemantic):
(WebCore::Color::tagAsValid):
(WebCore::operator==):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::Color):
(WebCore::Color::~Color):
(WebCore::Color::hash const):
(WebCore::Color::toSRGBALossy const):
(WebCore::Color::asInline const):
(WebCore::Color::setInlineColor):
(WebCore::Color::setExtendedColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::isSimple const): Deleted.
(WebCore::Color::asSimple const): Deleted.
(WebCore::Color::setSimpleColor): Deleted.

  • Rename existing uses of Simple with Inline, denoting the inline SRGBA<uint8_t>.
  • Move multiline functions out of line in the header.
  • Adds new constructor functions taking Optional<SRGBA<uint8_t>> to make Color(CGColorRef) constructors more straightforward.
  • Replaces uses of SimpleColor's interface with use of ColorUtilities.h helpers. e.g. Color::invertedColorWithAlpha() now uses the new invertedColorWithOverridenAlpha() helper function. Use of these utilities will be expanded to ExtendedColor in a follow up, allowing us to have just one implementation of these algorithms.
  • platform/graphics/ColorSerialization.cpp:

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

  • platform/graphics/ColorSerialization.h:

Replace serialization of SimpleColor with serialization of SRGBA<uint8_t>.

  • platform/graphics/ColorTypes.h:

(WebCore::forEachNonAlphaComponent): Deleted.
Removed forEachNonAlphaComponent. Uses replaced by new colorByModifingEachNonAlphaComponent
function in ColorUtilities.h

  • platform/graphics/ColorUtilities.h:

(WebCore::colorByModifingEachNonAlphaComponent):
(WebCore::convertComponentByteTo<uint8_t>):
(WebCore::convertComponentByteTo<float>):
(WebCore::convertComponentFloatTo<uint8_t>):
(WebCore::convertComponentFloatTo<float>):
(WebCore::colorWithOverridenAlpha):
(WebCore::invertComponent):
(WebCore::invertedColorWithOverridenAlpha):
Added heplers to implement color mutation behaviors.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::makeSimpleColorFromCGColor):
(WebCore::Color::Color):
(WebCore::cachedCGColor):
Switch makeSimpleColorFromCGColor to return an Optional<SRGBA<uint8_t>> to streamline
the constructors. Update to use is/asInline functions.

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):
Update to use is/asInline functions.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicComponentTransferFilterOperation::transformColor const):
Switch to using colorByModifingEachNonAlphaComponent().

10:21 AM Changeset in webkit [264229] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] layout-test results shouldn't be hosted on ews server
https://bugs.webkit.org/show_bug.cgi?id=201937

Rubber-stamped by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(ExtractTestResults.resultDirectoryURL):

  • BuildSlaveSupport/ews-build/steps_unittest.py:
10:16 AM Changeset in webkit [264228] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.0.3

Tag Safari-610.1.21.0.3.

10:07 AM Changeset in webkit [264227] by Alan Coon
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.3

9:59 AM Changeset in webkit [264226] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Unreviewed, prospective API test bot fix...

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setVolume): I suppose changing the audio volume to 0 wasn't intended :)

9:38 AM Changeset in webkit [264225] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, remove debug printf after r264219.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):

9:36 AM Changeset in webkit [264224] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[IPC hardening] Use MESSAGE_CHECK in WebPageProxy::setColorPickerColor()
https://bugs.webkit.org/show_bug.cgi?id=214168
<rdar://problem/58632672>

Reviewed by David Kilzer.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setColorPickerColor): Replace ASSERT with
MESSAGE_CHECK.

9:15 AM Changeset in webkit [264223] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html in Debug.

This test has been crashing in Debug since its import in r264202.

9:00 AM Changeset in webkit [264222] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/webrtc/protocol/split.https.html as flaky.

It has been flaky since import in r264202.

8:44 AM Changeset in webkit [264221] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression (r264202): imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is consistently failing on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=214183
<rdar://problem/65335357>

Unreviewed, rebaseline test on mac-wk1 after resync in r264202.

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt:
8:39 AM Changeset in webkit [264220] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Floats] Normal flow element that establishes a new block formatting context must not overlap the margin box of any floats
https://bugs.webkit.org/show_bug.cgi?id=214185

Reviewed by Antti Koivisto.

Source/WebCore:

BFCs in general should avoid floats. This code was confusing the cases where the block container box (not necessarily a BFC) establishes an IFC.

<div>The div establishes an IFC only. It should not avoid floats.</div>
<div style="overflow: hidden">The div establishes both a new BFC and an IFC. It should avoid floats.</div>

Test: fast/layoutformattingcontext/float-avoider-with-inline-content.html

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isFloatAvoider const):

LayoutTests:

  • fast/layoutformattingcontext/float-avoider-with-inline-content-expected.html: Added.
  • fast/layoutformattingcontext/float-avoider-with-inline-content.html: Added.
7:57 AM Changeset in webkit [264219] by calvaris@igalia.com
  • 33 edits
    5 copies
    7 adds in trunk

[GStreamer][EME][OpenCDM] Implement OpenCDM support
https://bugs.webkit.org/show_bug.cgi?id=213550

Reviewed by Philippe Normand.

.:

Added support to enable OpenCDM and find it it needed.

  • Source/cmake/FindOpenCDM.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

Implemented the OpenCDM support in the CDMOpenCDM and
CDMProxyOpenCDM related classes. CDMOpenCDM classes check for
Widevine support in OpenCDM and glues the JavaScript API to the
OpenCDM/Thunder framework. Building this is optional and --opencdm
parameter needs to be passed to build-webkit to get it.

CDMProxy related needed changes because of several reasons. First
is that Key was considering only a Vector<uint8_t> as a type and
OpenCDM has session objects. Key is also renamed to KeyHandle as
this name reflects in a better way the purpose of the class. This
bleeds out to all CDMProxy related classes. CDMInstanceSessionProxy
gets support to remove itself from the CDMSessionProxy.

Regarding ClearKey, we adapt the changes to the CDMProxy classes
and de-cable protection system from the decryptors as the OpenCDM
decryptor could handle more than one system.

No new tests. YouTube TV 2019 tests are green.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/GStreamer.cmake:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::dataAsUInt8Ptr const):

  • platform/SharedBuffer.h:
  • platform/encryptedmedia/CDMInstance.h:
  • platform/encryptedmedia/CDMOpenCDMTypes.h: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.
  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyHandle::idAsString const):
(WebCore::KeyHandle::takeValueIfDifferent):
(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::merge):
(WebCore::KeyStore::allKeysAs const):
(WebCore::KeyStore::addKeys):
(WebCore::KeyStore::add):
(WebCore::KeyStore::remove):
(WebCore::KeyStore::keyHandle const):
(WebCore::CDMProxy::keyHandle const):
(WebCore::CDMProxy::tryWaitForKeyHandle const):
(WebCore::CDMProxy::keyAvailableUnlocked const):
(WebCore::CDMProxy::keyAvailable const):
(WebCore::CDMProxy::getOrWaitForKeyHandle const):
(WebCore::CDMProxy::getOrWaitForKeyValue const):
(WebCore::CDMInstanceSessionProxy::CDMInstanceSessionProxy):
(WebCore::CDMInstanceSessionProxy::removeFromInstanceProxy):

  • platform/encryptedmedia/CDMProxy.h:

(WebCore::KeyHandle::create):
(WebCore::KeyHandle::id const):
(WebCore::KeyHandle::value const):
(WebCore::KeyHandle::value):
(WebCore::KeyHandle::isStatusCurrentlyValid):
(WebCore::KeyHandle::operator==):
(WebCore::KeyHandle::operator<):
(WebCore::KeyHandle::KeyHandle):
(WebCore::KeyStore::isEmpty const):
(WebCore::CDMProxy::instance const):
(WebCore::CDMInstanceSessionProxy::releaseDecryptionResources):
(WebCore::CDMInstanceSessionProxy::cdmInstanceProxy const):
(WebCore::CDMInstanceProxy::proxy const):
(WebCore::CDMInstanceProxy::removeSession):

  • platform/encryptedmedia/CDMUtilities.cpp: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.

(WebCore::CDMUtilities::parseJSONObject):

  • platform/encryptedmedia/CDMUtilities.h: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.
  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::parseLicenseFormat):
(WebCore::CDMPrivateClearKey::supportsInitData const):
(WebCore::CDMPrivateClearKey::sanitizeResponse const):
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):
(WebCore::CDMInstanceSessionClearKey::parentInstance const):

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::isOpenCDMRanked):
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::GstMappedBuffer::createVector):

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::create):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):

  • platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp:

(WebCore::CDMFactory::platformRegisterFactories):

  • platform/graphics/gstreamer/eme/CDMOpenCDM.cpp: Added.

(openCDMLicenseType):
(WebCore::initDataMD5):
(WebCore::sessionLoadFailureFromOpenCDM):
(WebCore::OpenCDM::destructOpenCDMSession):
(WebCore::OpenCDM::createSharedOpenCDMSession):
(WebCore::CDMFactoryOpenCDM::singleton):
(WebCore::CDMFactoryOpenCDM::createCDM):
(WebCore::CDMFactoryOpenCDM::createCDMProxy):
(WebCore::CDMFactoryOpenCDM::supportedKeySystems const):
(WebCore::CDMFactoryOpenCDM::supportsKeySystem):
(WebCore::CDMPrivateOpenCDM::supportedInitDataTypes const):
(WebCore::CDMPrivateOpenCDM::supportsConfiguration const):
(WebCore::CDMPrivateOpenCDM::supportedRobustnesses const):
(WebCore::CDMPrivateOpenCDM::distinctiveIdentifiersRequirement const):
(WebCore::CDMPrivateOpenCDM::persistentStateRequirement const):
(WebCore::CDMPrivateOpenCDM::distinctiveIdentifiersAreUniquePerOriginAndClearable const):
(WebCore::CDMPrivateOpenCDM::createInstance):
(WebCore::CDMPrivateOpenCDM::loadAndInitialize):
(WebCore::CDMPrivateOpenCDM::supportsServerCertificates const):
(WebCore::CDMPrivateOpenCDM::supportsSessions const):
(WebCore::CDMPrivateOpenCDM::supportsInitData const):
(WebCore::CDMPrivateOpenCDM::sanitizeResponse const):
(WebCore::CDMPrivateOpenCDM::sanitizeSessionId const):
(WebCore::CDMInstanceOpenCDM::CDMInstanceOpenCDM):
(WebCore::CDMInstanceOpenCDM::initializeWithConfiguration):
(WebCore::CDMInstanceOpenCDM::setServerCertificate):
(WebCore::CDMInstanceOpenCDM::setStorageDirectory):
(WebCore::CDMInstanceSessionOpenCDM::CDMInstanceSessionOpenCDM):
(WebCore::CDMInstanceOpenCDM::createSession):
(WebCore::ParsedResponseMessage::ParsedResponseMessage):
(WebCore::ParsedResponseMessage::hasPayload const):
(WebCore::ParsedResponseMessage::payload const):
(WebCore::ParsedResponseMessage::payload):
(WebCore::ParsedResponseMessage::hasType const):
(WebCore::ParsedResponseMessage::type const):
(WebCore::ParsedResponseMessage::typeOr const):
(WebCore::CDMInstanceSessionOpenCDM::challengeGeneratedCallback):
(WebCore::toString):
(WebCore::CDMInstanceSessionOpenCDM::status const):
(WebCore::CDMInstanceSessionOpenCDM::keyUpdatedCallback):
(WebCore::CDMInstanceSessionOpenCDM::keysUpdateDoneCallback):
(WebCore::CDMInstanceSessionOpenCDM::errorCallback):
(WebCore::CDMInstanceSessionOpenCDM::requestLicense):
(WebCore::CDMInstanceSessionOpenCDM::sessionFailure):
(WebCore::CDMInstanceSessionOpenCDM::updateLicense):
(WebCore::CDMInstanceSessionOpenCDM::loadSession):
(WebCore::CDMInstanceSessionOpenCDM::closeSession):
(WebCore::CDMInstanceSessionOpenCDM::removeSessionData):
(WebCore::CDMInstanceSessionOpenCDM::storeRecordOfKeyUsage):
(WebCore:: const):

  • platform/graphics/gstreamer/eme/CDMOpenCDM.h: Added.

(WebCore::OpenCDM::OpenCDMSystemDeleter::operator() const):
(WebCore::OpenCDM::OpenCDMSessionDeleter::operator() const):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:

(WebCore::CDMProxyClearKey::cencSetDecryptionKey):

  • platform/graphics/gstreamer/eme/CDMProxyOpenCDM.cpp: Added.

(WebCore::CDMProxyOpenCDM::getDecryptionSession const):
(WebCore::CDMProxyOpenCDM::decrypt):

  • platform/graphics/gstreamer/eme/CDMProxyOpenCDM.h: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.
  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):
(WebCore::InitData::payload const):
(WebCore::GStreamerEMEUtilities::isWidevineKeySystem):
(WebCore::GStreamerEMEUtilities::keySystemToUuid):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(webkit_media_clear_key_decrypt_class_init):
(protectionSystemId):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformCaps):
(transformInPlace):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
  • platform/graphics/gstreamer/eme/WebKitOpenCDMDecryptorGStreamer.cpp: Added.

(webkit_media_opencdm_decrypt_class_init):
(webkit_media_opencdm_decrypt_init):
(finalize):
(protectionSystemId):
(cdmProxyAttached):
(decrypt):

  • platform/graphics/gstreamer/eme/WebKitOpenCDMDecryptorGStreamer.h: Added.

Source/WTF:

  • wtf/PlatformEnable.h: Disable OPENCDM by default.

Tools:

Added support to build OpenCDM and its dependencies. There is an
opt in env var to get JHBuild building Thunder its Widevine
dependencies. We also include a couple of GStreamer patches needed
to get key IDs in the decryptors.

Widevine is obviously proprietary and as you need to be licensed
to access it, you need credentials to build it.

  • Scripts/webkitperl/FeatureList.pm:
  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-bad-0006-mssdemux-parse-protection-data.patch: Added.
  • gstreamer/patches/gst-plugins-good-0002-Check-if-an-upstream-demuxer-provided-a-default-kid.patch: Added.
  • gtk/install-dependencies:
  • jhbuild/jhbuildrc_common.py:

(init):

  • wpe/install-dependencies:
7:01 AM Changeset in webkit [264218] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TreeConstruction] Create block level container for unsupported renderer
https://bugs.webkit.org/show_bug.cgi?id=214182

Reviewed by Antti Koivisto.

It makes full LFC rendering on random pages less crashy.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):

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

[GTK] MiniBrowser: title of back-forward menu items needs to be truncated when it's too large
https://bugs.webkit.org/show_bug.cgi?id=214180

Reviewed by Adrian Perez de Castro.

The popover menu doesn't set ellipsize on the inner label, so we need to do it manually. In the case of GTK4 we
also need to markup escape it.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowCreateBackForwardMenu):

5:47 AM Changeset in webkit [264216] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Flush the cairo surface after painting when using software
https://bugs.webkit.org/show_bug.cgi?id=214177

Reviewed by Adrian Perez de Castro.

This is similar to bug #210636 but it happens under wayland when using GTK4. It's good idea to flush always
after painting in any case, so we do ity in case of GTK3 as well.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot): Call cairo_surface_flush() after drawing.
(WebKit::AcceleratedBackingStoreWayland::paint): Ditto.

4:08 AM Changeset in webkit [264215] by svillar@igalia.com
  • 9 edits in trunk/Source/WebCore

[WebXR] Retrieve WebGL framebuffer resolution from XR devices
https://bugs.webkit.org/show_bug.cgi?id=213886

Reviewed by Carlos Garcia Campos.

The recommended WebGL framebuffer resolution should be retrieved from the actual XR device being used.
Implemented the OpenXR machinery to retrieve it from the XR system. We are also moving the methods that
call the platform code to the XRSession as specs define, instead of having them inside the XRWebGLLayer.

Finally this patch is also removing a unused definition in OpenXR plaform code and properly initializing
a OpenXR struct. The missing initialization was the source of errors when querying api layer properties.
The patch is also properly setting the SessionMode::Inline when XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO
is found. It used to set SessionMode::ImmersiveAr instead, but that's wrong, we should only care about
ImmersiveAr session mode once the WebXR AR module is implemented.

  • Modules/webxr/WebXRRenderState.cpp:

(WebCore::WebXRRenderState::outputCanvas const): Return render state's canvas.

  • Modules/webxr/WebXRRenderState.h: Added a m_outputCanvas member with its getter.
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::nativeWebGLFramebufferResolution const): Moved from WebXRWebGLLayer and reimplemented.
(WebCore::WebXRSession::recommendedWebGLFramebufferResolution const): Ditto.

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::WebXRWebGLLayer::getNativeFramebufferScaleFactor): Call the session to get native and recommended
resolutions.
(WebCore::WebXRWebGLLayer::computeNativeWebGLFramebufferResolution): Deleted.
(WebCore::WebXRWebGLLayer::computeRecommendedWebGLFramebufferResolution): Ditto.

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::recommendedResolution): New virtual method with default implementation.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Added initialization of the XrApiLayerProperties
objects. The call to xrEnumerateApiLayerProperties succeeds now.
(PlatformXR::OpenXRDevice::OpenXRDevice): Call enumerateConfigurationViews().
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Fill in the m_viewConfigurationProperties map.
(PlatformXR::OpenXRDevice::enumerateConfigurationViews): New method that retrieves the XR device views for each
supported configuration.
(PlatformXR::OpenXRDevice::recommendedResolution): Return the recommended resolution for a given SessionMode.

  • platform/xr/openxr/PlatformXROpenXR.h: Added some new methods and attributes.
3:48 AM Changeset in webkit [264214] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][MarginCollapsing] Margins do not collapse through when the box has clearance.
https://bugs.webkit.org/show_bug.cgi?id=214172

Reviewed by Antti Koivisto.

Source/WebCore:

https://www.w3.org/TR/CSS22/box.html#collapsing-margins
"Two margins are adjoining if and only if: no line boxes, no clearance, no padding and no border separate them"

Only adjoining margins can collapse through.

Test: fast/layoutformattingcontext/empty-block-level-box-with-clearance.html

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):

LayoutTests:

  • fast/layoutformattingcontext/empty-block-level-box-with-clearance-expected.html: Added.
  • fast/layoutformattingcontext/empty-block-level-box-with-clearance.html: Added.
2:16 AM Changeset in webkit [264213] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source

[GTK][WPE] Use mobile user-agent on tablet
https://bugs.webkit.org/show_bug.cgi?id=149496

Patch by Jan-Michael Brummer <jan.brummer@tabos.org> on 2020-07-10
Reviewed by Carlos Garcia Campos.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::getChassisType):
(WebCore::platformForUAString):
(WebCore::platformVersionForUAString):
(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):

1:16 AM Changeset in webkit [264212] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix GTK4 build

  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(fileChooserDialogResponseCallback):
(webkitWebViewRunFileChooser):

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot):

1:01 AM Changeset in webkit [264211] by aboya@igalia.com
  • 10 edits
    2 deletes in trunk/Source/WebCore

[MSE][GStreamer] Inline MediaSourceClientGStreamerMSE away
https://bugs.webkit.org/show_bug.cgi?id=214140

Reviewed by Xabier Rodriguez-Calvar.

MediaSourceClientGStreamerMSE is a superfluous class that adds
a layer of indirection and complexity to the GStreamer MSE codebase
for no gain. This patch gets rid of it.

This also gets rid of the friend access layer violations that
MediaSourceClientGStreamerMSE relied upon.

This patch is a refactor that doesn't introduce behavior changes and
it's covered by existing tests.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::setMediaSourceClient): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

(WebCore::MediaPlayerPrivateGStreamerMSE::playbackPipeline const):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: Removed.
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h: Removed.
  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::MediaSourcePrivateGStreamer):
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::durationChanged):
(WebCore::MediaSourcePrivateGStreamer::markEndOfStream):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::finishCreation):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::resetParserState):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::flush):
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
12:02 AM Changeset in webkit [264210] by ysuzuki@apple.com
  • 1 edit
    2 copies
    17 adds
    1 delete in trunk/Tools

Add Slack-aware WebKitBot implementation
https://bugs.webkit.org/show_bug.cgi?id=211707

Reviewed by Devin Rousso and Brian Burg.

This patch adds Slack-aware WebKitBot implementation which supports "ping", "revert", and the other commands.
I decided to implement this feature in chat-bot because of the following reasons.

  1. It is the previous way we are familiar with.
  2. Creating a revert-patch sometimes takes long time because it involves working-copy clean-up, creating a revert, generating a patch... So asynchronous request-response is better for developers who do not want to watch whether the patch is created until it is done. Chat-bot can tell us when it is ready.
  3. Requesting a revert-patch in public channel can easily tell the other developers that reverting is going on now.

We reuse python's webkit-patch create-revert command as it was in the old webkitbot. We enhance WKR bot to support webkitbot feature.
Once webkitbot app is installed into a channel, it monitors messages in the channel and works when the mention to this bot's user happens.

We use Real Time Message Slack API instead of Event API, because Event API requires public facing HTTPS server which accepts incoming webhook.
Real Time Message Slack API just requires a server app which connects to Slack via WebSocket, so it is easier to deploy for now.

The implementation of webkitbot is client-server model inside one process. There is one AsyncTaskQueue, and there is one async main loop which
takes the task from the queue and replies when it is done. Every time we noticed the request, this request queues the task to this task queue.
This design ensures that only one task is using the working-copy WebKit repository at a time, this is required to make a revert-patch without
conflict.

  • WKR/ReadMe.md: Removed.
  • WKR/WKR.mjs: Removed.
  • WKR/package-lock.json: Removed.
  • WKR/package.json: Removed.
  • WebKitBot/.eslintrc: Added.
  • WebKitBot/.gitignore: Renamed from Tools/WKR/.gitignore.
  • WebKitBot/ReadMe.md: Added.
  • WebKitBot/data/.gitignore: Renamed from Tools/WKR/data/.gitignore.
  • WebKitBot/package-lock.json: Added.
  • WebKitBot/package.json: Added.
  • WebKitBot/src/AsyncTaskQueue.mjs: Added.
  • WebKitBot/src/Commit.mjs: Added.
  • WebKitBot/src/Contributors.mjs: Added.
  • WebKitBot/src/Utility.mjs: Added.
  • WebKitBot/src/WKR.mjs: Added.
  • WebKitBot/src/WebKitBot.mjs: Added.
  • WebKitBot/src/index.mjs: Added.
  • WebKitBot/tests/Commit.test.mjs: Added.
  • WebKitBot/tests/WebKitBot.test.mjs: Added.
  • WebKitBot/tests/resources/.gitattributes: Added.
  • WebKitBot/tests/resources/HaveRadarAndBugzilla.json: Added.
  • WebKitBot/tests/resources/HavingBugzilla.json: Added.
  • WebKitBot/tests/resources/NoRadarAndBugzilla.json: Added.

Jul 9, 2020:

11:00 PM Changeset in webkit [264209] by Russell Epstein
  • 1 copy in branches/safari-610.1.22-branch

New branch.

10:25 PM Changeset in webkit [264208] by Lauro Moura
  • 3 edits
    2 adds
    1 delete in trunk/LayoutTests

[GTK][WPE] Garden more failures/rebaselines after WPT updates.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Added.
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/xhr/send-network-error-sync-events.sub-expected.txt: Removed. This test is actually failing for gtk/wpe. Removed to fallback to the w3c baseline and marked it as a failure.
6:27 PM Changeset in webkit [264207] by beidson@apple.com
  • 16 edits
    1 copy
    1 move
    2 adds in trunk/Source

Multiplex the HID and GameController gamepad providers on Mac.
<rdar://problem/63192532> and https://bugs.webkit.org/show_bug.cgi?id=214126

Reviewed by Tim Horton.
Source/WebCore:

Mac has already supported both the HID provider and GameController provider.

By adding an intermediate provider to multiplex both and tweaking a few other things,
it can support both at the same time.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/gamepad/PlatformGamepad.h:

(WebCore::PlatformGamepad::lastUpdateTime const):
(WebCore::PlatformGamepad::source const):

  • platform/gamepad/cocoa/GameControllerGamepad.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::gamepadHadInput):
(WebCore::GameControllerGamepadProvider::makeInvisibleGamepadsVisible):
(WebCore::GameControllerGamepadProvider::inputNotificationTimerFired):
(WebCore::GameControllerGamepadProvider::makeInvisibileGamepadsVisible): Deleted.

  • platform/gamepad/cocoa/GameControllerSPI.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.mm:
  • platform/gamepad/mac/HIDGamepad.h:
  • platform/gamepad/mac/HIDGamepadProvider.h:

(WebCore::HIDGamepadProvider::ignoreGameControllerFrameworkDevices):

  • platform/gamepad/mac/HIDGamepadProvider.mm: Renamed from Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp.

(WebCore::deviceMatchingDictionary):
(WebCore::deviceAddedCallback):
(WebCore::deviceRemovedCallback):
(WebCore::deviceValuesChangedCallback):
(WebCore::HIDGamepadProvider::singleton):
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::stopMonitoringInput):
(WebCore::HIDGamepadProvider::startMonitoringInput):
(WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::HIDGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):
(WebCore::gameControllerFrameworkWillHandleHIDDevice):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::valuesChanged):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::removeGamepadForDevice):

  • platform/gamepad/mac/MultiGamepadProvider.h: Added.

(WebCore::MultiGamepadProvider::isMockGamepadProvider const):
(WebCore::MultiGamepadProvider::PlatformGamepadWrapper::PlatformGamepadWrapper):

  • platform/gamepad/mac/MultiGamepadProvider.mm: Added.

(WebCore::MultiGamepadProvider::singleton):
(WebCore::MultiGamepadProvider::startMonitoringGamepads):
(WebCore::MultiGamepadProvider::stopMonitoringGamepads):
(WebCore::MultiGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::MultiGamepadProvider::platformGamepadConnected):
(WebCore::MultiGamepadProvider::platformGamepadDisconnected):
(WebCore::MultiGamepadProvider::platformGamepadInputActivity):

Source/WebCore/PAL:

The current "IOKitSPI.h" is really weird.
It is mostly needed for iOS, but also used on Mac a little...
And since some of what it declares on Mac is actually public, anyone else
that uses public headers on Mac runs into redefinitions.

Since the use of it on iOS and Mac are so different, let's just make a Mac one.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/mac/IOKitSPIMac.h: Copied from Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h.

Source/WebKit:

  • UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:

(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):

6:27 PM Changeset in webkit [264206] by Andres Gonzalez
  • 7 edits in trunk

Make accessibility/Mac/selected-visible-position-range.html time-deterministic.
https://bugs.webkit.org/show_bug.cgi?id=214154

Reviewed by Chris Fleizach.

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
Check passed parameter for null.

(WTR::AccessibilityUIElement::selectedTextMarkerRange):
Use attributeValue to run on secondary AX thread.

LayoutTests:

[WebAccessibilityObjectWrapper accessibilitySetValue] sets the selection
range and other properties asynchronously by dispatching the call to
another cycle of the run loop using callOnMainThread. thus for the JS to
retrieve the new value, it is necessary to wait until the value is
updated. this is even more so in isolated tree mode where all wrapper
calls come on the secondary AX thread. JS setTimeout doesn't help with
synchronizing these calls, so instead we are using Promises in the
function waitFor in accessibility-helper.js (thanks to Geoff Garen for
showing the way).

  • accessibility/mac/selected-visible-position-range-expected.txt:
  • accessibility/mac/selected-visible-position-range.html:

MOved waitFor(condition) to the accessibility-helper.js file to be used
in multiple tests.

  • accessibility/textarea-selected-text-range.html:
  • resources/accessibility-helper.js:

(waitFor):

5:07 PM Changeset in webkit [264205] by timothy_horton@apple.com
  • 5 edits in trunk/Source

"ESPN Fantasy Sports" does not respond to mouse events, only touch events
https://bugs.webkit.org/show_bug.cgi?id=214165
<rdar://problem/64671543>

Reviewed by Wenson Hsieh.

Source/WebCore:

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

(WebCore::IOSApplication::isESPNFantasySports):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shouldUseMouseGestureRecognizer]):
Add a bundle check.

5:05 PM Changeset in webkit [264204] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: title bar of undocked inspector should be white in BigSur
https://bugs.webkit.org/show_bug.cgi?id=214161
<rdar://problem/65289224>

Reviewed by Brian Burg.

Make the title bar white when the window is focused.

When the window is unfocused, the title bar background is
the same on Big Sur and Catalina. No changes were needed.

  • UserInterface/Views/Main.css:

(#undocked-title-area):
(body.big-sur #undocked-title-area):
(body:not(.big-sur) #undocked-title-area):
(@media (prefers-color-scheme: dark) #undocked-title-area):
(@media (prefers-color-scheme: dark) body.big-sur #undocked-title-area):
(@media (prefers-color-scheme: dark) body:not(.big-sur) #undocked-title-area):

4:37 PM Changeset in webkit [264203] by Simon Fraser
  • 12 edits
    2 adds in trunk

[macOS] Stuttery scrolling on tesla.com
https://bugs.webkit.org/show_bug.cgi?id=214159
<rdar://problem/64555500>

Reviewed by Wenson Hsieh.
Source/WebCore:

tesla.com uses scroll snapping, and also triggers layout during scrolling that could
cause scroll snap to yank the scroll position. This manifested as a change that affected
getBoundingClientRect which is used an an input to some transform math, causing the images
to move around.

Fix by ensuring that layout-triggered scroll snap does not happen if a user scroll is in progress,
when that scroll occurs via the scrolling thread. ScrollingTreeScrollingNodeDelegateMac has a
ScrollController that tracks when a gesture is in progress; push this state to
the ScrollingTree so it can be consulted from the main thread. The two subclasses
of ScrollableArea, RenderLayer and FrameView, then consult the ScrollingCoordinator
to ask whether a user scroll is in progress for their scrolling tree node.

Test: fast/scrolling/mac/adjust-scroll-snap-during-gesture.html

  • page/FrameView.cpp:

(WebCore::FrameView::isUserScrollInProgress const):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::isUserScrollInProgress const):

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

(WebCore::ScrollingCoordinator::isUserScrollInProgress const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::isUserScrollInProgressForNode):
(WebCore::ScrollingTree::setUserScrollInProgressForNode):
(WebCore::ScrollingTree::clearNodesWithUserScrollInProgress):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::isUserScrollProgress const):
(WebCore::ScrollingTreeScrollingNode::setUserScrollInProgress):
(WebCore::ScrollingTreeScrollingNode::setScrollSnapInProgress):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::isUserScrollInProgress const):

LayoutTests:

  • fast/scrolling/mac/adjust-scroll-snap-during-gesture-expected.txt: Added.
  • fast/scrolling/mac/adjust-scroll-snap-during-gesture.html: Added.
4:04 PM Changeset in webkit [264202] by Chris Dumez
  • 124 edits
    4 copies
    1 move
    79 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/webrtc from upstream
https://bugs.webkit.org/show_bug.cgi?id=214151

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync web-platform-tests/webrtc from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/webrtc/*: Updated.

LayoutTests:

  • tests-options.json:
3:41 PM Changeset in webkit [264201] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

[Bindings] Add default value support for union types in dictionary members
https://bugs.webkit.org/show_bug.cgi?id=214160

Reviewed by Sam Weinig.

Add default value support for union types in dictionary members. This is needed for the WebAudio specification:

"""
(AudioContextLatencyCategory or double) latencyHint = "interactive";
"""

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):

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

(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):

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

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

  • bindings/scripts/test/TestStandaloneDictionary.idl:
3:28 PM Changeset in webkit [264200] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Adopt the WebKit-specific PAC key and entitlements
https://bugs.webkit.org/show_bug.cgi?id=214162
<rdar://problem/65099687>

Reviewed by Geoffrey Garen.

Add the relevant entitlements for PAC use and exceptions on macOS. This will be
ignored on Intel, but will be a great thing on Apple Silicon!

  • Scripts/process-entitlements.sh:
2:54 PM Changeset in webkit [264199] by pvollan@apple.com
  • 11 edits
    4 moves in trunk

Move XPCEndpoint and XPCEndpointClient classes from WebCore to WebKit
https://bugs.webkit.org/show_bug.cgi?id=214099

Reviewed by Alex Christensen.

Source/WebCore:

These classes should not be in WebCore, but in WebKit, since they are only expected to be used there.

No new tests, since this patch is only moving source files.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/XPCEndpoint.h: Removed.
  • platform/cocoa/XPCEndpoint.mm: Removed.
  • platform/cocoa/XPCEndpointClient.h: Removed.
  • platform/cocoa/XPCEndpointClient.mm: Removed.

Source/WebKit:

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
  • Shared/Cocoa/XPCEndpoint.h: Copied from Source/WebCore/platform/cocoa/XPCEndpoint.h.
  • Shared/Cocoa/XPCEndpoint.mm: Copied from Source/WebCore/platform/cocoa/XPCEndpoint.mm.

(WebCore::XPCEndpoint::XPCEndpoint): Deleted.
(WebCore::XPCEndpoint::sendEndpointToConnection): Deleted.
(WebCore::XPCEndpoint::endpoint const): Deleted.

  • Shared/Cocoa/XPCEndpointClient.h: Copied from Source/WebCore/platform/cocoa/XPCEndpointClient.h.

(WebCore::XPCEndpointClient::~XPCEndpointClient): Deleted.

  • Shared/Cocoa/XPCEndpointClient.mm: Copied from Source/WebCore/platform/cocoa/XPCEndpointClient.mm.

(WebCore::XPCEndpointClient::setEndpoint): Deleted.
(WebCore::XPCEndpointClient::connection): Deleted.

  • UIProcess/Network/NetworkProcessProxyCocoa.mm:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

Tools:

  • TestWebKitAPI/Tests/WebKit/XPCEndpoint.mm:
2:36 PM Changeset in webkit [264198] by Antti Koivisto
  • 10 edits
    2 adds in trunk/LayoutTests/imported/w3c

Update css/selectors WPT tests for :is and :where
https://bugs.webkit.org/show_bug.cgi?id=214137

Reviewed by Chris Dumez.

Some more PASSes.

  • web-platform-tests/css/selectors/attribute-selectors/attribute-case/semantics-expected.txt:
  • web-platform-tests/css/selectors/attribute-selectors/attribute-case/semantics.html:
  • web-platform-tests/css/selectors/is-nested-expected.txt:
  • web-platform-tests/css/selectors/is-nested.html:
  • web-platform-tests/css/selectors/is-specificity-expected.txt:
  • web-platform-tests/css/selectors/is-specificity.html:
  • web-platform-tests/css/selectors/is-where-parsing-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-parsing.html: Added.
  • web-platform-tests/css/selectors/selectors-case-sensitive-001-expected.txt:
  • web-platform-tests/css/selectors/selectors-case-sensitive-001.html:
  • web-platform-tests/css/selectors/w3c-import.log:
2:25 PM Changeset in webkit [264197] by Chris Dumez
  • 21 edits
    30 copies
    19 moves
    38 adds
    5 deletes in trunk/LayoutTests

Resync web-platform-tests/url from upstream
https://bugs.webkit.org/show_bug.cgi?id=214145

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync web-platform-tests/url from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/url/*: Updated.

LayoutTests:

  • tests-options.json:
2:23 PM Changeset in webkit [264196] by aakash_jain@apple.com
  • 7 edits in trunk/Tools

Add EWS queues for tvOS and watchOS builders
https://bugs.webkit.org/show_bug.cgi?id=214147

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Added status-bubbles for tvos and watchos queues.
  • BuildSlaveSupport/ews-build/config.json: Added watchos and tvos builders.
  • BuildSlaveSupport/ews-build/factories.py:

(watchOSBuildFactory):
(tvOSBuildFactory):

  • BuildSlaveSupport/ews-build/factories_unittest.py: Added unit-tests.
  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/steps.py:

(appendCustomBuildFlags): Added support for tvos and watchos.
(CompileWebKit.start): Ditto.
(PrintConfiguration.run): Ditto.

2:20 PM Changeset in webkit [264195] by Brian Burg
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION(r217248): ASSERT_NOT_REACHED() in toWebFrameLoadType()
https://bugs.webkit.org/show_bug.cgi?id=214149

Reviewed by Joseph Pecoraro.

ASSERT_NOT_REACHED() is hit when the type is FrameLoadType::ReloadExpiredOnly. This happens
when remote inspection triggers a reload via InspectorPageAgent::reload() and the
'revalidateAllResources' optional argument is false or not specified.

  • WebView/WebFrame.mm:

(toWebFrameLoadType):
Remove the assert and add a note explaining why this load type that does not
naturally occur in WK1 may nonetheless be triggered while remote inspecting.

1:59 PM Changeset in webkit [264194] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[iOS] Conversation view messages in Mail are too small and scrollable
https://bugs.webkit.org/show_bug.cgi?id=214157
<rdar://problem/64788069>

Reviewed by Wenson Hsieh.

Revert the drive-by contentSize set optimization introduced in r262721.
iOS Mail relies on this delayed/late setContentSize call on WKScrollView (see rdar://problem/65277759).

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _setContentSizePreservingContentOffsetDuringRubberband:]):

1:44 PM Changeset in webkit [264193] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.28.3

WPE WebKit 2.28.3

1:44 PM Changeset in webkit [264192] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.28.3 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.28.3.
1:43 PM Changeset in webkit [264191] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Unreviewed non-unified build fixes.

No new tests needed.

  • SourcesWPE.txt: Add ScrollAnimationKinetic.cpp
  • rendering/RenderBlock.cpp: Add missing inclusion of ImageBuffer.h
  • svg/SVGClipPathElement.cpp: Ditto
  • workers/service/context/ServiceWorkerFetch.cpp: Add missing inclusion of

ServiceWorkerThread.h

  • xml/parser/XMLDocumentParserLibxml2.cpp: Add missinc inclusions of Page.h and

PageConsoleClient.h

1:01 PM Changeset in webkit [264190] by Simon Fraser
  • 8 edits
    2 adds in trunk

After a scroll gesture, content changes don't trigger re-snapping with scroll snap
https://bugs.webkit.org/show_bug.cgi?id=214123

Reviewed by Wenson Hsieh.

Source/WebCore:

ScrollController::m_inScrollGesture could get stuck as true after a scroll gesture, because
ScrollAnimatorMac::handleWheelEvent() didn't reliably call m_scrollController.handleWheelEvent() for
the event event based on the hokey shouldForwardWheelEventsToParent() code.

Fix by explicitly calling m_scrollController.updateGestureInProgressState() which maintains
m_inScrollGesture.

When m_inScrollGesture was stuck as true, ScrollableArea::updateScrollSnapState() would return early
because isScrollSnapInProgress() would return true. In addition,
ScrollController::isScrollSnapInProgress() was a lie for non-scroll-snapping scrollable areas, so
explicitly check for snap points there, using an explicit usesScrollSnap() function.

Rename some WheelEventStatus values to use "momentum" rather than "inertia".

Test: fast/scrolling/mac/adjust-scroll-snap-after-gesture.html

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::usesScrollSnap const):
(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/ScrollableArea.h:
  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):
(WebCore::ScrollController::usesScrollSnap const):
(WebCore::ScrollController::isScrollSnapInProgress const):
(WebCore::ScrollController::snapRubberBand):
(WebCore::toWheelEventStatus):
(WebCore::operator<<):
(WebCore::ScrollController::shouldOverrideMomentumScrolling const):
(WebCore::ScrollController::scheduleStatelessScrollSnap):
(WebCore::ScrollController::statelessSnapTransitionTimerFired):
(WebCore::ScrollController::processWheelEventForScrollSnap):
(WebCore::ScrollController::updateGestureInProgressState):
(WebCore::ScrollController::scrollSnapTimerFired):
(WebCore::ScrollController::activeScrollSnapIndexForAxis const):
(WebCore::ScrollController::setActiveScrollSnapIndexForAxis):
(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset):
(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset):
(WebCore::ScrollController::shouldOverrideInertialScrolling const): Deleted.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::handleWheelEvent):

LayoutTests:

  • fast/scrolling/mac/adjust-scroll-snap-after-gesture-expected.txt: Added.
  • fast/scrolling/mac/adjust-scroll-snap-after-gesture.html: Added.
1:00 PM Changeset in webkit [264189] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK] Remaining build fix after r264179

Like last revision, avoid "missing binary operator before(" errors
when WPE libraries are not installed.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint):

12:49 PM Changeset in webkit [264188] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Use /DELAYLOAD for mf.dll
https://bugs.webkit.org/show_bug.cgi?id=213330

Reviewed by Per Arne Vollan.

WinCairo failed to start up due to a missing dependency on some
versions of Windows in which Media Foundation is not available
such like Windows 10 N. Use delay load for Media Foundation. And,
check the availability.

  • PlatformWinCairo.cmake: Link with delayimp.lib. Added /DELAYLOAD linker options.
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::isAvailable): Check mf.dll is available.

12:46 PM Changeset in webkit [264187] by wenson_hsieh@apple.com
  • 11 edits in trunk

REGRESSION (r259840): Pressing Esc or ⌘+"." does not dismiss time picker on iOS
https://bugs.webkit.org/show_bug.cgi?id=214122
<rdar://problem/64940487>

Reviewed by Tim Horton.

Source/WebKit:

Prior to r259840, when presenting context menus for certain input types (i.e. "time" and "datetime-local") on
iOS, UIKit would tell the presented view controller's view (a UIDatePicker in this case) to become first
responder. As a result, WKContentView would resign first responder, which (by default) blurs the focused
element and dismisses the context menu. The result is thats time pickers would immediately dismiss upon
presentation.

To mitigate this, r259840 adopted the existing active focus retaining mechanism to temporarily decouple
WKContentView's first responder status from the currently focused form element. However, this also causes
-endEditingAndUpdateFocusAppearanceWithReason: to bail, due to self.webView._retainingActiveFocusedState
returning YES. This means that codepaths meant to immediately dismiss UI for the focused element (for example,
when pressing Escape on a hardware keyboard on iOS) will not be able to dismiss UI.

To fix this, push the flag that keeps track of whether we're relinquishing first responder to the focused
element down into WKContentView, and have WKContentView automatically stop relinquishing first responder to
the focused element in -[WKContentView accessoryDone].

Fixes an existing test: fast/forms/ios/dismiss-picker-using-keyboard.html

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

(-[WKContentView accessoryDone]):

Stop relinquishing focus to the focused element, so that form elements that require first responder can be
dismissed when triggering -accessoryDone (e.g. when pressing the Esc key on a hardware keyboard).

(-[WKContentView startRelinquishingFirstResponderToFocusedElement]):
(-[WKContentView stopRelinquishingFirstResponderToFocusedElement]):

Renamed from -preserveFocus and -releaseFocus, respectively. Also, made these methods idempotent using a new
BOOL flag, _isRelinquishingFirstResponderToFocusedElement.

(-[WKContentView preserveFocus]): Deleted.
(-[WKContentView releaseFocus]): Deleted.

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):

Use the renamed WKContentView methods, and also remove the _preservingFocus flag.

  • UIProcess/ios/forms/WKFormPopover.mm:

(-[WKRotatingPopover presentPopoverAnimated:]):
(-[WKRotatingPopover dismissPopoverAnimated:]):

Use the renamed WKContentView methods.

LayoutTests:

  • fast/forms/ios/dismiss-picker-using-keyboard.html:
  • fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html:
  • fast/forms/ios/time-picker-value-change-expected.txt:
  • fast/forms/ios/time-picker-value-change.html:

Adjust a few layout tests to be compatible with date and time inputs.

  • resources/ui-helper.js:

(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise):
(window.UIHelper.waitForInputSessionToDismiss):

12:44 PM Changeset in webkit [264186] by Truitt Savell
  • 3 edits in trunk/LayoutTests

REGRESSION (r264117): [ Mac iOS ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/blob.https.html
https://bugs.webkit.org/show_bug.cgi?id=214155

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
12:16 PM Changeset in webkit [264185] by Brian Burg
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r262302): ITMLKit debuggables in listings are missing a title, use UUID instead
https://bugs.webkit.org/show_bug.cgi?id=214153

Reviewed by Devin Rousso.

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::listingForInspectionTarget const):
Looks like this is due to copypasta.

11:51 AM Changeset in webkit [264184] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Stop telemetry collection for the 'hw.cpu64bit_capable' sysctl
https://bugs.webkit.org/show_bug.cgi?id=214148
<rdar://problem/65222086>

Reviewed by Per Arne Vollan.

Telemetry shows that SQLite3 on iOS-based builds needs read access to the
'hw.cpu64bit_capable' sysctl. We can stop logging this.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
11:38 AM Changeset in webkit [264183] by Chris Dumez
  • 109 edits
    4 copies
    79 adds
    13 deletes in trunk/LayoutTests

Resync web-platform-tests/workers from upstream
https://bugs.webkit.org/show_bug.cgi?id=214146

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/workers from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/workers/*: Updated.

LayoutTests:

  • tests-options.json:
11:29 AM Changeset in webkit [264182] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Local internal builds fail on Apple Silicon (building yasm)
https://bugs.webkit.org/show_bug.cgi?id=214129

Reviewed by Dan Bernstein.

  • Scripts/webkitdirs.pm:

(determineNativeArchitecture):
Build for arm64e when building with the internal SDK.
Importantly, this matches the ARCHS_STANDARD_* build settings, so this way we
won't set an ARCH that isn't in VALID_ARCHS for projects who use ARCHS_STANDARD_*.

(determineXcodeSDK):
Fall back to "macosx", so that other code can correctly identify that we're building for macOS.
This logic needs to be here, instead of in the caller (who could assume undefined means macOS),
because we want the ".internal" search to take place as well.

11:21 AM Changeset in webkit [264181] by Chris Dumez
  • 36 edits in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/webmessaging from upstream
https://bugs.webkit.org/show_bug.cgi?id=214143

Reviewed by Sam Weinig.

Resync web-platform-tests/webmessaging from upstream cef93b58e7cf31f1d47.

  • resources/import-expectations.json:
  • web-platform-tests/webmessaging/*: Updated.
10:33 AM Changeset in webkit [264180] by calvaris@igalia.com
  • 2 edits in trunk/Source/WTF

Simplify BoxPtr::create
https://bugs.webkit.org/show_bug.cgi?id=214144

Reviewed by Darin Adler.

  • wtf/BoxPtr.h:

(WTF::createBoxPtr): Use the alias instead of the unrolled type.

10:17 AM Changeset in webkit [264179] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK] Buildfix when WPEBackend-fdo is not available

Using the && operator for WPE_FDO_CHECK_VERSION was giving the
"missing binary operator before(" error as the macro was not defined
when the backend is not installed, like in the LTS/Debian vanilla
bots.

Unreviewed build fix.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot):

10:06 AM Changeset in webkit [264178] by pvollan@apple.com
  • 21 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Added HAVE define for determining if the class LSDatabaseContext is present.

  • wtf/PlatformHave.h:
9:57 AM Changeset in webkit [264177] by eric.carlson@apple.com
  • 10 edits in trunk/Source

Reset AVSystemController_PIDToInheritApplicationStateFrom when mediaserverd dies
https://bugs.webkit.org/show_bug.cgi?id=214112
<rdar://problem/65229214>

Reviewed by Jer Noble.

Source/WebCore:

Tested manually because this can only be tested by killing a system process while
capturing on iOS hardware.

  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Add task queue accessor.

(WebCore::MediaSessionManagerCocoa::taskQueue):

  • platform/audio/ios/MediaSessionHelperIOS.h:

(WebCore::MediaSessionHelperClient::mediaServerConnectionDied):

  • platform/audio/ios/MediaSessionHelperIOS.mm:

(MediaSessionHelperiOS::mediaServerConnectionDied): Renamed from carPlayServerDied.
Inform clients if we previously set the PID proxy.
(-[WebMediaSessionHelper initWithCallback:]): Call mediaServerConnectionDied.
(-[WebMediaSessionHelper mediaServerConnectionDied:]): Ditto.
(MediaSessionHelperiOS::carPlayServerDied): Deleted.
(-[WebMediaSessionHelper carPlayServerDied:]): Deleted.

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::mediaServerConnectionDied): Call providePresentingApplicationPID
if we previously set the PID proxy.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::captureSessionRuntimeError): Don't try to restart the
session immediately since this is called directly from the notification handler.

Source/WebKit:

  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:

(WebKit::RemoteMediaSessionHelperProxy::providePresentingApplicationPID): Don't bother
tracking whether or not providePresentingApplicationPID has been called, the session
helper already does that.

  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
9:31 AM Changeset in webkit [264176] by commit-queue@webkit.org
  • 22 edits
    4 copies in trunk

Set Restrictions for channelCount, channelCountMode for PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213992

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-09
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined tests that now pass.

  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:

Source/WebCore:

Added setter methods to PannerNode that handle exceptions for channelCount, channelCountMode, according to spec:
https://www.w3.org/TR/webaudio/#dom-audionode-channelcount.
Moved ChannelCount, ChannelCountMode enums into their own files.

Re-baselined tests that now pass.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::channelCount): Deleted.
(WebCore::AudioNode::channelCountMode): Deleted.
(WebCore::AudioNode::channelInterpretation): Deleted.

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::channelCount const):
(WebCore::AudioNode::channelCountMode const):
(WebCore::AudioNode::channelInterpretation const):
(WebCore::AudioNode::internalChannelCountMode const): Deleted.
(WebCore::AudioNode::internalChannelInterpretation const): Deleted.

  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::numberOfChannels const):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):

  • Modules/webaudio/AudioNodeOptions.h:
  • Modules/webaudio/AudioNodeOptions.idl:
  • Modules/webaudio/ChannelCountMode.h: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.h.
  • Modules/webaudio/ChannelCountMode.idl: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.idl.
  • Modules/webaudio/ChannelInterpretation.h: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.h.
  • Modules/webaudio/ChannelInterpretation.idl: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.idl.
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::create):
(WebCore::PannerNode::setChannelCount):
(WebCore::PannerNode::setChannelCountMode):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/WebKitAudioPannerNode.cpp:

(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/AudioBus.cpp:

(WebCore::AudioBus::copyFrom):
(WebCore::AudioBus::sumFrom):

  • platform/audio/AudioBus.h:
9:22 AM Changeset in webkit [264175] by aboya@igalia.com
  • 9 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove m_appendPipelinesMap
https://bugs.webkit.org/show_bug.cgi?id=214132

Reviewed by Xabier Rodriguez-Calvar.

m_appendPipelinesMap was owned by MediaPlayerPrivateGStreamerMSE but
was only used by MediaPlayerPrivateGStreamerMSE to clear it during
destruction, while the other uses were in
MediaSourceClientGStreamerMSE.

After analysis, it was found keeping a HashMap of AppendPipelines is not
necessary. An AppendPipeline only needs to be used by the SourceBuffer
receiving the muxed data: making AppendPipeline a member of
SourceBufferPrivateGStreamer reflects this dependency in a much
clearer way. No need for a HashMap of AppendPipeline's.

Moreso, there are no other users of AppendPipeline, which means
AppendPipeline doesn't need to be ref counted. This patch removes that
feature, using std::unique_ptr<AppendPipeline> for ownership instead.

This patch is a refactor: it doesn't introduce behavior changes and
it's covered by existing tests.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::resetParserState):
(WebCore::MediaSourceClientGStreamerMSE::append):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::finishCreation):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
9:07 AM Changeset in webkit [264174] by Chris Dumez
  • 125 edits
    3 copies
    2 moves
    10 adds
    5 deletes in trunk/LayoutTests

Resync web-platform-tests/xhr from upstream
https://bugs.webkit.org/show_bug.cgi?id=214105

Reviewed by Geoff Garen.

Resync web-platform-tests/xhr from upstream cef93b58e7cf31f1d47cc.

  • web-platform-tests/xhr/*: Updated.
9:00 AM Changeset in webkit [264173] by Caio Lima
  • 4 edits in trunk/JSTests

[JSC][32-bits] Test gardening July 9th
https://bugs.webkit.org/show_bug.cgi?id=214138

Unreviewed Gardening.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
  • stress/butterfly-zero-unused-butterfly-properties.js:
  • stress/check-stack-overflow-before-value-profiling-arguments.js:
8:55 AM Changeset in webkit [264172] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark ref-test as flaky on iOS since import in r263987.

  • platform/ios-wk2/TestExpectations:
8:41 AM Changeset in webkit [264171] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline fetch test after resync in r264144.

  • web-platform-tests/fetch/content-encoding/bad-gzip-body.any.worker-expected.txt:
8:15 AM Changeset in webkit [264170] by wenson_hsieh@apple.com
  • 11 edits
    2 adds in trunk

[iOS] Occasional crash under -[UIView _setViewDelegate:] when presenting date and time pickers
https://bugs.webkit.org/show_bug.cgi?id=214120
<rdar://problem/65246918>

Reviewed by Darin Adler.

Source/WebKit:

This crash happens when attempting to present a date picker (<input type=date>) immediately after dismissing
it. We encounter an Objective-C exception thrown by UIKit, due to the WKDateTimeContextMenuViewController's
view (the UIDatePicker) being presented while it is still owned by the preview view controller. We often avoid
this crash because the WKDateTimeContextMenuViewController is usually only owned by WKDateTimePicker, so
when we set _viewController to a new instance of WKDateTimeContextMenuViewController, the old view
controller is destroyed, and thus no longer owns the UIDatePicker view.

However, it's possible for anything (e.g. animation blocks in UIKit) to cause the old view controller to live
past the creation of the new view controller. If this happens, when we go and call -setView: on the new view
controller with the date picker view, the date picker view may still be the view of the old controller, and we
end up crashing.

To fix this, explicitly unload the old view controller's view before attempting to create the new view
controller.

Test: fast/forms/ios/show-and-dismiss-date-input.html

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKDateTimePicker contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKDateTimePicker contextMenuInteraction:willEndForConfiguration:animator:]):

Make it possible to test date and time picker presentation and dismissal by calling into the private testing-
only subclassing hooks on WKWebView when we finish presenting and dismissing the date picker context menu.

(-[WKDateTimePicker removeContextMenuInteraction]):

Tools:

Implement additional support for testing date and time pickers presented using context menus on iOS 14.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::isShowingContextMenu const):

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView _didShowContextMenu]):
(-[TestRunnerWKWebView _didDismissContextMenu]):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::setDidDismissContextMenuCallback):

Call the completion callback with CallbackTypeDidDismissContextMenu, rather than
CallbackTypeDidEndFormControlInteraction.

(WTR::UIScriptControllerIOS::isShowingContextMenu const):

Add a new script controller to ask whether we're currently presenting a context menu. This is useful in the case
where we want to wait until we're no longer showing a context menu, since we'll either immediately invoke script
completion, or stash a completion callback on didDismissContextMenuCallback to invoke script completion after
the context menu is finished dismissing.

LayoutTests:

Add a new layout test to verify that presenting a date picker twice does not result in a crash.

  • fast/forms/ios/show-and-dismiss-date-input-expected.txt: Added.
  • fast/forms/ios/show-and-dismiss-date-input.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.activateAndWaitForInputSessionAt.return.new.Promise.):

Teach this helper method to wait for context menus as well (for the case of date and time pickers on iOS).

(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise.):
(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise):
(window.UIHelper.waitForInputSessionToDismiss):

Likewise, teach this to wait for context menu dismissal.

(window.UIHelper.waitForContextMenuToHide.return.new.Promise):
(window.UIHelper.waitForContextMenuToHide):

Add a new helper to wait for context menus to hide.

7:33 AM Changeset in webkit [264169] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Verification] Use the table wrapper box's margin when checking the table box
https://bugs.webkit.org/show_bug.cgi?id=214119

Reviewed by Darin Adler.

Source/WebCore:

Table margins are propagated to the table wrapper box.

Test: fast/layoutformattingcontext/table-with-margin-simple.html

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

LayoutTests:

  • fast/layoutformattingcontext/table-with-margin-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-with-margin-simple.html: Added.
7:10 AM Changeset in webkit [264168] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK] Add support for shm buffers in AcceleratedBackingStoreWayland when using the WPE renderer
https://bugs.webkit.org/show_bug.cgi?id=214135

Reviewed by Žan Doberšek.

It's available since wpe-fdo 1.7.0. This makes accelerated compositing work in platforms where
EGL_WL_bind_wayland_display is not available. It can also be forced with the environment variable
LIBGL_ALWAYS_SOFTWARE.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Use AcceleratedBackingStoreWayland::checkRequirements()
instead of calling wpe_fdo_initialize_for_egl_display() again.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::tryInitializeEGL): Moved EGL specific initialization here.
(WebKit::tryInitializeSHM): Added SHM initialization.
(WebKit::AcceleratedBackingStoreWayland::checkRequirements): Try to initialize EGL first and then SHM if EGL failed.
(WebKit::AcceleratedBackingStoreWayland::AcceleratedBackingStoreWayland): Create a EGL exportable only when
using EGL implementation.
(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland): Release EGL resources only when using
EGL implementation.
(WebKit::AcceleratedBackingStoreWayland::unrealize): Ditto.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Return early when not using EGL implementation.
(WebKit::AcceleratedBackingStoreWayland::update): Add implementation for the SHM case.
(WebKit::AcceleratedBackingStoreWayland::displayImage): Renamed.
(WebKit::AcceleratedBackingStoreWayland::displayBuffer): SHM implementation, copy the shm buffer into a cairo
image surface.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureTexture):
(WebKit::AcceleratedBackingStoreWayland::downloadTexture):
(WebKit::AcceleratedBackingStoreWayland::snapshot): Handle the SHM case.
(WebKit::AcceleratedBackingStoreWayland::paint): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
7:02 AM Changeset in webkit [264167] by commit-queue@webkit.org
  • 21 edits
    7 deletes in trunk/Source

Unreviewed, reverting r264148.
https://bugs.webkit.org/show_bug.cgi?id=214136

Introduced layout test failures

Reverted changeset:

"[Cocoa] Update Launch Services database in the WebContent
process from the Network process"
https://bugs.webkit.org/show_bug.cgi?id=213794
https://trac.webkit.org/changeset/264148

5:30 AM Changeset in webkit [264166] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[MSE][GStreamer] Don't cache duration in MediaSourceClientGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=214128

Reviewed by Xabier Rodriguez-Calvar.

MediaSource should be the single source of truth for the duration of
the MediaSource, and querying it to MediaSource is efficient enough
(trivial getter). There is no reason for MediaSourceClientGStreamerMSE
to store a separate m_duration field.

This patch introduces no behavior changes.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::duration):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
4:43 AM Changeset in webkit [264165] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Unable to build without Internet connection
https://bugs.webkit.org/show_bug.cgi?id=213920

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-09
Reviewed by Sergio Villar Senin.

Set the flathub ostree repo url explicitely in order to avoid retrieving it from the
flatpakrepo remote file. This is unlikely to change.

  • flatpak/flatpakutils.py:

(WebkitFlatpak._get_packages):

4:20 AM Changeset in webkit [264164] by aboya@igalia.com
  • 6 edits in trunk/Source/WebCore

[MSE][GStreamer] Make duration changes one way
https://bugs.webkit.org/show_bug.cgi?id=214083

Reviewed by Xabier Rodriguez-Calvar.

Until now, AppendPipeline emitted duration changes for the
MediaSource. This was done with
MediaSourcePrivateClient::durationChanged(const MediaTime&), a
method which was added to MediaSource in r207889 just to implement
this in the GStreamer port.

This is not necessary though. AppendPipeline only needs to inform
MediaSource of the duration of the initialization segment, and
MediaSource will in turn set duration from the multi-platform code.

This patch removes MediaSourcePrivateClient::durationChanged(const
MediaTime&) from the multi-platform API, along with its usages in the
GStreamer port, giving the multi-platform code sole responsibility on
duration changes.

This is a code cleanup and it's covered by existing tests.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::durationChanged): Deleted.

  • Modules/mediasource/MediaSource.h:
  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):

2:36 AM Changeset in webkit [264163] by calvaris@igalia.com
  • 6 edits
    2 adds in trunk

[WTF] Implement new BoxPtr alias
https://bugs.webkit.org/show_bug.cgi?id=212379

Reviewed by Darin Adler.

Source/WTF:

Added BoxPtr.h that includes BoxPtr<T> as alias of
Box<std::unique_ptr<T>>. We discussed about this class on bugzilla
and we agreed on this alias being the best idea. Apart from the
alias I'm adding a couple of helpers like a create function and
the operator== and operator!=.

Tests: BoxPtr API tests added.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/BoxPtr.h: Added.

(WTF::createBoxPtr):
(WTF::operator==):
(WTF::operator!=):

  • wtf/CMakeLists.txt:

Tools:

Tests for BoxPtr.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/BoxPtr.cpp: Added.

(TestWebKitAPI::BoxPtrLogger::create):
(TestWebKitAPI::BoxPtrLogger::BoxPtrLogger):
(TestWebKitAPI::boxPtrLoggerDeleter):
(TestWebKitAPI::TEST):

2:24 AM Changeset in webkit [264162] by Philippe Normand
  • 5 edits in trunk

[GStreamer][MSE] AV1 support
https://bugs.webkit.org/show_bug.cgi?id=207547

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

If only the av1dec decoder is available, consider AV1 decoding
support as disabled, because this plugin performs really badly.
However, if any other AV1 decoder is present, such as the
dav1d-based Rust decoder for instance, consider AV1 support as
enabled.

These checks are now performed by both RegistryScanner instances,
for MSE and non-MSE players.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::hasElementForMediaType const):
(WebCore::GStreamerRegistryScanner::initialize):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:

LayoutTests:

  • platform/glib/TestExpectations: Mark media/media-can-play-av1.html as failing until the

Flatpak SDK ships gst-plugins-rs.

1:29 AM Changeset in webkit [264161] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove orphan code in SourceBufferPrivateGStreamer::append()
https://bugs.webkit.org/show_bug.cgi?id=214086

Reviewed by Xabier Rodriguez-Calvar.

A refactor in r240784 missed this line, which was unreachable code
before and should have removed.

Instead, it has been run every time after sending an append to the
AppendPipeline, and it just happens it doesn't have visible
consequences.

This patch cleans that up removing that line. No visible behavior
changes are introduced.

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::append):

1:23 AM Changeset in webkit [264160] by Alexey Shvayka
  • 3 edits
    1 add in trunk

ErrorInstance::finishCreation() puts "message" twice, with different attributes
https://bugs.webkit.org/show_bug.cgi?id=214089

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/error-source-appender.js: Added.

Source/JavaScriptCore:

This change refactors appendSourceToError() to return new message, making it almost pure
and eliminating extra JSString -> String -> JSString conversion and {get,put}Direct() calls
from ErrorInstance::finishCreation(). Also, moves null message check as early as possible.

Removed putDirect() call didn't pass PropertyAttribute::DontEnum. An implementation detail,
that is about to change in https://webkit.org/b/142933, prevented "message" property from
beind redefined with PropertyAttribute::None.

No behavior change. Advances provided microbenchmark by 5%.

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToErrorMessage):
(JSC::ErrorInstance::finishCreation):
(JSC::appendSourceToError): Deleted.

1:23 AM Changeset in webkit [264159] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.28.3

WebKitGTK 2.28.3

1:22 AM Changeset in webkit [264158] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.3 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.28.3.
12:57 AM Changeset in webkit [264157] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Initialize m_allowCookies and m_acceptEncoding in ResourceRequest::updateFromSoupMessage
https://bugs.webkit.org/show_bug.cgi?id=214077

Reviewed by Michael Catanzaro.

Check if SOUP_TYPE_CONTENT_DECODER and SOUP_TYPE_COOKIE_JAR are disabled in the given message.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateFromSoupMessage):

12:57 AM Changeset in webkit [264156] by Carlos Garcia Campos
  • 11 edits
    2 deletes in trunk

[SOUP] Add support for HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain
https://bugs.webkit.org/show_bug.cgi?id=213954

Reviewed by Michael Catanzaro.

Source/WebCore:

Handle both OnlyFromMainDocumentDomain and ExclusivelyFromMainDocumentDomain.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookieAcceptPolicy):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled):

Source/WebKit:

Use ExclusivelyFromMainDocumentDomain for WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY instead of
OnlyFromMainDocumentDomain.

  • UIProcess/API/glib/WebKitCookieManager.cpp:

(toWebKitCookieAcceptPolicy):
(toHTTPCookieAcceptPolicy):

  • UIProcess/WebProcessPool.h:

Tools:

Update libsoup to version 2.71.0.

  • buildstream/elements/sdk/libsoup.bst:
  • gtk/jhbuild.modules:

LayoutTests:

Update test expectations.

  • platform/glib/TestExpectations:
  • platform/glib/http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Removed.
  • platform/gtk/TestExpectations:
12:01 AM Changeset in webkit [264155] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r263388 - REGRESSION(r258741): [GTK] anchor-file-blob-download-includes-backslash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209329

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Sanitize the suggested filename. We replace characters that can be problematic in filenames with '_' to match
what Chromium and Firefox do.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::sanitizeFilename):
(WebCore::ResourceResponse::platformSuggestedFilename const):

LayoutTests:

Rebaseline tests.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes-expected.txt:
12:01 AM Changeset in webkit [264154] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28

Merge r258741 - Sanitize suggested download filename received from web process
https://bugs.webkit.org/show_bug.cgi?id=209300
<rdar://problem/59487723>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-19
Reviewed by Chris Dumez.

Source/WebKit:

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync):

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash.html:
12:01 AM Changeset in webkit [264153] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r264015 - [GTK] WebProcess hangs when browsing GitHub
https://bugs.webkit.org/show_bug.cgi?id=213970

Reviewed by Sergio Villar Senin.

Use a lower priority for LayerFlushTimer and DisplayRefreshMonitorTimer. We were using a very high priority for
drawing with the idea of keeping a good rendering performance without being affected by other timers. The
problem is that animations can be controlled by timers, so we need to ensure that MainThreadSharedTimer has
higher priority than drawing.

  • wtf/glib/RunLoopSourcePriority.h: Use 110 for LayerFlushTimer and DisplayRefreshMonitorTimer.

Jul 8, 2020:

11:30 PM Changeset in webkit [264152] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] B3 PureCSE should ignore values which are moved to new BasicBlock
https://bugs.webkit.org/show_bug.cgi?id=214115
<rdar://problem/65189470>

Reviewed by Saam Barati.

We are performing "Select" specialization like this.

BB#target

...
@a = Select(@p, @x, 42)
@b = Add(@a, 35)
Check(@b)
@c = ...

becomes this:

BB#predecessor

...
Branch(@p, #truecase, #falsecase)

BB#truecase:

@b_truecase = Add(@x, 35)
Check(@b_truecase)
Upsilon(@x, a)
Upsilon(@b_truecase,
b)
Jump(#continuation)

BB#falsecase:

@b_falsecase = Add(42, 35)
Check(@b_falsecase)
Upsilon(42, a)
Upsilon(@b_falsecase,
b)
Jump(#continuation)

BB#continuation:

@a = Phi()
@b = Phi()
Jump(#target)

BB#target

@c = ...

In the above transformation, we create a new BasicBlock and move @a and @b to that one. This is good since we do not need to rewrite all the use of @a and @b.
However, this confuses PureCSE since @a and @b point to a BasicBlock (BB#continuation) which is not inserted into the graph yet.

This patch changes PureCSE so that it ignores values which owners are not inserted yet.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::isInserted const):

  • b3/B3GenericBlockInsertionSet.h:

(JSC::B3::GenericBlockInsertionSet::insert):

  • b3/B3PureCSE.cpp:

(JSC::B3::PureCSE::findMatch):
(JSC::B3::PureCSE::process):

  • b3/air/AirBasicBlock.h:
11:11 PM Changeset in webkit [264151] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

Allow ScrollableArea to ask if a user scroll is in progress
https://bugs.webkit.org/show_bug.cgi?id=214121

Reviewed by Wenson Hsieh.

Work towards fixing scrolling stutters on layouting pages using scroll snap, like tesla.com.

ScrollableArea::updateScrollSnapState(), which happens as a result of layout, should not set a new
scroll position if a user scroll is in progress. ScrollController already tracks m_inScrollGesture,
so in the first instance just refactor the code to return that. Future changes will check
for scrolling thread activity.

  • page/FrameView.cpp:

(WebCore::FrameView::isUserScrollInProgress const):
(WebCore::FrameView::isRubberBandInProgress const):

  • page/FrameView.h:
  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::isUserScrollInProgress const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::isUserScrollInProgress const):

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::isUserScrollInProgress const):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::isUserScrollInProgress const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::isUserScrollInProgress const):
(WebCore::RenderLayer::isRubberBandInProgress const):

  • rendering/RenderLayer.h:
11:10 PM Changeset in webkit [264150] by Lauro Moura
  • 1 edit
    8 deletes in trunk/LayoutTests/imported/w3c

Unreviewed. Remove uneeded the-offscreen-canvas files after update.

The HTML tests for these expectations were removed in r264117.

Also removing two HTML placeholders for already removed JS files from
the same revision.

Unreviewed test gardening.

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.commit-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-expected.txt: Removed.
11:00 PM Changeset in webkit [264149] by Lauro Moura
  • 3 edits
    4 adds in trunk/LayoutTests

[GTK][WPE] Gardening after latest wpt resyncs

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/flex-expected.txt: Added.
10:24 PM Changeset in webkit [264148] by pvollan@apple.com
  • 21 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Added HAVE define for determining if the class LSDatabaseContext is present.

  • wtf/PlatformHave.h:
8:19 PM Changeset in webkit [264147] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Implementation of AXIsolatedObject::setSelectedVisiblePositionRange.
https://bugs.webkit.org/show_bug.cgi?id=214118

Reviewed by Chris Fleizach.

Covered by test: accessibility/mac/selected-visible-position-range.html.

Implemented AXIsolatedObject::setSelectedVisiblePositionRange() and
selection() by forwarding the call to the associated AX object.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selection const):
(WebCore::AXIsolatedObject::setSelectedVisiblePositionRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
call to the backing object should happen on the main thread since it
takes a VisiblePositionRange parameter.

8:19 PM Changeset in webkit [264146] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Clean up time values in ScrollController
https://bugs.webkit.org/show_bug.cgi?id=214117

Reviewed by Wenson Hsieh.

ScrollController used a mixture of [NSDate timeIntervalSinceReferenceDate], [NSProcessInfo processInfo].systemUptime
and wheelEvent.timestamp().secondsSinceEpoch(). Standardize on Seconds/MonotonicTime/WallTime.

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::elasticDeltaForTimeDelta):
(WebCore::ScrollController::handleWheelEvent):
(WebCore::ScrollController::snapRubberBandTimerFired):
(WebCore::ScrollController::snapRubberBand):

7:49 PM Changeset in webkit [264145] by Chris Dumez
  • 53 edits
    3 copies
    41 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/websockets from upstream
https://bugs.webkit.org/show_bug.cgi?id=214107

Reviewed by Sam Weinig.

Resync web-platform-tests/websockets from upstream cef93b58e7cf31f1d47cc.

  • web-platform-tests/websockets/*: Updated.
7:47 PM Changeset in webkit [264144] by Chris Dumez
  • 159 edits
    10 copies
    7 moves
    136 adds
    7 deletes in trunk/LayoutTests

Resync web-platform-tests/fetch from upstream
https://bugs.webkit.org/show_bug.cgi?id=214111

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/fetch from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/fetch/*: Updated.

LayoutTests:

  • tests-options.json:
6:20 PM Changeset in webkit [264143] by beidson@apple.com
  • 6 edits in trunk/Source

Aggressively prime GameController.framework gamepad provider.
https://bugs.webkit.org/show_bug.cgi?id=214094

Reviewed by Darin Adler.

Source/WebCore:

GameController.framework gets itself going by listening for application activation,
assuming that it is hard linked.

Soft linking breaks this.

There's an SPI to manually kickstart it.

Also add some logging I'd added while exploring issues around this.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::prewarmGameControllerDevicesIfNecessary):
(WebCore::GameControllerGamepadProvider::startMonitoringGamepads):

  • platform/gamepad/cocoa/GameControllerSPI.h:

Source/WebKit:

  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadDisconnected):
(WebKit::WebGamepadProvider::gamepadActivity):

5:14 PM Changeset in webkit [264142] by stephan.szabo@sony.com
  • 3 edits in trunk/Tools

[Windows] Fix errors from calls to uname when not available
https://bugs.webkit.org/show_bug.cgi?id=214101

Reviewed by Darin Adler.

As bare windows doesn't default to having uname, avoid calls
to it for architecture determination.

  • Scripts/webkitdirs.pm: Do not call uname on windows (non-cygwin) perl
  • Scripts/webkitpy/common/system/platforminfo.py: Do not call uname for windows (non-cygwin) python, os.uname() also doesn't necessarily exist there, so use platform.uname() instead.
4:47 PM Changeset in webkit [264141] by commit-queue@webkit.org
  • 19 edits
    7 deletes in trunk/Source

Unreviewed, reverting r264132 and r264139.
https://bugs.webkit.org/show_bug.cgi?id=214108

Introduced assert failure.

Reverted changesets:

"[Cocoa] Update Launch Services database in the WebContent
process from the Network process"
https://bugs.webkit.org/show_bug.cgi?id=213794
https://trac.webkit.org/changeset/264132

"Unreviewed build fix attempt after r264132."
https://trac.webkit.org/changeset/264139

4:15 PM Changeset in webkit [264140] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed. Remove some mentions of non-existant files in expectations.

3:57 PM Changeset in webkit [264139] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix attempt after r264132.

  • pal/spi/cocoa/LaunchServicesSPI.h:
3:07 PM Changeset in webkit [264138] by Chris Dumez
  • 6 edits in trunk

ASSERTION FAILURE: Completion handlers not invalidated when WebPage::~WebPage() invoked navigating to docs.google.com and signing in
https://bugs.webkit.org/show_bug.cgi?id=214098
<rdar://problem/64848288>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure the WebPage destructor calls its "markLayersAsVolatile" CompletionHandlers before destroying
them.

Change is covered by new API test.

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

(-[WKWebView _processWillSuspendForTesting:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspension.mm:

(TEST):

2:59 PM Changeset in webkit [264137] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.1.2

Tag Safari-610.1.21.1.2.

2:46 PM Changeset in webkit [264136] by weinig@apple.com
  • 27 edits
    1 add in trunk

Part 3 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=214082

Reviewed by Darin Adler.

Source/WebCore:

  • Replaces all uses of SimpleColor that are not implementation details of Color, with SRGBA<uint8_t>.
  • Adds ColorBuilder<T> to allow maintaining the syntax SimpleColor for constant colors. e.g:

Color color = Color::yellow.colorWithAlpha(128);

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Add ColorBuilder.h

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::semanticColor const):

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::asSimple const):
(WebCore::Color::setSimpleColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):

  • Make constructor taking a SimpleColor private.
  • Add / modifiy constructors to take SRGBA<uint8_t>.
  • Make setSimpleColor() take a SRGBA<uint8_t> (this will be renamed along with other aspects of Color's internals in a subsequent change).
  • Update calls that still need SimpleColor to use an explicit construction from SRGBA<uint8_t>.
  • platform/graphics/ColorBuilder.h: Added.

(WebCore::ColorBuilder::ColorBuilder):
(WebCore::ColorBuilder::color const):
(WebCore::ColorBuilder::colorWithAlpha const):
Added to help maintain current syntax why constructing colors. Currently it only
supports color type with uint8_t components, but can be expanded to support more.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampToComponentByte):
Remove unnecessary cast.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor):
Restrict to explicit construction via a SRGBA<uint8_t>.

(WebCore::makeSimpleColor):
Update to return ColorBuilder<SRGBA<uint8_t>>. A future change will update
the function name, but kept the same here to limit the size of the change.

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):
(WebCore::nsColor):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::makeSimpleColorFromCGColor):
(WebCore::cachedCGColor):
Replace direct SimpleColor usage with SRGBA<uint8_t> and simplify Packed
construction now that .asSRGBA<uint8_t>() is not needed for color constants.

  • css/DeprecatedCSSOMRGBColor.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseNamedColor):
(WebCore::CSSParser::parseHexColor):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::finishParsingHexColor):
(WebCore::parseHexColorInternal):
(WebCore::parseNumericColor):
(WebCore::finishParsingNamedColor):
(WebCore::parseNamedColorInternal):
(WebCore::parseSimpleColorInternal):
(WebCore::CSSParserFastPaths::parseSimpleColor):
(WebCore::CSSParserFastPaths::parseHexColor):
(WebCore::CSSParserFastPaths::parseNamedColor):

  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHexColor):

  • html/ColorInputType.cpp:

(WebCore::parseSimpleColorValue):

  • html/HTMLElement.cpp:

(WebCore::parseLegacyColorValue):

  • page/DebugPageOverlays.cpp:

(WebCore::touchEventRegionColors):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo):

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendWithWhite):
(WebCore::blend):
(WebCore::blendWithoutPremultiply):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::cloneLayerDebugBorderColor):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawBoxes):

  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderThemeMac.mm:

(WebCore::menuBackgroundColor):
Replace direct SimpleColor usage with SRGBA<uint8_t>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update to account for makeSimpleColor no longer returning an object that has a
asSRGBA<uint8_t>() function (it is already a SRGBA<uint8_t>).

2:43 PM Changeset in webkit [264135] by Chris Dumez
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed, add iOS-specific baseline for WPT test after resync in r264117.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/select-wrap-no-spill.optional-expected.txt: Added.
2:40 PM Changeset in webkit [264134] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make a logging channel for ScrollSnap and improve its logging
https://bugs.webkit.org/show_bug.cgi?id=214096

Reviewed by Wenson Hsieh.

Pull existing scroll snap logging out of the Scrolling log channel into a new ScrollSnap channel,
add more logging, and make better use of TextStream-based logging.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::operator<<):
(WebCore::updateSnapOffsetsForScrollableArea):
(WebCore::snapOffsetsToString): Deleted.
(WebCore::snapOffsetRangesToString): Deleted.
(WebCore::snapPortOrAreaToString): Deleted.

  • platform/Logging.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/cocoa/ScrollController.mm:

(WebCore::operator<<):
(WebCore::ScrollController::processWheelEventForScrollSnap):
(WebCore::ScrollController::startScrollSnapTimer):
(WebCore::ScrollController::stopScrollSnapTimer):
(WebCore::ScrollController::scrollSnapTimerFired):
(WebCore::ScrollController::updateScrollSnapState):

  • platform/cocoa/ScrollSnapAnimatorState.h:
  • platform/cocoa/ScrollSnapAnimatorState.mm:

(WebCore::operator<<):

2:33 PM Changeset in webkit [264133] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add a fuzzing toggle for LICM
https://bugs.webkit.org/show_bug.cgi?id=214093

Reviewed by Yusuke Suzuki.

We have an AI based safety checker for LICM, to determine if it's safe to
hoist nodes. Historically, we've had bugs here, where we allow unsafe
hoisting. In practice, we've been saved by safety checks also being hoisted
at the same time as the operation they're protecting, so even if we
have bugs in AI-based safeToExecute, things usually just work. Since
we've had security bugs here before, where the safety checks don't get hoisted,
leading to issues, it's helpful if we can fuzz this area. This patch implements
a way to says we won't hoist a node based on some probability, allowing us to play
with what does and doesn't get hoisted.

  • dfg/DFGLICMPhase.cpp:

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

  • runtime/OptionsList.h:
2:13 PM Changeset in webkit [264132] by pvollan@apple.com
  • 19 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

1:13 PM Changeset in webkit [264131] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:09 PM Changeset in webkit [264130] by dino@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

input button test needs rebaseline for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=214095
rdar://64911045

Unreviewed gardening. This test produces different results on Big Sur.

  • platform/mac-bigsur/fast/forms/input-button-sizes-expected.txt: Added.
12:54 PM Changeset in webkit [264129] by ggaren@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Reviewed by Darin Adler.

Make this test deterministic by waiting for the correct result.

  • accessibility/textarea-selected-text-range-expected.txt:
  • accessibility/textarea-selected-text-range.html:
12:42 PM Changeset in webkit [264128] by pvollan@apple.com
  • 6 edits
    5 adds in trunk

[Cocoa] Make it possible to establish direct XPC connections between WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=214079

Reviewed by Brent Fulgham.

Source/WebCore:

Add abstract classes XPCEndpoint and XPCEndpointClient to handle the creation of direct xpc connections between WebKit processes.
In order to create a direct xpc connection between two processes, these two classes can be subclassed, and the xpc endpoint created
by the XPCEndpoint object, can be sent via the UI process over the bootstrap xpc connection. The UI process can then forward this
endpoint to another WebKit process by sending it over the bootstrap xpc connection. The receiving process can then initialize an
XPCEndpointClient object with this endpoint, and a new direct connection will then be available, over which the two processes can
communicate.

API test: WebKit.XPCEndpoint

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/XPCEndpoint.h: Added.
  • platform/cocoa/XPCEndpoint.mm: Added.

(WebCore::XPCEndpoint::XPCEndpoint):
(WebCore::XPCEndpoint::sendEndpointToConnection):
(WebCore::XPCEndpoint::endpoint const):

  • platform/cocoa/XPCEndpointClient.h: Added.

(WebCore::XPCEndpointClient::~XPCEndpointClient):

  • platform/cocoa/XPCEndpointClient.mm: Added.

(WebCore::XPCEndpointClient::setEndpoint):
(WebCore::XPCEndpointClient::connection):

Source/WTF:

Declare function to create a xpc endpoint, as well as a function to create a connection from an endpoint.

  • wtf/spi/darwin/XPCSPI.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/XPCEndpoint.mm: Added.

(TEST):

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

[ews] Limit layout tests failures to display in the status-bubble tooltip and buildbot summary
https://bugs.webkit.org/show_bug.cgi?id=214085

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py: Limit NUM_FAILURES_TO_DISPLAY to 10.

(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.report_pre_existing_failures):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeLayoutTestsResults.test_clean_tree_has_some_failures): Updated as per new behavior.
(TestAnalyzeLayoutTestsResults.test_failure_on_clean_tree): Updated to also test for build_summary.
(TestAnalyzeLayoutTestsResults.test_flaky_and_inconsistent_failures_with_clean_tree_failures): Ditto.
(TestAnalyzeLayoutTestsResults.test_mildly_flaky_patch_with_some_tree_redness_and_flakiness): Ditto.
(TestAnalyzeLayoutTestsResults.test_flaky_failures_in_first_run): Added unit-test.
(TestAnalyzeLayoutTestsResults.test_clean_tree_has_lot_of_failures_and_no_new_failure): Added unit-test.
(TestAnalyzeLayoutTestsResults.test_patch_introduces_lot_of_failures): Added unit-test.

12:29 PM Changeset in webkit [264126] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

dyld: Symbol not found: ZN3WTF19initializeThreadingEv - webkit MacOSX
https://bugs.webkit.org/show_bug.cgi?id=214034

Reviewed by Mark Lam.

  • wtf/Threading.cpp:

(WTF::initializeThreading): Export the old symbol name for compatibility.

12:08 PM Changeset in webkit [264125] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Regression(r261756): webanimations/accelerated-animation-single-keyframe.html is consistently timing out on windows
https://bugs.webkit.org/show_bug.cgi?id=214088

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:51 AM Changeset in webkit [264124] by chris.reid@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

Heap Snapshot Object Graph view doesn't get populated in some cases when inspecting a JSContext
https://bugs.webkit.org/show_bug.cgi?id=214054

Reviewed by Devin Rousso.

When JSContexts are created with a custom globalObjectClass, that object is an
instance of CallbackGlobalObject and not GlobalObject so the view doesn't get populated.
Add instances of CallbackGlobalObject to the Object Graph view as top level nodes.

  • UserInterface/Views/HeapSnapshotDataGridTree.js:
11:45 AM Changeset in webkit [264123] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:42 AM Changeset in webkit [264122] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Silence spam reports about deprecated logging system
https://bugs.webkit.org/show_bug.cgi?id=214090
<rdar://problem/63943836>

Reviewed by Per Arne Vollan.

Change the default 'block' behavior for 'com.apple.system.logger' to
block "with no-report" so that we don't spend time generating backtraces
when non-WebKit code attempts to use this deprecated logging system.

  • WebProcess/com.apple.WebProcess.sb.in:
11:39 AM Changeset in webkit [264121] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build fix after r264050
https://bugs.webkit.org/show_bug.cgi?id=214091

Unreviewed build fix

No new tests, only build fix.

  • platform/playstation/ScrollbarThemePlayStation.cpp:
11:30 AM Changeset in webkit [264120] by commit-queue@webkit.org
  • 4 edits in trunk

Text manipulation should ignore white spaces between nodes
https://bugs.webkit.org/show_bug.cgi?id=213907

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-08
Source/WebCore:

Reviewed by Wenson Hsieh.

Text returned by TextIterator contains white spaces (including tabs and line breaks) that do not belong to
content of nodes. Those spaces are emitted based on style of nodes. For example, line breaks can be emitted
before and after block-level element. These spaces should not be extracted as part of the content, because
they could change based on the style of nodes or range of TextIterator, and manipulation fails if content is
changed. We want to make sure TextManipulationController monitors the real content of nodes.

r262778 tried solving this issue by excluding text with empty node from TextIterator's result. That worked with
line break, but not space and tab. See radar and new test. To solve this, now we exclude text with zero-length
range.

This patch does not change the behavior of line breaks, which is covered by:
TextManipulation.StartTextManipulationExtractsVisibleLineBreaksInTextAsExcludedTokens
TextManipulation.CompleteTextManipulationCanMergeContentAndPreserveLineBreaks
TextManipulation.CompleteTextManipulationReplaceTwoSimpleParagraphs

New test: TextManipulation.CompleteTextManipulationIgnoreWhiteSpacesBetweenParagraphs
Modified existing tests: TextManipulation.StartTextManipulationExtractsValuesByNode

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::ParagraphContentIterator):
(WebCore::ParagraphContentIterator::shouldAdvanceIteratorPastCurrentNode const):
(WebCore::ParagraphContentIterator::advanceIteratorNodeAndUpdateText):

Tools:

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

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

Network process crashes in WebKit::WebIDBServer::removeConnection
https://bugs.webkit.org/show_bug.cgi?id=214071
<rdar://problem/64853929>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-08
Reviewed by Chris Dumez.

In network process, WebIDBServer may be removed and destroyed before web process using the same session
disconnects. Then a new WebIDBServer can be added before disconnection of web process and the new WebIDBServer
does not have information about the web process connection.

To solve this issue, now we only remove WebIDBServer when session is destroyed and there is no web process
connection of that session.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::removeWebIDBServerIfPossible):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

  • NetworkProcess/NetworkProcess.h:
11:03 AM Changeset in webkit [264118] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Remove use of live ranges from AXObject.h
https://bugs.webkit.org/show_bug.cgi?id=214053

Reviewed by Sam Weinig.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange): Take SimpleRange.
(WebCore::AXObjectCache::lengthForRange): Take Optional<SimpleRange>.
(WebCore::AXObjectCache::rangeForNodeContents): Return SimpleRange, take reference
rather than pointer.
(WebCore::characterOffsetsInOrder): Use SimpleRange.
(WebCore::resetNodeAndOffsetForReplacedNode): Take a reference to the node rather than
a pointer.
(WebCore::boundaryPoint): Added. Could be used to replace calls to
setRangeStartOrEndWithCharacterOffset.
(WebCore::setRangeStartOrEndWithCharacterOffset): Take SimpleRange. Also use the
new boundaryPoint function above.
(WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets): Return Optional<SimpleRange>.
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange): Take SimpleRange.
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange): Take SimpleRange.
(WebCore::AXObjectCache::characterOffsetForNodeAndOffset): Use SimpleRange.
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset): Ditto.
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset): Ditto.
(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::leftWordRange): Return Optional<SimpleRange>.
(WebCore::AXObjectCache::rightWordRange): Ditto.
(WebCore::AXObjectCache::nextBoundary): Ditto.
(WebCore::AXObjectCache::previousBoundary): Ditto.
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph): Use SimpleRange.
(WebCore::AXObjectCache::endCharacterOffsetOfParagraph): Ditto.
(WebCore::AXObjectCache::paragraphForCharacterOffset): Ditto.
(WebCore::AXObjectCache::sentenceForCharacterOffset): Ditto.
(WebCore::AXObjectCache::localCaretRectForCharacterOffset): Ditto.
(WebCore::AXObjectCache::characterOffsetForPoint): Ditto.
(WebCore::AXObjectCache::characterOffsetForIndex): Ditto.
(WebCore::AXObjectCache::indexForCharacterOffset): Ditto.

  • accessibility/AXObjectCache.h: Remove uses of Range and include of "Range.h".
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::elementRange const): Call createLiveRange.
(WebCore::AccessibilityObject::rangeForPlainTextRange const): Ditto.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::boundsForRange const): Pass SimpleRange.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(+[WebAccessibilityTextMarker startOrEndTextMarkerForRange:isStart:cache:]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper positionForTextMarker:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper textMarkerForPosition:]): Ditto.
(-[WebAccessibilityObjectWrapper rangeForTextMarkers:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper lengthForTextMarkers:]): Pass SimpleRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(startOrEndTextmarkerForRange):
(-[WebAccessibilityObjectWrapper rangeForTextMarkerRange:]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper _indexForTextMarker:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeAtTextMarker:forUnit:]): Ditto.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Ditto.

  • dom/BoundaryPoint.h: Added makeBoundaryPointBefore/AfterNode.
  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointBeforeNode): Added.
(WebCore::makeBoundaryPointAfterNode): Ditto.

10:57 AM Changeset in webkit [264117] by Chris Dumez
  • 123 edits
    32 copies
    9 moves
    310 adds
    107 deletes in trunk/LayoutTests

Resync all remaining web-platform-tests/html tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=214057

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync all remaining web-platform-tests/html tests from upstream cef93b58e7cf31f1d47ccb.

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

10:56 AM Changeset in webkit [264116] by Darin Adler
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Fix adjust-angle-include-paths.sh error seen building ANGLE library
https://bugs.webkit.org/show_bug.cgi?id=214059

Reviewed by Alexey Proskuryakov.

  • ANGLE.xcodeproj/project.pbxproj: Remove the build step that adjusts paths.

Dean Jackson told me we don't need it for the static library target.

10:50 AM Changeset in webkit [264115] by Alan Coon
  • 8 edits in branches/safari-610.1.21.1-branch/Source

Versioning.

WebKit-610.1.21.1.2

10:45 AM Changeset in webkit [264114] by weinig@apple.com
  • 7 edits
    1 delete in trunk/LayoutTests

Remove LayoutTests/fast/forms/datetime now that <input type="datetime"> code has been removed
https://bugs.webkit.org/show_bug.cgi?id=214064

Reviewed by Dan Bernstein.

  • fast/forms/datetime: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Stop skipping the removed tests.

10:43 AM Changeset in webkit [264113] by aestes@apple.com
  • 23 edits
    2 adds in trunk

REGRESSION (r207558): [Mac] Context clicks on links sometimes result in navigations
https://bugs.webkit.org/show_bug.cgi?id=213793
<rdar://problem/64294015>

Reviewed by Tim Horton.

Source/WebKit:

WebPageProxy::showContextMenu was written with the assumption that WebContextMenuProxy::show
would present a context menu and spin a nested run loop, blocking until the menu dismisses.
Once WebContextMenuProxy::show returns, showContextMenu would send the
WebPage::ContextMenuHidden message, telling the WebContent process that it's OK to resume
processing mouse events.

This assumption was invalidated in r207558 (and again in several subsequent changes), which
added asynchronous APIs to WKPageContextMenuClient. If the context menu client provides
context menu items asynchronously, WebContextMenuProxy::show would return -- and the
WebContent process would resume processing mouse events -- before the context menu was even
presented. Since context menu presentation is triggered by a mouse press event, it's
possible that the corresponding mouse release event would be delivered after
getContextMenuFromProposedMenuAsync was dispatched but before the client responded with menu
items to present. If this happened, since mouse event processing was not disabled, the
WebContent process would dispatch a DOM click event to the page, possibly triggering a
navigation.

Fix this by teaching WebPageProxy to defer sending WebPage::ContextMenuHidden until the
context menu has been dismissed, even in cases where the context menu client provides menu
items asynchronously. Also, take the opportunity to modernize WebContextMenuProxy and its
subclasses by, e.g., moving duplicated subclass code into the base class, using the client
pattern, and using WeakPtrs instead of raw pointers/references.

New API tests: ContextMenuMouseEvents.*

  • UIProcess/API/APIContextMenuClient.h:

(API::ContextMenuClient::showContextMenu):
(API::ContextMenuClient::canShowContextMenu const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient): Added canShowContextMenu to determine whether the client
can show a context menu without actually showing it.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::createContextMenuProxy): Passed page to
WebContextMenuProxyWPE::create.

  • UIProcess/WebContextMenuListenerProxy.cpp:

(WebKit::WebContextMenuListenerProxy::WebContextMenuListenerProxy):
(WebKit::WebContextMenuListenerProxy::useContextMenuItems):
(WebKit::WebContextMenuListenerProxy::invalidate): Deleted. Not needed now that m_client is
a WeakPtr.

  • UIProcess/WebContextMenuListenerProxy.h:

(WebKit::WebContextMenuListenerProxy::create): Rather than store a raw pointer to a
WebContextMenuProxy, store a WeakPtr to a WebContextMenuListenerProxy::Client (which
WebContextMenuProxy implements).

  • UIProcess/WebContextMenuProxy.cpp:

(WebKit::WebContextMenuProxy::WebContextMenuProxy): Stored a WeakPtr to a WebPageProxy
rather than storing a raw pointer to the same in each subclass.
(WebKit::WebContextMenuProxy::proposedItems const): Added a virtual function to create
proposed WebContextMenuItems from m_context's menu items. WebContextMenuProxyGtk overrides
this to do something slightly different.
(WebKit::WebContextMenuProxy::show): Added a base class implementation that creates a
WebContextMenuListenerProxy and calls ContextMenuClient::getContextMenuFromProposedMenu.
(WebKit::WebContextMenuProxy::useContextMenuItems): Added a base class implementation that
performs the work previously done in WebPageProxy::showContextMenu. Calls
showContextMenuWithItems, which now always synchronously presents the menu.

  • UIProcess/WebContextMenuProxy.h: Inherited from WebContextMenuListenerProxy::Client.

(WebKit::WebContextMenuProxy::page const): Added for use by WKSharingServicePickerDelegate.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showContextMenu): Moved code that assumes synchronous menu
presentation to WebContextMenuProxy::useContextMenuItems.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::proposedItems const): Implemented GTK's special version
that excludes ContextMenuItemTagShareMenu.
(WebKit::WebContextMenuProxyGtk::show): Deleted. WebContextMenuProxy::show handles this now.
(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):

  • UIProcess/gtk/WebContextMenuProxyGtk.h: Moved m_page to WebContextMenuProxy.
  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Changed now that
WebContextMenuProxy::page returns a pointer.

  • UIProcess/mac/WebContextMenuProxyMac.h:

(WebKit::WebContextMenuProxyMac::page const): Deleted.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
(WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac): No need to invalidate
m_contextMenuListener now that it stores a WeakPtr to its WebContextMenuProxy.
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
(WebKit::WebContextMenuProxyMac::showServicesMenu):
(WebKit::WebContextMenuProxyMac::show):
(WebKit::WebContextMenuProxyMac::showContextMenuWithItems): Overrode to handle service menus.
(WebKit::WebContextMenuProxyMac::useContextMenuItems): Overrode to get the standard Mac menu
items and dispatch ContextMenuClient::menuFromProposedMenu before showing the menu.
(WebKit::WebContextMenuProxyMac::showContextMenu): Deleted. WebContextMenuProxy::show now
handles this.

  • UIProcess/win/WebContextMenuProxyWin.cpp:

(WebKit::WebContextMenuProxyWin::showContextMenuWithItems):
(WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin):
(WebKit::WebContextMenuProxyWin::show): Deleted. WebContextMenuProxy::show now handles this.

  • UIProcess/win/WebContextMenuProxyWin.h:
  • UIProcess/wpe/WebContextMenuProxyWPE.h: Passed page to the WebContextMenuProxy ctor.

Tools:

Added API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuMouseEvents.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKit/mac/ContextMenuControlClick.mm.

(TestWebKitAPI::runTest):
(TestWebKitAPI::TEST):

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

(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:modifierFlags:mouseEventType:]):
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:modifierFlags:eventType:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:withFlags:eventType:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseUpAtPoint:withFlags:eventType:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:modifierFlags:]): Deleted.
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:modifierFlags:]): Deleted.
(-[TestWKWebView mouseDownAtPoint:simulatePressure:withFlags:]): Deleted.
(-[TestWKWebView mouseUpAtPoint:withFlags:]): Deleted.

10:08 AM Changeset in webkit [264112] by wenson_hsieh@apple.com
  • 5 edits
    2 adds in trunk

autocapitalize="words" capitalizes every word's second character
https://bugs.webkit.org/show_bug.cgi?id=148504
<rdar://problem/57814304>

Reviewed by Tim Horton.

Source/WebKit:

This bug resurfaced in iOS 13 due to timing changes that caused a task added to UIKeyboardTaskQueue to no longer
get dequeued after the next editor state update is received in the UI process; as a result, UIKit asks us for
the context before the caret selection (i.e. characterBeforeSelection) before we have a chance to update it,
which means that UIKeyboardImpl's autoshift state will always be off by one character whie typing.

Note that solely deferring this update until after the next editor state update is received is insufficient to
fix this bug, since the keyboard's shift state will still be incorrect when typing characters very quickly (or
if the web process is unresponsive).

Instead, completely address this bug by adding a mechanism for WKContentView to cache the last character in the
string that is currently being inserted using -insertText:, and return it in -_characterBeforeCaretSelection
until the next editor state update comes in with the real character before the selection. This way, we're able
to respond to UIKit's requests immediately with a (reasonable) guess of what the character before the selection
should be, and then follow it up with the actual up-to-date value from the web process during the next editor
state update (invalidating the stale shift state if necessary). This cached last character should only be
incorrect in the case where the page uses script to influence what was typed, or the typed character was never
inserted at all (e.g. typing a newline character in a single line input element).

Test: fast/forms/ios/autocapitalize-words.html

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpInteraction]):
(-[WKContentView _characterBeforeCaretSelection]):

Use _lastInsertedCharacterToOverrideCharacterBeforeSelection, if it is set.

(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView insertText:]):

Update _lastInsertedCharacterToOverrideCharacterBeforeSelection and ensure an editor state update immediately
after text is inserted, if we're currently editing an element with autocapitalize="words". The editor state
update could be unnecessarily expensive, so we don't want to do this unconditionally. Also,
autocapitalize="words" is special in the sense that it is the only autocapitalization type where the platform
(UIKit) will ask for the last character immediately and use it to unshift the keyboard. Even in the case of
autocapitalize="sentences", UIKit makes the decision to unshift using information from kbd instead.

(-[WKContentView _elementDidBlur]):
(-[WKContentView _selectionChanged]):

Clear out _lastInsertedCharacterToOverrideCharacterBeforeSelection when the next editor state update is
received, and invalidate the current keyboard shift state by calling -clearShiftState. This SPI method
automatically schedules a shift state update, as well.

Note the extra _usingGestureForSelection check here, which prevents the keyboard from autoshifting and
unshifting while changing the selection via loupe gesture.

LayoutTests:

Add a new layout test to verify that the bug does not occur.

  • fast/forms/ios/autocapitalize-words-expected.txt: Added.
  • fast/forms/ios/autocapitalize-words.html: Added.
10:03 AM Changeset in webkit [264111] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.0.2

Tag Safari-610.1.21.0.2.

10:01 AM Changeset in webkit [264110] by Alan Coon
  • 5 edits in branches/safari-610.1.21.0-branch/Source/WebCore

Cherry-pick r264058. rdar://problem/65195012

[Apple Pay] Fix the build on Catalina internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=214066

Unreviewed build fix for the 10.15.0 Internal SDK.

Source/WebCore:

  • Modules/applepay/ApplePaySetupFeature.mm: (WebCore::ApplePaySetupFeature::supportsInstallments const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/spi/cocoa/PassKitSPI.h:

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

9:55 AM Changeset in webkit [264109] by Alan Coon
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.2

9:47 AM Changeset in webkit [264108] by jer.noble@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening; "rebaseline" the video-orientation-canvas.html test to center the expected red color
results on observed output.

  • media/video-orientation-canvas-expected.txt:
  • media/video-orientation-canvas.html:
9:45 AM Changeset in webkit [264107] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Do not use the initial strut baseline values when the text content is inside an inline container
https://bugs.webkit.org/show_bug.cgi?id=214069

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):

  • layout/inlineformatting/InlineLineBuilder.h:

LayoutTests:

  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container-expected.html: Added.
  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html: Added.
9:43 AM Changeset in webkit [264106] by jer.noble@apple.com
  • 3 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.SleepDisabler.NavigateBack
https://bugs.webkit.org/show_bug.cgi?id=213513
<rdar://problem/64642715>

Reviewed by Eric Carlson.

Make the test less dependent on the specific behavior of restoring the history state by adding code within
the source HTML itself to explicitly play the contained video after state restoration.

  • TestWebKitAPI/Tests/WebKit/SleepDisabler.mm:

(TEST_F):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/video-with-audio.html:
9:42 AM Changeset in webkit [264105] by sbarati@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

Add a way to return early from detected infinite loops to aid the fuzzer
https://bugs.webkit.org/show_bug.cgi?id=214067

Reviewed by Yusuke Suzuki.

It's useful for the fuzzer to not get stuck in infinite loops so its
test cases can make forward progress trying to find bugs. This patch
adds a new mechanism where we can early return if we've exceeded a total
execution count for a static loop in bytecode. Note: this is not on a
per-frame basis, but it's a way to implement this in a non-invasive way
which is also practical for the fuzzer to use.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::emitEpilogue):

  • b3/air/AirCode.h:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):

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

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::~CodeBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileLoopHint):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/mips.rb:
  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::addLoopHintExecutionCounter):
(JSC::VM::getLoopHintExecutionCounter):
(JSC::VM::removeLoopHintExecutionCounter):

  • runtime/VM.h:
9:42 AM Changeset in webkit [264104] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Skip a couple of WPT webaudio tests instead of marking them as crashing.

This avoids wasting resources on the bots since those tests are consistently crashing.

9:41 AM Changeset in webkit [264103] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Table width is computed as if box-sizing was border-box
https://bugs.webkit.org/show_bug.cgi?id=214070

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently the width property of the <table> works as if box-sizing were set to border-box (and <div style="display: table" does not).

Test: fast/layoutformattingcontext/table-with-padding-and-border-simple.html

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):

LayoutTests:

  • fast/layoutformattingcontext/table-with-padding-and-border-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-with-padding-and-border-simple.html: Added.
9:22 AM Changeset in webkit [264102] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test webanimations/accelerated-animation-single-keyframe.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=214081

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:16 AM Changeset in webkit [264101] by graouts@webkit.org
  • 11 edits
    2 adds in trunk

[iOS] Sharing an <img> element with a base64-encoded URL shares the URL as raw text instead of an image
https://bugs.webkit.org/show_bug.cgi?id=214042
<rdar://problem/56669102>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • en.lproj/Localizable.strings:

Source/WebKit:

In the case where the <img> element that was the target when the share sheet was brought has its data encoded
as a base64 URL, we need to share the UIImage that was created as its snapshot as a file rather than the URL
to avoid a base64 string to be shared instead of the image data.

To support testing of this, we add a new optional WKShareSheet delegate to indicate that the share sheet will
show and the provided activity items, which we forward to a new optional WKUIDelegatePrivate delegate method.
API tests can thus be written to check the data provided to the share sheet.

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

(-[WKShareSheet presentWithShareDataArray:inRect:]):

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

(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shareSheet:willShowActivityItems:]):
(-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]):
(-[WKContentView actionSheetAssistant:shareElementWithImage:rect:]):

Tools:

Add a test that loads a page with an <img> with its data encoded as a base64 URL, brings up the share sheet for it
and checks a single NSURL object is made available in the activity items.

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

(-[ShareSheetObserver _webView:actionsForElement:defaultActions:]):
(-[ShareSheetObserver _webView:willShareActivityItems:]):
(TestWebKitAPI::showShareSheet):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/img-with-base64-url.html: Added.
8:48 AM Changeset in webkit [264100] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 Release and iOS wk2 Release ] webrtc/libwebrtc/descriptionGetters.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=214084

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:16 AM Changeset in webkit [264099] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r262194 - [WPE] REGRESSION(r253675) Crash when using threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=212404

Reviewed by Carlos Garcia Campos.

Check whether the GraphicsContext has a PlatformGraphicsContext before trying to paint with
it. If there's no PlatformGraphicsContext, paint using the GraphicsContext methods instead.

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):

5:38 AM Changeset in webkit [264098] by Carlos Garcia Campos
  • 7 edits
    4 adds in releases/WebKitGTK/webkit-2.28

Merge r259137 - Hovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=209635
<rdar://problem/60935010>

Reviewed by Said Abou-Hallawa.
Source/WebCore:

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

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

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

Tests: svg/clip-path/clip-path-on-overflowing.html

svg/clip-path/resource-clipper-multiple-repaints.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::addRendererToClipper):
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):

  • rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

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

  • svg/clip-path/clip-path-on-overflowing-expected.html: Added.
  • svg/clip-path/clip-path-on-overflowing.html: Added.
  • svg/clip-path/mask-nested-clip-path-010-expected.svg:
  • svg/clip-path/mask-nested-clip-path-010.svg: Copied from imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml,

and modified to have a non-zero offset for better testing of the clipping bounds computation.

  • svg/clip-path/resource-clipper-multiple-repaints-expected.html: Added.
  • svg/clip-path/resource-clipper-multiple-repaints.html: Added.
4:26 AM Changeset in webkit [264097] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] web-platform-tests/encrypted-media/clearkey-events-session-closed-event.https.html random crashes
https://bugs.webkit.org/show_bug.cgi?id=210264

Reviewed by Philippe Normand.

  • platform/glib/TestExpectations: Change test expectations.
4:22 AM Changeset in webkit [264096] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Pre-start sccache server
https://bugs.webkit.org/show_bug.cgi?id=213973

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Žan Doberšek.

Pre-start the sccache-dist server when the flatpak sandbox is being invoked for a build.
Usually the first sccache client process would do it but it seems to be racy when a large
number of clients is being started simultaneously.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

4:19 AM Changeset in webkit [264095] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE][Qt] Deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=214074

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::updatePaintNode): Switch to new createTextureFromNativeObject API when building against Qt 5.15.

  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::dispatchWheelEvent): Switch to new WPE axis 2D event API.

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

[GTK][WPE] install-dependencies should install the gstreamer plugins
https://bugs.webkit.org/show_bug.cgi?id=214045

Reviewed by Adrian Perez de Castro.

When building webkit against system libraries (without flatpak/jhbuild)
its needed to have installed the webkit plugins to play media files.
The install-dependencies script should install them.

gstreamer-plugins-ugly its likely not needed for the majority of the cases,
but it can be required by some ugly media files that require an ugly decoder.
Since we are installing it on the flatpak, let's add it here as well.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
3:53 AM Changeset in webkit [264093] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitpy] run-minibrowser doesn't handle unicode urls
https://bugs.webkit.org/show_bug.cgi?id=214036

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Žan Doberšek.

Convert unregistered command-line arguments to utf-8 and append parsed URL. Previously
unrelated arguments (like the platform arg) were passed to the final MiniBrowser app, this
is no longer the case.

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main):

3:41 AM Changeset in webkit [264092] by clopez@igalia.com
  • 4 edits
    5 adds in trunk/Tools

[JHBuild] Add support for using a minimal moduleset
https://bugs.webkit.org/show_bug.cgi?id=213614

Reviewed by Carlos Garcia Campos.

This patch introduces a way of specifying a moduleset other than the default
via the environment variable WEBKIT_JHBUILD_MODULESET and adds a minimal moduleset
that allows building WebKit with it. This minimal moduleset includes the libraries
needed for building WebKit on Ubuntu-18.04, and those libraries are only build if
needed since they include the <pkg-config> entries that tells JHBuild to not build
them if those are already installed system wide. So this minimal moduleset should
work also on newer versions of Ubuntu or even other distributions.

Currently a recipe for newer libsoup than the one shipped by Ubuntu-18.04 is included
since we need this to have support for SameSite cookie support.
The minimal moduleset is shared between WPE and GTK to reduce code duplication.

To use this, you have to export on the build environment:
WEBKIT_JHBUILD=1
WEBKIT_JHBUILD_MODULESET=minimal

  • Scripts/update-webkit-libs-jhbuild:

(getJhbuildIncludedFilePaths):
(jhbuildModulesetNameChanged):
(jhbuildConfigurationChanged):
(saveJhbuildMd5):
(saveJhbuildModulesetName):
(saveJhbuildConfig):
(deleteJhbuildMd5):
(deleteJhbuildModulesetName):
(deleteJhbuildConfig):

  • Scripts/webkitdirs.pm:

(getJhbuildModulesetName):

  • gtk/jhbuild-minimal.modules: Added.
  • jhbuild/jhbuild-minimal.modules: Added.
  • jhbuild/jhbuildrc_common.py:

(init):

  • jhbuild/patches/libsoup-lower-glib-dependency-to-2.38.patch: Added.
  • wpe/jhbuild-minimal.modules: Added.
3:07 AM Changeset in webkit [264091] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r263899 - [WPE][GTK] Bubblewrap sandbox should not attempt to bind empty paths
https://bugs.webkit.org/show_bug.cgi?id=202880

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-03
Reviewed by Carlos Garcia Campos.

If an empty path is set in LD_LIBRARY_PATH (e.g. /foo::/bar), we wind up passing
--ro-bind-try --ro-bind-try to bwrap, where the second --ro-bind-try is treated as the
source path to mount, and the next flag we pass gets treated as the destination path. The
web process crashes with this confusing error:

bwrap: Can't create file at /.flatpak-info: Read-only file system

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindIfExists):

3:07 AM WebKitGTK/2.28.x edited by Carlos Garcia Campos
(diff)
3:07 AM Changeset in webkit [264090] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262274 - [GTK][WPE] Buildfix after r262242

Unreviewed build fix.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

3:07 AM Changeset in webkit [264089] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262242 - [WPE][GTK] GVariant decoding must copy the serialized data
https://bugs.webkit.org/show_bug.cgi?id=212441

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-28
Reviewed by Carlos Garcia Campos.

I tracked this down to ArgumentCodersGLib.cpp. The problem is that we construct a GVariant
using g_variant_new_from_data(), which does not copy or take ownership of the data, so here
we accidentally create the GVariant using data we don't own. (Here, the data is owned by the
Decoder itself in its internal m_buffer.) Anyway, this is fixable by manually copying and
freeing it with the GDestroyNotify parameter, but it's easier to switch to
g_variant_new_from_bytes() because GBytes takes ownership when constructed.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

3:07 AM Changeset in webkit [264088] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r261680 - [GStreamer] Can't replay blob videos in web.whatsapp.com
https://bugs.webkit.org/show_bug.cgi?id=192540

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-14
Reviewed by Xabier Rodriguez-Calvar.

This is a variant of bug 211627 but I could reproduce it only for videos. Unfortunately I
wasn't able to write a reliable test for this.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus): Prevent the fill timer from
running forever after buffering completed.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): Don't buffer blobs, this doesn't seem useful as they're already
in memory anyway.

3:07 AM Changeset in webkit [264087] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r261550 - [GStreamer] Audio messages in web.whatsapp.com only play once.
https://bugs.webkit.org/show_bug.cgi?id=211627

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-12
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Test: media/video-src-blob-replay.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag): Make sure on-disk
buffering is disabled for blob URIs, because it messes up the pipeline for replays, and it's
useless for that use-case anyway.

LayoutTests:

  • media/video-src-blob-replay-expected.txt: Added.
  • media/video-src-blob-replay.html: Added.
3:07 AM Changeset in webkit [264086] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r261326 - REGRESSION(r251875): Crash in JSC::StructureIDTable::get on ppc64le: gcSafeMemcpy broken on JSVALUE64 platforms other than x86_64 and aarch64
https://bugs.webkit.org/show_bug.cgi?id=210685

Patch by Daniel Kolesa <daniel@octaforge.org> on 2020-05-07
Reviewed by Michael Catanzaro.

Fix gcSafeMemcpy on non-x86_64/aarch64 64-bit architectures.

We were hitting an incorrect x86_64 assertion on values larger than
mediumCutoff on JSVALUE64 architectures other than x86_64 and aarch64,
as the control flow is wrong.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):

3:07 AM Changeset in webkit [264085] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r261165 - [GStreamer] Video loops when ran in rr record --chaos
https://bugs.webkit.org/show_bug.cgi?id=211182

Reviewed by Philippe Normand.

Source/WebCore:

While trying to investigate a different bug, I ran the browser with
rr record --chaos, which makes it run very slowly and shuffles
thread scheduling to try to make existing race conditions more likely
to show up, also inevitably making the software run very slow.

Doing so I found something strange: the video kept looping even though
it didn't have the loop attribute set.

After some debugging I found that MediaPlayer decides if the video has
ended in part by checking currentMediaTime() is greater or equal to
the video duration, which was not guaranteed to be the case in
MediaPlayerPrivateGStreamer.

As a consequence of this patch, one new LayoutTest has passed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):

LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
is now passing.

  • platform/gtk/TestExpectations:
3:07 AM Changeset in webkit [264084] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260892 - PlatformMediaResourceLoader should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=211155

Reviewed by Xabier Rodriguez-Calvar.

PlatformMediaResourceLoader is only safe to use from the main thread.
A tricky detail is this includes its destruction. The same is true for
PlatformMediaResource.

Both classes are ThreadSafeRefCounted<> classes and therefore
WTF::DestructionThread::Main can be used to ensure destruction is run
in the correct thread with no need for additional client code.

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::StreamingMembers::~StreamingMembers):

3:07 AM Changeset in webkit [264083] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260886 - [GStreamer] Switch to audiointerleave
https://bugs.webkit.org/show_bug.cgi?id=211124

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-29
Reviewed by Xabier Rodriguez-Calvar.

The audiointerleave element is a drop-in replacement of
interleave. It should behave a bit better in live.

No new tests, existing webaudio tests cover this change.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcChangeState):

3:07 AM Changeset in webkit [264082] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260938 - Unreviewed, GStreamer build warning fix after r260755.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): There is no need to capture src in the
closure, its protector is used instead.

3:07 AM Changeset in webkit [264081] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28

Merge r260755 - [GStreamer] Rework WebKitWebSrc threading
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=210284

Reviewed by Xabier Rodriguez-Calvar.

WebKitWebSrc as it is in master has a number of race conditions
leading to occasional starvation (due to cancelling the wrong request)
or data corruption (due to pushing data from a cancelled request).

The threading situation wasn't easy to follow, as it wasn't clear
access to what members should be protected by what mutex, in what
circumstances. Also, some parts of the design were also introducing
addicional complexity, such as the first request being sent from the
main thread whereas the rest were being sent from the streaming thread
or basesrc async start.

In response, this patch reworks all the locking in WebKitWebSrc to use
WTF::DataMutex. This ensures all accesses to its (now explicit)
protected members are locked. The two mutexes and condition variables
have been simplified into one, as there was no obvious need or benefit
for two of each in this case.

Requests have been numbered, which allows to safely and atomically
ignore results from cancelled requests, avoiding data corruption
races, and makes following them in debug logs much easier.

The conditions for making and cancelling requests have been simplified
to a simpler and safer model: There is at most only one active request
at anytime, flushes cancel the request, and the first create() call
always makes the new request (both at startup and after a flush).
Debug asserts and notes about the flow of operations during basesrc
seeks have been provided.

As this effort needed a review of the entire WebKitWebSrc, cleanups,
corrections and documentation comments have been provided where
appropriate.

This patch introduces no visible behavior changes, just stability
improvements.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::~WebKitWebSrcPrivate):
(webkit_web_src_class_init):
(webkitWebSrcReset):
(webKitWebSrcConstructed):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcSendEvent):
(restartLoaderIfNeeded):
(stopLoaderIfNeeded):
(webKitWebSrcCreate):
(webKitWebSrcStart):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetUri):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

LayoutTests:

https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

A test improved its status in TestExpectations from the changes made
in this patch.

  • platform/gtk/TestExpectations:
3:07 AM Changeset in webkit [264080] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260750 - [GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431

Reviewed by Carlos Garcia Campos.

Don't create a PlatformDisplayLibWPE as a fallback when using
Wayland or X11.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):

3:06 AM Changeset in webkit [264079] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r260176 - [GTK] MiniBrowser opens new windows too small causing failures on some WPT tests
https://bugs.webkit.org/show_bug.cgi?id=210206

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Some WPT tests (when executed with the WPT runner via WebDriver)
open new browser windows via JavaScript invoking Window.open()
and then run the test on this new window.
The size of the new window is not specified, and we were failing
to provide a default window size, so it was using the minimum of
100x100 which its just too small for some test that later call
document.elementFromPoint() on some coordinates
that are outside of that size.

To fix that provide the size of the default GTK window to WebCore
if the application sets one via gtk_window_set_default_size().
And if not, then use the size of the previous window.

Also change the way we position the new window to work better when
the system uses more than one monitor. Previously to get the default
coordinates of the new window we were using gdk_display_get_monitor()
with just the first monitor available.
This causes issues in the calculation of the available space when
using several monitors. Instead get the monitor in use by looking
at the current GDK root window.

Tests: TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-default-size
and TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-no-default-size

  • loader/FrameLoader.cpp:

(WebCore::createWindow):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::getCurrentScreenMonitor):
(WebCore::screenRect):
(WebCore::screenAvailableRect):

Source/WebKit:

Provide the size of the default window (if is set) when windowRect is called
before the window is shown.

  • UIProcess/API/glib/WebKitUIClient.cpp:

Tools:

Add two API test to check that window.open() by default gets a size
request equal to the old window if there is no default window size,
or to the default window if there is a default window size.

A new function helper setCreateNewWebViewsInWindowsWithDefaultSize()
its added to create new webviews in new windows automatically, which
its needed to test the case of having a default window size.

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewWindowProperties):
(testWebViewOpenWindowDefaultSize):
(testWebViewOpenWindowNoDefaultSize):
(beforeAll):

3:06 AM Changeset in webkit [264078] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r259879 - [WTF] DataMutex: Add runUnlocked()
https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

Source/WTF:

This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
to run a lambda function without the lock. This is intended to be used for
small sections of the code that need to be unlocked, in cases where using
scoping would prove non-ergonomic or where running the unlocked section is only
necessary or desired when a certain condition is met -- something that cannot
be done with C++ scoping.

Safety mechanisms are provided. First, because this is used with a lambda, all
variables to be used in the unlocked section have to be specified in the
capture (global capture is possible but not recommended to simplify analysis).
Second, additional checks have been added to DataMutex to detect unlocked
accesses among other conditions. This will detect among other things naive
access to protected members by means of capturing the LockedWrapper by
reference.

  • wtf/DataMutex.h:

(WTF::OwnerAwareLockAdapter::lock):
(WTF::OwnerAwareLockAdapter::unlock):
(WTF::OwnerAwareLockAdapter::tryLock):
(WTF::OwnerAwareLockAdapter::isLocked const):
(WTF::DataMutex::LockedWrapper::operator->):
(WTF::DataMutex::LockedWrapper::operator*):
(WTF::DataMutex::LockedWrapper::mutex):
(WTF::DataMutex::LockedWrapper::lockHolder):
(WTF::DataMutex::LockedWrapper::runUnlocked):

Tools:

Tests for runUnlocked() and DataMutex checks are introduced.

  • TestWebKitAPI/Tests/WTF/DataMutex.cpp:

(TestWebKitAPI::TEST):

3:06 AM Changeset in webkit [264077] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r263838 - [GTK] Kinetic scrolling is still triggered if you wait before lifting fingers
https://bugs.webkit.org/show_bug.cgi?id=213789

Patch by Alexander Mikhaylenko <alexm@gnome.org> on 2020-07-02
Reviewed by Carlos Garcia Campos.

The intended behavior for kinetic scrolling is that it's possible to not trigger it by
stopping moving fingers before lifting them, as opposed to doing a fling/swipe. However,
right now it's broken and trying to do this triggers kinetic scrolling as well.

Currently, the last scroll event with (0, 0) deltas isn't added to the scroll history for
kinetic scrolling. However, this is wrong, because the last event, or rather the timespan
between it and the previous scroll event, actually determines the kinetic scrolling velocity:
if this event follows the previous one quickly, the velocity is large, but if there was a long
pause, the velocity would be close to 0.

See https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1902 and
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1903 for the equivalent GTK fixes.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::handleWheelEvent):

3:06 AM Changeset in webkit [264076] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259325 - [PlayStation] Fix build breaks after r259112
https://bugs.webkit.org/show_bug.cgi?id=209830

Unreviewed build fix.

Source/WebCore:

Add USE(GLIB) guards around RunLoopSourcePriority usage.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):

Source/WebKit:

Replace PLATFORM(WPE) with USE(LIBWPE) within WebWheelEvent.

  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

3:06 AM Changeset in webkit [264075] by Carlos Garcia Campos
  • 22 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259112 - [GTK][WPE] Enable kinetic scrolling with async rendering
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

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

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

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::appendToScrollHistory):
(WebCore::ScrollAnimationKinetic::clearScrollHistory):
(WebCore::ScrollAnimationKinetic::computeVelocity):
(WebCore::ScrollAnimationKinetic::start):

  • platform/ScrollAnimationKinetic.h:
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::willEndLiveResize):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar):

  • platform/generic/ScrollAnimatorGeneric.h:

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

Reviewed by Žan Doberšek.

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

  • Shared/NativeWebWheelEvent.h:
  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

  • Shared/libwpe/NativeWebWheelEventLibWPE.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • Shared/libwpe/WebEventFactory.h:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

(WebKit::ScrollGestureController::phase):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

3:06 AM Changeset in webkit [264074] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259037 - Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=146729

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

The entire MessageInfo is passed to write(), so we have to zero the padding bytes to avoid
writing uninitialized memory.

  • Platform/IPC/unix/UnixMessage.h:

(IPC::MessageInfo::MessageInfo):

2:02 AM Changeset in webkit [264073] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262368 - [WPE][GTK] pthread_create() fails with EPERM in the second WebKitWebProcess with sandbox on
https://bugs.webkit.org/show_bug.cgi?id=212380

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-01
Reviewed by Adrian Perez de Castro.

Dereference scmp_arg_cmp before use.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp):

2:02 AM Changeset in webkit [264072] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259798 - Use more WeakPtr in RenderTreeBuilder::FirstLetter
https://bugs.webkit.org/show_bug.cgi?id=210251
<rdar://problem/61180381>

Reviewed by Zalan Bujtas.

For safety.

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

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

2:02 AM Changeset in webkit [264071] by Carlos Garcia Campos
  • 70 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259355 - Bindings that override getOwnPropertySlotByIndex need to say they MayHaveIndexedAccessors
https://bugs.webkit.org/show_bug.cgi?id=209762

Reviewed by Darin Adler.

Source/JavaScriptCore:

Change indexingType to indexingModeIncludingHistory to more
clearly indicate the expected range of possible valid values.

  • runtime/StructureInlines.h:

(JSC::Structure::create):

Source/WebCore:

There may be places where we rely on this for semantic
correctness. I couldn't find any right now but we might as
well be conservative since this isn't a performance regression.

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSInterfaceName.h:

(WebCore::JSInterfaceName::createStructure):

  • bindings/scripts/test/JS/JSMapLike.h:

(WebCore::JSMapLike::createStructure):

  • bindings/scripts/test/JS/JSReadOnlyMapLike.h:

(WebCore::JSReadOnlyMapLike::createStructure):

  • bindings/scripts/test/JS/JSReadOnlySetLike.h:

(WebCore::JSReadOnlySetLike::createStructure):

  • bindings/scripts/test/JS/JSSetLike.h:

(WebCore::JSSetLike::createStructure):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

(WebCore::JSTestActiveDOMObject::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactions.h:

(WebCore::JSTestCEReactions::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:

(WebCore::JSTestCEReactionsStringifier::createStructure):

  • bindings/scripts/test/JS/JSTestCallTracer.h:

(WebCore::JSTestCallTracer::createStructure):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:

(WebCore::JSTestDOMJIT::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:

(WebCore::JSTestEnabledBySetting::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:

(WebCore::JSTestEnabledForContext::createStructure):

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

(WebCore::JSTestEventConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::createStructure):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::createStructure):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::createStructure):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::JSTestGlobalObject::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:

(WebCore::JSTestIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:

(WebCore::JSTestIndexedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:

(WebCore::JSTestIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::createStructure):

  • bindings/scripts/test/JS/JSTestIterable.h:

(WebCore::JSTestIterable::createStructure):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:

(WebCore::JSTestMediaQueryListListener::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedConstructor.h:

(WebCore::JSTestNamedConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:

(WebCore::JSTestNamedDeleterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:

(WebCore::JSTestNamedDeleterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:

(WebCore::JSTestNamedDeleterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:

(WebCore::JSTestNamedDeleterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:

(WebCore::JSTestNamedGetterCallWith::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:

(WebCore::JSTestNamedGetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:

(WebCore::JSTestNamedGetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:

(WebCore::JSTestNamedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:

(WebCore::JSTestNamedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:

(WebCore::JSTestNamedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:

(WebCore::JSTestNamedSetterWithUnforgableProperties::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::JSTestObj::createStructure):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:

(WebCore::JSTestOverloadedConstructors::createStructure):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:

(WebCore::JSTestOverloadedConstructorsWithSequence::createStructure):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:

(WebCore::JSTestOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:

(WebCore::JSTestPluginInterface::createStructure):

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

(WebCore::JSTestPromiseRejectionEvent::createStructure):

  • bindings/scripts/test/JS/JSTestSerialization.h:

(WebCore::JSTestSerialization::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:

(WebCore::JSTestSerializationIndirectInheritance::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:

(WebCore::JSTestSerializationInherit::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:

(WebCore::JSTestSerializationInheritFinal::createStructure):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::JSTestSerializedScriptValueInterface::createStructure):

  • bindings/scripts/test/JS/JSTestStringifier.h:

(WebCore::JSTestStringifier::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:

(WebCore::JSTestStringifierAnonymousOperation::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:

(WebCore::JSTestStringifierNamedOperation::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:

(WebCore::JSTestStringifierOperationImplementedAs::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:

(WebCore::JSTestStringifierOperationNamedToString::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:

(WebCore::JSTestStringifierReadOnlyAttribute::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:

(WebCore::JSTestStringifierReadWriteAttribute::createStructure):

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::JSTestTypedefs::createStructure):

2:02 AM Changeset in webkit [264070] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258799 - Content-Type & Nosniff Ignored on XML External Entity Resources
<https://webkit.org/b/191171>
<rdar://problem/45763222>

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.

  • platform/MIMETypeRegistry.h:

(WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.

  • Checks for XML external entity MIME types.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::externalEntityMimeTypeAllowedByNosniff): Add.

  • Checks whether the MIME type is valid based on the presence of the "X-Content-Type-Options: nosniff" header.

(WebCore::openFunc):

  • Drop the contents of the resource that was returned and print an error message to the Web Inspector console if externalEntityMimeTypeAllowedByNosniff() says the MIME type is not allowed.

LayoutTests:

  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity-expected.txt: Add.
  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml: Add.
2:01 AM Changeset in webkit [264069] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258278 - SVG filter triggers unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=207444
rdar://problem/59297004

Reviewed by Simon Fraser.

SVG filter code marks DOM nodes dirty and schedules style recalc outside of the SVG root
while in layout. This could lead to unstable layout and cause battery drain.
(See webkit.org/b/208903)

  • rendering/RenderLayer.cpp: Remove filterNeedsRepaint(). It's a dangerously misleading name and should

not be part of RenderLayer.
(WebCore::RenderLayer::calculateClipRects const):

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

(WebCore::RenderLayerFilters::notifyFinished):

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):

2:01 AM Changeset in webkit [264068] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258459 - SVGMatrix should have the access right of its owner SVGTransform always
https://bugs.webkit.org/show_bug.cgi?id=207462

Reviewed by Simon Fraser.

Source/WebCore:

The SVGMatrix needs to be reattached to its owner SVGTransform when the
access right of this owner changes. The access right of the owner changes
when it gets attached to or detached from a higher level owner.

Test: svg/dom/SVGTransformList-anim-read-only.html

  • svg/SVGTransform.h:
  • svg/properties/SVGProperty.h:

(WebCore::SVGProperty::attach):
(WebCore::SVGProperty::detach):
(WebCore::SVGProperty::reattach):

LayoutTests:

  • svg/dom/SVGTransformList-anim-read-only-expected.txt: Added.
  • svg/dom/SVGTransformList-anim-read-only.html: Added.
2:01 AM Changeset in webkit [264067] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r258452 - Missing arithMode for ArithAbs and ArithNegate in DFGClobberize
https://bugs.webkit.org/show_bug.cgi?id=208685
<rdar://problem/60115088>

Reviewed by Saam Barati.

In the pure case of ArithNegate and ArithAbs in DFGClobberize, their PureValues did not include their
respective ArithMode. That means that e.g. a CheckOverflow ArithNegate/Abs could be considered equivalent
to an Unchecked version of the same node.

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

2:01 AM Changeset in webkit [264066] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257746 - ScriptController::executeIfJavaScriptURL() uses wrong JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=208290
<rdar://problem/59839476>

Reviewed by Chris Dumez.

The call to executeScriptIgnoringException() may have changed the current global
object of the window. We should be using the original global object that produced
the result string.

Also added a missing exception check needed after a potential rope resolution.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

1:42 AM Changeset in webkit [264065] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[webkitpy] run-minibrowser doesn't default to mac and stdout/stderr are not displayed
https://bugs.webkit.org/show_bug.cgi?id=214072

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Adrian Perez de Castro.

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main): Default to mac platform, like in old-run-minibrowser.

  • Scripts/webkitpy/port/base.py:

(Port.run_minibrowser): Display MiniBrowser stdout and stderr on the terminal output.

1:39 AM Changeset in webkit [264064] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[Flatpak] Avoid error message 'error: org.webkit.Sdk/*unspecified*/*unspecified*' not installed
https://bugs.webkit.org/show_bug.cgi?id=213871

Reviewed by Philippe Normand.

The error message happens when requesting a Flatpak SDK version but there's no Flatpak SDK installed yet.
In that case, ignore stderr to filter out the message.

  • flatpak/flatpakutils.py:

(run_sanitized):
(FlatpakObject.flatpak):
(FlatpakObject.version):

1:20 AM Changeset in webkit [264063] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Initial installation with IceCC enabled fails
https://bugs.webkit.org/show_bug.cgi?id=213833

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Adrian Perez de Castro.

Avoid attempting to use the IceCC environment during the toolchain
archive update. The initial SDK installation triggers this when
IceCC is enabled on the command-line or via CCACHE_PREFIX, after
resetting the internal toolchain mapping. So the solution is to
opt-out of this runtime configuration setup, which is useless
anyway when the toolchain archive is being generated.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.pack_toolchain):

1:03 AM Changeset in webkit [264062] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r263836): [GStreamer] Debug ASSERT hits
https://bugs.webkit.org/show_bug.cgi?id=214047

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Xabier Rodriguez-Calvar.

Reduce the element dependency on RefPtr<MediaStreamTrackPrivate> which is not MT-safe. The
data we need from it are its ID and the contents required to build a GstTagList. So we now
create this tag-list upfront and keep track of the trackID as well.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):

12:06 AM Changeset in webkit [264061] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.3

WebKitGTK 2.29.3

12:05 AM Changeset in webkit [264060] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.3 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.3.

Jul 7, 2020:

9:36 PM Changeset in webkit [264059] by ysuzuki@apple.com
  • 3 edits
    3 adds in trunk

[JSC] BytecodeGenerator should be robust against failed constant generation
https://bugs.webkit.org/show_bug.cgi?id=214062
<rdar://problem/65117916>

Reviewed by Saam Barati.

JSTests:

  • stress/bigint-oom-in-codegen-array-literal-context.js: Added.

(shouldThrow):
(test):

  • stress/bigint-oom-in-codegen-binary-conditional-context.js: Added.

(shouldThrow):
(test):

  • stress/bigint-oom-in-codegen-conditional-context.js: Added.

(shouldThrow):
(test):

Source/JavaScriptCore:

Some code in NodesCodegen.cpp assumes jsValue(generator) call for constant nodes must succeed.
But this can fail when BigInt in source code is too large and becomes OOM. BytecodeGenerator should
be robust against BigInt OOM.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstantNode::emitBytecodeInConditionContext):
(JSC::ArrayNode::emitBytecode):
(JSC::BinaryOpNode::tryFoldToBranch):

8:21 PM Changeset in webkit [264058] by aestes@apple.com
  • 5 edits in trunk/Source/WebCore

[Apple Pay] Fix the build on Catalina internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=214066

Unreviewed build fix for the 10.15.0 Internal SDK.

Source/WebCore:

  • Modules/applepay/ApplePaySetupFeature.mm:

(WebCore::ApplePaySetupFeature::supportsInstallments const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/spi/cocoa/PassKitSPI.h:
8:18 PM Changeset in webkit [264057] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Garden some recent failures and move related entries together

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:56 PM Changeset in webkit [264056] by Lauro Moura
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline windowclient-navigate.https after service-workers resync

This test was rebaselined in r264043 and the as the test changed to
an async function, the emmited messages changed.

Unreviewed test gardening.

  • web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt:
7:28 PM Changeset in webkit [264055] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebKit

Modernize FindOptions IPC code
https://bugs.webkit.org/show_bug.cgi?id=214063

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

Use callWithAsyncReply instead of GenericCallback.
Use OptionSet<FindOptions> instead of FindOptions or uint32_t.
No change in behavior.

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toFindOptions):

  • Shared/WebFindOptions.h:

(): Deleted.

  • UIProcess/API/Cocoa/WKWebView.mm:

(toFindOptions):
(-[WKWebView findString:withConfiguration:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findStringMatches):
(WebKit::WebPageProxy::findString):
(WebKit::WebPageProxy::countStringMatches):
(WebKit::WebPageProxy::findStringCallback): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::findString):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::core):
(WebKit::FindController::countStringMatches):
(WebKit::FindController::updateFindUIAfterPageScroll):
(WebKit::FindController::findString):
(WebKit::FindController::findStringMatches):

  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/WebPage.messages.in:
6:56 PM Changeset in webkit [264054] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Allow WebCoreNSURLSession sendH2Ping:pongHandler: to be called from any thread like the rest of WebCoreNSURLSession methods
https://bugs.webkit.org/show_bug.cgi?id=214065

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-07
Reviewed by Jer Noble.

Otherwise horrible crashes happen.
The WebCore function calls and loading IPC calls need to happen on the main thread,
and the callback should happen on the NSOperationQueue given when constructing the WebCoreNSURLSession.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession sendH2Ping:pongHandler:]):

6:14 PM Changeset in webkit [264053] by Lauro Moura
  • 2 edits
    2 adds in trunk/LayoutTests

Add missing resource file for some imported/blink/compositing/squashing tests
https://bugs.webkit.org/show_bug.cgi?id=154076

Unreviewed test gardening.

Based on original patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>.

All but one test ran as expected for GTK/WPE.

  • TestExpectations:
  • imported/blink/compositing/squashing/resources/blue.png: Added.
6:02 PM Changeset in webkit [264052] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC] Should not pass Exception to JSPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=214061
<rdar://problem/65134450>

Reviewed by Mark Lam.

JSTests:

  • stress/import-exception.js: Added.

(import.string_appeared_here.then):

Source/JavaScriptCore:

In some places, we are passing Exception* as JSValue instead of Exception::value()'s JSValue.
Error and Exception are different, and Exception is not an object. We should pass Exception::value()'s
thrown value instead. I checked reject( call sites and ensure error is passed.

  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderImportModule):
(JSC::JSAPIGlobalObject::moduleLoaderFetch):

  • jsc.cpp:

(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderFetch):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::importModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::moduleLoaderParseModule):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::resolve):
(JSC::JSPromise::reject):

5:59 PM Changeset in webkit [264051] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Fix btjs by recovering CallFrame::describeFrame
https://bugs.webkit.org/show_bug.cgi?id=214055

Reviewed by Mark Lam.

While CallFrame::describeFrame is not used in WebKit tree, it is used in LLDB btjs which is invoked from python.
So we need to keep it. We also use std::call_once based buffer allocation instead of static char buffer[...]
to avoid spreading debug-use-only buffer in BSS segment.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::describeFrame):

  • interpreter/CallFrame.h:
5:53 PM Changeset in webkit [264050] by weinig@apple.com
  • 37 edits in trunk/Source

Part 2 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=213981

Reviewed by Darin Adler.

Source/WebCore:

  • Replaces internal representation of SimpleColor based on an ARGB uint32_t with SRGBA<uint8_t>.
  • Removes SimpleColor constructor taking a uint32_t. Callers that still need to convert from ARGB now do makeSimpleColor(asSRGBA(Packed::ARGB { value })).
  • Removes value() and valueAsARGB() member functions from SimpleColor. Callers that need a packed representation now do Packed::ARGB { simpleColor.asSRGBA<uint8_t>() }.value.
  • css/StyleColor.cpp:

(WebCore::StyleColor::colorFromKeyword):
Use asSRGBA(Packed::ARGB{...}) to constuct the color.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::finishParsingNamedColor):
Use asSRGBA(Packed::ARGB{...}) (or in one case, Packed::RGBA) to constuct the color.
These can almost certainly be simplified, but in the interest of keeping things smallish,
I have left that for a subsequent change.

  • editing/CompositionHighlight.h:

Switch to using auto/makeSimpleColor.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

Switch to using makeSimpleColor.

(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo):
(WebCore::HistoricResourceUsageData::HistoricResourceUsageData):
Switch to using auto/makeSimpleColor.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

Switch to using auto/makeSimpleColor.

  • platform/graphics/Color.cpp:
  • platform/graphics/Color.h:
  • Switch to using auto/makeSimpleColor for named colors.
  • Switch to storing/encoding the inline SimpleColor as a Packed::RGBA value.
  • platform/graphics/ColorBlending.cpp:

(WebCore::blend):
Update for new name of clampToComponentBytes.

  • platform/graphics/ColorTypes.h:

(WebCore::Packed::RGBA::RGBA):
(WebCore::Packed::ARGB::ARGB):
(WebCore::asSRGBA):
Rename WebCore::ARGB to WebCore::Packed::ARGB. Adds companion, WebCore::Packed::RGBA. And adds constructors
which make a packed type from an SRGBA<uint8_t>.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampToComponentByte):
(WebCore::clampToComponentFloat):
Extract out helper functions which just do the clamping for the type.

(WebCore::clampToComponentBytes):
(WebCore::clampToComponentFloats):
Rename conversion functions that just clamp to use "clamp" prefix rather than "convert". Make use
of extracted helpers.

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):
Update using new packed color types and funtions.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor):
(WebCore::SimpleColor::alphaComponent const):
(WebCore::SimpleColor::alphaComponentAsFloat const):
(WebCore::SimpleColor::isOpaque const):
(WebCore::SimpleColor::isVisible const):
(WebCore::SimpleColor::colorWithAlpha const):
(WebCore::SimpleColor::invertedColorWithAlpha const):
(WebCore::SimpleColor::asSRGBA const):
(WebCore::SimpleColor::get const):
(WebCore::makeSimpleColor):
(WebCore::SimpleColor::valueAsARGB const): Deleted.
(WebCore::SimpleColor::value const): Deleted.
(WebCore::SimpleColor::redComponent const): Deleted.
(WebCore::SimpleColor::greenComponent const): Deleted.
(WebCore::SimpleColor::blueComponent const): Deleted.

  • Removes constructor taking an ARGB uint32_t.
  • Removes valueAsARGB()/value() functions (can use Packed::ARGB directly if needed).
  • Switches internal representation to SRGBA<uint8_t>.
  • Streamline makeSimpleColor functions to use shared helpers from ColorUtilities.h
  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):
Use Packed::RGBA to extract uint32_t for quick lookup of transparent/white/black SimpleColors. Despite the
length of the calls, SimpleColor is fully constexpr, so these actually collapse down to the uint32_t representation
at compile time.

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawDotsForDocumentMarker):
Switch to using auto/makeSimpleColor.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices):
Switch to using makeSimpleColor.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawBoxes):
Switch to using auto/makeSimpleColor.

  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::paintTrackBackground):
Switch to using makeSimpleColor.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::calculateBorderStyleColor):
Update comment to use per-component values.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::systemColor const):
Switch to using makeSimpleColor.

  • rendering/RenderThemeAdwaita.cpp:

Switch to using auto/makeSimpleColor.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintProgressBar):
Switch to using auto/makeSimpleColor.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):
Switch to using auto/makeSimpleColor.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::paintSnapshotAtSize):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

Make calls to makeSimpleColor more consistent. Use decimal rather than hex, don't pass unncessary
255 as the 4th argument.

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

Switch to using auto/makeSimpleColor.

5:32 PM Changeset in webkit [264049] by keith_miller@apple.com
  • 20 edits
    1 add in trunk

Bytecode UseDef should be aware of checkpoints
https://bugs.webkit.org/show_bug.cgi?id=213566

Reviewed by Saam Barati.

JSTests:

  • stress/def-then-use-in-single-bytecode-with-checkpoints-for-of.js: Added.

(foo):

Source/JavaScriptCore:

Previously, we tried to solve teaching DFG about uses and defs of
locals across checkpoints by asking what locals were def'd at some
checkpoint. However, this was subtly wrong because we couldn't
report any uses at subsequent checkpoints so DFG thought the
local was dead immediately after its birth.

This patch reverts that change and instead teaches BytecodeUseDef
about checkpoints. Right now, BytecodeUseDef only knows about
locals at checkpoints but in the future we may teach it about tmps
at well.

Since the vectors containing our liveness bitmaps were already
sparse (they are indexed by the bytecode offset) we can reuse the
gaps to hold our checkpoint liveness information. To make sure we
don't overlap between the next bytecode and a checkpoint for the
current bytecode there is now a static assert that the length of
the bytecode is greater than the number of checkpoints. This
assumption is already true for existing bytecodes with checkpoints (and
likely to be true for future ones anyway).

Many of the BytecodeLivenessPropegation functions have been
renamed to reflect that they operate over the full instruction,
including checkpoints, rather than just the BytecodeIndex passed.

Lastly, this patch makes a speculative fix to forAllKilledOperands where we
wouldn't report that all tmps die at the end of each bytecode. I can't think
of a case where this would break things but it's probably good hygiene.

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::GeneratorLivenessAnalysis::run):

  • bytecode/BytecodeIndex.h:

(JSC::BytecodeIndex::BytecodeIndex):
(JSC::BytecodeIndex::checkpoint const):
(JSC::BytecodeIndex::withCheckpoint const):
(JSC::BytecodeIndex::pack):

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::dumpResults):
(JSC::tmpLivenessForCheckpoint):
(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeIndex): Deleted.
(JSC::livenessForCheckpoint): Deleted.

  • bytecode/BytecodeLivenessAnalysis.h:

(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtInstruction):

  • bytecode/BytecodeLivenessAnalysisInlines.h:

(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexDef):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexUse):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexUseInExceptionHandler):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndex):
(JSC::BytecodeLivenessPropagation::stepOverInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtInstruction):
(JSC::BytecodeLivenessPropagation::stepOverInstructionDef): Deleted.
(JSC::BytecodeLivenessPropagation::stepOverInstructionUse): Deleted.
(JSC::BytecodeLivenessPropagation::stepOverInstructionUseInExceptionHandler): Deleted.
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeIndex): Deleted.
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeIndex): Deleted.

  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow):
(JSC::CodeBlock::validate):

  • bytecode/FullBytecodeLiveness.h:

(JSC::FullBytecodeLiveness::getLiveness const):
(JSC::FullBytecodeLiveness::toIndex):

  • bytecode/Instruction.h:

(JSC::BaseInstruction::numberOfCheckpoints const):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::ForInContext::finalize):

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:
  • dfg/DFGMovHintRemovalPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • generator/Opcode.rb:
  • generator/Section.rb:
4:38 PM Changeset in webkit [264048] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Mark 3 WPT tests imported in r264035 as failing in iOS Simulator.

This is because of lack of WebAssembly support on this platform.

  • platform/ios-simulator/TestExpectations:
4:30 PM Changeset in webkit [264047] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Use sendWithAsyncReply instead of EditingRangeCallback
https://bugs.webkit.org/show_bug.cgi?id=214056

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

No change in behavior.

  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:

(-[WKReloadFrameErrorRecoveryAttempter initWithWebView:frameHandle:urlString:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::selectedRangeWithCompletionHandler):
(WebKit::WebViewImpl::markedRangeWithCompletionHandler):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getMarkedRangeAsync):
(WebKit::WebPageProxy::getSelectedRangeAsync):
(WebKit::WebPageProxy::editingRangeCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:00 PM Changeset in webkit [264046] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263987): [ iOS Debug WK2 ] 12 web-platform-tests semantics/scripting consistently failing
https://bugs.webkit.org/show_bug.cgi?id=214058
<rdar://problem/65193100>

Unreviewed, mark as flaky on iOS some of the new html/semantics web-platform-tests that got added
during the resync in r263987. Those give different TEXT results on release and debug builds so this
must be due to a timing issue, indicating those tests are actually flaky.

  • platform/ios/TestExpectations:
3:34 PM Changeset in webkit [264045] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: show an error message if unable to fetch shader source
https://bugs.webkit.org/show_bug.cgi?id=213661

Reviewed by Brian Burg.

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView):
(WI.ShaderProgramContentView.prototype._refreshContent):

  • UserInterface/Views/ShaderProgramContentView.css:

(.content-view.shader-program > .spinner-container): Added.
(.content-view.shader-program > .spinner-container > .indeterminate-progress-spinner): Added.

3:33 PM Changeset in webkit [264044] by weinig@apple.com
  • 13 edits
    37 adds in trunk

Enabled testing of date/time input types for WebKit2 macOS
https://bugs.webkit.org/show_bug.cgi?id=214044

Reviewed by Chris Dumez.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Enable the date/time input types unconditionally for testing when support is compiled in.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:

Move skipping of date/time input types to WebKit1 specific TestExpectations
to allow for testing on WebKit2. If this goes well, we can look into enabling
them for WebKit1 as well.

  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:
  • platform/mac-wk2/fast/forms/datalist: Added.
  • platform/mac-wk2/fast/forms/datalist/input-list-expected.txt: Added.
  • platform/mac-wk2/fast/forms/date: Added.
  • platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.png: Added.
  • platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.txt: Added.
  • platform/mac-wk2/fast/forms/time: Added.
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.png: Added.
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/date-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-seconds-leading-zeroes-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-stepping-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasnumber-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasnumber-stepping-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/month-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-2-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/week-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt: Added.

Update results, adding new platform specific results where needed.

3:32 PM Changeset in webkit [264043] by Chris Dumez
  • 118 edits
    2 moves
    44 adds
    6 deletes in trunk/LayoutTests

Resync web-platform-tests/service-workers from upstream
https://bugs.webkit.org/show_bug.cgi?id=214052

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/service-workers from upstream 145839c323ba1ec8b973.

  • web-platform-tests/service-workers/*: Updated.

LayoutTests:

  • tests-options.json:
3:31 PM Changeset in webkit [264042] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow additional IOKit classes for Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=214021

Reviewed by Sam Weinig.
<rdar://problem/63696732>

Update two of the arm64-specific sandbox rules to include additional
IOKit classes (and one IOKit property).

  • WebProcess/com.apple.WebProcess.sb.in:
3:05 PM Changeset in webkit [264041] by Russell Epstein
  • 1 copy in tags/Safari-610.1.21.1.1

Tag Safari-610.1.21.1.1.

2:48 PM Changeset in webkit [264040] by Russell Epstein
  • 1 copy in tags/Safari-610.1.21.0.1

Tag Safari-610.1.21.0.1.

1:43 PM Changeset in webkit [264039] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark one of the imported WPT webaudio tests as flaky.

The test is failing and printing out information that is hardware specific.

1:42 PM Changeset in webkit [264038] by Chris Dumez
  • 9 edits
    13 copies
    883 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/html/editing from upstream
https://bugs.webkit.org/show_bug.cgi?id=214051

Reviewed by Sam Weinig.

Resync web-platform-tests/html/editing from upstream 145839c323ba1ec8b973.

  • resources/import-expectations.json:
  • web-platform-tests/html/editing/*: Updated.
12:49 PM Changeset in webkit [264037] by Andres Gonzalez
  • 5 edits
    2 adds in trunk

Web content process hangs in AccessibilityRenderObject::setSelectedVisiblePositionRange in some corner cases.
https://bugs.webkit.org/show_bug.cgi?id=214017
Source/WebCore:

<rdar://problem/63000006>

Reviewed by Chris Fleizach.

Ensures that in the case of collapsed ranges, the VisiblePosition that
the selection is being set to, is contained in the Element object.

Test: accessibility/mac/selected-visible-position-range.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

LayoutTests:

Reviewed by Chris Fleizach.

  • accessibility/mac/resources/accessibility-helper.js:

(selectTextInNode):

  • accessibility/mac/selected-visible-position-range-expected.txt: Added.
  • accessibility/mac/selected-visible-position-range.html: Added.
  • accessibility/mac/text-marker-p-tags.html:
12:45 PM Changeset in webkit [264036] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Network process crashes in WebKit::StorageManagerSet::deleteSessionStorageForOrigins
https://bugs.webkit.org/show_bug.cgi?id=214050

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-07
Reviewed by Chris Dumez.

In NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains, deleteSessionStorageForOrigins is called
in a callback without checking if session still exists.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):

12:43 PM Changeset in webkit [264035] by Chris Dumez
  • 47 edits
    2 copies
    2 moves
    74 adds
    3 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/html/webappapis from upstream
https://bugs.webkit.org/show_bug.cgi?id=214049

Reviewed by Darin Adler.

Resync web-platform-tests/html/webappapis from upstream 145839c323ba1ec8b.

  • resources/resource-files.json:
  • web-platform-tests/html/webappapis/*: Updated.
12:17 PM Changeset in webkit [264034] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Fix potential pixel buffer leak in ImageRotationSessionVT::rotate
https://bugs.webkit.org/show_bug.cgi?id=213922

Reviewed by Eric Carlson.

Fix a potential memory leak in an error case.
Add more logging to be able to see errors.
Remove the kCVPixelBufferIOSurfacePropertiesKey key on iOS from the buffer pool to revert
part of https://trac.webkit.org/changeset/258504/webkit that seems problematic in iOS.

  • platform/graphics/cv/ImageRotationSessionVT.mm:

(WebCore::ImageRotationSessionVT::initialize):
(WebCore::ImageRotationSessionVT::rotate):

11:59 AM Changeset in webkit [264033] by Chris Dumez
  • 1 edit
    1 delete in trunk/LayoutTests/imported/w3c

Unreviewed, drop tests from web-platform-tests/html/dom/dynamic-markup-insertion.

Those tests were moved upstream to html/webappapis/dynamic-markup-insertion/ and should have
been removed during the resync in r263903. html/webappapis/dynamic-markup-insertion/ is
about to get merged via Bug 214049.

  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/document.close-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/document.close-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/003-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/003.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/005.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/006.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/007.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008-1.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010-1.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011-1.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/012-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/012.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/012.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/013-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/013.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/013.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/014-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/014.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/015-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/015.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/016-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/016.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/017-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/017.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/018-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/018.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/019-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/019.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/020-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/020.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/021-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/021.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/022-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/022.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/023-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/023.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/024-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/024.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/025-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/025.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/026-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/026.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/027-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/027.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/028-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/028.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/029-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/029.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/030-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/030.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/031-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/031.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/032-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/032.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/033-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/033.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/034-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/034.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/035-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/035.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/036-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/036.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/037-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/037.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/038-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/038.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/039-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/039.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/040-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/040.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/041-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/041.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/042-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/042.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/043-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/043.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/044-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/044.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/045-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/045.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/046-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/046.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/047-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/047.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/048-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/048.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/049-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/049.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/050-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/050.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/051-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/051.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-02-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-02.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/empty.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_003-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_003.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_005.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-2-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-2.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-external.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/original-id.json: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_003-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_003.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_011-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_011.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_012-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_012.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_013-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_013.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/w3c-import.log: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/write-active-document-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/write-active-document.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-02-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-02.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-03-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-03.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/original-id.json: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/w3c-import.log: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-2.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log: Removed.
11:44 AM Changeset in webkit [264032] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

WebContent process sometimes kills itself because it is receiving too much IPC from the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=214048
<rdar://problem/64844770>

Reviewed by Darin Adler.

There was logic in IPC::Connection::enqueueIncomingMessage() that would kill the XPC connection
if too many IPC messages had been queued without the main thread processing them. The intention
was to protect the UIProcess again a badly behavior WebProcess sending too much IPC and it would
in effect terminate that WebProcess. However, the logic would actually apply too ALL IPC
connections. In <rdar://problem/64844770>, we see that the WebProcess is stuck on a sync IPC and
thus not processing other incoming IPCs. The UIProcess is sending it a lot of IPC so the
WebProcess decides to kill its IPC connection, thus terminating itself, which does not make much
sense. To address the issue, we now enable to killing on too much IPC behavior only if IPC message
throttling is enabled for the IPC connection, which means it only impacts the UIProcess connections
to its WebProcesses.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::enableIncomingMessagesThrottling):
(IPC::Connection::enqueueIncomingMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::isIncomingMessagesThrottlingEnabled const):

11:16 AM Changeset in webkit [264031] by Simon Fraser
  • 6 edits
    4 adds in trunk

Unable to scroll elcomerico.pe page until the page finishes loading
https://bugs.webkit.org/show_bug.cgi?id=214027
<rdar://problem/64646259>

Reviewed by Antti Koivisto.
Source/WebCore:

<https://elcomercio.pe/mundo/eeuu/que-visas-para-estados-unidos-fueron-suspendidas-por-orden-de-donald-trump-hasta-fin-de-ano-y-a-quien-afecta-la-medida-noticia/>
had a scaleX(0) element as an ancestor of an overflow:scroll. The CALayer hit-testing code failed to take
non-invertible transforms into account, causing the overflow:scroll to intercept scrolling events.

Fix by explicitly testing for non-invertible transforms, and, when found, bailing from the
sublayer walk. A non-invertible layer transform makes all its descendants non hit-testable.

Tests: fast/scrolling/ios/non-invertible-transformed-scroller-ancestor.html

fast/scrolling/mac/non-invertible-transform-hit-testing.html

  • page/scrolling/mac/ScrollingTreeMac.mm:

(collectDescendantLayersAtPoint):

  • platform/graphics/transforms/TransformationMatrix.h:

Source/WebKit:

The same issue with non-invertible transforms existed on iOS. r248015 attempted to
fix some instances of this, but failed to take into account the fact that a non-invertible
transfrom should also prevent hit-testing of descendant views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::collectDescendantViewsAtPoint):

LayoutTests:

macOS and iOS tests with non-invertible transforms.

  • fast/scrolling/ios/non-invertible-transformed-scroller-ancestor-expected.txt: Added.
  • fast/scrolling/ios/non-invertible-transformed-scroller-ancestor.html: Added.
  • fast/scrolling/mac/non-invertible-transform-hit-testing-expected.txt: Added.
  • fast/scrolling/mac/non-invertible-transform-hit-testing.html: Added.
11:03 AM Changeset in webkit [264030] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Function didCleanupFullscreencreen() should be called at the end of VideoFullscreenInterfaceAVKit::cleanupFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=214032

Reviewed by Eric Carlson.

VideoFullscreenManagerProxy::didCleanupFullscreen() may destroy an instance of VideoFullscreenInterfaceAVKit.
So we should not access member variables of VideoFullscreenInterfaceAVKit after calling didCleanupFullscreen()
in VideoFullscreenInterfaceAVKit::cleanupFullscreen().

Fix a flaky test crash: media/video-autoplay.html

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::cleanupFullscreen):

10:40 AM Changeset in webkit [264029] by Russell Epstein
  • 8 edits in branches/safari-610.1.21.1-branch/Source

Versioning.

WebKit-610.1.21.1.1

10:38 AM Changeset in webkit [264028] by Russell Epstein
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.1

10:38 AM Changeset in webkit [264027] by timothy_horton@apple.com
  • 14 edits
    2 adds in trunk

<attachment> layout does not scale with Dynamic Type size changes
https://bugs.webkit.org/show_bug.cgi?id=214023
<rdar://problem/64914762>

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/attachment/attachment-dynamic-type.html

  • rendering/RenderThemeIOS.mm:

(WebCore::shortCaptionPointSizeWithContentSizeCategory):
(WebCore::attachmentDynamicTypeScaleFactor):
(WebCore::RenderAttachmentInfo::buildWrappedLines):
(WebCore::RenderThemeIOS::attachmentIntrinsicSize const):
Scale the <attachment> overall size and text line width by the Dynamic Type
scaling factor, determined by dividing the resolved point size of two
font descriptors created with the Large (default) category and the Current category.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::layout):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::attachmentShouldAllowWidthToShrink const):

  • rendering/RenderThemeIOS.h:

Add a RenderTheme bit controlling the behavior introduced in r202117.
After r202117, <attachment> elements are never allowed to shrink. This
is fine for macOS, where we don't vary the Dynamic Type size, only the content,
but undesirable on iOS, where the size of the <attachment> is based solely
on Dynamic Type size (and thus can shrink when the size is reduced),
and not the content.

  • Configurations/WebCoreTestSupport.xcconfig:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setContentSizeCategory):

  • testing/Internals.h:
  • testing/Internals.idl:

Add a Internals method to change the current Dynamic Type category.

Source/WebCore/PAL:

  • pal/spi/cocoa/CoreTextSPI.h:

LayoutTests:

  • TestExpectations:
  • fast/attachment/attachment-dynamic-type-expected.txt: Added.
  • fast/attachment/attachment-dynamic-type.html: Added.
  • platform/ios/TestExpectations:

Add a test that ensures that changing the content size to XXXL also increases the size of the <attachment>.

10:22 AM Changeset in webkit [264026] by Russell Epstein
  • 2 edits in branches/safari-610.1.21.0-branch/Source/WebKit

Cherry-pick r264019. rdar://problem/65179688

Forward declare WKContentWorld in WKUserScript.h
<rdar://problem/65164826> and https://bugs.webkit.org/show_bug.cgi?id=214046

Unreviewed.

  • UIProcess/API/Cocoa/WKUserScript.h:

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

10:16 AM Changeset in webkit [264025] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207551

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
10:13 AM Changeset in webkit [264024] by Russell Epstein
  • 1 copy in branches/safari-610.1.21.1-branch

New branch.

10:13 AM Changeset in webkit [264023] by Russell Epstein
  • 1 copy in branches/safari-610.1.21.0-branch

New branch.

10:05 AM Changeset in webkit [264022] by Chris Dumez
  • 1 edit
    4 deletes in trunk/LayoutTests/imported/w3c

Unreviewed, drop a couple of tests that failed to get removed during resync in r263856.

These tests were renamed and exist under slightly different names after r263856.

  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-expected.txt: Removed.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html: Removed.
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub-expected.txt: Removed.
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html: Removed.
10:04 AM Changeset in webkit [264021] by commit-queue@webkit.org
  • 52 edits in trunk

Add WebCoreNSURLSession SPI to send HTTP/2 ping
https://bugs.webkit.org/show_bug.cgi?id=214030
<rdar://problem/64495827>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-07
Reviewed by Jer Noble.

Source/WebCore:

Add lots of plumbing, move internalError from WebKit to WebCore.

Covered by an API test that requires some future CFNetwork behavior.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMPromiseDeferred.h:
  • loader/FrameLoaderClient.cpp: Added.

(WebCore::FrameLoaderClient::sendH2Ping):

  • loader/FrameLoaderClient.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::sendH2Ping):

  • loader/MediaResourceLoader.h:
  • platform/graphics/PlatformMediaResourceLoader.cpp: Added.

(WebCore::PlatformMediaResourceLoader::sendH2Ping):

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/network/ResourceErrorBase.cpp:

(WebCore::internalError):

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

(-[WebCoreNSURLSession sendH2Ping:pongHandler:]):

  • testing/Internals.cpp:

(WebCore::Internals::sendH2Ping):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

The SPI to do this through CFNetwork requires setting a block on the task
between construction and resumption. To allow this, I made PreconnectTask
and NetworkLoad require a start() call, and I added start() calls everywhere
they were implied with construction before.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::sendH2Ping):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::setH2PingCallback):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::start):
(WebKit::NetworkLoad::setH2PingCallback):
(WebKit::NetworkLoad::initialize): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::setH2PingCallback):
(WebKit::PreconnectTask::start):
(WebKit::PreconnectTask::~PreconnectTask): Deleted.

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):

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

(WebKit::NetworkDataTaskCocoa::setH2PingCallback):

  • Shared/WebErrors.cpp:

(WebKit::internalError): Deleted.

  • Shared/WebErrors.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::generateLoadIdentifier):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
(WebKit::generateLoadIdentifier): Deleted.

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::sendH2Ping):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):
Add a disabled test I used to verify this works correctly.

9:48 AM Changeset in webkit [264020] by Chris Dumez
  • 34 edits
    1 copy
    93 adds in trunk/LayoutTests

Resync web-platform-tests/custom-elements from upstream
https://bugs.webkit.org/show_bug.cgi?id=214028

Reviewed by Sam Weinig.

Resync web-platform-tests/custom-elements from upstream 145839c323ba1ec8b97.

  • web-platform-tests/custom-elements/*: Updated.
9:23 AM Changeset in webkit [264019] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Forward declare WKContentWorld in WKUserScript.h
<rdar://problem/65164826> and https://bugs.webkit.org/show_bug.cgi?id=214046

Unreviewed.

  • UIProcess/API/Cocoa/WKUserScript.h:
8:20 AM Changeset in webkit [264018] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Fix CrashTracer reported in PDFPlugin::ByteRangeRequest::maybeComplete.
<rdar://problem/64884982> and https://bugs.webkit.org/show_bug.cgi?id=214026

Reviewed by Tim Horton.

No new tests (CrashTracer with no reproduction)

Due to the racy-ness of how PDFKit calls us on the background thread vs. what might be
happening with the main thread, sometimes the main thread is asked to handle a data
request either:

  • Before m_data is allocated or
  • After it is deallocated

In either case it's okay to just not handle it.

Despite understanding how to reproduce in theory, writing a test case has been elusive.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::ByteRangeRequest::maybeComplete): Null check m_data before doing anything with it.

8:07 AM Changeset in webkit [264017] by ggaren@apple.com
  • 2 edits in trunk/Tools

Added a test for callOnMainThread
https://bugs.webkit.org/show_bug.cgi?id=214025

Reviewed by Sam Weinig.

This test failed prior to https://trac.webkit.org/changeset/263981.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST): Added a test demonstrating why a simple "is the
queue empty?" check doesn't work when you support both re-entrancy and
threads. While the main thread is sleeping in a nested RunLoop, a
secondary thread can see a non-empty queue.

6:57 AM Changeset in webkit [264016] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

REGRESSION(r262680): [GTK] Crash in WebKit::DropTarget::didPerformAction
https://bugs.webkit.org/show_bug.cgi?id=213885

Reviewed by Michael Catanzaro.

Just compare if new operation is the same as the current one, the == operator of Optional already takes care of
values being nullopt.

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::didPerformAction):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::didPerformAction):

6:56 AM Changeset in webkit [264015] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WTF

[GTK] WebProcess hangs when browsing GitHub
https://bugs.webkit.org/show_bug.cgi?id=213970

Reviewed by Sergio Villar Senin.

Use a lower priority for LayerFlushTimer and DisplayRefreshMonitorTimer. We were using a very high priority for
drawing with the idea of keeping a good rendering performance without being affected by other timers. The
problem is that animations can be controlled by timers, so we need to ensure that MainThreadSharedTimer has
higher priority than drawing.

  • wtf/glib/RunLoopSourcePriority.h: Use 110 for LayerFlushTimer and DisplayRefreshMonitorTimer.
4:31 AM Changeset in webkit [264014] by Tomoki Imai
  • 11 edits in trunk

[Win] Implement Pasteboard::writeCustomData for Web Inspector Console tab
https://bugs.webkit.org/show_bug.cgi?id=213986

Reviewed by Fujii Hironori.

Source/WebCore:

Implement Pasteboard::writeCustomData and Pasteboard::typesSafeForBindings.
This fixes the issue which we cannot copy text in WebInspector's Console tab.

We enable some existing testcases for pasteboard.

  • platform/Pasteboard.h:
  • platform/PasteboardCustomData.cpp:

(WebCore::PasteboardCustomData::fromPersistenceDecoder): Construct PasteboardCustomData from WTF::Persistence::Decoder.
(WebCore::PasteboardCustomData::fromSharedBuffer): Use fromPersistenceDecoder function to implement.

  • platform/PasteboardCustomData.h:
  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::createGlobalData): Add uint8_t* variant.

  • platform/win/ClipboardUtilitiesWin.h:
  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::finishCreatingPasteboard): Register new clipboard format CustomDataClipboardFormat.
(WebCore::Pasteboard::readPasteboardCustomData): Helper function to read PasteboardCustomData from the pasteboard.
(WebCore::Pasteboard::typesSafeForBindings): Implemented.
(WebCore::Pasteboard::readOrigin): Implemented.
(WebCore::Pasteboard::readStringInCustomData): Implemented.
(WebCore::Pasteboard::writeCustomData): Implemented.

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.h: Turn DEFAULT_CUSTOM_PASTEBOARD_DATA_ENABLED on for Windows

LayoutTests:

Now pasteboard tests related to custom data pass.

  • platform/win/TestExpectations:
4:08 AM Changeset in webkit [264013] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[GStreamer] OGV/VP8 video not playing on minibrowser (neither epiphany)
https://bugs.webkit.org/show_bug.cgi?id=205916

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-07
Reviewed by Xabier Rodriguez-Calvar.

Tools:

  • buildstream/elements/sdk/gst-plugins-base.bst: Vendor upstreamed GStreamer patch. It is

merged in the 1.16 branch and scheduled for 1.16.3 release but we don't know when/if it will
happen.

  • buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch: Added.

LayoutTests:

  • platform/glib/TestExpectations: Update WPT expectations
1:03 AM Changeset in webkit [264012] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Fix typo in version variable assingment in FindWOFF2.cmake
https://bugs.webkit.org/show_bug.cgi?id=214012

Reviewed by Carlos Garcia Campos.

  • Source/cmake/FindWOFF2.cmake: Properly use PC_WOFF2_VERSION as the version

detected from pkg-config.

12:21 AM Changeset in webkit [264011] by yurys@chromium.org
  • 2 edits in trunk/Tools

[GTK][MiniBrowser] occasional crashes when closing while download in progress
https://bugs.webkit.org/show_bug.cgi?id=214007

Reviewed by Carlos Garcia Campos.

Remove signal handlers from WebKitDownload when BrowserDownload is finalized,
WebKitDownload may emit a signal after the UI item has been destroyed which leads
to a crash.

  • MiniBrowser/gtk/BrowserDownloadsBar.c:

(browserDownloadFinalize):

Jul 6, 2020:

9:44 PM Changeset in webkit [264010] by Lauro Moura
  • 4 edits
    1 add in trunk/LayoutTests

[GTK][WPE] Imported semantics tests gardening after r263987

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
8:48 PM Changeset in webkit [264009] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark ref-test imported in r263987 as failing on iOS.

imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html is
a new ref-test that has been failing on iOS since import.

  • platform/ios/TestExpectations:
8:46 PM Changeset in webkit [264008] by Simon Fraser
  • 7 edits in trunk/Source

High CPU usage on Stash search results pages
https://bugs.webkit.org/show_bug.cgi?id=214018
<rdar://problem/64832917>

Reviewed by Tim Horton.
Source/WebCore:

Stash search results pages can contain a lot of overflow:scroll areas, so scrolling thread CA commits
would take a long time because ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters() would
open and close a CA commit for each scroller.

Fix by not explicitly starting a CA commit, and only entering this code if a gesture is active and in
the momentum phase.

Also sprinkle BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS in more places that call into Core
Animation.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionScrollingLayers):
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionScrollingLayers):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters):

Source/WebKit:

Stash search results pages can contain a lot of overflow:scroll areas, so scrolling thread CA commits
would take a long time because ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters() would
open and close a CA commit for each scroller.

Fix by not explicitly starting a CA commit, and only entering this code if a gesture is active and in
the momentum phase.

Also sprinkle BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS in more places that call into Core
Animation.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::repositionRelatedLayers):

8:35 PM Changeset in webkit [264007] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Rebaseline test for iOS after r263987.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
7:57 PM Changeset in webkit [264006] by Simon Fraser
  • 57 edits in trunk/Source

BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS should not have trailing semicolons
https://bugs.webkit.org/show_bug.cgi?id=214019

Reviewed by Tim Horton.

These macros are defined as:

#define BEGIN_BLOCK_OBJC_EXCEPTIONS @try {
#define END_BLOCK_OBJC_EXCEPTIONS } @catch(NSException *localException) { ReportBlockedObjCException(localException); }

so they should not be used with trailing semicolons.

Source/WebCore:

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::expandSelectionByCharacters):
(WebCore::showPopupOrCreateAnimationController):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::dataInRTFDFormat):
(WebCore::Editor::dataInRTFFormat):

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::tokenRange):
(WebCore::expandSelectionByCharacters):
(WebCore::showPopupOrCreateAnimationController):
(WebCore::DictionaryLookup::hidePopup):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::keyEvent):
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::mouseMoved):

  • page/mac/ChromeMac.mm:

(WebCore::Chrome::focusNSView):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::keyEvent):
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseDragged):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::pressureChange):
(WebCore::EventHandler::passMouseMovedEventToScrollbars):

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::encode const):
(WebCore::ContentFilterUnblockHandler::decode):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):

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

(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):

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

(WebCore::GPUBindGroupAllocator::allocateAndSetEncoders):
(WebCore::GPUBindGroupAllocator::reallocate):

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

(WebCore::appendArgumentToArray):
(WebCore::tryCreateMtlArgumentEncoder):
(WebCore::argumentDescriptor):
(WebCore::GPUBindGroupLayout::tryCreate):

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

(WebCore::setBufferOnEncoder):
(WebCore::setSamplerOnEncoder):
(WebCore::setTextureOnEncoder):

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

(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::commandBufferCommitted):
(WebCore::GPUBuffer::copyStagingBufferToGPU):

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

(WebCore::GPUCommandBuffer::tryCreate):
(WebCore::GPUCommandBuffer::endBlitEncoding):
(WebCore::GPUCommandBuffer::copyBufferToBuffer):
(WebCore::GPUCommandBuffer::copyBufferToTexture):
(WebCore::GPUCommandBuffer::copyTextureToBuffer):
(WebCore::GPUCommandBuffer::copyTextureToTexture):

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

(WebCore::GPUComputePassEncoder::tryCreate):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::useResource):
(WebCore::GPUComputePassEncoder::setComputeBuffer):

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

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):
(WebCore::tryCreateMTLComputePipelineState):

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

(WebCore::GPUDevice::tryCreate):

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

(WebCore::GPUProgrammablePassEncoder::endPass):

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

(WebCore::GPUQueue::tryCreate):
(WebCore::GPUQueue::submit):

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

(WebCore::populateMtlColorAttachmentsArray):
(WebCore::populateMtlDepthStencilAttachment):
(WebCore::GPURenderPassEncoder::tryCreate):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setBlendColor):
(WebCore::GPURenderPassEncoder::setViewport):
(WebCore::GPURenderPassEncoder::setScissorRect):
(WebCore::GPURenderPassEncoder::setVertexBuffers):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::drawIndexed):
(WebCore::GPURenderPassEncoder::useResource):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::setFragmentBuffer):

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

(WebCore::tryCreateMtlDepthStencilState):
(WebCore::trySetVertexInput):
(WebCore::trySetColorStates):
(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertRenderPipelineDescriptor):
(WebCore::tryCreateMtlRenderPipelineState):

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

(WebCore::tryCreateMtlSamplerState):

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

(WebCore::GPUShaderModule::tryCreate):

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

(WebCore::tryCreateWebGPULayer):
(WebCore::GPUSwapChain::tryGetCurrentTexture):

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

(WebCore::tryCreateMtlTextureDescriptor):
(WebCore::GPUTexture::tryCreate):
(WebCore::GPUTexture::tryCreateDefaultTextureView):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::documentView const):
(WebCore::ScrollView::platformSetScrollbarModes):
(WebCore::ScrollView::platformScrollbarModes const):
(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformUnobscuredContentRect const):
(WebCore::ScrollView::platformExposedContentRect const):
(WebCore::ScrollView::setActualScrollPosition):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentSize const):
(WebCore::ScrollView::legacyTileCache):
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollbarsSuppressed):
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformRepaintContentRectangle):
(WebCore::ScrollView::platformContentsToScreen const):
(WebCore::ScrollView::platformScreenToContents const):
(WebCore::ScrollView::platformSetScrollOrigin):

  • platform/ios/WidgetIOS.mm:

(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::frameRect const):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::addToSuperview):
(WebCore::Widget::removeFromSuperview):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):

  • platform/mac/CursorMac.mm:

(WebCore::createCustomCursor):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation invalidate]):
(-[WebScrollerImpDelegate cancelAnimations]):
(-[WebScrollerImpDelegate invalidate]):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::documentView const):
(WebCore::ScrollView::platformAddChild):
(WebCore::ScrollView::platformSetScrollbarModes):
(WebCore::ScrollView::platformScrollbarModes const):
(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformTopContentInset const):
(WebCore::ScrollView::platformSetTopContentInset):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea const):
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollbarsSuppressed):
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformRepaintContentRectangle):
(WebCore::ScrollView::platformContentsToScreen const):
(WebCore::ScrollView::platformScreenToContents const):
(WebCore::ScrollView::platformSetScrollOrigin):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
(WebCore::scrollerImpPaint):
(WebCore::linenBackgroundColor):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::setFocus):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::frameRect const):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::setIsSelected):
(WebCore::Widget::removeFromSuperview):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):
(WebCore::NetworkStorageSession::cookiesForSession const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::platformLazyInit):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::start):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

Source/WebKit:

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeFontInternal):

  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:

(-[WKScrollbarPartAnimation invalidate]):
(-[WKScrollerImpDelegate cancelAnimations]):
(-[WKScrollerImpDelegate invalidate]):
(WebKit::ScrollerMac::updateValues):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::updateLayerAnimations):

Source/WebKitLegacy/mac:

  • DOM/DOMCustomXPathNSResolver.mm:

(DOMCustomXPathNSResolver::lookupNamespaceURI):

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::exceededDatabaseQuota):
(WebChromeClient::reachedApplicationCacheOriginQuota):
(WebChromeClient::runOpenPanel):
(WebChromeClient::keyboardUIMode):
(WebChromeClient::firstResponder):
(WebChromeClient::makeFirstResponder):
(WebChromeClient::attachRootGraphicsLayer):
(WebChromeClient::setNeedsOneShotDrawingSynchronization):
(WebChromeClient::scheduleRenderingUpdate):
(WebChromeClient::enterVideoFullscreenForVideoElement):
(WebChromeClient::exitVideoFullscreenForVideoElement):
(WebChromeClient::exitVideoFullscreenToModeWithoutAnimation):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createFrame):
(WebFrameLoaderClient::objectContentType):
(NetscapePluginWidget::notifyWidget):
(WebFrameLoaderClient::createPlugin):
(WebFrameLoaderClient::redirectDataToPlugin):
(WebFrameLoaderClient::createJavaAppletWidget):

  • WebCoreSupport/WebGeolocationClient.mm:

(WebGeolocationClient::setEnableHighAccuracy):
(WebGeolocationClient::requestPermission):
(-[WebGeolocationProviderInitializationListener initializationAllowedWebView:]):

  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::requestPermission):

  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):

  • WebCoreSupport/WebVisitedLinkStore.mm:

(WebVisitedLinkStore::populateVisitedLinksIfNeeded):

  • WebView/WebHTMLView.mm:

(imageFromRect):

6:49 PM Changeset in webkit [264005] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Add ability for AX objects to output html in debug
https://bugs.webkit.org/show_bug.cgi?id=214020

Reviewed by Darin Adler.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase innerHTML]):
(-[WebAccessibilityObjectWrapperBase outerHTML]):

6:34 PM Changeset in webkit [264004] by beidson@apple.com
  • 25 edits in trunk/Source

Get rid of concept of "initial connected gamepads"
https://bugs.webkit.org/show_bug.cgi?id=214010

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Refactor, no behavior change)

When a page starts using gamepads and some were already connected, this concept
was meant to manage when the already-connected gamepads could be revealed to the page.

It obviously wasn't needed, as only the HID provider used them (GameController provider didn't)

Instead, we should just always include a "does this event make gamepads visible?" bit.

This cleans up a lot of weird code gets both providers working closer to each other.

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::platformGamepadConnected):
(WebCore::GamepadManager::platformGamepadInputActivity):

  • Modules/gamepad/GamepadManager.h:
  • platform/gamepad/GamepadProvider.cpp:

(WebCore::GamepadProvider::dispatchPlatformGamepadInputActivity):

  • platform/gamepad/GamepadProviderClient.h:

(WebCore::GamepadProviderClient::setInitialConnectedGamepads): Deleted.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::makeInvisibileGamepadsVisible):

  • platform/gamepad/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired): Deleted.

  • platform/gamepad/mac/HIDGamepadProvider.h:
  • testing/MockGamepadProvider.cpp:

(WebCore::MockGamepadProvider::connectMockGamepad):

Source/WebKit:

  • Scripts/webkit/messages.py:
  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads): Deleted.

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

(WebKit::WebPageProxy::gamepadActivity):

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

(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::setInitialConnectedGamepads): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadActivity):

  • WebProcess/Gamepad/WebGamepadProvider.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::gamepadActivity):

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

(WebKit::WebProcess::gamepadConnected):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
5:54 PM Changeset in webkit [264003] by wenson_hsieh@apple.com
  • 4 edits in trunk

Web process sometimes crashes when translating an article on spiegel.de
https://bugs.webkit.org/show_bug.cgi?id=214014
<rdar://problem/65099253>

Reviewed by Tim Horton.

Source/WebCore:

The crash happens because we try to make a BoundaryPoint (using makeBoundaryPoint) out of an orphaned
Position that is anchored before or after the anchor node (more specifically, either PositionIsBeforeAnchor
or PositionIsAfterAnchor). In makeBoundaryPoint, we'll avoid the early WTF::nullopt return since the
position is non-null, but then try to access the container node, which is null in this case because the anchor
node has been unparented.

Fix this by not attempting to observe orphaned DOM positions when extracting content for translation.

Test: TextManipulation.StartTextManipulationAvoidCrashWhenExtractingOrphanedPositions

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a test case that dynamically adds an object element, immediately removes it, and then adds a chunk of text
and verifies that the text manipulation delegate method for new content is invoked.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
5:46 PM Changeset in webkit [264002] by clopez@igalia.com
  • 2 edits in trunk/Tools

svn-apply should use verbose mode when adding files to git
https://bugs.webkit.org/show_bug.cgi?id=214022

Reviewed by Darin Adler.

If a patch contains several copy or add operations it can happen that there is
no output for more than 600 seconds meanwhile the tool is applying the patch.
This can cause a fatal error on the EWS. Pass the verbose flag to git,
so it outputs the name of the file after adding it to the index.
This is consequent how "svn add" works by default (it outputs the name of the file),
or how "git rm" works (it also outputs the name of the file by default as well).

  • Scripts/svn-apply:

(scmCopy):
(scmAdd):
(scmCommitQueueAdded):

5:15 PM Changeset in webkit [264001] by wilander@apple.com
  • 3 edits in trunk/Source/WebCore

Follow-up to r263992: Make isKinjaLoginAvatarElement() a free function
https://bugs.webkit.org/show_bug.cgi?id=214015
<rdar://problem/65153632>

Unreviewed follow-up to a quirk. Just changing
isKinjaLoginAvatarElement() from member to free function.

As requested in https://bugs.webkit.org/show_bug.cgi?id=213910#c10.

  • page/Quirks.cpp:

(WebCore::isKinjaLoginAvatarElement):
(WebCore::Quirks::isKinjaLoginAvatarElement const): Deleted.

  • page/Quirks.h:
5:09 PM Changeset in webkit [264000] by Chris Fleizach
  • 23 edits
    2 adds in trunk

AX: Implement user action spec for Escape action
https://bugs.webkit.org/show_bug.cgi?id=213875
<rdar://problem/65022980>

Reviewed by Darin Adler.

Source/WebCore:

Implement the Escape action for the user action events.
https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology

Test: accessibility/keyevents-posted-for-dismiss-action.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::performEscape):
(WebCore::AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent):
(WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformEscape]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::performEscape):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(dismissCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::dismiss):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):
(WTR::AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::dismiss):

LayoutTests:

  • accessibility/keyevents-posted-for-dismiss-action-expected.txt: Added.
  • accessibility/keyevents-posted-for-dismiss-action.html: Added.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
5:01 PM Changeset in webkit [263999] by commit-queue@webkit.org
  • 15 edits in trunk

Fix transform feedback tests
https://bugs.webkit.org/show_bug.cgi?id=213906

Patch by James Darpinian <James Darpinian> on 2020-07-06
Reviewed by Dean Jackson.

Fix transform feedback conformance tests by implementing missing functionality such as:

  • Transform feedback object state tracking
  • Validation for all GL errors that can affect state tracking before calling ANGLE
  • Default transform feedback object
  • Pause/resume
  • Fix vertexAttribDivisor in WebGL 2 (unrelated to transform feedback)

After this, all related tests pass except for a few that also fail in Chrome, and one that uses
PIXEL_PACK_BUFFER which is not yet supported.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::ValidateTransformFeedbackPrimitiveMode):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::pauseTransformFeedback):
(WebCore::WebGL2RenderingContext::resumeTransformFeedback):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getMaxTransformFeedbackSeparateAttribs):
(WebCore::WebGL2RenderingContext::getParameter):
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::cacheInfoIfNeeded):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::create):
(WebCore::WebGLTransformFeedback::WebGLTransformFeedback):
(WebCore::WebGLTransformFeedback::setProgram):
(WebCore::WebGLTransformFeedback::setBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::getBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::hasEnoughBuffers const):
(WebCore::WebGLTransformFeedback::usesBuffer):
(WebCore::WebGLTransformFeedback::unbindBuffer):
(WebCore::WebGLTransformFeedback::validateProgramForResume const):

  • html/canvas/WebGLTransformFeedback.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):

4:59 PM Changeset in webkit [263998] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Locale-specific quotes infrastructure needs to compare locale strings properly
https://bugs.webkit.org/show_bug.cgi?id=213827

Reviewed by Darin Adler.

Source/WebCore:

Before this patch, WebKit is selecting which quotes to display on <q>
elements by doing a raw strcmp() on the locale string with a big table
of locale strings. strcmp() is the wrong way to compare locale strings.

The HTML spec has a list of locales and their associated quotes[1].
It is formulated in terms of CSS using the "lang()" pseudoclass.
The spec of the lang() pseudoclass[2] describes that locale comparison
needs to be done according to section 3.3.2 in RFC4647[3].

This algorithm is a pretty general algorithm, and implementing it naively
would mean turning our O(log(n)) algorithm into a O(n) algorithm, which
would be unfortunate. Instead, we can use a few observations about the
set of locale strings we are comparing against, in order to preserve the
O(log(n)) runtime:

  • All the locales have either 1 or 2 subtags
  • None of the subtags in any of the ranges are wildcards
  • The list is sorted, so a locale string that is a prefix of another one

is listed before it.

[1] https://html.spec.whatwg.org/multipage/rendering.html#quotes
[2] https://drafts.csswg.org/selectors-4/#the-lang-pseudo
[3] https://tools.ietf.org/html/rfc4647#page-10

Test: fast/css-generated-content/quotes-lang-2.html

  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • rendering/RenderQuote.cpp:

(WebCore::subtagCompare):
(WebCore::quoteTableLanguageComparisonFunction):
(WebCore::quotesForLanguage):
(WebCore::RenderQuote::computeText const):

LayoutTests:

  • fast/css-generated-content/quotes-lang-2-expected.html: Added.
  • fast/css-generated-content/quotes-lang-2.html: Added.
4:32 PM Changeset in webkit [263997] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] No need to mark tables/mozilla_expected_failures/other/empty_cells.html with [Failure] anymore.

Unreviewed.

  • platform/win/TestExpectations:
4:30 PM Changeset in webkit [263996] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Regression(r249303) Crash under NetworkLoad::NetworkLoad()
https://bugs.webkit.org/show_bug.cgi?id=214008
<rdar://problem/64853936>

Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
Do some hardening and fail the SpeculativeLoad if the network session is null, instead of dereferencing
the network session unconditionally. The NetworkCache owns the NetworkCacheSpeculativeLoadManager and
the NetworkCache is RefCounted so it may outlive its NetworkSession in theory and schedule speculative
loads for a session that was just destroyed.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:

Capture weakThis in a few lambda and check it when the lambda gets called. It looked unsafe so I
decided to do some hardening.

4:27 PM Changeset in webkit [263995] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] WAKWindow should override -resignFirstResponder and clear state
https://bugs.webkit.org/show_bug.cgi?id=214011
<rdar://problem/65152410>

Reviewed by Tim Horton.

This is part of the fix for <rdar://problem/62615273>.

Override -resignFirstResponder to clear out internal state that tracks the first responder
in the iOS Legacy WebKit world.

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow resignFirstResponder]):

4:14 PM Changeset in webkit [263994] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed mozilla test gardening after r263855.

  • platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
4:13 PM Changeset in webkit [263993] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION: (r263977): [ iOS Debug WK2 ] 36 fast form and web-platform test consistently crashing
https://bugs.webkit.org/show_bug.cgi?id=214009
<rdar://problem/65151752>

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::weekInputStyleSheet const):
Replace ""_s with emptyString() to fix crashing tests.

4:01 PM Changeset in webkit [263992] by wilander@apple.com
  • 4 edits in trunk/Source/WebCore

Storage Access API: Add the capability to open a popup and get user interaction so we can call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
https://bugs.webkit.org/show_bug.cgi?id=213910
<rdar://problem/65058017>

Reviewed by Darin Adler.

This patch not only adds the capability but also adds a site-specific quirk for
the family of Kinja sites so that no previous user interaction with kinja.com
results in a login popup for kinja.com.

No new tests. This is for site-specific quirks.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):

Just a change in the call into the quirk function.

  • page/Quirks.cpp:

(WebCore::Quirks::isKinjaLoginAvatarElement const):

Convenience function for telling if the given element is the Kinja login avatar.

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

Now takes the whole Element to be able to look at both classes and attributes.

  • page/Quirks.h:
3:25 PM Changeset in webkit [263991] by Peng Liu
  • 2 edits in trunk/Source/WebKit

REGRESSION (r261001): ASSERTION FAILED: m_clientCounts.contains(contextId) in WebKit::VideoFullscreenManagerProxy::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=212986

Reviewed by Jer Noble.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
Function removeClientForContext() could be called multiple times with the same contextId.
We should bail out if m_clientCounts does not contain the contextId.

3:04 PM Changeset in webkit [263990] by Peng Liu
  • 3 edits in trunk/Source/WebCore

Cleanup WebVideoFullscreenControllerAVKit.mm and PlaybackSessionInterfaceAVKit.mm
https://bugs.webkit.org/show_bug.cgi?id=214005

Reviewed by Daniel Bates.

No new tests, no behavior change.

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

(VideoFullscreenControllerContext::setUpFullscreen):
Remove a redundant line.

2:52 PM Changeset in webkit [263989] by Alan Coon
  • 1 copy in tags/Safari-610.1.21

Tag Safari-610.1.21.

2:50 PM Changeset in webkit [263988] by Russell Epstein
  • 2 edits in branches/safari-610.1.21-branch/Source/WebKitLegacy/mac

Cherry-pick r263986. rdar://problem/65149071

[Catalyst] Remove SPI header from WebDownload.h
https://bugs.webkit.org/show_bug.cgi?id=214004
<rdar://problem/65146575>

Reviewed by Wenson Hsieh.

  • Misc/WebDownload.h: Remove SPI header.

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

2:36 PM Changeset in webkit [263987] by Chris Dumez
  • 202 edits
    16 copies
    5 moves
    334 adds
    20 deletes in trunk/LayoutTests

Resync web-platform-tests/html/semantics from upstream
https://bugs.webkit.org/show_bug.cgi?id=213994

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/semantics from upstream 145839c323ba1ec8b.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
  • tests-options.json:
2:33 PM Changeset in webkit [263986] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKitLegacy/mac

[Catalyst] Remove SPI header from WebDownload.h
https://bugs.webkit.org/show_bug.cgi?id=214004
<rdar://problem/65146575>

Reviewed by Wenson Hsieh.

  • Misc/WebDownload.h: Remove SPI header.
2:24 PM Changeset in webkit [263985] by commit-queue@webkit.org
  • 17 edits
    4 adds in trunk

Added PannerNode constructor according to spec
https://bugs.webkit.org/show_bug.cgi?id=213801

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-06
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests now that new ones are passing. New ones that fail are due to accepted range
of values that attributes can take on, which are to be implemented in a future patch.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:

Source/WebCore:

Added in new PannerNode constructor to match spec: https://www.w3.org/TR/webaudio/#dom-pannernode-pannernode.
Added in AudioNodeOptions and PannerOptions files. Modified some previous code in order to pass compilation.

Re-baselined existing tests now that new ones are passing. New ones that fail are due to accepted range
of values that attributes can take on, which are to be implemented in a future patch.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):

  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/AudioNodeOptions.h: Added.
  • Modules/webaudio/AudioNodeOptions.idl: Added.
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNodeBase::PannerNodeBase):
(WebCore::PannerNode::create):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/PannerOptions.h: Added.
  • Modules/webaudio/PannerOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
1:34 PM Changeset in webkit [263984] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Some tests are failing on the EWS bots
https://bugs.webkit.org/show_bug.cgi?id=213998

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:19 PM Changeset in webkit [263983] by Jonathan Bedard
  • 2 edits in trunk/Tools

[test-webkitpy] Use platform architecture
https://bugs.webkit.org/show_bug.cgi?id=214002
<rdar://problem/65144773>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests):

1:19 PM Changeset in webkit [263982] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

update-webkit-localizable-strings exits without writing localized strings because of an R"" string
https://bugs.webkit.org/show_bug.cgi?id=213274
<rdar://problem/64427891>

Reviewed by Darin Adler.

Remove R"" string, use adjacent string literals instead.

No new tests, functionality tested by existing tests, specifically
(http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html
and http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html).

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::joinSubStatisticsForSorting):
(WebKit::CompletionHandler<void): Deleted.

12:51 PM Changeset in webkit [263981] by ggaren@apple.com
  • 8 edits in trunk/Source

callOnMainThread should use the same queue as RunLoop::dispatch
https://bugs.webkit.org/show_bug.cgi?id=213830

Reviewed by Brady Eidson.

Source/JavaScriptCore:

Source/WTF:

This should reduce flakiness in scheduled tasks.

There's no need to keep a separate queue anymore since both APIs have
the same semantics now.

  • wtf/MainThread.cpp:

(WTF::callOnMainThread):
(WTF::functionQueue): Deleted.
(WTF::dispatchFunctionsFromMainThread): Deleted.

  • wtf/MainThread.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/generic/MainThreadGeneric.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/win/MainThreadWin.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

12:48 PM Changeset in webkit [263980] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

ASSERT_NOT_REACHED() in EventRegionContext::popClip()
https://bugs.webkit.org/show_bug.cgi?id=213905

Reviewed by Daniel Bates.

Fix an assertion seen on bing.com, tesla.com etc where event region painting
would have mismatched push/pop because of an obvious code error.

I spent too long trying to make a testcase and gave up.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::restoreClip):

12:45 PM Changeset in webkit [263979] by wenson_hsieh@apple.com
  • 12 edits
    1 move
    4 adds in trunk

[iPadOS] Unable to change focus between Google Docs windows by tapping
https://bugs.webkit.org/show_bug.cgi?id=213985
<rdar://problem/57083267>

Reviewed by Darin Adler.

Source/WebKit:

When putting two Google Docs windows side-by-side on iPad, it's currently not possible to change the window to
which keyboard input is routed. In native views (e.g. two side-by-side Notes windows), this is normally handled
by UITextMultiTapRecognizer, which is part of the UITextSelectionInteraction; tapping to place the text
selection calls into -[UITextInteractionAssistant setFirstResponderIfNecessaryActivatingSelection:], which
updates the key window if needed. This doesn't apply to Google Docs because they instead use touch events to
drive their own "text interaction"-like behaviors instead of relying on system gesture recognizers, which we
suppress due to the fact that the selection is within a hidden contenteditable.

But even in non-hidden editable areas, the initial tap to focus an editable element still doesn't automatically
make the window key, since the editable text interaction gestures are still inactive when tapping to focus an
editable element. This means two taps are currently required to change the key window when focusing two Safari
windows side-by-side: the first tap to focus the element (via the synthetic click gesture), and the second tap
to trigger the editable text interaction tap gesture that is used to set the selection.

To fix both of these issues, make some minor adjustments to call -makeKeyWindow from WebKit when focusing
editable elements. See below for more details.

Test: editing/selection/ios/become-key-window-when-focusing-editable-area.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _webTouchEventsRecognized:]):

For the case in Google Docs where a hidden editable element is used and tapping in the page does not result in
the element being refocused, we additionally need to make sure that we make our window key anyways. Limit this
hack to tap gestures, and only when there is a hidden focused editable element to emulate platform behavior of
updating the key window based on the text tap gesture.

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

Make the content view's window key when focusing an editable element.

(-[WKContentView hasHiddenContentEditable]):

Consider the selection to be inside a hidden editable area if the WebKit::FocusedElementIsTooSmall flag is set
as well. While this doesn't affect Google Docs, it does affect some other custom editors, such as Quip.

(-[WKContentView mouseGestureRecognizerChanged:]):

Additionally make the current window key when clicking in a hidden editable area with a trackpad on iOS.

Tools:

Add WebKitTestRunner support for being able to verify that a web view's window has become the key window.

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/UIScriptController.cpp: Added.

(WTR::UIScriptController::setWindowIsKey):
(WTR::UIScriptController::windowIsKey const):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • TestRunnerShared/UIScriptContext/UIScriptControllerShared.cpp: Renamed from Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp.

Rename UIScriptController.cpp (in TestRunnerShared) to UIScriptControllerShared.cpp, and introduce new
DumpRenderTree and WebKitTestRunner versions of UIScriptController.cpp to house DumpRenderTree and
WebKitTestRunner-specific UIScriptController method implementations.

For now, these are just windowIsKey and setWindowIsKey below, which plumb into their respective platform-
agnostic PlatformWebView methods in WebKitTestRunner.

  • WebKitTestRunner/UIScriptController.cpp: Added.

(WTR::UIScriptController::windowIsKey const):
(WTR::UIScriptController::setWindowIsKey):

  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(-[WebKitTestRunnerWindow becomeKeyWindow]):
(-[WebKitTestRunnerWindow resignKeyWindow]):

Update these two methods to update m_windowIsKey when the test runner's UIWindow becomes the key window (or
stops being the key window). This is invoked when -[UIWindow makeKeyWindow] is called (e.g. from within WebKit
code when tapping on an editable element).

(WTR::PlatformWebView::setWindowIsKey):

Avoid infinitely looping when setting windowIsKey to true, due to -becomeKeyWindow calling back into
setWindowIsKey.

LayoutTests:

Add a new layout test to verify that tapping to focus a plain textarea causes the web view's window to become
the key window, as well as tapping to focus a hidden contenteditable area, over a touch handler that prevents
default.

  • editing/selection/ios/become-key-window-when-focusing-editable-area-expected.txt: Added.
  • editing/selection/ios/become-key-window-when-focusing-editable-area.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setWindowIsKey):
(window.UIHelper.windowIsKey):

12:03 PM Changeset in webkit [263978] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Spams system logs with "Current memory footprint: 10 MB"
https://bugs.webkit.org/show_bug.cgi?id=213991

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-06
Reviewed by Darin Adler.

This particular log statement is too much spam in the system journal, since it prints
continuously under normal operating conditions. Let's limit it only to Apple platforms,
which have had RELEASE_LOG() for a long time and where this is presumably expected.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::measurementTimerFired):

12:01 PM Changeset in webkit [263977] by weinig@apple.com
  • 27 edits in trunk/Source

Compile-time enable (but leave disabled at runtime by default) date/time input types on macOS to allow testing of cross platform (e.g. DOM) aspects of the controls
https://bugs.webkit.org/show_bug.cgi?id=213949

Reviewed by Darin Adler.

Source/WebCore:

Enable date/time related input element types on all Cocoa platforms, but disable them at runtime.
To make runtime disabling work completely, the user agent style for these element types was
extracted from html.css and is now only added when needed via UserAgentStyle::ensureDefaultStyleSheetsForElement.

This is the first step to allowing us to run a subset of the date/time related input element tests
on more platforms. If this is successful, we should consider do this for all platforms, not just Cocoa.

  • css/html.css:

Move to RenderTheme accessors for conditional inclusion based on Settings.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isDateTimeField const): Deleted.

  • html/HTMLInputElement.h:

Removed dead isDateTimeField() code. This should have been removed when datetime was removed.

  • html/InputType.cpp:

(WebCore::createInputTypeFactoryMap):
(WebCore::InputType::create):
Switch from using RuntimeEnabledFeatures to Settings for checking for enabling (Settings allows
us to write less boilerplate code and is more versatile for testing) and switch to checking the
condition on each InputType construction, rather than just on map's creation (again, this allows
us to have more flexibility in testing).

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::inputTypeColorEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeColorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeDateEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeDateTimeLocalEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateTimeLocalEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeMonthEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeMonthEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeTimeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeTimeEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeWeekEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeWeekEnabled): Deleted.
Remove hand written code infavor of code genreated from Settings.yaml.

  • page/Settings.yaml:

Moved from RuntimeEnabledFeatures.

  • platform/LocalizedStrings.h:

Remove weekFormatInLDML() declaration, which had not implementation.

  • platform/text/PlatformLocale.cpp:

(WebCore::Locale::formatDateTime):

  • platform/text/PlatformLocale.h:

Simplify code by marking formatDateTime() virtual on all platforms and un-#ifdefing
the base implementation. Platforms that wish to override it still can.

  • platform/text/cocoa/LocaleCocoa.h:
  • platform/text/cocoa/LocaleCocoa.mm:
  • platform/text/ios/LocalizedDateCache.h:
  • platform/text/ios/LocalizedDateCache.mm:

Remove iOS specific #ifdefs around code that should work on all Cocoa platforms.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::colorInputStyleSheet const):
(WebCore::RenderTheme::dateInputStyleSheet const):
(WebCore::RenderTheme::dateTimeLocalInputStyleSheet const):
(WebCore::RenderTheme::monthInputStyleSheet const):
(WebCore::RenderTheme::timeInputStyleSheet const):
(WebCore::RenderTheme::weekInputStyleSheet const):

  • rendering/RenderTheme.h:

Add default user agent stylesheet strings for input types. All moved from html.css.

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h:

Conditionally add the input type specific user agent stylesheets only if the actual
input type is being passed in. Since creation of the input types is guarded by a Setting,
this can only happen if the type has been enabled.

Source/WebKit:

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

(-[WKFocusedElementInfo initWithFocusedElementInformation:isUserInitiated:userObject:]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView textInputTraits]):
(mayContainSelectableText):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):
Remove DateTime from the InputType enum. This should have been removed when datetime was removed.

  • Shared/WebPreferences.yaml:

Add preferences for all the date/time related input types, and have them automatically
link up with the newly added WebCore Settings of the same names (this is the default
behavior if no explicit webcoreBinding: is provided).

  • Shared/WebPreferencesDefaultValues.h:

Disable date/time input elements by default for non iOS/watchOS cocoa platforms. For non-Cocoa platforms
(and iOS/watchOS), they are enabled by default, but only actually get enabled if the appropriate ENABLE_*
macro is also set.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Enable building date/time input types on all Cocoa ports.

11:09 AM Changeset in webkit [263976] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[result database] Empty search will return too many tests to display
https://bugs.webkit.org/show_bug.cgi?id=213898

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/js/search.js: Trim the search string before fetching the tests, ingore empty string on paste event
10:44 AM Changeset in webkit [263975] by Russell Epstein
  • 8 edits in branches/safari-610.1.21-branch/Source

Versioning.

WebKit-610.1.21

10:39 AM Changeset in webkit [263974] by Russell Epstein
  • 1 copy in branches/safari-610.1.21-branch

New branch.

10:15 AM Changeset in webkit [263973] by ggaren@apple.com
  • 6 edits in trunk

RunLoop::dispatch should only call wakeUp when needed
https://bugs.webkit.org/show_bug.cgi?id=213705

Reviewed by Brady Eidson.

Source/WTF:

RunLoop::wakeUp is super expensive (at least on Darwin platforms). Back
when IndexedDB used RunLoop::dispatch, RunLoop::wakeUp accounted for 15%
of all database lookup time.

We can reduce the cost a bit by only scheduling a wakeUp when the queue
is empty.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::performWork): Take all the functions out of the pending
queue before we start executing them; that way, we can tell if a new
function has been added to the pending queue since we enetered
performWork.

(WTF::RunLoop::dispatch): Only call wakeUp if we need to.

  • wtf/RunLoop.h:

Tools:

Added some tests for interesting edge cases.

Now that we have tests, we don't need so many comments.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST): Test that re-entry maintiains ordering. Test that
re-entry does not deadlock with cross-thread posting. (This deadlock is
why we can't just use a naive check for an empty queue.)

  • TestWebKitAPI/glib/UtilitiesGLib.cpp:

(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::spinRunLoop):
(TestWebKitAPI::Util::sleep): Try to fix the GLib RunLoop testing code.
GLib fails my two new tests, and seems to fail other RunLoop-y tests.
I think this is because g_idle_add is defined not to work in nested
RunLoops. Let's see if using WTF's RunLoop API instead can help.

9:53 AM Changeset in webkit [263972] by commit-queue@webkit.org
  • 3 edits in trunk/PerformanceTests

MallocBench: Remove unused private field
https://bugs.webkit.org/show_bug.cgi?id=213989

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-06
Reviewed by Alex Christensen.

The m_argc private field is never used. Remove it.

  • MallocBench/MallocBench/CommandLine.cpp:
  • MallocBench/MallocBench/CommandLine.h:
9:51 AM Changeset in webkit [263971] by commit-queue@webkit.org
  • 4 edits in trunk

Allow setting empty host/hostname on URLs if they use file scheme
https://bugs.webkit.org/show_bug.cgi?id=213983

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Allow setting empty host/hostname on URLs if they use file scheme [1, 2, 3].

Behavior matches Firefox.

[1] https://url.spec.whatwg.org/#dom-url-host
[2] https://url.spec.whatwg.org/#dom-url-hostname
[3] https://url.spec.whatwg.org/#host-state Step 1

Test: imported/w3c/web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):
(WebCore::URLDecomposition::setHostname):

9:48 AM Changeset in webkit [263970] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Update the user agent on iPadOS to use 11 to match macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=213753

Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2020-07-06
Reviewed by Alex Christensen.

Update the version number in the desktop user agent string to 11_0.

  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):

9:27 AM Changeset in webkit [263969] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Use RenderObject::positionForPoint instead of hit testing the entire view in closestEditablePositionInElementForAbsolutePoint
https://bugs.webkit.org/show_bug.cgi?id=213975

Reviewed by Wenson Hsieh.

The target renderer is known a priori so it is more efficient to hit test this directly
instead of indirectly by hit testing the entire view.

  • editing/Editing.cpp:

(WebCore::closestEditablePositionInElementForAbsolutePoint):

8:18 AM Changeset in webkit [263968] by Alan Bujtas
  • 8 edits in trunk/LayoutTests

[Win] Unreviewed mozilla test gardening after r263855.

  • platform/win/tables/mozilla/bugs/bug100334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug10633-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1302-expected.txt:
  • platform/win/tables/mozilla/bugs/bug16012-expected.txt:
  • platform/win/tables/mozilla/bugs/bug222336-expected.txt:
  • platform/win/tables/mozilla/bugs/bug3037-1-expected.txt:
8:03 AM Changeset in webkit [263967] by Alan Bujtas
  • 13 edits in trunk/LayoutTests

[Win] Unreviewed test gardening after r263855.

  • platform/win/fast/css/acid2-expected.txt:
  • platform/win/fast/css/acid2-pixel-expected.txt:
  • platform/win/fast/css/percentage-non-integer-expected.txt:
  • platform/win/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/win/fast/repaint/table-cell-move-expected.txt:
  • platform/win/fast/table/cell-absolute-child-expected.txt:
  • platform/win/fast/table/empty-cells-expected.txt:
  • platform/win/fast/table/prepend-in-anonymous-table-expected.txt:
  • platform/win/fast/table/table-cell-split-expected.txt:
  • platform/win/fast/table/table-insert-before-non-anonymous-block-expected.txt:
  • platform/win/http/tests/misc/acid2-expected.txt:
  • platform/win/http/tests/misc/acid2-pixel-expected.txt:
5:13 AM Changeset in webkit [263966] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

BubblewrapLauncher.cpp: Add paths required for sndio
https://bugs.webkit.org/show_bug.cgi?id=212524

Information about the paths currently ins't into the sndio
documentation but it can be found in this email:
http://www.sndio.org/arch/0077.html

Patch by Haelwenn (lanodan) Monnier <contact@hacktivis.me> on 2020-07-06
Reviewed by Adrian Perez de Castro.

Manually tested, there is currently no automatic tests for it

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSndio):
(WebKit::bubblewrapSpawn):

2:47 AM Changeset in webkit [263965] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][WPE] Enable storageAccess tests
https://bugs.webkit.org/show_bug.cgi?id=213881

Reviewed by Adrian Perez de Castro.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::getAllStorageAccessEntries): Use the right website data store.

LayoutTests:

Enable storageAccess tests and mark expected failures.

  • platform/glib/TestExpectations:
1:49 AM Changeset in webkit [263964] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK][WPE] Change the cookies accept policy when ITP is enabled
https://bugs.webkit.org/show_bug.cgi?id=213502

Reviewed by Michael Catanzaro.

Source/WebCore:

Set the accept policy to always when ITP is enabled and no-third-party is set, otherwise cookies access granted
by request storage access would still be rejected by libsoup if policy is set to no-third-party.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled): Move here the implementation for ports not
using soup.

  • platform/network/NetworkStorageSession.h:
  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession): Initialize cookie accept policy.
(WebCore::NetworkStorageSession::setCookieStorage): Set here the accept policy of the new jar.
(WebCore::NetworkStorageSession::setCookieAcceptPolicy): Set the cookie accept policy taking into account that
if ITP is enabled and no-third-party is set we save the policy but use always instead.
(WebCore::NetworkStorageSession::cookieAcceptPolicy const): Remove the default case of the switch.
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled): When enabled, save current policy and set
always if no-third-party is set. When disabled, restore the saved policy.

Source/WebKit:

  • NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Use NetworkStorageSession::setCookieAcceptPolicy().

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::setCookiePersistentStorage): Do not change the accept policy, it's now done by
NetworkStorageSession when the new cookie jar is set.

  • UIProcess/API/glib/WebKitCookieManager.cpp: Update API docs.
  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp: Ditto.

Tools:

Add tests to check the policy is changed and restored correctly when ITP is enabled and disabled.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerAcceptPolicy):

1:35 AM Changeset in webkit [263963] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[Flatpak SDK] Misc updates
https://bugs.webkit.org/show_bug.cgi?id=213968

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-06
Reviewed by Sergio Villar Senin.

  • buildstream/README.rst: ReST format fixes and doc additions.
  • buildstream/elements/sdk/perl-term-readkey.bst: Remove perllocal.pod as it can clash with other recipes.
  • flatpak/flatpakutils.py:

(run_in_sandbox_if_available): Add --flatpak- option pass-through support. This was lost
after the migration of run-minibrowser to python.

12:42 AM Changeset in webkit [263962] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Don't skip samples past media duration in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=213888

Reviewed by Xabier Rodriguez-Calvar.

appsinkNewSample() contained code to skip samples whose presentation
time starts after media duration. This is paradoxical, because later
sourceBufferPrivateDidReceiveSample() extends media duration whenever
the presentation end time of the sample is past the original one.

It does not sound reasonable that samples extending the duration are
okay on one case but outright rejected in the other. Also, if it was
about skipping samples, sourceBufferPrivateDidReceiveSample() could do
it itself, and already does in other cases.

For all these reasons I was very doubtful of the need for this if()
and indeed removing this condition didn't cause any new test failure.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::appsinkNewSample):

Note: See TracTimeline for information about the timeline view.