Timeline



May 5, 2020:

11:51 PM Changeset in webkit [261216] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update expectations after r260889
https://bugs.webkit.org/show_bug.cgi?id=211500

Unreviewed gardening.

These failures started to happen once the GTK Test bot was
switched to Flatpak, which occurred on build #13542 (r260889).

  • platform/gtk/TestExpectations:
11:01 PM Changeset in webkit [261215] by Ross Kirsling
  • 20 edits
    8 adds in trunk

[ECMA-402] Implement Intl.Locale
https://bugs.webkit.org/show_bug.cgi?id=209772

Reviewed by Darin Adler and Saam Barati.

JSTests:

  • stress/intl-locale.js: Added.
  • stress/intl-locale-as-intl-param.js: Added.
  • test262/config.yaml:

Enable Intl.Locale feature with flag.

  • test262/expectations.yaml:

Mark known failures.
None of these should be specific to Intl.Locale.

Source/JavaScriptCore:

This patch implements the recent ECMA-402 feature Intl.Locale.

This is effectively a wrapper class for all the pieces of uloc.h that ECMA-402 cares about.
(If we used the C++ API, there's a LocaleBuilder that would make this much easier, but in sticking to the C API,
it's basically an object that has an ICU localeID as data and uloc_* functions as methods / getters.
Furthermore, there's no way to modify said data, so every method / getter can be lazy and cache its result.)

Usage example:

locale = new Intl.Locale('ja', { region: 'JP', calendar: 'japanese', numeric: false })

"ja-JP-u-ca-japanese-kn-false"

locale.baseName

"ja-JP"

Intl.Locale can be used anywhere that Intl APIs accept locale strings as input parameters,
and is moreover hoped to be the class by which future Web APIs will handle the current locale.

This feature is runtime-guarded by the useIntlLocale option.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlLocale.cpp: Added.
  • runtime/IntlLocale.h: Added.
  • runtime/IntlLocaleConstructor.cpp: Added.
  • runtime/IntlLocaleConstructor.h: Added.
  • runtime/IntlLocalePrototype.cpp: Added.
  • runtime/IntlLocalePrototype.h: Added.
  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):
(JSC::localeIDBufferForLanguageTag): Added.
(JSC::languageTagForLocaleID): Renamed from JSC::convertICULocaleToBCP47LanguageTag.
(JSC::intlAvailableLocales):
(JSC::intlCollatorAvailableLocales):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):

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

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::collatorStructure):
(JSC::JSGlobalObject::numberFormatStructure):
(JSC::JSGlobalObject::localeStructure):

  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Tools:

  • Scripts/run-jsc-stress-tests:

Add runIntlLocaleEnabled.

10:55 PM Changeset in webkit [261214] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening more GTK failures.

Unreviewed test gardening.

10:22 PM Changeset in webkit [261213] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

EventHandler::dispatchMouseEvent() cleanup
https://bugs.webkit.org/show_bug.cgi?id=211491

Reviewed by Zalan Bujtas.

Replace the last bool argument with FireMouseOverOut, and remove the "cancelable" argument that was unused.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::sendContextMenuEvent):

  • page/EventHandler.h:
9:37 PM Changeset in webkit [261212] by commit-queue@webkit.org
  • 9 edits in trunk

Fix setting host on URL when no port is specified
https://bugs.webkit.org/show_bug.cgi?id=211453

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

LayoutTests/imported/w3c:

Update improved test expectations.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Behavior matches Firefox and Chrome.

Test: web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):

LayoutTests:

Update improved test expectations.

  • fast/dom/DOMURL/set-href-attribute-host-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-host.html:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host.html:
8:53 PM Changeset in webkit [261211] by Simon Fraser
  • 13 edits in trunk

Minor EventHandler and test cleanup
https://bugs.webkit.org/show_bug.cgi?id=211475

Reviewed by Zalan Bujtas.

Source/WebCore:

Now that we assert that m_elementUnderMouse and m_lastElementUnderMouse are either null
or in this EventHandler's document, we can remove the document comparisons (but this code
is probably wrong as well).

Fix enclosingScrollableArea(), which would return any RenderLayer, but should only
return scrollable ones, and should only return scrollable RenderListBoxes.

  • page/EventHandler.cpp:

(WebCore::enclosingScrollableArea):
(WebCore::EventHandler::updateMouseEventTargetNode):

LayoutTests:

Clean up some tests that were mixing js-test and notifyDone().

  • fast/scrolling/scroll-animator-basic-events-expected.txt:
  • fast/scrolling/scroll-animator-basic-events.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html:
  • fast/scrolling/scroll-animator-select-list-events-expected.txt:
  • fast/scrolling/scroll-animator-select-list-events.html:
  • platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt:
  • platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt:
8:45 PM Changeset in webkit [261210] by ddkilzer@apple.com
  • 15 edits in trunk/Source

Fix deprecated NSGraphicsContext methods using 'graphicsPort'
<https://webkit.org/b/211481>

Reviewed by Darin Adler.

  • Replace uses of -graphicsPort with -CGContext.
  • Replace uses of -graphicsContextWithGraphicsPort:flipped: with -graphicsContextWithCGContext:flipped:.
  • Remove ALLOW_DEPRECATED_DECLARATIONS_{BEGIN,END} if possible.

Source/WebCore:

  • platform/cocoa/DragImageCocoa.mm:

(WebCore::createDragImageForLink):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayer::drawLayerContents):

  • platform/mac/ThemeMac.mm:

(WebCore::drawCellFocusRingWithFrameAtTime):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

Source/WebKit:

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::drawPDFPage):

Source/WebKitLegacy/mac:

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:]):

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(-[WebHostedNetscapePluginView drawRect:]):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
(-[WebNetscapePluginView sendDrawRectEvent:]):

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView drawRect:]):

  • WebView/WebFrame.mm:

(-[WebFrame _drawRect:contentsOnly:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
(-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
(-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]):

8:08 PM Changeset in webkit [261209] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[Quirk] Job listing page goes blank when scrolling on stackoverflow.com
https://bugs.webkit.org/show_bug.cgi?id=211480
<rdar://problem/62558405>

Reviewed by Wenson Hsieh.

Add the option of returning "use desktop web content" on any configuration when the host application asks for content recommendation.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):
(WebKit::desktopClassBrowsingRecommended):
(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

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

Crash in match_constness<WebCore::CSSValue, WebCore::CSSPrimitiveValue>::type& WTF::downcast<WebCore::CSSPrimitiveValue, WebCore::CSSValue> -- ASAN
https://bugs.webkit.org/show_bug.cgi?id=211479

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-05
Reviewed by Geoffrey Garen.

Added check to downcast CSSValue to CSSPrimitiveValue, only if valid CSSPrimitveValue is associated with the property.

New test would be added to Internal repository.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::pageBreakPropertyValue const):

5:11 PM Changeset in webkit [261207] by sbarati@apple.com
  • 7 edits in trunk

Don't use the DebugHeap for catalyst
https://bugs.webkit.org/show_bug.cgi?id=211471

Reviewed by Tim Horton.

Source/bmalloc:

  • bmalloc/BPlatform.h:
  • bmalloc/Environment.cpp:

(bmalloc::Environment::computeIsDebugHeapEnabled):

  • bmalloc/ProcessCheck.h:

(bmalloc::shouldProcessUnconditionallyUseBmalloc): Deleted.

  • bmalloc/ProcessCheck.mm:

Tools:

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

(TEST):

4:52 PM Changeset in webkit [261206] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under _LSSetApplicationInformationItem()
https://bugs.webkit.org/show_bug.cgi?id=211478
<rdar://problem/62201314>

Reviewed by Alex Christensen.

Given the crashes, I suspect it is not actually safe to call _LSSetApplicationInformationItem()
from a non main-thread like it was done in r238289. We still run the code asynchronously to
address the issue that r238289 was trying to fix but we now call _LSSetApplicationInformationItem()
on the main thread.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):
(WebKit::setProcessNameQueue): Deleted.

4:12 PM Changeset in webkit [261205] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/overflow/horizontal-scroll-after-back.html is a flaky timeout on macOS
https://bugs.webkit.org/show_bug.cgi?id=211473
<rdar://problem/61180247>

Reviewed by Darin Adler.

I made the following changes to the test:

  • Stop relying on 200ms timers and instead just a 0 timer after the load event.
  • Detect the case where we failed to enter page cache and fail nicely in this case instead of timing out.
  • Use Element.click() to trigger the navigation instead of dispatching a custom click event.

I have not been able to reproduce the flakiness locally. However, the changes in
this patch will at the very least make the test faster to run and cause the test
to fail instead of timing out if the issue is that we fail to enter the back /
forward cache, which would help us fix this.

  • fast/overflow/horizontal-scroll-after-back.html:
3:58 PM Changeset in webkit [261204] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r261113): [ Mac ] http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=211470

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:37 PM Changeset in webkit [261203] by Peng Liu
  • 21 edits
    2 adds in trunk

Update WebKitTestRunner to support running multiple video fullscreen and Picture-in-Picture tests simultaneously
https://bugs.webkit.org/show_bug.cgi?id=203723

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-presentation-mode.html

Add a flag MockVideoPresentationModeEnabled to "internals" for video fullscreen
and picture-in-picture tests.

  • page/ChromeClient.h:

(WebCore::ChromeClient::setMockVideoPresentationModeEnabled):

  • testing/Internals.cpp:

(WebCore::Internals::setMockVideoPresentationModeEnabled):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

When the flag MockVideoPresentationModeEnabled is true, the VideoFullscreenManagerProxy in the UI process
will mock the behavior of the VideoFullscreenInterface[Mac|AVKit].

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:

(WebKit::VideoFullscreenManagerProxy::setMockVideoPresentationModeEnabled):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::requestHideAndExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::applicationDidBecomeActive):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setHasVideo):
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
(WebKit::VideoFullscreenManagerProxy::enterFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::cleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
(WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::setMockVideoPresentationModeEnabled):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setMockVideoPresentationModeEnabled):
(WebKit::WebChromeClient::setUpPlaybackControlsManager):
(WebKit::WebChromeClient::clearPlaybackControlsManager):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/cocoa/VideoFullscreenManager.h:

Source/WebKitLegacy/mac:

When the flag MockVideoPresentationModeEnabled is true, WebView will ignore the requests to
WebVideoFullscreenController, so that the DumpRenderTree can run multiple video fullscreen
and picture-in-picture tests in parallel.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::setMockVideoPresentationModeEnabled):

  • WebView/WebView.mm:
  • WebView/WebViewData.h:
  • WebView/WebViewInternal.h:

LayoutTests:

  • media/video-presentation-mode-expected.txt: Added.
  • media/video-presentation-mode.html: Added.
3:31 PM Changeset in webkit [261202] by Darin Adler
  • 8 edits
    2 deletes in trunk/Source

Remove HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=211461

Reviewed by Eric Carlson.

Source/WebCore:

  • PlatformMac.cmake: Removed InbandTextTrackPrivateLegacyAVFObjC.mm.
  • SourcesCocoa.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto, also the header.
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Removed.
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm: Removed.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

Removed HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT). Also moved data member
initialization to the class definition, made more things private and final,
made outputObscuredDueToInsufficientExternalProtectionChanged unconditional,
changed friend class MediaPlayerFactoryAVFoundationObjC into member class
MediaPlayerPrivateAVFoundationObjC::Factory, removed unused removeSession function,
and tweaked conditionals.

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

Removed import of InbandTextTrackPrivateLegacyAVFObjC.h. Moved data member
initialization to the class definition. Moved include of BinarySemaphore here.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT.
3:22 PM Changeset in webkit [261201] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

clobberize validator should use branchTest8 directly.
https://bugs.webkit.org/show_bug.cgi?id=211469

Reviewed by Yusuke Suzuki.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

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

Web Inspector: REGRESSION(r239175): Source Maps: original source not shown when in nested folder
https://bugs.webkit.org/show_bug.cgi?id=198276

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.removeChildren):
r239175 made it so that WI.TreeOutline.prototype.removeChildren actually modified the
this.children member property array (which is not a getter), meaning that if a caller had
previously saved a reference to it before calling removeChildren(), the saved reference
would also be modified, preventing it from being of any real use afterwards. At that time,
WI.TreeOutline maintained an index value for each WI.TreeElement, which meant that it
was necessary to remove from this.children as otherwise Array.prototype.indexOf calls
would not be accurate. Since then, WI.TreeOutline has moved to using representedObject,
meaning it's no longer necessary to modify this.children.

  • UserInterface/Views/SourceCodeTreeElement.js:

(WI.SourceCodeTreeElement.prototype.onpopulate):
(WI.SourceCodeTreeElement.prototype.onpopulate.combineFolderChain): Deleted.
(WI.SourceCodeTreeElement.prototype.onpopulate.findAndCombineFolderChains): Deleted.
Drive-by: don't attempt to combine folder chains when "Group by Path" to match the rest of

the look/feel of the navigation sidebar.

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource.prototype.get sourceMapDisplaySubpath):
Drive-by: fix "null" being shown as the root subpath folder when using a local server.

2:15 PM Changeset in webkit [261199] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144

Reviewed by Darin Adler.

JSTests:

  • stress/bigint-asintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asIntN):

  • stress/bigint-asuintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asUintN):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements BigInt.asIntN[1] and BigInt.asUintN[2] features.
As the same to the other BigInt runtime C++ code, we port V8 code to JSC to implement both.

BigInt.asIntN is static_cast<intN_t>(BigInt value) and BigInt.asUintN is static_cast<uintN_t>(BigInt value).
They are getting slice of N bits from two's complement representation of the given BigInt. The difference between
asIntN and asUintN is asIntN renders MSB as a sign.

This patch is once rolled out due to ARM64_32 build failure, which is caused by the existing bug[3]. Relanding it
since it is now fixed.

[1]: https://tc39.es/ecma262/#sec-bigint.asintn
[2]: https://tc39.es/ecma262/#sec-bigint.asuintn
[3]: https://trac.webkit.org/changeset/261174/webkit

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

  • runtime/JSBigInt.cpp:

(JSC::zeroImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::asIntN):
(JSC::JSBigInt::asUintN):

  • runtime/JSBigInt.h:
2:01 PM Changeset in webkit [261198] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: the divider before the console message icons in the tab bar is shown even if there are no other icons
https://bugs.webkit.org/show_bug.cgi?id=211390

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WI._updateTabBarDividers):
(WI._updateTabBarDividers.isHidden): Added.
If the various WI.ButtonNavigationItem aren't actually created, then the optional chain
will return undefined instead of the desired true when checking whether it is hidden.
Effectively, a WI.ButtonNavigationItem that does not exist should be considered hidden.

2:00 PM Changeset in webkit [261197] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: Memory: the stacked area graph should not extend beyond the "stopping time" marker
https://bugs.webkit.org/show_bug.cgi?id=211327

Reviewed by Brian Burg.

  • UserInterface/Views/MemoryTimelineOverviewGraph.js:

(WI.MemoryTimelineOverviewGraph.prototype.layout):
(WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):

1:52 PM Changeset in webkit [261196] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Assert that EventHandler only tracks event target nodes in its own document
https://bugs.webkit.org/show_bug.cgi?id=211462

Reviewed by Zalan Bujtas.

EventHandler is per-Frame, so should not track Nodes from different documents. However, it did so
by mistake if an event handler moved a node between documents.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::targetNode const):

1:50 PM Changeset in webkit [261195] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed fix for MotionMark regression.

Revert minor part of r260017. Remove telemetry from IOKit filtering allow rules. This telemetry is causing higher
CPU usage on the system, and is not needed, since we have already confirmed these messages are being used.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:29 PM Changeset in webkit [261194] by dbates@webkit.org
  • 5 edits in trunk

Should show selection highlight during text interaction
https://bugs.webkit.org/show_bug.cgi?id=211362
<rdar://problem/59191873>

Reviewed by Wenson Hsieh.

Source/WebKit:

Break out text interaction tracking into its own ivar instead of using the
WebKit::InteractionIsHappening selection suppression reason so that I can
key off it to only disallow zooming to reveal the focused element during
a text interaction. The selection suppression machinery does more than this.
It also deactivates selection assistance, painting of highlights, etc, which
I don't want.

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

(-[WKContentView cleanUpInteraction]): Reset state.
(-[WKContentView becomeFirstResponderForWebView]): Activate selection assistant
during a text interaction if the selection assistant is not being suppressed.
(-[WKContentView _zoomToRevealFocusedElement]): Early return if called during a
text interaction. The function -_didFinishTextInteractionInTextInputContext will
trigger the zoom after the interaction completes.
(-[WKContentView _didCommitLoadForMainFrame]): Reset state.

(-[WKContentView _willBeginTextInteractionInTextInputContext:]):
(-[WKContentView _didFinishTextInteractionInTextInputContext:]):
Update state. While I am here, text interaction is considered a gesture so
also update _usingGestureForSelection. This means that the selection view
will be updated immediately on a selection change during a text interaction
instead of waiting until the next layer tree commit occurs.

Tools:

Add a test to ensure the selection view has rects after selecting
text during a text interaction. These rects represents the highlight.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [261193] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-timestamps.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209079

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-05
Reviewed by Antoine Quint.

Make the test asynchronous instead of using timers to fix its flakiness.

  • fast/animation/request-animation-frame-timestamps-expected.txt:
  • fast/animation/request-animation-frame-timestamps.html:
  • platform/mac/TestExpectations:
12:25 PM Changeset in webkit [261192] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Factor RenderLayerBacking::updateEventRegion skip conditions into a lambda
https://bugs.webkit.org/show_bug.cgi?id=211450

Reviewed by Simon Fraser.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

12:23 PM Changeset in webkit [261191] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

Update two svg tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=211331
<rdar://problem/61844271>

Unreviewed.

Apply https://github.com/web-platform-tests/wpt/commit/51151cf5bfc32adb8d96fca51a30c126d1e0200d
to our own tree.

  • platform/mac/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt:
  • web-platform-tests/svg/import/pservers-grad-08-b-manual.svg:
  • web-platform-tests/svg/import/text-altglyph-01-b-manual.svg:
12:21 PM Changeset in webkit [261190] by mmaxfield@apple.com
  • 6 edits
    1 delete in trunk/LayoutTests

Rebaseline fast/css/font-face-opentype.html
https://bugs.webkit.org/show_bug.cgi?id=211332
<rdar://problem/61833165>

Update for iOS. Also make the test insensitive to platform fallback fonts.

Unreviewed.

  • fast/css/font-face-opentype.html:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/fast/css/font-face-opentype-expected.txt:
  • platform/mac/fast/css/font-face-opentype-expected.txt:
12:12 PM Changeset in webkit [261189] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

webkitbot isn't responding properly in irc
https://bugs.webkit.org/show_bug.cgi?id=211458

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue.run_webkit_patch): Removed status-host paramter since old ews server has been decommissioned.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Updated unit-tests.
  • Scripts/webkitpy/tool/commands/queues_unittest.py:
11:59 AM Changeset in webkit [261188] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop code path using the legacy CFNetwork cookie change notification SPI
https://bugs.webkit.org/show_bug.cgi?id=211411
<rdar://problem/62869148>

Reviewed by John Wilander.

Source/WebCore:

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::supportsCookieChangeListenerAPI const):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:
11:56 AM Changeset in webkit [261187] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Check for app-bound domains should confirm WKAppBoundDomains key exists when checking for default app-bound protocols.
https://bugs.webkit.org/show_bug.cgi?id=211451
<rdar://problem/62715316

Reviewed by Brent Fulgham.

Checks for WKAppBoundDomains key before treating a protocol as
app-bound. This is a regression in expected behavior after making
In-App Browser privacy opt-in based on the presence of the key.

Also moves the check for special protocols inside of the completion handler for
ensureAppBoundDomains to make sure the check for the key has finished.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):
Added a comment to clarify why we need to check for both an empty
app-bound domains list and the presence of the key for testing
purposes.

11:44 AM Changeset in webkit [261186] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209491

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-05
Reviewed by Antoine Quint.

Make the test asynchronous instead of using timers to fix its flakiness.

  • fast/animation/request-animation-frame-cancel2.html:
  • platform/mac/TestExpectations:
11:42 AM Changeset in webkit [261185] by sbarati@apple.com
  • 7 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r261176.

It broke the build

Reverted changeset:

"[ANGLE] Declarations should match definitions"
https://bugs.webkit.org/show_bug.cgi?id=211410
https://trac.webkit.org/changeset/261176

11:34 AM Changeset in webkit [261184] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

EWS should skip Apple Win build and tests for patches that only change WebKit2 sources
https://bugs.webkit.org/show_bug.cgi?id=211210

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(WindowsFactory.init): enabled relevance checking for windows ews.

  • BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-test.
  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Defined relevance info for windows ews.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestCheckPatchRelevance.test_relevant_windows_wk1_patch): Added unit test.
(TestCheckPatchRelevance.test_queues_without_relevance_info): Fixed unit-test.

11:26 AM Changeset in webkit [261183] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this.InspectorAgent.initialized')
https://bugs.webkit.org/show_bug.cgi?id=211434

Reviewed by Joseph Pecoraro.

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.initialize):
Worker targets don't (and are not expected to) have an Inspector domain.

11:21 AM Changeset in webkit [261182] by Ross Kirsling
  • 14 edits in trunk

[Intl] Alphabetize extension keys and correctly mark const methods
https://bugs.webkit.org/show_bug.cgi?id=211359

Reviewed by Darin Adler.

JSTests:

  • stress/intl-collator.js:
  • stress/intl-datetimeformat.js:

Add tests.

Source/JavaScriptCore:

Two cleanup items for Intl classes:

  1. Ensure resolvedOptions().locale returns relevant extension keys in alphabetical order. ICU does this for us via Intl.getCanonicalLocales / Intl.*.supportedLocalesOf but not via ResolveLocale. However, we don't need to do any sorting in ResolveLocale; we can just pre-alphabetize relevantExtensionKeys. (See also https://github.com/tc39/ecma402/pull/433.)
  1. Ensure Intl classes are marking const methods correctly.
  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::sortLocaleData):
(JSC::IntlCollator::searchLocaleData):
(JSC::IntlCollator::compareStrings const): Add const specifier.
(JSC::IntlCollator::resolvedOptions const): Add const specifier.

  • runtime/IntlCollator.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::localeData):
(JSC::IntlDateTimeFormat::resolvedOptions const): Add const specifier.
(JSC::IntlDateTimeFormat::format const): Add const specifier.
(JSC::IntlDateTimeFormat::formatToParts const): Add const specifier.

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::format const): Add const specifier.
(JSC::IntlNumberFormat::resolvedOptions const): Add const specifier.
(JSC::IntlNumberFormat::formatToParts const): Add const specifier.

  • runtime/IntlNumberFormat.h:
  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions const): Add const specifier.
(JSC::IntlPluralRules::select const): Add const specifier.

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::resolvedOptions const): Add const specifier.
(JSC::IntlRelativeTimeFormat::formatInternal const): Add const specifier.
(JSC::IntlRelativeTimeFormat::format const): Add const specifier.
(JSC::IntlRelativeTimeFormat::formatToParts const): Add const specifier.

  • runtime/IntlRelativeTimeFormat.h:
11:17 AM Changeset in webkit [261181] by keith_miller@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add Clobberize validator for clobber top.
https://bugs.webkit.org/show_bug.cgi?id=209432

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::scratchRegister):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::scratchRegister):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGSpeculativeJIT64.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileBlock):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • jit/JITCodeInlines.h:

(JSC::JITCode::execute):

  • llint/LLIntThunks.h:

(JSC::vmEntryToWasm):

  • runtime/OptionsList.h:
  • runtime/VM.h:
10:10 AM Changeset in webkit [261180] by timothy_horton@apple.com
  • 5 edits in trunk/Source

"Essential Skeleton" does not respond to mouse events, only touch events
https://bugs.webkit.org/show_bug.cgi?id=211439
<rdar://problem/62694519>

Reviewed by Wenson Hsieh.

Source/WebCore:

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

(WebCore::IOSApplication::isEssentialSkeleton):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shouldUseMouseGestureRecognizer]):
Add a quirk.

10:08 AM Changeset in webkit [261179] by mark.lam@apple.com
  • 13 edits
    2 adds in trunk

Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
https://bugs.webkit.org/show_bug.cgi?id=211328
<rdar://problem/62755865>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/CPU.h:

Source/WTF:

  1. Moved the definition of CPURegister and UCPURegister down into WTF. Added CPU(REGISTER64) and CPU(REGISTER32) for determining what size a CPU general purpose register is.
  1. Updated Bitmap so that it will automatically choose the minimal required word size for the number of bits it needs to store. This means the Bitmap can automatically choose a WordType from uint8_t up to UCPURegister. Previously, the WordType is always uint32_t by default.

This should improve perf with use of Bitmap on 64-bit platforms. The size
optimization is necessary to prevent bloat on 64-bit platforms which would have
resulted if we simply set the default to always be UCPURegister.

  1. Added a check in findRunOfZeros() for handling the edge case where the requested runLength exceeds the bitmapSize.
  1. Fixed a bug in count() that was unnecessarily casting the bits to unsigned instead of just using the Bitmap WordType. As a result, when using a WordType of uint64_t, it was discarding bits from the count.
  1. Fixed invert() to leave the bits beyond bitmapSize untouched. Fixed isFull() to ignore the bits beyond bitmapSize.

By fixing invert() to leave those bits as 0, isEmpty() and hash() will
continue to work. Otherwise, inverting those bits will cause isEmpty() to
always fail, and hash()'s result may be different for the same set of bit
values within bitmapSize.

isFull(), on the other hand, checks for set bits in the words. Since there
may be 0 valued bits beyond bitmapSize, isFull() needs to be fixed to ignore
those.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bitmap.h:

(WTF::WordType>::invert):
(WTF::WordType>::findRunOfZeros const):
(WTF::WordType>::count const):
(WTF::WordType>::isFull const):

  • wtf/CMakeLists.txt:
  • wtf/PlatformCPU.h:
  • wtf/PlatformUse.h:
  • wtf/StdIntExtras.h: Copied from Source/WTF/wtf/StdIntExtras.h.

Tools:

Added API tests for WTF::Bitmap to make sure that Bitmap is behaving correctly.
Since Bitmap is used in critical infrastructure like the GC, it is important to
ensure that there are no latent bugs.

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

(TestWebKitAPI::countBits):
(TestWebKitAPI::testBitmapSize):
(TestWebKitAPI::testBitmapConstructedEmpty):
(TestWebKitAPI::testBitmapSetGet):
(TestWebKitAPI::testBitmapTestAndSet):
(TestWebKitAPI::testBitmapTestAndClear):
(TestWebKitAPI::testBitmapConcurrentTestAndSet):
(TestWebKitAPI::testBitmapConcurrentTestAndClear):
(TestWebKitAPI::testBitmapClear):
(TestWebKitAPI::testBitmapClearAll):
(TestWebKitAPI::testBitmapInvert):
(TestWebKitAPI::testBitmapFindRunOfZeros):
(TestWebKitAPI::testBitmapCount):
(TestWebKitAPI::testBitmapIsEmpty):
(TestWebKitAPI::testBitmapIsFull):
(TestWebKitAPI::testBitmapMerge):
(TestWebKitAPI::testBitmapFilter):
(TestWebKitAPI::testBitmapExclude):
(TestWebKitAPI::testBitmapConcurrentFilter):
(TestWebKitAPI::testBitmapSubsumes):
(TestWebKitAPI::testBitmapForEachSetBit):
(TestWebKitAPI::testBitmapFindBit):
(TestWebKitAPI::testBitmapIteration):
(TestWebKitAPI::testBitmapMergeAndClear):
(TestWebKitAPI::testBitmapSetAndClear):
(TestWebKitAPI::testBitmapOperatorEqual):
(TestWebKitAPI::testBitmapOperatorNotEqual):
(TestWebKitAPI::testBitmapHash):
(TestWebKitAPI::TEST):

LayoutTests:

editing/undo-manager/undo-manager-delete-stale-undo-items.html exposed a bug in
this patch. However, when a failure occurs, this test runs perpetually until it
times out. There's no need to do this. After a finite number of GC cycles,
unreachable objects should be collected. This is especially so because
GCController.collect() does a synchronous full GC.

Added a cap of 10 GC tries, and fail out if the test does not see the expected
result. This allows the test to fail fast and avoid the costly time out.

  • editing/undo-manager/undo-manager-delete-stale-undo-items.html:
9:52 AM Changeset in webkit [261178] by commit-queue@webkit.org
  • 5 edits in trunk

Compile GPUProcess in WPE port as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=211442

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-05-05
Reviewed by Don Olmstead.

.:

Enable GPUProcess in WPE.

  • Source/cmake/OptionsWPE.cmake: enable GPU Process as

experimental feature

Source/WebKit:

Enable GPU Process in WPE.

This is compilation only. No new tests required.

  • PlatformWPE.cmake: Add Platform/generic include directory.
  • SourcesWPE.txt: Add related source files.
9:51 AM Changeset in webkit [261177] by Megan Gardner
  • 5 edits
    3 adds in trunk

Style is not applied when changed on the first line of a new mail message.
https://bugs.webkit.org/show_bug.cgi?id=211200
<rdar://problem/62087514>

Reviewed by Darin Adler.

Source/WebCore:

After r257487 when we resign first responder, we immediatly
update activity state. This means that if we resign first responder, and then
become first responder, we are clearing the selection if the caret is at the beginning
of the document, due to a check in setSelectionFromNone. This check was originally added
in 2006 because it happened to fix <rdar://problem/4483145>. Removing this check and
merging the iOS and Mac logic.

Test: editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionFromNone):

LayoutTests:

  • editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder-expected.txt: Added.
  • editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder.html: Added.
9:38 AM Changeset in webkit [261176] by Jonathan Bedard
  • 7 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Declarations should match definitions
https://bugs.webkit.org/show_bug.cgi?id=211410

Reviewed by Alex Christensen.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:

(rx::DisplayEAGL::generateConfigs): Function is not defined for for MacCatalyst.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm:
9:28 AM Changeset in webkit [261175] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

iterator_open should remap the symbolIterator argument correctly when inlined.
https://bugs.webkit.org/show_bug.cgi?id=211308
<rdar://problem/62287877>

Reviewed by Mark Lam.

JSTests:

  • stress/inlining-for-of-should-validate.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

  • dfg/DFGByteCodeParser.cpp:

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

9:24 AM Changeset in webkit [261174] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JSBigInt::maxLengthBits and JSBigInt::maxLength are wrong
https://bugs.webkit.org/show_bug.cgi?id=211445

Reviewed by Mark Lam.

JSBigInt::maxLengthBits and JSBigInt::maxLength definitions are wrong.

  1. We are defining maxLength and maxLengthBits as an unrelated value to each other. This is wrong. maxLength should be defined as maxLengthBits / (sizeof(Digit) * bitsPerByte).
  2. We use sizeof(void*) and assume that sizeof(Digit) == sizeof(void*). This is wrong in ARM64_32 environment where Digit size is sizeof(uint64_t) while the pointer size is sizeof(uint32_t). This causes compile errors in ARM64_32 when the code is using these values with static_assert.
  • runtime/JSBigInt.h:
9:09 AM Changeset in webkit [261173] by commit-queue@webkit.org
  • 4 edits in trunk

A URL cannot have a username/password/port if its host is null
https://bugs.webkit.org/show_bug.cgi?id=211358

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

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

A URL cannot have a username/password/port if its host is null [1], so
adjust URL.cpp accordingly.

Behavior matches Chrome and Firefox.

[1] https://url.spec.whatwg.org/#cannot-have-a-username-password-port

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setUsername):
(WebCore::URLDecomposition::setPassword):
(WebCore::URLDecomposition::setPort):

9:05 AM Changeset in webkit [261172] by youenn@apple.com
  • 4 edits
    2 adds in trunk

MediaPlayerPrivateMediaStreamAVFObjC should unobserve the tracks from its audio and video track sets
https://bugs.webkit.org/show_bug.cgi?id=211444
<rdar://problem/62886221>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-removeTrack-while-playing.html

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
We keep maps of audio and video tracks we are observing.
Use these two maps to properly unobserve all tracks at destruction time.
While this is not strictly needed since we are using weak pointers, this helps keeping the code healthy.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver):
Add a debug ASSERT so that we ensure add/remove observers is done properly.

LayoutTests:

  • fast/mediastream/MediaStream-removeTrack-while-playing-expected.txt: Added.
  • fast/mediastream/MediaStream-removeTrack-while-playing.html: Added.
9:03 AM Changeset in webkit [261171] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Unreviewed, reverting r261130.

Caused crashes on some of our bots

Reverted changeset:

"Drop code path using the legacy CFNetwork cookie change
notification SPI"
https://bugs.webkit.org/show_bug.cgi?id=211411
https://trac.webkit.org/changeset/261130

8:58 AM Changeset in webkit [261170] by Darin Adler
  • 17 edits in trunk/Source

Remove now-unneeded USE(COREMEDIA) and USE(VIDEOTOOLBOX)
https://bugs.webkit.org/show_bug.cgi?id=211437

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/cocoa/VideoToolboxSoftLink.cpp: Remove USE(VIDEOTOOLBOX).
  • platform/cocoa/VideoToolboxSoftLink.h: Ditto.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): Ditto.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h: Ditto. Also remove

#pragma once since this header is only used with #import, not #include.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: Ditto.
  • platform/graphics/cv/ImageRotationSessionVT.h: Ditto.
  • platform/graphics/cv/ImageRotationSessionVT.mm: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.h: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.mm: Ditto.
  • platform/graphics/cv/PixelBufferConformerCV.cpp:

(WebCore::PixelBufferConformerCV::PixelBufferConformerCV): Ditto.
(WebCore::PixelBufferConformerCV::convert): Ditto.
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer): Ditto.

  • platform/graphics/cv/PixelBufferConformerCV.h: Ditto.

Source/WebCore/PAL:

  • pal/system/mac/ClockCM.h: Remove USE(COREMEDIA). Also made everything

private since nothing includes this header. Removed everything unused.

  • pal/system/mac/ClockCM.mm: Remove USE(COREMEDIA). Put everything inside

the PAL namespace.
(PAL::ClockCM::ClockCM): Merged in the second constructor and initializeWithTimingSource.
(PAL::ClockCM::ClockCM): Deleted.
(PAL::ClockCM::initializeWithTimingSource): Deleted.
(PAL::ClockCM::setCurrentTime): Tweaked.
(PAL::ClockCM::currentTime const): Tweaked.
(PAL::ClockCM::setCurrentMediaTime): Deleted.
(PAL::ClockCM::currentMediaTime const): Deleted.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_COREMEDIA or USE_VIDEOTOOLBOX.
7:50 AM Changeset in webkit [261169] by youenn@apple.com
  • 19 edits in trunk/Source

Remove LegacySchemeRegistry::canServiceWorkersHandleURLScheme
https://bugs.webkit.org/show_bug.cgi?id=211170

Reviewed by Alex Christensen.

Source/WebCore:

Since we no longer use custom service worker schemes in API tests,
we no longer need custom schemes in web process, given they are not supported in network process anyway.
Remove related code.

  • Modules/cache/DOMWindowCaches.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::hasServiceWorkerScheme const): Deleted.

  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):
(WebCore::DocumentLoader::commitData):

  • page/NavigatorServiceWorker.idl:
  • platform/LegacySchemeRegistry.cpp:

(WebCore::serviceWorkerSchemes): Deleted.
(WebCore::LegacySchemeRegistry::registerURLSchemeServiceWorkersCanHandle): Deleted.
(WebCore::LegacySchemeRegistry::canServiceWorkersHandleURLScheme): Deleted.
(WebCore::LegacySchemeRegistry::isServiceWorkerContainerCustomScheme): Deleted.

  • platform/LegacySchemeRegistry.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):

Source/WebKit:

Remove unused parameters since they are no longer being set in UIProcess.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

7:43 AM Changeset in webkit [261168] by Darin Adler
  • 8 edits in trunk/Source

Remove now-uneeded HAVE macros related to PDF
https://bugs.webkit.org/show_bug.cgi?id=211435

Reviewed by Anders Carlsson.

Source/WebKit:

  • Platform/spi/ios/PDFKitSPI.h: Removed HAVE(PDFHOSTVIEWCONTROLLER_SNAPSHOTTING).
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_initWithFrame:webView:mimeType:]): Removed
HAVE(PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR).
(+[WKPDFView web_requiresCustomSnapshotting]): Removed HAVE(PDFHOSTVIEWCONTROLLER_SNAPSHOTTING).
(-[WKPDFView web_snapshotRectInContentViewCoordinates:snapshotWidth:completionHandler:]):
Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebFrameView.mm:

(+[WebFrameView _viewTypesAllowImageTypeOmission:]): Removed HAVE(LEGACY_PDF_SUPPORT).

  • WebView/WebView.mm:

(+[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Remove HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING,

always set for iOS, HAVE_LEGACY_PDF_SUPPORT, always set for all Cocoa
platforms, and HAVE_PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR,
always set for iOS family platforms.

7:40 AM Changeset in webkit [261167] by ysuzuki@apple.com
  • 6 edits
    2 deletes in trunk

Unreviewed, reverting r261156.

Break ARM64_32 build due to existing bug

Reverted changeset:

"[JSC] Implement BigInt.asIntN and BigInt.asUintN"
https://bugs.webkit.org/show_bug.cgi?id=181144
https://trac.webkit.org/changeset/261156

7:39 AM Changeset in webkit [261166] by Darin Adler
  • 7 edits in trunk/Source

Remove now-unneeded HAVE(DISALLOWABLE_USER_INSTALLED_FONTS)
https://bugs.webkit.org/show_bug.cgi?id=211428

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/graphics/Font.h: Removed isUserInstalledFont, only used for

an assertion that I took the liberty of removing.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForSystemFallback): Removed an
assertion since it was the only reason to introduce the concept of a
user-installed font to the cross-platform code. The assertion is a bit
of a self-check that doesn't seem critical.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::singleton): Deleted.
(WebCore::FontDatabase::singletonAllowingUserInstalledFonts): Remove
HAVE(DISALLOWABLE_USER_INSTALLED_FONTS).
(WebCore::FontDatabase::singletonDisallowingUserInstalledFonts): Ditto.
(WebCore::isUserInstalledFont): Ditto.
(WebCore::addAttributesForInstalledFonts): Ditto.
(WebCore::isFontMatchingUserInstalledFontFallback): Ditto.
(WebCore::addAttributesForWebFonts): Ditto.
(WebCore::installedFontMandatoryAttributes): Ditto.

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::isUserInstalledFont const): Deleted.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_DISALLOWABLE_USER_INSTALLED_FONTS.
7:36 AM Changeset in webkit [261165] by aboya@igalia.com
  • 4 edits in trunk

[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:
6:48 AM Changeset in webkit [261164] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Rename computedContentHeight/Width to computedHeight/Width
https://bugs.webkit.org/show_bug.cgi?id=211432

Reviewed by Darin Adler.

These functions used to return the computed content box height/width but with box-sizing
support the name is not correct anymore.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedWidth const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedContentHeight const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedContentWidth const): Deleted.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):
(WebCore::Layout::TableFormattingContext::Geometry::computedColumnWidth const):

6:40 AM Changeset in webkit [261163] by youenn@apple.com
  • 14 edits
    1 move
    1 add
    2 deletes in trunk/Source/WebKit

Receiving WebRTC network packets should not go through the main thread
https://bugs.webkit.org/show_bug.cgi?id=211290

Reviewed by Alex Christensen.

Instead of going to main thread before going to rtc network thread, we register a message receiver and dispatch directly to rtc network thread.
This ensures rtc packets are not blocked if main thread is busy.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::signalReadPacket):
(WebKit::LibWebRTCSocketClient::signalSentPacket):
(WebKit::LibWebRTCSocketClient::signalAddressReady):
(WebKit::LibWebRTCSocketClient::signalConnect):
(WebKit::LibWebRTCSocketClient::signalClose):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::closeListeningSockets):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):
(WebKit::NetworkProcessConnection::didReceiveMessage):

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

(WebKit::LibWebRTCNetwork::connection):
(WebKit::LibWebRTCNetwork::~LibWebRTCNetwork):
(WebKit::LibWebRTCNetwork::networkProcessCrashed):
(WebKit::LibWebRTCNetwork::setConnection):
(WebKit::LibWebRTCNetwork::dispatchToThread):
(WebKit::LibWebRTCNetwork::signalAddressReady):
(WebKit::LibWebRTCNetwork::signalReadPacket):
(WebKit::LibWebRTCNetwork::signalSentPacket):
(WebKit::LibWebRTCNetwork::signalConnect):
(WebKit::LibWebRTCNetwork::signalClose):
(WebKit::LibWebRTCNetwork::signalNewConnection):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.messages.in: Added.
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
  • WebProcess/Network/webrtc/WebRTCSocket.cpp: Removed.
  • WebProcess/Network/webrtc/WebRTCSocket.h: Removed.
6:01 AM Changeset in webkit [261162] by graouts@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r260989.

Mistakenly identified cause of MotionMark 1.1 performance regression

Reverted changeset:

"REGRESSION: MotionMark 1.1 regressed due to r260016"
https://bugs.webkit.org/show_bug.cgi?id=211280
https://trac.webkit.org/changeset/260989

5:37 AM Changeset in webkit [261161] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK][WPE][Fetch API] Stale-while-revalidate is not enabled
https://bugs.webkit.org/show_bug.cgi?id=206416

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-05
Reviewed by Carlos Alberto Lopez Perez.

.:

Enable s-w-r for GTK/WPE.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

LayoutTests:

Unskip s-w-r tests for GTK/WPE.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:49 AM Changeset in webkit [261160] by cturner@igalia.com
  • 6 edits
    12 deletes in trunk/LayoutTests

[EME] media/encrypted-media/encrypted-media-can-play-type.html is outdated
https://bugs.webkit.org/show_bug.cgi?id=154848

Reviewed by Xabier Rodriguez-Calvar.

Remove out-of-date EME tests and expectations.

  • gpu-process/TestExpectations:
  • media/encrypted-media/encrypted-media-events-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-events.html: Removed.
  • media/encrypted-media/encrypted-media-not-loaded-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-not-loaded.html: Removed.
  • media/encrypted-media/encrypted-media-syntax-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-syntax.html: Removed.
  • media/encrypted-media/encrypted-media-v2-events-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-v2-events.html: Removed.
  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-v2-syntax.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
  • platform/wpe/TestExpectations:
4:33 AM Changeset in webkit [261159] by Alexey Shvayka
  • 53 edits
    1 delete in trunk

Object.prototype.toString is not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=199138

Reviewed by Darin Adler and Keith Miller.

JSTests:

  • ChakraCore.yaml: Skip a test as global now has @@toStringTag.
  • ChakraCore/test/LetConst/delete.baseline: Removed.
  • stress/internal-promise-constructor-not-confusing.js: Use @isPromise.
  • stress/object-get-own-property-symbols.js: Adjust test as global now has @@toStringTag.
  • test262/expectations.yaml: Mark 6 test cases as passing.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any.worker-expected.txt:

Source/JavaScriptCore:

Before ES6, Object.prototype.toString relied only on internal Class? slot. Starting with ES6,
Object.prototype.toString checks for a handful of internal slots, mimicing Class?, to ensure
backwards compatibility for pre-ES6 instances. Newly-added built-ins provide @@toStringTag for
the method to use.

Before this change, Object.prototype.toString in JSC relied on className() a.k.a Class? for
all instances. For (almost all) new built-ins, it was overriden by toStringName() returning
"Object", while @@toStringTag was set to correct value. This is quite an error-prone approach
and observable spec discrepancy if @@toStringTag is deleted or set to a non-string.

This change eliminates the above-mentioned discrepancy and fixes Object.prototype.toString
to return "[object Function]" for callable Proxy objects, aligning JSC with the spec [1], V8,
and SpiderMonkey.

For Object.prototype.toString to work through DebuggerScope and JSProxy, we perform all checks
in JSObject::toStringName(). Given that isArray() may throw a TypeError [2], we invoke
toStringName() before @@toStringTag lookup to accomodate revoked Proxy case.

Also, this patch defines @@toStringTag for WebAssembly namespace object (to match Chrome),
JSC shell, and ConsoleObject.

[1]: https://tc39.es/ecma262/#sec-object.prototype.tostring
[2]: https://tc39.es/ecma262/#sec-isarray (step 3.a)

  • jsc.cpp:
  • runtime/BigIntObject.cpp:

(JSC::BigIntObject::toStringName): Deleted.

  • runtime/BigIntObject.h:
  • runtime/BooleanObject.cpp:

(JSC::BooleanObject::toStringName):

  • runtime/BooleanObject.h:
  • runtime/ConsoleObject.cpp:

(JSC::ConsoleObject::finishCreation):

  • runtime/DateInstance.cpp:

(JSC::DateInstance::toStringName):

  • runtime/DateInstance.h:
  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::toStringName):

  • runtime/ErrorInstance.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::toStringName): Deleted.

  • runtime/JSArrayBufferView.h:
  • runtime/JSMap.cpp:

(JSC::JSMap::toStringName): Deleted.

  • runtime/JSMap.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::toStringName):

  • runtime/JSSet.cpp:

(JSC::JSSet::toStringName): Deleted.

  • runtime/JSSet.h:
  • runtime/JSWeakMap.cpp:

(JSC::JSWeakMap::toStringName): Deleted.

  • runtime/JSWeakMap.h:
  • runtime/JSWeakObjectRef.cpp:

(JSC::JSWeakObjectRef::toStringName): Deleted.

  • runtime/JSWeakObjectRef.h:
  • runtime/JSWeakSet.cpp:

(JSC::JSWeakSet::toStringName): Deleted.

  • runtime/JSWeakSet.h:
  • runtime/NumberObject.cpp:

(JSC::NumberObject::toStringName):

  • runtime/NumberObject.h:
  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::toStringName): Deleted.

  • runtime/ProxyObject.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::toStringName):

  • runtime/RegExpObject.h:
  • runtime/StringObject.cpp:

(JSC::StringObject::toStringName):

  • runtime/StringObject.h:
  • runtime/SymbolObject.cpp:

(JSC::SymbolObject::toStringName): Deleted.

  • runtime/SymbolObject.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):

Source/WebCore:

This patch defines @@toStringTag symbols for all WebIDL prototypes, including
interfaces that are not exposed, as required by the spec [1].

With updated JSObject::toStringName() and @@toStringTag symbols added in r260992,
className() and toStringName() methods of JSDOMConstructorBase can be safely removed.

[1]: https://heycam.github.io/webidl/#dfn-class-string

Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.js

imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any.js

  • bindings/js/JSDOMConstructorBase.cpp:

(WebCore::JSDOMConstructorBase::className): Deleted.
(WebCore::JSDOMConstructorBase::toStringName): Deleted.

  • bindings/js/JSDOMConstructorBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GeneratePrototypeDeclaration):

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

(WebCore::JSTestGlobalObjectPrototype::finishCreation):

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
2:45 AM Changeset in webkit [261158] by Diego Pino Garcia
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[GTK] Gardening, update baselines after r260889
https://bugs.webkit.org/show_bug.cgi?id=211440

Unreviewed gardening.

  • platform/gtk/fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/webgl-depth-texture-expected.txt: Added.
  • platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/animate-elem-77-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/text-tspan-01-b-manual-expected.txt:
  • platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Removed.
2:03 AM Changeset in webkit [261157] by timothy_horton@apple.com
  • 5 edits in trunk

Excessive error logging from daemons trying to use WebKit, under -[UIDevice currentDevice]
https://bugs.webkit.org/show_bug.cgi?id=211397
<rdar://problem/61635403>

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/UserInterfaceIdiom.mm:

(WebKit::userInterfaceIdiomIsPad):
Adjust userInterfaceIdiomIsPad so that in daemons, it consults only MobileGestalt,
which returns the actual hardware model, and does not try to use UIDevice.
UIDevice is more accurate for applications because it will report that
the device is an iPhone when called inside an iPhone app running on iPad,
but it cannot be used in daemons that do not have a UIApplication.

For the behaviors we gate on this bit, it makes sense to use iPhone
behaviors on iPad in the iPhone app jail, so we continue using
UIDevice if possible.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Make use of the new mechanism instead of going straight to MobileGestalt,
for the aforementioned reasons.

Tools:

  • TestWebKitAPI/ios/UserInterfaceSwizzler.h:

We need a UIApplication or WebKit won't look at UIDevice.

2:01 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
1:30 AM Changeset in webkit [261156] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144

Reviewed by Darin Adler.

JSTests:

  • stress/bigint-asintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asIntN):

  • stress/bigint-asuintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asUintN):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements BigInt.asIntN[1] and BigInt.asUintN[2] features.
As the same to the other BigInt runtime C++ code, we port V8 code to JSC to implement both.

BigInt.asIntN is static_cast<intN_t>(BigInt value) and BigInt.asUintN is static_cast<uintN_t>(BigInt value).
They are getting slice of N bits from two's complement representation of the given BigInt. The difference between
asIntN and asUintN is asIntN renders MSB as a sign.

[1]: https://tc39.es/ecma262/#sec-bigint.asintn
[2]: https://tc39.es/ecma262/#sec-bigint.asuintn

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::zeroImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::asIntN):
(JSC::JSBigInt::asUintN):

  • runtime/JSBigInt.h:
1:19 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
1:17 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)

May 4, 2020:

11:51 PM Changeset in webkit [261155] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Relax WKRemoteObjectRegistry signature validation for bool-equivalent types
https://bugs.webkit.org/show_bug.cgi?id=211419

Reviewed by Saam Barati.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(blockSignaturesAreCompatible):
(replyBlockSignature):
(-[_WKRemoteObjectRegistry _invokeMethod:]):
(validateReplyBlockSignature): Deleted.
Relax reply block signature validation slightly, considering signed char and BOOL,
which are equivalent and sometimes substituted for each other, to be equal.

This is still stricter than NSXPC's validation, but this is one of the
exceptions that they make.

11:27 PM Changeset in webkit [261154] by mmaxfield@apple.com
  • 4 edits
    1 copy
    1 delete in trunk/LayoutTests

Update svg/batik/text/xmlSpace.svg to yield consistent text metrics
https://bugs.webkit.org/show_bug.cgi?id=211005
<rdar://problem/62312187>

Reviewed by Darin Adler.

The test is rendering a bunch of characters without using a specified font.
This means that Core Text is picking an arbitrary font. However, the
-expected.txt file is measuring exact pixel widths. The solution is to just
give the test an explicit fallback font.

  • platform/ios/TestExpectations:
  • platform/ios/svg/batik/text/xmlSpace-expected.txt:
  • platform/mac/svg/batik/text/xmlSpace-expected.txt:
  • svg/batik/text/xmlSpace-expected.txt: Removed. Platform-specific metrics

shouldn't live outside the platform/ directory.

  • svg/batik/text/xmlSpace.svg:
10:51 PM Changeset in webkit [261153] by Darin Adler
  • 37 edits
    1 delete in trunk

[Mac] Remove MAC_OS_X_VERSION_MIN_REQUIRED checks for versions older than 10.14
https://bugs.webkit.org/show_bug.cgi?id=211420

Reviewed by Alex Christensen.

Source/WebCore:

  • editing/cocoa/DataDetection.mm:

(WebCore::detectItem): Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

  • editing/cocoa/HTMLConverter.mm:

(_WebMessageDocumentClass): Ditto.

  • platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
  • platform/mac/WebCoreFullScreenPlaceholderView.mm:

(-[WebCoreFullScreenPlaceholderView initWithFrame:]): Ditto.

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::nsSameSitePolicy): Ditto.
(WebCore::Cookie::operator NSHTTPCookie * _Nullable const): Ditto.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::cookiesForURL): Ditto.
(WebCore::NetworkStorageSession::setHTTPCookiesForURL const): Ditto.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest): Ditto.
(WebCore::siteForCookies): Ditto.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Ditto.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintTextField): Ditto.

  • testing/Internals.h: Ditto.

Source/WebCore/PAL:

  • pal/spi/cocoa/NSColorSPI.h: Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • pal/spi/cocoa/QuartzCoreSPI.h: Ditto.
  • pal/spi/mac/DataDetectorsSPI.h: Ditto.
  • pal/spi/mac/NSApplicationSPI.h: Ditto.

Source/WebKit:

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume): Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Ditto.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::platformInitializePluginProcess): Ditto.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain): Ditto.

  • UIProcess/mac/ServicesController.mm:

(WebKit::hasCompatibleServicesForItems): Ditto.

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:]): Ditto.
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:]): Deleted.
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inGraphicsContext:shouldChangeFontReferenceColor:]): Deleted.

  • WebView/WebTextCompletionController.mm:

(-[WebTextCompletionController _buildUI]): Remove some code only compiled with
MAC_OS_X_VERSION_MIN_REQUIRED < 101400.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj: Removed DeprecatedSymbolsUsedBySafari.mm.
  • wtf/PlatformEnableCocoa.h: Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • wtf/PlatformHave.h: Ditto. This leaves behind some cases of
"PLATFORM(MAC) and tvOS too, eventually. Also "PLATFORM(MAC)
PLATFORM(IOS)" that should probably be turned on for watchOS
PLATFORM(IOS) PLATFORM(MACCATALYST)".
  • wtf/PlatformMac.cmake: Removed DeprecatedSymbolsUsedBySafari.mm.
  • wtf/PlatformUse.h: Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm: Removed.
  • wtf/spi/darwin/ProcessMemoryFootprint.h: Removed

MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp: Remove

MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

Removed code disabling this test for MAC_OS_X_VERSION_MIN_REQUIRED < 101400.

  • TestWebKitAPI/config.h: Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::installFakeHelvetica): Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

10:47 PM Changeset in webkit [261152] by Darin Adler
  • 5 edits in trunk/Source

Remove now-unneeded HAVE(SANDBOX_ISSUE_MACH/READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
https://bugs.webkit.org/show_bug.cgi?id=211427

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::sandboxExtensionForType): Remove #if HAVE.

Source/WTF:

  • wtf/PlatformHave.h: Remove both macros mentioned in the title above.
  • wtf/spi/darwin/SandboxSPI.h: Remove #if HAVE.
10:40 PM Changeset in webkit [261151] by Darin Adler
  • 4 edits in trunk/Source

Remove now-unneeded HAVE(AUTHORIZATION_STATUS_FOR_MEDIA_TYPE)
https://bugs.webkit.org/show_bug.cgi?id=211426

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
Remove HAVE(AUTHORIZATION_STATUS_FOR_MEDIA_TYPE).

Source/WTF:

  • wtf/PlatformHave.h: Removed code to set HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE,

which was doing so on all Cocoa platforms.

10:35 PM Changeset in webkit [261150] by Darin Adler
  • 6 edits in trunk/Source

Remove now-unneeded HAVE(ACCESSIBILITY_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=211425

Reviewed by Alex Christensen.

Source/WebCore/PAL:

  • pal/spi/cocoa/AccessibilitySupportSPI.h: Remove HAVE(ACCESSIBILITY_SUPPORT).

Source/WebKit:

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h: Remove HAVE(ACCESSIBILITY_SUPPORT)

and now-unnecessary C include guards.

Source/WTF:

  • wtf/PlatformHave.h: Don't set HAVE_ACCESSIBILITY_SUPPORT. It was on for all

Cocoa platform builds.

10:20 PM Changeset in webkit [261149] by Darin Adler
  • 8 edits in trunk

Remove now-unneeded HAVE(NETWORK_EXTENSION)
https://bugs.webkit.org/show_bug.cgi?id=211424

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::types): Remove check of HAVE(NETWORK_EXTENSION),
not needed because ENABLE(CONTENT_FILTER) is only done on Cocoa platforms,
and HAVE(NETWORK_EXTENSION) is true for all of those.

  • platform/cocoa/NetworkExtensionContentFilter.mm: Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_NETWORK_EXTENSION.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]):
Remove check of HAVE(NETWORK_EXTENSION).

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm:

(-[ContentFilteringPlugIn checkIfPlatformFrameworksAreLoaded:]): Ditto.

10:10 PM Changeset in webkit [261148] by Darin Adler
  • 6 edits in trunk/Source

Remove now-unneeded HAVE(SEC_TRUST_EVALUATE_WITH_ERROR)
https://bugs.webkit.org/show_bug.cgi?id=211429

Reviewed by Alex Christensen.

Source/WebCore:

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::platformCertificateInfo const):
Remove HAVE(SEC_TRUST_EVALUATE_WITH_ERROR).

Source/WebKit:

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _EVOrganizationName]):
Remove HAVE(SEC_TRUST_EVALUATE_WITH_ERROR).

Source/WTF:

  • wtf/PlatformHave.h: Don't set HAVE_SEC_TRUST_EVALUATE_WITH_ERROR.
10:05 PM Changeset in webkit [261147] by ysuzuki@apple.com
  • 13 edits
    4 adds in trunk

[JSC] DFG NotCellUse is used without considering about BigInt32
https://bugs.webkit.org/show_bug.cgi?id=211395

Reviewed by Saam Barati.

JSTests:

  • stress/non-cell-nor-bigint-should-be-emitted-for-to-number-target-if-bigint-appears.js: Added.

(shouldThrow):
(test):
(i.shouldThrow):

  • stress/non-cell-nor-bigint-should-reject-bigint.js: Added.

(shouldBe):
(test):

  • stress/should-not-emit-double-rep-for-bigint.js: Added.

(foo):

  • stress/urshift-value-to-int32-should-reject-bigint.js: Added.

(shouldThrow):
(test):
(i.shouldThrow):

Source/JavaScriptCore:

When we see CompareXXX(BigInt32, Double), we are emitting CompareXXX(DoubleRep(BigInt:NotCellUse), Double). But this has two problems.

  1. We should emit CompareXXX(UntypedUse, UntypedUse) in this case.
  2. DoubleRep(NotCellUse) does not support converting BigInt32 to double. Since DoubleRep's semantics is for ToNumber, it should not accept BigInt32 since it should throw an error. However, DoubleRep currently assumes that NotCellUse value can be converted to double without any errors.

To keep DoubleRep's semantics ToNumber, we replace NotCellUse with NotCellNorBigIntUse, which rejects BigInt32. This patch also uses NotCellNorBigIntUse
for ValueToInt32 because of the same reason.

For CompareXXX and CompareEq nodes, we can optimize it if we introduce new DoubleRepAcceptingBigInt32 DFG node which can convert BigInt32 to Double, since
CompareXXX and CompareEq are not requiring toNumber semantics. This should be done in a separate bug https://bugs.webkit.org/show_bug.cgi?id=211407.

  • bytecode/SpeculatedType.h:

(JSC::isNotCellNorBigIntSpeculation):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixupChecksInBlock):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateNotCellNorBigInt):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNotCellNorBigInt):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::checkMayCrashIfInputIsEmpty):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
(JSC::FTL::DFG::LowerDFGToB3::compileValueToInt32):
(JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellNorBigIntToInt32):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateNotCellNorBigInt):
(JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellToInt32): Deleted.

9:55 PM Changeset in webkit [261146] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260791?): Assert not reached in ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary() and ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary()
https://bugs.webkit.org/show_bug.cgi?id=211305
<rdar://problem/62737871>

Reviewed by Alex Christensen.

This patch adds a busy timeout for the ITP database to allow for
some concurrency flexibility when running many WebKitTestRunner tests, which
recreate the ITP database store very often to test both the memory and
database stores.

With the timeout, an attempt to write to the database when another
thread is holding the lock will keep attempting to insert for 5
seconds as long as the statement execution returns SQLITE_BUSY.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):

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

TestWebKitAPI.WebKit.CustomDisplayName is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211299

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

Use a serial queue instead of a concurrent queue to set the web process's display name to prevent race conditions.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::setProcessNameQueue):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):

9:42 PM Changeset in webkit [261144] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK4] Header bars no longer have title and subtitle properties
https://bugs.webkit.org/show_bug.cgi?id=211412

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp: For GTK4 use a vertical

box as title widget, with two labels acting as title and subtitle.
(webkit_inspector_window_init):
(webkitInspectorWindowSetSubtitle):

9:01 PM Changeset in webkit [261143] by Simon Fraser
  • 8 edits in trunk/Source

Code cleanup in EventHandler
https://bugs.webkit.org/show_bug.cgi?id=211413

Reviewed by Tim Horton.

Use a better name for "hoveredNode" which is a HitTestResult.

Convert Frame* to Frame&.

Have a couple of helper functions return RefPtr<Frame>.

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::stopAutoscrollTimer):

  • page/EventHandler.cpp:

(WebCore::EventHandler::subframeForHitTestResult):
(WebCore::EventHandler::subframeForTargetNode):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::passMouseMovedEventToScrollbars):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::passMousePressEventToScrollbar):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseMoveEventToSubframe):

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::tryToBeginDragAtPoint):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):

  • page/win/EventHandlerWin.cpp:

(WebCore::EventHandler::passMouseMoveEventToSubframe):

8:47 PM Changeset in webkit [261142] by Devin Rousso
  • 1 edit
    4 adds in trunk/Source/WebInspectorUI

Web Inspector: add a tool for viewing UserInterface/Images files
https://bugs.webkit.org/show_bug.cgi?id=211422

Reviewed by Timothy Hatcher.

  • Tools/Images/index.html: Added.
  • Tools/Images/index.css: Added.

(body):
(h1):
(textarea):
(.flex):
(#preview):
(#preview > img):
(#preview > img.light):
(#preview > img.dark):

  • Tools/Images/index.js: Added.

(async loadImage):
(async parseSVG):
(async loadPNG):
(normalizePath):
(changeSize):
(updateURL):

8:19 PM Changeset in webkit [261141] by Ben Nham
  • 11 edits
    4 adds in trunk

IndexedDB WAL file keeps growing while app is in use
https://bugs.webkit.org/show_bug.cgi?id=202137

Reviewed by Brady Eidson.

Source/WebCore:

It's easy to get into a situation where the WAL file associated with a SQLite-backed
IndexedDB grows indefinitely while a site is in use for two reasons:

  1. We don't promptly reset cached prepared statements in SQLiteIDBBackingStore. Many

statements are left hanging in the SQLITE_ROW state without being reset or fully stepped to
the SQLITE_DONE state. These hanging statements keep their associated transactions open and
prevent the WAL checkpointer from progressing past those active transactions.

To fix this, I added SQLiteStatementAutoResetScope. This is a scope guard that
SQLiteIDBBackingStore uses to ensure that cached statements are reset in a timely manner.

While going through the reset code I also noticed we aren't clearing bindings after
resetting statements. We should be doing this because sqlite3_reset does not clear bindings
(and their associated copies of blobs/strings); sqlite3_clear_bindings does that.

  1. The default WAL hook for auto-checkpointing in upstream SQLite uses the

SQLITE_CHECKPOINT_PASSIVE mode, which doesn't truncate the WAL until the next write
transaction occurs. (It actually doesn't truncate at all when compiled with default
settings, but macOS's SQLite sets SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT, which causes the
truncation to occur on the next write.)

We want the WAL to be truncated more promptly, because otherwise the quota check that
happens on each mutation won't be as accurate. To do this, I installed a WAL hook that
truncates the WAL with SQLITE_CHECKPOINT_TRUNCATE after the default threshold of 1000 WAL
pages. I didn't enable this for all SQLiteDatabases because this checkpoint call can block
on the busy handler. This isn't a problem for IDB since we don't use busy handlers in IDB.

  • Headers.cmake:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedHasIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::walAutomaticTruncationHook):
(WebCore::SQLiteDatabase::enableAutomaticWALTruncation):

  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::reset):

  • platform/sql/SQLiteStatementAutoResetScope.cpp: Added.

(WebCore::SQLiteStatementAutoResetScope::SQLiteStatementAutoResetScope):
(WebCore::SQLiteStatementAutoResetScope::operator=):
(WebCore::SQLiteStatementAutoResetScope::~SQLiteStatementAutoResetScope):

  • platform/sql/SQLiteStatementAutoResetScope.h: Added.

(WebCore::SQLiteStatementAutoResetScope::operator bool const):
(WebCore::SQLiteStatementAutoResetScope::operator! const):
(WebCore::SQLiteStatementAutoResetScope::get):
(WebCore::SQLiteStatementAutoResetScope::operator->):

Tools:

Add a test to make sure that WAL auto-checkpointing actually works.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.mm: Added.

(-[IDBCheckpointWALMessageHandler userContentController:didReceiveScriptMessage:]):
(fileSizeAtPath):
(TEST):

8:19 PM Changeset in webkit [261140] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Make sure TestController::statisticsResetToConsistentState() does not hang due to process suspension
https://bugs.webkit.org/show_bug.cgi?id=211421

Reviewed by Maciej Stachowiak.

We have evidence of hangs in TestController::statisticsResetToConsistentState() on iOS and we suspect it
is due to process suspension. To address the issue, this patch updates the IPCs being sent as a result of
a call to statisticsResetToConsistentState() to take a background assertion while waiting for the IPC
response.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setUseITPDatabase):
(WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::resetParametersToDefaultValues):
(WebKit::NetworkProcessProxy::scheduleClearInMemoryAndPersistent):
(WebKit::NetworkProcessProxy::resetCrossSiteLoadsWithLinkDecorationForTesting):
(WebKit::NetworkProcessProxy::setShouldDowngradeReferrerForTesting):
(WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting):
(WebKit::NetworkProcessProxy::setShouldEnbleSameSiteStrictEnforcementForTesting):
(WebKit::NetworkProcessProxy::setFirstPartyWebsiteDataRemovalModeForTesting):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setShouldBlockThirdPartyCookiesForTesting):

7:45 PM Changeset in webkit [261139] by Wenson Hsieh
  • 14 edits in trunk

Tapping to focus editable elements should start caret selection at word boundary
https://bugs.webkit.org/show_bug.cgi?id=211409
<rdar://problem/62869098>

Reviewed by Megan Gardner.

Source/WebCore:

Match platform behavior when focusing editable text content by beginning the caret selection at word
granularity (i.e. the start or end of a word), rather than character granularity. This will match behavior of
other editable widgets on iOS (such as UITextField and UITextView), as well as our current behavior when tapping
to change the selection when the text interaction is editable (i.e. when the caret is already visible when
tapping).

Rebaselined existing layout tests.

  • editing/VisibleUnits.cpp:

(WebCore::wordBoundaryForPositionWithoutCrossingLine):

Move logic previously in WebPage::selectWithGesture down into VisibleUnits.h, as a new standalone helper
function. Given a VisiblePosition, this new helper will return the given position if it is either already at
word boundary or line boundary; if it is within the boundary of a word, it will instead return the start or end
of the word.

  • editing/VisibleUnits.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventSingleClick):

When setting the selection due to a synthetic single click, automatically adjust the caret position to be at
word boundary instead of using the hit-tested position directly.

Source/WebKit:

See WebCore/ChangeLog for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):

Rewrite this using the new VisibleUnits helper function, wordBoundaryForPositionWithoutCrossingLine.

LayoutTests:

Adjust some existing layout test expectations on iOS, such that tapping to focus input fields places the
selection at the beginning or end of a word.

  • editing/selection/ios/hide-selection-after-hiding-contenteditable-expected.txt:
  • editing/selection/ios/place-selection-in-overflow-area-expected.txt:
  • fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:
  • platform/ios/editing/deleting/smart-delete-002-expected.txt:
  • platform/ios/editing/deleting/smart-delete-003-expected.txt:
  • platform/ios/editing/deleting/smart-delete-004-expected.txt:
  • platform/ios/editing/pasteboard/smart-paste-008-expected.txt:
6:53 PM Changeset in webkit [261138] by Darin Adler
  • 33 edits in trunk

Make IPHONE_OS_VERSION_MIN_REQUIRED checks against old versions explicit about watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=211402

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attributesForAttributedStringConversion): Move from IPHONE_OS_VERSION_MIN_REQUIRED
to !PLATFORM(WATCHOS) && !PLATFORM(APPLETV). Move NSExcludedElementsDocumentAttribute to
AttributedStringSPI.h.

  • page/SettingsDefaultValues.h: Rewrite conic gradient conditional to call out

tvOS as an exception rather than doing that indirectly through IPHONE_OS_VERSION_MIN_REQUIRED.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::paint): Ditto.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: Rewrite

HAS_CORE_TEXT_WIDTH_ATTRIBUTE to use !PLATFORM(WATCHOS) && !PLATFORM(APPLETV).
(WebCore::variationCapabilitiesForFontDescriptor): Ditto.
(WebCore::FontCache::lastResortFallbackFont): Ditto.

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::matchSystemFontUse): Use HAVE(SYSTEM_FONT_STYLE_TITLE_0) and
HAVE(SYSTEM_FONT_STYLE_TITLE_4) instead of IPHONE_OS_VERSION_MIN_REQUIRED.
This consolidates the watchOS/tvOS issue into the PlatformHave.h file, and
does not change behavior at this time.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::cascadeToLastResortAttributesDictionary): Changed this to not use
a global since it's only called as part of initializing another global, and
to return a RetainPtr.
(WebCore::cascadeToLastResortAndVariationsFontDescriptor): Removed
WORKAROUND_CORETEXT_VARIATIONS_WITH_FALLBACK_LIST_BUG after researching to
be sure it's fixed on recent watchOS and tvOS. Also changed this to return
a raw pointer instead of RetainPtr since it returns a single global object.
Also removed the CTFontRef argument.
(WebCore::FontPlatformData::ctFont const): Updated for the changes above.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceID const): Move from IPHONE_OS_VERSION_MIN_REQUIRED
to !PLATFORM(WATCHOS) && !PLATFORM(APPLETV).

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::platformFontWithFamilySpecialCase): Ditto.

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData): Ditto.

Source/WebCore/PAL:

  • pal/spi/cocoa/NSAttributedStringSPI.h: Moved iOS family version of

NSExcludedElementsDocumentAttribute to this header. For now didn't
change its implementation to match, just moved it as is.

Source/WebKit:

  • NetworkProcess/NetworkActivityTracker.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED

to !PLATFORM(APPLETV). There was already an explicit watchOS case here.

  • Platform/spi/ios/UIKitSPI.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED to

PLATFORM(IOS) in one place, and in the other removed the conditional entirely.
THe one place here that does PLATFORM(IOS) is for a property that is not on
watchOS and tvOS at this time, related to dragging. Decided not to add a comment
about it.

  • Shared/WebPreferencesDefaultValues.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED

to !PLATFORM(APPLETV). There was already an explicit watchOS case here.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(contentOffsetBoundedInValidRange): Move from IPHONE_OS_VERSION_MIN_REQUIRED
to !PLATFORM(WATCHOS) && !PLATFORM(APPLETV).
(-[WKWebView activeViewLayoutSize:]): Ditto.
(-[WKWebView _updateScrollViewInsetAdjustmentBehavior]): Ditto.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKChildScrollView initWithFrame:]): Ditto.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): Ditto.
(-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): Ditto.

  • UIProcess/ios/WKScrollView.h: Ditto.
  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]): Ditto.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(attributesForAttributedStringConversion): Move from IPHONE_OS_VERSION_MIN_REQUIRED

to PLATFORM(WATCHOS)
PLATFORM(APPLETV).
  • WebView/WebUIDelegatePrivate.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED to

TARGET_OS_IOS for a method that is based on dragging concepts not present in
watchOS and tvOS.

  • WebView/WebView.mm: Move from IPHONE_OS_VERSION_MIN_REQUIRED

to PLATFORM(IOS).

  • WebView/WebViewPrivate.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED to

TARGET_OS_IOS.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DataDetection.mm:

Remove unneeded IPHONE_OS_VERSION_MIN_REQUIRED check.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

Move from IPHONE_OS_VERSION_MIN_REQUIRED to
!PLATFORM(WATCHOS) && !PLATFORM(APPLETV).

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

Move from IPHONE_OS_VERSION_MIN_REQUIRED to
PLATFORM(IOS).

  • TestWebKitAPI/Tests/ios/OverflowScrollViewTests.mm:

Move from IPHONE_OS_VERSION_MIN_REQUIRED to
!PLATFORM(WATCHOS) && !PLATFORM(APPLETV).

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView setOverrideSafeAreaInsets:]): Ditto.

6:43 PM Changeset in webkit [261137] by Peng Liu
  • 4 edits in trunk/Source

Fix the mistake on macro HAVE_SYSTEM_FEATURE_FLAGS
https://bugs.webkit.org/show_bug.cgi?id=211416

Reviewed by Tim Horton.

We should use "#if HAVE(SYSTEM_FEATURE_FLAGS)" instead of "#if HAVE(HAVE_SYSTEM_FEATURE_FLAGS)".
Source/WebCore/PAL:

  • pal/spi/cocoa/FeatureFlagsSPI.h:

Source/WebKit:

And we have to use the function _os_feature_enabled_impl() instead of the macro os_feature_enabled()
because WebKit is a namespace and cannot be used in os_feature_enabled().

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAsyncFrameAndOverflowScrollingEnabled):
(WebKit::defaultUseGPUProcessForMedia):
(WebKit::defaultRenderCanvasInGPUProcessEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):
(WebKit::defaultWebGL2Enabled):
(WebKit::defaultWebGPUEnabled):
(WebKit::defaultInAppBrowserPrivacy):
(WebKit::defaultIncrementalPDFEnabled):
(WebKit::defaultWebXREnabled):

6:27 PM Changeset in webkit [261136] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Eliminate SecurityServer and OCSPD from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=211417
<rdar://problem/46235370>

Reviewed by Per Arne Vollan.

We can now re-block access to these services.

  • WebProcess/com.apple.WebProcess.sb.in:
6:18 PM Changeset in webkit [261135] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r261117.

Broke lots of API tests

Reverted changeset:

"Excessive error logging from daemons trying to use WebKit,
under -[UIDevice currentDevice]"
https://bugs.webkit.org/show_bug.cgi?id=211397
https://trac.webkit.org/changeset/261117

6:03 PM Changeset in webkit [261134] by Darin Adler
  • 5 edits in trunk

[Cocoa] Remove a few unneeded IPHONE_OS_VERSION_MIN_REQUIRED checks
https://bugs.webkit.org/show_bug.cgi?id=211383

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • UIProcess/ios/forms/WKAirPlayRoutePicker.h: Removed a check against

iOS 11, in code that already explicitly checks for watchOS and tvOS.

Tools:

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

(TestWebKitAPI::TEST): Removed checks against iOS 12 and 13 in code that
uses PLATFORM(IOS), not PLATFORM(IOS_FAMILY).

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Removed a

check against iOS 11 in code using PLATFORM(IOS).

6:00 PM Changeset in webkit [261133] by Darin Adler
  • 31 edits in trunk

Remove HAVE(IOSURFACE) checks in Cocoa-platform-specific code
https://bugs.webkit.org/show_bug.cgi?id=211389

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory): Remove HAVE(IOSURFACE) since it's always true
on Cocoa platforms.

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::surface const): Ditto.

  • platform/graphics/RemoteVideoSample.h: Ditto.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::allocateIOSurfaceBackingStore): Ditto.
(WebCore::GraphicsContextGLOpenGL::updateFramebufferTextureBackingStoreFromLayer): Ditto.

  • platform/graphics/cocoa/IOSurface.mm: Ditto.
  • platform/graphics/cocoa/IOSurfacePoolCocoa.mm: Ditto.
  • platform/graphics/cocoa/WebGLLayer.h: Ditto.
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer display]): Ditto.

  • platform/graphics/cv/ImageTransferSessionVT.h: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.mm: Ditto.
  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction): Ditto.
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture): Ditto.

  • platform/graphics/cv/VideoTextureCopierCV.h: Ditto.
  • rendering/RenderThemeIOS.h: Ditto.

Source/WebCore/PAL:

  • pal/spi/cocoa/QuartzCoreSPI.h: Remove HAVE(IOSURFACE).

Source/WebKit:

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::encodeFrame): Remove HAVE(IOSURFACE) since
this is Cocoa-specific code.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore): Ditto.
(WebKit::RemoteLayerBackingStore::clearBackingStore): Ditto.
(WebKit::RemoteLayerBackingStore::encode const): Ditto.
(WebKit::RemoteLayerBackingStore::decode): Ditto.
(WebKit::RemoteLayerBackingStore::bytesPerPixel const): Ditto.
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): Ditto.
(WebKit::RemoteLayerBackingStore::display): Ditto.
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer): Ditto.
(WebKit::RemoteLayerBackingStore::setBufferVolatility): Ditto.
(WebKit::RemoteLayerBackingStore::Buffer::discard): Ditto.
(WebKit::RemoteLayerBackingStore::surfaceBufferFormat const): Ditto.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _takeViewSnapshot]): Ditto.
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Ditto.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: Ditto.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): Ditto.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::recursivelyMapIOSurfaceBackingStore): Ditto.
(WebKit::RemoteLayerTreeHost::mapAllIOSurfaceBackingStore): Ditto.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp: Ditto.
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h: Ditto.
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::sampleBufferUpdated): Ditto.

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createDecoderFactory): Ditto.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable): Ditto.
(WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable): Ditto.

Tools:

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView): Remove BEGIN/END_BLOCK_OBJC_EXCEPTIONS
since they are not needed/appropriate in test code. Remove HAVE(IOSURFACE)
since this is Cocoa-specific.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage): Ditto.

5:59 PM Changeset in webkit [261132] by Simon Fraser
  • 19 edits
    2 copies
    4 adds in trunk

Overflow scrollbars don't grow when hovered
https://bugs.webkit.org/show_bug.cgi?id=210692
<rdar://problem/61977273>

Reviewed by Tim Horton.

Source/WebCore:

Overlay scrollar interaction has a few behaviors that are mediated by ScrollAnimatorMac. These
are a trackpad two-finger tap, which sends a "MayBegin" wheel event (which can be followed by
a "Cancelled" on fingers up, if they didn't move), and hovering the scrollbar when visible, which
causes it to expand (unhovering causes it to fade out).

To track these gestures on the scrolling thread, give ScrollingTree a ScrollingTreeGestureState.

Flashing the scrollbars on "MayBegin" is driven by didBeginScrollGesture()/didEndScrollGesture().
This relies on sending these for the correct scrollable area, and matching the begin/cancel,
so use the normal scrolling tree event handling code path for "MayBegin", and always send
"Cancelled" on the node that received "MayBegin. Do the same for "Began" and "Ended".

Scrollbars expanding on hover is controlled by these functions on ScrollAnimatorMac:

void mouseEnteredContentArea();
void mouseExitedContentArea();
void mouseMovedInContentArea();
void mouseEnteredScrollbar(Scrollbar*) const;
void mouseExitedScrollbar(Scrollbar*) const;

This mostly (webkit.org/b/211347) works now that the mayBegin/Canceled state is updated correctly,
and is tested by a new test.

Tests: fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html

fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::handleWheelEvent):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeGestureState.cpp: Added.

(WebCore::ScrollingTreeGestureState::ScrollingTreeGestureState):
(WebCore::ScrollingTreeGestureState::receivedWheelEvent):
(WebCore::ScrollingTreeGestureState::handleGestureCancel):
(WebCore::ScrollingTreeGestureState::nodeDidHandleEvent):
(WebCore::ScrollingTreeGestureState::clearAllNodes):

  • page/scrolling/ScrollingTreeGestureState.h: Copied from Source/WebCore/page/scrolling/ScrollingTreeLatchingController.h.
  • page/scrolling/ScrollingTreeLatchingController.cpp:

(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):

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

(WebCore::ScrollingTreeScrollingNode::canHandleWheelEvent const):
(WebCore::ScrollingTreeScrollingNode::canScrollWithWheelEvent const): Deleted.

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

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • platform/Logging.cpp:

(WebCore::initializeLogChannelsIfNecessary):

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::isGestureStart const):
(WebCore::PlatformWheelEvent::isGestureCancel const):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::scrollbarState):

LayoutTests:

  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html: Added.
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html: Copied from LayoutTests/fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html:
5:36 PM Changeset in webkit [261131] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r261102.
https://bugs.webkit.org/show_bug.cgi?id=211418

Revert some debug logging (Requested by smfr on #webkit).

Reverted changeset:

"REGRESSION: [ Mac WK1 ] inspector/console/console-api.html is
flaky crashing"
https://bugs.webkit.org/show_bug.cgi?id=211386
https://trac.webkit.org/changeset/261102

5:31 PM Changeset in webkit [261130] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop code path using the legacy CFNetwork cookie change notification SPI
https://bugs.webkit.org/show_bug.cgi?id=211411

Reviewed by John Wilander.

Source/WebCore:

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:
5:24 PM Changeset in webkit [261129] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Use default constructor and default initializer for SecItemRequestData
<https://webkit.org/b/211399>
<rdar://problem/62861551>

Reviewed by Darin Adler.

  • Shared/mac/SecItemRequestData.cpp:
  • Remove default constructor implementation.
  • Shared/mac/SecItemRequestData.h:
  • Use default constructor for class.
  • Use default initializer for m_type.
5:09 PM Changeset in webkit [261128] by ap@apple.com
  • 2 edits in trunk/Tools

block-spammers tool should hide attachments
https://bugs.webkit.org/show_bug.cgi?id=211406

Reviewed by Darin Adler.

The logic is nearly identical to hiding comments. Just need to limit fields in the
search, so that we don't have to download attachment data.

  • Scripts/block-spammers:

(get_comments):
(get_bugs_with_attachments_created_by_user):
(get_attachments):
(hide_comments):
(hide_attachments):
(main):

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

Web Inspector: Tabs jiggle on click
https://bugs.webkit.org/show_bug.cgi?id=211177
<rdar://problem/62590810>

Reviewed by Devin Rousso.

Currently, tab dragging starts immediately after mouse down. With this patch,
dragging starts only after the mouse cursor moving 12 pixels. This roughly matches
macOS Safari tabs.

  • UserInterface/Views/TabBar.js:

(WI.TabBar):
(WI.TabBar.prototype._handleTabContainerMouseDown):
(WI.TabBar.prototype._handleMouseUp):
(WI.TabBar.prototype._handleTabContainerMouseLeave):

4:55 PM Changeset in webkit [261126] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in CompositeEditCommand::moveParagraphs when changing style on elements that are
user-select:none and dir:rtl.
https://bugs.webkit.org/show_bug.cgi?id=211206
<rdar://problem/61830589>

Reviewed by Geoffrey Garen.

Source/WebCore:

In function moveParagraphs check if the destination is an empty position and
bail out before moving the paragraphs.

Test: fast/editing/justify-user-select-none-dir-rtl-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

LayoutTests:

Added a regression test for the crash.

  • fast/editing/justify-user-select-none-dir-rtl-crash-expected.txt: Added.
  • fast/editing/justify-user-select-none-dir-rtl-crash.html: Added.
4:37 PM Changeset in webkit [261125] by ysuzuki@apple.com
  • 5 edits in trunk

[JSC] Add @@toStringTag to WebAssembly.Global
https://bugs.webkit.org/show_bug.cgi?id=211372

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/jsapi/global/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/global/toString.any.worker-expected.txt:

Source/JavaScriptCore:

As r260992 did for the other wasm prototypes, we should put @@toStringTag to WebAssembly.Global's prototype too.

  • wasm/js/WebAssemblyGlobalPrototype.cpp:

(JSC::WebAssemblyGlobalPrototype::finishCreation):

4:25 PM Changeset in webkit [261124] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iPadOS wk2 ] editing/selection/selection-change-in-mutation-event-by-remove-children.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=208840

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
4:24 PM Changeset in webkit [261123] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

REGRESSION (r259470): Accessibility Stereo to Mono is not working
https://bugs.webkit.org/show_bug.cgi?id=211408
<rdar://problem/62847299>

Reviewed by Per Arne Vollan.

The changes in r259470 regressed our Accessibility features. We need to do a rollout of that
change to restore proper behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:22 PM Changeset in webkit [261122] by Devin Rousso
  • 2 edits in trunk/LayoutTests

REGRESSION (r261109): [ Mac ] inspector/css/getAllStyleSheets.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211405
<rdar://problem/62863843>

Unreviewed, remove unnecessary call to function that no longer exists.

  • inspector/css/getAllStyleSheets.html:
4:17 PM Changeset in webkit [261121] by Devin Rousso
  • 2 edits in trunk/LayoutTests

REGRESSION (r261108): [ Mac ] inspector/timeline/timeline-recording.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211404
<rdar://problem/62863766>

Unreviewed, update test expectation.

  • inspector/timeline/timeline-recording-expected.txt:
3:58 PM Changeset in webkit [261120] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] webgl/2.0.0/conformance/extensions/webgl-draw-buffers.html has been timing out ever since it was introduced.
https://bugs.webkit.org/show_bug.cgi?id=208524

Unreviewed test gardening: Removing expectations.

  • platform/mac-wk1/TestExpectations:
3:51 PM Changeset in webkit [261119] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.7

Tag Safari-610.1.11.7.

3:26 PM Changeset in webkit [261118] by jiewen_tan@apple.com
  • 8 edits in trunk/Source

[WebAuthn] Implement +[_WKWebAuthenticationPanel clearAllLocalAuthenticatorCredentials]
https://bugs.webkit.org/show_bug.cgi?id=211369
<rdar://problem/60246635>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by manual tests given auto tests could clear developers' actual credentials.

  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

Adds a new SPI for UI clients to clear all existing credentials from the keychain.

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

(+[_WKWebAuthenticationPanel clearAllLocalAuthenticatorCredentials]):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::clearAllCredentials):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::createCredentialPrivateKey const):

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

Excessive error logging from daemons trying to use WebKit, under -[UIDevice currentDevice]
https://bugs.webkit.org/show_bug.cgi?id=211397
<rdar://problem/61635403>

Reviewed by Simon Fraser.

  • Shared/UserInterfaceIdiom.mm:

(WebKit::userInterfaceIdiomIsPad):
Adjust userInterfaceIdiomIsPad so that in daemons, it consults only MobileGestalt,
which returns the actual hardware model, and does not try to use UIDevice.
UIDevice is more accurate for applications because it will report that
the device is an iPhone when called inside an iPhone app running on iPad,
but it cannot be used in daemons that do not have a UIApplication.

For the behaviors we gate on this bit, it makes sense to use iPhone
behaviors on iPad in the iPhone app jail, so we continue using
UIDevice if possible.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Make use of the new mechanism instead of going straight to MobileGestalt,
for the aforementioned reasons.

3:08 PM Changeset in webkit [261116] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Stop hard-coding get-task-allow entitlement for simulator builds
https://bugs.webkit.org/show_bug.cgi?id=211392

Reviewed by Geoffrey Garen.

Stop hard-coding get-task-allow entitlement for simulator builds and let Xcode inject it as needed.

  • Configurations/BaseXPCService.xcconfig:
  • Resources/ios/XPCService-embedded-simulator.entitlements:
3:00 PM Changeset in webkit [261115] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (JazzkonE): ResourceLoadStatisticsDatabaseStore checks 'hasHadUserInteraction' without ensuring the domain has been added to the ITP database (211388)
https://bugs.webkit.org/show_bug.cgi?id=211388
<rdar://problem/62849919>

Reviewed by John Wilander.

A spurious log entry is created if we check 'hasHadUserInteraction' before inserting a row for the domain
being checked (if that domain had not previosly been observed). This patch changes the order of the two
commands to avoid this possibility. This makes the database implementation behave like the in-memory version.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::logUserInteraction):

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

Reduce AlternativeService assertion to debug-only assert
https://bugs.webkit.org/show_bug.cgi?id=211263
<rdar://problem/61354813>

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

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
This is asserting sometimes. No need to crash. Reduce to debug-only assert.

2:24 PM Changeset in webkit [261113] by commit-queue@webkit.org
  • 45 edits
    1 add in trunk

Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=204713

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-04
Reviewed by Simon Fraser.

Source/WebCore:

rAF and Page rendering were managed by two different timers. Throttling
rAF was implemented by changing its timer. After r242624, RenderingUpdate
steps have been managed by RenderingUpdateScheduler. This means rAF is
now serviced by the preferredFramesPerSecond which is 60 fps regardless
it's throttled or not. Moreover the rAF throttling timer was mistakenly
kept and it has been running under the old assumption which is: rAF is
serviced by a timer only. This means rAF will be serviced by its timer
and by the RenderingUpdate steps at the same time when it is supposed to
throttle. This will make it fire more than 60 fps in cases which it is
supposed to run less than 60 fps.

The solution is to have two throttling types:

1) Page throttling (or full throttling): This slows down all the steps

of RenderingUpdate for the main document and all the sub-documents.
Page throttling reasons are:
-- VisuallyIdle: Aggressive throttling.
-- LowPowerMode: Half speed throttling.

2) Document throttling (or partial throttling): This only slows down the

rAF of a certain document. Document throttling reasons are:
-- OutsideViewport: Aggressive throttling.
-- NonInteractedCrossOriginFrame: Half speed throttling.

RenderingUpdate steps will still be managed by RenderingUpdateScheduler
which can be throttled. The assumption is none of these steps will need
to run faster than the Page preferredFramesPerSecond. If rAF wants to
run slower than the Page because of a Document throttling reason, no rAF
callbacks will be serviced before its preferredFrameInterval has elapsed.

In this patch, "Half speed throttling" is only implemented for the Page
and the Document throttling. The "Aggressive throttling" will be done in
following patches. Page rendering was never throttled before. We need to
make sure this is not going to affect PLT. Some tests need to be changed
and new tests need to be written. All of the throttling tests checks the
state of the code but none of them checks the real user's experience.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationInterval const):
(WebCore::DocumentTimeline::updateThrottlingState): Deleted.

  • animation/DocumentTimeline.h:

There is no need to have DocumentTimeline throttling. It is already
throttled when the page RenderingUpdate is throttled.

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):
LowPowerMode throttling is now handled by the Page. So remove its handling
from the Document.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const):
(WebCore::ScriptedAnimationController::throttlingReasons const):
(WebCore::ScriptedAnimationController::isThrottledRelativeToPage const):
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::throttlingReasonToString): Deleted.
(WebCore::throttlingReasonsToString): Deleted.
(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::isThrottled const): Deleted.
(WebCore::ScriptedAnimationController::animationTimerFired): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
Get rid of the rAF throttling timer. Service the rAF callback only when
the period from the current time stamp till the last service time stamp
is greater than the preferred rAF interval.

  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):
ThrottlingReason is now defined outside ScriptedAnimationController.

  • page/Page.cpp:

(WebCore::m_loadsFromNetwork):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):

(WebCore::Page::preferredRenderingUpdateInterval const):
Calculate the preferred RenderingUpdate interval from the throttling
reasons.

(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
Call adjustRenderingUpdateFrequency() when isLowPowerModeEnabled or
IsVisuallyIdle is toggled.

(WebCore::Page::isLowPowerModeEnabled const): Deleted.
(WebCore::updateScriptedAnimationsThrottlingReason): Deleted.

  • page/Page.h:

(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::throttlingReasons const):
(WebCore::Page::canUpdateThrottlingReason const):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::setPreferredFramesPerSecond):
(WebCore::RenderingUpdateScheduler::scheduleAnimation):
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
Change the preferredFramesPerSecond of the DisplayRefreshMonitor if the
throttling is not aggressive e.g. 10_s. Otherwise use the timer.

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
Call adjustFramesPerSecond() when DisplayRefreshMonitor is created.

(WebCore::RenderingUpdateScheduler::startTimer):

  • page/RenderingUpdateScheduler.h:
  • platform/graphics/AnimationFrameRate.h: Added.

(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):
(WebCore::operator<<):
Push names of ThrottlingReasons to a TextStream.

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::monitorForClient):
Rename createMonitorForClient() to monitorForClient() since it may return
a cached DisplayRefreshMonitor.

(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
No need to call registerClient(). This function was just ensuring the
DisplayRefreshMonitor is created. scheduleAnimation() does the same thing.

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::registerClient): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.h:

(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager): Deleted.

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]):
Set the preferredFramesPerSecond of the CADisplayLink.

  • testing/Internals.cpp:

(WebCore::Internals::requestAnimationFrameThrottlingReasons const):
(WebCore::Internals::isRequestAnimationFrameThrottled const): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Replace isRequestAnimationFrameThrottled() which returns a boolean by
requestAnimationFrameThrottlingReasons() which returns a string. The
string represents the throttling reasons.

Source/WebKit:

Create an IPC message on the DrawingArea to send a message from the
WebProcess to the UIProcess to setPreferredFramesPerSecond of the
DisplayRefreshMonitor.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond):
Set the preferredFramesPerSecond of the CADisplayLink.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond):
Forward the call to RemoteLayerTreeDrawingArea.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond):
Send the IPC message from the WebProcess to the UIProcess.

LayoutTests:

  • fast/animation/request-animation-frame-throttle-inside-overflow-scroll-expected.txt:
  • fast/animation/request-animation-frame-throttle-inside-overflow-scroll.html:
  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html:
  • fast/animation/request-animation-frame-throttle-subframe-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-zero-size-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-zero-size.html:
  • fast/animation/request-animation-frame-throttle-subframe.html:
  • fast/animation/request-animation-frame-throttling-detached-iframe-expected.txt:
  • fast/animation/request-animation-frame-throttling-detached-iframe.html:

Replace the call isRequestAnimationFrameThrottled() by requestAnimationFrameThrottlingReasons().

  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:

Ensure the actual rAF interval is > 30ms for lowPowerMode.

  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe-expected.txt:
  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
  • http/tests/frame-throttling/resources/requestAnimationFrame-frame.html:

Replace the call isRequestAnimationFrameThrottled() by requestAnimationFrameThrottlingReasons().

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

TestWebKitAPI.WebKit.CustomDisplayName is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211299

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

Sometimes the task queued in WebProcess::updateProcessName happens after the one in WebProcess::updateActivePages.
Schedule them on the same queue so they happen in deterministic order so we get reliable process names eventually.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateActivePages):

1:41 PM Changeset in webkit [261111] by Alan Coon
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

1:21 PM Changeset in webkit [261110] by Darin Adler
  • 11 edits in trunk

Remove unneeded USE(MEDIAREMOTE)
https://bugs.webkit.org/show_bug.cgi?id=211385

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo): Remove USE(MEDIAREMOTE).

  • platform/mac/MediaRemoteSoftLink.cpp: Ditto.
  • platform/mac/MediaRemoteSoftLink.h: Ditto.
  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::updateSupportedCommands): Ditto.
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): Ditto.
(WebCore::RemoteCommandListenerMac::~RemoteCommandListenerMac): Ditto.

Source/WebCore/PAL:

  • pal/spi/mac/MediaRemoteSPI.h: Removed check of USE(MEDIAREMOTE).

Also got rid of has_include for MRNowPlayingTypes.h and moved
it down into the normal sections below.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_MEDIAREMOTE.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm: Reverse conditional so it's

consistently listing which platforms we do *not* compile the test on.

1:14 PM Changeset in webkit [261109] by Devin Rousso
  • 19 edits
    4 deletes in trunk/Source/WebInspectorUI

Web Inspector: drop support for iOS 9.*
https://bugs.webkit.org/show_bug.cgi?id=211314

Reviewed by Daniel Bates.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WI.BreakpointPopoverController.prototype._createPopoverContent):

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager):
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame):
(WI.CSSManager.prototype._mainResourceDidChange):
(WI.CSSManager.prototype._fetchInfoForAllStyleSheets):
(WI.CSSManager.prototype.fetchStyleSheetsIfNeeded): Deleted.
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame.documentNodeAvailable): Deleted.
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame.bodyNodeAvailable): Deleted.
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame.cssRuleAvailable): Deleted.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype._scopeChainNodeFromPayload):

  • UserInterface/Controllers/LayerTreeManager.js:

(WI.LayerTreeManager.prototype.set showPaintRects):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.initializeTarget):
(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.availableTimelineTypes):
(WI.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._attemptAutoCapturingForFrame):

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.initializeCSSCompletions):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype.refresh):

  • UserInterface/Models/HeapAllocationsInstrument.js:

(WI.HeapAllocationsInstrument):
(WI.HeapAllocationsInstrument.supported): Deleted.

  • UserInterface/Models/MemoryInstrument.js:

(WI.MemoryInstrument): Deleted.
(WI.MemoryInstrument.supported): Deleted.

  • UserInterface/Models/NativeFunctionParameters.js:
  • UserInterface/Models/ScriptInstrument.js:

(WI.ScriptInstrument.prototype.startInstrumentation):
(WI.ScriptInstrument.prototype.stopInstrumentation):

  • UserInterface/Models/ScriptSyntaxTree.js:

(WI.ScriptSyntaxTree.functionReturnDivot):

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord):
(WI.ScriptTimelineRecord.prototype._initializeProfileFromPayload):

  • UserInterface/Protocol/DebuggerObserver.js:

(WI.DebuggerObserver.prototype.scriptParsed):

  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: Removed.
  • UserInterface/Views/ScriptClusterTimelineView.js:

(WI.ScriptClusterTimelineView):
(WI.ScriptClusterTimelineView.createPathComponent):
(WI.ScriptClusterTimelineView.prototype.reset):
(WI.ScriptClusterTimelineView.prototype.showProfile):
(WI.ScriptClusterTimelineView.prototype._canShowProfileView): Deleted.

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WI.ScriptDetailsTimelineView):

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.performSearch):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
(WI.TimelineRecordingContentView.prototype._recordingTimesUpdated):

  • Versions/Inspector-iOS-9.0.json: Removed.
  • Versions/Inspector-iOS-9.3.json: Removed.
1:12 PM Changeset in webkit [261108] by Devin Rousso
  • 22 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: drop support for iOS 8.*
https://bugs.webkit.org/show_bug.cgi?id=211312

Reviewed by Daniel Bates.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.highlightSelector):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.resourceRequestWillBeSent):

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager.prototype.initializeTarget):
(WI.RuntimeManager.prototype.evaluateInInspectedWindow):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.prototype._loadNewRecording):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.parseSelectorListPayload):

  • UserInterface/Models/FPSInstrument.js:

(WI.FPSInstrument): Deleted.
(WI.FPSInstrument.supported): Deleted.

  • UserInterface/Models/ObjectPreview.js:

(WI.ObjectPreview.fromPayload):

  • UserInterface/Models/ProfileNode.js:

(WI.ProfileNode):
(WI.ProfileNode.prototype.get startTime):
(WI.ProfileNode.prototype.get endTime):
(WI.ProfileNode.prototype.computeCallInfoForTimeRange):
(WI.ProfileNode.prototype.get calls): Deleted.
(WI.ProfileNode.prototype.computeCallInfoForTimeRange.totalTimeInRange): Deleted.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.get initiatedResources):
(WI.Resource.prototype.get originalRequestWillBeSentTimestamp): Deleted.

  • UserInterface/Models/ResourceTimingData.js:

(WI.ResourceTimingData.fromPayload):

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording):
(WI.TimelineRecording.prototype.computeElapsedTime):
(WI.TimelineRecording.prototype.setLegacyBaseTimestamp): Deleted.

  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.fromPayload):
(WI.RemoteObject.prototype.getDisplayablePropertyDescriptors):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.initialize):

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WI.ObjectTreePropertyTreeElement.prototype._updateProperties):
(WI.ObjectTreePropertyTreeElement):

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView.prototype._updateProperties):

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WI.ScriptTimelineDataGridNode.prototype.get data):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator):
(WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView):
(WI.TimelineTabContentView.prototype.closed):
(WI.TimelineTabContentView.prototype.restoreFromCookie):

  • Versions/Inspector-iOS-8.0.json: Removed.
1:02 PM Changeset in webkit [261107] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Remove unneeded check for Apple Media Services
https://bugs.webkit.org/show_bug.cgi?id=211391
<rdar://problem/62853199>

Reviewed by Per Arne Vollan.

Earlier in the development cycle we added an entitlement check for AppleMediaServices, that we now realize
we do not need. Since this is a non-zero performance cost, remove this check.

  • UIProcess/WebPageProxy.cpp:
1:00 PM Changeset in webkit [261106] by eric.carlson@apple.com
  • 4 edits in trunk/LayoutTests

(r261004) platform/mac/media/media-source/media-source-change-source.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211326
<rdar://problem/62751237>

Unreviewed, skip new test on platforms where it is expected to fail.

Set explicitly timeout before checking initial audio session category so it will fail
with an error message if it takes too long to run. Skip the test in the GPU process, because
audio session is not yet fully supported, and on WK1 because audio session is a singleton.

  • gpu-process/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/media/media-source/media-source-change-source.html: Added.
12:58 PM Changeset in webkit [261105] by Devin Rousso
  • 17 edits
    4 deletes in trunk/Source/WebInspectorUI

Web Inspector: drop support for iOS 10.*
https://bugs.webkit.org/show_bug.cgi?id=211318

Reviewed by Daniel Bates.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.supportsDOMBreakpoints):
(WI.DOMDebuggerManager.prototype._updateDOMBreakpoint):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.async initializeTarget):
(WI.DebuggerManager.prototype.debuggerDidResume):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
(WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
(WI.NetworkManager.prototype.markResourceRequestAsServedFromMemoryCache): Deleted.

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager.prototype.initializeTarget):

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.legacyMarkServedFromMemoryCache): Deleted.
(WI.Resource.prototype.legacyMarkServedFromDiskCache): Deleted.

  • UserInterface/Models/ResourceTimingData.js:

(WI.ResourceTimingData.fromPayload):

  • UserInterface/Models/WebSocketResource.js:

(WI.WebSocketResource.prototype.addFrame):

  • UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/NetworkObserver.js:

(WI.NetworkObserver.prototype.requestServedFromCache): Deleted.

  • UserInterface/Protocol/PageObserver.js:

(WI.PageObserver.prototype.frameClearedScheduledNavigation):
(WI.PageObserver):
(WI.PageObserver.prototype.javascriptDialogOpening): Deleted.
(WI.PageObserver.prototype.javascriptDialogClosed): Deleted.
(WI.PageObserver.prototype.scriptsEnabled): Deleted.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._garbageCollect):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WI.NetworkTimelineView):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):

  • UserInterface/Views/WebSocketContentView.js:

(WI.WebSocketContentView):
(WI.WebSocketContentView.prototype._addRow):

  • Versions/Inspector-iOS-10.0.json: Removed.
  • Versions/Inspector-iOS-10.3.json: Removed.
  • UserInterface/Protocol/CSSObserver.js:

(WI.CSSObserver.prototype.namedFlowCreated):
(WI.CSSObserver.prototype.namedFlowRemoved):
(WI.CSSObserver.prototype.regionOversetChanged):
(WI.CSSObserver.prototype.registeredNamedFlowContentElement):
(WI.CSSObserver.prototype.unregisteredNamedFlowContentElement):
Fix compatibility comments.

12:51 PM Changeset in webkit [261104] by Devin Rousso
  • 19 edits in trunk

Web Inspector: Worker: should use the name of the worker if it exists
https://bugs.webkit.org/show_bug.cgi?id=211244

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Worker.json:

Include the name in Worker.workerCreated.

Source/WebCore:

Test: inspector/worker/runtime-basic.html

Pass the name from the WorkerOptions given to the Worker when it's constructed to Web
Inspector so it can be used in the frontend UI.

Drive-by: replace lots of pointers with references.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerInspectorProxy.h:

(WebCore::WorkerInspectorProxy::name const): Added.

  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::workerStarted):
(WebCore::WorkerInspectorProxy::workerTerminated):
(WebCore::WorkerInspectorProxy::connectToWorkerInspectorController):
(WebCore::WorkerInspectorProxy::sendMessageFromWorkerToFrontend):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::workerStarted):
(WebCore::InspectorInstrumentation::workerTerminated):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::workerStartedImpl):
(WebCore::InspectorInstrumentation::workerTerminatedImpl):

  • inspector/agents/InspectorWorkerAgent.h:
  • inspector/agents/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::sendMessageFromWorkerToFrontend):
(WebCore::InspectorWorkerAgent::workerStarted):
(WebCore::InspectorWorkerAgent::workerTerminated):
(WebCore::InspectorWorkerAgent::connectToAllWorkerInspectorProxiesForPage):
(WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):
(WebCore::InspectorWorkerAgent::disconnectFromWorkerInspectorProxy):

Source/WebInspectorUI:

  • UserInterface/Protocol/WorkerObserver.js:

(WI.WorkerObserver.prototype.workerCreated):

  • UserInterface/Controllers/WorkerManager.js:

(WI.WorkerManager.prototype.workerCreated):

  • UserInterface/Protocol/WorkerTarget.js:

(WI.WorkerTarget):
(WI.WorkerTarget.prototype.get customName): Added.
(WI.WorkerTarget.prototype.get displayName):
(WI.WorkerTarget.prototype.get displayURL): Added.
Use the name from the WorkerOptions given to the Worker when it's constructed as the
displayName of the WI.WorkerTarget if able. Also exposed via get customName.

  • UserInterface/Views/ScriptTreeElement.js:

(WI.ScriptTreeElement):

  • UserInterface/Views/WorkerTreeElement.js:

(WI.WorkerTreeElement):
Accept an options optional object that can be used to override the mainTitle.

LayoutTests:

  • inspector/worker/runtime-basic.html:
  • inspector/worker/runtime-basic-expected.txt:
12:51 PM Changeset in webkit [261103] by Devin Rousso
  • 27 edits
    4 adds in trunk

Web Inspector: provide a way for inspector to turn on/off ITP debug mode and AdClickAttribution debug mode
https://bugs.webkit.org/show_bug.cgi?id=209763

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Add new enum values to Page.Setting:

  • AdClickAttributionDebugModeEnabled
  • ITPDebugModeEnabled

Source/WebCore:

Tests: inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html

inspector/page/overrideSetting-ITPDebugModeEnabled.html

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::overrideSetting):

  • inspector/InspectorClient.h:

(WebCore::InspectorClient::setDeveloperPreferenceOverride): Added.
(WebCore::InspectorClient::setMockCaptureDevicesEnabledOverride): Deleted.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WI._handleDeviceSettingsTabBarButtonClicked):
Add a new section to the device settings popover:

Enable: [ ] ITP Debug Mode

[ ] Ad Click Attribution Debug Mode

  • Localizations/en.lproj/localizedStrings.js:

Source/WebKit:

Generalize the setMockCaptureDevicesEnabledOverride to be setDeveloperPreferenceOverride
that uses an enum WebCore::InspectorClient::DeveloperPreference to know what to do.

Communicate with the NetworkProcess (from the WebProcess via the UIProcess) in the case of:

  • AdClickAttributionDebugModeEnabled
  • ITPDebugModeEnabled
  • WebProcess/Inspector/WebInspectorClient.h:
  • WebProcess/Inspector/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::setDeveloperPreferenceOverride): Added.
(WebKit::WebInspectorClient::setMockCaptureDevicesEnabledOverride): Deleted.

  • WebProcess/Inspector/WebInspector.h:
  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::setDeveloperPreferenceOverride): Added.
(WebKit::WebInspector::setMockCaptureDevicesEnabledOverride): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.messages.in:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDeveloperPreferenceOverride): Added.
(WebKit::WebInspectorProxy::setMockCaptureDevicesEnabledOverride): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setAdClickAttributionDebugMode): Added.

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

(WebKit::NetworkProcessProxy::setAdClickAttributionDebugMode): Added.

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

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setAdClickAttributionDebugMode): Added.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):

LayoutTests:

  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html: Added.
  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled-expected.txt: Added.
  • inspector/page/overrideSetting-ITPDebugModeEnabled.html: Added.
  • inspector/page/overrideSetting-ITPDebugModeEnabled-expected.txt: Added.
12:49 PM Changeset in webkit [261102] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

REGRESSION: [ Mac WK1 ] inspector/console/console-api.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=211386

Reviewed by David Kilzer.

Add some temporary logging code to get data from Mojave bots related to this
NSScrollerImp crash.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::dumpPaintersWithDelegates):
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):

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

[Catalina] ASSERTION FAILED: Unsafe to ref/deref from different threads seen with TestWebKitAPI.MultipleClientCertificateConnections.Failure
https://bugs.webkit.org/show_bug.cgi?id=211300

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-04
Reviewed by Youenn Fablet.

RequestData references are stored in blocks given to the network framework, which does things on background threads.
To make them safe to ref and deref on non-main threads, make RequestData ThreadSafeRefCounted.

  • TestWebKitAPI/cocoa/HTTPServer.mm:
12:44 PM Changeset in webkit [261100] by Doug Kelly
  • 2 edits in trunk/Source/WebCore

Add additional null checks to MediaPlayerPrivateMediaSourceAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=211134
<rdar://problem/62056577>

Reviewed by Daniel Bates.

Add additional null checks for a set m_mediaSourcePrivate to MediaPlayerPrivateMediaSourceAVFObjC. Most uses in this
class are already guarded, but a few were not, which could lead to a null pointer crash if encountered.

No new tests; no functional changes.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):

12:28 PM Changeset in webkit [261099] by Chris Dumez
  • 3 edits
    1 add in trunk/Source/WebKit

[iOS] Unable to take RunningBoard process assertions in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=211254
<rdar://problem/62674074>

Reviewed by Geoffrey Garen.

Add com.apple.runningboard.assertions.webkit entitlement to iOS Simulator builds so that
we can take RunningBoard assertions on those platforms too.

While doing this, I found that we were not adding the entitlements properly for simulator
builds. For simulator builds, entitlements go into an entitlements section of the binary,
rather than in the signature. Use CODE_SIGN_ENTITLEMENTS directive in xcconfig so that
XCode does the right thing for simulator builds.

  • Configurations/BaseXPCService.xcconfig:
  • Resources/ios/XPCService-embedded-simulator.entitlements: Added.
  • Scripts/process-entitlements.sh:
12:18 PM Changeset in webkit [261098] by Darin Adler
  • 5 edits in trunk/Source

Remove now-unneded HAVE(WINDOW_SERVER_OCCLUSION_NOTIFICATIONS)
https://bugs.webkit.org/show_bug.cgi?id=211380

Reviewed by Sam Weinig.

Source/WebKit:

  • UIProcess/mac/WindowServerConnection.h: Don't check

HAVE(WINDOW_SERVER_OCCLUSION_NOTIFICATIONS) in this Mac-only header.
Also removed #pragma once in this header that is only included from .mm files.

  • UIProcess/mac/WindowServerConnection.mm: Wrapped the whole file in

PLATFORM(MAC) because this is macOS-specific code that may be compiled on
iOS family platforms. Could wrap it in HAVE(WINDOW_SERVER) instead, but we
don't have anything like that and PageClientImplMac.mm, the client of this
code, uses PLATFORM(MAC).
(WebKit::registerOcclusionNotificationHandler): Ditto.
(WebKit::WindowServerConnection::WindowServerConnection): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS.
12:04 PM Changeset in webkit [261097] by Darin Adler
  • 2 edits in trunk/Source/WTF

Remove unused USE(COREAUDIO)
https://bugs.webkit.org/show_bug.cgi?id=211384

Reviewed by Alex Christensen.

  • wtf/PlatformUse.h: Don't define USE_COREAUDIO.
11:52 AM Changeset in webkit [261096] by Darin Adler
  • 5 edits in trunk/Source

Remove now-unneeded HAVE(UI_REMOTE_VIEW)
https://bugs.webkit.org/show_bug.cgi?id=211382

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::createRemoteView): Deleted.
(WebKit::RemoteLayerTreeHost::makeNode): After researching to be sure the method
is present in the relevant versions of iOS 13, changed this code to use the
initWithFrame:pid:contextID: method without doing a selector check, and also
without a HAVE(UI_REMOTE_VIEW) conditional.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: Removed the

HAVE(UI_REMOTE_VIEW) conditional.

Source/WTF:

  • wtf/PlatformHave.h: Remove code to define HAVE_UI_REMOTE_VIEW.
11:47 AM Changeset in webkit [261095] by Darin Adler
  • 4 edits in trunk/Source

Remove now-unneeded HAVE(MENU_CONTROLLER_SHOW_HIDE_API)
https://bugs.webkit.org/show_bug.cgi?id=211381

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleDOMPasteRequestWithResult:]): Use hideMenuFromView: directly.
(-[WKContentView _requestDOMPasteAccessWithElementRect:originIdentifier:completionHandler:]):
Use showMenuFromView: directly.
(-[WKContentView showGlobalMenuControllerInRect:]): Deleted.
(-[WKContentView hideGlobalMenuController]): Deleted.

Source/WTF:

  • wtf/PlatformHave.h: Remove code to set HAVE_MENU_CONTROLLER_SHOW_HIDE_API.
11:41 AM Changeset in webkit [261094] by Darin Adler
  • 4 edits in trunk/Source

Remove now-unneeded HAVE(VOUCHERS)
https://bugs.webkit.org/show_bug.cgi?id=211379

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer): Remove HAVE(VOUCHERS) checks from this
Cocoa-only source file.

Source/WTF:

  • wtf/PlatformHave.h: Remove definition of HAVE_VOUCHERS.
11:26 AM Changeset in webkit [261093] by Darin Adler
  • 9 edits in trunk

Remove now-unneeded HAVE(MEDIA_PLAYER)
https://bugs.webkit.org/show_bug.cgi?id=211378

Reviewed by Alex Christensen.

Source/WebCore:

  • platform/RemoteCommandListener.cpp: Remove uneeded check for HAVE(MEDIA_PLAYER)

in code that already checks for Cocoa platforms explicitly.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring): Removed
check of HAVE(MEDIA_PLAYER) in a Cocoa-only source file.

  • platform/ios/RemoteCommandListenerIOS.h: Ditto. Also removed #pragma once and

some other unnecessary things because this is only included in the .mm file below.

  • platform/ios/RemoteCommandListenerIOS.mm: Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Remove code that sets HAVE_MEDIA_PLAYER.

Tools:

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

(TestWebKitAPI::TEST): Removed HAVE(MEDIA_PLAYER) check since it's now always
true in Objective-C source files.

11:24 AM Changeset in webkit [261092] by Darin Adler
  • 4 edits in trunk

Remove unused HAVE(STRINGS_H)
https://bugs.webkit.org/show_bug.cgi?id=211377

Reviewed by Alex Christensen.

.:

  • Source/cmake/OptionsCommon.cmake: Remove code to set HAVE_STRINGS_H.

Source/WTF:

  • wtf/PlatformHave.h: Remove code to set HAVE_STRINGS_H.
11:18 AM Changeset in webkit [261091] by commit-queue@webkit.org
  • 5 edits in trunk

Source/WebCore:
WebGPU: Textures should be able to have OUTPUT_ATTACHMENT | SAMPLED usage flags
https://bugs.webkit.org/show_bug.cgi?id=211345
<rdar://problem/62264423>

Patch by Guillem Vinals <gvinals@apple.com> on 2020-05-04
Reviewed by Myles C. Maxfield.

Added support for off-screen render targets.

Test: webgpu/textures-textureviews.html

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

(WebCore::mtlTextureUsageForGPUTextureUsageFlags):

LayoutTests:
WebGPU: Textures should be able to have OUTPUT_ATTACHEMENT | SAMPLED usage flags
https://bugs.webkit.org/show_bug.cgi?id=211345

Patch by Guillem Vinals <gvinals@apple.com> on 2020-05-04
Reviewed by Myles C. Maxfield.

  • webgpu/textures-textureviews-expected.txt:
  • webgpu/textures-textureviews.html:
11:00 AM Changeset in webkit [261090] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

TestWebKitAPI.WebKit.CustomDisplayName is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211299

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

The application name is being set on a background queue, but there's nothing actually keeping the NSString alive.
This may fix some timeouts we were seeing. I wonder why ASAN or guard malloc didn't catch this yet.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):

11:00 AM Changeset in webkit [261089] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

WebGPU: copyTextureToTexture() has an implementation bug (src copy view info is used also as dst)
https://bugs.webkit.org/show_bug.cgi?id=211303

Patch by Guillem Vinals <gvinals@apple.com> on 2020-05-04
Reviewed by Daniel Bates.

Source/WebCore:

The source copy information is also used as the destination copy information.

Test: webgpu/blit-commands-texture-to-texture.html

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

(WebCore::GPUCommandBuffer::copyTextureToTexture):

LayoutTests:

  • webgpu/blit-commands-texture-to-texture-expected.html: Added.
  • webgpu/blit-commands-texture-to-texture.html: Added.
  • webgpu/js/webgpu-functions.js:

(drawGreenMipChainOnRedBackgroundInSoftware):

9:55 AM Changeset in webkit [261088] by Darin Adler
  • 8 edits in trunk/Source

Remove no-longer-needed HAVE(UISCENE)
https://bugs.webkit.org/show_bug.cgi?id=211376

Reviewed by Chris Dumez.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h: Don't check HAVE(UISCENE) any more in this

iOS-family-only source file; it's always true.

  • UIProcess/ApplicationStateTracker.h: Ditto.
  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker): Ditto.
(WebKit::ApplicationStateTracker::~ApplicationStateTracker): Ditto.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView interfaceOrientation]): Ditto.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textEffectsWindow]): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_UISCENE any more.

It's always true for PLATFORM(IOS_FAMILY).

8:58 AM Changeset in webkit [261087] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WPE][GTK] Should install python3-secretstorage
https://bugs.webkit.org/show_bug.cgi?id=207473

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-04
Reviewed by Adrian Perez de Castro.

If python3-secretstorage is not installed, webkit-patch will use a custom encrypted file
for password storage instead of utilizing the system keyring. This means unnecessary
password prompts to unlock the custom encrypted key storage.

There is no benefit to using custom key storage over the system keyring.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
8:46 AM Changeset in webkit [261086] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
8:35 AM Changeset in webkit [261085] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
8:28 AM Changeset in webkit [261084] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Media controls tracks menu shows "Auto" selected instead of track selected via the JS API
https://bugs.webkit.org/show_bug.cgi?id=211230
<rdar://problem/62648409>

Patch by Antoine Quint <Antoine Quint> on 2020-05-04
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api.html

We're fixing two issues with the captions menu on macOS here.

First, if a text track was marked as "showing" with the JS API, we would not show it as selected in the UI
because MediaControlsHost would report that the captionDisplayMode was "automatic" and we'd take this as
sufficient data to say that the "Automatic (Recommended)" item should be shown as selected. We now only
do this if we also don't have any text tracks set as "showing".

The second issue was when trying to select "Automatic (Recommended)" when a text track had been marked as
"showing" with the JS API. Calling setSelectedTextTrack() on MediaControlsHost in this case was not sufficient
because HTMLMediaElement::setSelectedTextTrack is a no-op if the automatic text track is provided but captionDisplayMode
is still set to "automatic". To address this, we first disable all text tracks before calling setSelectedTextTrack().

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

(TracksSupport.prototype.tracksPanelIsTrackInSectionSelected):
(TracksSupport.prototype.tracksPanelSelectionDidChange):

LayoutTests:

Add a test that:

  • sets an embedded text track as selected via the HTMLMediaElement TextTrack APIs,
  • brings up the tracks panel,
  • dumps its initial UI state, checking that the track selected via the API shows as selected in the UI,
  • selects the "Automatic (Recommended)" track,
  • brings up the tracks panel again,
  • dumps its current UI state, checking that the "Automatic (Recommended)" shows as selected in the UI.
  • media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api-expected.txt: Added.
  • media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api.html: Added.
7:59 AM Changeset in webkit [261083] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][TFC] Override the table computed height when content needs more space
https://bugs.webkit.org/show_bug.cgi?id=211367

Reviewed by Antti Koivisto.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

7:53 AM Changeset in webkit [261082] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Use distributeAvailableSpace for row sizing
https://bugs.webkit.org/show_bug.cgi?id=211366

Reviewed by Antti Koivisto.

Switch over to the generic space distribution for table row sizing.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::RowSpan::hasSpan):
(WebCore::Layout::RowSpan::isSpanned):
(WebCore::Layout::RowSpan::spanCount):
(WebCore::Layout::RowSpan::startSpan):
(WebCore::Layout::RowSpan::endSpan):
(WebCore::Layout::RowSpan::index):
(WebCore::Layout::RowSpan::size):
(WebCore::Layout::RowSpan::spacing):
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

7:35 AM Changeset in webkit [261081] by Andres Gonzalez
  • 13 edits in trunk

Add WTR::AccessibilityUIElement::attributeValueAsync to retrieve attribute values in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=211341

Reviewed by Chris Fleizach.

Tools:

To simulate running WebAccessibilityObjectWrapper methods on the secondary
thread, WTR::AccessibilityUIElement dispatches those calls to the AX
thread. But some WebAccessibilityObjectWrapper calls cannot be fulfilled
on the secondary thread and in turn have to be dispatched to the main
thread. This was causing a thread lock during LayoutTests in isolated
tree mode since the initial dispatch to the secondary thread blocks the
main thread. The solution in this patch is to add an asynchronous
mechanism to retrieve attribute values.

  • Added WTR::AccessibilityUIElement::attributeValueAsync.
  • Made several fixes consisting of retaining variables in the main

thread whose values are computed on the secondary thread.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::executeOnAXThreadAndWait):
(WTR::AccessibilityController::executeOnAXThread):
(WTR::AccessibilityController::executeOnMainThread):
(WTR::AXThread::dispatchBarrier):
(WTR::AccessibilityController::executeOnAXThreadIfPossible): Renamed executeOnAXThreadAndWait.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm:

(WTR::webAccessibilityObjectWrapperClass):
(WTR::makeArrayRefForArray):
(WTR::makeObjectRefForDictionary):
(WTR::makeValueRefForValue):
(WTR::searchPredicateParameterizedAttributeForSearchCriteria):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::accessibleElementById):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler startObserving]):
(-[AccessibilityNotificationHandler _notificationReceived:]):
(webAccessibilityObjectWrapperClass): Moved to AccessibilityCommonMac.
(makeValueRefForValue): Moved to AccessibilityCommonMac.
(makeArrayRefForArray): Moved to AccessibilityCommonMac.
(makeObjectRefForDictionary): Moved to AccessibilityCommonMac.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::supportedAttributes):
(WTR::attributeValue):
(WTR::setAttributeValue):
(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::getChildrenWithRange):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::attributeValueAsync):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

LayoutTests:

This test exercises the new WTR::AccessibilityUIElement::atributeValueAsync method.
Instead of using shouldBeTrue that does not work with local variables,
uses debug to log results.

  • accessibility/mac/primary-screen-height-expected.txt:
  • accessibility/mac/primary-screen-height.html:
7:13 AM Changeset in webkit [261080] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Camera video samples have a bad orientation if upside down
https://bugs.webkit.org/show_bug.cgi?id=211373

Reviewed by Eric Carlson.

Manually tested on iPad and iPhones.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::computeSampleRotation):
-90 should be the same as 270 not -270.

1:57 AM Changeset in webkit [261079] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Unreviewed, reverting r261076.
https://bugs.webkit.org/show_bug.cgi?id=211371

Triggers obscure X11 error on GTK bots (Requested by philn on
#webkit).

Reverted changeset:

"[Flatpak SDK] Query the doc portal path with DBus"
https://bugs.webkit.org/show_bug.cgi?id=211281
https://trac.webkit.org/changeset/261076

1:31 AM Changeset in webkit [261078] by Philippe Normand
  • 3 edits in trunk/Tools

[Flatpak SDK] Support for local repository and drive-by fixes
https://bugs.webkit.org/show_bug.cgi?id=211370

Reviewed by Žan Doberšek.

This patch adds a new --repo option to webkit-flatpak, allowing
SDK developers to test local changes made to the SDK. As future
versions of the SDK will depend on the ffmpeg FDO extension,
flatpakutils installs it from now on. One consequence is that the
LD_LIBRARY_PATH set in the GTK layout test driver is no longer
overriden when running in the flatpak SDK, in order to allow the
extension to set it correctly.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • flatpak/flatpakutils.py:

(FlatpakRepos.add):
(FlatpakRepo.repo_file):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak._reset_repository):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak._get_packages):
(run_in_sandbox_if_available):

1:27 AM Changeset in webkit [261077] by ysuzuki@apple.com
  • 4 edits in trunk/Source

Unreviewed, speculative build fix for r261071
https://bugs.webkit.org/show_bug.cgi?id=211274

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
1:23 AM Changeset in webkit [261076] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Flatpak SDK] Query the doc portal path with DBus
https://bugs.webkit.org/show_bug.cgi?id=211281

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-04
Reviewed by Žan Doberšek.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

12:28 AM Changeset in webkit [261075] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WebCore

[gtk] isMainThread() assert when running minibrowser in debug builds.
https://bugs.webkit.org/show_bug.cgi?id=211355

Reviewed by Mark Lam.

Using NeverDestroyed<const AtomString> is discouraged if it is in the non main thread. This can be quite easily wrong:
if the running thread is one of WorkerPool, then this is wrong since AtomStringTable will be destroyed every time underlying
Thread is shutdown. If this is invoked by AutomaticThread, this is also wrong due to the same reason etc. This is why
we introduced MainThreadNeverDestroyed and use it for const AtomString. This restriction found the bug that we are using
NeverDestroyed<const AtomString> in non main thread. We should not do that.

This patch fixes the issue by introducing TextureMapperShaderProgram::Variable instead of using AtomString. Then this code
no longer has thread affinity.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::getLocation): Deleted.

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
12:16 AM Changeset in webkit [261074] by emilio
  • 18 edits in trunk

Put lh / rlh units behind a flag until bug 211351 is sorted out.
https://bugs.webkit.org/show_bug.cgi?id=211356

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/lh-rlh-on-root-001.html: Enable the flag in relevant tests.
  • web-platform-tests/css/css-values/lh-unit-001.html:
  • web-platform-tests/css/css-values/lh-unit-002.html:

Source/WebCore:

  • css/parser/CSSParserToken.cpp: Use the new runtime flag to disable parsing the units.

(WebCore::cssPrimitiveValueUnitFromTrie):

  • page/RuntimeEnabledFeatures.h: Define the new runtime flag.

(WebCore::RuntimeEnabledFeatures::setLineHeightUnitsEnabled):
(WebCore::RuntimeEnabledFeatures::lineHeightUnitsEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml: Define the runtime flag.

Source/WebKitLegacy/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences lineHeightUnitsEnabled]):
(-[WebPreferences setLineHeightUnitsEnabled:]):

  • WebView/WebView.mm:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

12:13 AM Changeset in webkit [261073] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Remove some unused and broken functions in Bitmap.
https://bugs.webkit.org/show_bug.cgi?id=211368

Reviewed by Yusuke Suzuki.

Bitmap::operator[] never worked. There's currently no way to use it to read a
bit value. We also can't use it to set a bit value because it relies on
Bitmap::iterator::operator= to set the value. However, Bitmap::iterator stores
the Bitmap* as a const pointer, and Bitmap::iterator::operator= calls set() on
the const pointer. If we try to use operator[] to set a bit, we'll get a
compilation error.

This patch removes the 2 variants of Bitmap::operator[] and Bitmap::iterator::operator=.

  • wtf/Bitmap.h:

(WTF::WordType>::operator): Deleted.
(WTF::WordType>::operator const const): Deleted.

12:07 AM Changeset in webkit [261072] by Patrick Griffis
  • 2 edits in trunk/Tools

[Flatpak SDK] Misc flatpakutils.py fixes
https://bugs.webkit.org/show_bug.cgi?id=211032

Reviewed by Philippe Normand.

Pass SSLKEYLOGFILE into sandbox which is useful for debugging with Wireshark.

Sanitize G_MESSAGES_DEBUG env var when checking output of flatpak command.

Fix check for --noninteractive support.

Fix python 3 exception when setting up icecc mixing strings and bytes.

  • flatpak/flatpakutils.py:

(Console.warning_message):
(flatpak_check_output):
(check_flatpak):
(FlatpakObject.flatpak):

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

May 3, 2020:

9:14 PM Changeset in webkit [261071] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Use LocalCurrentGraphicsContext in WebKit::convertPlatformImageToBitmap()
<https://webkit.org/b/211274>

Reviewed by Darin Adler.

Source/WebCore:

  • platform/mac/LocalCurrentGraphicsContext.h:

(WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
(WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):

  • Export methods for use in WebKit.

Source/WebKit:

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::convertPlatformImageToBitmap):

  • Use LocalCurrentGraphicsContext to replace code.
8:42 PM Changeset in webkit [261070] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Fix static analyzer false positive in -[WebUndefined undefined]
<https://webkit.org/b/211353>

Reviewed by Darin Adler.

  • bridge/objc/WebScriptObject.mm:

(+[WebUndefined allocWithZone:]):
(-[WebUndefined initWithCoder:]):
(-[WebUndefined retain]):
(-[WebUndefined autorelease]):

  • Update method signatures.

(+[WebUndefined undefined]):

  • Fix clang static analyzer false positive by using idiomatic -alloc, -init calls to create object. These methods call -allocWithZone:, so this still uses the singleton pattern.
3:37 PM Changeset in webkit [261069] by dbates@webkit.org
  • 2 edits in trunk/Tools

Attempt to fix the iOS build after r261068
(https://bugs.webkit.org/show_bug.cgi?id=208281)

Wrap TEST()s in namespace TestWebKitAPI so as to not need to qualify IPhoneUserInterfaceSwizzler.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TEST): Deleted.

3:14 PM Changeset in webkit [261068] by dbates@webkit.org
  • 2 edits in trunk/Tools

[iPad Simulator] TestWebKitAPI.UIWKInteractionViewProtocol.SelectPositionAtPointAfterBecomingFirstResponder is failing
https://bugs.webkit.org/show_bug.cgi?id=208281
<rdar://problem/59829265>

Reviewed by Wenson Hsieh.

I tried to write the test SelectPositionAtPointAfterBecomingFirstResponder for both iPad and iPhone,
but it turns out that I forgot an impl detail on how form control dismissal works for iPad and fixing
this would require adding more SPI/IPI. This is largely due to differences in form control UI and
conventions for dismissing such UI. This test isn't testing such UI it just needs to ensure that the
view is not first responder before it runs the actual test code. It uses an iPhone specific set of
steps to do this. It's enough to test this functionality on iPhone.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TEST):

3:00 PM Changeset in webkit [261067] by mjs@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove no longer needed WebKitAdditions include for JavaScriptCorePrefix.h
https://bugs.webkit.org/show_bug.cgi?id=211357

Reviewed by Mark Lam.

  • JavaScriptCorePrefix.h:
2:42 PM Changeset in webkit [261066] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Use default initializers and default constructors in WebEvent.h
<https://webkit.org/b/211354>

Reviewed by Daniel Bates.

  • Shared/WebEvent.h:

(WebKit::WebWheelEvent):
(WebKit::WebKeyboardEvent):
(WebKit::WebPlatformTouchPoint):
(WebKit::WebTouchEvent):

  • Change empty constructors to use default.
  • Use default initializers to make sure all fields are initialized.
1:53 PM Changeset in webkit [261065] by dbates@webkit.org
  • 6 edits
    4 copies
    2 moves
    2 adds in trunk

Sometimes cannot find <textarea> in list of editable elements
https://bugs.webkit.org/show_bug.cgi?id=211348
<rdar://problem/62231067>

Reviewed by Simon Fraser.

Source/WebCore:

When building the editable region add the bounds of the text control to the region instead
of the bounds of its inner text element even though it is the latter that is actually editable.
Using the bounds of the text control is more in line with a user's expectation for the editable
portion of a text control: the entire control. So, do that.

Tests: editing/editable-region/hit-test-textarea-empty-space.html

editing/editable-region/search-field-basic.html
editing/editable-region/text-field-basic.html
editing/editable-region/textarea-basic.html

  • rendering/EventRegion.cpp:

(WebCore::EventRegionContext::unite):
(WebCore::EventRegion::unite):
Add a new bool as to whether to override the user-modify check and just assume that the region
is for something editable. This is needed because the form control (e.g. the <input> or <textarea>
aka the shadow host element) isn't actually editable itself. Its inner text element is editable.
RenderBlock::paintObject() will pass true for this override when event region painting such a
control and the control's inner text element is editable so that the controls bounds are added to
the editable region.

  • rendering/EventRegion.h: Add a bool, defaulting to false to keep the current behavior. While

I am here remove some unneeded WEBCORE_EXPORT attributions.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject): Pass a value for the override argument. It will be true
if this block is actually a text control and its inner text element is editable. Otherwise, it
will be false. There is also no longer a need to descend into the children of a text control
because I only care to record the bounds of the control itself as editable, not its inner text
element.

LayoutTests:

Update some existing test results and add some more tests.

  • editing/editable-region/hit-test-textarea-empty-space-expected.txt: Added.
  • editing/editable-region/hit-test-textarea-empty-space.html: Added.
  • editing/editable-region/overflow-scroll-text-field-and-contenteditable-expected.txt:
  • editing/editable-region/search-field-basic-expected.txt: Copied from LayoutTests/editing/editable-region/input-basic-expected.txt.
  • editing/editable-region/search-field-basic.html: Copied from LayoutTests/editing/editable-region/input-basic.html.
  • editing/editable-region/text-field-basic-expected.txt: Copied from LayoutTests/editing/editable-region/input-basic-expected.txt.
  • editing/editable-region/text-field-basic.html: Copied from LayoutTests/editing/editable-region/input-basic.html.
  • editing/editable-region/textarea-basic-expected.txt: Renamed from LayoutTests/editing/editable-region/input-basic-expected.txt.
  • editing/editable-region/textarea-basic.html: Renamed from LayoutTests/editing/editable-region/input-basic.html.
11:23 AM Changeset in webkit [261064] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][TFC] Turns horizontal space distribution into a generic space distribution
https://bugs.webkit.org/show_bug.cgi?id=211352

Reviewed by Antti Koivisto.

Horizontal(column) and vertical(row) space distributions use essentially the same logic to distribute
the extra space among the columns/rows.
This patch turns the horizontal space distribution function into a generic space distribution code so
that we can use it for row sizing as well.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::ColumnSpan::hasSpan):
(WebCore::Layout::ColumnSpan::isSpanned):
(WebCore::Layout::ColumnSpan::spanCount):
(WebCore::Layout::ColumnSpan::startSpan):
(WebCore::Layout::ColumnSpan::endSpan):
(WebCore::Layout::ColumnSpan::index):
(WebCore::Layout::ColumnSpan::size):
(WebCore::Layout::ColumnSpan::spacing):
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::slot const):

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

AudioMediaStreamTrackRendererCocoa should create/start/stop its remote unit on the main thread
https://bugs.webkit.org/show_bug.cgi?id=211287

Reviewed by Eric Carlson.

Creating/starting/stopping audio units in different threads is error prone.
Now that we have an observer model where we have observers for when to play in the main thread and
based on that, we decide to receive audio samples in a background thread, we can simplify the logic of AudioMediaStreamTrackRendererCocoa.
We do this by creating/starting the unit in AudioMediaStreamTrackRendererCocoa::start.
At that point, AudioMediaStreamTrackRendererCocoa is not expected to receive any sample.
Just after starting, AudioTrackPrivateMediaStream will receive audio samples and forward them to AudioMediaStreamTrackRendererCocoa.
AudioMediaStreamTrackRendererCocoa will then create in a background thread the AudioSampleDataSource that is responsible to adapt the received audio samples to the unit.

Manually tested.

  • platform/audio/mac/AudioSampleDataSource.h:

(WebCore::AudioSampleDataSource::inputDescription const):

  • platform/audio/mac/CAAudioStreamDescription.h:
  • platform/mediastream/AudioTrackPrivateMediaStream.cpp:

(WebCore::AudioTrackPrivateMediaStream::startRenderer):
Ensure to start the unit and then start gettting audio samples.

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::start):
(WebCore::AudioMediaStreamTrackRendererCocoa::stop):
(WebCore::AudioMediaStreamTrackRendererCocoa::clear):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
(WebCore::AudioMediaStreamTrackRendererCocoa::render):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h:
8:59 AM Changeset in webkit [261062] by Simon Fraser
  • 4 edits in trunk/LayoutTests

Unreviewed test cleanup.

Remove some unused elements from these tests, and send a couple of mouseMoved
events to reduce the chances of flakiness.

  • fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html:
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal-expected.txt:
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html:
2:53 AM Changeset in webkit [261061] by commit-queue@webkit.org
  • 11 edits in trunk

atob() should not accept a vertical tab
https://bugs.webkit.org/show_bug.cgi?id=184529

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

LayoutTests/imported/w3c:

Update improved test expectations.

  • web-platform-tests/fetch/data-urls/base64.any-expected.txt:
  • web-platform-tests/fetch/data-urls/base64.any.worker-expected.txt:
  • web-platform-tests/fetch/data-urls/resources/base64.json: Add test for unicode whitespace.
  • web-platform-tests/html/webappapis/atob/base64-expected.txt:

Source/WebCore:

The forgiving-base64 decode algorithm [1] uses [2] to strip
out ASCII whitespace which does not include vertical tabs, so
change the atob() implementation to not strip out vertical
tabs and thus to fail decode on vertical tabs.

[1] https://infra.spec.whatwg.org/#forgiving-base64-decode
[2] https://infra.spec.whatwg.org/#ascii-whitespace

Behavior matches Firefox and Chrome.

  • page/Base64Utilities.cpp:

(WebCore::Base64Utilities::atob):

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::decodeBase64):

Source/WTF:

Add an option to allow discarding of base64 decoding
when a vertical tab is encountered.

  • wtf/text/Base64.cpp:

(WTF::base64DecodeInternal):

  • wtf/text/Base64.h:
12:44 AM Changeset in webkit [261060] by dbates@webkit.org
  • 2 edits in trunk/Tools

Update info.

  • Scripts/webkitpy/common/config/contributors.json:

May 2, 2020:

11:20 PM Changeset in webkit [261059] by ChangSeok Oh
  • 2 edits in trunk/Tools

Unreviewed, add myself to some watch lists.

  • Scripts/webkitpy/common/config/watchlist:
11:18 PM Changeset in webkit [261058] by mark.lam@apple.com
  • 3 edits in trunk/LayoutTests

editing/undo-manager/undo-manager-delete-stale-undo-items.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=211340
<rdar://problem/62767874>

Reviewed by Wenson Hsieh.

The test aims to measure the number of GC'ed Undo related objects. It created
and estimated 600 objects and allows an error of 20 objects after GC is expected
to have collected these objects. This turns out to be too tight an error allowance.
Just running any JS code could inadvertantly create more objects, that will exceed
that error allowance.

This patch attempts to make the test more robust by increasing the created object
count to an estimated 3000 objects and allows an error of 300 objects. This means
we'll expect to see at least 2700 objects collected. That is a high enough number
that it cannot be attributed to unexpected objects created by the JS runtime being
GCed. The allowance of 300 is also much higher than number of unexpected objects
that the JS runtime may reasonably create beyond those managed by this test.

With this change, the test no longer times out.

  • editing/undo-manager/undo-manager-delete-stale-undo-items-expected.txt:
  • editing/undo-manager/undo-manager-delete-stale-undo-items.html:
8:53 PM Changeset in webkit [261057] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Add a log channel for OverlayScrollbars
https://bugs.webkit.org/show_bug.cgi?id=211329

Reviewed by Zalan Bujtas.

Overlay scrollbar behavior is opaque. This log channel will add clarity.

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

(operator<<):
(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:setCurrentProgress:]):
(WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
(WebCore::ScrollAnimatorMac::mouseExitedContentArea):
(WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
(WebCore::ScrollAnimatorMac::didBeginScrollGesture const):
(WebCore::ScrollAnimatorMac::didEndScrollGesture const):
(WebCore::ScrollAnimatorMac::mayBeginScrollGesture const):
(WebCore::ScrollAnimatorMac::handleWheelEventPhase):

8:49 PM Changeset in webkit [261056] by Simon Fraser
  • 12 edits
    9 adds in trunk

Make it possible to test overlay scrollbar interactions
https://bugs.webkit.org/show_bug.cgi?id=211342

Reviewed by Daniel Bates.

Source/WebCore:

Add internals.horizontalScrollbarState() and internals.verticalScrollbarState() and hook them
up via ScrollableArea to ScrollAnimatorMac. They dump state based on the NSScrollerImp state.

Make internals.setUsesOverlayScrollbars(true) actually trigger real overlay scrollbars by notifying
the ScrollbarTheme about the scrollbar style change.

Tests: fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html

fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html
fast/scrolling/mac/scrollbars/overlay-scrollbar-state.html
fast/scrolling/mac/scrollbars/scrollbar-state.html

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::horizontalScrollbarStateForTesting const):
(WebCore::ScrollAnimator::ScrollAnimator::verticalScrollbarStateForTesting const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::horizontalScrollbarStateForTesting const):
(WebCore::ScrollableArea::verticalScrollbarStateForTesting const):

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

(WebCore::scrollbarState):
(WebCore::ScrollAnimatorMac::horizontalScrollbarStateForTesting const):
(WebCore::ScrollAnimatorMac::verticalScrollbarStateForTesting const):

  • testing/Internals.cpp:

(WebCore:: const):
(WebCore::Internals::scrollbarOverlayStyle const):
(WebCore::Internals::scrollbarUsingDarkAppearance const):
(WebCore::Internals::horizontalScrollbarState const):
(WebCore::Internals::verticalScrollbarState const):
(WebCore::Internals::setUsesOverlayScrollbars):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

New tests, and some helper functions in UIHelper.

  • fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html: Added.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html: Added.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-state-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-state.html: Added.
  • fast/scrolling/mac/scrollbars/scrollbar-state-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/scrollbar-state.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.async mouseWheelMayBeginAt):
(window.UIHelper.async mouseWheelCancelAt):
(window.UIHelper.async waitForCondition):

2:23 PM Changeset in webkit [261055] by mark.lam@apple.com
  • 6 edits
    1 delete in trunk/Source

Gardening: rolling out r261050 and r261051.
https://bugs.webkit.org/show_bug.cgi?id=211328
<rdar://problem/62755865>

Not reviewed.

Source/JavaScriptCore:

  • assembler/CPU.h:

Source/WTF:

Appears to make editing/undo-manager/undo-manager-delete-stale-undo-items.html timeout always.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bitmap.h:
  • wtf/CMakeLists.txt:
  • wtf/StdIntExtras.h: Removed.
2:21 PM Changeset in webkit [261054] by dbates@webkit.org
  • 4 edits in trunk

Page::editableElementsInRect() should return root editable elements
https://bugs.webkit.org/show_bug.cgi?id=211343
<rdar://problem/60015801>

Reviewed by Simon Fraser.

Source/WebCore:

Return the root editable element for each non-text form control editable element
inside the search rect as it may not have been hit itself. This can happen if the
search rect is small enough to intersect only child elements of the root editable
elements.

  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const):
(WebCore::isEditableTextInputElement): Deleted.

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

12:35 PM Changeset in webkit [261053] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

scrollableAreaForScrollingNodeID() gives the wrong answer for the FrameView
https://bugs.webkit.org/show_bug.cgi?id=211310

Reviewed by Zalan Bujtas.

Given the FrameView's scrollingNodeID, RenderLayerCompositor::scrollableAreaForScrollingNodeID()
would return the RenderView's layer when it should return the FrameView itself.

Fixing this allows removal of a special-case in setActiveScrollSnapIndices().

No behavior change.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setActiveScrollSnapIndices):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::scrollableAreaForScrollingNodeID const):

12:32 PM Changeset in webkit [261052] by Simon Fraser
  • 14 edits in trunk/Source

handleWheelEventPhase() should include the relevant ScrollingNodeID
https://bugs.webkit.org/show_bug.cgi?id=211315

Reviewed by Tim Horton.

handleWheelEventPhase() is used to send information about wheel event phases
to the main thread, which make their way to ScrollAnimatorMac::handleWheelEventPhase()
and are used to update the state of overlay scrollbars. In order to talk to the
correct set of scrollbars with overflow:scroll, we need to send along the ScrollingNodeID
and map that to the appropriate ScrollableArea.

Will be tested by future overlay scrollbar tests.

Source/WebCore:

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::handleWheelEventPhase):

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

(WebCore::ScrollingCoordinator::handleWheelEventPhase): Deleted.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::handleWheelEventPhase):

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

(WebCore::ThreadedScrollingTree::handleWheelEventPhase):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):

  • platform/mac/ScrollAnimatorMac.mm:

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::handleWheelEventPhase):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
12:07 PM Changeset in webkit [261051] by mark.lam@apple.com
  • 1 edit
    1 add in trunk/Source/WTF

[Follow up] Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
https://bugs.webkit.org/show_bug.cgi?id=211328
<rdar://problem/62755865>

Not reviewed.

Landing file missed in last commit.

  • wtf/StdIntExtras.h: Added.
10:03 AM Changeset in webkit [261050] by mark.lam@apple.com
  • 6 edits in trunk/Source

Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
https://bugs.webkit.org/show_bug.cgi?id=211328
<rdar://problem/62755865>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/CPU.h:

Source/WTF:

  1. Moved the definition of CPURegister and UCPURegister down into WTF.
  2. Updated Bitmap so that it will automatically choose the minimal required word size for the number of bits it needs to store. This means the Bitmap can automatically choose a WordType from uint8_t up to UCPURegister. Previously, the WordType is always uint32_t by default.

This should improve perf with use of Bitmap on 64-bit platforms. The size
optimization is necessary to prevent bloat on 64-bit platforms which would have
resulted if we simply set the default to always be UCPURegister.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bitmap.h:
  • wtf/CMakeLists.txt:
  • wtf/StdIntExtras.h: Added.
8:27 AM Changeset in webkit [261049] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening, several WebGL tests are failing after r261023
https://bugs.webkit.org/show_bug.cgi?id=211339

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:55 AM Changeset in webkit [261048] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK4] Re-inject key press events not handled by the web process
https://bugs.webkit.org/show_bug.cgi?id=211286

Reviewed by Adrian Perez de Castro.

Use gdk_display_put_event() since gtk_main_do_event() is no longer available in GTK4. Also stop forwarding key
release events in GTK3 case, this only makes sense for key press events and we were re-injecting every release
event since they are not handled by web elements in most of the cases.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithKeyEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):
(webkitWebViewBaseKeyPressed):

5:54 AM Changeset in webkit [261047] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK] Specify action group name when binding context menu models
https://bugs.webkit.org/show_bug.cgi?id=211288

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::append): Use the action name directly for the menu item.
(WebKit::WebContextMenuProxyGtk::populate): Indicate the action group name when binding the
menu model, which automatically adds the group name as action name prefix without needing
to specify it by hand when adding menu items.

2:34 AM Changeset in webkit [261046] by Devin Rousso
  • 28 edits in trunk

[CSS Easing 1] implement jump-* step positions
https://bugs.webkit.org/show_bug.cgi?id=211271

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-timing-function-valid-expected.txt:
  • web-platform-tests/css/css-easing/step-timing-functions-output-expected.txt:
  • web-platform-tests/css/css-easing/step-timing-functions-syntax-expected.txt:
  • web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt:
  • web-platform-tests/css/css-transitions/parsing/transition-timing-function-valid-expected.txt:
  • web-platform-tests/web-animations/timing-model/time-transformations/transformed-progress-expected.txt:

Source/WebCore:

Add support for jump-start, jump-end, jump-none, and jump-both step positions inside
the steps() CSS timing function <https://drafts.csswg.org/css-easing-1/#step-position>.

Adjust existing serialization logic to match the spec <https://drafts.csswg.org/css-easing-1/#serialization>:

  • omit end (and jump-end)
  • the value step-start should result in steps(1, start) instead of step-start
  • the value step-end should result in steps(1) instead of step-end

Tests: animations/computed-style.html

fast/css/animation-steps-calculated-value.html
transitions/transitions-parsing.html
web-platform-tests/css/css-animations/parsing/animation-timing-function-computed.html
web-platform-tests/css/css-animations/parsing/animation-timing-function-valid.html
web-platform-tests/css/css-easing/step-timing-functions-output.html
web-platform-tests/css/css-easing/step-timing-functions-syntax.html
web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed.html
web-platform-tests/css/css-transitions/parsing/transition-timing-function-valid.html
web-platform-tests/web-animations/timing-model/time-transformations/transformed-progress.html

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

(WebCore::consumeSteps):
(WebCore::consumeAnimationTimingFunction):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTimingFunctionValue):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

  • css/CSSTimingFunctionValue.h:

(WebCore::CSSStepsTimingFunctionValue::create):
(WebCore::CSSStepsTimingFunctionValue::stepPosition const): Added.
(WebCore::CSSStepsTimingFunctionValue::CSSStepsTimingFunctionValue):
(WebCore::CSSStepsTimingFunctionValue::stepAtStart const): Deleted.

  • css/CSSTimingFunctionValue.cpp:

(WebCore::CSSStepsTimingFunctionValue::customCSSText const):
(WebCore::CSSStepsTimingFunctionValue::equals const):

  • platform/animation/TimingFunction.h:

(WebCore::StepsTimingFunction::create):
(WebCore::StepsTimingFunction::StepsTimingFunction):
(WebCore::StepsTimingFunction::stepPosition): Added.
(WebCore::StepsTimingFunction::setStepPosition): Added.
(WebCore::StepsTimingFunction::clone):
(WebCore::StepsTimingFunction::stepAtStart): Deleted.
(WebCore::StepsTimingFunction::setStepAtStart): Deleted.

  • platform/animation/TimingFunction.cpp:

(WebCore::operator<<):
(WebCore::TimingFunction::transformTime):
(WebCore::TimingFunction::createFromCSSValue):
(WebCore::TimingFunction::cssText const):

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

(WI.CSSKeywordCompletions.forFunction):
Include the step position keywords when autocompleting the steps() CSS function.

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

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

LayoutTests:

  • animations/computed-style.html:
  • animations/computed-style-expected.txt:
  • fast/css/animation-steps-calculated-value.html:
  • fast/css/animation-steps-calculated-value-expected.txt:
  • transitions/transitions-parsing.html:
  • transitions/transitions-parsing-expected.txt:
1:32 AM Changeset in webkit [261045] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[GTK] Gardening, update API test expectations
https://bugs.webkit.org/show_bug.cgi?id=211337

Unreviewed gardening.

Some tests became flaky under Flatpak.

  • TestWebKitAPI/glib/TestExpectations.json:

May 1, 2020:

9:57 PM Changeset in webkit [261044] by timothy_horton@apple.com
  • 21 edits
    3 adds in trunk

Books sometimes ends up with blank pages, especially after adjusting font size
https://bugs.webkit.org/show_bug.cgi?id=211265
<rdar://problem/59898144>

Reviewed by Darin Adler.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::setViewExposedRect):
Rename "hasRectChanged" because it only tests if the optional-state of the
rect has changed, not the actual value.

Source/WebKit:

A few problems:

  • There is short time during page creation where a WKWebView created

with _clipsToVisibleRect=YES would not yet have sent its viewExposedRect
to the Web Content process, and if we end up constructing tiles during
that time, we can make way too many, bogging down the process (or crashing).

Fix this by always keeping track of the viewExposedRect (on WebPageProxy,
instead of the somewhat-more-transient DrawingAreaProxy) and sending it
to the Web Content process in the WebPage creation parameters, to entirely
remove this window.

  • Even when the viewExposedRect successfully gets to the Web Content

process, it can still end up wildly wrong: the DrawingArea was tasked with
watching scrolling changes, applying the scroll offset to the viewExposedRect,
and pushing it to FrameView in content coordinates.

It turns out that this was all unnecessary, as we need viewExposedRect
in root view coordinates (same space as visibleContentRect, which we
intersect it with), and we just didn't notice because all clients of
_clipsToVisibleRect: expand the view to its layout size and insert
a scrolling view outside the web view, and so don't use our scrolling.

Avoid this conversion and complexity entirely; I tested Mail and Books
where there is no impact (other than fixing the original bug), and also
a custom test app with a scrollable WKWebView inside a NSScrollView,
which improved significantly.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

Plumb view exposed rect via WebPage creation parameters.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateViewExposedRect):
Send viewExposedRect changes to WebPageProxy instead of DrawingAreaProxy.

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::didChangeViewExposedRect):
(WebKit::DrawingAreaProxy::viewExposedRectChangedTimerFired):
(WebKit::DrawingAreaProxy::setViewExposedRect): Deleted.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::viewExposedRect const): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::didChangeViewExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::setViewExposedRect): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setViewExposedRect):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::viewExposedRect const):
Maintain viewExposedRect on WebPageProxy instead of DrawingAreaProxy,
so that we can always store it even if we don't have a DrawingAreaProxy yet
(or change DrawingAreaProxies) and can send it in WebPage creation parameters.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::setViewExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
(WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::scroll): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect): Deleted.
Plumb viewExposedRect directly to FrameView, instead of trying to apply
the root view -> contents mapping ourselves and pushing updates.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ViewExposedRect.mm: Added.

(forceRepaintCallback):
(TEST):
Add a test for the first problem, which would previously attempt to allocate
~90TB of tiles, spinning and exploding, and now happily just allocates a few.

LayoutTests:

  • tiled-drawing/tile-coverage-scrolled-view-exposed-rect-expected.txt: Added.
  • tiled-drawing/tile-coverage-scrolled-view-exposed-rect.html: Added.

Add a test ensuring that we create the correct tiles with a
scrolled web view that also uses clipsToVisibleRect=YES.

9:21 PM Changeset in webkit [261043] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening some failures.

Unreviewed test gardening.

7:26 PM Changeset in webkit [261042] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should observe the value attribute of some input elements
https://bugs.webkit.org/show_bug.cgi?id=211307
<rdar://problem/61568528>

Reviewed by Darin Adler.

Source/WebCore:

Teach TextManipulationController to detect the value attribute in input elements of type "button" and
"submit". To do this, we plumb the element through to isAttributeForTextManipulation and check isTextButton()
if "value" attribute is being considered.

Test: TextManipulation.StartTextManipulationExtractsValuesFromButtonInputs

  • editing/TextManipulationController.cpp:

(WebCore::isAttributeForTextManipulation):
(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a new API test that covers <input type="submit"> and <input type="button">.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
5:21 PM Changeset in webkit [261041] by sbarati@apple.com
  • 7 edits in trunk/Source

Have a thread local cache for the Wasm LLInt bytecode buffer
https://bugs.webkit.org/show_bug.cgi?id=211317

Reviewed by Filip Pizlo and Mark Lam.

Source/JavaScriptCore:

One of the main things slowing down Wasm compile times is the banging
on bmalloc's global heap lock. This patch makes it so for the bytecode
instruction buffer, we keep a thread local cache with latest capacity
the thread needed to compile. This makes it so that in the average case,
we only do one malloc at the end of a compile to memcpy the final result.

We clear these thread local caches when the WasmWorklist's automatic threads
underlying machine thread is destroyed.

This is a 15% speedup in zen garden compile times on a 16-core Mac Pro.
This is a 4-5% speedup in zen garden compile times on a 6-core MBP.

  • bytecode/InstructionStream.h:

(JSC::InstructionStreamWriter::setInstructionBuffer):
(JSC::InstructionStreamWriter::finalize):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::threadSpecificBuffer):
(JSC::Wasm::clearLLIntThreadSpecificCache):
(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::LLIntGenerator::finalize):

  • wasm/WasmLLIntGenerator.h:
  • wasm/WasmWorklist.cpp:

Source/WTF:

  • wtf/Vector.h:

(WTF::Vector::sizeInBytes const):

4:44 PM Changeset in webkit [261040] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] Refactor createMessageDecoder() for clarity
<https://webkit.org/b/211322>

Reviewed by Darin Adler.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):

  • Rename numDescriptors to numberOfPortDescriptors to match variable name in sendOutgoingMessage().
  • Add new numberOfAttachments variable to make it clear that one port descriptor is left for an out-of-line message body.
  • Add FIXME about another issue.
4:41 PM Changeset in webkit [261039] by pvollan@apple.com
  • 6 edits in trunk

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=211324

Reviewed by Don Olmstead.

.:

Use correct target namespace.

  • Source/cmake/target/WebCore.cmake:

Source/JavaScriptCore:

Check if target WTF_CopyHeaders exists before using it.

  • CMakeLists.txt:

Source/WebKitLegacy:

Remove unknown object target and fix link errors.

  • PlatformWin.cmake:
4:38 PM Changeset in webkit [261038] by commit-queue@webkit.org
  • 20 edits in trunk

Add SPI to move localStorage to a different domain
https://bugs.webkit.org/show_bug.cgi?id=209260
<rdar://problem/60285683>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-01
Reviewed by Brady Eidson.

Source/WebKit:

Covered by an API test.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::renameDomainInWebsiteData):
(WebKit::NetworkProcess::getLocalStorageOriginDetails):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::renameDomain):

  • NetworkProcess/WebStorage/LocalStorageNamespace.h:
  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::close):

  • NetworkProcess/WebStorage/StorageArea.h:
  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::renameDomain):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::renameDomain):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _renameDomain:to:forDataOfTypes:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::renameDomainInWebsiteData):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::renameDomainInWebsiteData):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

4:12 PM Changeset in webkit [261037] by Wenson Hsieh
  • 3 edits
    1 add in trunk/Tools

Add a test for webkit.org/b/211311
https://bugs.webkit.org/show_bug.cgi?id=211319
<rdar://problem/62663459>

Reviewed by Tim Horton.

Exercise the crash fixed in r261017 with a new API test that loads a page and then uses
-[WebHTMLView attributedSubstringFromRange:] to try and grab the contents of the page as an attributed string.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/AttributedString.mm:

(TestWebKitAPI::AttributedStringTest_NewlineAtEndOfDocument::didLoadURL):
(TestWebKitAPI::AttributedStringTest_NewlineAtEndOfDocument::url const):
(TestWebKitAPI::AttributedStringTest_NewlineAtEndOfDocument::runSyncTest):

  • TestWebKitAPI/Tests/mac/attributedStringNewlineAtEndOfDocument.html: Added.
4:07 PM Changeset in webkit [261036] by Chris Dumez
  • 11 edits in trunk

Regression(r259036) Unable to post comments on Jira
https://bugs.webkit.org/show_bug.cgi?id=211122
<rdar://problem/62561879>

Unreviewed, revert r259036 as the new behavior does not match other browsers
and broke some Jira instances.

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::populateFrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::addHTTPOriginIfNeeded):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:
  • loader/NavigationScheduler.cpp:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::doesRequestNeedHTTPOriginHeader): Deleted.

  • platform/network/ResourceRequestBase.h:
4:00 PM Changeset in webkit [261035] by Russell Epstein
  • 1 copy in tags/Safari-609.2.9.0.5

Tag Safari-609.2.9.0.5.

3:57 PM Changeset in webkit [261034] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

[iOS] ProcessThrottler fails to re-take ProcessAssertion if the previous one was invalidated
https://bugs.webkit.org/show_bug.cgi?id=211297
<rdar://problem/62542463>

Reviewed by Jer Noble.

Our ProcessAssertions may get invalidated upon backgrounding of the app. When the app becomes
foreground and the ProcessThrottler tries to take a Foreground assertion as a result, it would
incorrectly think it already had such assertion and not do anything, even though the previous
one is no longer valid. As a result, the child processes would stay suspended even though the
app was foregrounded.

To address the issue, add a isValid() method to ProcessAssertion() and check it in
ProcessThrottler::setAssertionType() to determine if we need to re-take an assertion or not.
We also invalidate all pending ProcessThrottler activities upon ProcessAssertion invalidation
for good measure. This way, the holders of these activities will be able to rely on
Activity::isValid() to determine if they need to re-take their activities or not.

  • Platform/spi/ios/AssertionServicesSPI.h:
  • Platform/spi/ios/RunningBoardServicesSPI.h:
  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::isValid const):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::validity const): Deleted.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::setAssertionType):
(WebKit::ProcessThrottler::assertionWasInvalidated):

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAssertion::isValid const):
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):

3:55 PM Changeset in webkit [261033] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r261015.

Seems to have broken clean builds

Reverted changeset:

"[iOS] Unable to take RunningBoard process assertions in the
iOS Simulator"
https://bugs.webkit.org/show_bug.cgi?id=211254
https://trac.webkit.org/changeset/261015

3:54 PM Changeset in webkit [261032] by Jack Lee
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed, amend change log entry for r260831.

  • ChangeLog:
3:30 PM Changeset in webkit [261031] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, another build fix after r260962.

  • page/Page.h:
3:28 PM Changeset in webkit [261030] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.6

Tag Safari-610.1.11.6.

3:16 PM Changeset in webkit [261029] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Avoid unnecessary copying in AnimationTimeline and other clean ups
https://bugs.webkit.org/show_bug.cgi?id=211309

Reviewed by Simon Fraser.

Return animations by const lvalue ref to avoid copying the Vectors.
Default the constructor and destructor implementations. Remove an
unnessary argument name from animationsForElement() and re-arrange
decls to make class definition more idiomatic.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::AnimationTimeline): Deleted.
(WebCore::AnimationTimeline::~AnimationTimeline): Deleted.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::relevantAnimations const):
(WebCore::AnimationTimeline::allAnimations const):

3:16 PM Changeset in webkit [261028] by dbates@webkit.org
  • 9 edits in trunk/Source/WebCore

Change HitTestResult::NodeSet from set of RefPtrs to set of Refs
https://bugs.webkit.org/show_bug.cgi?id=211306

Reviewed by Simon Fraser.

HitTestResult::listBasedTestResult() never returns a set with nullptrs in it.
So, change the set declaration from ListHashSet<RefPtr<Node>> to ListHashSet<Ref<Node>>.
This way people are not tempted to unnecessarily null check the nodes in the set.

As I made this change to TreeScope::elementsFromPoint() I noticed that retargetToScope(),
which is called by it, returned a Node&. So, I changed it to return a Ref<Node>. That
required me to fix up caretRangeFromPoint(), which lead me to fix up nodeFromPoint() as well.

  • dom/Document.cpp:

(WebCore::Document::caretRangeFromPoint):

  • dom/EventPath.cpp:

(WebCore::RelatedNodeRetargeter::checkConsistency):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::retargetToScope const):
(WebCore::TreeScope::nodeFromPoint):
(WebCore::TreeScope::elementFromPoint):
(WebCore::TreeScope::elementsFromPoint):

  • dom/TreeScope.h:
  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const):

  • rendering/HitTestResult.cpp:

(WebCore::appendToNodeSet):
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::addNodeToListBasedTestResultCommon):
(WebCore::HitTestResult::append):

  • rendering/HitTestResult.h:
  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect const):

3:08 PM Changeset in webkit [261027] by Alan Coon
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

3:03 PM Changeset in webkit [261026] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Fix stress/big-int-negate-jit.js
https://bugs.webkit.org/show_bug.cgi?id=211321

Reviewed by Saam Barati.

This test is assuming that 100000 iteration of 2 negateBigInt calls makes negateBigInt DFG-compiled.
But this is wrong if BigInt negation is fast enough. We made BigInt faster and now this test starts
failing because running this iteration finishes earlier than DFG compilation finishes. We should use useConcurrentJIT
to ensure this status.

  • stress/big-int-negate-jit.js:
3:00 PM Changeset in webkit [261025] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r260962.

  • page/Page.cpp:

(WebCore::Page::setCORSDisablingPatterns):

  • page/Page.h:

(WebCore::Page::setCORSDisablingPatterns): Deleted.

2:59 PM Changeset in webkit [261024] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] createMessageDecoder() needs a validity check
<https://webkit.org/b/211260>
<rdar://problem/61914087>

Reviewed by Darin Adler.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):

  • Add validity check and early return for numDescriptors.
2:52 PM Changeset in webkit [261023] by commit-queue@webkit.org
  • 178 edits in trunk

[WebGL2] Refactor texImage2D and texSubImage2D taking ImageBitmap, ImageData, Image, ArrayBufferView
https://bugs.webkit.org/show_bug.cgi?id=210766

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

Source/WebCore:

Refactor the texture upload paths taking DOM sources and
ArrayBuffers so that texImage/texSubImage and 2D/3D textures are
handled with the same entry point. Hook up WebGL 2.0 pixel unpack
parameters for selecting sub-rectangles during texture uploads.
Refactor context initialization to support WebGL 2.0-specific code
paths.

Remove duplicate code validating the type of the ArrayBufferView
passed to readPixels that was added in the patch for Bug 209515,
and validation code subsumed by ANGLE.

With this patch, dozens more texture-related WebGL 2.0 conformance
tests are passing completely, including all of those under the
directories:

webgl/2.0.0/conformance2/textures/

canvas_sub_rectangle/
image_data/

The svg_image/ tests in this directory demonstrate browser
inconsistencies in SVG handling, and are temporarily skipped.
These will be investigated in Bug 211220.

Other conformance tests progress or change results, which is
expected until WebGL2RenderingContext is fully implemented.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::create):
(WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::resetUnpackParameters):
(WebCore::WebGL2RenderingContext::restoreUnpackParameters):
(WebCore::WebGL2RenderingContext::initializeShaderExtensions):
(WebCore::WebGL2RenderingContext::getTextureSourceSubRectangle):
(WebCore::WebGL2RenderingContext::pixelStorei):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::initializeTransformFeedbackBufferCache): Deleted.
(WebCore::WebGL2RenderingContext::initializeSamplerCache): Deleted.
(WebCore::WebGL2RenderingContext::sliceTypedArrayBufferView): Deleted.

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::ScopedUnpackParametersResetRestore::ScopedUnpackParametersResetRestore):
(WebCore::ScopedUnpackParametersResetRestore::~ScopedUnpackParametersResetRestore):
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::resetUnpackParameters):
(WebCore::WebGLRenderingContextBase::restoreUnpackParameters):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::validateSettableTexInternalFormat):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::generateMipmap):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::sentinelEmptyRect):
(WebCore::WebGLRenderingContextBase::safeGetImageSize):
(WebCore::WebGLRenderingContextBase::getImageDataSize):
(WebCore::WebGLRenderingContextBase::getTexImageSourceSize):
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
(WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper):
(WebCore::WebGLRenderingContextBase::texImageImpl):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase):
(WebCore::WebGLRenderingContextBase::getTexImageFunctionName):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::validateArrayBufferType):
(WebCore::WebGLRenderingContextBase::validateTexFuncData):
(WebCore::WebGLRenderingContextBase::validateTexFuncParameters):
(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypes):
(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypesWebGL2):
(WebCore::WebGLRenderingContextBase::validateTexImageSourceFormatAndType):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getUnpackPixelStoreParams const):
(WebCore::WebGLRenderingContextBase::validateTextureBinding):
(WebCore::WebGLRenderingContextBase::validateTexImageBinding):
(WebCore::WebGLRenderingContextBase::validateTexture2DBinding):
(WebCore::WebGLRenderingContextBase::validateSize):
(WebCore::WebGLRenderingContextBase::validateImageBitmap):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::texImageSource2D): Deleted.
(WebCore::WebGLRenderingContextBase::texImage2DImpl): Deleted.
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::getTextureSourceSize):
(WebCore::WebGLRenderingContextBase::validateTexImageSubRectangle):

  • platform/graphics/IntRect.cpp:

(WebCore::IntRect::isValid const):

  • platform/graphics/IntRect.h:

LayoutTests:

Rebaseline WebGL layout tests affected by this patch.

webgl/2.0.0/conformance2/textures/

canvas_sub_rectangle/
image_data/

are now passing completely. Some of the individual tests in these
directories were skipped in earlier patches and will be re-enabled
in a subsequent patch.

Skip webgl/2.0.0/conformance2/textures/svg_image due to possible
bugs in the tests. These failures will be investigated in Bug
211220.

Fix bug in fast/canvas/webgl/gl-enum-tests.html where
INVALID_OPERATION rather than INVALID_ENUM is possible.

Other conformance tests progress or change results, which is
expected until WebGL2RenderingContext is fully implemented.

  • TestExpectations:
  • fast/canvas/webgl/gl-enum-tests-expected.txt:
  • fast/canvas/webgl/gl-enum-tests.html:
  • webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt:
2:50 PM Changeset in webkit [261022] by Russell Epstein
  • 1 copy in tags/Safari-610.1.11.5

Tag Safari-610.1.11.5.

2:43 PM Changeset in webkit [261021] by Russell Epstein
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

2:09 PM Changeset in webkit [261020] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Web Inspector: Browser: crash when handling disable
https://bugs.webkit.org/show_bug.cgi?id=211251

Reviewed by Daniel Bates.

  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:

(WebKit::InspectorBrowserAgent::disable):
If the inspected page crashed, we won't have a WebInspectorProxy anymore.

1:53 PM Changeset in webkit [261019] by Jack Lee
  • 3 edits
    2 adds in trunk

Source/WebCore:
Nullptr crash in CompositeEditCommand::cloneParagraphUnderNewElement when indent
and align a paragraph.
https://bugs.webkit.org/show_bug.cgi?id=211273
<rdar://problem/61885958>

Reviewed by Geoffrey Garen.

A load event can fire when we clone and append a paragraph. Check if the elements
are removed in the event and bail out.

Test: fast/editing/indent-then-justifyFull-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):

LayoutTests:
Nullptr crash in CompositeEditCommand::cloneParagraphUnderNewElement when indent
and align a paragraph.
https://bugs.webkit.org/show_bug.cgi?id=211273
<rdar://problem/61885958>

Reviewed by Geoffrey Garen.

Added a regression test for the crash.

  • fast/editing/indent-then-justifyFull-crash-expected.txt: Added.
  • fast/editing/indent-then-justifyFull-crash.html: Added.
1:50 PM Changeset in webkit [261018] by Jack Lee
  • 8 edits in trunk

Nullptr crash in EditCommand::EditCommand via CompositeEditCommand::removeNode
https://bugs.webkit.org/show_bug.cgi?id=207600
Source/WebCore:

<rdar://problem/56969450>

Reviewed by Geoffrey Garen.

Second part of the fix. Remove m_frame in FrameSelection so it will not be
inadvertently used and cause this crash.

No new tests, covered by existing test.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::rootViewRectForRange const):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):
(WebCore::FrameSelection::setFocusedElementIfNeeded):
(WebCore::FrameSelection::shouldDeleteSelection const):
(WebCore::FrameSelection::shouldDeleteSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection:: shouldChangeSelection):
(WebCore::FrameSelection::shouldChangeSelection const):

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

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • editing/mac/FrameSelectionMac.mm:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

LayoutTests:

Reviewed by Geoffrey Garen.

Reduce run time for this test case.

  • editing/inserting/insert-list-then-edit-command-crash.html:
1:46 PM Changeset in webkit [261017] by Darin Adler
  • 2 edits in trunk/Source/WebCore

REGRESSION (r260739): Crash when pasting into Mail
https://bugs.webkit.org/show_bug.cgi?id=211311

Reviewed by Wenson Hsieh.

Speculative fix. Would be much better to create a test case demonstrating it's correct.

  • editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedString): Use container node when TextIterator::node
returns null.

1:30 PM Changeset in webkit [261016] by pvollan@apple.com
  • 8 edits in trunk

[iOS] Every running WebContent process should be granted access to frontboard services when Accessibility is enabled
https://bugs.webkit.org/show_bug.cgi?id=211238

Reviewed by Daniel Bates.

Source/WebKit:

Currently, every WebContent process is granted access to frontboard services if Accessibility is enabled at the
time of startup. However, WebContent processes running at the time when Accessibility is enabled are not granted
access, which is a bug.

API test: WebKit.AccessibilityHasFrontboardServiceAccess

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

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

(WebKit::WebProcess::unblockServicesRequiredByAccessibility):
(WebKit::WebProcess::unblockAccessibilityServer): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm:

(TEST):

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

[iOS] Unable to take RunningBoard process assertions in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=211254
<rdar://problem/62674074>

Reviewed by Tim Horton.

  • Configurations/BaseXPCService.xcconfig:

Use this directive to add our entitlements:

CODE_SIGN_ENTITLEMENTS = $(WK_PROCESSED_XCENT_FILE);

instead of using:

OTHER_CODE_SIGN_FLAGS = --entitlements $(WK_PROCESSED_XCENT_FILE);

This is important because entitlements are added differently for iOS Simulator builds,
so that they only apply inside the simulator (and not for the host system). If we use
CODE_SIGN_ENTITLEMENTS, then XCode does the right thing on all platforms.

  • Scripts/process-entitlements.sh:

Add com.apple.runningboard.assertions.webkit entitlement to iOS Simulator builds.

12:50 PM Changeset in webkit [261014] by don.olmstead@sony.com
  • 29 edits in trunk

[GTK] Add additional exports to support hidden visibility
https://bugs.webkit.org/show_bug.cgi?id=211246

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • API/glib/JSCContextPrivate.h:
  • API/glib/JSCValuePrivate.h:
  • inspector/remote/glib/RemoteInspectorServer.h:
  • inspector/remote/glib/RemoteInspectorUtils.h:

Source/WebCore:

  • platform/ContentType.h:
  • platform/graphics/cairo/RefPtrCairo.h:
  • platform/gtk/GtkUtilities.h:
  • platform/network/soup/CertificateInfo.h:
  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/glib/WebKitWebExtensionPrivate.h:

Source/WTF:

  • wtf/ASCIICType.cpp:
  • wtf/DateMath.h:
  • wtf/FileSystem.h:
  • wtf/PrintStream.h:
  • wtf/RunLoop.h:
  • wtf/glib/GLibUtilities.h:
  • wtf/glib/GSocketMonitor.h:
  • wtf/glib/SocketConnection.h:

(WTF::SocketConnection::isClosed const):

  • wtf/linux/CurrentProcessMemoryStatus.h:

Tools:

  • DumpRenderTree/TestNetscapePlugIn/main.cpp:
  • TestWebKitAPI/InjectedBundleMain.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(webkit_web_extension_initialize_with_user_data):

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:

(webkit_web_extension_initialize):

  • WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp:
12:47 PM Changeset in webkit [261013] by ysuzuki@apple.com
  • 88 edits in trunk/Source

Introduce MainThreadNeverDestroyed / MainThreadLazyNeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=211264

Reviewed by Mark Lam.

Source/WebCore:

No behavior change. Adding assertions additionally.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:

(WebCore::stringForPlaybackTargetAvailability):

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::InitDataRegistry::cencName):
(WebCore::InitDataRegistry::keyidsName):
(WebCore::InitDataRegistry::webmName):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::automaticKeyword):
(WebCore::MediaControlsHost::forcedOnlyKeyword):
(WebCore::alwaysOnKeyword):
(WebCore::manualKeyword):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::kind const):
(WebCore::MediaStreamTrack::contentHint const):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::blobKeyword):
(WebCore::arraybufferKeyword):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::liveRegionRelevant const):

  • dom/ConstantPropertyMap.cpp:

(WebCore::ConstantPropertyMap::nameForProperty const):

  • dom/Document.cpp:

(WebCore::Document::validateCustomElementName):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::isValidCSSContentType):

  • dom/MutationRecord.cpp:
  • dom/make_names.pl:

(printNamesHeaderFile):
(printNamesCppFile):

  • html/Autocapitalize.cpp:

(WebCore::stringForAutocapitalizeType):

  • html/Autofill.cpp:

(WebCore::isContactToken):
(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fallbackValue const):

  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):

  • html/FileInputType.cpp:

(WebCore::UploadButtonElement::UploadButtonElement):

  • html/FormController.cpp:

(WebCore::FormKeyGenerator::formKey):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAttribute):
(WebCore::HTMLAnchorElement::isSystemPreviewLink const):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::formControlType const):

  • html/HTMLDetailsElement.cpp:

(WebCore::summarySlotName):

  • html/HTMLElement.cpp:

(WebCore::toValidDirValue):
(WebCore::trueName):
(WebCore::falseName):
(WebCore::plaintextOnlyName):
(WebCore::HTMLElement::setAutocorrect):

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::formControlType const):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::autocomplete const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::loadingForBindings const):

  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::formControlType const):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::formControlType const):

  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::formControlType const):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay const):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::formControlType const):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::scope const):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::formControlType const):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::directionString):
(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):

  • html/InputMode.cpp:

(WebCore::InputModeNames::none):
(WebCore::InputModeNames::text):
(WebCore::InputModeNames::tel):
(WebCore::InputModeNames::url):
(WebCore::InputModeNames::email):
(WebCore::InputModeNames::numeric):
(WebCore::InputModeNames::decimal):
(WebCore::InputModeNames::search):

  • html/InputTypeNames.cpp:

(WebCore::InputTypeNames::button):
(WebCore::InputTypeNames::checkbox):
(WebCore::InputTypeNames::color):
(WebCore::InputTypeNames::date):
(WebCore::InputTypeNames::datetime):
(WebCore::InputTypeNames::datetimelocal):
(WebCore::InputTypeNames::email):
(WebCore::InputTypeNames::file):
(WebCore::InputTypeNames::hidden):
(WebCore::InputTypeNames::image):
(WebCore::InputTypeNames::month):
(WebCore::InputTypeNames::number):
(WebCore::InputTypeNames::password):
(WebCore::InputTypeNames::radio):
(WebCore::InputTypeNames::range):
(WebCore::InputTypeNames::reset):
(WebCore::InputTypeNames::search):
(WebCore::InputTypeNames::submit):
(WebCore::InputTypeNames::telephone):
(WebCore::InputTypeNames::text):
(WebCore::InputTypeNames::time):
(WebCore::InputTypeNames::url):
(WebCore::InputTypeNames::week):

  • html/MediaController.cpp:

(WebCore::playbackStateWaiting):
(WebCore::playbackStatePlaying):
(WebCore::playbackStateEnded):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):

  • html/SearchInputType.cpp:

(WebCore::updateResultButtonPseudoType):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createDataListDropdownIndicator):
(WebCore::TextFieldInputType::createContainer):
(WebCore::TextFieldInputType::createAutoFillButton):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::buildBubbleTree):

  • html/shadow/DetailsMarkerControl.cpp:

(WebCore::DetailsMarkerControl::DetailsMarkerControl):

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):

  • html/shadow/ProgressShadowElement.cpp:

(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::SpinButtonElement):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):

  • html/shadow/YouTubeEmbedShadowElement.cpp:

(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::tryCreate):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::tryCreate):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::alternativeKeyword):
(WebCore::AudioTrack::descriptionKeyword):
(WebCore::AudioTrack::mainKeyword):
(WebCore::AudioTrack::mainDescKeyword):
(WebCore::AudioTrack::translationKeyword):
(WebCore::AudioTrack::commentaryKeyword):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::subtitlesKeyword):
(WebCore::captionsKeyword):
(WebCore::descriptionsKeyword):
(WebCore::chaptersKeyword):
(WebCore::metadataKeyword):
(WebCore::forcedKeyword):

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::cueShadowPseudoId):
(WebCore::TextTrackCue::cueBoxShadowPseudoId):
(WebCore::TextTrackCue::cueBackdropShadowPseudoId):
(WebCore::TextTrackCue::rebuildDisplayTree):

  • html/track/VTTRegion.cpp:

(WebCore::upKeyword):
(WebCore::VTTRegion::textTrackCueContainerScrollingClass):
(WebCore::VTTRegion::textTrackCueContainerShadowPseudoId):
(WebCore::VTTRegion::textTrackRegionShadowPseudoId):

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::alternativeKeyword):
(WebCore::VideoTrack::captionsKeyword):
(WebCore::VideoTrack::mainKeyword):
(WebCore::VideoTrack::signKeyword):
(WebCore::VideoTrack::subtitlesKeyword):
(WebCore::VideoTrack::commentaryKeyword):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::initiatorName const):

  • page/EventHandler.cpp:

(WebCore::focusDirectionForKey):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldBypassBackForwardCache const):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::eventNameAll):

  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::eventNameAll):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::applicationOctetStream):
(WebCore::textPlain):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::sinfName):
(WebCore::CDMPrivateFairPlayStreaming::skdName):

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

(WebCore::metadataType):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::similarFont):
(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::systemFontParameters):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::effectName):

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::effectName):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::getCustomFallbackFont):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::lastResortFallbackFont):
(WebCore::FontCache::platformAlternateFamilyName):

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::extractHTTPStatusText):

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::checkLinesForTextOverflow):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::hyphenString const):
(WebCore::RenderStyle::textEmphasisMarkString const):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::rotateMode const):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::setCalcMode):
(WebCore::SVGAnimationElement::setAttributeType):
(WebCore::SVGAnimationElement::isAdditive const):
(WebCore::SVGAnimationElement::isAccumulated const):
(WebCore::inheritsFromProperty):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::type const):
(WebCore::SVGStyleElement::media const):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseClockValue):
(WebCore::SVGSMILElement::restart const):
(WebCore::SVGSMILElement::fill const):
(WebCore::SVGSMILElement::repeatCount const):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.cpp:

(WebCore::SVGAnimationColorFunction::colorFromString):

  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::adjustForInheritance const):

Source/WTF:

Since AtomString has thread-affinity, static NeverDestroyed<const AtomString> is basically only safe for the main-thread use.
We should ensure that this is only used in the main-thread. To do that, this patch introduces MainThreadNeverDestroyed and
MainThreadLazyNeverDestroyed. They are NeverDestroyed and LazyNeverDestroyed + main-thread assertions.

  • wtf/Forward.h:
  • wtf/NeverDestroyed.h:

(WTF::AnyThreadsAccessTraits::assertAccess):
(WTF::MainThreadAccessTraits::assertAccess):
(WTF::NeverDestroyed::NeverDestroyed):
(WTF::NeverDestroyed::storagePointer const):
(WTF::LazyNeverDestroyed::construct):
(WTF::LazyNeverDestroyed::storagePointer const):
(WTF::makeNeverDestroyed):

  • wtf/text/AtomString.cpp:
  • wtf/text/AtomString.h:
12:42 PM Changeset in webkit [261012] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

REGRESSION (r260243): [ Mac WK1 ] fast/media/mq-inverted-colors-live-update-for-listener.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211154
<rdar://problem/62555128>

Reviewed by Darin Adler.

Make MediaQueryList an ActiveDOMObject and make sure its JS wrapper stays alive as long as
it may fire change events and there is at least 1 change event listener.

No new tests, already covered by existing tests.

  • css/MediaQueryList.cpp:

(WebCore::MediaQueryList::MediaQueryList):
(WebCore::MediaQueryList::create):
(WebCore::MediaQueryList::~MediaQueryList):
(WebCore::MediaQueryList::detachFromMatcher):
(WebCore::MediaQueryList::evaluate):
(WebCore::MediaQueryList::setMatches):
(WebCore::MediaQueryList::matches):
(WebCore::MediaQueryList::eventListenersDidChange):
(WebCore::MediaQueryList::activeDOMObjectName const):
(WebCore::MediaQueryList::virtualHasPendingActivity const):

  • css/MediaQueryList.h:
  • css/MediaQueryList.idl:
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::documentDestroyed):

12:20 PM Changeset in webkit [261011] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

REGRESSION (r260990): 8 test262 unicode tests failing
https://bugs.webkit.org/show_bug.cgi?id=211298

Reviewed by Saam Barati.

These unicode identifier tests are marked as PASS in r260990, but they are failing.
Update test262/expectations.yaml by running test262-runner --release --save.

  • test262/expectations.yaml:
12:12 PM Changeset in webkit [261010] by Pablo Saavedra
  • 2 edits in trunk/JSTests

Skip on ARM and MIPS stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js added after r260990
https://bugs.webkit.org/show_bug.cgi?id=211304

Unreviewed Gardening.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
12:09 PM Changeset in webkit [261009] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Update message filtering rules in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=211188
<rdar://problem/60922910>

Reviewed by Brent Fulgham.

Based on telemetry and local testing, update the message filtering rules in the WebContent process' sandbox on iOS.
Messages that have not been observed being in use, should be denied.

No new tests, covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

11:29 AM Changeset in webkit [261008] by Alan Coon
  • 8 edits in branches/safari-609.2.9.0-branch/Source

Versioning.

10:48 AM Changeset in webkit [261007] by don.olmstead@sony.com
  • 17 edits in trunk

Use export macros on all platforms
https://bugs.webkit.org/show_bug.cgi?id=211293

Reviewed by Michael Catanzaro.

.:

Remove explicit setting of USE_EXPORT_MACROS from all ports.

Ports that use declspec require no changes. Ports with visibility attributes
need to set that as the default in the CMake. This is already done on the
PlayStation port.

The export macros can also be overridden for different build variants if
required. For example production builds may want to override them.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsPlayStation.cmake:

Source/bmalloc:

Always use export macros on all platforms. Remove BUSE_EXPORT_MACROS and always
define macros based on the platform. Allow overriding of BEXPORT if desired
otherwise use the defaults.

  • bmalloc/BExport.h:
  • bmalloc/BPlatform.h:

Source/JavaScriptCore:

Allow overriding of JS_EXPORT_PRIVATE if desired otherwise use the defaults.

  • runtime/JSExportMacros.h:

Source/WebCore:

  • platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Allow overriding of PAL_EXPORT if desired otherwise use the defaults.

  • pal/ExportMacros.h:

Source/WTF:

Always use export macros on all platforms. Remove USE_EXPORT_MACROS and always
define macros based on the platform. Allow overriding of WTF_EXPORT_PRIVATE otherwise
use the defaults.

Remove definition of WTF_HIDDEN_DECLARATION since its not used anywhere.

  • wtf/ExportMacros.h:
  • wtf/PlatformUse.h:

Tools:

Remove uses of USE_EXPORT_MACROS from the DumpRenderTree xcode project. This
is the only xcode project that had any references to this value.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
10:25 AM Changeset in webkit [261006] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed. Non-speculative build fix for watchOS build.

  • runtime/ArrayPrototype.cpp:

(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):

10:10 AM Changeset in webkit [261005] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Speculative build fix for watchOS build.

  • runtime/ArrayPrototype.cpp:

(JSC::shift):

10:05 AM Changeset in webkit [261004] by eric.carlson@apple.com
  • 7 edits
    2 adds in trunk

[MSE] Audio session category is sometimes not set correctly after changing video source
https://bugs.webkit.org/show_bug.cgi?id=211252
<rdar://problem/61894737>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-change-source.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerActiveSourceBuffersChanged): Call checkForAudioAndVideo.
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Ditto.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Ditto.
(WebCore::HTMLMediaElement::checkForAudioAndVideo): New, update m_hasEverHadAudio and m_hasEverHadVideo
and call m_mediaSession->canProduceAudioChanged.
(WebCore::HTMLMediaElement::mediaType const): Put hasVideo() in a local variable since it
is used more than once.

  • html/HTMLMediaElement.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState): Iterate over the list of media
sessions once, not five times.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer): Call m_player->characteristicChanged()
rather than m_player->renderingModeChanged().

LayoutTests:

  • platform/mac/media/media-source/media-source-change-source-expected.txt: Added.
  • platform/mac/media/media-source/media-source-change-source.html: Added.
9:30 AM Changeset in webkit [261003] by Russell Epstein
  • 12 edits
    1 delete in branches/safari-610.1.11-branch/Source

Cherry-pick r260888. rdar://problem/62714948

Unreviewed, reverting r260650.
https://bugs.webkit.org/show_bug.cgi?id=211172

It is breaking internal bots (Requested by youenn on #webkit).

Reverted changeset:

"Call STDynamicActivityAttributionPublisher in the WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=210772
https://trac.webkit.org/changeset/260650

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

9:18 AM Changeset in webkit [261002] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] compositing/iframes/border-radius-composited-frame.html and compositing/iframes/border-uneven-radius-composited-frame.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=211261

Unreviewed test gardening.

  • platform/ios/TestExpectations:
9:17 AM Changeset in webkit [261001] by Peng Liu
  • 12 edits
    1 add in trunk

A PiP window doesn’t actually dismiss after the browser navigates to a different page within the same domain
https://bugs.webkit.org/show_bug.cgi?id=211257

Reviewed by Jer Noble.

Source/WebCore:

When we suspend a video element (this will happen when the browser is navigating to another page
within the same domain), we need to request the corresponding video to exit fullscreen/PiP.
The operation should be done immediately because the video element won't response to events
after it is suspended.

In r259095, we hold the start of exiting video fullscreen/PiP in HTMLMediaElement::exitFullscreen()
until the "webkitendfullscreen" event is dispatched/handled. This behavior does not work if
the video element is going to be suspended because the exiting fullscreen operation will be held
until the video element is resumed. Therefore, we need to handle that case separately by exiting
video fullscreen/PiP immediately.

API test: PictureInPicture.ExitPiPOnSuspendVideoElement

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::exitFullscreen):

Source/WebKit:

Add the support of exitVideoFullscreenToModeWithoutAnimation() in iOS,
so that the Web process can request the UI process to close the PiP window
without exchanging IPC messages back and forth.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):

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

Only stop the watchdog timer if it is active.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/AGXCompilerService.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm: Added.

(-[ExitPiPOnSuspendVideoElementUIDelegate _webView:hasVideoInPictureInPictureDidChange:]):
(TestWebKitAPI::TEST):

8:34 AM Changeset in webkit [261000] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Dropped connections when uploading archives shouldn't be fatal
https://bugs.webkit.org/show_bug.cgi?id=211248

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/results/upload.py:

(Upload.upload_archive): Dropping a connection when uploading archives shouldn't
be a fatal error.

  • Scripts/webkitpy/results/upload_unittest.py:

(UploadTest.test_archive_upload):

7:52 AM Changeset in webkit [260999] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r260920.
https://bugs.webkit.org/show_bug.cgi?id=211292

Sandbox compile error is no longer an issue (Requested by
perarne on #webkit).

Reverted changeset:

"Unreviewed sandbox compile fix."
https://trac.webkit.org/changeset/260920

7:37 AM Changeset in webkit [260998] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Introduce struct RowHeight in TableFormattingContext::computeAndDistributeExtraVerticalSpace
https://bugs.webkit.org/show_bug.cgi?id=211275

Reviewed by Antti Koivisto.

This is in preparation for available space distribution across row spans.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

7:35 AM Changeset in webkit [260997] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Specific dom node order of Shadow DOM (re)projection causes crash
https://bugs.webkit.org/show_bug.cgi?id=211159
<rdar://problem/62626920>

Reviewed by Zalan Bujtas.

Source/WebCore:

ComposedTreeIterator may traverse to nodes outside its root element if it is constructed
with a starting node that has no next sibling inside a slot.

This leads to miscomputing RenderTreePosition::nextSibling() and eventual nullptr crash in
RenderTreeBuilder when adding a renderer (due to beforeChild renderer being outside the parent renderer).

Test case by Elliott Marquez.

Test: fast/shadow-dom/composed-tree-iterator-escape.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::Context::Context):

When findind the end iterator for a tree context we need to look for a sibling in ancestors if
the current node has no siblings.

LayoutTests:

  • fast/shadow-dom/composed-tree-iterator-escape-expected.html: Added.
  • fast/shadow-dom/composed-tree-iterator-escape.html: Added.
5:23 AM Changeset in webkit [260996] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Move focus out of the web view when tab is pressed and there isn't a next element to focus
https://bugs.webkit.org/show_bug.cgi?id=211283

Reviewed by Adrian Perez de Castro.

Implement API::UIClient::takeFocus() that is called when WebCore wants to focus the chrome.

  • UIProcess/API/glib/WebKitUIClient.cpp:
4:26 AM Changeset in webkit [260995] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

[WebIDL] Interface prototype objects should define @@toStringTag
https://bugs.webkit.org/show_bug.cgi?id=211020

Unreviewed follow-up to r260992.

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation): Revert change in attempt to fix ARMv7 test.

3:26 AM Changeset in webkit [260994] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260214): Leak of _WKTextInputContext in -[WKContentView _isTextInputContextFocused:]
<https://webkit.org/b/211276>
<rdar://problem/62696724>

Reviewed by Daniel Bates.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _focusTextInputContext:placeCaretAt:completionHandler:]):

  • Use RetainPtr<> to pass the copy of _WKTextInputContext into the block to fix the leak.
3:26 AM Changeset in webkit [260993] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC::PropertySlot::m_attributes is uninitialized in constructor
<https://webkit.org/b/211267>

Reviewed by Mark Lam.

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):

  • Initialize m_attributes and m_additionalData, and make use of default initializers.
2:48 AM Changeset in webkit [260992] by Alexey Shvayka
  • 148 edits in trunk

[WebIDL] Interface prototype objects should define @@toStringTag
https://bugs.webkit.org/show_bug.cgi?id=211020

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Adjust tests for X.prototype.toString() returning "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface.

  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/window-prototype-chain.html: WPT revision: 50417942bbfe.
  • web-platform-tests/wasm/jsapi/instance/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/toString.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/toString.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/module/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/module/toString.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/toString.any.worker-expected.txt:

Source/JavaScriptCore:

WebIDL spec was recently updated [1] to define @@toStringTag on interface prototype objects.
This change aligns WebIDL with ECMA-262 built-ins and Blink's behavior. Gecko have also
expressed implementation commitment.

This patch implements the spec change, making X.prototype.toString() return "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface. This behavior is proven to
be web compatible (shipping in Chrome since Q2 2016) and matches class strings of iterator
prototype objects [2] introduced in r253855.

We define @@toStringTag for all WebAssembly interfaces but Error subclasses since they
are not defined using WebIDL [3].

This change also introduces JSC_TO_STRING_TAG_WITHOUT_TRANSITION() macro that sets up
@@toStringTag using ClassInfo to avoid extra strings creation, ensuring className equality
between prototype and instance classes (fixing a few discrepancies), as well as correct
descriptors. It also ensures using faster jsNontrivialString() and relieves from putting
more code into CodeGeneratorJS.pm.

[1]: https://github.com/heycam/webidl/pull/357
[2]: https://heycam.github.io/webidl/#es-iterator-prototype-object
[3]: https://webassembly.github.io/spec/js-api/#error-objects

Tests: imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.js

imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.js
imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.js
imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.js

  • runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):

  • runtime/AsyncFunctionPrototype.cpp:

(JSC::AsyncFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorFunctionPrototype.cpp:

(JSC::AsyncGeneratorFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorPrototype.cpp:

(JSC::AsyncGeneratorPrototype::finishCreation):

  • runtime/BigIntPrototype.cpp:

(JSC::BigIntPrototype::finishCreation):

  • runtime/GeneratorFunctionPrototype.cpp:

(JSC::GeneratorFunctionPrototype::finishCreation):

  • runtime/GeneratorPrototype.cpp:

(JSC::GeneratorPrototype::finishCreation):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototype::finishCreation):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::finishCreation):

  • runtime/IntlRelativeTimeFormatPrototype.cpp:

(JSC::IntlRelativeTimeFormatPrototype::finishCreation):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::finishCreation):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::finishCreation):

  • runtime/JSObject.h:
  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::finishCreation):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/RegExpStringIteratorPrototype.cpp:

(JSC::RegExpStringIteratorPrototype::finishCreation):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

  • runtime/StringIteratorPrototype.cpp:

(JSC::StringIteratorPrototype::finishCreation):

  • runtime/SymbolPrototype.cpp:

(JSC::SymbolPrototype::finishCreation):

  • runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation):

  • runtime/WeakObjectRefPrototype.cpp:

(JSC::WeakObjectRefPrototype::finishCreation):

  • runtime/WeakSetPrototype.cpp:

(JSC::WeakSetPrototype::finishCreation):

  • wasm/js/WebAssemblyInstancePrototype.cpp:

(JSC::WebAssemblyInstancePrototype::finishCreation):

  • wasm/js/WebAssemblyMemoryPrototype.cpp:

(JSC::WebAssemblyMemoryPrototype::finishCreation):

  • wasm/js/WebAssemblyModulePrototype.cpp:

(JSC::WebAssemblyModulePrototype::finishCreation):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::WebAssemblyTablePrototype::finishCreation):

Source/WebCore:

WebIDL spec was recently updated [1] to define @@toStringTag on interface prototype objects.
This change aligns WebIDL with ECMA-262 built-ins and Blink's behavior. Gecko have also
expressed implementation commitment.

This patch implements the spec change, making X.prototype.toString() return "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface. This behavior is proven to
be web compatible (shipping in Chrome since Q2 2016) and matches class strings of iterator
prototype objects [2] introduced in r253855.

[1]: https://github.com/heycam/webidl/pull/357
[2]: https://heycam.github.io/webidl/#es-iterator-prototype-object

Tests: fast/dom/prototype-chain.html

fast/dom/wrapper-classes.html
fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html
imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.js
imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window.js

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorTraits>::finishCreation):

  • bindings/js/JSDOMWindowProperties.cpp:

(WebCore::JSDOMWindowProperties::finishCreation):

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GeneratePrototypeDeclaration):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/*: Updated.

LayoutTests:

Adjust tests for X.prototype.toString() returning "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface.

  • css3/blending/background-blend-mode-property-parsing-expected.txt:
  • css3/blending/background-blend-mode-property-parsing.html:
  • css3/blending/blend-mode-property-parsing-expected.txt:
  • css3/blending/blend-mode-property-parsing.html:
  • css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-parsing.html:
  • css3/filters/filter-property-parsing-expected.txt:
  • css3/filters/filter-property-parsing.html:
  • fast/css/image-set-parsing-expected.txt:
  • fast/css/image-set-parsing-generated-expected.txt:
  • fast/css/image-set-parsing-generated.html:
  • fast/css/image-set-parsing.html:
  • fast/dom/DOMException/prototype-object-expected.txt:
  • fast/dom/DOMException/prototype-object.html:
  • fast/dom/prototype-chain-expected.txt:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/events/event-view-toString-expected.txt:
  • fast/workers/DedicatedWorkerGlobalScope-prototype-chain-expected.txt:
  • fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html:
  • http/tests/xmlhttprequest/XMLHttpRequestException-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • resources/idlharness.js: Remove asserts that are commented out in upstream.
  • svg/dom/svg2-inheritance.html:
  • transforms/2d/transform-value-types-expected.txt:
  • transforms/2d/transform-value-types.html:
2:48 AM Changeset in webkit [260991] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Honor XDG_RUNTIME_DIR when setting the document path
https://bugs.webkit.org/show_bug.cgi?id=211277

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Prefer using the value of
$XDG_RUNTIME_DIR instead of the hardcoded path when setting the
document portal path mount.

1:45 AM Changeset in webkit [260990] by sbarati@apple.com
  • 26 edits
    1 add in trunk

We can't cast toLength result to unsigned
https://bugs.webkit.org/show_bug.cgi?id=211205
<rdar://problem/62625562>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-length-cant-get-casted-to-unsigned.js: Added.

(assert):
(testArrayPop):
(testArrayPush):
(testArrayReverse):
(testArraySplice):
(testArrayUnshift):
(testArrayLastIndexOf):
(shouldThrowTypeError):
(testJSONStringify.get let):
(testJSONStringify):

  • test262/expectations.yaml:

Source/JavaScriptCore:

toLength, according to the spec, returns a 53-bit integer. In our
implementation, we return a double. However, there were many callsites
that did something like:
`
unsigned length = toLength(obj);
`

This is bad for a few reasons:

  • Casting to unsigned from double is undefined behavior when the integer

is greater than UINT_MAX. In practice, this means that we'd have different
engine behavior depending on what architecture we'd be running on. For
example, if the length were UINT_MAX + 1, on x86, we'd treat the
length as zero. On arm64, we'd treat it as UINT_MAX. Both are wrong.

  • We weren't spec compliant. We were just ignoring that these numbers could

be 53-bit integers.

This patch addresses each bad use of the undefined behavior, and by doing so,
makes us more spec compliant.

  • dfg/DFGOperations.cpp:
  • jit/JITOperations.cpp:

(JSC::getByVal):

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):
(JSC::setLength):
(JSC::argumentClampedIndexFromStartOrEnd):
(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncPush):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncShift):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):
(JSC::fastIndexOf):
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):

  • runtime/Identifier.h:

(JSC::Identifier::from):

  • runtime/IntlObject.cpp:

(JSC::canonicalizeLocaleList):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::JSObject::hasProperty const):

  • runtime/JSObject.h:

(JSC::JSObject::putByIndexInline):
(JSC::JSObject::putDirectIndex):
(JSC::JSObject::canGetIndexQuickly const):
(JSC::JSObject::tryGetIndexQuickly const):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::get const):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::getValue const):

  • tools/JSDollarVM.cpp:

(JSC::functionSetUserPreferredLanguages):

Source/WebCore:

  • bridge/NP_jsobject.cpp:

Source/WebKit:

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::removeProperty):

LayoutTests:

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-29.js:

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-25.js:

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-28.js:

(ES5Harness.registerTest.test):

1:32 AM Changeset in webkit [260989] by graouts@webkit.org
  • 6 edits in trunk

REGRESSION: MotionMark 1.1 regressed due to r260016
https://bugs.webkit.org/show_bug.cgi?id=211280
<rdar://problem/61898830>

Unreviewed.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):

LayoutTests:

  • fast/images/image-orientation-none-canvas.html:
1:18 AM Changeset in webkit [260988] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[GTK] File GtkVersioning.h should be excluded from the style checker
https://bugs.webkit.org/show_bug.cgi?id=211262

Reviewed by Carlos Garcia Campos.

  • Scripts/webkitpy/style/checker.py: Exclude Source/WebCore/platform/gtk/GtkVersioning.h

from style checks.

1:15 AM Changeset in webkit [260987] by Philippe Normand
  • 3 edits
    2 adds in trunk/Source/WebCore

[GStreamer] Move video frame holder to its own file
https://bugs.webkit.org/show_bug.cgi?id=211239

Reviewed by Alex Christensen.

This class implementation is big enough for a new compilation unit, IMHO.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerVideoFrameHolder.cpp: Added.

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::~GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::handoffVideoDmaBuf):
(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::GstVideoFrameHolder::updateTexture):
(WebCore::GstVideoFrameHolder::platformLayerBuffer):

  • platform/graphics/gstreamer/GStreamerVideoFrameHolder.h: Added.

(WebCore::GstVideoFrameHolder::size const):
(WebCore::GstVideoFrameHolder::hasAlphaChannel const):
(WebCore::GstVideoFrameHolder::flags const):
(WebCore::GstVideoFrameHolder::textureID const):
(WebCore::GstVideoFrameHolder::hasMappedTextures const):
(WebCore::GstVideoFrameHolder::videoFrame const):
(WebCore::GstVideoFrameHolder::hasDMABuf const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder): Deleted.
(WebCore::GstVideoFrameHolder::~GstVideoFrameHolder): Deleted.
(WebCore::GstVideoFrameHolder::handoffVideoDmaBuf): Deleted.
(WebCore::GstVideoFrameHolder::waitForCPUSync): Deleted.
(WebCore::GstVideoFrameHolder::size const): Deleted.
(WebCore::GstVideoFrameHolder::hasAlphaChannel const): Deleted.
(WebCore::GstVideoFrameHolder::flags const): Deleted.
(WebCore::GstVideoFrameHolder::textureID const): Deleted.
(WebCore::GstVideoFrameHolder::hasMappedTextures const): Deleted.
(WebCore::GstVideoFrameHolder::videoFrame const): Deleted.
(WebCore::GstVideoFrameHolder::updateTexture): Deleted.
(WebCore::GstVideoFrameHolder::platformLayerBuffer): Deleted.
(WebCore::GstVideoFrameHolder::hasDMABuf const): Deleted.

1:08 AM Changeset in webkit [260986] by Adrian Perez de Castro
  • 4 edits in trunk/Source

[GTK4] Disable arrow on context menu popover
https://bugs.webkit.org/show_bug.cgi?id=211241

Reviewed by Carlos Garcia Campos.

Source/WebCore:

No new tests needed.

  • platform/gtk/GtkVersioning.h:

(gdk_display_get_monitor_at_window): Add no-op stub for GTK3.

Source/WebKit:

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): Disable the menu popover arrow.

Note: See TracTimeline for information about the timeline view.