Timeline



Jun 19, 2020:

9:20 PM Changeset in webkit [263316] by ysuzuki@apple.com
  • 11 edits
    1 add in trunk

[JSC] Check Gigacage usage before launching VM
https://bugs.webkit.org/show_bug.cgi?id=213410

Reviewed by Mark Lam.

JSTests:

  • stress/exhaust-gigacage-and-allocate-vm.js: Added.

(foo):

Source/bmalloc:

Add Gigacage::footprint and Gigacage::size functions to expose usage to API users.
Rename Gigacage::size to Gigacage::maxSize.

  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):
(Gigacage::size):
(Gigacage::footprint):

  • bmalloc/Gigacage.h:

(Gigacage::maxSize):
(Gigacage::alignment):
(Gigacage::mask):
(Gigacage::size):
(Gigacage::footprint):

  • bmalloc/Heap.cpp:

(bmalloc::Heap::gigacageSize):

  • bmalloc/Heap.h:

Source/JavaScriptCore:

Since VM allocates JSBigInt from Gigacage, it is possible that VM creation fails when Gigacage is exhausted.
As a work-around for internal testing, we insert ad-hoc Gigacage usage check before launching a new agent.
If 80% of Gigacage is used, we fail to launch a new VM gracefully.

  • assembler/testmasm.cpp:

(JSC::testCagePreservesPACFailureBit):

  • jsc.cpp:

(functionDollarAgentStart):

Source/WTF:

  • wtf/Gigacage.h:

(Gigacage::footprint):
(Gigacage::maxSize):
(Gigacage::size):

9:06 PM Changeset in webkit [263315] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk

Typed array constructor behaves differently when length is not passed or when undefined is passed
https://bugs.webkit.org/show_bug.cgi?id=184232

Patch by James Darpinian <James Darpinian> on 2020-06-19
Reviewed by Yusuke Suzuki.

Passing undefined for length should have the same effect as omitting the argument. It was being
treated as 0 instead.

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayView):

9:02 PM Changeset in webkit [263314] by mmaxfield@apple.com
  • 8 edits
    12 adds in trunk/LayoutTests

fast/text/international/system-language/navigator-language/navigator-language tests are failing on Catalina and iOS
<rdar://problem/64468227>

Unreviewed test gardening.

Rather than marking the tests as flakey, we can just commit -expected results for every OS.

  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt:
  • platform/ios/TestExpectations:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt: Added.
  • platform/mac/TestExpectations:
8:50 PM Changeset in webkit [263313] by Chris Dumez
  • 15 edits in trunk/Source

[Cocoa] Delay issuing ManagedSession & Network Extension sandbox extensions until a load is actually issued
https://bugs.webkit.org/show_bug.cgi?id=213414
<rdar://problem/64548684>

Reviewed by Per Arne Vollan.

Source/WebCore:

setHasConsumedSandboxExtensions() can now get called several times, every time a WebPage is created.
Once a sandbox extension has been consumed, there is no going back so return early if the state is
already "Consumed".

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::setHasConsumedSandboxExtensions):

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::setHasConsumedSandboxExtension):

Source/WebKit:

Delay issuing ManagedSession & Network Extension sandbox extensions until a load is actually issued.
This is a Safari launch time optimization since the checks needed to decide whether or not to issue
the extensions are expensive and there is no reason to issue them as soon as the process launches
(especially in the case of a prewarmed process).

  • Shared/Cocoa/LoadParametersCocoa.mm:

(WebKit::LoadParameters::platformEncode const):
(WebKit::LoadParameters::platformDecode):

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

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addPlatformLoadParameters):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::addPlatformLoadParameters):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::hasNetworkExtensionSandboxAccess const):
(WebKit::WebProcessProxy::markHasNetworkExtensionSandboxAccess):
(WebKit::WebProcessProxy::hasManagedSessionSandboxAccess const):
(WebKit::WebProcessProxy::markHasManagedSessionSandboxAccess):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

8:17 PM Changeset in webkit [263312] by ysuzuki@apple.com
  • 15 edits in trunk

[JSC] Attempt to reduce timeout failures on Apple Watch Series 3
https://bugs.webkit.org/show_bug.cgi?id=213419

Reviewed by Mark Lam.

JSTests:

Look into timeout tests, and

  1. If the test is using too many iterations, decrease the count.
  2. If the test is still useful while iteration count is not so much, try attaching slow! to see the effect on the bot.
  • stress/memcpy-typed-loops.js:
  • stress/op_bitand.js:
  • stress/op_bitor.js:
  • stress/op_bitxor.js:
  • stress/op_mul-ConstVar.js:
  • stress/op_mul-VarConst.js:
  • stress/op_mul-VarVar.js:
  • stress/op_sub-ConstVar.js:
  • stress/op_sub-VarConst.js:
  • stress/op_sub-VarVar.js:
  • stress/set-iteration-oas.js:
  • stress/value-to-boolean.js:

Source/JavaScriptCore:

  • tools/JSDollarVM.cpp:

(JSC::functionUseJIT):
(JSC::JSDollarVM::finishCreation):

7:44 PM Changeset in webkit [263311] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[AutoSizing] Resolve viewport units against the preferred content size
https://bugs.webkit.org/show_bug.cgi?id=213408
<rdar://problem/64267539>

Reviewed by Tim Horton.

Source/WebCore:

Instead of resolving the viewport units against the maximum content size constraints, let's use the preferred content size.
It ensures that content with vw, vh units does not grow beyond the preferred content size.

Test: fast/dynamic/size-to-content-autosize-with-viewport-units.html

  • page/FrameView.cpp:

(WebCore::FrameView::performSizeToContentAutoSize):
(WebCore::FrameView::enableAutoSizeMode): Let's "ignore" viewport units during the initial
pass and use the preferred width to finalize the vw vh unit values (we don't really ignore them, but they are resolved against a [ 1, 1 ] viewport).
This approach fails if the main content has 100vw with overflow hidden. Such content would end up with a [ 1, 1 ] size (we might want to detect it
and resolved the values against the horizontal constraint).
(WebCore::FrameView::overrideViewportWidthForCSSViewportUnits):
(WebCore::FrameView::resetOverriddenViewportWidthForCSSViewportUnits):

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::enableSizeToContentAutoSizeMode):

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

LayoutTests:

  • fast/dynamic/size-to-content-autosize-with-viewport-units-expected.txt: Added.
  • fast/dynamic/size-to-content-autosize-with-viewport-units.html: Added.
7:37 PM Changeset in webkit [263310] by Jonathan Bedard
  • 5 edits in trunk/Tools

Bring up watchOS/tvOS on build.webkit.org (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=213402
<rdar://problem/64542588>

Unreviewed build-fix.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Use arm64_32 to build watchOS device.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): watchOS device should be considered 32 bit.

  • Scripts/configure-xcode-for-embedded-development: Force-copy MediaAccessibility.framework.
  • Scripts/webkitdirs.pm:

(extractNonMacOSHostConfiguration): Native Macs never use 32 bit tool binaries.

7:26 PM Changeset in webkit [263309] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[macOS] Move progress bar painting code off of Carbon API
https://bugs.webkit.org/show_bug.cgi?id=213405
<rdar://problem/63958537>

Reviewed by Tim Horton.

Source/WebCore:

Adopts CoreUI constants and AppKit SPI (-[NSAppearance _drawInRect:context:options:]) when painting progress
elements. This is being done in light of recent changes around how HIThemeDrawTrack draws progress bars on
recent versions of macOS; it has been recommended to us that we move away from using Carbon, and instead use
AppKit.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

The NSControlSize to CUISize mapping here looks counterintuitive, but matches our current behavior. This is
because kThemeLargeProgressBar and kThemeLargeIndeterminateBar both map to kCUISizeRegular, while
kThemeMediumIndeterminateBar and kThemeMediumProgressBar map to kCUISizeSmall.

Source/WebCore/PAL:

Add forward declarations for CoreUI SPI on non-internal SDKs.

  • pal/spi/mac/CoreUISPI.h:
6:22 PM Changeset in webkit [263308] by aakash_jain@apple.com
  • 5 edits
    3 deletes in trunk/Tools

Delete dead code for old ews api tests
https://bugs.webkit.org/show_bug.cgi?id=213421

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/ports.py:

(DeprecatedPort.run_api_tests_command): Deleted.

  • Scripts/webkitpy/common/net/apitestresults.py: Removed.
  • Scripts/webkitpy/common/net/apitestresults_unittest.py: Removed.
  • Scripts/webkitpy/port/base.py:

(Port.bindings_results_directory):
(Port.api_results_directory): Deleted.

  • Scripts/webkitpy/tool/bot/apitestresultsreader.py: Removed.
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests._run_api_tests): Deleted.

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

(test_runtests_api_debug): Deleted.

6:07 PM Changeset in webkit [263307] by Ryan Haddad
  • 7 edits in trunk/Source/WebKit

Unreviewed, reverting r263287.

Caused tests to exit early with crashes on Catalina.

Reverted changeset:

"[iOS, macOS] Allow access to the container manager to support Mail InjectedBundle"
https://bugs.webkit.org/show_bug.cgi?id=213357
https://trac.webkit.org/changeset/263287

6:04 PM Changeset in webkit [263306] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount()
https://bugs.webkit.org/show_bug.cgi?id=213417
<rdar://problem/63477676>

Reviewed by Darin Adler.

Make sure |this| is still alive in ProcessAndUIAssertion::processAssertionWasInvalidated()
after calling ProcessAssertion::processAssertionWasInvalidated() and before calling
updateRunInBackgroundCount(). Calling ProcessAssertion::processAssertionWasInvalidated()
notifies the client and the client may destroy the assertion as a result.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAndUIAssertion::processAssertionWasInvalidated):

5:57 PM Changeset in webkit [263305] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening on Windows

Mark a test as failing while it's being investigated.

  • platform/win/TestExpectations:
5:53 PM Changeset in webkit [263304] by commit-queue@webkit.org
  • 6 edits in trunk

Remove setVelocity() from PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213360

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

LayoutTests/imported/w3c:

Re-baselined previous test that now passes with velocity removed.

  • web-platform-tests/webaudio/historical-expected.txt:

Source/WebCore:

Removed setVelocity() and other velocity dependencies, as per spec: https://www.w3.org/TR/webaudio/#pannernode.
Simplified dopplerRate, since sourceVelocity is always zero.

Re-baselined previous test that now passes with velocity removed.

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::dopplerRate):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
5:43 PM Changeset in webkit [263303] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

REGRESSION (r263253): Search field results and cancel buttons have their own focus rings
https://bugs.webkit.org/show_bug.cgi?id=213413
<rdar://problem/64548419>

Reviewed by Tim Horton.

Source/WebCore:

After r263253, paintCellAndSetFocusedElementNeedsRepaintIfNecessary is used when painting the buttons in a
search field's shadow root. However, the renderer that is passed in (which is used to determine whether we
should additionally draw focus rings) is the input element's renderer rather than the renderers of the results
and cancel buttons themselves. This means that when the search field is focused, we will draw focus rings around
each of the buttons in the shadow root as well.

Address this by using box (the buttons' RenderBoxes) instead.

Test: fast/forms/search-field-buttons-do-not-have-focus-rings.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):

LayoutTests:

Add a ref test to verify that the search and cancel buttons don't draw individual focus rings. This test works
by verifying that no focus ring around either the cancel or results button bleeds outside of the bounds of a div
that obscures the buttons.

  • fast/forms/search-field-buttons-do-not-have-focus-rings-expected.html: Added.
  • fast/forms/search-field-buttons-do-not-have-focus-rings.html: Added.
5:16 PM Changeset in webkit [263302] by commit-queue@webkit.org
  • 7 edits in trunk

Crash in WebCore::Range::borderAndTextRects
https://bugs.webkit.org/show_bug.cgi?id=209379

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-19
Reviewed by Darin Adler.

When a parentless node is moved to a new document, then all ranges associated with this node and its children also should
be updated with new document information.

Test woould be submitted later.

  • dom/Document.cpp:

(WebCore::Document::parentlessNodeMoveToNewDocument):

  • dom/Document.h:
  • dom/Node.cpp:

(WebCore::Node::moveNodeToNewDocument):

  • dom/Range.cpp:

(WebCore::Range::parentlessNodeMoveToNewDocumentAffectsRange):
(WebCore::Range::updateRangeForParentlessNodeMoveToNewDocument):

  • dom/Range.h:
5:11 PM Changeset in webkit [263301] by Truitt Savell
  • 7 edits
    2 deletes in trunk

Unreviewed, reverting r263121.

Broke media/video-fullscreen-only-playback.html on Catalina
Debug

Reverted changeset:

"Don't claim to support fullscreen mode unless
fullScreenEnabled setting is enabled"
https://bugs.webkit.org/show_bug.cgi?id=213142
https://trac.webkit.org/changeset/263121

5:07 PM Changeset in webkit [263300] by Jonathan Bedard
  • 3 edits in trunk/Tools

Bring up watchOS/tvOS on build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=213402
<rdar://problem/64542588>

Unreviewed infrastructure fix.

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

(_should_file_trigger_build): Add tvOS and watchOS.

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

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

5:07 PM Changeset in webkit [263299] by Truitt Savell
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r263223.

Broke compositing/video/video-border-radius-clipping.html on
Mac release wk1

Reverted changeset:

"Unreviewed, re-landing r262904."
https://bugs.webkit.org/show_bug.cgi?id=213063
https://trac.webkit.org/changeset/263223

5:02 PM Changeset in webkit [263298] by Kate Cheney
  • 6 edits in trunk/Source/WebKit

com.apple.WebKit.Networking crash: suspended with locked system files (observations.db)
https://bugs.webkit.org/show_bug.cgi?id=213391
<rdar://problem/64494167>

Reviewed by Chris Dumez.

ITP is the only database that attempts to close when
NetworkProcess::didClose() is called. This causes the network process
to sometimes crash if the database is still closing when checking for
locked system files. Instead, we should only flush the
memory store to disk when calling NetworkProcess::didClose (in the
memory store case), and only close the database when the network session is destroyed.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession):
(WebKit::WebResourceLoadStatisticsStore::destroyResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

Split into two functions, one to flush and destroy the persistent
store, and one to destroy the memory or database store.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):
Only flush the persistent store here, as described above.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::flushAndDestroyPersistentStore):

  • NetworkProcess/NetworkSession.h:
5:00 PM Changeset in webkit [263297] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[CG] REGRESSION (r256892): Luminance SVG mask is not applied when accelerated drawing is enabled
https://bugs.webkit.org/show_bug.cgi?id=213403
<rdar://problem/64489419>

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

Source/WebCore:

Test: svg/masking/mask-css-luminance.html

If the ImageBuffer is backed by an IOSurface, its context has to be flushed
out before convertToLuminanceMask() can access its data.

  • platform/graphics/ConcreteImageBuffer.h:

LayoutTests:

  • svg/masking/mask-css-luminance-expected.html: Added.
  • svg/masking/mask-css-luminance.html: Added.
4:40 PM Changeset in webkit [263296] by jiewen_tan@apple.com
  • 7 edits
    1 add in trunk

[WebAuthn] Provide a _WKWebAuthenticationPanelUpdatePINInvalid update to UI clients if the returned PIN from the client is not valid
https://bugs.webkit.org/show_bug.cgi?id=213404
<rdar://problem/64543894>

Reviewed by Brent Fulgham.

Source/WebKit:

Provide a _WKWebAuthenticationPanelUpdatePINInvalid update to UI clients if the returned PIN from the client is not valid such that clients can
reuse the same logic to handle invalid pin from the authenticator. This change makes their life easier.

Covered by API tests.

  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::requestPin const):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::requestPin const):
Now, only null strings are intepreted as cancels.

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetPinTokenAfterRequestPin):
(WebKit::CtapAuthenticator::continueRequestAfterGetPinToken):
This patch also removes potential null pointer dereferences.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-pin-get-pin-token-fake-pin-invalid-error-retry.html: Added.
4:37 PM Changeset in webkit [263295] by pvollan@apple.com
  • 10 edits in trunk/Source

[macOS] Connections to the preference daemon are established before entering the sandbox
https://bugs.webkit.org/show_bug.cgi?id=213379

Reviewed by Darin Adler.

Source/WebCore/PAL:

Use correct parameter types in _CFPrefsSetDirectModeEnabled and _CFPrefsSetReadOnly, and move
_CFPrefsSetDirectModeEnabled inside an Objective-C guard, since BOOL only seems to be a builtin
type in Objective-C.

  • pal/spi/cf/CFUtilitiesSPI.h:

Source/WebKit:

On macOS, connections to the preference daemon are established before entering the sandbox. These connections also persist
after entering the sandbox and denying access to the preference daemon. There should not be attempts to connect to the
preference daemon before entering the sandbox, since these attempts will not be stopped by the sandbox. This patch moves
code that connects to the preference daemon to be executed after the sandbox has been entered. That includes code to
prevent connections to the Dock and code to initialize WebKit logging. Also, instead of calling [NSBundle bundleForClass:],
call [NSBundle bundleWithIdentifier:], since calling [NSBundle bundleForClass:] will connect to the preference daemon.
Finally, allow the syscall SYS_gethostuuid, since that is needed by CoreFoundation when there is no access to the
preference daemon.

No new tests. This should be covered by existing tests. It would be nice to have a test to make sure that there are no
connections to the preference daemon just before entering the sandbox, but I am not aware of how to implement this.

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::initializeSandbox):

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

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

(WebKit::XPCServiceMain):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::webKit2Bundle):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::initializeSandbox):

  • WebProcess/com.apple.WebProcess.sb.in:
4:12 PM Changeset in webkit [263294] by Alan Coon
  • 1 copy in tags/Safari-610.1.17.1

Tag Safari-610.1.17.1.

3:50 PM Changeset in webkit [263293] by Chris Dumez
  • 5 edits in trunk/Source

Avoid initializing RenderTheme singleton unnecessarily in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=213406

Reviewed by Per Arne Vollan.

Avoid initializing RenderTheme singleton unnecessarily in the UIProcess. Instead, introduce
a static function to get the focus ring color on iOS.

Source/WebCore:

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemFocusRingColor):
(WebCore::RenderThemeIOS::platformFocusRingColor const):

Source/WebKit:

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

3:40 PM Changeset in webkit [263292] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

toString of String doesn't check integrity of structureID in one path.
https://bugs.webkit.org/show_bug.cgi?id=213338

Reviewed by Saam Barati.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncToString):

3:22 PM Changeset in webkit [263291] by Jonathan Bedard
  • 8 edits
    8 adds in trunk/Tools

Bring up watchOS/tvOS on build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=213402
<rdar://problem/64542588>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Add AppleTV and watchOS builders.
  • BuildSlaveSupport/build.webkit.org-config/factories.py:

(BuildFactory.init): Support AppleTV and watchOS.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS13.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS13@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS13Simulator.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS13Simulator@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOS6.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOS6@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOSSimulator6.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOSSimulator6@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
  • BuildSlaveSupport/build.webkit.org-config/steps.py:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
3:13 PM Changeset in webkit [263290] by sbarati@apple.com
  • 6 edits in trunk

Have a memory monitor thread in jsc shell when running tests using --memory-limited
https://bugs.webkit.org/show_bug.cgi?id=213389

Reviewed by Mark Lam.

Source/JavaScriptCore:

When testing on iOS, there are times high memory usage from a JSC test
will jetsam our entire test runner. This makes it so we don't get any test
results from that test run, which can make it difficult to track testing
results.

This patch introduces an optional memory monitoring thread to the JSC
shell. It's a best effort approach. If memory usage exceeds the passed
in threshold, we crash the process. Similar to how the timeout mechanism
works. On Cocoa platforms, we also perform this check in the low memory
warning handler.

Currently, we use this feature when running JSC stress tests in
"--memory-limited" mode.

  • jsc.cpp:

(crashIfExceedingMemoryLimit):
(startMemoryMonitoringThreadIfNeeded):
(jscmain):

Tools:

  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitruby/jsc-stress-test-writer-default.rb:
  • Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:
2:43 PM Changeset in webkit [263289] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r263288.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

2:31 PM Changeset in webkit [263288] by Chris Dumez
  • 9 edits in trunk/Source/WebKit

Use ASCIILiteral more for SandboxExtension functions
https://bugs.webkit.org/show_bug.cgi?id=213400

Reviewed by Per Arne Vollan.

Use ASCIILiteral more for SandboxExtension functions. Functions like createHandleForMachLookup() / createHandleForIOKitClassExtension()
don't need to take in Strings, ASCIILiteral is enough.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::createHandlesForResources):
(WebKit::SandboxExtension::createReadOnlyHandlesForFiles):
(WebKit::SandboxExtension::createHandleForGenericExtension):
(WebKit::SandboxExtension::createHandleForMachLookup):
(WebKit::SandboxExtension::createHandlesForMachLookup):
(WebKit::SandboxExtension::createHandleForIOKitClassExtension):
(WebKit::SandboxExtension::createHandlesForIOKitClassExtensions):

  • Shared/SandboxExtension.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):
(WebKit::nonBrowserServices):
(WebKit::diagnosticServices):
(WebKit::agxCompilerClasses):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::enableRemoteInspectorIfNeeded):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::singleton):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::grantAccessToAssetServices):

2:12 PM Changeset in webkit [263287] by Brent Fulgham
  • 7 edits in trunk/Source/WebKit

[iOS, macOS] Allow access to the container manager to support Mail InjectedBundle
https://bugs.webkit.org/show_bug.cgi?id=213357
<rdar://problem/63837247>

Reviewed by Darin Adler.

The Mail Injected Bundle requires access to the container manager to support certain OS operations. We do not need
this access for web browsing, and should limit this access to this one case.

This patch creates a dynamic mach extension to the container manager for this single use case. It also denies the
non-extension access case with a backtrace so we can see if any other clients are hitting this.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
2:08 PM Changeset in webkit [263286] by Alan Coon
  • 1 copy in tags/Safari-609.3.5.0.1

Tag Safari-609.3.5.0.1.

2:03 PM Changeset in webkit [263285] by Andres Gonzalez
  • 4 edits in trunk/Source

AX: web process crash in AXObjectCache::postNotification.
https://bugs.webkit.org/show_bug.cgi?id=213398

Reviewed by Chris Fleizach.

AXObjectCache was being instantiated on the AX secondary thread.
Therefore the timers for the different delayed notifications where
initialized with the secondary thread. When postNotification was triggered
on the main thread as it should, and the timer was accessed, the timer
would assert/crash for being accessed in a thread different than where
it was created. This change guaranties that AXObjectCache is always
created on the main thread.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::enableAccessibility):
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::postNotification):

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase axObjectCache]):
(-[WKAccessibilityWebPageObjectBase accessibilityPluginObject]):
(-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):
(-[WKAccessibilityWebPageObjectBase setHasMainFramePlugin:]):
(-[WKAccessibilityWebPageObjectBase setRemoteParent:]):

2:03 PM Changeset in webkit [263284] by Jonathan Bedard
  • 5 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Correct Catalyst guards
https://bugs.webkit.org/show_bug.cgi?id=211410
<rdar://problem/62891185>

Reviewed by Dean Jackson.

  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Do not compile on Mac.
  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.h: Definitions should not be available on Mac.
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Definitions should not be available on Mac.
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Do not compile on Mac.
2:00 PM Changeset in webkit [263283] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Make $vm properties non-configurable, non-enumerable, and non-writable.
https://bugs.webkit.org/show_bug.cgi?id=213395

Reviewed by Saam Barati and Yusuke Suzuki.

JSTests:

  • stress/dollarVM-properties-should-not-be-enumerable.js: Added.

Source/JavaScriptCore:

$vm provides functions for test development and VM debugging. There's no reason
for them to be configurable, enumerable, and writable.

We particularly don't want them to be enumerable as this can trip up some fuzzers.
Fuzzers should not be fuzzing the $vm object which doesn't exist in real world
uses of JavaScriptCore.

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):

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

[iOS] RenderThemeIOS::cssValueToSystemColorMap() does an unnecessary linear search under systemColorFromCSSValueID()
https://bugs.webkit.org/show_bug.cgi?id=213396

Reviewed by Timothy Hatcher.

RenderThemeIOS::cssValueToSystemColorMap() does an unnecessary linear search under systemColorFromCSSValueID().
cssValueToSystemColorMap() already has the selector, yet it passes a CSSValueID to systemColorFromCSSValueID() which
then does a linear search to match the CSSValueID to a selector. This was very inefficient / unfortunate.

This patch introduces a systemColorFromCSSValueIDSelector() which takes in a selector instead of a CSSValueID. I have
also moved the constructor of the LocalCurrentTraitCollection variable to the call site so that we don't keep
constructing / destroying it for each loop iteration. The traces show us spending a lot of time in its constructor /
destructor.

  • rendering/RenderThemeIOS.mm:

(WebCore::systemColorFromCSSValueIDSelector):
(WebCore::RenderThemeIOS::cssValueToSystemColorMap):

12:59 PM Changeset in webkit [263281] by commit-queue@webkit.org
  • 33 edits in trunk

[WebGL2] Uniform Buffer Objects
https://bugs.webkit.org/show_bug.cgi?id=209518

Patch by James Darpinian <James Darpinian> on 2020-06-19
Reviewed by Dean Jackson.

All uniform buffer object conformance tests pass.

Implemented Uniform Buffer Object related functions:
bindBufferBase, bindBufferRange, getUniformIndices, getActiveUniforms, getUniformBlockIndex,
getActiveUniformBlockParameter, getActiveUniformBlockName, uniformBlockBinding

Additionally, fixed many tangentially related issues:
getIntegeri_v and getInteger64i_v were not present.
drawArraysInstances and drawElementsInstanced did not work for WebGL 2.
drawRangeElements was not implemented.
WebGLAny did not support Vector<unsigned>, so Uint32Arrays could not be returned from WebGL functions.
The maximum uniform location length was wrong for WebGL 2.
Transform feedback indexed binding points weren't being tracked.
Some functions in ExtensionsGLANGLE didn't call makeContextCurrent.
New WebGL 2 buffer usage types COPY and READ weren't supported in bufferData.
pause/resumeTransformFeedback were unimplemented.
getParameter(READ_BUFFER) was unimplemented.
readBuffer conformance test was incorrect.

  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::drawRangeElements):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::bindBufferBase):
(WebCore::WebGL2RenderingContext::bindBufferRange):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLAny.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateLocationLength):
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFinishLoading):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::blitFramebuffer):
(WebCore::ExtensionsGLANGLE::renderbufferStorageMultisample):
(WebCore::ExtensionsGLANGLE::drawBuffersEXT):
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE):
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):
(WebCore::GraphicsContextGLOpenGL::getInteger64v):
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v):
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced):
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::getInteger64v):
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v):

12:52 PM Changeset in webkit [263280] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

-Wsign-compare in isValidOptionSet
https://bugs.webkit.org/show_bug.cgi?id=213383

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-19
Reviewed by Darin Adler.

The OptionSet's StorageType is always unsigned, even if the enum's underlying value is not.
Match this in isValidOptionSet to avoid -Wsign-compare during validity checking.

  • wtf/OptionSet.h:

(WTF::isValidOptionSet):

12:39 PM Changeset in webkit [263279] by Alan Coon
  • 15 edits
    2 moves
    2 adds in branches/safari-610.1.17-branch

Reintroduce content to branch.

This reverts r263238.

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

[iOS] Drop std::call_once() from RenderThemeIOS::cssValueToSystemColorMap()
https://bugs.webkit.org/show_bug.cgi?id=213392

Reviewed by Geoffrey Garen.

Drop std::call_once() from RenderThemeIOS::cssValueToSystemColorMap() since this function
is always called from the main thread.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::cssValueToSystemColorMap):

11:07 AM Changeset in webkit [263277] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

functionCpuClflush checks that the second argument is Int32 but it actually expects it to be UInt32
https://bugs.webkit.org/show_bug.cgi?id=213388

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2020-06-19
Reviewed by Saam Barati.

This changes the check from isInt32() to isUInt32() so that the logic is consistent.

  • tools/JSDollarVM.cpp:
10:15 AM Changeset in webkit [263276] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectations after r263268.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
10:11 AM Changeset in webkit [263275] by Chris Fleizach
  • 8 edits in trunk

AX: Make isolated tree enablement status dependent on client preference
https://bugs.webkit.org/show_bug.cgi?id=213355
<rdar://problem/64506577>

Reviewed by Zalan Bujtas.

Source/WebKit:

We don't want the isolated tree mode in all clients (like Mail or Dictionary).
As a result, we can set this setting to off and allow safari and mini browser turn on more directly.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setAccessibilityIsolatedTreeEnabled:]):
(-[WKPreferences _accessibilityIsolatedTreeEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setAccessibilityIsolatedTreeEnabled):

  • WebProcess/InjectedBundle/InjectedBundle.h:

Tools:

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate defaultConfiguration]):

10:07 AM Changeset in webkit [263274] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Enable referrer policy attribute support by default
https://bugs.webkit.org/show_bug.cgi?id=213285

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-19
Reviewed by Youenn Fablet.

Enable referrer policy attribute support by default by flipping the switch.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
9:45 AM Changeset in webkit [263273] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][GTK] Some tests fails to click elements because element is outside visible rect
https://bugs.webkit.org/show_bug.cgi?id=211330

Unreviewed test gardening.

These tests have been passing since r262861 landed.

9:34 AM Changeset in webkit [263272] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

LibWebRTCSocketClient::sendTo is too verbose in case of error
https://bugs.webkit.org/show_bug.cgi?id=213380

Reviewed by Eric Carlson.

Only log error message if the error code is different from the previous one.

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::sendTo):

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
9:30 AM Changeset in webkit [263271] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Web Inspector: RemoteInspector::singleton() slows down MobileSafari launch
https://bugs.webkit.org/show_bug.cgi?id=213381
<rdar://problem/64533003>

Reviewed by Darin Adler.

RemoteInspector::singleton() is expensive according to traces. It was called in WebProcessPool::initializeNewWebProcess()
which happens on MobileSafari launch because we prewarm a WebProcess. However, there is no reason to initialize remote
Web Inspector at this point. Per associated comment, Remote Web Inspector needs to be initialized once there is a
sub process hosting one of our Web View. As a result, I moved the initialization call to WebPageProxy::initializeWebPage()
which is when we actually send the IPC to the WebProcess to create the WebPage that is backing the UI-side WebView.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::initializeWebPage):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

9:21 AM Changeset in webkit [263270] by Chris Dumez
  • 13 edits in trunk/Source

Move Prefixed WebAudio interfaces behind their own feature flag
https://bugs.webkit.org/show_bug.cgi?id=213356

Reviewed by Darin Adler.

Source/WebCore:

Move Prefixed WebAudio interfaces behind their own feature flag, on by default. This will
allow us to easily disable the prefixed API and will also allow it to live independently
from the unprefixed API.

  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/WebKitAudioContext.idl:
  • Modules/webaudio/WebKitAudioPannerNode.idl:
  • Modules/webaudio/WebKitOfflineAudioContext.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

9:18 AM Changeset in webkit [263269] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Enable stale-while-revalidate support by default
https://bugs.webkit.org/show_bug.cgi?id=213286

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-19
Reviewed by Youenn Fablet.

Enable stale-while-revalidate support for Mac/GTK/WPE by changing the default
to true. Note that platforms that do not support speculative loads, which s-w-r
relies on, will not see any change in bahavior.

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
8:39 AM Changeset in webkit [263268] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Do not special-case empty tables
https://bugs.webkit.org/show_bug.cgi?id=213378

Reviewed by Antti Koivisto.

Source/WebCore:

Now that min/max-width support is added, empty tables can just go through the normal width computation path.

Test: fast/layoutformattingcontext/table-min-max-width-empty-content-simple.html

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

LayoutTests:

  • fast/layoutformattingcontext/table-min-max-width-empty-content-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-min-max-width-empty-content-simple.html: Added.
8:31 AM Changeset in webkit [263267] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Improve handling of trac downtime by commit-queue
https://bugs.webkit.org/show_bug.cgi?id=213377

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py: Load contributors.json from disk when loading from trac fails.

(ValidateCommiterAndReviewer.load_contributors_from_disk):
(ValidateCommiterAndReviewer.load_contributors_from_trac):
(ValidateCommiterAndReviewer.load_contributors):

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-test
8:28 AM Changeset in webkit [263266] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Mac wk2 Debug] webaudio/biquad-bandpass.html is flaky crashing with alert WTFCrash - WebCore::WebKitAudioContext::~WebKitAudioContext() + 654 (WebKitAudioContext.cpp:209).
https://bugs.webkit.org/show_bug.cgi?id=213375

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:35 AM Changeset in webkit [263265] by svillar@igalia.com
  • 7 edits in trunk

REGRESSION(r262254?): [WPE] imported/w3c/web-platform-tests/webxr/idlharness.https.window.html is failing
https://bugs.webkit.org/show_bug.cgi?id=212897

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/idlharness.https.window-expected.txt: Updated expectations.

Source/WebCore:

WPT tests were updated in r262254 and they already include the latest changes in the specs. Among others the
XR interface was renamed to XRSystem. We were already using that name in the C++ code but not in the JS interface.
The WPT update brings in another set of changes like the new XRLayer which is already not supported (I am
adding it soon in another patch). Last but not least, the new tests include checks for the XRPermissionStatus interface
which is not going to be implemented soon as it requires the Permission API which is not supported in WebKit yet. All in
all, this patch renames XR to XRSystem and marks as failing the XRLayer (temporarily) and XRPermissionStatus checks.

No new tests as there is no change in functionality.

  • Modules/webxr/WebXRSystem.idl: Rename XR to XRSystem.
  • bindings/js/WebCoreBuiltinNames.h: Ditto.

LayoutTests:

  • platform/wpe/TestExpectations: Re-enable the idlharness.https.window.html test.
6:52 AM Changeset in webkit [263264] by Lauro Moura
  • 71 edits
    7 copies
    9 adds in trunk/WebDriverTests

[WebDriver][WPE] Update imported selenium to a version with the WPE WebDriver
https://bugs.webkit.org/show_bug.cgi?id=213263

Reviewed by Carlos Garcia Campos.

Updated Selenium tests to 0d7e57a7079c, which added the WPE WebDriver.

  • imported/selenium/common/src/web/button.png: Added.
  • imported/selenium/common/src/web/formPage.html:
  • imported/selenium/common/src/web/inputs.html:
  • imported/selenium/common/src/web/relative_locators.html: Added.
  • imported/selenium/common/src/web/screen/screen.css:
  • imported/selenium/common/src/web/selectableItems.html:
  • imported/selenium/common/src/web/simpleTest.html:
  • imported/selenium/common/src/web/upload.html:
  • imported/selenium/common/src/web/upload_invisible.html:
  • imported/selenium/common/src/web/xhtmlTest.html:
  • imported/selenium/importer.json: Modified hash and skipped folders
  • imported/selenium/py/conftest.py:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/common/exceptions.py:
  • imported/selenium/py/selenium/webdriver/init.py:
  • imported/selenium/py/selenium/webdriver/common/action_chains.py:
  • imported/selenium/py/selenium/webdriver/common/actions/action_builder.py:
  • imported/selenium/py/selenium/webdriver/common/actions/input_device.py:
  • imported/selenium/py/selenium/webdriver/common/actions/interaction.py:
  • imported/selenium/py/selenium/webdriver/common/actions/key_actions.py:
  • imported/selenium/py/selenium/webdriver/common/actions/mouse_button.py:
  • imported/selenium/py/selenium/webdriver/common/actions/pointer_actions.py:
  • imported/selenium/py/selenium/webdriver/common/actions/pointer_input.py:
  • imported/selenium/py/selenium/webdriver/common/alert.py:
  • imported/selenium/py/selenium/webdriver/common/desired_capabilities.py:
  • imported/selenium/py/selenium/webdriver/common/html5/application_cache.py:
  • imported/selenium/py/selenium/webdriver/common/options.py: Added.
  • imported/selenium/py/selenium/webdriver/common/proxy.py:
  • imported/selenium/py/selenium/webdriver/common/timeouts.py: Added.
  • imported/selenium/py/selenium/webdriver/common/utils.py:
  • imported/selenium/py/selenium/webdriver/common/window.py: Copied from WebDriverTests/imported/selenium/py/selenium/init.py.
  • imported/selenium/py/selenium/webdriver/remote/command.py:
  • imported/selenium/py/selenium/webdriver/remote/errorhandler.py:
  • imported/selenium/py/selenium/webdriver/remote/remote_connection.py:
  • imported/selenium/py/selenium/webdriver/remote/switch_to.py:
  • imported/selenium/py/selenium/webdriver/remote/utils.py:
  • imported/selenium/py/selenium/webdriver/remote/webdriver.py:
  • imported/selenium/py/selenium/webdriver/remote/webelement.py:
  • imported/selenium/py/selenium/webdriver/safari/permissions.py: Copied from WebDriverTests/imported/selenium/py/selenium/init.py.
  • imported/selenium/py/selenium/webdriver/safari/remote_connection.py: Copied from WebDriverTests/imported/selenium/py/test/selenium/webdriver/remote/remote_firefox_profile_tests.py.
  • imported/selenium/py/selenium/webdriver/safari/service.py:
  • imported/selenium/py/selenium/webdriver/safari/webdriver.py:
  • imported/selenium/py/selenium/webdriver/support/color.py:
  • imported/selenium/py/selenium/webdriver/support/event_firing_webdriver.py:
  • imported/selenium/py/selenium/webdriver/support/expected_conditions.py:
  • imported/selenium/py/selenium/webdriver/support/relative_locator.py: Added.
  • imported/selenium/py/selenium/webdriver/support/select.py:
  • imported/selenium/py/selenium/webdriver/support/wait.py:
  • imported/selenium/py/selenium/webdriver/webkitgtk/options.py:
  • imported/selenium/py/selenium/webdriver/webkitgtk/webdriver.py:
  • imported/selenium/py/selenium/webdriver/wpewebkit/init.py: Copied from WebDriverTests/imported/selenium/py/selenium/init.py.
  • imported/selenium/py/selenium/webdriver/wpewebkit/options.py: Copied from WebDriverTests/imported/selenium/py/selenium/webdriver/webkitgtk/options.py.
  • imported/selenium/py/selenium/webdriver/wpewebkit/service.py: Copied from WebDriverTests/imported/selenium/py/selenium/webdriver/safari/service.py.
  • imported/selenium/py/selenium/webdriver/wpewebkit/webdriver.py: Copied from WebDriverTests/imported/selenium/py/selenium/webdriver/webkitgtk/webdriver.py.
  • imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/api_example_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/appcache_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/click_scrolling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/cookie_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/correct_event_firing_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/driver_element_finding_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/element_attribute_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/form_handling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/frame_switching_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/interactions_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/page_loading_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/position_and_size_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/proxy_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/rendered_webelement_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_element_handling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/takes_screenshots_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/timeout_tests.py: Added.
  • imported/selenium/py/test/selenium/webdriver/common/typing_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/w3c_interaction_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/window_tests.py:
  • imported/selenium/py/test/selenium/webdriver/remote/remote_firefox_profile_tests.py:
  • imported/selenium/py/test/selenium/webdriver/safari/launcher_tests.py:
  • imported/selenium/py/test/selenium/webdriver/support/event_firing_webdriver_tests.py:
  • imported/selenium/py/test/selenium/webdriver/support/expected_conditions_tests.py: Added.
  • imported/selenium/py/test/selenium/webdriver/support/relative_by_tests.py: Added.
6:40 AM Changeset in webkit [263263] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Warn potential issues when creating WindowViewBackend
https://bugs.webkit.org/show_bug.cgi?id=213326

Reviewed by Philippe Normand.

Make it easier to debug eventual GL issues when starting up MiniBrowser in
windowed mode.

  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WaylandEGLConnection::singleton):
(WPEToolingBackends::WindowViewBackend::WindowViewBackend):

6:34 AM Changeset in webkit [263262] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GTK] Garden some flaky crashes and start expect reorg

Unreviewed test gardening.

Also start new section in the top of the file to follow the glib
expectation grouping.

  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/glib/TestExpectations:
6:18 AM Changeset in webkit [263261] by Lauro Moura
  • 5 edits in trunk/Tools

[webkitpy][WPE] Default to headless if _display_server is xfvb
https://bugs.webkit.org/show_bug.cgi?id=213327

Reviewed by Philippe Normand.

Xvfb is used as the default display server for some scripts, and the
equivalent for WPE is the headless one.

WTR and the API tests already create only HeadlessViewBackends, but the
WebDriver tests create them through MiniBrowser, which requires the
'--headless' parameter.

  • Scripts/run-webdriver-tests: Do not override _display_server
  • Scripts/webkitpy/port/base.py:

(Port.init): Define _display_server for all ports to avoid
eventually needing to override it.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.init): Default to 'headless' if _display_server is 'xvfb'

  • Scripts/webkitpy/w3c/wpt_runner.py:

(main): Dot not override _display_server

5:43 AM Changeset in webkit [263260] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][BFC] Min/max-width should always be resolved against the containing block width
https://bugs.webkit.org/show_bug.cgi?id=213365

Reviewed by Antti Koivisto.

Source/WebCore:

Even when neighboring floats shrink the available horizontal space, the min/max(normal) widths should
be resolved against the containing block's logical width.

Test: fast/layoutformattingcontext/float-avoider-available-horizontal-space2.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::computedWidthAndMargin):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

LayoutTests:

  • fast/layoutformattingcontext/float-avoider-available-horizontal-space2-expected.html: Added.
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space2.html: Added.
5:27 AM Changeset in webkit [263259] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r253360): [GTK] Page starts loading during animation in back/forward gesture
https://bugs.webkit.org/show_bug.cgi?id=205650

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-06-19
Reviewed by Carlos Garcia Campos.

r253360 changed the swipe gesture to start loading the page during the gesture, relying on
freezing the layer tree state to prevent unwanted redraws. However, it was implemented for
AC mode, but didn't prevent redraws in non-accelerated mode. Add a simple check to skip
redraws in this case.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::display): Skip drawing if layer tree state is frozen.

12:49 AM Changeset in webkit [263258] by Carlos Garcia Campos
  • 17 edits in trunk

Add support for fetching registrable domains with resource load statistics
https://bugs.webkit.org/show_bug.cgi?id=213291

Source/WebKit:

Reviewed by Adrian Perez de Castro and Youenn Fablet.

WebsiteDataStore::fetchData() doesn't return anything for resource load statistics because
NetworkProcess::fetchWebsiteData() doesn't handle WebsiteDataType::ResourceLoadStatistics.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::allDomains const): Query all registrable domains from database.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::allDomains const): Return all registrable domains in memory map.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::registrableDomains): Get the list of registrable domains.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData): Handle WebsiteDataType::ResourceLoadStatistics.

  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::encode const): Encode registrableDomainsWithResourceLoadStatistics.
(WebKit::WebsiteData::decode): Decode registrableDomainsWithResourceLoadStatistics.

  • Shared/WebsiteData/WebsiteData.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveITPDataForDomain): Use WebsiteDataRecord::addResourceLoadStatisticsRegistrableDomain()
instead of the display name.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::addResourceLoadStatisticsRegistrableDomain): Add the given registrable domain to the list.

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

(WebKit::WebsiteDataStore::fetchDataAndApply): Handle registrable domains with resource load statistics.
(WebKit::WebsiteDataStore::removeData): Use resourceLoadStatisticsRegistrableDomains instead of the display name.

Tools:

Reviewed by Adrian Perez de Castro.

Update GLib ITP unit test to check also fetch and remove.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataITP):

12:43 AM Changeset in webkit [263257] by Tomoki Imai
  • 2 edits in trunk/Tools

Change my (Tomoki Imai's) status to committer

Unreviewed, just updating contributors.json for myself.

  • Scripts/webkitpy/common/config/contributors.json:
12:32 AM Changeset in webkit [263256] by svillar@igalia.com
  • 4 edits in trunk/Source/WebCore

[WebXR] unsigned long in IDL should be translated as unsigned in C++ code
https://bugs.webkit.org/show_bug.cgi?id=213020

Reviewed by Darin Adler.

The "unsigned long" type definition in IDL must be translated to unsigned in C++ code.

I'm also replacing the very long XRFrameRequestCallback::Identifier by simply unsigned as it
isn't adding anything.

No new test required as there is no change in functionality, just removing an alias.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::requestAnimationFrame):
(WebCore::WebXRSession::cancelAnimationFrame):

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/XRFrameRequestCallback.h:

(WebCore::XRFrameRequestCallback::callbackId):
(WebCore::XRFrameRequestCallback::setCallbackId):

12:04 AM Changeset in webkit [263255] by mmaxfield@apple.com
  • 25 edits
    1 copy
    57 adds in trunk

[Cocoa] Unify "font:" CSS shorthand values between macOS and iOS family
https://bugs.webkit.org/show_bug.cgi?id=213332
<rdar://problem/64479189>

Reviewed by Tim Horton and Darin Adler.

Source/WebCore:

They exist on all Cocoa platforms, so we might as well hook them up.

This unifies the shorthand CSS value handling from RenderThemeMac and
RenderThemeIOS into RenderThemeCocoa. This has two effects:

  • It hooks up the -apple-system keywords on macOS (they previously were only implemented for the iOS family).
  • It hooks up the CSS2 keywords (caption, menu, etc.) on the iOS family (they previously were only implemented on Mac).

All these fonts have been around since Mojave, so there is no need to
introduce any new platform guards.

Tests: fast/text/text-styles/-apple-system/-apple-system-body.html

fast/text/text-styles/-apple-system/-apple-system-caption1.html
fast/text/text-styles/-apple-system/-apple-system-caption2.html
fast/text/text-styles/-apple-system/-apple-system-footnote.html
fast/text/text-styles/-apple-system/-apple-system-headline.html
fast/text/text-styles/-apple-system/-apple-system-short-body.html
fast/text/text-styles/-apple-system/-apple-system-short-caption1.html
fast/text/text-styles/-apple-system/-apple-system-short-footnote.html
fast/text/text-styles/-apple-system/-apple-system-short-headline.html
fast/text/text-styles/-apple-system/-apple-system-short-subheadline.html
fast/text/text-styles/-apple-system/-apple-system-subheadline.html
fast/text/text-styles/-apple-system/-apple-system-tall-body.html
fast/text/text-styles/-apple-system/-apple-system-title0.html
fast/text/text-styles/-apple-system/-apple-system-title1.html
fast/text/text-styles/-apple-system/-apple-system-title2.html
fast/text/text-styles/-apple-system/-apple-system-title3.html
fast/text/text-styles/-apple-system/-apple-system-title4.html
fast/text/text-styles/-webkit-control.html
fast/text/text-styles/-webkit-mini-control.html
fast/text/text-styles/-webkit-small-control.html
fast/text/text-styles/bogus.html
fast/text/text-styles/caption.html
fast/text/text-styles/icon.html
fast/text/text-styles/menu.html
fast/text/text-styles/message-box.html
fast/text/text-styles/small-caption.html
fast/text/text-styles/status-bar.html

  • css/CSSValueKeywords.in: All Cocoa ports should be able to parse these values
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontWithFamilySpecialCase): Move code that used to be in the Mac and
iOS implementations of platformFontWithFamilySpecialCase() (inside FontCacheMac.mm
and FontCacheIOS.mm) to be shared to be shared inside fontWithFamilySpecialCase().

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp: Remove platform guards.

(WebCore::convertArray):
(WebCore::matchSystemFontUse):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp: Ditto.

(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):

  • platform/graphics/ios/FontCacheIOS.mm: Move code from here into FontCacheCoreText.

(WebCore::platformFontWithFamilySpecialCase):

  • platform/graphics/mac/FontCacheMac.mm: Ditto.

(WebCore::platformFontWithFamilySpecialCase):

  • platform/mac/ThemeMac.h: Delete systemFontSizeFor(NSControlSize) because

<rdar://problem/60350699> is fixed.

  • platform/mac/ThemeMac.mm: Ditto.

(WebCore::ThemeMac::controlFont const):
(WebCore::ThemeMac::systemFontSizeFor): Deleted.

  • rendering/RenderThemeCocoa.h: Previously, code was calling

RenderThemeIOS::contentSizeCategory(), which was a static function. Now, both Mac
and iOS need to be able to call this. However, the implementation of this function
is different between Mac and iOS. So, turn it from a static function in RenderThemeIOS
into a method in RenderThemeCocoa, and give RenderThemeCocoa a singleton() function
that downcasts the return of RenderTheme::singleton(). This way, instead of calling
RenderThemeIOS::contentSizeCategory(), code can call
RenderThemeCocoa::singleton().contentSizeCategory().

  • rendering/RenderThemeCocoa.mm: Move code from RenderThemeIOS and RenderThemeMac

into RenderThemeCocoa.
(WebCore::RenderThemeCocoa::singleton):
(WebCore::RenderThemeCocoa::cachedSystemFontDescription const):
(WebCore::cssWeightOfSystemFont):
(WebCore::RenderThemeCocoa::updateCachedSystemFontDescription const):

  • rendering/RenderThemeIOS.h: Ditto.
  • rendering/RenderThemeIOS.mm: Ditto.

(WebCore::RenderThemeIOS::contentSizeCategory const):
(WebCore::attachmentActionFont):
(WebCore::attachmentTitleFont):
(WebCore::RenderThemeIOS::contentSizeCategory): Deleted.
(WebCore::RenderThemeIOS::cachedSystemFontDescription const): Deleted.
(WebCore::cssWeightOfSystemFont): Deleted.
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription const): Deleted.

  • rendering/RenderThemeMac.h: Ditto.
  • rendering/RenderThemeMac.mm: Ditto.

(WebCore::RenderThemeMac::contentSizeCategory const):
(WebCore::RenderThemeMac::setFontFromControlSize const):
(WebCore::RenderThemeMac::controlSizeForSystemFont const):
(WebCore::toFontWeight): Deleted.
(WebCore::RenderThemeMac::updateCachedSystemFontDescription const): Deleted.

Source/WebCore/PAL:

  • pal/spi/cocoa/CoreTextSPI.h:

The implementation of RenderThemeMac::contentSizeCategory() needs to use
kCTFontContentSizeCategoryL.

Source/WTF:

All Cocoa platforms support kCTUIFontTextStyleTitle0 and kCTUIFontTextStyleTitle4.

  • wtf/PlatformHave.h:

LayoutTests:

  • TestExpectations:
  • fast/text/text-styles/-apple-system/-apple-system-body-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-body.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-caption1-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-caption1.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-caption2-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-caption2.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-footnote-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-footnote.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-headline-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-headline.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-body-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-body.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-caption1-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-caption1.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-footnote-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-footnote.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-headline-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-headline.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-subheadline-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-short-subheadline.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-subheadline-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-subheadline.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-tall-body-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-tall-body.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title0-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title0.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title1-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title1.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title2-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title2.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title3-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title3.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title4-expected-mismatch.html: Added.
  • fast/text/text-styles/-apple-system/-apple-system-title4.html: Added.
  • fast/text/text-styles/-webkit-control-expected-mismatch.html: Added.
  • fast/text/text-styles/-webkit-control.html: Added.
  • fast/text/text-styles/-webkit-mini-control-expected-mismatch.html: Added.
  • fast/text/text-styles/-webkit-mini-control.html: Added.
  • fast/text/text-styles/-webkit-small-control-expected-mismatch.html: Added.
  • fast/text/text-styles/-webkit-small-control.html: Added.
  • fast/text/text-styles/bogus-expected.html: Added.
  • fast/text/text-styles/bogus.html: Added.
  • fast/text/text-styles/caption-expected-mismatch.html: Added.
  • fast/text/text-styles/caption.html: Added.
  • fast/text/text-styles/icon-expected-mismatch.html: Added.
  • fast/text/text-styles/icon.html: Added.
  • fast/text/text-styles/menu-expected-mismatch.html: Added.
  • fast/text/text-styles/menu.html: Added.
  • fast/text/text-styles/message-box-expected-mismatch.html: Added.
  • fast/text/text-styles/message-box.html: Added.
  • fast/text/text-styles/small-caption-expected-mismatch.html: Added.
  • fast/text/text-styles/small-caption.html: Added.
  • fast/text/text-styles/status-bar-expected-mismatch.html: Added.
  • fast/text/text-styles/status-bar.html: Added.
  • platform/ios/TestExpectations:
  • platform/ios/fast/css/css2-system-fonts-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/fast/text/international/system-language/system-font-punctuation-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/system-font-punctuation-expected.txt: Added.

Jun 18, 2020:

8:59 PM Changeset in webkit [263254] by Diego Pino Garcia
  • 3 edits
    3 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263222.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt: Added.
8:42 PM Changeset in webkit [263253] by Doug Kelly
  • 4 edits in trunk/Source/WebCore

Use paintCellAndSetFocusedElementNeedsRepaintIfNecessary() for search field buttons
https://bugs.webkit.org/show_bug.cgi?id=213352
<rdar://problem/57129008>

Reviewed by Simon Fraser.

The search fields cancel and results buttons should use the common
paintCellAndSetFocusedElementNeedsRepaintIfNecessary() function instead of directly painting the cell.
This allows for an image buffer to be used for drawing specifically in cases when it becomes needed,
when a scale (either via zoom or CSS transform) is applied.

This also moves the logic for determining if an image buffer should be used into
ThemeMac::drawCellOrFocusRingWithViewIntoContext(), which uses the current user-defined CTM
(inverting the base CTM to negate the effect of a device-specific scale factor). This also negates
the need for the page scale factor and the effective zoom applied to the renderer style, since it is
computed into the CTM already.

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

(WebCore::paintToggleButton):
(WebCore::paintButton):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
(WebCore::paintColorWell):
(WebCore::ThemeMac::paint):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):

8:30 PM Changeset in webkit [263252] by mark.lam@apple.com
  • 7 edits in trunk/Source

Unify Bitmap math loops in MarkedBlock::Handle::specializedSweep().
https://bugs.webkit.org/show_bug.cgi?id=213345

Reviewed by Robin Morisset and Saam Barati.

Source/JavaScriptCore:

This change appears to be performance neutral. However, we'll take the change
because we know that it does less work, and the new way of expressing the Bitmap
math in MarkedBlock::Handle::specializedSweep() does appear to be easier to
understand than the old code.

Also addressed feedback from Robin and Saam in https://bugs.webkit.org/show_bug.cgi?id=213071.

Changes made:

  1. Use the new Bitmap::words() API to get direct access to the underlying bits storage. With this, we can do the merging of the marked and newlyAllocated bits with a single pass looping thru the bitmap words.
  1. In MarkedBlock::Handle::specializedSweep()'s Bitmap free list code, moved the implementation of handleDeadCells lambda down to the call to freeAtoms.forEachSetBit() because this is the only place it is used.
  1. Fixed MarkedBlock::Handle::specializedSweep()'s Bitmap free list code to handle the dead cells unconditionally. This condition check was wrongly adapted from the linked list implementation where handleDeadCell() was called in 2 places depending on the destruction mode. With the Bitmap free list, there is only once place to handle the dead cells, and it should be executed unconditionally.

This fixes a bug where the FreeList::originalSize() never gets computed if the
cells in the block does not need destruction.

  1. Renamed FreeList::bitmapRows() to FreeList::bitmapRowsMinusOne(). Renamed FreeList::offsetOfBitmapRows() to FreeList::offsetOfBitmapRowsMinusOne().
  1. Also fixed some typos in comments.
  • heap/FreeList.h:

(JSC::FreeList::bitmapIsEmpty const):
(JSC::FreeList::offsetOfBitmapRowsMinusOne):
(JSC::FreeList::bitmapRowsMinusOne const):
(JSC::FreeList::offsetOfBitmapRows): Deleted.
(JSC::FreeList::bitmapRows const): Deleted.

  • heap/FreeListInlines.h:

(JSC::FreeList::allocate):
(JSC::FreeList::forEach const):

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

Source/WTF:

  1. Removed Bitmap::words. Use Bitmap::numberOfWords instead.
  2. Removed Bitmap::wordSize. Use Bitmap::bitsInWord instead.
  3. Added a new Bitmap::words() method which returns the address of the underlying bitmap storage as a Bitmap::Word*. This enables clients to do direct bit manipulation on the Bitmap words if needed.
  • wtf/Bitmap.h:

(WTF::WordType>::get const):
(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::concurrentTestAndSet):
(WTF::WordType>::concurrentTestAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::invert):
(WTF::WordType>::nextPossiblyUnset const):
(WTF::WordType>::count const):
(WTF::WordType>::isEmpty const):
(WTF::WordType>::isFull const):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::concurrentFilter):
(WTF::WordType>::subsumes const):
(WTF::WordType>::forEachSetBit const):
(WTF::WordType>::findBit const):
(WTF::WordType>::mergeAndClear):
(WTF::WordType>::setAndClear):
(WTF::WordType>::setEachNthBit):
(WTF::= const):
(WTF::=):
(WTF::WordType>::hash const):

6:45 PM Changeset in webkit [263251] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Use fastMalloc/fastFree in WebCoreArgumentCodersMac.mm
<https://webkit.org/b/213325>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList):
(IPC::createCFURLRequestFromSerializableRepresentation):

6:43 PM Changeset in webkit [263250] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove dead non-ICU locale Date code since we are always using ICU version
https://bugs.webkit.org/show_bug.cgi?id=213362

Reviewed by Ross Kirsling.

There are old non-ICU version of Date locale code. But this is now dead code since we are always using ICU version,
which is invoked from builtin JS DatePrototype.js. We should remove these dead code.

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):
(): Deleted.
(JSC::styleFromArgString): Deleted.
(JSC::formatLocaleDate): Deleted.
(JSC::dateProtoFuncToLocaleString): Deleted.
(JSC::dateProtoFuncToLocaleDateString): Deleted.
(JSC::dateProtoFuncToLocaleTimeString): Deleted.

6:04 PM Changeset in webkit [263249] by ysuzuki@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed, fix test failure in Windows part 2
https://bugs.webkit.org/show_bug.cgi?id=213269

Looks like Windows TWR and DRT have different implementation.

  • platform/win/fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Added.
  • platform/wincairo/fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Added.
5:37 PM Changeset in webkit [263248] by timothy_horton@apple.com
  • 11 edits
    2 moves in trunk

Remove some vestiges of the 32-bit Plugin Process
https://bugs.webkit.org/show_bug.cgi?id=213361

Reviewed by Dan Bernstein.

.:

  • Makefile.shared:

This hack from r203348 is no longer needed, because WebKit cannot be built for 32-bit anymore.

Source/WebKit:

We haven't launched 32-bit plugins for a while, but there are some
build system complications and random references in the code that we can get rid of.

  • WebKit.xcodeproj/project.pbxproj:
  • Configurations/PluginService.xcconfig: Renamed from Source/WebKit/Configurations/PluginService.64.xcconfig.

No need for .64 in the name anymore, since it's the only one.
We do have to leave the .64 in the product name because there are other things in the system that depend on this.

  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.Info.plist: Renamed from Source/WebKit/PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.64.Info.plist.

No need for .64 in the name anymore.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes):
There need only be one ProcessType for the plugin process now!

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes):

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):
GTK WebKit appears to also only launch 64-bit plugin processes.

4:42 PM Changeset in webkit [263247] by Alan Coon
  • 1 copy in tags/Safari-609.3.5.1.2

Tag Safari-609.3.5.1.2.

4:38 PM Changeset in webkit [263246] by Alan Coon
  • 8 edits in branches/safari-609.3.5.1-branch/Source

Versioning.

WebKit-609.3.5.1.2

4:34 PM Changeset in webkit [263245] by ysuzuki@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, fix test failure in Windows
https://bugs.webkit.org/show_bug.cgi?id=213269

  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt:
  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash.html:
4:28 PM Changeset in webkit [263244] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Catalina Debug WK2 ] fast/events/platform-wheelevent-in-scrolling-div.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213351

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-18

  • platform/mac-wk2/TestExpectations:
4:13 PM Changeset in webkit [263243] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, address Darin's feedback on r263227.

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::UNumberFormatDeleter::operator() const):
(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::IntlRelativeTimeFormat::formatToParts const):

  • runtime/IntlRelativeTimeFormat.h:

Keep ownership over our UNumberFormat instance after all,
to avoid relying on behavior ICU isn't explicitly guaranteeing.

4:11 PM Changeset in webkit [263242] by Jonathan Bedard
  • 2 edits in trunk/Tools

Add SPI to preconnect to a server (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=213109
<rdar://problem/64184412>

Unreviewed build-fix.

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm: HTTPServer does not exist if HAVE(NETWORK_FRAMEWORK) is false.
4:04 PM Changeset in webkit [263241] by Jonathan Bedard
  • 2 edits in trunk/Tools

[iOS] Two KeyboardInputTests are failing on recent iOS SDK versions (build-fix)
https://bugs.webkit.org/show_bug.cgi?id=213183
<rdar://problem/64273483>

Unreviewed build fix.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(webViewWithAutofocusedInput): bool may not be the same type as BOOL.

3:58 PM Changeset in webkit [263240] by sbarati@apple.com
  • 2 edits in trunk/JSTests

sampling-profiler-wasm-name-section should run for more iterations
https://bugs.webkit.org/show_bug.cgi?id=207576
<rdar://problem/59431250>

Reviewed by Mark Lam.

This test was flaky because the sampling profiler is inherently probabilistic.
We need to run it for more iterations to ensure it's not flaky.

  • stress/sampling-profiler-wasm-name-section.js:
3:53 PM Changeset in webkit [263239] by Alan Coon
  • 8 edits in branches/safari-610.1.17-branch/Source

Versioning.

WebKit-610.1.17.1

3:53 PM Changeset in webkit [263238] by Alan Coon
  • 15 edits
    2 moves
    2 deletes in branches/safari-610.1.17-branch

Temporarily revert non-Hunter tested content.

3:47 PM Changeset in webkit [263237] by Alan Coon
  • 1 copy in tags/Safari-609.3.5.1.1

Tag Safari-609.3.5.1.1.

3:47 PM Changeset in webkit [263236] by Russell Epstein
  • 12 edits
    2 adds in branches/safari-609.3.5.0-branch

Apply patch. rdar://problem/64178850

3:41 PM Changeset in webkit [263235] by sbarati@apple.com
  • 2 edits in trunk/Tools

call skip when skipping JetStream2 wasm test
https://bugs.webkit.org/show_bug.cgi?id=213354

Reviewed by Yusuke Suzuki.

So we can see the logging that we're skipping.

  • Scripts/run-jsc-stress-tests:
3:37 PM Changeset in webkit [263234] by Alan Coon
  • 8 edits in branches/safari-609.3.5.1-branch/Source

Versioning.

WebKit-609.3.5.1.1

3:18 PM Changeset in webkit [263233] by Alan Coon
  • 1 copy in tags/Safari-610.1.17

Tag Safari-610.1.17.

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

Workaround for UIKit layout bug in time picker.
https://bugs.webkit.org/show_bug.cgi?id=213346
<rdar://problem/64042277>

Reviewed by Tim Horton.

There is a bug in the layout of UIKit that needs to be fixed.
Until then, this workaround should give us a view that is viable.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView resignFirstResponderForWebView]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimeContextMenuViewController preferredContentSize]):

3:11 PM Changeset in webkit [263231] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

Web Inspector: ASSERTION FAILED: decodedLength >= dataLength at WebCore::NetworkResourcesData::ResourceData::decodeDataToContent()
https://bugs.webkit.org/show_bug.cgi?id=213271
<rdar://problem/64168350>

Reviewed by Brian Burg.

Remove the invalid ASSERT(decodedLength >= dataLength) as it's very possible for decoded
content to be smaller than encoded content (e.g. something gzipped).

Use String::sizeInBytes instead of StringImpl::sizeInBytes as the latter also includes
sizeof(*this), which is not really part of the resource's size, as it's really more of an
implementation detail.

  • inspector/NetworkResourcesData.h:
  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::ResourceData::removeContent):
(WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
(WebCore::NetworkResourcesData::setResourceContent):
(WebCore::NetworkResourcesData::maybeDecodeDataToContent):
(WebCore::contentSizeInBytes): Deleted.

2:54 PM Changeset in webkit [263230] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Apple Pay] Fix a log message typo in PaymentCoordinator::didAuthorizePayment

Rubber-stamped by Beth Dakin.

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::didAuthorizePayment): Logged the correct function name.

2:12 PM Changeset in webkit [263229] by Russell Epstein
  • 8 edits in branches/safari-609.3.5.0-branch/Source

Versioning.

WebKit-609.3.5.0.1

1:54 PM Changeset in webkit [263228] by jh718.park@samsung.com
  • 2 edits in trunk/Tools

Unreviewed. Remove the build warning below since r262971.
warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]

  • WebKitTestRunner/TestController.cpp:

(WTR::getAllStorageAccessEntriesCallback):

1:48 PM Changeset in webkit [263227] by Ross Kirsling
  • 12 edits in trunk

[Intl] Enable RelativeTimeFormat and Locale by default
https://bugs.webkit.org/show_bug.cgi?id=213324

Reviewed by Yusuke Suzuki.

JSTests:

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

Remove feature flags.

Source/JavaScriptCore:

  • runtime/IntlObject.cpp:

(JSC::createDateTimeFormatConstructor):
(JSC::createLocaleConstructor):
(JSC::createNumberFormatConstructor):
(JSC::createRelativeTimeFormatConstructor):
(JSC::IntlObject::finishCreation):
Unconditionalize creation of RelativeTimeFormat and Locale constructors.

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::IntlRelativeTimeFormat::formatToParts const):
(JSC::IntlRelativeTimeFormat::UNumberFormatDeleter::operator() const): Deleted.

  • runtime/IntlRelativeTimeFormat.h:

Fix an actual bug -- URelativeDateTimeFormatter *adopts* the UNumberFormat it's instantiated with,
so we can't keep a unique_ptr to it.

  • runtime/OptionsList.h:

Remove feature flags.

Tools:

  • Scripts/run-jsc-stress-tests:

Remove feature flags.

1:34 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:34 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:33 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:29 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:25 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:22 PM Changeset in webkit [263226] by Alan Coon
  • 8 edits in branches/safari-610.1.15.51-branch/Source

Versioning.

WebKit-610.1.15.51.5

1:12 PM Changeset in webkit [263225] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: add comments for localized strings in execution context picker
https://bugs.webkit.org/show_bug.cgi?id=213280

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._populateActiveExecutionContextNavigationItemContextMenu):

  • Localizations/en.lproj/localizedStrings.js:
1:09 PM WebInspectorTests edited by Devin Rousso
(diff)
1:07 PM Changeset in webkit [263224] by aestes@apple.com
  • 2 edits in trunk/Tools

Unreviewed build fix after r263194

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues): Guarded code that mentions
UIContextMenuInteraction with USE(UICONTEXTMENU).

1:06 PM Changeset in webkit [263223] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, re-landing r262904.

r263219 and r263175 should fix the test flakiness we saw.

Re-landed changeset:

"[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
a timer"
https://bugs.webkit.org/show_bug.cgi?id=213063
https://trac.webkit.org/changeset/262904

11:22 AM Changeset in webkit [263222] by Alexey Shvayka
  • 6 edits in trunk

Promise built-in functions should be anonymous non-constructors
https://bugs.webkit.org/show_bug.cgi?id=213317

Reviewed by Darin Adler.

JSTests:

  • test262/expectations.yaml: Mark 20 test cases as passing.

Source/JavaScriptCore:

This patch makes userland-exposed Promise built-in functions
non-constructors and sets their "name" properties to empty strings
as per spec [1], aligning JSC with V8 and SpiderMonkey.

@createResolvingFunctionsWithoutPromise change is covered by test262's
async-generator/yield-thenable-create-resolving-functions-*.js cases.

Promise microbenchmarks are neutral. Promise constructors bytecode is
unchanged, while @createResolvingFunctions* bytecode is reduced by 2
instructions.

[1]: https://tc39.es/ecma262/#sec-ecmascript-standard-built-in-objects

  • builtins/PromiseConstructor.js:

(nakedConstructor.Promise):
(nakedConstructor.InternalPromise):

  • builtins/PromiseOperations.js:

(globalPrivate.newPromiseCapabilitySlow):
(globalPrivate.createResolvingFunctions):
(globalPrivate.createResolvingFunctionsWithoutPromise):
(globalPrivate.createResolvingFunctions.resolve): Deleted.
(globalPrivate.createResolvingFunctions.reject): Deleted.
(resolve): Deleted.
(reject): Deleted.

  • builtins/PromisePrototype.js:

(globalPrivate.getThenFinally):
(globalPrivate.getCatchFinally):
(valueThunk): Deleted.
(thrower): Deleted.

10:47 AM Changeset in webkit [263221] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][BFC] Available space computation for the float avoider needs coordinate mapping
https://bugs.webkit.org/show_bug.cgi?id=213339

Reviewed by Antti Koivisto.

Source/WebCore:

The FloatConstraints position values are in formatting root coordinates but the available space
requires containing block coordinates.

Test: fast/layoutformattingcontext/float-avoider-available-horizontal-space.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):

LayoutTests:

  • fast/layoutformattingcontext/float-avoider-available-horizontal-space-expected.html: Added.
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space.html: Added.
10:45 AM Changeset in webkit [263220] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build fix for errors with structured bindings to const structure
https://bugs.webkit.org/show_bug.cgi?id=213323

Reviewed by Fujii Hironori.

Our system seems to have trouble with these structured bindings,
similar to what was previously seen for clang-cl.

No new tests, build fix.

  • inspector/agents/InspectorNetworkAgent.cpp:
10:42 AM Changeset in webkit [263219] by ggaren@apple.com
  • 2 edits in trunk/LayoutTests

inspector/canvas/create-context-webgpu.html was a flaky failure after r262904
https://bugs.webkit.org/show_bug.cgi?id=213343

Reviewed by Darin Adler.

This test races a zero-delay GC timer against WebCore releasing its last
reference to a WebGPU canvas. Flaky!

Make GC deterministic by continually retrying GC until the Web
Inspector is notified that the canvas has been collected.

Also make sure to stop GC'ing afterwards. I'm not sure if this matters
or not, but it is good to prevent one test from changing behavior in
another.

  • inspector/canvas/resources/create-context-utilities.js:

(destroyCanvases):

10:28 AM Changeset in webkit [263218] by youenn@apple.com
  • 4 edits in trunk

REGRESSION (r263098): [Win10] http/tests/security/cross-origin-clean-css-resource-timing.html and http/tests/security/cross-origin-css-resource-timing.html are failing
https://bugs.webkit.org/show_bug.cgi?id=213303
<rdar://problem/64452203>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing tests.

  • loader/ResourceLoaderOptions.h:

Reverting part of https://trac.webkit.org/changeset/263098/webkit that might have broken win10 bots.

LayoutTests:

  • platform/win/TestExpectations:
10:25 AM Changeset in webkit [263217] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Avoid setting GstContext twice in GLVideoSinkGStreamer
https://bugs.webkit.org/show_bug.cgi?id=213029

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-06-18
Reviewed by Xabier Rodriguez-Calvar.

There is a reported issued in GStrearGL < 1.17 for GLBaseFilter
can't handle its GLContext and Display reassignation. This patch
aims to to avoid setting Display or GL Context in GL video sink
multiple times by checking if the video sink bin already has those
contexts.

Also, instead of relying on an assert if something goes wrong at
fetching the GL parameters, it returns an error at state change.

No new tests required.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(requestGLContext):
(setGLContext): new function.
(webKitGLVideoSinkChangeState):

10:10 AM Changeset in webkit [263216] by Alexey Shvayka
  • 8 edits in trunk

TypedArray.prototype.set is incorrect with primitives
https://bugs.webkit.org/show_bug.cgi?id=212730

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This change implements step 14 of %TypedArray%.prototype.set [1],
which coerces primitives to objects instead of throwing an error,
aligning JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-%typedarray%.prototype.set-array-offset

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncSet):

LayoutTests:

  • fast/canvas/webgl/array-get-and-set-method-removal-expected.txt:
  • fast/canvas/webgl/array-get-and-set-method-removal.html:
  • fast/canvas/webgl/array-set-invalid-arguments-expected.txt:
10:03 AM Changeset in webkit [263215] by Diego Pino Garcia
  • 3 edits
    4 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263207.

  • platform/glib/js/dom/constructor-length-expected.txt: Updated.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-serializable-expected.txt: Added.
9:52 AM Changeset in webkit [263214] by Alan Coon
  • 5 edits
    2 moves in branches/safari-610.1.17-branch/Source/WebCore

Cherry-pick r263129. rdar://problem/64492826

FileListCreator should only be used for resolving directories
https://bugs.webkit.org/show_bug.cgi?id=213259
<rdar://problem/64375709>

Reviewed by David Kilzer.

Depending on whether directories should be resolved, FileListCreator::create would either
synchronously execute its completion handler then return nullptr or asynchronously dispatch
its completion handler then return a non-null RefPtr. Interfaces with sometimes-synchronous
callbacks can be hard to use correctly; e.g., r262962 fixes a problem where
FileInputType::m_fileListCreator was being modified in an unexpected order.

This patch makes the interface between FileInputType and FileListCreator less error-prone
and more explicit by renaming FileListCreator to DirectoryFileListCreator, making its job
solely to create directory FileLists on a background queue, and giving it an explicit start
member function. For non-directories, FileInputType::filesChosen now bypasses
DirectoryFileListCreator and directly converts from Vector<FileChooserFileInfo> to FileList.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/DirectoryFileListCreator.cpp: Renamed from html/FileListCreator.cpp. (WebCore::createFileList): Removed the template and ShouldResolveDirectories parameter. (WebCore::DirectoryFileListCreator::DirectoryFileListCreator): Moved the work queue dispatching to DirectoryFileListCreator::start. (WebCore::DirectoryFileListCreator::start): Added; moved the work queue dispatching here from the ctor.
  • html/DirectoryFileListCreator.h: Renamed from html/FileListCreator.h. (WebCore::DirectoryFileListCreator::create): Stopped performing non-directory creation and changed the return value back to Ref<>.
  • html/FileInputType.cpp: (WebCore::FileInputType::filesChosen): Moved most of the work done in the FileListCreator completion handler to didCreateFileList. When !FileInputType::allowsDirectories, used Vector::map to convert paths to a Vector<Ref<File>>, used that to create a FileList, then called didCreateFileList. Otherwise, created and started a DirectoryFileListCreator that calls didCreateFileList in its completion handler. (WebCore::FileInputType::didCreateFileList): Added; sets the new file list and icon and clears m_directoryFileListCreator.
  • html/FileInputType.h:

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

9:52 AM Changeset in webkit [263213] by Alan Coon
  • 5 edits
    2 adds in branches/safari-610.1.17-branch

Cherry-pick r263128. rdar://problem/64492837

REGRESSION (r262643): DumpRenderTree at com.apple.WebCore: WebCore::Document::prepareCanvasesForDisplayIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=213221
rdar://64260400

Reviewed by Simon Fraser.

Source/WebCore:

A Document could still be holding a pointer to an HTMLCanvasElement after the
canvas had been deleted because the CanvasObserver protocol was disconnected
too early. The fix is to explicitly clear the canvas from the Document as it
stops observing.

Test: webgl/preparation-removed-from-document.html

  • dom/Document.cpp: (WebCore::Document::prepareCanvasesForDisplayIfNeeded): Copy the HashSet to a Vector just in case something weird happens to the set during iteration. (WebCore::Document::clearCanvasPreparation): Remove the canvas from the list of of elements that need preparation.
  • dom/Document.h: Add the new clearCanvasPreparation method.
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::~HTMLCanvasElement): Clear the document. (WebCore::HTMLCanvasElement::didMoveToNewDocument): Ditto. (WebCore::HTMLCanvasElement::removedFromAncestor): Ditto.

LayoutTests:

Test that triggers a rendering on a canvas, then rips it out of
the document before drawing.

  • webgl/preparation-removed-from-document-expected.txt: Added.
  • webgl/preparation-removed-from-document.html: Added.

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

9:52 AM Changeset in webkit [263212] by Alan Coon
  • 7 edits in branches/safari-610.1.17-branch/Source/WebCore

Cherry-pick r263119. rdar://problem/64492834

Web Inspector: replace completion handler with a function in interception.
https://bugs.webkit.org/show_bug.cgi?id=213252

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-06-16
Reviewed by Devin Rousso.

Don't use a CompletionHandler as it asserts that it's been called when it's destroyed.
Both Network.interceptRequestWithResponse and Network.interceptRequestWithError essentially
"skip" the network pipeline, so the CompletionHandler is not invoked for those commands.

  • inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::interceptRequestImpl):
  • inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::interceptRequest):
  • inspector/InspectorInstrumentationWebKit.cpp: (WebCore::InspectorInstrumentationWebKit::interceptRequestInternal):
  • inspector/InspectorInstrumentationWebKit.h: (WebCore::InspectorInstrumentationWebKit::interceptRequest):
  • inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::interceptRequest): (WebCore::InspectorNetworkAgent::interceptRequestWithResponse): (WebCore::InspectorNetworkAgent::interceptRequestWithError):
  • inspector/agents/InspectorNetworkAgent.h: (WebCore::InspectorNetworkAgent::PendingInterceptRequest::PendingInterceptRequest): (WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueAsHandled):

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

9:32 AM Changeset in webkit [263211] by Doug Kelly
  • 4 edits in trunk/Source/WebCore

Clamp text run width to zero
https://bugs.webkit.org/show_bug.cgi?id=212655
<rdar://problem/61462335>

Reviewed by Said Abou-Hallawa.

It's possible to end up with a text run with negative width, if the text run is relatively short
and the character spacing is relatively large (but negative). If this occurs, clamp the value to
zero. This also adds additional asserts and checks to ensure the value remains non-negative.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLinesForText):

  • rendering/ComplexLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/RenderText.cpp:

(WebCore::RenderText::width const):

9:30 AM Changeset in webkit [263210] by Ryan Haddad
  • 2 edits in trunk/Tools

Unreviewed infrastructure fix, temporarily remove ews116 due to hardware failure tracked with rdar://64424245

  • BuildSlaveSupport/ews-build/config.json:
9:28 AM Changeset in webkit [263209] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Fix misspellings of "namespace" in comments

  • page/SpatialNavigation.h:
  • platform/gtk/RenderThemeScrollbar.cpp:
8:53 AM Changeset in webkit [263208] by ddkilzer@apple.com
  • 31 edits in trunk/Source

[IPC hardening] OptionSet<> values should be validated
<https://webkit.org/b/213199>
<rdar://problem/64369963>

Reviewed by Anders Carlsson.

Source/WebCore:

Summary:

  • Add WTF::EnumTraits<> for all OptionSet<> enums.
  • Specify unsigned backing types for enum classes.
  • loader/CrossOriginAccessControl.h:
  • page/ActivityState.h:
  • page/AutoplayEvent.h:
  • page/CrossSiteNavigationDataTransfer.h:
  • page/LayoutMilestone.h:
  • page/TextIndicator.h:
  • platform/PlatformEvent.h:
  • platform/graphics/GraphicsContext.h:

Source/WebKit:

Summary:

  • Add WTF::EnumTraits<> for all OptionSet<> enums.
  • Specify unsigned backing types for enum classes.
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSession.h:
  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<OptionSet<T>>::encode):
(IPC::ArgumentCoder<OptionSet<T>>::decode):

  • Add WTF::isValidOptionSet() checks.
  • Platform/IPC/Decoder.h:
  • Platform/IPC/Encoder.h:
  • Replace <wtf/EnumTraits.h> with <wtf/OptionSet.h> since the latter now includes the former.
  • Platform/IPC/MessageFlags.h:
  • Shared/DocumentEditingContext.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/WebEvent.h:
  • Shared/WebsiteAutoplayQuirk.h:
  • Shared/WebsiteData/WebsiteData.h:
  • Shared/WebsiteData/WebsiteDataFetchOption.h:
  • Shared/WebsiteData/WebsiteDataType.h:
  • Shared/ios/GestureTypes.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebProcess.h:

Source/WTF:

  • wtf/OptionSet.h:

(WTF::isValidOptionSet): Add.

7:25 AM Changeset in webkit [263207] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update status of flaky timeout failures after r263206.

  • platform/gtk/TestExpectations:
4:41 AM Changeset in webkit [263206] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove stale flaky failures after r263205.

  • platform/gtk/TestExpectations:
2:45 AM Changeset in webkit [263205] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove stake flaky crash failures after r263204.

  • platform/gtk/TestExpectations:
1:17 AM Changeset in webkit [263204] by Carlos Garcia Campos
  • 13 edits in trunk

[GTK][WPE] Add API to configure and handle service worker registrations to WebKitWebsiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=213290

Reviewed by Michael Catanzaro.

Source/WebKit:

The default path is always used even for apps setting a base data directory. We should handle
WebsiteDataType::ServiceWorkerRegistrations to configure the directory and allow to fetch and clear them.

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_service_worker_registrations_directory):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:

Tools:

Handle new website data in MiniBrowser and add a unit test.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):
(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(testWebsiteDataITP):
(testWebsiteDataServiceWorkerRegistrations):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

1:15 AM Changeset in webkit [263203] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK
https://bugs.webkit.org/show_bug.cgi?id=212844

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2020-06-18
Rubber-stamped by Carlos Garcia Campos.

  • uk.po:
1:12 AM Changeset in webkit [263202] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix a typo introduced in r263085

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2020-06-18

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkit_website_data_manager_class_init):

12:36 AM Changeset in webkit [263201] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after r263199.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/accessibility/roles-exposed-expected.txt:

Jun 17, 2020:

10:54 PM Changeset in webkit [263200] by Diego Pino Garcia
  • 3 edits
    2 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263197.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/plugins/plugin-javascript-access-allow-all-plugins-expected.txt: Added.
  • platform/wpe/TestExpectations:
9:16 PM Changeset in webkit [263199] by Chris Dumez
  • 7 edits in trunk

Added missing orientation attributes to PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213301

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

LayoutTests/imported/w3c:

Re-baselined previous tests that now have passing test cases.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic-expected.txt:

Source/WebCore:

Implemented orientation attributes in PannerNode interface, as per spec: https://www.w3.org/TR/webaudio/#pannernode.
Added FIXME comments for removing velocity later.

Re-baselined previous tests that now have passing test cases.

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::orientation const):
(WebCore::PannerNode::setOrientation):
(WebCore::PannerNode::distanceConeGain):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
9:14 PM Changeset in webkit [263198] by Chris Dumez
  • 99 edits
    16 copies in trunk

Add experimental feature flag for modern & unprefixed WebAudio API
https://bugs.webkit.org/show_bug.cgi?id=213268

Reviewed by Jer Noble.

LayoutTests/imported/w3c:

Rebaseline a few web-platform-tests now that they are passing or failing at a later stage.
This is due to our WebAudio getting properly unprefixed in the context of layout tests.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context.tentative-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative-expected.txt:

Source/WebCore:

Add experimental feature flag for modern & unprefixed WebAudio API,
off by default.

This patch split the AudioContext, OfflineAudioContext and PannerNode
IDL interfaces into their prefixed and unprefixed versions. The
unprefixed versions are behind the new experimental feature flag that
is currently off by default but automatically gets turned on in the
context of layout tests.

This will give us more flexibility when working on the modern and
unprefixed WebAudio API as we will not have to worry about backward
compatibility. This also allows us to easily turn it on or off via
the experimental features menu in Safari.

No new tests, rebaselined existing tests.

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

(WebCore::AnalyserNode::AnalyserNode):

  • Modules/webaudio/AnalyserNode.h:
  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::setPannerNode):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContextBase::AudioContextBase):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContextBase::document const):
(WebCore::AudioContextBase::scriptExecutionContext const):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContextBase::AutoLocker::AutoLocker):
(WebCore::AudioContextBase::AutoLocker::~AutoLocker):
(WebCore::AudioContext::maxNumberOfChannels):
(isType):

  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioContextState.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/AudioContextState.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::deref):
(WebCore::AudioNode::contextForBindings const):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::context):
(WebCore::AudioNode::context const):

  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioNodeOutput.h:

(WebCore::AudioNodeOutput::context):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::AudioParam):

  • Modules/webaudio/AudioParam.h:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valueForContextTime):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::AudioSummingJunction):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::context):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadFilterNode.h:
  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • Modules/webaudio/BiquadProcessor.h:
  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):

  • Modules/webaudio/ConvolverNode.h:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):
(WebCore::DelayNode::create):

  • Modules/webaudio/DelayNode.h:
  • Modules/webaudio/DelayProcessor.cpp:

(WebCore::DelayProcessor::DelayProcessor):

  • Modules/webaudio/DelayProcessor.h:
  • Modules/webaudio/DistanceModelType.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/DistanceModelType.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):

  • Modules/webaudio/DynamicsCompressorNode.h:
  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):

  • Modules/webaudio/GainNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::OscillatorNode):

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

(WebCore::PannerNodeBase::PannerNodeBase):
(WebCore::PannerNode::PannerNode):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/PanningModelType.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/PanningModelType.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):

  • Modules/webaudio/WaveShaperNode.h:
  • Modules/webaudio/WebKitAudioContext.cpp: Copied from Source/WebCore/Modules/webaudio/AudioContext.cpp.

(WebCore::WebKitAudioContext::isSampleRateRangeGood):
(WebCore::WebKitAudioContext::create):
(WebCore::WebKitAudioContext::WebKitAudioContext):
(WebCore::WebKitAudioContext::constructCommon):
(WebCore::WebKitAudioContext::~WebKitAudioContext):
(WebCore::WebKitAudioContext::lazyInitialize):
(WebCore::WebKitAudioContext::clear):
(WebCore::WebKitAudioContext::uninitialize):
(WebCore::WebKitAudioContext::isInitialized const):
(WebCore::WebKitAudioContext::addReaction):
(WebCore::WebKitAudioContext::setState):
(WebCore::WebKitAudioContext::stop):
(WebCore::WebKitAudioContext::suspend):
(WebCore::WebKitAudioContext::resume):
(WebCore::WebKitAudioContext::activeDOMObjectName const):
(WebCore::WebKitAudioContext::hostingDocumentIdentifier const):
(WebCore::WebKitAudioContext::isSuspended const):
(WebCore::WebKitAudioContext::visibilityStateChanged):
(WebCore::WebKitAudioContext::wouldTaintOrigin const):
(WebCore::WebKitAudioContext::createBuffer):
(WebCore::WebKitAudioContext::decodeAudioData):
(WebCore::WebKitAudioContext::createBufferSource):
(WebCore::WebKitAudioContext::createMediaElementSource):
(WebCore::WebKitAudioContext::createMediaStreamSource):
(WebCore::WebKitAudioContext::createMediaStreamDestination):
(WebCore::WebKitAudioContext::createScriptProcessor):
(WebCore::WebKitAudioContext::createBiquadFilter):
(WebCore::WebKitAudioContext::createWaveShaper):
(WebCore::WebKitAudioContext::createPanner):
(WebCore::WebKitAudioContext::createConvolver):
(WebCore::WebKitAudioContext::createDynamicsCompressor):
(WebCore::WebKitAudioContext::createAnalyser):
(WebCore::WebKitAudioContext::createGain):
(WebCore::WebKitAudioContext::createDelay):
(WebCore::WebKitAudioContext::createChannelSplitter):
(WebCore::WebKitAudioContext::createChannelMerger):
(WebCore::WebKitAudioContext::createOscillator):
(WebCore::WebKitAudioContext::createPeriodicWave):
(WebCore::WebKitAudioContext::notifyNodeFinishedProcessing):
(WebCore::WebKitAudioContext::derefFinishedSourceNodes):
(WebCore::WebKitAudioContext::refNode):
(WebCore::WebKitAudioContext::derefNode):
(WebCore::WebKitAudioContext::derefUnfinishedSourceNodes):
(WebCore::WebKitAudioContext::lock):
(WebCore::WebKitAudioContext::tryLock):
(WebCore::WebKitAudioContext::unlock):
(WebCore::WebKitAudioContext::isAudioThread const):
(WebCore::WebKitAudioContext::isGraphOwner const):
(WebCore::WebKitAudioContext::addDeferredFinishDeref):
(WebCore::WebKitAudioContext::handlePreRenderTasks):
(WebCore::WebKitAudioContext::handlePostRenderTasks):
(WebCore::WebKitAudioContext::handleDeferredFinishDerefs):
(WebCore::WebKitAudioContext::markForDeletion):
(WebCore::WebKitAudioContext::scheduleNodeDeletion):
(WebCore::WebKitAudioContext::deleteMarkedNodes):
(WebCore::WebKitAudioContext::markSummingJunctionDirty):
(WebCore::WebKitAudioContext::removeMarkedSummingJunction):
(WebCore::WebKitAudioContext::markAudioNodeOutputDirty):
(WebCore::WebKitAudioContext::handleDirtyAudioSummingJunctions):
(WebCore::WebKitAudioContext::handleDirtyAudioNodeOutputs):
(WebCore::WebKitAudioContext::addAutomaticPullNode):
(WebCore::WebKitAudioContext::removeAutomaticPullNode):
(WebCore::WebKitAudioContext::updateAutomaticPullNodes):
(WebCore::WebKitAudioContext::processAutomaticPullNodes):
(WebCore::WebKitAudioContext::nodeWillBeginPlayback):
(WebCore::shouldDocumentAllowWebAudioToAutoPlay):
(WebCore::WebKitAudioContext::willBeginPlayback):
(WebCore::WebKitAudioContext::willPausePlayback):
(WebCore::WebKitAudioContext::startRendering):
(WebCore::WebKitAudioContext::mediaCanStart):
(WebCore::WebKitAudioContext::mediaState const):
(WebCore::WebKitAudioContext::pageMutedStateDidChange):
(WebCore::WebKitAudioContext::isPlayingAudioDidChange):
(WebCore::WebKitAudioContext::finishedRendering):
(WebCore::WebKitAudioContext::dispatchEvent):
(WebCore::WebKitAudioContext::incrementActiveSourceCount):
(WebCore::WebKitAudioContext::decrementActiveSourceCount):
(WebCore::WebKitAudioContext::suspendRendering):
(WebCore::WebKitAudioContext::resumeRendering):
(WebCore::WebKitAudioContext::close):
(WebCore::WebKitAudioContext::suspendPlayback):
(WebCore::WebKitAudioContext::mayResumePlayback):
(WebCore::WebKitAudioContext::postTask):
(WebCore::WebKitAudioContext::origin const):
(WebCore::WebKitAudioContext::addConsoleMessage):
(WebCore::WebKitAudioContext::clearPendingActivity):
(WebCore::WebKitAudioContext::makePendingActivity):
(WebCore::WebKitAudioContext::logChannel const):

  • Modules/webaudio/WebKitAudioContext.h: Copied from Source/WebCore/Modules/webaudio/AudioContext.h.

(WebCore::WebKitAudioContext::destination):
(WebCore::WebKitAudioContext::activeSourceCount const):
(WebCore::WebKitAudioContext::listener):
(WebCore::WebKitAudioContext::isClosed const):
(WebCore::WebKitAudioContext::connectionCount const):
(WebCore::WebKitAudioContext::audioThread const):
(WebCore::WebKitAudioContext::maxNumberOfChannels):
(WebCore::WebKitAudioContext::userGestureRequiredForAudioStart const):
(WebCore::WebKitAudioContext::pageConsentRequiredForAudioStart const):
(WebCore::WebKitAudioContext::state const):
(isType):

  • Modules/webaudio/WebKitAudioContext.idl: Copied from Source/WebCore/Modules/webaudio/AudioContext.idl.
  • Modules/webaudio/WebKitAudioPannerNode.cpp: Copied from Source/WebCore/Modules/webaudio/PannerNode.cpp.

(WebCore::fixNANs):
(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):
(WebCore::WebKitAudioPannerNode::~WebKitAudioPannerNode):
(WebCore::WebKitAudioPannerNode::pullInputs):
(WebCore::WebKitAudioPannerNode::process):
(WebCore::WebKitAudioPannerNode::reset):
(WebCore::WebKitAudioPannerNode::initialize):
(WebCore::WebKitAudioPannerNode::uninitialize):
(WebCore::WebKitAudioPannerNode::listener):
(WebCore::WebKitAudioPannerNode::setPanningModel):
(WebCore::WebKitAudioPannerNode::distanceModel const):
(WebCore::WebKitAudioPannerNode::setDistanceModel):
(WebCore::WebKitAudioPannerNode::getAzimuthElevation):
(WebCore::WebKitAudioPannerNode::dopplerRate):
(WebCore::WebKitAudioPannerNode::distanceConeGain):
(WebCore::WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode):

  • Modules/webaudio/WebKitAudioPannerNode.h: Copied from Source/WebCore/Modules/webaudio/PannerNode.h.
  • Modules/webaudio/WebKitAudioPannerNode.idl: Copied from Source/WebCore/Modules/webaudio/PannerNode.idl.
  • Modules/webaudio/WebKitOfflineAudioContext.cpp: Copied from Source/WebCore/Modules/webaudio/DelayNode.cpp.

(WebCore::WebKitOfflineAudioContext::WebKitOfflineAudioContext):
(WebCore::WebKitOfflineAudioContext::create):

  • Modules/webaudio/WebKitOfflineAudioContext.h: Copied from Source/WebCore/Modules/webaudio/DelayNode.h.
  • Modules/webaudio/WebKitOfflineAudioContext.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
  • page/Settings.yaml:
  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

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

Source/WebKit:

Add experimental feature flag for modern & unprefixed WebAudio API,
off by default.

  • Shared/WebPreferences.yaml:
8:23 PM Changeset in webkit [263197] by Fujii Hironori
  • 3 edits in trunk/Tools

RebaselineServer: "Rebaseline queue" button is placed behind the footer
https://bugs.webkit.org/show_bug.cgi?id=213258

Reviewed by Zalan Bujtas.

  • Scripts/webkitpy/tool/servers/data/rebaselineserver/index.html: Moved 'log' and 'queue' elements after 'footer' element.
  • Scripts/webkitpy/tool/servers/data/rebaselineserver/main.css:

(#queue): Changed 'bottom' property from 3em to 4em.

7:26 PM Changeset in webkit [263196] by Wenson Hsieh
  • 10 edits in trunk

[macOS] Shift-tab in a bullet list in Mail Compose jumps back to Subject field
https://bugs.webkit.org/show_bug.cgi?id=213320
<rdar://problem/63831962>

Reviewed by Tim Horton.

Source/WebCore:

After the changes in r262051, pressing shift-tab in a bulleted list in Mail compose on macOS no longer triggers
an outdent command. This is because the default behavior of the "keydown" event will now relinquish focus to the
embedding client (i.e. the "chrome"). In this case, Mail makes the Subject field above the compose web view the
first responder.

This is necessary on iOS, where Mail does not attempt to intercept shift+tab and move focus to the subject line.
However, Mail on macOS intercepts the keypress event, and either triggers outdent (if the selection is inside a
list or blockquote) or focuses the Subject line. Since focus is relinquished during "keydown", this logic no
longer runs, and hitting shift+tab in a list always relinquishes focus.

To address this, refactor the changes made in r262051 so that we treat the default behavior of the "keypress"
event (rather than "keydown") as relinquishing focus. See WebKit/ChangeLog for more details.

Test: WebKit.ShiftTabDoesNotTakeFocusFromEditableWebViewWhenPreventingKeyPress

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultTabEventHandler):

Remove a call to relinquish focus when handling tab.

  • page/FocusController.h:

Source/WebKit:

See WebCore/ChangeLog for more detail.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::handleKeyEventByRelinquishingFocusToChrome):

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

(WebKit::WebPage::handleEditingKeyboardEvent):

Hoist logic for relinquishing focus as a result of shift+tab from EventHandler to WebPage, so that it is the
default behavior when processing a "keypress" event that corresponds to shift+tab in an editable web view on
Cocoa platforms. If we do end up relinquishing focus, then we consider the keypress event to be handled.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleEditingKeyboardEvent):

Tools:

Add a new API test to verify that preventing the "keypress" event for shift+tab in an SPI-editable web view
causes us to avoid relinquishing focus.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
6:55 PM Changeset in webkit [263195] by mark.lam@apple.com
  • 13 edits in trunk/Source

Replace JSC::FreeList linked list with a Bitmap.
https://bugs.webkit.org/show_bug.cgi?id=213071

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Implement an alternative to the linked list FreeList. This alternative uses
a Bitmap to record which atom in the block is available for allocation.

The intuition here is that allocation using the Bitmap implementation will do:

2 loads - m_currentRowBitmap, m_currentMarkedBlockRowAddress
1 store - m_currentRowBitmap

whereas the linked list implementation will do:

3 loads - m_scrambledHead, m_secret, result->scrambledNext
1 store - m_scrambledHead

and result->scrambledNext is from a different region of code and therefore not
in the same cache line.

The downside of the Bitmap implementation is that it uses more instructions.

This change is currently only enabled for x86_64, which shows about a 0.8%
progression on Speedometer 2.

It appears to be about a 1% regression on ARM64E. Hence, for now, we keep the
linked list implementation for ARM64 builds.

This is how the Bitmap FreeList works:

  1. The Bitmap implementation only replaces the linked list implementation. It does not replace the bump allocator.
  1. The Bitmap allocator keeps a m_bitmap that is initialized in MarkedBlock::Handle::specializedSweep() to have a bit set for each atom location that is available for allocation (i.e. is free). Note that a cell is usually allocated using more than 1 atom. Only the bit corresponding to the first atom (in that cell length range of free atoms) will be set.

This is consistent with how bits in MarkedBlock::Footer::m_marks and
MarkedBlock::Footer::m_newlyAllocated are set i.e. only the bit for the first
atom in the cell can be set.

  1. The allocation algorithm thinks of the MarkedBlock as consisting of rows of atoms, where the number of atoms in a row equals the number of bits in a AtomsBitmap::Word. On 64-bit CPUs, this would be 64.

We will start allocating from the last (highest numbered) row down to the
first (row 0). As we allocate, we will only update m_currentRowIndex and
m_currentRowBitmap. m_bitmap will not be updated. This is so in order to
reduce the number of instructions executed during an allocation.

When m_currentRowIndex points to N, the AtomsBitmap::Word for row N in
m_bitmap will have been copied into m_currentRowBitmap. This is the row
that we will be allocating from until the row is exhausted.

This is how we know whether an atom is available for allocation or not:

  1. Atoms in any rows above m_currentRowIndex are guaranteed to be allocated already (because we allocate downwards), and hence, are not available.
  1. For row m_currentRowIndex, m_currentRowBitmap is the source of truth

on which atoms in the row are available for allocation.

  1. For rows below m_currentRowIndex, m_bitmap is the source of truth on

which atoms are available for allocation.

When m_currentRowIndex reaches 0, the info in m_bitmap is completely
obsoleted, and m_currentRowBitmap holds the availability info for row 0.
When both m_currentRowIndex and m_currentRowBitmap are 0, then we have
completely exhausted the block and no more atoms are available for
allocation.

  1. Allocation happens in 3 paths: fast, middle, slow.

The fast path checks m_currentRowBitmap. If it's not 0, then we compute the
bit number of the lowest set bit in it. That bit number will be used together
with m_currentMarkedBlockRowAddress to compute the address of the atom
location available for allocation. m_currentRowBitmap will be updated to clear
the bit for the atom that has just ben allocated.

If m_currentRowBitmap is 0, then we'll go to the middle path.

The middle path checks m_currentRowIndex to see if we have more rows to allocate
from. For each m_currentRowIndex, we check its corresponding AtomsBitmap::Word
in m_bitmap. If the word is non-zero, we copy it to m_currentRowBitmap and
jump to the fast path to do the allocation. The middle path will update
m_currentRowIndex to point to the current row we're allocating from.

If we have decremented m_currentRowIndex down to 0 but still can't find a
non-zero AtomsBitmap::Word in m_bitmap, then the block has been exhausted, and
we'll go to the slow path.

The slow path is analogous to the old slow path i.e. we try to refill the
LocalAllocator with a new MarkedBlock.

  1. On the layout of fields in FreeList (see changes in FreeList.h), we try to preserve the positions of the bump allocator fields. The only change we made there is n the location of m_cellSize. It is now moved up next to m_remaining, and m_originalSize is moved down. This is because m_originalSize is only accessed in the slow path, and m_cellSize is accessed in the bump allocation path.

Next, we try to put Bitmap allocation fields where the linked list fields
would have been. The one bit of trickiness is that we'll put
m_currentMarkedBlockRowAddress in a union with m_payloadEnd. This is because
m_payloadEnd is only used in the bump allocation path. If m_remaining is 0,
then we can reuse this location for m_currentMarkedBlockRowAddress.

With this, we would have 4 bytes of padding after m_currentRowIndex. For
compactness, we put m_originalSize there in that space. For builds that use
the linked list implementation, m_originalSize will be located below after
m_cellSize.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::allocateHeapCell):

  • heap/FreeList.cpp:

(JSC::FreeList::clear):
(JSC::FreeList::initializeAtomsBitmap):
(JSC::FreeList::initializeBump):
(JSC::FreeList::contains const):
(JSC::FreeList::dump const):

  • heap/FreeList.h:

(JSC::FreeList::bitmapIsEmpty const):
(JSC::FreeList::allocationWillFail const):
(JSC::FreeList::offsetOfCurrentRowBitmap):
(JSC::FreeList::offsetOfBitmapRows):
(JSC::FreeList::offsetOfCurrentRowIndex):
(JSC::FreeList::offsetOfCurrentMarkedBlockRowAddress):
(JSC::FreeList::offsetOfRemaining):
(JSC::FreeList::atomsBitmap):
(JSC::FreeList::bitmapRows const):
(JSC::FreeList::offsetOfOriginalSize): Deleted.

  • heap/FreeListInlines.h:

(JSC::FreeList::allocate):
(JSC::FreeList::forEach const):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::isFreeListedCell const):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::atomAt const):

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

Source/WTF:

  1. Use countOfBits<> template to compute the number of bits.
  2. Introduce log2() and log2Constexpr() utility functions.
  3. Make Bitmap<>::forEachSetBit() a little bit more efficient: we don't need to keep iterating if the bitmap word is already empty of bits.
  • wtf/Bitmap.h:

(WTF::WordType>::forEachSetBit const):

  • wtf/MathExtras.h:

(WTF::clzConstexpr):
(WTF::clz):
(WTF::ctzConstexpr):
(WTF::ctz):
(WTF::getMSBSet):
(WTF::getMSBSetConstexpr):
(WTF::log2):
(WTF::log2Constexpr):

6:45 PM Changeset in webkit [263194] by aestes@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r258092): fast/forms/ios/file-upload-panel.html fails when HAVE(UICONTEXTMENU_LOCATION)
https://bugs.webkit.org/show_bug.cgi?id=213314
<rdar://problem/60339129>

Reviewed by Maciej Stachowiak.

fast/forms/ios/file-upload-panel.html sets the shouldHandleRunOpenPanel and
shouldPresentPopovers test options to false so that WKTR will (a) not register a
runOpenPanel UI delegate callback, causing WebKit to create a WKFileUploadPanel instead, and
(b) swizzle two UIKit view controller presentation methods to prevent the document picker
menu from being presented. The test merely wants the WKFileUploadPanel instance to exist in
order to query its available actions, not for it to show UI.

In r258092, WKFileUploadPanel now sometimes uses a UIContextMenuInteraction instance to
present the document picker menu, but -[UIContextMenuInteraction _presentMenuAtLocation:]
fails due to WKTR's above-mentioned swizzling. When this failure occurs,
UIContextMenuInteraction calls -contextMenuInteraction:willEndForConfiguration:animator: on
its delegate (the WKFileUploadPanel), which dismisses the open panel before the test has had
a chance to query the available actions.

Fixed this by swizzling -[UIContextMenuInteraction _presentMenuAtLocation:] when the
shouldPresentPopovers test option is false.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(overridePresentMenuOrPopoverOrViewController): Renamed from
overridePresentViewControllerOrPopover.
(WTR::TestController::platformResetStateToConsistentValues): Swizzled
-[UIContextMenuInteraction _presentMenuAtLocation:] with
overridePresentMenuOrPopoverOrViewController when the shouldPresentPopovers test option is
false.
(overridePresentViewControllerOrPopover): Renamed to
overridePresentMenuOrPopoverOrViewController.

6:37 PM Changeset in webkit [263193] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

StructureIDTable::validate() doesn't work when compiled with GCC.
https://bugs.webkit.org/show_bug.cgi?id=213302
<rdar://problem/64452172>

Reviewed by Yusuke Suzuki.

I was previously using ensureStillAliveHere() to force the validation load to
not be elided. However, this is not how ensureStillAliveHere() works. The proper
way to force the load is to use a volatile pointer instead, which is applied in
this patch.

With Clang, the ensureStillAliveHere() happened to do what I expected, but with
GCC it did not. The compiler is at liberty to elide the load because there is
no memory clobbering operation between the load and the call to
ensureStillAliveHere(). Switching to using the volatile pointer solution.

  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::validate):

4:57 PM Changeset in webkit [263192] by Beth Dakin
  • 4 edits in trunk/Source/WebKit

Remove references to blacklist/whitelist in the old C API
https://bugs.webkit.org/show_bug.cgi?id=213322

Reviewed by Tim Horton.

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):

  • UIProcess/API/C/WKPageGroup.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
4:53 PM Changeset in webkit [263191] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Skip JSTests/stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=213321

Reviewed by Mark Lam.

It uses ~1GB of memory and jetsams on iOS devices.

  • stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:
4:03 PM Changeset in webkit [263190] by Alan Coon
  • 1 copy in branches/safari-609.3.5.3-branch

New branch.

4:03 PM Changeset in webkit [263189] by Alan Coon
  • 1 copy in branches/safari-609.3.5.2-branch

New branch.

4:03 PM Changeset in webkit [263188] by Alan Coon
  • 1 copy in branches/safari-609.3.5.1-branch

New branch.

4:03 PM Changeset in webkit [263187] by Alan Coon
  • 1 copy in branches/safari-609.3.5.0-branch

New branch.

3:46 PM Changeset in webkit [263186] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r263044): [macOS] TestWebKitAPI.TextManipulation.InsertingContentIntoAlreadyManipulatedContentCreatesTextManipulationItem is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213311
<rdar://problem/64456413>

Reviewed by Wenson Hsieh.

TextManipulation.InsertingContentIntoAlreadyManipulatedContentCreatesTextManipulationItem does not wait long
enough to make sure TextManipulationController gets notified about the insertion and starts observing.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

3:45 PM Changeset in webkit [263185] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-610.1.18

3:31 PM Changeset in webkit [263184] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

WebKit-609.3.6

3:30 PM Changeset in webkit [263183] by Alan Coon
  • 1 copy in tags/Safari-609.3.5

Tag Safari-609.3.5.

3:23 PM Changeset in webkit [263182] by Alan Coon
  • 1 copy in branches/safari-610.1.17-branch

Tag Safari-610.1.17.

2:29 PM Changeset in webkit [263181] by aakash_jain@apple.com
  • 11 edits
    3 deletes in trunk/Tools

Delete code for old ews bindings queue
https://bugs.webkit.org/show_bug.cgi?id=213315

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/config/ports.py:

(DeprecatedPort.run_bindings_tests_command): Deleted.
(WinPort.run_bindings_tests_command): Deleted.

  • Scripts/webkitpy/common/config/ports_mock.py:

(MockPort.run_bindings_tests_command): Deleted.

  • Scripts/webkitpy/common/net/generictestresults.py: Removed.
  • Scripts/webkitpy/common/net/generictestresults_unittest.py: Removed.
  • Scripts/webkitpy/tool/bot/bindingstestresultsreader.py: Removed.
  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTask._retry_bindings_tests): Deleted.

  • Scripts/webkitpy/tool/bot/retrylogic_unittest.py:

(MockBindingsEarlyWarningSystem): Deleted.
(MockBindingsEarlyWarningSystem.init): Deleted.
(MockBindingsEarlyWarningSystem.test_results): Deleted.
(BindingsEarlyWarningSystemTest): Deleted.
(BindingsEarlyWarningSystemTest._results_indicate_all_passed): Deleted.
(BindingsEarlyWarningSystemTest._create_task): Deleted.
(BindingsEarlyWarningSystemTest.test_success_case): Deleted.
(BindingsEarlyWarningSystemTest.test_test_failure): Deleted.
(BindingsEarlyWarningSystemTest.test_fix): Deleted.
(BindingsEarlyWarningSystemTest.test_ineffective_patch): Deleted.
(BindingsEarlyWarningSystemTest.test_partially_effective_patch): Deleted.
(BindingsEarlyWarningSystemTest.test_different_test_failures_in_patch_and_tree): Deleted.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(TestBindingsEWS): Deleted.
(AbstractEarlyWarningSystemTest.test_failing_bindings_tests_message): Deleted.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests._run_bindings_tests): Deleted.

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

(test_patch_relevant_bindings): Deleted.
(test_runtests_api): Deleted.

1:23 PM Changeset in webkit [263180] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Freeze JSBigInt when setting it as a constant in AI
https://bugs.webkit.org/show_bug.cgi?id=213310
<rdar://problem/64450410>

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-constant-fold-to-numeric.js: Added.

(foo):

Source/JavaScriptCore:

JSCells should be explicitly frozen via DFG::Graph::freeze or DFG::Graph::freezeStrong. And heap JSBigInt is JSCell.
We should freeze it before setting it as a parameter of setConstant in AI. We use DFG::Graph::freeze since we know
that this is coming from somewhere in DFG graph: this ToNumeric node itself is not newly producing this JSBigInt.

  • dfg/DFGAbstractInterpreterInlines.h:

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

1:09 PM Changeset in webkit [263179] by graouts@webkit.org
  • 3 edits
    8 adds in trunk

quikr.com: unable to select item from dropdown
https://bugs.webkit.org/show_bug.cgi?id=213260
<rdar://problem/58106011>

Reviewed by Zalan Bujtas.

Source/WebCore:

Only account for box-shadow when computing the background rect if the clipping element itself has non-zero used width and height.

Tests: fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-height-clipping-container.html

fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-width-clipping-container.html
fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container.html
fast/box-shadow/hit-test-box-shadow-on-zero-width-clipping-container.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::addVisualEffectOverflow):

LayoutTests:

Add two new tests that check that we correctly do not consider content within a clipping container that
has 0-width or 0-height and box-shadow, with or without empty margins.

  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-height-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-height-clipping-container.html: Added.
  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-width-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-width-clipping-container.html: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container.html: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-width-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-width-clipping-container.html: Added.
12:52 PM Changeset in webkit [263178] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Replace OptionSetTraits/OptionSetValues with EnumTraits/EnumValues
<https://webkit.org/b/213264>

Reviewed by Brent Fulgham.

Source/WebCore:

  • page/DragActions.h:

(EnumTraits<WebCore::DragDestinationAction>):

  • Rename from OptionSetTraits<WebCore::DragDestinationAction>.

(OptionSetTraits<WebCore::DragOperation>):
(OptionSetTraits<WebCore::DragSourceAction>):

  • Remove since EnumTraits<> already exist for both.

Source/WTF:

  • wtf/OptionSet.h:

(WTF::isValidOptionSetEnum):
(WTF::maskRawValue):

  • Replace OptionSetTraits<>/OptionSetValues<> with EnumTraits<>/EnumValues<>.
12:44 PM Changeset in webkit [263177] by Alexey Shvayka
  • 28 edits
    17 copies
    66 adds
    10 deletes in trunk/JSTests

Update test262 to commit 8d3dd2d1a0a5
https://bugs.webkit.org/show_bug.cgi?id=213312

Reviewed by Yusuke Suzuki.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
12:07 PM Changeset in webkit [263176] by dino@apple.com
  • 1 edit in trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj

Another build fix for iOS.

This time for the new build system, which
wasn't running a custom rule for exported header files.

  • ANGLE.xcodeproj/project.pbxproj:
11:55 AM Changeset in webkit [263175] by ggaren@apple.com
  • 3 edits in trunk/Source/WebCore

media/remoteplayback-target-availability.html was a flaky failure after r262904
https://bugs.webkit.org/show_bug.cgi?id=213294

Reviewed by Sam Weinig.

AirPlay availability is a global that depends on a timer (and/or an
external piece of hardware). Therefore, the first value RemotePlayback
sees for AirPlay availability, while usually 'unavailable', is sometimes
'available'. Flaky!

In this case, media/remoteplayback-prompt.html triggered an AirPlay
availability check, and then media/remoteplayback-target-availability.html,
if run in the same process, sometimes saw 'available' as its initial
availability state.

Make RemotePlayback's initial availability state deterministic by
recording availability state at the time we enqueue our task, rather
than at the time we dequeue our task. (By specification and
implementation, RemotePlayback's initial availability state is always
'unavailable', regardless of AirPlay state.) This is OK to do because,
if the state ever changes after we enqueue our task, we'll get an update
notification and enqueue a new task.

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::watchAvailability): Copy the availability
state when we enqueue our task, and do not update it when we dequeue our
task. This is the heart of the bug fix.

Make sure to manually update availability state when we first register
to monitor availability, since we never got an update notification for
the current state.

(WebCore::RemotePlayback::prompt): For consistency with
watchAvailability, do not update availability state when we dequeue our
task. (This means that prompting before watching availability is always
an error, which is fine, and consistent with the spec, which says, "If
the user agent stops monitoring the list of available remote playback
devices... It SHOULD also set the availability value for all media
elements to false.")

Make sure to manually update availability state when we first register
to monitor availability, since we never got an update notification for
the current state.

(WebCore::RemotePlayback::availabilityChanged): For consistency with
watchAvailability, do not update availability state when we dequeue our
task.

(WebCore::RemotePlayback::updateAvailability): Deleted. We never
synchronously update our state anymore. All state changes are queued and
processed in order.

  • Modules/remoteplayback/RemotePlayback.h:
11:40 AM Changeset in webkit [263174] by keith_miller@apple.com
  • 3 edits
    2 adds in trunk

$vm.haveABadTime/isHavingABadTime should work with non-globalObject parameters
https://bugs.webkit.org/show_bug.cgi?id=213304

Reviewed by Mark Lam.

JSTests:

  • stress/dollarVM-have-a-bad-time-no-params.js: Added.
  • stress/dollarVM-have-a-bad-time-works-for-non-global-object-params.js: Added.

Source/JavaScriptCore:

Previously, $vm.haveABadTime would crash if passed a
non-globalObject object as the first parameter because it was
missing a return in front the error handling case. This patch
resolves that issue but also extends the semantics of
haveABadTime/isHavingABadTime to either use the global object of
the first parameter even if it's not a JSGlobalObject. If no
argument is passed, haveABadTime/isHavingABadTime instead use the
global object of the callee.

  • tools/JSDollarVM.cpp:

(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):

11:38 AM Changeset in webkit [263173] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: move some unused data inside ENABLE(JIT) to unbreak the CLoop build.
https://bugs.webkit.org/show_bug.cgi?id=213255

Not reviewed.

  • assembler/testmasm.cpp:
11:29 AM Changeset in webkit [263172] by dino@apple.com
  • 1 edit in trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/ContextCGL.cpp

Fix iOS build.

  • src/libANGLE/renderer/gl/cgl/ContextCGL.cpp:
11:25 AM Changeset in webkit [263171] by Kate Cheney
  • 2 edits in trunk/LayoutTests

http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=213272
<rdar://problem/64427778>

Reviewed by David Kilzer.

Before a navigation occurs, an app-bound network session is created
by default. If any non-app bound navigations occur, a new session is
created. Since this test only checks for the existance of an app-bound
session, it should clear the app-bound session after the initial load
to properly test functionality.

  • http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html:
11:23 AM Changeset in webkit [263170] by Russell Epstein
  • 1 copy in tags/Safari-610.1.15.51.4

Tag Safari-610.1.15.51.4.

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

Null check plugin.m_data before using it in PDFPlugin::ByteRangeRequest::completeUnconditionally
https://bugs.webkit.org/show_bug.cgi?id=213305
<rdar://problem/60349279>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-17
Reviewed by Brady Eidson.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::ByteRangeRequest::completeUnconditionally):

11:07 AM Changeset in webkit [263168] by aakash_jain@apple.com
  • 3 edits
    1 delete in trunk/Tools

Delete code for old ews style queue
https://bugs.webkit.org/show_bug.cgi?id=213297

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/stylequeuetask.py: Removed.
  • Scripts/webkitpy/tool/commands/queues.py:

(StyleQueue): Deleted.
(StyleQueue.init): Deleted.
(StyleQueue.review_patch): Deleted.
(StyleQueue.run_command): Deleted.
(StyleQueue.expected_failures): Deleted.
(StyleQueue.refetch_patch): Deleted.

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

(TestReviewQueue): Deleted.

10:56 AM Changeset in webkit [263167] by commit-queue@webkit.org
  • 11 edits
    4 adds
    1 delete in trunk

Image referrerpolicy mutations should be considered "relevant mutations"
https://bugs.webkit.org/show_bug.cgi?id=209970

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-17
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Import latest version of relevant-mutations.html.
Because original-referrer-policy-applied.sub.html is older and assumes referrerpolicy is not a relevant
mutation, remove it and replace it by imported image-loading-lazy-referrerpolicy-change.sub.html.

  • web-platform-tests/html/semantics/embedded-content/resources/common.js: Added.

(ElementLoadPromise):
(ElementLoadPromise.prototype.element):
(is_image_fully_loaded):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-referrerpolicy-change.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-referrerpolicy-change.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html:

Source/WebCore:

Make referrerpolicy state changes a relevant mutation [1]. In order to indicate
that we are dealing with a relevant mutation add an enum to updateFromElement, in
order to run "update the image data" algorithm [2] in case it is a relevant mutation.

Tests: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html

imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-referrerpolicy-change.sub.html

[1] https://html.spec.whatwg.org/#reacting-to-dom-mutations:attr-img-referrerpolicy
[2] https://html.spec.whatwg.org/#when-to-obtain-images

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::attributeChanged):

  • html/HTMLImageElement.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::updateFromElementIgnoringPreviousError):
(WebCore::ImageLoader::loadDeferredImage):

  • loader/ImageLoader.h:

LayoutTests:

Unskip relevant-mutations.html.

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:47 AM Changeset in webkit [263166] by aakash_jain@apple.com
  • 9 edits
    1 delete in trunk/Tools

Delete code for old ews webkitpy queue
https://bugs.webkit.org/show_bug.cgi?id=213299

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/net/generictestresults.py:

(WebkitpyTestResults): Deleted.

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:
  • Scripts/webkitpy/tool/bot/webkitpytestresultsreader.py: Removed.
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(TestWebkitpyEWS): Deleted.
(AbstractEarlyWarningSystemTest.test_failing_webkitpy_tests_message): Deleted.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests._run_webkitpy_tests): Deleted.

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

(test_runtests_webkitpy): Deleted.
(test_patch_not_relevant_bindings): Deleted.
(test_runtests_api_debug): Deleted.

10:31 AM Changeset in webkit [263165] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, avoid node access in link-task
https://bugs.webkit.org/show_bug.cgi?id=213266
<rdar://problem/64453001>

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckJSCast):

10:28 AM Changeset in webkit [263164] by keith_miller@apple.com
  • 3 edits
    2 adds in trunk

WebKitTestRunner should not crash on alert with invalid utf16 strings
https://bugs.webkit.org/show_bug.cgi?id=213269

Reviewed by Simon Fraser.

Tools:

  • WebKitTestRunner/StringFunctions.h:

(WTR::toWTFString):

LayoutTests:

  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Added.
  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash.html: Added.
10:23 AM Changeset in webkit [263163] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix internal macOS build after r263157.

  • rendering/RenderThemeMac.mm:
10:10 AM Changeset in webkit [263162] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r263098): [Win10] http/tests/security/cross-origin-clean-css-resource-timing.html and http/tests/security/cross-origin-css-resource-timing.html are failing
https://bugs.webkit.org/show_bug.cgi?id=213303

Unreviewed test gardening.

  • platform/win/TestExpectations: Mark tests as failing.
10:06 AM Changeset in webkit [263161] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/ThirdParty/libwebrtc

Cherry-pick r263154. rdar://problem/64452498

Improve SCTP cookie generation
https://bugs.webkit.org/show_bug.cgi?id=213284
<rdar://problem/64438133>

Reviewed by Eric Carlson.

  • Source/webrtc/media/sctp/sctp_transport.cc:
  • Source/webrtc/media/sctp/sctp_transport.h:

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

9:56 AM Changeset in webkit [263160] by weinig@apple.com
  • 172 edits in trunk/Source/WebCore

Use constructor operations in WebIDL
https://bugs.webkit.org/show_bug.cgi?id=201397

Reviewed by Eric Carlson.

Add support for constructor syntax in WebIDL (https://heycam.github.io/webidl/#idl-constructors)

  • [Constructor(...)] extended attributes become constructor(...) operations
  • [JSBuiltinConstructor] becomes [JSBuiltin] constructor(...)
  • [CustomConstructor] becomes [Custom] constructor(...)
  • [ConstructorMayThrowException] becomes [MayThrowException] constructor(...) and can now be unique per-overload
  • [ConstructorCallWith=Foo] becomes [CallWith=Foo] constructor(...) and can now also be unique per-overload

This change leaves NamedConstructor as is, but a subsequent change will replace it with the
specified LegacyFactoryFunction extended attribute.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
  • Modules/applepay/ApplePayError.idl:
  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePaySetup.idl:
  • Modules/async-clipboard/ClipboardItem.idl:
  • Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/gamepad/GamepadEvent.idl:
  • Modules/highlight/HighlightMap.idl:
  • Modules/highlight/HighlightRangeGroup.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • Modules/mediarecorder/BlobEvent.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediarecorder/MediaRecorderErrorEvent.idl:
  • Modules/mediasession/MediaRemoteControls.idl:
  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrackEvent.idl:
  • Modules/mediastream/OverconstrainedError.idl:
  • Modules/mediastream/OverconstrainedErrorEvent.idl:
  • Modules/mediastream/RTCDTMFToneChangeEvent.idl:
  • Modules/mediastream/RTCDataChannelEvent.idl:
  • Modules/mediastream/RTCIceCandidate.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnectionIceEvent.idl:
  • Modules/mediastream/RTCSessionDescription.idl:
  • Modules/mediastream/RTCTrackEvent.idl:
  • Modules/notifications/Notification.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentMethodChangeEvent.idl:
  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.idl:
  • Modules/pictureinpicture/EnterPictureInPictureEvent.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableByteStreamController.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamBYOBReader.idl:
  • Modules/streams/ReadableStreamBYOBRequest.idl:
  • Modules/streams/ReadableStreamDefaultController.idl:
  • Modules/streams/ReadableStreamDefaultReader.idl:
  • Modules/streams/WritableStream.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webgpu/GPUOutOfMemoryError.idl:
  • Modules/webgpu/GPUUncapturedErrorEvent.idl:
  • Modules/webgpu/GPUValidationError.idl:
  • Modules/websockets/CloseEvent.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • Modules/webxr/XRInputSourceEvent.idl:
  • Modules/webxr/XRInputSourcesChangeEvent.idl:
  • Modules/webxr/XRReferenceSpaceEvent.idl:
  • Modules/webxr/XRSessionEvent.idl:
  • animation/AnimationPlaybackEvent.idl:
  • animation/DocumentTimeline.idl:
  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldGenerateToJSDeclaration):
(GetFullyQualifiedImplementationCallName):
(GenerateParametersCheck):
(GetConstructorTemplateClassName):
(GenerateConstructorDefinition):
(GenerateConstructorHelperMethods):
(HasCustomConstructor):
(IsConstructable):
(HasJSBuiltinConstructor):
(AddJSBuiltinIncludesIfNeeded):
(IsJSBuiltinConstructor): Deleted.

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/IDLParser.pm:

(assertExtendedAttributesValidForContext):
(copyExtendedAttributes):
(cloneOperation):
(applyTypedefs):
(parseInterfaceMember):
(parseConstructor):
(parseExtendedAttributeRest):
(applyMemberList):
(applyExtendedAttributeList):

  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::initializeProperties):
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::JSTestNamedConstructorNamedConstructor::initializeProperties):

  • bindings/scripts/test/TestClassWithJSBuiltinConstructor.idl:
  • bindings/scripts/test/TestEventConstructor.idl:
  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestJSBuiltinConstructor.idl:
  • bindings/scripts/test/TestNamedConstructor.idl:
  • bindings/scripts/test/TestNode.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestOverloadedConstructors.idl:
  • bindings/scripts/test/TestOverloadedConstructorsWithSequence.idl:
  • bindings/scripts/test/TestPromiseRejectionEvent.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/FontFace.idl:
  • css/FontFaceSet.idl:
  • css/MediaQueryListEvent.idl:
  • css/WebKitCSSMatrix.idl:
  • css/typedom/TypedOMCSSUnitValue.idl:
  • css/typedom/TypedOMCSSUnparsedValue.idl:
  • dom/AbortController.idl:
  • dom/AnimationEvent.idl:
  • dom/BeforeLoadEvent.idl:
  • dom/ClipboardEvent.idl:
  • dom/Comment.idl:
  • dom/CompositionEvent.idl:
  • dom/CustomEvent.idl:
  • dom/DOMException.idl:
  • dom/DOMPoint.idl:
  • dom/DOMPointReadOnly.idl:
  • dom/DOMQuad.idl:
  • dom/DOMRect.idl:
  • dom/DOMRectReadOnly.idl:
  • dom/Document.idl:
  • dom/DocumentFragment.idl:
  • dom/DragEvent.idl:
  • dom/ErrorEvent.idl:
  • dom/Event.idl:
  • dom/EventTarget.idl:
  • dom/FocusEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/InputEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MessageChannel.idl:
  • dom/MessageEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationObserver.idl:
  • dom/OverflowEvent.idl:
  • dom/PageTransitionEvent.idl:
  • dom/PointerEvent.idl:
  • dom/PopStateEvent.idl:
  • dom/ProgressEvent.idl:
  • dom/PromiseRejectionEvent.idl:
  • dom/Range.idl:
  • dom/SecurityPolicyViolationEvent.idl:
  • dom/StaticRange.idl:
  • dom/Text.idl:
  • dom/TextDecoder.idl:
  • dom/TextEncoder.idl:
  • dom/TransitionEvent.idl:
  • dom/UIEvent.idl:
  • dom/WebKitAnimationEvent.idl:
  • dom/WebKitTransitionEvent.idl:
  • dom/WheelEvent.idl:
  • fileapi/Blob.idl:
  • fileapi/File.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMFormData.idl:
  • html/DOMURL.idl:
  • html/HTMLElement.idl:
  • html/HTMLOptionElement.idl:
  • html/ImageData.idl:
  • html/MediaController.idl:
  • html/MediaEncryptedEvent.idl:
  • html/OffscreenCanvas.idl:
  • html/URLSearchParams.idl:
  • html/canvas/Path2D.idl:
  • html/canvas/WebGLContextEvent.idl:
  • html/track/DataCue.idl:
  • html/track/TextTrackCue.idl:
  • html/track/TrackEvent.idl:
  • html/track/VTTCue.idl:
  • html/track/VTTRegion.idl:
  • page/EventSource.idl:
  • page/IntersectionObserver.idl:
  • page/IntersectionObserverEntry.idl:
  • page/PerformanceObserver.idl:
  • page/ResizeObserver.idl:
  • page/UndoItem.idl:
  • page/WebKitPoint.idl:
  • storage/StorageEvent.idl:
  • workers/Worker.idl:
  • workers/service/ExtendableEvent.idl:
  • workers/service/ExtendableMessageEvent.idl:
  • workers/service/FetchEvent.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XSLTProcessor.idl:
9:55 AM Changeset in webkit [263159] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test gardening.

  • platform/win/TestExpectations:
9:54 AM Changeset in webkit [263158] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Another unreviewed build fix after r263150

  • pal/spi/cocoa/PassKitSPI.h:
9:51 AM Changeset in webkit [263157] by commit-queue@webkit.org
  • 42 edits
    2 copies
    1 add in trunk

IndexedDB: Support IDBFactory databases method
https://bugs.webkit.org/show_bug.cgi?id=211043

Patch by Darryl Pogue <darryl@dpogue.ca> on 2020-06-17
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Adjust test expectations for IDBFactory.prototype.databases().

  • web-platform-tests/IndexedDB/get-databases.any-expected.txt:
  • web-platform-tests/IndexedDB/get-databases.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-databases-opaque-origin-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-origin-isolation-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:

Source/WebCore:

Add support for fetching the list of IDB database names and versions
from the IDBServer, and expose the functionality as
IDBFactory.prototype.databases().

Spec: https://w3c.github.io/IndexedDB/#dom-idbfactory-databases

  • Headers.cmake:
  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp: Added.

(WebCore::IDBDatabaseNameAndVersionRequest::create):
(WebCore::IDBDatabaseNameAndVersionRequest::IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::~IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::complete):
(WebCore::IDBDatabaseNameAndVersionRequest::activeDOMObjectName const):
(WebCore::IDBDatabaseNameAndVersionRequest::virtualHasPendingActivity const):
(WebCore::IDBDatabaseNameAndVersionRequest::stop):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h: Added.
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::databases):
(WebCore::IDBFactory::getAllDatabaseNames):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNames): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::getAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromFile): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h: Added.

(WebCore::IDBDatabaseNameAndVersion::encode const):
(WebCore::IDBDatabaseNameAndVersion::decode):
(WebCore::IDBDatabaseNameAndVersion::isolatedCopy const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/agents/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):

  • loader/EmptyClients.cpp:

Source/WebKit:

Plumbing for returning a list of IDB databases and versions.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames): Deleted.

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

(WebKit::WebIDBServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBServer::getAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

Source/WebKitLegacy:

Plumbing for returning a list of IDB databases and versions.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
(InProcessIDBServer::getAllDatabaseNames): Deleted.
(InProcessIDBServer::didGetAllDatabaseNames): Deleted.

  • Storage/InProcessIDBServer.h:
9:42 AM Changeset in webkit [263156] by weinig@apple.com
  • 8 edits in trunk

[WPT] infrastructure/assumptions/html-elements.html fails due to changes in style when all: initial is used
https://bugs.webkit.org/show_bug.cgi?id=213171

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/infrastructure/assumptions/html-elements-expected.txt:

Update test results.

Source/WebCore:

Update existing test results that now pass.

  • css/CSSProperties.json:

Use initialStrokeColor (the default) rather than hardcoding the incorrect currentColor. The spec (and initialStrokeColor)
say this should be transparent.

  • style/StyleBuilderCustom.h:

(WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):
Match the mask image NinePieceImage constructor, and set fill to true for mask image slices.

LayoutTests:

  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:

Update test results.

9:24 AM Changeset in webkit [263155] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Float] Move float avoiders' final position compute next to when the static position is computed
https://bugs.webkit.org/show_bug.cgi?id=213250

Reviewed by Antti Koivisto.

Now that the float avoider's final position has no dependecy on the computed height, we can
move it all the way up, next to where we computed the static position.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
9:24 AM Changeset in webkit [263154] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Improve SCTP cookie generation
https://bugs.webkit.org/show_bug.cgi?id=213284
<rdar://problem/64438133>

Reviewed by Eric Carlson.

  • Source/webrtc/media/sctp/sctp_transport.cc:
  • Source/webrtc/media/sctp/sctp_transport.h:
9:23 AM Changeset in webkit [263153] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

[Modern Media Controls] CSS "cursor" property shoud be respected in media controls shadow root
https://bugs.webkit.org/show_bug.cgi?id=213295
<rdar://problem/61911638>

Reviewed by Timothy Hatcher.

Source/WebCore:

Allow the "cursor" property to be inherited in the media controls shadow root, but still overriden
for interactive objects in the media controls as well as placard text.

Test: media/modern-media-controls/css/cursor.html

  • Modules/modern-media-controls/controls/controls-bar.css:

(.controls-bar):

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container):
(.media-controls):

  • Modules/modern-media-controls/controls/placard.css:

(.placard .title,):

LayoutTests:

Add a test that checks that setting the "cursor" property on a <video> element also applies to the
media controls in the element's shadow root.

  • media/modern-media-controls/css/cursor-expected.txt: Added.
  • media/modern-media-controls/css/cursor.html: Added.
9:17 AM Changeset in webkit [263152] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix after r263150

  • pal/spi/cocoa/PassKitSPI.h:
8:59 AM Changeset in webkit [263151] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add a shiftAndAdd() emitter in AssemblyHelpers.
https://bugs.webkit.org/show_bug.cgi?id=213255

Reviewed by Michael Saboff.

void shiftAndAdd(RegisterID base, RegisterID index, uint8_t shift, RegisterID dest, Optional<RegisterID> = { });

Emits code to compute: dest = base + index << shift.

  • assembler/testmasm.cpp:

(doubleOperands):
(floatOperands):
(int32Operands):
(int64Operands):
(JSC::testShiftAndAdd):
(JSC::run):
(JSC::doubleOperands): Deleted.
(JSC::floatOperands): Deleted.
(JSC::int32Operands): Deleted.
(JSC::int64Operands): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::shiftAndAdd):

8:55 AM Changeset in webkit [263150] by aestes@apple.com
  • 30 edits
    2 copies
    1 add in trunk

[Apple Pay] Enable layout tests on more platforms
https://bugs.webkit.org/show_bug.cgi?id=212955
<rdar://problem/64174156>

Reviewed by Alex Christensen.

Source/WebCore:

Added runtime checks to determine the Apple Pay API version when installments are enabled.

Enabled tests in http/tests/ssl/applepay on iOS.

  • Modules/applepay/ApplePayInstallmentConfiguration.idl:
  • Modules/applepay/ApplePayInstallmentConfigurationWebCore.h:
  • Modules/applepay/ApplePayInstallmentItem.h:
  • Modules/applepay/ApplePayInstallmentItem.idl:
  • Modules/applepay/ApplePayInstallmentItemType.h:
  • Modules/applepay/ApplePayInstallmentItemType.idl:
  • Modules/applepay/ApplePayInstallmentRetailChannel.h:
  • Modules/applepay/ApplePayInstallmentRetailChannel.idl: Removed uses of

APPLE_PAY_INSTALLMENT_IDENTIFIERS and APPLE_PAY_INSTALLMENT_ITEMS (or replaced with
APPLE_PAY_INSTALLMENTS).

  • Modules/applepay/PaymentAPIVersion.h:
  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current): Moved the computation of current API version from
PaymentCoordinatorClient::supportsVersion to here. Added runtime checks to determine the
level of PassKit installments support since we don't have enough information to tell at
compile time.

  • Modules/applepay/PaymentCoordinatorClient.cpp:

(WebCore::PaymentCoordinatorClient::supportsVersion): Changed to call
PaymentAPIVersion::current.

  • Modules/applepay/PaymentInstallmentConfiguration.mm:

(WebCore::makeNSArrayElement):
(WebCore::createPlatformConfiguration):
(WebCore::PaymentInstallmentConfiguration::create):
(WebCore::PaymentInstallmentConfiguration::applePayInstallmentConfiguration const): Removed
uses of HAVE_PASSKIT_INSTALLMENT_ITEMS and HAVE_PASSKIT_INSTALLMENT_IDENTIFIERS. Used
runtime checks to determine support for PKPaymentInstallmentConfiguration and
PKPaymentInstallmentItem.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj: Added source files for PaymentAPIVersion.

Source/WebCore/PAL:

PassKit added SPIs for Apple Pay installments over a series of iOS 13 and macOS Catalina
minor updates. WebKit trunk is still built across a range of iOS 13 and macOS Catalina minor
update SDKs that contain none, some, or all of the installment SPIs. It's not possible to
reliably detect the SDK minor version at compile-time, so instead we now use our own SPI
declarations unless we know all minor versions of the major SDK version contain all of the
installments definitions.

  • PAL.xcodeproj/project.pbxproj: Added PassKitInstallmentsSPI.h.
  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm: Used SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT on both

Mac and iOS to soft-link PKPaymentInstallmentConfiguration and PKPaymentInstallmentItem.

  • pal/spi/cocoa/PassKitInstallmentSPI.h: Added. When building against an SDK that is known

to declare the PassKit installments SPIs, this file includes the SPI headers. Otherwise, it
declares the SPIs.

  • pal/spi/cocoa/PassKitSPI.h: Moved PassKit installments SPI declarations to

PassKitInstallmentSPI.h.

Source/WTF:

  • wtf/PlatformEnableCocoa.h: Removed ENABLE_APPLE_PAY_INSTALLMENT_IDENTIFIERS,

ENABLE_APPLE_PAY_INSTALLMENT_ITEMS, ENABLE_APPLE_PAY_SESSION_V8,
ENABLE_APPLE_PAY_SESSION_V9, and ENABLE_APPLE_PAY_SESSION_V10.

  • wtf/PlatformHave.h: Removed HAVE_PASSKIT_INSTALLMENT_IDENTIFIERS and corrected iOS version

checks for HAVE_PASSKIT_INSTALLMENTS.

LayoutTests:

  • http/tests/ssl/applepay/ApplePayInstallmentItems.https.html: Changed to fail instead of

time out when API version 9 isn't supported.

  • http/tests/ssl/applepay/ApplePayError.html:
  • http/tests/ssl/applepay/ApplePaySession.html:
  • http/tests/ssl/applepay/ApplePaySessionV3.html:
  • http/tests/ssl/applepay/ApplePaySessionV4.html:
  • http/tests/ssl/applepay/ApplePaySessionV5.html: Removed a custom element-clicking function

and used UIHelper.activateElement instead.

  • platform/ios-wk2/TestExpectations: Un-skipped http/tests/ssl/applepay.

Marked PaymentRequest.https.html as Slow. Marked ApplePayInstallmentItems.https.html as
Failure.

  • platform/mac-wk2/TestExpectations: Removed a trailing '/'. Skipped

ApplePayInstallmentItems.https.html on Mojave and marked it as Failure on Catalina.

8:47 AM Changeset in webkit [263149] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Floats] Remove redundant mapping functions
https://bugs.webkit.org/show_bug.cgi?id=213249

Reviewed by Antti Koivisto.

It's incorrect to map the entire display box when the height is no even computed yet.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::append):
(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapTopLeftToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const): Deleted.
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const): Deleted.

  • layout/floats/FloatingContext.h:
8:34 AM Changeset in webkit [263148] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Catalina WK2 Release ] http/tests/IndexedDB/storage-limit-1.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213292

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:55 AM Changeset in webkit [263147] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC]Floats] Cleanup FloatAvoider interface
https://bugs.webkit.org/show_bug.cgi?id=213195

Reviewed by Antti Koivisto.

Remove redundant functions/parameters.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):

  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::topLeftInContainingBlock const): Deleted.

  • layout/floats/FloatAvoider.h:
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::findAvailablePosition):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
(WebCore::Layout::FloatingContext::positionForFormattingContextRoot const): Deleted.
(WebCore::Layout::FloatingContext::findPositionForFloatBox const): Deleted.

  • layout/floats/FloatingContext.h:
7:41 AM Changeset in webkit [263146] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[Wasm] Reduce the amount of memory used by the Air register coloring allocator
https://bugs.webkit.org/show_bug.cgi?id=212106

Reviewed by Yusuke Suzuki.

Changed InterferenceEdge to be a templated class so we can instantiate an unsigned
short version to cut memory in half for code that has less than 216 temps.
Through instrumentation, my testing showed that almost all compilations use the
16bit implementation. Although this change is for all B3/Air compilations at O2,
Wasm compilations are usally larger and therefore get the greatest benefit.

This allowed increasing the default value for the option webAssemblyBBQFallbackSize,
with a small increase in memory usage.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • runtime/OptionsList.h:
7:25 AM Changeset in webkit [263145] by Diego Pino Garcia
  • 10 edits
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines and test expectations after r263143.

  • platform/glib/svg/custom/svg-fonts-in-text-controls-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/form-control-value-settable-expected.txt:
  • platform/gtk/accessibility/roles-exposed-expected.txt:
  • platform/gtk/fast/css/line-height-expected.txt:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/forms/searchfield-heights-expected.txt:
  • platform/gtk/http/tests/plugins/plugin-javascript-access-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt:
  • platform/gtk/plugins/mouse-click-plugin-clears-selection-expected.txt:
7:05 AM Changeset in webkit [263144] by Alan Bujtas
  • 7 edits
    2 deletes in trunk/Source/WebCore

[LFC][Floats] Remove FloatBox class
https://bugs.webkit.org/show_bug.cgi?id=213184

Reviewed by Antti Koivisto.

Apparently the only difference between a non-floating float avoider (regular formatting context root)
and a float box is that while float boxes intersect their margin box, simple float avoiders use their border box.
We can do that without subclassing FloatAvoider.

This patch is also in preparation for moving "computeFloatPosition" next to the static position computation when
the height value is not computed yet. So instead of passing in the display box, let's just pass in top/left and width.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::setHorizontalPosition):
(WebCore::Layout::FloatAvoider::setVerticalPosition):
(WebCore::Layout::FloatAvoider::initialHorizontalPosition const):
(WebCore::Layout::FloatAvoider::overflowsContainingBlock const):
(WebCore::Layout::FloatAvoider::topLeftInContainingBlock const):
(WebCore::Layout::FloatAvoider::setHorizontalConstraints): Deleted.
(WebCore::Layout::FloatAvoider::setVerticalConstraint): Deleted.
(WebCore::Layout::FloatAvoider::horizontalPositionCandidate): Deleted.
(WebCore::Layout::FloatAvoider::verticalPositionCandidate): Deleted.
(WebCore::Layout::FloatAvoider::rectInContainingBlock const): Deleted.

  • layout/floats/FloatAvoider.h:

(WebCore::Layout::FloatAvoider::resetHorizontalPosition):
(WebCore::Layout::FloatAvoider::isLeftAligned const):
(WebCore::Layout::FloatAvoider::borderBoxWidth const):
(WebCore::Layout::FloatAvoider::marginBefore const):
(WebCore::Layout::FloatAvoider::marginAfter const):
(WebCore::Layout::FloatAvoider::marginStart const):
(WebCore::Layout::FloatAvoider::marginEnd const):
(WebCore::Layout::FloatAvoider::marginBoxWidth const):
(WebCore::Layout::FloatAvoider::isFloatingBox const):
(WebCore::Layout::FloatAvoider::layoutBox const):
(WebCore::Layout::FloatAvoider::top const):
(WebCore::Layout::FloatAvoider::left const):
(WebCore::Layout::FloatAvoider::right const):
(WebCore::Layout::FloatAvoider::rect const): Deleted.
(WebCore::Layout::FloatAvoider::displayBox const): Deleted.
(WebCore::Layout::FloatAvoider::displayBox): Deleted.

  • layout/floats/FloatBox.cpp: Removed.
  • layout/floats/FloatBox.h: Removed.
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForFormattingContextRoot const):
(WebCore::Layout::findAvailablePosition):
(WebCore::Layout::FloatingContext::findPositionForFloatBox const):
(WebCore::Layout::FloatingContext::findPositionForFormattingContextRoot const):
(WebCore::Layout::FloatPair::intersects const):
(WebCore::Layout::FloatPair::horizontalConstraints const):

  • layout/floats/FloatingContext.h:
4:34 AM Changeset in webkit [263143] by aakash_jain@apple.com
  • 7 edits in trunk/Tools

Delete old ews client side code - part 2
https://bugs.webkit.org/show_bug.cgi?id=213262

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/net/bugzilla/attachment.py:
  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTaskDelegate.command_passed): Deleted.
(PatchAnalysisTaskDelegate.command_failed): Deleted.

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

(AbstractEarlyWarningSystem.command_passed): Deleted.
(AbstractEarlyWarningSystem.command_failed): Deleted.

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

(PerfalizerTask.command_passed): Deleted.
(PerfalizerTask.command_failed): Deleted.

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

(AbstractPatchQueue._next_patch): Deleted.
(AbstractPatchQueue._did_error): Deleted.
(AbstractPatchQueue._did_skip): Deleted.
(AbstractPatchQueue._unlock_patch): Deleted.
(StyleQueue.command_passed): Deleted.
(StyleQueue.command_failed): Deleted.

2:34 AM Changeset in webkit [263142] by Paulo Matos
  • 2 edits in trunk/Tools

Add new Igalia EWS workers for ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=212803

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json:
1:55 AM Changeset in webkit [263141] by youenn@apple.com
  • 9 edits in trunk

Make ReadableStream robust against user code
https://bugs.webkit.org/show_bug.cgi?id=212915
<rdar://problem/64133221>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

We now get pull/cancel only once from the source.

  • web-platform-tests/streams/readable-streams/bad-underlying-sources-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.serviceworker.https-expected.txt:

Source/WebCore:

Create tee source with private slots instead of public ones.
When source has one of this private slot, we directly go to the creation of a ReadableStream.
Covered by existing tests.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamInternals.js:

(setupReadableStreamDefaultController):
(readableStreamTee):
(readableStreamDefaultControllerCallPullIfNeeded):
(readableStreamDefaultControllerCancel):

  • Modules/streams/StreamInternals.js:

(promiseInvokeOrNoopMethodNoCatch):
(promiseInvokeOrNoopNoCatch):
(promiseInvokeOrNoopMethod):
(promiseInvokeOrNoop):

  • bindings/js/WebCoreBuiltinNames.h:
1:52 AM Changeset in webkit [263140] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Fix spelling of evaluteDynamicMediaQueryRules
https://bugs.webkit.org/show_bug.cgi?id=213287

Unreviewed.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRulesFromSheet):
(WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules):
(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): Deleted.

  • style/RuleSet.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::evaluateDynamicMediaQueries):

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::evaluateDynamicMediaQueryRules):
(WebCore::Style::ScopeRuleSets::evaluteDynamicMediaQueryRules): Deleted.

  • style/StyleScopeRuleSets.h:
1:17 AM Changeset in webkit [263139] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

REGRESSION(r262994): [GTK] More than 100 tests are failing
https://bugs.webkit.org/show_bug.cgi?id=213173

Unreviewed gardening.

Add default initialization for WebCore::PluginInfo::clientLoadPolicy and
WebCore::PluginInfo::isApplicationPlugin.

  • plugins/PluginData.h:
12:29 AM Changeset in webkit [263138] by commit-queue@webkit.org
  • 2 edits in trunk

REGRESSION(r260760): ENABLE_GRAPHICS_CONTEXT_GL should be ON, not TRUE
https://bugs.webkit.org/show_bug.cgi?id=212057

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-17
Reviewed by Carlos Garcia Campos.

This is already set by feature policy. Don't clobber it.

  • Source/cmake/OptionsGTK.cmake:

Jun 16, 2020:

11:48 PM Changeset in webkit [263137] by Simon Fraser
  • 7 edits
    2 adds in trunk

REGRESSION (r255037): Broken position while comparing watch bands on www.apple.com/shop/studio/apple-watch
https://bugs.webkit.org/show_bug.cgi?id=213282
Source/WebCore:

Reviewed by Antti Koivisto.

Test: fast/scrolling/ios/user-then-programmatic-scroll.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::applyLayerPositionsAfterCommit):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::setNeedsApplyLayerPositionsAfterCommit):
(WebCore::ScrollingTree::didScrollByDelegatedScrolling): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):

Source/WebKit:

<rdar://problem/63862940>

Reviewed by Antti Koivisto.

If a scrolling tree commit has a requested scroll position update for a node, we need
to call applyLayerPositons() to set the UIScrollView's contentOffset.

Often the layer tree commit will contain a boundsOrigin change for the layer in question
(which is equivalent to setting the UIScrollView's contentOffset), but some combinations of
user and programmatic scrolling result in no boundsOrigin change, revealing the bug.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

<rdar://problem/63862940>

Reviewed by Antti Koivisto.

  • fast/scrolling/ios/user-then-programmatic-scroll-expected.html: Added.
  • fast/scrolling/ios/user-then-programmatic-scroll.html: Added.
9:11 PM Changeset in webkit [263136] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Subpixel] Replaced content bleeds over content box when border radius is set
https://bugs.webkit.org/show_bug.cgi?id=213275
<rdar://problem/64320995>

Reviewed by Simon Fraser.

Source/WebCore:

Snap the border to device pixels on the replaced box when border radius is set.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

LayoutTests:

  • fast/images/hidpi-image-position-on-device-pixels-with-border-radius-expected.html: Added.
  • fast/images/hidpi-image-position-on-device-pixels-with-border-radius.html: Added.
8:09 PM Changeset in webkit [263135] by mmaxfield@apple.com
  • 6 edits in trunk/LayoutTests

Make fast/ruby/ruby-expansion tests more robust
<rdar://problem/59688895>

Unreviewed test gardening.

Update the tests to no longer be sensitive to arbitrary fallback font metrics.

  • fast/ruby/ruby-expansion-cjk-2.html:
  • fast/ruby/ruby-expansion-cjk-3.html:
  • fast/ruby/ruby-expansion-cjk-4.html:
  • fast/ruby/ruby-expansion-cjk.html:
  • platform/mac-wk1/TestExpectations:
7:30 PM Changeset in webkit [263134] by ysuzuki@apple.com
  • 34 edits
    2 adds in trunk

[JSC] Check NullSetterFunction under strict-mode context since structure / PropertyCondition are unaware of this
https://bugs.webkit.org/show_bug.cgi?id=213266

Reviewed by Mark Lam.

JSTests:

  • stress/null-setter-frame.js: Added.

(shouldBe):
(realm.runString.test):
(object.get value):
(i.catch):

  • stress/setter-throw-in-strict.js: Added.

(foo):

Source/JavaScriptCore:

Our PropertyCondition is tracking the shape of Structure. This is enough for IC except for one case: throwing an error when invoking null setters in strict code.

"use strict";
var object = { get value() { return 42; } }
object.value = 42;

In the above case, we need to throw an error. Let's consider the following scenario.

  1. Object has valid setter.
  2. IC is buffering OPC which includes (1)'s object in Prototype? hit.
  3. IC commits buffered AccessCase with OPC. And PropertyCondition says Object + setter-offset => Presence.
  4. Object deletes its setter.
  5. Just after (4), DFG concurrently reads buffered committed OPCs.
  6. DFG see that PropertyCondition is valid even after (4) since accessor property does exist.
  7. Set up DFG sequence GetSetter, Call.
  8. DFG calls null-setter under strict code, which is not assumed to be called.

In this patch, we insert NullSetterFunction check before setter invocation under strict mode. In IC, if we see NullSetterFunction,
we replace the calling target with special function which throws an error. In DFG / FTL, we emit CheckNotJSCast DFG node which
ensures that this setter is not null setter.

In IC code, we already have null-setter checking code before. So this change does not have any impact in terms of performance.
In DFG / FTL code, we only insert this check when we do not inline this setter. This is because inlining emits CheckCell anyway so
we can know that this is not NullSetterFunction. And this means that DFG Call opcode exists after CheckNotJSCast. Since Call opcode
loads the fields of call target anyway, this also does not affect on performance.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::addAccessCase):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handlePutById):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasClassInfo const):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckJSCast):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::isNotSubClassOf const):

  • dfg/DFGStructureAbstractValue.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckJSCast):

  • jit/Repatch.cpp:

(JSC::tryCacheGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::tryCachePutByID):
(JSC::tryCacheDeleteBy):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):

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

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::nullSetterStrictFunction const):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/NullSetterFunction.cpp:

(JSC::NullSetterFunctionInternal::callThrowError):
(JSC::NullSetterFunction::NullSetterFunction):

  • runtime/NullSetterFunction.h:
7:15 PM Changeset in webkit [263133] by mark.lam@apple.com
  • 2 edits in trunk/Tools

TestWebKitAPI.WebCore.WildcardStringMatching needs to initialize Options before accessing them.
https://bugs.webkit.org/show_bug.cgi?id=213270
<rdar://problem/64427499>

Reviewed by Yusuke Suzuki.

  • TestWebKitAPI/Tests/WebCore/StringUtilities.mm:

(TestWebKitAPI::TEST):

6:34 PM Changeset in webkit [263132] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should not re-extract elements whose children have been manipulated
https://bugs.webkit.org/show_bug.cgi?id=213276
<rdar://problem/64193446>

Reviewed by Tim Horton.

Source/WebCore:

After an element has undergone text manipulation, we have a mechanism for not extracting that element again,
if the element is later hidden and shown, or relocated in the DOM. This works by adding the inserted text
manipulation node to a weak element map (m_manipulatedElements) if the inserted node is an element. However,
this mechanism is bypassed in the case where text nodes are inserted, since these child nodes are not elements.
This means that if the element containing this manipulated text is hidden and later shown, we'll attempt to re-
extract its contents, which is problematic for text manipulation clients.

To mitigate this, when inserting content during text manipulation, if a new parent of the inserted content
contains _only_ manipulated child nodes, then avoid trying to manipulate it in the future by adding it to
m_manipulatedElements.

Test: TextManipulation.CompleteTextManipulationAvoidExtractingManipulatedTextAfterManipulation

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::updateInsertions):

Drive-by style fix: add a space after the assignment operator.

(WebCore::TextManipulationController::replace):

If the parent node that we're inserting a text manipulation node underneath has only 1 child (i.e. the node that
we've just inserted), then flag it as having only manipulated children. This parent may be un-flagged later when
applying NodeInsertions, if the NodeInsertion's child has not been manipulated.

Tools:

Add a new API test where we start and complete text manipulation, and then hide and show the manipulated
element. This test verifies that the new item callbacks are *not* called after element is shown again.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

6:17 PM Changeset in webkit [263131] by dino@apple.com
  • 6 edits
    2 adds
    1 delete in trunk

Add a dynamic library target for ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207591

Reviewed by Tim Horton.

In preparation for moving to a dynamic library, start
by compiling and linking it. It isn't used anywhere
but getting it into the build will help Apple's
build system remain happy as we migrate, as well
as have the system know it exists for building
the shared system cache.

.:

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig: Added.
  • Configurations/ANGLE-static.xcconfig: Added.
  • Configurations/ANGLE.xcconfig: Removed.
  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
5:59 PM Changeset in webkit [263130] by Russell Epstein
  • 5 edits
    2 moves in branches/safari-609-branch/Source/WebCore

Cherry-pick r263129. rdar://problem/64428805

FileListCreator should only be used for resolving directories
https://bugs.webkit.org/show_bug.cgi?id=213259
<rdar://problem/64375709>

Reviewed by David Kilzer.

Depending on whether directories should be resolved, FileListCreator::create would either
synchronously execute its completion handler then return nullptr or asynchronously dispatch
its completion handler then return a non-null RefPtr. Interfaces with sometimes-synchronous
callbacks can be hard to use correctly; e.g., r262962 fixes a problem where
FileInputType::m_fileListCreator was being modified in an unexpected order.

This patch makes the interface between FileInputType and FileListCreator less error-prone
and more explicit by renaming FileListCreator to DirectoryFileListCreator, making its job
solely to create directory FileLists on a background queue, and giving it an explicit start
member function. For non-directories, FileInputType::filesChosen now bypasses
DirectoryFileListCreator and directly converts from Vector<FileChooserFileInfo> to FileList.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/DirectoryFileListCreator.cpp: Renamed from html/FileListCreator.cpp. (WebCore::createFileList): Removed the template and ShouldResolveDirectories parameter. (WebCore::DirectoryFileListCreator::DirectoryFileListCreator): Moved the work queue dispatching to DirectoryFileListCreator::start. (WebCore::DirectoryFileListCreator::start): Added; moved the work queue dispatching here from the ctor.
  • html/DirectoryFileListCreator.h: Renamed from html/FileListCreator.h. (WebCore::DirectoryFileListCreator::create): Stopped performing non-directory creation and changed the return value back to Ref<>.
  • html/FileInputType.cpp: (WebCore::FileInputType::filesChosen): Moved most of the work done in the FileListCreator completion handler to didCreateFileList. When !FileInputType::allowsDirectories, used Vector::map to convert paths to a Vector<Ref<File>>, used that to create a FileList, then called didCreateFileList. Otherwise, created and started a DirectoryFileListCreator that calls didCreateFileList in its completion handler. (WebCore::FileInputType::didCreateFileList): Added; sets the new file list and icon and clears m_directoryFileListCreator.
  • html/FileInputType.h:

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

5:47 PM Changeset in webkit [263129] by aestes@apple.com
  • 5 edits
    2 moves in trunk/Source/WebCore

FileListCreator should only be used for resolving directories
https://bugs.webkit.org/show_bug.cgi?id=213259
<rdar://problem/64375709>

Reviewed by David Kilzer.

Depending on whether directories should be resolved, FileListCreator::create would either
synchronously execute its completion handler then return nullptr or asynchronously dispatch
its completion handler then return a non-null RefPtr. Interfaces with sometimes-synchronous
callbacks can be hard to use correctly; e.g., r262962 fixes a problem where
FileInputType::m_fileListCreator was being modified in an unexpected order.

This patch makes the interface between FileInputType and FileListCreator less error-prone
and more explicit by renaming FileListCreator to DirectoryFileListCreator, making its job
solely to create directory FileLists on a background queue, and giving it an explicit start
member function. For non-directories, FileInputType::filesChosen now bypasses
DirectoryFileListCreator and directly converts from Vector<FileChooserFileInfo> to FileList.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/DirectoryFileListCreator.cpp: Renamed from html/FileListCreator.cpp.

(WebCore::createFileList): Removed the template and ShouldResolveDirectories parameter.
(WebCore::DirectoryFileListCreator::DirectoryFileListCreator): Moved the work queue
dispatching to DirectoryFileListCreator::start.
(WebCore::DirectoryFileListCreator::start): Added; moved the work queue dispatching here
from the ctor.

  • html/DirectoryFileListCreator.h: Renamed from html/FileListCreator.h.

(WebCore::DirectoryFileListCreator::create): Stopped performing non-directory creation and
changed the return value back to Ref<>.

  • html/FileInputType.cpp:

(WebCore::FileInputType::filesChosen): Moved most of the work done in the FileListCreator
completion handler to didCreateFileList. When !FileInputType::allowsDirectories, used
Vector::map to convert paths to a Vector<Ref<File>>, used that to create a FileList, then
called didCreateFileList. Otherwise, created and started a DirectoryFileListCreator that
calls didCreateFileList in its completion handler.
(WebCore::FileInputType::didCreateFileList): Added; sets the new file list and icon and
clears m_directoryFileListCreator.

  • html/FileInputType.h:
5:44 PM Changeset in webkit [263128] by dino@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION (r262643): DumpRenderTree at com.apple.WebCore: WebCore::Document::prepareCanvasesForDisplayIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=213221
rdar://64260400

Reviewed by Simon Fraser.

Source/WebCore:

A Document could still be holding a pointer to an HTMLCanvasElement after the
canvas had been deleted because the CanvasObserver protocol was disconnected
too early. The fix is to explicitly clear the canvas from the Document as it
stops observing.

Test: webgl/preparation-removed-from-document.html

  • dom/Document.cpp:

(WebCore::Document::prepareCanvasesForDisplayIfNeeded): Copy the HashSet to a Vector
just in case something weird happens to the set during iteration.
(WebCore::Document::clearCanvasPreparation): Remove the canvas from the list of
of elements that need preparation.

  • dom/Document.h: Add the new clearCanvasPreparation method.
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::~HTMLCanvasElement): Clear the document.
(WebCore::HTMLCanvasElement::didMoveToNewDocument): Ditto.
(WebCore::HTMLCanvasElement::removedFromAncestor): Ditto.

LayoutTests:

Test that triggers a rendering on a canvas, then rips it out of
the document before drawing.

  • webgl/preparation-removed-from-document-expected.txt: Added.
  • webgl/preparation-removed-from-document.html: Added.
5:44 PM Changeset in webkit [263127] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

[WebGL] Lose the context if IOSurface allocation fails
https://bugs.webkit.org/show_bug.cgi?id=213265
<rdar://problem/64424742>

Reviewed by Simon Fraser.

If we are unable to allocate the backing store for the WebGL
content, we should immediately lose the context.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs): Lose the context if the
call to allocateIOSurfaceBackingStore didn't work.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::allocateIOSurfaceBackingStore):

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

(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]): Return a boolean
so that we can detect if the allocation failed.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

5:03 PM Changeset in webkit [263126] by Peng Liu
  • 3 edits in trunk/LayoutTests

REGRESSION: [iOS wk2] media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html is failing consistently
https://bugs.webkit.org/show_bug.cgi?id=213267

Reviewed by Eric Carlson.

Enable the mock video presentation mode for layout tests and use shouldBecomeEqual() to check
the value of media.webkitDisplayingFullscreen.

  • media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt:
  • media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html:
4:31 PM Changeset in webkit [263125] by mmaxfield@apple.com
  • 11 edits in trunk/LayoutTests

Update fast/text/international/system-language/navigator-language tests
<rdar://problem/64047392>

Unreviewed.

Update to new behavior of +[NSLocale minimizedLanguagesFromLanguages:].

  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
4:29 PM Changeset in webkit [263124] by sbarati@apple.com
  • 2 edits in trunk/Tools

Fix two typos "signifcant" and "signficance". Should be "significant" and "significance"

  • Scripts/compare-results:

(displayStr):
(computeMultipleHypothesesSignificance):
(dumpBreakdowns):
(writeCSV):
(computeMultipleHypothesesSignficance): Deleted.

4:22 PM Changeset in webkit [263123] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Fix build with !HAVE(MACHINE_CONTEXT)
https://bugs.webkit.org/show_bug.cgi?id=213223
<rdar://problem/64390209>

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-16
Reviewed by Yusuke Suzuki.

In r263074, I messed up and broke the build with !HAVE(MACHINE_CONTEXT). Even though the
sole purpose of that commit was to fix !HAVE(MACHINE_CONTEXT), I must have somehow messed up
when testing my change.

Anyway, we can just create an empty PlatformRegisters object when HAVE(MACHINE_CONTEXT) is
false. At first, I was worried that passing an empty PlatformRegisters could be open to
misuse, but it's actually hard to misuse it because the only sensible thing you can do with
it is pass it to MachineContext, and you can't use MachineContext outside
HAVE(MACHINE_CONTEXT), so we should be good.

  • wtf/threads/Signals.cpp:

(WTF::jscSignalHandler):

3:57 PM Changeset in webkit [263122] by Kate Cheney
  • 7 edits in trunk/Source/WebKit

Check for inAppBrowserPrivacyEnabled flag in WebsiteDataStore::initializeAppBoundDomains is expensive and calls a non-static function WebsiteDataStore::parameters().
https://bugs.webkit.org/show_bug.cgi?id=213261
<rdar://problem/64317084>

Reviewed by Brent Fulgham.

There are two bugs here. First, WebsiteDataStore::parameters()
does a lot of work aside from returning the parameters, making this an
expensive call just to check the value of one flag. Second,
appBoundDomains() is a static hashset, and initializing the hashset
should not rely on non-static functions.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

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

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
Remove flag, it is no longer used here.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
Save the flag value in a member variable so we can use that later
when checking app-bound domains. Rename to something more descriptive.

(WebKit::WebsiteDataStore::initializeAppBoundDomains):
Remove the check for the non-static runtime flag.

(WebKit::WebsiteDataStore::ensureAppBoundDomains const):
Enable test mode quirks. We must do it in two places in case the
initialization hasn't happened by the time we call
ensureAppBoundDomains.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:41 PM Changeset in webkit [263121] by eric.carlson@apple.com
  • 7 edits
    2 adds in trunk

Don't claim to support fullscreen mode unless fullScreenEnabled setting is enabled
https://bugs.webkit.org/show_bug.cgi?id=213142
<rdar://63753327>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-supports-fullscreen.html

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::supportsFullscreen const): Check settings.fullScreenEnabled.

LayoutTests:

  • media/video-supports-fullscreen-expected.txt: Added.
  • media/video-supports-fullscreen.html: Added.
  • media/video-fullscreen-only-playback.html: Don't set fullScreenEnabled to false.
  • TestExpectations: Skip the test, it is WK2-only.
  • platform/wk2/TestExpectations: Expect the test to pass.
3:36 PM Changeset in webkit [263120] by Andres Gonzalez
  • 8 edits in trunk

Fix for accessibility/textarea-selected-text-range.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=213257

Reviewed by Chris Fleizach.

Source/WebCore:

accessibility/textarea-selected-text-range.html.

Implementation of AXIsolatedObject::selectedTextRange.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selectedTextRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::setAttributeValue):
(WTR::AccessibilityUIElement::selectedTextRange): Dispatch call into
WebAccessibilityWrapper onto AX secondary thread to simulate isolated
tree mode.

LayoutTests:

  • Re-write this test so that it can pass in both isolated tree mode on

and off.

  • Replaced shouldBecomeEqual with setTimeout follow by debug because

shouldBecomeEqual causes a thread lock on isolated tree mode.

  • accessibility/textarea-selected-text-range-expected.txt:
  • accessibility/textarea-selected-text-range.html:
3:23 PM Changeset in webkit [263119] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Web Inspector: replace completion handler with a function in interception.
https://bugs.webkit.org/show_bug.cgi?id=213252

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-06-16
Reviewed by Devin Rousso.

Don't use a CompletionHandler as it asserts that it's been called when it's destroyed.
Both Network.interceptRequestWithResponse and Network.interceptRequestWithError essentially
"skip" the network pipeline, so the CompletionHandler is not invoked for those commands.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::interceptRequestImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::interceptRequest):

  • inspector/InspectorInstrumentationWebKit.cpp:

(WebCore::InspectorInstrumentationWebKit::interceptRequestInternal):

  • inspector/InspectorInstrumentationWebKit.h:

(WebCore::InspectorInstrumentationWebKit::interceptRequest):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::interceptRequest):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithError):

  • inspector/agents/InspectorNetworkAgent.h:

(WebCore::InspectorNetworkAgent::PendingInterceptRequest::PendingInterceptRequest):
(WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueAsHandled):

2:54 PM Changeset in webkit [263118] by commit-queue@webkit.org
  • 15 edits in trunk

Added missing position attributes to PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213151

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

LayoutTests/imported/w3c:

Re-baselined previous tests that either now pass, or fail at a further stage than before.

  • web-platform-tests/webaudio/historical-expected.txt:
  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt:

Source/WebCore:

Implemented position attributes in PannerNode interface, as per spec:
https://www.w3.org/TR/webaudio/#pannernode.

Re-baselined tests previous tests that either now pass, or fail at a further stage than before.

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::position const):
(WebCore::PannerNode::setPosition):
(WebCore::PannerNode::getAzimuthElevation):
(WebCore::PannerNode::dopplerRate):
(WebCore::PannerNode::distanceConeGain):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:

LayoutTests:

Added change to unprefix PannerNode in web-platform-tests.

  • resources/testharnessreport.js:
2:30 PM Changeset in webkit [263117] by mark.lam@apple.com
  • 32 edits in trunk/Source

Make Options::useJIT() be the canonical source of truth on whether we should use the JIT.
https://bugs.webkit.org/show_bug.cgi?id=212556
<rdar://problem/63780436>

Reviewed by Saam Barati.

Source/JavaScriptCore:

After r263055, Options::useJIT() always equals VM::canUseJIT() after canUseJIT()
has been computed. This patch removes VM::canUseJIT(), and replaces all calls to
it with calls to Options::useJIT().

In the old code, VM::canUseJIT() would assert s_canUseJITIsSet to ensure that
its clients will not access s_canUseJIT before it is initialized. We not have an
equivalent mechanism with Options. This is how it works:

  1. There are 2 new Options flags in the g_jscConfig:

g_jscConfig.options.isFinalized
g_jscConfig.options.allowUnfinalizedAccess

g_jscConfig.options.isFinalized means that all Options values are finalized
i.e. initialization is complete and ready to be frozen in the Config.

g_jscConfig.options.isFinalized is set by initializeThreading() by calling
Options::finalize() once options initialization is complete.

g_jscConfig.options.allowUnfinalizedAccess is an allowance for clients to
access Options values before they are finalized. This is only needed in
options initialization code where Options values are read and written to.

g_jscConfig.options.allowUnfinalizedAccess is set and cleared using the
Options::AllowUnfinalizedAccessScope RAII object. The few pieces of code that
do options initialization will instantiate this scope object.

  1. All Options accessors (e.g. Option::useJIT()) will now assert that either g_jscConfig.options.allowUnfinalizedAccess or g_jscConfig.options.isFinalized is set.
  1. Since r263055, Options::recomputeDependentOptions() ensures that if useJIT() is false, all other JIT options (e.g. useBaselineJIT(), useDFTJIT(), useFTLJIT(), etc.) are also false. This patch also adds useBBQJIT() and useOMGJIT() to that list.

With this, checks for useJIT() are now redundant if there's also another JIT
option check, e.g. useRegExpJIT() or useDFGJIT(). When redundant, this patch
elides the useJIT() check (which used to be a VM::canUseJIT() check).

Ideally, we should also introduce a separate abstraction for requested option
values before finalization than the finalized option values that will be adopted
by the system. We'll do this as a separate exercise in a later patch.

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • API/tests/FunctionOverridesTest.cpp:

(testFunctionOverrides):

  • API/tests/PingPongStackOverflowTest.cpp:

(testPingPongStackOverflow):

  • Removed redundant calls to Options::initialize().
  • API/tests/testapi.c:

(main):

  • move the call to testExecutionTimeLimit() to after finalizeMultithreadedMultiVMExecutionTest() returns. This is because testExecutionTimeLimit() modifies JIT options at runtime as part of its testing. This can wreak havoc on the rest of the system that expects the options to be frozen. Ideally, we'll find a way for testExecutionTimeLimit() to do its work without changing JIT options, but that is not easy to do. For now, we'll just run it at the end as a workaround.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setNumParameters):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::isSupported):

  • heap/Heap.cpp:

(JSC::Heap::completeAllJITPlans):
(JSC::Heap::iterateExecutingAndCompilingCodeBlocks):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::stopThePeriphery):
(JSC::Heap::suspendCompilerThreads):
(JSC::Heap::resumeCompilerThreads):
(JSC::Heap::addCoreConstraints):

  • interpreter/AbstractPC.cpp:

(JSC::AbstractPC::AbstractPC):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):
(JSC::JITThunks::hostFunctionStub):

  • jsc.cpp:

(CommandLine::parseArguments):
(jscmain):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::shouldJIT):
(JSC::LLInt::jitCompileAndSetHeuristics):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

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

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::numberToStringWatchpointSet):

  • runtime/Options.cpp:

(JSC::jitEnabledByDefault):
(JSC::disableAllJITOptions):

(JSC::Options::initialize):

  • Move the calls to dumpOptionsIfNeeded() and ensureOptionsAreCoherent() to the end after all the options have been initialized because this where they belong.

(JSC::Options::finalize):
(JSC::Options::setOptions):
(JSC::Options::setOption):
(JSC::Options::dumpAllOptions):
(JSC::Options::ensureOptionsAreCoherent):

  • runtime/Options.h:

(JSC::Options::AllowUnfinalizedAccessScope::AllowUnfinalizedAccessScope):
(JSC::Options::AllowUnfinalizedAccessScope::~AllowUnfinalizedAccessScope):

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

(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::isWatchable const):

  • runtime/VM.cpp:

(JSC::VM::computeCanUseJIT):
(JSC::VM::VM):
(JSC::VM::getHostFunction):
(JSC::VM::getCTIInternalFunctionTrampolineFor):

  • runtime/VM.h:

(JSC::VM::isInMiniMode):
(JSC::VM::canUseJIT): Deleted.

  • wasm/WasmCapabilities.h:

(JSC::Wasm::isSupported):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::shouldJIT):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::shouldJIT):

Source/WebCore:

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::compileSelector):

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::isJITEnabled):

2:17 PM Changeset in webkit [263116] by rmorisset@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Optimize Air::TmpWidth analysis in IRC
https://bugs.webkit.org/show_bug.cgi?id=152478

Reviewed by Filip Pizlo.

AirTmpWidth currently uses a HashMap to map tmps to their width.
Since tmps have consecutive indices, we can instead use vectors (one for GP and one for FP tmps).
As a bonus, we can just compute the width of the tmps of the bank the register allocator is currently looking at.
This cuts the time spent in the register allocator in JetStream2 by about 100ms out of 3.4s
(or sometimes 80ms out of 2.4, the bimodality of the time spent is due to a huge function in tagcloud-SP which usually but not always reach the FTL, I'll check later if it can be fixed by tweaking the inliner).

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:

(JSC::B3::Air::allocateRegistersByGraphColoring):

  • b3/air/AirTmpWidth.cpp:

(JSC::B3::Air::TmpWidth::TmpWidth):
(JSC::B3::Air::TmpWidth::recompute):

  • b3/air/AirTmpWidth.h:

(JSC::B3::Air::TmpWidth::width const):
(JSC::B3::Air::TmpWidth::requiredWidth):
(JSC::B3::Air::TmpWidth::defWidth const):
(JSC::B3::Air::TmpWidth::useWidth const):
(JSC::B3::Air::TmpWidth::Widths::Widths):
(JSC::B3::Air::TmpWidth::widths):
(JSC::B3::Air::TmpWidth::widths const):
(JSC::B3::Air::TmpWidth::addWidths):
(JSC::B3::Air::TmpWidth::widthsVector):

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

Web Inspector: Sources: objects in Scope Chain panel flicker when resizing details sidebar
https://bugs.webkit.org/show_bug.cgi?id=213234
<rdar://problem/64391213>

Reviewed by David Kilzer.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WI.ScopeChainDetailsSidebarPanel.prototype.layout):
Don't regenerate the DOM in layout unless the reason is WI.View.LayoutReason.Dirty, such
as if the current call frame changes or a watch expression is added/updated/removed.

2:09 PM Changeset in webkit [263114] by sbarati@apple.com
  • 2 edits in trunk/Tools

Multiple hypothesis testing should use False Discovery Rate instead of Bonferroni
https://bugs.webkit.org/show_bug.cgi?id=213219

Reviewed by Mark Lam.

My previous patch here used Bonferroni to do multiple hypotheses correction.
Bonferroni does a good job at reducing false positive rate (type I error,
saying something is significant when it's not, e.g, rejecting the null
hypothesis when we shouldn't), but at the expense of also having a high
false negative rate (type II error, saying something is not significant when
it is, e.g, not rejecting the null hypothesis when we should).

After doing a bit more reading, it seems like using a technique called False
Discovery Rate (FDR) is better. It still does a good job at controlling type
I error rate, but without sacrificing a high type II error rate. FDR is based
on a technique for "estimating the proportion of wrongly rejected null hypotheses" [2].

This patch uses Benjamini and Hochberg estimation of FDR, which relies
on hypotheses being independent. We know subtests in a benchmark aren't
fully independent variables, but it's a good enough approximation.

You can read more about FDR:

  1. https://www.stat.berkeley.edu/~mgoldman/Section0402.pdf
  2. https://besjournals.onlinelibrary.wiley.com/doi/10.1111/j.2041-210X.2010.00061.x
  3. https://en.wikipedia.org/wiki/False_discovery_rate
  • Scripts/compare-results:

(displayStr):
(computeMultipleHypothesesSignficance):
(dumpBreakdowns):
(writeCSV):

2:03 PM Changeset in webkit [263113] by weinig@apple.com
  • 14 edits in trunk

[WPT] form.action does not return document.url when unset (part of https://wpt.live/html/dom/reflection-forms.html)
https://bugs.webkit.org/show_bug.cgi?id=213205

Reviewed by David Kilzer.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/reflection-forms-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection-with-base-url-expected.txt:

Update test results.

Source/WebCore:

Update existing test results that now pass.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::formAction const):
Call document.completeURL() directly rather than getURLAttribute() as that
will cause the attribute to have to be looked up again.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::action const):
Match HTMLFormControlElement::formAction (and the spec) and return the document's
url if the attribute value is missing.

  • html/HTMLFormElement.idl:

Remove Reflect/URL extended attributes, as we need custom handling for the empty
case.

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:

Update test results.

1:42 PM Changeset in webkit [263112] by ddkilzer@apple.com
  • 10 edits
    1 add in trunk

REGRESSION (r262994): Web Inspector is killed when context-clicking anywhere
<https://webkit.org/b/213224>
<rdar://problem/64383320>

Reviewed by Darin Adler.

Source/WebCore:

Test: TestWebKitAPI.WebCore.ContextMenuAction_IsValidEnum

The issue is that using WTF::isValidEnum() with
WTF::EnumTraits<WebCore::ContextMenuAction> didn't explicitly
list all 1000 custom tags, or any application tags (besides the
base), so the unlisted tags were marked as invalid during enum
validation.

The fix is to define a custom validation function for
WebCore::ContextMenuAction enum values.

  • platform/ContextMenuItem.h:

(WTF::isValidEnum):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction): Add.

  • Validates CustomTag and ApplicationTag ranges.
  • platform/ContextMenuItem.h:

(WebCore::isValidContextMenuAction): Add declaration.
(WTF::EnumTraits<WebCore::ContextMenuAction>): Delete.
(WTF::HasCustomIsValidEnum<WebCore::ContextMenuAction>): Add.
(WTF::isValidEnum): Add.

  • Call WebCore::isValidContextMenuAction() to validate all enum values.

Source/WebKit:

  • Platform/IPC/Decoder.h:
  • Platform/IPC/Encoder.h:
  • Include <WebCore/ContextMenuItem.h> since the definition of the custom WTF::isValidEnum<WebCore::ContextMenuAction> function is needed.
  • Scripts/webkit/messages.py:

(generate_message_names_header):

  • Change the third typename in the template for WTF::isValidEnum<IPC::MessageName>() to avoid partial template specialization errors from other implementations like WTF::isValidEnum<WebCore::ContextMenuAction>().
  • Also replace hard-coded "IPC::MessageName" names with template values.

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add ContextMenuAction.cpp to build systems.
  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp: Add.

(TestWebKitAPI::TEST):

  • Add TestWebKitAPI.WebCore.ContextMenuAction_IsValidEnum.
1:37 PM Changeset in webkit [263111] by Fujii Hironori
  • 19 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening after r263073

  • platform/wincairo/editing/inserting/before-after-input-element-expected.txt:
  • platform/wincairo/editing/selection/3690703-2-expected.txt:
  • platform/wincairo/editing/selection/3690703-expected.txt:
  • platform/wincairo/editing/selection/3690719-expected.txt:
  • platform/wincairo/editing/selection/4895428-3-expected.txt:
  • platform/wincairo/editing/selection/4975120-expected.txt:
  • platform/wincairo/editing/selection/drag-select-1-expected.txt:
  • platform/wincairo/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/wincairo/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/wincairo/fast/css/input-search-padding-expected.txt:
  • platform/wincairo/fast/css/line-height-expected.txt:
  • platform/wincairo/fast/css/text-overflow-input-expected.txt:
  • platform/wincairo/fast/events/context-no-deselect-expected.txt:
  • platform/wincairo/fast/html/details-no-summary4-expected.txt:
  • platform/wincairo/fast/html/details-open-javascript-expected.txt:
  • platform/wincairo/fast/html/details-open2-expected.txt:
  • platform/wincairo/fast/html/details-open4-expected.txt:
  • platform/wincairo/fast/text/textIteratorNilRenderer-expected.txt:
12:49 PM Changeset in webkit [263110] by Fujii Hironori
  • 3 edits in trunk/Tools

[Win] Mouse dragging tests are failing because WebKitTestRunner dispatches WM_MOUSELEAVE to the hidden WebView
https://bugs.webkit.org/show_bug.cgi?id=213239

Reviewed by Don Olmstead.

There are two problems:

  1. Windows EventSenderProxy::mouseMoveTo doesn't set WPARAM of WM_MOUSEMOVE
  2. Unexpected WM_MOUSELEAVE discontinues the mouse dragging events

WPARAM of WM_MOUSEMOVE should represent pressed mouse buttons while dragging.

WM_MOUSELEAVE is unexpectedly dispatched because the mouse cursor
is always out of the hidden WebView. The unexpected WM_MOUSELEAVE
discontinues dragging events. WM_MOUSELEAVE shouldn't be
dispatched in WebKitTestRunner. Ignore it.

  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo): Set MK_LBUTTON to WPARAM of
WM_MOUSEMOVE while dragging.

  • WebKitTestRunner/win/TestControllerWin.cpp:

(WTR::runRunLoopUntil): Ignore WM_MOUSELEAVE.

12:48 PM Changeset in webkit [263109] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[CMake][Visual Studio] CSSPropertyNames.h is generated twice in WebCore.vcxproj and WebCore_CopyPrivateHeaders.vcxproj
https://bugs.webkit.org/show_bug.cgi?id=213226

Reviewed by Don Olmstead.

WebCore_CopyPrivateHeaders needs to have a direct or indirect
dependency of WebCore target for CMake Visual Studio generator to
eliminate duplicated custom commands.

  • CMakeLists.txt: Added add_dependencies(WebCore_CopyPrivateHeaders WebCore).
12:46 PM Changeset in webkit [263108] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[CMake][Visual Studio] CombinedDomains.json is generated twice in JavaScriptCore.vcxproj and InspectorBackendCommands.vcxproj
https://bugs.webkit.org/show_bug.cgi?id=213225

Reviewed by Don Olmstead.

Since r262203 (Bug 210014) added a new target
InspectorBackendCommands, CombinedDomains.json is generated twice
in JavaScriptCore.vcxproj and InspectorBackendCommands.vcxproj.
This caused unnecessary incremental builds.

The fundamental issue of this issue was fixed in CMake side.
<https://gitlab.kitware.com/cmake/cmake/issues/16767>
However, JavaScriptCore target needs to have a direct or indirect
dependency of InspectorBackendCommands target for CMake Visual
Studio generator to eliminate duplicated custom commands.

  • CMakeLists.txt: Added add_dependencies(JavaScriptCore InspectorBackendCommands).
11:47 AM Changeset in webkit [263107] by Russell Epstein
  • 4 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262739. rdar://problem/64413138

Use usual promise in readableStreamTee
https://bugs.webkit.org/show_bug.cgi?id=212715

Reviewed by Mark Lam.

The spec[1] is organized to be OK to use usual promises here. This patch uses usual promises instead of internal ones.

[1]: https://streams.spec.whatwg.org/#readable-stream-tee

  • Modules/streams/ReadableStreamInternals.js: (readableStreamTee):

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

11:46 AM Changeset in webkit [263106] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r263092. rdar://problem/64412673

O(n2) behavior in media query resolution
https://bugs.webkit.org/show_bug.cgi?id=213243

Reviewed by Anders Carlsson.

We were traversing all rules in a RuleSet inside a loop over all media queries that change value.
This becomes problematic when you have thousands of media queries.

  • style/RuleSet.cpp: (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

Instead collect the rule positions that need flipping into a map and then traverse only once
to do the actual flipping.

Longer term we should maintain a data stucture that can map directly from a position to RuleDatas.
This will require some data structure rethink so this patch takes a simpler approach.

(WebCore::Style::RuleSet::MediaQueryCollector::pop):

  • style/RuleSet.h:

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

11:46 AM Changeset in webkit [263105] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262594. rdar://problem/64413274

HTMLAppletElement::updateWidget should check for renderer after the overlapping test.
https://bugs.webkit.org/show_bug.cgi?id=212789
<rdar://problem/61854614>

Reviewed by Simon Fraser.

createJavaAppletWidget needs to check if the plugin(replacement) is obscured.
Since the overlapping test requires up-to-date geometry, it initiates a top level style recalc/layout.
We need to check if the apple element still has a renderer after the style recalc.

  • html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::updateWidget):

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

11:46 AM Changeset in webkit [263104] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262540. rdar://problem/64413268

Reset fragment line info when the relatively positioned inline box becomes static with block child.
https://bugs.webkit.org/show_bug.cgi?id=212724
<rdar://problem/62847534>

Reviewed by Simon Fraser.

adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded was missing the case when the
block container was inside an inline box. It happens when the inline box is relatively positioned while the
child block box is absolutely positioned.
RenderFragmentedFlow keeps track of the associated root lineboxes in m_lineToFragmentMap.
In adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded, when the block is no longer part of the fragment
we remove these cached lineboxes from the m_lineToFragmentMap.
This patch fixes the case when the cached lineboxes are generated by a child block box.

  • rendering/RenderElement.cpp: (WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

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

11:30 AM Changeset in webkit [263103] by Diego Pino Garcia
  • 108 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines after r263073.

  • platform/gtk/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/gtk/editing/inserting/before-after-input-element-expected.txt:
  • platform/gtk/editing/pasteboard/4806874-expected.txt:
  • platform/gtk/editing/pasteboard/input-field-1-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/editing/selection/4895428-3-expected.txt:
  • platform/gtk/editing/selection/4975120-expected.txt:
  • platform/gtk/editing/selection/drag-select-1-expected.txt:
  • platform/gtk/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/gtk/fast/css/input-search-padding-expected.txt:
  • platform/gtk/fast/css/text-overflow-input-expected.txt:
  • platform/gtk/fast/events/context-no-deselect-expected.txt:
  • platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/gtk/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/gtk/fast/forms/basic-inputs-expected.txt:
  • platform/gtk/fast/forms/box-shadow-override-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/gtk/fast/forms/encoding-test-expected.txt:
  • platform/gtk/fast/forms/fieldset-align-expected.txt:
  • platform/gtk/fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/input-align-expected.txt:
  • platform/gtk/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/gtk/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/gtk/fast/forms/input-appearance-focus-expected.txt:
  • platform/gtk/fast/forms/input-appearance-height-expected.txt:
  • platform/gtk/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/gtk/fast/forms/input-appearance-selection-expected.txt:
  • platform/gtk/fast/forms/input-appearance-visibility-expected.txt:
  • platform/gtk/fast/forms/input-appearance-width-expected.txt:
  • platform/gtk/fast/forms/input-baseline-expected.txt:
  • platform/gtk/fast/forms/input-disabled-color-expected.txt:
  • platform/gtk/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/gtk/fast/forms/input-spaces-expected.txt:
  • platform/gtk/fast/forms/input-table-expected.txt:
  • platform/gtk/fast/forms/input-text-click-inside-expected.txt:
  • platform/gtk/fast/forms/input-text-click-outside-expected.txt:
  • platform/gtk/fast/forms/input-text-double-click-expected.txt:
  • platform/gtk/fast/forms/input-text-drag-down-expected.txt:
  • platform/gtk/fast/forms/input-text-option-delete-expected.txt:
  • platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/gtk/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/gtk/fast/forms/input-type-text-min-width-expected.txt:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/forms/input-width-expected.txt:
  • platform/gtk/fast/forms/placeholder-position-expected.txt:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/gtk/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/gtk/fast/forms/search-input-rtl-expected.txt:
  • platform/gtk/fast/forms/search-styled-expected.txt:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/gtk/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/gtk/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/gtk/fast/forms/textfield-focus-ring-expected.txt:
  • platform/gtk/fast/forms/textfield-outline-expected.txt:
  • platform/gtk/fast/forms/textfield-overflow-expected.txt:
  • platform/gtk/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/gtk/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/gtk/fast/html/details-no-summary4-expected.txt:
  • platform/gtk/fast/html/details-open-javascript-expected.txt:
  • platform/gtk/fast/html/details-open2-expected.txt:
  • platform/gtk/fast/html/details-open4-expected.txt:
  • platform/gtk/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/gtk/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/gtk/fast/repaint/search-field-cancel-expected.txt:
  • platform/gtk/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/gtk/fast/table/colspanMinWidth-expected.txt:
  • platform/gtk/fast/table/spanOverlapRepaint-expected.txt:
  • platform/gtk/fast/table/text-field-baseline-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/gtk/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/gtk/svg/hixie/mixed/003-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
  • platform/gtk/tables/mozilla/other/move_row-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/gtk/transforms/3d/general/perspective-non-layer-expected.txt:
11:21 AM Changeset in webkit [263102] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

WebKit-609.3.5

11:11 AM Changeset in webkit [263101] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should handle nested item boundary elements
https://bugs.webkit.org/show_bug.cgi?id=213251
<rdar://problem/63371514>

Reviewed by Sihui Liu.

Source/WebCore:

In the case where there are nested item boundary elements (e.g. block-level list items or links), text
manipulation will currently only observe that we've crossed the top-level item boundary, and proceed to extract
text from the nested boundary elements as tokens in the same item.

Address this by maintaining a stack of boundary elements rather than just a single item. Additionally, create
and add an item when crossing into a new item boundary, rather than only when we exit a boundary; this handles
the case where we descend from one boundary element into another boundary element that is a child.

Test: TextManipulation.StartTextManipulationTreatsNestedInlineBlockListItemsAndLinksAsParagraphs

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a new API test to exercise this scenario.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
11:10 AM Changeset in webkit [263100] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Stop calling userPreferredLanguages() in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=213214
<rdar://problem/64317593>

Reviewed by Darin Adler.

Follow-up to r263094 to address post-landing feedback from Darin.
Use makeVector() functionality in WTF to convert the NSArray into a Vector instead
of doing it by hand. Also mark the NeverDestroyed variable as static const to
avoid leaking.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformOverrideLanguages const):

10:57 AM Changeset in webkit [263099] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Provide alternatively-named WKBrowsingContextGroup SPI
https://bugs.webkit.org/show_bug.cgi?id=213229

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-16
Reviewed by Tim Horton.

This is unfortunately still used. In order to try to convince the user to make the smallest change possible, make newly named SPI that behaves identically.
Doubly-deprecate the old SPI and implement it in terms of the new during the transition period.

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

(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:includeMatchPatternStrings:excludeMatchPatternStrings:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserScript:baseURL:includeMatchPatternStrings:excludeMatchPatternStrings:injectionTime:mainFrameOnly:]):

10:18 AM Changeset in webkit [263098] by youenn@apple.com
  • 5 edits
    5 adds in trunk

Loads triggered by an opaque stylesheet should not be visible to service workers
https://bugs.webkit.org/show_bug.cgi?id=213246

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/wpt/service-workers/no-cors-css-with-subresources.https.html

  • loader/ResourceLoaderOptions.h:

Move it to boolean

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
In case the load is triggered from an opaque response, set service worker mode to none.

LayoutTests:

  • http/wpt/service-workers/no-cors-css-with-subresources.https-expected.txt: Added.
  • http/wpt/service-workers/no-cors-css-with-subresources.https.html: Added.
  • http/wpt/service-workers/no-cors-css-worker.js: Added.

(async doTest):
(async doFetch):

  • http/wpt/service-workers/resources/loading-subresources.css: Added.
  • http/wpt/service-workers/resources/subresource.css: Added.

(div#resource_link_css):

10:06 AM Changeset in webkit [263097] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Increase pixel check tolerance for http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html
https://bugs.webkit.org/show_bug.cgi?id=213237

Reviewed by Eric Carlson.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:

Increase pixel tolerance as we encode/decode video which might create some artefacts.

9:35 AM Changeset in webkit [263096] by Chris Fleizach
  • 8 edits in trunk

AX: <address> element should no longer map to ARIA contentinfo role
https://bugs.webkit.org/show_bug.cgi?id=212617
<rdar://problem/63848604>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Change the mapping of <address> to be a basic group. Update tests.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

  • accessibility/mac/landmark-not-ignored-expected.txt:
  • accessibility/mac/landmark-not-ignored.html:
  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
  • platform/win/accessibility/roles-exposed-expected.txt:
9:24 AM Changeset in webkit [263095] by cturner@igalia.com
  • 23 edits
    4 adds in trunk

[GTK] Disable video autoplay
https://bugs.webkit.org/show_bug.cgi?id=184845

Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • PlatformGTK.cmake: Add new source files to the build.
  • PlatformWPE.cmake: Ditto.
  • SourcesGTK.txt: Ditto.
  • SourcesWPE.txt: Ditto.
  • UIProcess/API/glib/WebKitPolicyDecision.cpp:

(webkit_policy_decision_use_with_policies): : Add an API to
respond to navigation decisions with policies.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextCreatePageForWebView): Plumb in the default
website policies that are associated with the web view.

  • UIProcess/API/glib/WebKitWebContextPrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):
(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_get_website_policies):

  • UIProcess/API/glib/WebKitWebsitePolicies.cpp: Added.

(_WebKitWebsitePoliciesPrivate::_WebKitWebsitePoliciesPrivate):
(webkitWebsitePoliciesGetWebsitePolicies):
(webkitWebsitePoliciesGetPoliciesData):
(webkitWebsitePoliciesGetProperty):
(webkitWebsitePoliciesSetAutoplayPolicy):
(webkitWebsitePoliciesSetProperty):
(webkit_website_policies_class_init):
(webkit_website_policies_new):
(webkit_website_policies_new_with_policies):
(webkit_website_policies_get_autoplay_policy):

  • UIProcess/API/glib/WebKitWebsitePoliciesPrivate.h: Added.
  • UIProcess/API/gtk/WebKitPolicyDecision.h:
  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkit_web_view_new_with_related_view):

  • UIProcess/API/gtk/WebKitWebsitePolicies.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitPolicyDecision.h:
  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/API/wpe/WebKitWebsitePolicies.h: Added.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:

Tools:

Update the various callsites for constructing a view to take into
account the default policies. I chose the default as autoplay
allow without sound, which is in keeping with WebCore's choice.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewDecidePolicy):
(newTabCallback):
(openPrivateWindow):
(browser_window_get_or_create_web_view_for_automation):
(browser_window_create_web_view_in_new_tab_for_automation):

  • MiniBrowser/gtk/main.c:

(createBrowserTab):
(main):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: Add

autoplay policy tests, and use modern class initializers.
(testAutoplayPolicy):
(beforeAll):

8:30 AM Changeset in webkit [263094] by Chris Dumez
  • 12 edits in trunk/Source

Stop calling userPreferredLanguages() in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=213214
<rdar://problem/64317593>

Reviewed by Per Arne Vollan.

Source/WebKit:

Stop calling userPreferredLanguages() in the UIProcess since this can be slow and may keep
the main thread busy. Nowadays, the WebProcess is able to call it by itself anyway. The
sandbox is allowing it.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::userPreferredLanguagesChanged const):

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

Source/WTF:

Export WTF::languageDidChange() so we can call it from WebKit2.

  • wtf/Language.h:
8:19 AM Changeset in webkit [263093] by Truitt Savell
  • 41 edits
    3 deletes in trunk

Unreviewed, reverting r263079.

Broke Internal builds.

Reverted changeset:

"IndexedDB: Support IDBFactory databases method"
https://bugs.webkit.org/show_bug.cgi?id=211043
https://trac.webkit.org/changeset/263079

8:12 AM Changeset in webkit [263092] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

O(n2) behavior in media query resolution
https://bugs.webkit.org/show_bug.cgi?id=213243

Reviewed by Anders Carlsson.

We were traversing all rules in a RuleSet inside a loop over all media queries that change value.
This becomes problematic when you have thousands of media queries.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

Instead collect the rule positions that need flipping into a map and then traverse only once
to do the actual flipping.

Longer term we should maintain a data stucture that can map directly from a position to RuleDatas.
This will require some data structure rethink so this patch takes a simpler approach.

(WebCore::Style::RuleSet::MediaQueryCollector::pop):

  • style/RuleSet.h:
8:06 AM Changeset in webkit [263091] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[iOS wk2] http/tests/security/cookies/third-party-cookie-blocking-main-frame.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=206946

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:00 AM Changeset in webkit [263090] by pvollan@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Collecting screen properties in the UI process introduced a Safari launch time regression.
https://bugs.webkit.org/show_bug.cgi?id=213217
<rdar://problem/64374461>

Reviewed by Brent Fulgham.

Calling collectScreenProperties() in WebProcessPool::platformInitializeWebProcess() introduced a Safari launch time regression on iOS.
It turns out that calling screenIsMonochrome on iOS is expensive, but this call can still be done in the WebContent process, since there
are no sandbox restrictions making that call fail in the WebContent process. Call this function in the WebContent process instead of in
the UI process.

No new tests, since this change should not introduce a change in behavior. It goes back to calling the screenIsMonochrome function in the
WebContent process.

  • platform/ScreenProperties.h:

(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenIsMonochrome):
(WebCore::collectScreenProperties):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::collectScreenProperties):

7:58 AM Changeset in webkit [263089] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Subversion perl bindings unusable
https://bugs.webkit.org/show_bug.cgi?id=213241

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

  • buildstream/elements/sdk/subversion.bst: The svn swig perl library wasn't correctly

installed, leading to undefined symbols when importing it from the bindings. A new
integration command now tests this.

7:58 AM Changeset in webkit [263088] by commit-queue@webkit.org
  • 8 edits
    1 add
    1 delete in trunk/Tools

[Flatpak SDK] Update to Qt 5.15
https://bugs.webkit.org/show_bug.cgi?id=213192

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

The new patch comes from the upstream KDE SDK: https://github.com/KDE/flatpak-kde-runtime/tree/qt5.15lts/patch

  • buildstream/elements/qt5/qtbase.bst:
  • buildstream/elements/qt5/qtdeclarative.bst:
  • buildstream/elements/qt5/qtquickcontrols.bst:
  • buildstream/elements/qt5/qtquickcontrols2.bst:
  • buildstream/elements/qt5/qtwayland.bst:
  • buildstream/elements/qt5/qtx11extras.bst:
  • buildstream/patches/qtbase-make-sure-to-correctly-construct-base-platform-theme.patch: Added.
  • buildstream/patches/qtwayland-use-gnome-platform-theme-on-gnome-based-desktops.patch: Removed.
  • buildstream/project.conf:
7:57 AM Changeset in webkit [263087] by calvaris@igalia.com
  • 9 edits in trunk/Source/WebCore

[EME] Create CDMProxyFactory
https://bugs.webkit.org/show_bug.cgi?id=212695

Reviewed by Youenn Fablet.

Currently in the GStreamer port we have the CDMProxy cabled in the
player private and set to the instance. Setting this too late can
create key sync issues that are worked around. This does not seem
to be needed because it can be created in the constructor from a
CDMProxyFactory if we just use the key system that we already
have.

This patch declares a CDMProxyFactory that is used in the
CDMInstanceProxy to instantiate the proper CDMProxy in its
constructor.

CDMProxyFactoryClearKey is created and added to the GStreamer
platform CDMProxyFactories.

Initializing too fast creates flakyness in several ClearKey tests
because of asking for protected memory so we need to initialize it
in a lazy way.

No new tests, just a rework.

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::CDMProxyFactory::registerFactory):
(WebCore::CDMProxyFactory::unregisterFactory):
(WebCore::CDMProxyFactory::createCDMProxyForKeySystem):
(WebCore::CDMProxyFactory::platformRegisterFactories):

  • platform/encryptedmedia/CDMProxy.h:

(WebCore::CDMProxyFactory::~CDMProxyFactory):
(WebCore::CDMInstanceProxy::CDMInstanceProxy):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMInstanceClearKey::CDMInstanceClearKey):
(WebCore::CDMInstanceClearKey::keySystem const):

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

(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceAttached):

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

(WebCore::CDMProxyFactory::platformRegisterFactories):

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

(WebCore::CDMProxyFactoryClearKey::singleton):
(WebCore::CDMProxyFactoryClearKey::createCDMProxy):
(WebCore::CDMProxyFactoryClearKey::supportsKeySystem):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.h:
7:57 AM Changeset in webkit [263086] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase tables/mozilla_expected_failures/bugs/bug2479-5.html after the changes in https://trac.webkit.org/changeset/263073/webkit
https://bugs.webkit.org/show_bug.cgi?id=212856

Unreviewed test gardening.

  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
2:31 AM Changeset in webkit [263085] by Carlos Garcia Campos
  • 18 edits in trunk

[GTK][WPE] Add API to configure and enable resource load statistics
https://bugs.webkit.org/show_bug.cgi?id=177943

Reviewed by Michael Catanzaro.

Source/WebKit:

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_itp_directory):
(webkit_website_data_manager_set_itp_enabled):
(webkit_website_data_manager_get_itp_enabled):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):

Tools:

Add --enable-itp command line version to MiniBrowser and unit tests to check the new API.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):
(activate):

  • MiniBrowser/wpe/main.cpp:

(main):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):
(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(testWebsiteDataITP):
(beforeAll):

  • TestWebKitAPI/glib/TestExpectations.json:
  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(directoryChangedCallback):
(WebViewTest::waitUntilFileChanged):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
2:18 AM Changeset in webkit [263084] by youenn@apple.com
  • 3 edits
    2 adds in trunk

Make sure MediaRecorder.requestData returns data with the new writer backend
https://bugs.webkit.org/show_bug.cgi?id=206929

Reviewed by Darin Adler.

Source/WebCore:

Test: http/wpt/mediarecorder/MediaRecorder-requestData.html

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::fetchData):
Flush data whenever calling fetchData.

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-requestData-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-requestData.html: Added.
1:56 AM Changeset in webkit [263083] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r263029): [Flatpak SDK] Broke initial SDK installation

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-16
Rubber-stamped by Žan Doberšek.

  • flatpak/flatpakutils.py:

(FlatpakObject.version): Gracefully return an empty version when the flatpak info command
fails. This usually means the app has not been installed yet.

1:32 AM Changeset in webkit [263082] by mark.lam@apple.com
  • 6 edits in trunk

Add SIGABRT handler for non OS(DARWIN) builds to the jsc shell with the -s option.
https://bugs.webkit.org/show_bug.cgi?id=213200

Reviewed by Michael Catanzaro.

JSTests:

  • stress/ensure-crash.js:
  • unskip this test since expected crashes should now be handled on non-darwin builds.

Source/JavaScriptCore:

This is needed because non OS(DARWIN) builds uses abort as their "CRASH"ing
mechanism.

  • jsc.cpp:

(CommandLine::parseArguments):

Source/WTF:

  • wtf/threads/Signals.h:

(WTF::toSystemSignal):
(WTF::fromSystemSignal):

12:29 AM Changeset in webkit [263081] by Devin Rousso
  • 4 edits in trunk/LayoutTests

REGRESSION: [ Mac ] inspector/page/setBootstrapScript-sub-frame.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213087
<rdar://problem/64262900>

Reviewed by Maciej Stachowiak.

  • inspector/page/setBootstrapScript-sub-frame.html:
  • inspector/page/resources/bootstrap-iframe.html:
  • platform/mac/TestExpectations:
12:28 AM Changeset in webkit [263080] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=169572

Unreviewed.

  • platform/mac/TestExpectations:

Remove no longer needed expectation.

12:27 AM Changeset in webkit [263079] by commit-queue@webkit.org
  • 41 edits
    2 copies
    1 add in trunk

IndexedDB: Support IDBFactory databases method
https://bugs.webkit.org/show_bug.cgi?id=211043

Patch by Darryl Pogue <darryl@dpogue.ca> on 2020-06-16
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Adjust test expectations for IDBFactory.prototype.databases().

  • web-platform-tests/IndexedDB/get-databases.any-expected.txt:
  • web-platform-tests/IndexedDB/get-databases.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-databases-opaque-origin-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-origin-isolation-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:

Source/WebCore:

Add support for fetching the list of IDB database names and versions
from the IDBServer, and expose the functionality as
IDBFactory.prototype.databases().

Spec: https://w3c.github.io/IndexedDB/#dom-idbfactory-databases

  • Headers.cmake:
  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp: Added.

(WebCore::IDBDatabaseNameAndVersionRequest::create):
(WebCore::IDBDatabaseNameAndVersionRequest::IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::~IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::complete):
(WebCore::IDBDatabaseNameAndVersionRequest::activeDOMObjectName const):
(WebCore::IDBDatabaseNameAndVersionRequest::virtualHasPendingActivity const):
(WebCore::IDBDatabaseNameAndVersionRequest::stop):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h: Added.
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::databases):
(WebCore::IDBFactory::getAllDatabaseNames):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNames): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::getAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromFile): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h: Added.

(WebCore::IDBDatabaseNameAndVersion::encode const):
(WebCore::IDBDatabaseNameAndVersion::decode):
(WebCore::IDBDatabaseNameAndVersion::isolatedCopy const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/agents/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):

  • loader/EmptyClients.cpp:

Source/WebKit:

Plumbing for returning a list of IDB databases and versions.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames): Deleted.

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

(WebKit::WebIDBServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBServer::getAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

Source/WebKitLegacy:

Plumbing for returning a list of IDB databases and versions.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
(InProcessIDBServer::getAllDatabaseNames): Deleted.
(InProcessIDBServer::didGetAllDatabaseNames): Deleted.

  • Storage/InProcessIDBServer.h:
12:18 AM Changeset in webkit [263078] by Devin Rousso
  • 5 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/inspector/network/har/har-page.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207954
<rdar://problem/59599895>

Reviewed by Maciej Stachowiak.

  • http/tests/inspector/network/har/har-page.html:
  • http/tests/inspector/network/har/har-page-aggressive-gc.html:
  • http/tests/inspector/network/har/har-page-aggressive-gc-expected.txt:

Explicitly disable resource caching as the test reloads the page and expects resource load
metrics to be populated/valid.

  • platform/mac-wk2/TestExpectations:
12:15 AM Changeset in webkit [263077] by Diego Pino Garcia
  • 44 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update baselines after r263073.

  • platform/wpe/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/wpe/fast/css/line-height-expected.txt:
  • platform/wpe/fast/css/text-overflow-input-expected.txt:
  • platform/wpe/fast/events/context-no-deselect-expected.txt:
  • platform/wpe/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/wpe/fast/html/details-no-summary4-expected.txt:
  • platform/wpe/fast/html/details-open-javascript-expected.txt:
  • platform/wpe/fast/html/details-open2-expected.txt:
  • platform/wpe/fast/html/details-open4-expected.txt:
  • platform/wpe/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/wpe/fast/table/colspanMinWidth-expected.txt:
  • platform/wpe/fast/table/spanOverlapRepaint-expected.txt:
  • platform/wpe/fast/table/text-field-baseline-expected.txt:
  • platform/wpe/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/wpe/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/wpe/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/wpe/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/wpe/svg/hixie/mixed/003-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
  • platform/wpe/tables/mozilla/other/move_row-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/wpe/transforms/3d/general/perspective-non-layer-expected.txt:

Jun 15, 2020:

10:39 PM Changeset in webkit [263076] by ChangSeok Oh
  • 4 edits
    6 moves in trunk/Source/WebCore

[GTK] Rename GC3D to GCGL.
https://bugs.webkit.org/show_bug.cgi?id=211117

Reviewed by Fujii Hironori.

GraphicsContext3D has been renamed to GraphicsContextGL after r254103 but some files
still follow the old name. This change reflects the new name to them for consistency.

No new tests because of no new functionalities.

  • platform/TextureMapper.cmake:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp.

(Nicosia::GCGLANGLELayer::ANGLEContext::errorString):
(Nicosia::GCGLANGLELayer::ANGLEContext::lastErrorString):
(Nicosia::GCGLANGLELayer::ANGLEContext::createContext):
(Nicosia::GCGLANGLELayer::ANGLEContext::ANGLEContext):
(Nicosia::GCGLANGLELayer::ANGLEContext::~ANGLEContext):
(Nicosia::GCGLANGLELayer::ANGLEContext::makeContextCurrent):
(Nicosia::GCGLANGLELayer::ANGLEContext::platformContext const):
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::~GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::makeContextCurrent):
(Nicosia::GCGLANGLELayer::platformContext const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h.
  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp.

(Nicosia::GCGLLayer::GCGLLayer):
(Nicosia::GCGLLayer::~GCGLLayer):
(Nicosia::GCGLLayer::makeContextCurrent):
(Nicosia::GCGLLayer::platformContext const):
(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h.

(Nicosia::GCGLLayer::contentLayer const):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp.

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::~TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::makeContextCurrent):
(WebCore::TextureMapperGCGLPlatformLayer::platformContext const):
(WebCore::TextureMapperGCGLPlatformLayer::proxy const):
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded):
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h.
10:04 PM Changeset in webkit [263075] by Diego Pino Garcia
  • 4 edits
    1 delete in trunk/LayoutTests

[WPE] Unreviewed test gardening. Garden flaky failures after r263069.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt: Removed.
8:03 PM Changeset in webkit [263074] by commit-queue@webkit.org
  • 6 edits in trunk/Source

WTF signal machinery is guarded by #if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) but does not use pthreads or machine context
https://bugs.webkit.org/show_bug.cgi?id=213223

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-15
Reviewed by Mark Lam.

Source/JavaScriptCore:

Use #if OS(UNIX) here too. This should fix stress/ensure-crash.js when
HAVE(MACHINE_CONTEXT) is false.

  • jsc.cpp:

(printUsageStatement):
(CommandLine::parseArguments):

Source/WTF:

Use #if OS(UNIX) instead.

  • wtf/WTFConfig.h:
  • wtf/threads/Signals.cpp:
  • wtf/threads/Signals.h:
7:17 PM Changeset in webkit [263073] by Megan Gardner
  • 339 edits in trunk

Text form controls can scroll by 1px when value is the same length as size. No scrolling should happen.
https://bugs.webkit.org/show_bug.cgi?id=212856
<rdar://problem/63541707>

Reviewed by Zalan Bujtas.

Source/WebCore:

We were only adding caret width to an input when determining if the input should start to be scrolled,
but that additional width was not included in the initial calculation, which could result in fields being
scrollable by 1px when they had the same number of fixed-width characters as the size of the field. This was
incorrect, and caused fast/forms/password-scrolled-after-caps-lock-toggled.html to fail when the default size
of the security dots increased to be the same as the average character width. Adding the caret width when the
size of the input field is calculated brings consistency to when an input field is scrollable.

Tested by fixing:
fast/forms/password-scrolled-after-caps-lock-toggled.html

And rebasing:

  • editing/editable-region/overflow-scroll-text-field-and-contenteditable-expected.txt:
  • editing/editable-region/search-field-basic-expected.txt:
  • editing/editable-region/text-field-basic-expected.txt:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html:
  • fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html:
  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-contenteditable-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios-wk2/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios-wk2/fast/forms/textfield-outline-expected.txt:
  • platform/ios-wk2/fast/overflow/overflow-focus-ring-expected.txt:
  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/clip/outline-overflowClip-expected.txt:
  • platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/ios/fast/forms/search-input-rtl-expected.txt:
  • platform/ios/fast/forms/search-styled-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/mac-mojave/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/mac/editing/inserting/before-after-input-element-expected.txt:
  • platform/mac/editing/pasteboard/4806874-expected.txt:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/mac/editing/pasteboard/input-field-1-expected.txt:
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/editing/selection/4895428-3-expected.txt:
  • platform/mac/editing/selection/4975120-expected.txt:
  • platform/mac/editing/selection/drag-select-1-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/mac/fast/css/line-height-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/events/context-no-deselect-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/mac/fast/forms/encoding-test-expected.txt:
  • platform/mac/fast/forms/fieldset-align-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/input-align-expected.txt:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-focus-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
  • platform/mac/fast/forms/input-appearance-visibility-expected.txt:
  • platform/mac/fast/forms/input-appearance-width-expected.txt:
  • platform/mac/fast/forms/input-baseline-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-spaces-expected.txt:
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/fast/forms/input-text-click-inside-expected.txt:
  • platform/mac/fast/forms/input-text-click-outside-expected.txt:
  • platform/mac/fast/forms/input-text-double-click-expected.txt:
  • platform/mac/fast/forms/input-text-drag-down-expected.txt:
  • platform/mac/fast/forms/input-text-option-delete-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/mac/fast/forms/input-text-word-wrap-expected.txt:
  • platform/mac/fast/forms/input-type-text-min-width-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/input-width-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/mac/fast/forms/placeholder-position-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/mac/fast/forms/search-input-rtl-expected.txt:
  • platform/mac/fast/forms/search-styled-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/mac/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/mac/fast/forms/textfield-focus-ring-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/mac/fast/html/details-no-summary4-expected.txt:
  • platform/mac/fast/html/details-open-javascript-expected.txt:
  • platform/mac/fast/html/details-open2-expected.txt:
  • platform/mac/fast/html/details-open4-expected.txt:
  • platform/mac/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/mac/fast/repaint/search-field-cancel-expected.txt:
  • platform/mac/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/mac/fast/table/colspanMinWidth-expected.txt:
  • platform/mac/fast/table/spanOverlapRepaint-expected.txt:
  • platform/mac/fast/table/text-field-baseline-expected.txt:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/mac/svg/hixie/mixed/003-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/mac/tables/mozilla/dom/tableDom-expected.txt:
  • platform/mac/tables/mozilla/other/move_row-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/mac/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/win/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/win/editing/inserting/before-after-input-element-expected.txt:
  • platform/win/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/win/fast/events/context-no-deselect-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/win/fast/forms/basic-inputs-expected.txt:
  • platform/win/fast/forms/box-shadow-override-expected.txt:
  • platform/win/fast/forms/control-restrict-line-height-expected.txt:
  • platform/win/fast/forms/encoding-test-expected.txt:
  • platform/win/fast/forms/fieldset-align-expected.txt:
  • platform/win/fast/forms/form-element-geometry-expected.txt:
  • platform/win/fast/forms/input-align-expected.txt:
  • platform/win/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-disabled-expected.txt:
  • platform/win/fast/forms/input-appearance-focus-expected.txt:
  • platform/win/fast/forms/input-appearance-height-expected.txt:
  • platform/win/fast/forms/input-appearance-readonly-expected.txt:
  • platform/win/fast/forms/input-appearance-selection-expected.txt:
  • platform/win/fast/forms/input-appearance-visibility-expected.txt:
  • platform/win/fast/forms/input-appearance-width-expected.txt:
  • platform/win/fast/forms/input-baseline-expected.txt:
  • platform/win/fast/forms/input-disabled-color-expected.txt:
  • platform/win/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/win/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/win/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/win/fast/forms/input-readonly-empty-expected.txt:
  • platform/win/fast/forms/input-spaces-expected.txt:
  • platform/win/fast/forms/input-table-expected.txt:
  • platform/win/fast/forms/input-text-click-inside-expected.txt:
  • platform/win/fast/forms/input-text-click-outside-expected.txt:
  • platform/win/fast/forms/input-text-double-click-expected.txt:
  • platform/win/fast/forms/input-text-drag-down-expected.txt:
  • platform/win/fast/forms/input-text-option-delete-expected.txt:
  • platform/win/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/win/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/win/fast/forms/input-text-word-wrap-expected.txt:
  • platform/win/fast/forms/input-type-text-min-width-expected.txt:
  • platform/win/fast/forms/input-value-expected.txt:
  • platform/win/fast/forms/input-width-expected.txt:
  • platform/win/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/win/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/win/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/win/fast/forms/search-styled-expected.txt:
  • platform/win/fast/forms/search-vertical-alignment-expected.txt:
  • platform/win/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/win/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/win/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/win/fast/forms/textfield-focus-ring-expected.txt:
  • platform/win/fast/forms/textfield-outline-expected.txt:
  • platform/win/fast/forms/textfield-overflow-expected.txt:
  • platform/win/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/win/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/win/fast/html/details-no-summary4-expected.txt:
  • platform/win/fast/html/details-open-javascript-expected.txt:
  • platform/win/fast/html/details-open2-expected.txt:
  • platform/win/fast/html/details-open4-expected.txt:
  • platform/win/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/win/fast/table/colspanMinWidth-expected.txt:
  • platform/win/fast/table/spanOverlapRepaint-expected.txt:
  • platform/win/fast/table/text-field-baseline-expected.txt:
  • platform/win/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/win/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/win/svg/hixie/mixed/003-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/win/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/win/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/win/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/win/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/win/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/win/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/win/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/win/tables/mozilla/dom/tableDom-expected.txt:
  • platform/win/tables/mozilla/other/move_row-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::addOverflowFromInlineChildren):

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::endPaddingWidthForCaret const):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth const):

Tools:

Rebased to reflect new sizes.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • editing/editable-region/overflow-scroll-text-field-and-contenteditable-expected.txt:
  • editing/editable-region/search-field-basic-expected.txt:
  • editing/editable-region/text-field-basic-expected.txt:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html:
  • fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html:
  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-contenteditable-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios-wk2/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios-wk2/fast/forms/textfield-outline-expected.txt:
  • platform/ios-wk2/fast/overflow/overflow-focus-ring-expected.txt:
  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/clip/outline-overflowClip-expected.txt:
  • platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/ios/fast/forms/search-input-rtl-expected.txt:
  • platform/ios/fast/forms/search-styled-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/mac-mojave/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/mac/editing/inserting/before-after-input-element-expected.txt:
  • platform/mac/editing/pasteboard/4806874-expected.txt:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/mac/editing/pasteboard/input-field-1-expected.txt:
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/editing/selection/4895428-3-expected.txt:
  • platform/mac/editing/selection/4975120-expected.txt:
  • platform/mac/editing/selection/drag-select-1-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/mac/fast/css/line-height-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/events/context-no-deselect-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/mac/fast/forms/encoding-test-expected.txt:
  • platform/mac/fast/forms/fieldset-align-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/input-align-expected.txt:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-focus-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
  • platform/mac/fast/forms/input-appearance-visibility-expected.txt:
  • platform/mac/fast/forms/input-appearance-width-expected.txt:
  • platform/mac/fast/forms/input-baseline-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-spaces-expected.txt:
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/fast/forms/input-text-click-inside-expected.txt:
  • platform/mac/fast/forms/input-text-click-outside-expected.txt:
  • platform/mac/fast/forms/input-text-double-click-expected.txt:
  • platform/mac/fast/forms/input-text-drag-down-expected.txt:
  • platform/mac/fast/forms/input-text-option-delete-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/mac/fast/forms/input-text-word-wrap-expected.txt:
  • platform/mac/fast/forms/input-type-text-min-width-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/input-width-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/mac/fast/forms/placeholder-position-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/mac/fast/forms/search-input-rtl-expected.txt:
  • platform/mac/fast/forms/search-styled-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/mac/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/mac/fast/forms/textfield-focus-ring-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/mac/fast/html/details-no-summary4-expected.txt:
  • platform/mac/fast/html/details-open-javascript-expected.txt:
  • platform/mac/fast/html/details-open2-expected.txt:
  • platform/mac/fast/html/details-open4-expected.txt:
  • platform/mac/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/mac/fast/repaint/search-field-cancel-expected.txt:
  • platform/mac/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/mac/fast/table/colspanMinWidth-expected.txt:
  • platform/mac/fast/table/spanOverlapRepaint-expected.txt:
  • platform/mac/fast/table/text-field-baseline-expected.txt:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/mac/svg/hixie/mixed/003-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/mac/tables/mozilla/dom/tableDom-expected.txt:
  • platform/mac/tables/mozilla/other/move_row-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/mac/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/win/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/win/editing/inserting/before-after-input-element-expected.txt:
  • platform/win/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/win/fast/events/context-no-deselect-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/win/fast/forms/basic-inputs-expected.txt:
  • platform/win/fast/forms/box-shadow-override-expected.txt:
  • platform/win/fast/forms/control-restrict-line-height-expected.txt:
  • platform/win/fast/forms/encoding-test-expected.txt:
  • platform/win/fast/forms/fieldset-align-expected.txt:
  • platform/win/fast/forms/form-element-geometry-expected.txt:
  • platform/win/fast/forms/input-align-expected.txt:
  • platform/win/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-disabled-expected.txt:
  • platform/win/fast/forms/input-appearance-focus-expected.txt:
  • platform/win/fast/forms/input-appearance-height-expected.txt:
  • platform/win/fast/forms/input-appearance-readonly-expected.txt:
  • platform/win/fast/forms/input-appearance-selection-expected.txt:
  • platform/win/fast/forms/input-appearance-visibility-expected.txt:
  • platform/win/fast/forms/input-appearance-width-expected.txt:
  • platform/win/fast/forms/input-baseline-expected.txt:
  • platform/win/fast/forms/input-disabled-color-expected.txt:
  • platform/win/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/win/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/win/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/win/fast/forms/input-readonly-empty-expected.txt:
  • platform/win/fast/forms/input-spaces-expected.txt:
  • platform/win/fast/forms/input-table-expected.txt:
  • platform/win/fast/forms/input-text-click-inside-expected.txt:
  • platform/win/fast/forms/input-text-click-outside-expected.txt:
  • platform/win/fast/forms/input-text-double-click-expected.txt:
  • platform/win/fast/forms/input-text-drag-down-expected.txt:
  • platform/win/fast/forms/input-text-option-delete-expected.txt:
  • platform/win/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/win/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/win/fast/forms/input-text-word-wrap-expected.txt:
  • platform/win/fast/forms/input-type-text-min-width-expected.txt:
  • platform/win/fast/forms/input-value-expected.txt:
  • platform/win/fast/forms/input-width-expected.txt:
  • platform/win/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/win/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/win/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/win/fast/forms/search-styled-expected.txt:
  • platform/win/fast/forms/search-vertical-alignment-expected.txt:
  • platform/win/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/win/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/win/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/win/fast/forms/textfield-focus-ring-expected.txt:
  • platform/win/fast/forms/textfield-outline-expected.txt:
  • platform/win/fast/forms/textfield-overflow-expected.txt:
  • platform/win/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/win/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/win/fast/html/details-no-summary4-expected.txt:
  • platform/win/fast/html/details-open-javascript-expected.txt:
  • platform/win/fast/html/details-open2-expected.txt:
  • platform/win/fast/html/details-open4-expected.txt:
  • platform/win/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/win/fast/table/colspanMinWidth-expected.txt:
  • platform/win/fast/table/spanOverlapRepaint-expected.txt:
  • platform/win/fast/table/text-field-baseline-expected.txt:
  • platform/win/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/win/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/win/svg/hixie/mixed/003-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/win/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/win/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/win/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/win/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/win/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/win/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/win/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/win/tables/mozilla/dom/tableDom-expected.txt:
  • platform/win/tables/mozilla/other/move_row-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
6:46 PM Changeset in webkit [263072] by commit-queue@webkit.org
  • 19 edits
    24 adds in trunk

Web Inspector: introduce request interception
https://bugs.webkit.org/show_bug.cgi?id=207446

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-06-15
Reviewed by Devin Rousso.

Source/JavaScriptCore:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • inspector/protocol/Network.json:

Source/WebCore:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

Tests: http/tests/inspector/network/intercept-aborted-request.html

http/tests/inspector/network/intercept-request-continue.html
http/tests/inspector/network/intercept-request-fragment.html
http/tests/inspector/network/intercept-request-main-resource-with-response.html
http/tests/inspector/network/intercept-request-main-resource.html
http/tests/inspector/network/intercept-request-properties.html
http/tests/inspector/network/intercept-request-subresource-with-error.html
http/tests/inspector/network/intercept-request-subresource-with-response.html
http/tests/inspector/network/intercept-request-subresource.html
http/tests/inspector/network/intercept-request-with-response.html

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willInterceptImpl):
(WebCore::InspectorInstrumentation::shouldInterceptRequestImpl):
(WebCore::InspectorInstrumentation::interceptRequestImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willIntercept):
(WebCore::InspectorInstrumentation::shouldInterceptRequest):
(WebCore::InspectorInstrumentation::interceptRequest):

  • inspector/InspectorInstrumentationWebKit.cpp:

(WebCore::InspectorInstrumentationWebKit::shouldInterceptRequestInternal):
(WebCore::InspectorInstrumentationWebKit::interceptRequestInternal):

  • inspector/InspectorInstrumentationWebKit.h:

(WebCore::InspectorInstrumentationWebKit::shouldInterceptRequest):
(WebCore::InspectorInstrumentationWebKit::interceptRequest):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::disable):
(WebCore::InspectorNetworkAgent::shouldIntercept):
(WebCore::InspectorNetworkAgent::continuePendingRequests):
(WebCore::InspectorNetworkAgent::setInterceptionEnabled):
(WebCore::InspectorNetworkAgent::addInterception):
(WebCore::InspectorNetworkAgent::removeInterception):
(WebCore::InspectorNetworkAgent::willIntercept):
(WebCore::InspectorNetworkAgent::shouldInterceptRequest):
(WebCore::InspectorNetworkAgent::shouldInterceptResponse):
(WebCore::InspectorNetworkAgent::interceptRequest):
(WebCore::InspectorNetworkAgent::interceptContinue):
(WebCore::InspectorNetworkAgent::interceptWithRequest):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithError):

  • inspector/agents/InspectorNetworkAgent.h:

(WebCore::InspectorNetworkAgent::PendingInterceptRequest::PendingInterceptRequest):
(WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueWithOriginalRequest):
(WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueWithRequest):
(WebCore::InspectorNetworkAgent::Intercept::operator== const):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::preload):

Source/WebInspectorUI:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.addLocalResourceOverride):
(WI.NetworkManager.prototype.removeLocalResourceOverride):
(WI.NetworkManager.prototype.requestIntercepted):
(WI.NetworkManager.prototype.responseIntercepted):
(WI.NetworkManager.prototype._handleResourceOverrideDisabledChanged):

  • UserInterface/Protocol/NetworkObserver.js:

(WI.NetworkObserver.prototype.requestIntercepted):

Source/WebKit:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

LayoutTests:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • http/tests/inspector/network/intercept-aborted-request-expected.txt: Added.
  • http/tests/inspector/network/intercept-aborted-request.html: Added.
  • http/tests/inspector/network/intercept-request-continue-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-continue.html: Added.
  • http/tests/inspector/network/intercept-request-fragment-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-fragment.html: Added.
  • http/tests/inspector/network/intercept-request-main-resource-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-main-resource-with-response-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-main-resource-with-response.html: Added.
  • http/tests/inspector/network/intercept-request-main-resource.html: Added.
  • http/tests/inspector/network/intercept-request-properties-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-properties.html: Added.
  • http/tests/inspector/network/intercept-request-subresource-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-error-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-error.html: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-response-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-response.html: Added.
  • http/tests/inspector/network/intercept-request-subresource.html: Added.
  • http/tests/inspector/network/intercept-request-with-response-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-with-response.html: Added.
  • http/tests/inspector/network/resources/intercept-echo.php: Added.
  • http/tests/inspector/network/resources/intercept-request-overriden-page.html: Added.
  • http/tests/inspector/network/resources/intercept-request-overriden-script.js: Added.
  • http/tests/inspector/resources/protocol-test.js:
  • inspector/network/local-resource-override-continue-response.html:
  • inspector/network/resources/data-intercepted.json: Added.
  • platform/mac-wk1/TestExpectations:
6:26 PM Changeset in webkit [263071] by Tadeu Zagallo
  • 8 edits
    1 add in trunk

JSTests:
Bytecode liveness should be aware of checkpoints
https://bugs.webkit.org/show_bug.cgi?id=213106
<rdar://problem/63416838>

Reviewed by Keith Miller.

  • stress/iterator-open-checkpoint-liveness.js: Added.

(f):
(next):
(iterator):
(catch):

Source/JavaScriptCore:
op_iterator_open getNext checkpoint needs to declare it uses m_iterator
https://bugs.webkit.org/show_bug.cgi?id=213106
<rdar://problem/63416838>

Reviewed by Keith Miller.

Currently, we have no way of specifying that a checkpoint uses an operand defined at an earlier
point in the same bytecode, which is the case for op_iterator_open: we assume that it will have
already allocated the iterator and stored it in m_iterator by the time we get to the getNext
checkpoint. In order to support that, we change tmpLivenessForCheckpoint to livenessForCheckpoint
and allow it to also declare the use of the operands defined within the bytecode.

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::livenessForCheckpoint):
(JSC::tmpLivenessForCheckpoint): Deleted.

  • bytecode/BytecodeLivenessAnalysis.h:
  • bytecode/FullBytecodeLiveness.h:
  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:
6:23 PM Changeset in webkit [263070] by Alexey Shvayka
  • 3 edits
    3 adds in trunk

Expand JSObject::defineOwnIndexedProperty() fast path for existing properties
https://bugs.webkit.org/show_bug.cgi?id=213133

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/array-redefine-index-and-reverse.js: Added.
  • microbenchmarks/array-redefine-index.js: Added.
  • stress/define-own-indexed-property-fast-path.js: Added.

Source/JavaScriptCore:

This patch expands fast path of JSObject::defineOwnIndexedProperty() to cover existing properties
if given data descriptor has no falsy attributes, preventing the object from entering SparseMode.
The optimization is possible due to this invariant: indexed properties of non-SparseMode objects
have attributes of PropertyAttribute::None (except for typed arrays; added assert covers it).

PropertyDescriptor::attributesOverridingCurrent() with PropertyAttribute::None descriptor
is used to support partial descriptors like {value: 1, writable: true}.

This change advances Object.defineProperty microbenchmark by 35%; array read/write benchmark
following property redefinition is progressed by a factor of 16 due to avoiding SparseMode.

  • runtime/JSObject.cpp:

(JSC::JSObject::defineOwnIndexedProperty):

5:20 PM Changeset in webkit [263069] by Wenson Hsieh
  • 4 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] fast/forms/call-text-did-change-in-text-field-when-typing.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213218

Reviewed by Tim Horton.

UIHelper.typeCharacter is guaranteed to wait until the application in the UI process has dequeued the
synthesized key events, but is not necessarily guaranteed to wait until the web process is done handling the
key events. As a result, it's possible for this test to check the value of the text field in step (1) before the
event has been received, which causes the test to fail with a diff.

To fix this, wait for the key event to be handled (like we do for the synthetic click event below).

  • fast/forms/call-text-did-change-in-text-field-when-typing-expected.txt:
  • fast/forms/call-text-did-change-in-text-field-when-typing.html:
  • platform/ios-wk2/TestExpectations:
5:10 PM Changeset in webkit [263068] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

testB3::testReportUsedRegistersLateUseFollowedByEarlyDefDoesNotMarkUseAsDead() has a validation failure in debug mode
https://bugs.webkit.org/show_bug.cgi?id=196103
<rdar://problem/57808549>

Reviewed by Keith Miller.

The problem was trivial: patchpoints were referring to constants that were defined after them.
Just exchanging the order of the definition was enough to make this test pass.

  • b3/testb3_1.cpp:

(shouldRun):

  • b3/testb3_7.cpp:

(testReportUsedRegistersLateUseFollowedByEarlyDefDoesNotMarkUseAsDead):

4:00 PM Changeset in webkit [263067] by Jonathan Bedard
  • 3 edits in trunk/WebKitLibraries

watchOS/tvOS: Remote unneeded FileProvider symbols
https://bugs.webkit.org/show_bug.cgi?id=213216
<rdar://problem/64380232>

Reviewed by Alexey Proskuryakov.

  • WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd:
  • WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework/FileProvider.tbd:
3:34 PM Changeset in webkit [263066] by achristensen@apple.com
  • 2 edits in trunk/Tools

Follow-up fix: Make API tests tolerant of our relatively new use of WebPageProxy::preconnectTo
https://bugs.webkit.org/show_bug.cgi?id=213144
<rdar://problem/64316743>

Unreviewed build fix.

Patch by Jonathan Bedard <Jonathan Bedard> on 2020-06-15

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Guard didFinishNavigation declaration with HAVE(NETWORK_FRAMEWORK).
3:24 PM Changeset in webkit [263065] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r263045): TestWTF.Signals.SignalsWorkOnExit crashing
https://bugs.webkit.org/show_bug.cgi?id=213211

Reviewed by Mark Lam.

Don't call toMachMask on Signal::Usr as mach doesn't support user exceptions.

  • wtf/threads/Signals.cpp:

(WTF::SignalHandlers::add):

3:09 PM Changeset in webkit [263064] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] fast/forms/call-text-did-change-in-text-field-when-typing.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213218

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:03 PM Changeset in webkit [263063] by Russell Epstein
  • 1 copy in tags/Safari-609.3.4

Tag Safari-609.3.4.

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

Consistently use WTF_ATTRIBUTE_PRINTF in Assertions.[cpp,h]
https://bugs.webkit.org/show_bug.cgi?id=213204

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-15
Reviewed by Darin Adler.

Use WTF_ATTRIBUTE_PRINTF for all functions taking a printf format specifier. The first
argument should be the position of the format string itself (starting from 1), and the
second argument should be the position of the ... parameter pack, or 0 for functions that
take a va_list.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
2:36 PM Changeset in webkit [263061] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[macOS] Update sandboxes to reduce logging for media-related operations
https://bugs.webkit.org/show_bug.cgi?id=213210
<rdar://problem/64376237>

Reviewed by Per Arne Vollan.

Ongoing testing has uncovered a set of additional services and IOKit
properties that we should allow without logging.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:
2:17 PM Changeset in webkit [263060] by commit-queue@webkit.org
  • 20 edits in trunk

Provide alternatively-named SPI for user style sheets and scripts
https://bugs.webkit.org/show_bug.cgi?id=213206

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-15
Reviewed by Brady Eidson.

Source/WebKit:

Test-only SPI was just renamed.
SPI used by other projects was deprecated with a replacement so we can remove the old names soon.

_WKUserContentWorld/WKContentWorld was tied up in this, and rather than provide replacement SPI with deprecated _WKUserContentWorld,
this will move some SPI from _WKUserContentWorld to WKContentWorld too. The most heavy user of _WKUserContentWorld is TestWebKitAPI and we'll remove it soon.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetFontAllowList):
(WKContextSetFontWhitelist): Deleted.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController _removeAllUserScriptsAssociatedWithContentWorld:]):
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithContentWorld:]):
(-[WKUserContentController _addScriptMessageHandler:name:contentWorld:]):
(-[WKUserContentController _removeAllUserScriptsAssociatedWithUserContentWorld:]): Deleted.
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]): Deleted.

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:includeMatchPatternStrings:excludeMatchPatternStrings:associatedURL:contentWorld:deferRunningUntilNotification:]):

  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:includeMatchPatternStrings:excludeMatchPatternStrings:baseURL:level:contentWorld:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setFontAllowList):
(WebKit::WebProcessPool::setFontWhitelist): Deleted.

  • UIProcess/WebProcessPool.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(+[WebView _addOriginAccessAllowListEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
(+[WebView _removeOriginAccessAllowListEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
(+[WebView _resetOriginAccessAllowLists]):
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]):
(+[WebView _addUserScriptToGroup:world:source:url:includeMatchPatternStrings:excludeMatchPatternStrings:injectionTime:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:includeMatchPatternStrings:excludeMatchPatternStrings:injectedFrames:]):
(+[WebView _setFontAllowList:]):
(+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): Deleted.
(+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): Deleted.
(+[WebView _resetOriginAccessWhitelists]): Deleted.
(+[WebView _setFontWhitelist:]): Deleted.

  • WebView/WebViewPrivate.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(fontAllowList):
(createWebViewAndOffscreenWindow):
(resetWebViewToConsistentStateBeforeTesting):
(fontWhitelist): Deleted.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::addOriginAccessWhitelistEntry):
(TestRunner::removeOriginAccessWhitelistEntry):
(TestRunner::addUserScript):
(TestRunner::addUserStyleSheet):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:

(TEST):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::generateFontAllowList):
(WTR::TestController::platformInitializeContext):
(WTR::generateWhitelist): Deleted.

2:15 PM Changeset in webkit [263059] by commit-queue@webkit.org
  • 40 edits
    28 adds
    2 deletes in trunk/LayoutTests

Update WPT tests for FileAPI
https://bugs.webkit.org/show_bug.cgi?id=213198

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-15
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Import from 90446389b82ae924cdef637bca2dd99ece41160c

  • web-platform-tests/FileAPI/BlobURL/support/w3c-import.log:
  • web-platform-tests/FileAPI/FileReader/support/w3c-import.log:
  • web-platform-tests/FileAPI/FileReader/w3c-import.log:
  • web-platform-tests/FileAPI/FileReaderSync.worker-expected.txt:
  • web-platform-tests/FileAPI/FileReaderSync.worker.js:

(setup):
(test):

  • web-platform-tests/FileAPI/META.yml: Added.
  • web-platform-tests/FileAPI/OWNERS: Removed.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.js: Added.

(string_appeared_here.promise_test.async const):

  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.worker.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-constructor-endings.html:
  • web-platform-tests/FileAPI/blob/Blob-constructor.html:
  • web-platform-tests/FileAPI/blob/Blob-stream.any-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-stream.any.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-stream.any.js: Added.

(async read_all_chunks):
(promise_test.async const):
(promise_test):

  • web-platform-tests/FileAPI/blob/Blob-stream.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-stream.any.worker.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any.js: Added.

(string_appeared_here.promise_test.async const):

  • web-platform-tests/FileAPI/blob/Blob-text.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any.worker.html: Added.
  • web-platform-tests/FileAPI/blob/w3c-import.log:
  • web-platform-tests/FileAPI/file/File-constructor-endings.html:
  • web-platform-tests/FileAPI/file/File-constructor.html:
  • web-platform-tests/FileAPI/file/w3c-import.log:
  • web-platform-tests/FileAPI/filelist-section/support/w3c-import.log:
  • web-platform-tests/FileAPI/filelist-section/w3c-import.log:
  • web-platform-tests/FileAPI/idlharness.html:
  • web-platform-tests/FileAPI/idlharness.worker.js:
  • web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html:
  • web-platform-tests/FileAPI/reading-data-section/filereader_abort-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any-expected.txt: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.html: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.js: Added.

(promise_test.async t):

  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.worker.html: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL.html:
  • web-platform-tests/FileAPI/reading-data-section/filereader_result-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_result.html:
  • web-platform-tests/FileAPI/reading-data-section/support/w3c-import.log:
  • web-platform-tests/FileAPI/reading-data-section/w3c-import.log:
  • web-platform-tests/FileAPI/support/Blob.js:

(self.assert_equals_typed_array):
(test_blob): Deleted.

  • web-platform-tests/FileAPI/support/w3c-import.log:
  • web-platform-tests/FileAPI/url/cross-global-revoke.sub.html:
  • web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt:
  • web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html:
  • web-platform-tests/FileAPI/url/resources/revoke-helper.js:
  • web-platform-tests/FileAPI/url/resources/w3c-import.log:
  • web-platform-tests/FileAPI/url/sandboxed-iframe-expected.txt:
  • web-platform-tests/FileAPI/url/sandboxed-iframe.html:
  • web-platform-tests/FileAPI/url/url-format.any.js:
  • web-platform-tests/FileAPI/url/url-in-tags-revoke.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-in-tags-revoke.window.html: Added.
  • web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js:

(async_test.t.const.blob.new.Blob.window_contents_for_channel):

  • web-platform-tests/FileAPI/url/url-in-tags.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-in-tags.window.html: Added.
  • web-platform-tests/FileAPI/url/url-lifetime.html:
  • web-platform-tests/FileAPI/url/url-reload.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-reload.window.html: Added.
  • web-platform-tests/FileAPI/url/url-with-fetch.any.js:
  • web-platform-tests/FileAPI/url/url_xmlhttprequest-expected.txt: Removed.
  • web-platform-tests/FileAPI/url/w3c-import.log:
  • web-platform-tests/FileAPI/w3c-import.log:

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt: Added.
  • tests-options.json:
2:14 PM Changeset in webkit [263058] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mojave wk2 Release ] webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213212

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:59 PM Changeset in webkit [263057] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

Add SPI to preconnect to a server
https://bugs.webkit.org/show_bug.cgi?id=213109
<rdar://problem/64184412>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-15
Reviewed by Geoff Garen.

Source/WebKit:

Covered by API tests.

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

(-[WKWebView _preconnectToServer:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::preconnectTo):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1:59 PM Changeset in webkit [263056] by Caio Lima
  • 2 edits in trunk/JSTests

[ARMv7][MIPS][JSC] Skip check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js
https://bugs.webkit.org/show_bug.cgi?id=213208

Unreviewed Gardening.

  • stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:
12:59 PM Changeset in webkit [263055] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Do not install the VMTraps signal handler if Options::useJIT=false.
https://bugs.webkit.org/show_bug.cgi?id=212543
<rdar://problem/63772519>

Reviewed by Keith Miller.

VMTraps is only needed for JITted code. Hence, if the JIT is disabled, we should
set Options::usePollingTraps() to true to indicate that we won't be using VMTraps.

With this change, we no longer install any signal handling machinery if
Options::useJIT() is false.

Because we may still disable the JIT even if useJIT() is true (due to failure to
allocate JIT memory or a number of other factors), we will also add a check of
VM::canUseJIT() in initializeThreading(), and disable useJIT() if needed. Of
course, this also means we need to call Options::recomputeDependentOptions() to
make other options consistent with useJIT() being false.

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/Options.cpp:

(JSC::disableAllJITOptions):
(JSC::Options::recomputeDependentOptions):
(JSC::recomputeDependentOptions): Deleted.

  • runtime/Options.h:
  • runtime/VMTraps.cpp:

(JSC::VMTraps::initializeSignals):

  • tools/SigillCrashAnalyzer.cpp:

(JSC::SigillCrashAnalyzer::instance):

12:50 PM Changeset in webkit [263054] by keith_miller@apple.com
  • 19 edits
    1 add in trunk

CheckIsConstant should not use BadCache exit kind
https://bugs.webkit.org/show_bug.cgi?id=213141

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js: Added.

(foo.bar):

Source/JavaScriptCore:

The BadCache exit kind causes the OSR exit compilers to try to
update ArrayProfiles. This is just incorrect for CheckIsConstant
since the node's origin may not even have an
ArrayProfile... BadCache also strongly assumes the value it's
profiling is a cell, which is clearly not always the case for
CheckIsConstant.

CheckIsConstant now uses the BadConstantValue (BadValue conflicts
with macros exported by X11 on GTK) exit kind for all use kinds,
which is just a rename of BadCell. All existing places where we
can emit a CheckIsConstant already have a story for BadConstantValue.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeExitSiteData):

  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleModuleNamespaceLoad):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
(JSC::DFG::ByteCodeParser::handleCreateInternalFieldObject):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::isPseudoTerminal):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckIsConstant):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIsConstant):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckBadValue):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckBadCell): Deleted.

12:21 PM Changeset in webkit [263053] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Webkit Feature BigInt on webkit.org
https://bugs.webkit.org/show_bug.cgi?id=197546

Reviewed by Sam Weinig.

Add BigInt entry to JSC features.json.

  • features.json:
12:20 PM Changeset in webkit [263052] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

Add console logging to try and diagnose editing/deleting/ios/backspace-last-character.html
https://bugs.webkit.org/show_bug.cgi?id=213201
<rdar://problem/64165890>

Reviewed by Tim Horton.

Break the test down into more steps (namely, separate waiting for events from synthesizing key events), and add
a console log statement at each step.

  • editing/deleting/ios/backspace-last-character-expected.txt:
  • editing/deleting/ios/backspace-last-character.html:
12:07 PM Changeset in webkit [263051] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update expected results of flaky image failures.

The results of these flaky image failures have been actually ImageOnlyFailure for the last 4000 revisions.

  • platform/wpe/TestExpectations:
11:58 AM Changeset in webkit [263050] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove more stale flaky failures from test expectations.

  • platform/wpe/TestExpectations:
11:56 AM Changeset in webkit [263049] by keith_miller@apple.com
  • 20 edits in trunk

JIT thunks should work on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=213103

Reviewed by Saam Barati.

JSTests:

skip test on memory limited since it breaks on watch with JIT.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:

Source/JavaScriptCore:

This patch fixes various issues when running JSC on arm64_32 with
useJIT=1 and useBaselineJIT=0. In particular this patch makes the
following changes:

1) ScalePtr is now just part of the Scale enum and is set based on
the size of the address space.

2) MacroAssembler::*Ptr functions call 32/64 bit variants based on
Address space size rather than cpu architecture. Vetting of callsites
using Ptr as 64 will happen in future patches since it's hard to
comprehensively vet.

3) Add some missing variants of functions for when pointers are 32-bit.

4) Add a load/storeReg function that stores a full register regardless
of pointer size for storing/loading callee saves.

5) numberOfDFGCompiles should report a big number for
useBaselineJIT=0 as some tests fail by default if useBaselineJIT=0
but useJIT=1.

6) Assert BaseIndex has a scale of PtrSize or TimesOne (for pre-scaled
values) when passed to a load/storePtr function.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::timesPtr): Deleted.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::rotateRightPtr):
(JSC::MacroAssembler::loadPtr):
(JSC::MacroAssembler::loadPtrWithCompactAddressOffsetPatch):
(JSC::MacroAssembler::branchPtr):
(JSC::MacroAssembler::storePtr):
(JSC::MacroAssembler::shouldBlindDouble):
(JSC::MacroAssembler::moveDouble):
(JSC::MacroAssembler::store64):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::add32):
(JSC::MacroAssemblerARM64::signExtend32ToPtr):
(JSC::MacroAssemblerARM64::loadPtr):
(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::farJump):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::rotateRight32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::rotateRight32):

  • assembler/MacroAssemblerX86.h:
  • assembler/MacroAssemblerX86_64.h:
  • b3/B3LowerMacros.cpp:
  • b3/testb3_6.cpp:

(testInterpreter):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitAllocateVariableSized):
(JSC::AssemblyHelpers::restoreCalleeSavesFromEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToEntryFrameCalleeSavesBufferImpl):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::storeReg):
(JSC::AssemblyHelpers::loadReg):
(JSC::AssemblyHelpers::emitMaterializeTagCheckRegisters):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader32):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader64):
(JSC::AssemblyHelpers::emitPutToCallFrameHeader):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_enumerator_structure_pname):
(JSC::JIT::emit_op_enumerator_generic_pname):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • runtime/TestRunnerUtils.cpp:

(JSC::numberOfDFGCompiles):

Source/WebCore:

Refactor timesPtr() to ScalePtr.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasClasses):

11:52 AM Changeset in webkit [263048] by Diego Pino Garcia
  • 8 edits
    7 adds
    1 delete in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update baselines of flaky tests which were consistently failing for the last 4000 revisions.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/css/resize-corner-tracking-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-10-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-33-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-34-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
  • platform/wpe/security/block-test-expected.txt:
  • platform/wpe/svg/custom/non-scaling-stroke-expected.txt: Removed.
11:50 AM Changeset in webkit [263047] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, build fix for build without mach exceptions.

  • wtf/threads/Signals.cpp:

(WTF::SignalHandlers::add):
(WTF::addSignalHandler):

11:35 AM Changeset in webkit [263046] by caitp@igalia.com
  • 8 edits in trunk

[JSC] add machinery to disable JIT tiers when experimental features are enabled
https://bugs.webkit.org/show_bug.cgi?id=213193

Reviewed by Mark Lam.

JSTests:

  • stress/get-private-name.js:
  • stress/put-by-val-direct-addprivate.js:
  • stress/put-by-val-direct-putprivate.js:

Source/JavaScriptCore:

A new macro FOR_EACH_JSC_EXPERIMENTAL_OPTION() supplies flags indicating the supported
JIT tiers (or, in the future, other options) of a particular feature,
in an easy to understand format. These flags are then used to
recompute dependent feature flags.

This should simplify the incremental development of language features.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/OptionsList.h:
11:29 AM Changeset in webkit [263045] by keith_miller@apple.com
  • 14 edits in trunk

Signal handlers should have a two phase installation.
https://bugs.webkit.org/show_bug.cgi?id=213160

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • jsc.cpp:

(CommandLine::parseArguments):
(jscmain):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/VMTraps.cpp:
  • tools/SigillCrashAnalyzer.cpp:

(JSC::installCrashHandler):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::enableFastMemory):
(JSC::Wasm::prepareFastMemory):

  • wasm/WasmFaultSignalHandler.h:

Source/WebKit:

Put back old WASM fast memory installation.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Source/WTF:

LLDB does not like it when we single step while there are mach exception
handlers installed because LLDB suspends all the non-active threads.
With Mach exception handlers installed, the OS will send a mach message
to our exception handler port, which is different than the active thread.
When this happens, the combination of LLDB and the process JSC is in effectively
deadlock.

Under our new approach, we go back to only telling the OS we care about
these exceptions late but lock down the function pointers early. This way
processes that benefit from our exception handler code are easier to debug.

  • wtf/threads/Signals.cpp:

(WTF::addSignalHandler):
(WTF::activateSignalHandlersFor):
(WTF::installSignalHandler): Deleted.

  • wtf/threads/Signals.h:

Tools:

  • TestWebKitAPI/Tests/WTF/Signals.cpp:

(TEST):

10:51 AM Changeset in webkit [263044] by sihui_liu@apple.com
  • 5 edits in trunk

Text manipulation does not observe newly displayed element inside previously observed content
https://bugs.webkit.org/show_bug.cgi?id=213156

Reviewed by Darin Adler.

Source/WebCore:

Fix two issues:

  1. Some inserted nodes are marked as manipulated, but they are inserted because they get removed in the

replacement process, not because they are manipulated or in the range of item.

  1. TextManipulationController does not perform manipulation on an element if its ancestor is manipulated. This

means the newly inserted/displayed children of a manipulated element are ruled out for manipulation.

Test: TextManipulation.CompleteTextManipulationForNewlyDisplayedParagraph

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):
(WebCore::TextManipulationController::didCreateRendererForElement):
(WebCore::TextManipulationController::updateInsertions):
(WebCore::TextManipulationController::replace):
(WebCore::TextManipulationController::isInManipulatedElement): Deleted.

  • editing/TextManipulationController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

10:23 AM Changeset in webkit [263043] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix LLInt
https://bugs.webkit.org/show_bug.cgi?id=157972

loadi only takes address.

  • llint/LowLevelInterpreter64.asm:
10:05 AM Changeset in webkit [263042] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r262904): [ Mac wk1 Debug ] media/remoteplayback-target-availability.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213146

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:44 AM Changeset in webkit [263041] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Suppress compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=213034

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-06-15
Reviewed by Darin Adler.

Source/WebCore:

Use PRIu64 formatter for uint64_t instead of %llu.

No functional changes.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):

Source/WebKit:

Convert to std:size_t to compare equal data types.

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::readOrMakeSalt):

9:42 AM Changeset in webkit [263040] by ChangSeok Oh
  • 3 edits in trunk/Source/WebCore

[GTK] Use GRefPtr for ManetteMonitor
https://bugs.webkit.org/show_bug.cgi?id=213094

Reviewed by Carlos Garcia Campos.

We should use GRefPtr for ManetteMonitor, but not GUniquePtr. Because it is a gobject instance.

No new tests because of no functionality changed.

  • platform/gamepad/manette/ManetteGamepadProvider.h:
8:57 AM Changeset in webkit [263039] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Pack bytes a little tighter in MemoryPressureHandler
https://bugs.webkit.org/show_bug.cgi?id=200392

Reviewed by Yusuke Suzuki.

Save a tiny bit of memory by packing member variables tighter in MemoryPressureHandler.

  • wtf/MemoryPressureHandler.h:
8:44 AM Changeset in webkit [263038] by Chris Dumez
  • 13 edits
    2 adds in trunk/Source/WebKit

Revert r260856 as it seems to have regressed PLT on iOS
https://bugs.webkit.org/show_bug.cgi?id=213194
<rdar://problem/64331458>

Unreviewed, revert r260856 due to regression.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebSQLiteDatabaseTracker.cpp: Added.

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::~WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::setIsSuspended):
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction):
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction):
(WebKit::WebSQLiteDatabaseTracker::setIsHoldingLockedFiles):

  • Shared/WebSQLiteDatabaseTracker.h: Added.
  • SourcesCocoa.txt:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::processDidResume):

  • WebProcess/WebProcess.h:
8:39 AM Changeset in webkit [263037] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ iOS wk2 and Mac wk2 ] imported/w3c/web-platform-tests/fetch/stale-while-revalidate/frame-removal.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209281

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:59 AM Changeset in webkit [263036] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] inspector/canvas/create-context-webgpu.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213123

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:42 AM Changeset in webkit [263035] by Alexey Shvayka
  • 42 edits
    2 adds in trunk

super should not depend on proto
https://bugs.webkit.org/show_bug.cgi?id=157972

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/object-get-prototype-of-primitive.js: Added.
  • stress/class-syntax-derived-default-constructor.js:
  • stress/get-prototype-of.js: Added.
  • stress/super-property-access.js:
  • test262/expectations.yaml: Mark 4 test cases as passing.

Source/JavaScriptCore:

Before this change, both super() call [1] and super.property [2] relied on
Object.prototype.proto to acquire super base, which was observable and
incorrect if proto gets removed.

This patch introduces get_prototype_of bytecode, ensuring returned values
are profiled so the op can be wired to existing DFG and FTL implementations.
In order to avoid performance regression w/o DFG (proto is optimized via
IntrinsicGetterAccessCase), fast paths for LLInt and baseline JIT are added
(64-bit only), utilizing OverridesGetPrototypeOutOfLine type info flag.

This change aligns JSC with V8 and SpiderMonkey, progressing microbenchmarks/
super-get-by-{id,val}-with-this-monomorphic.js by 7-10%. SixSpeed is neutral.

Also, extracts JSValue::getPrototype() method to avoid code duplication and
utilizes it in objectConstructorGetPrototypeOf(), advancing provided
microbenchmark by 40%.

[1]: https://tc39.es/ecma262/#sec-getsuperconstructor (step 5)
[2]: https://tc39.es/ecma262/#sec-getsuperbase (step 5)

  • builtins/BuiltinNames.h:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/Opcode.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetPrototypeOf):

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

(JSC::emitSuperBaseForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getPrototypeOf):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGOperations.cpp:
  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_prototype_of):

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

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::getPrototype const):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoGetter):

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):

  • runtime/JSObject.h:

(JSC::JSObject::getPrototype):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

  • runtime/JSProxy.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::overridesGetPrototype const):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetPrototypeOf):

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

(JSC::Structure::validateFlags):

Source/WebCore:

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Set OverridesGetPrototype structure flag for CustomGetPrototype IDL attribute.

6:39 AM Changeset in webkit [263034] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove stale flaky text and image failures from test expectations.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt: Added.
5:25 AM Changeset in webkit [263033] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove stale flaky timeout failures from test expectations.

  • platform/wpe/TestExpectations:
4:14 AM Changeset in webkit [263032] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools

[Flatpak SDK] Bump Subversion and enable Perl bindings
https://bugs.webkit.org/show_bug.cgi?id=213189

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

  • buildstream/elements/sdk-build-depends/swig.bst: Added.
  • buildstream/elements/sdk/subversion.bst: Enable Perl bindings so that git svn can be used within the sandbox.
3:33 AM Changeset in webkit [263031] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] ImageDecoder hits Debug ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=213178

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Xabier Rodriguez-Calvar.

Pass a reference of the decoder to its inner implementation instead of a WeakPtr, which
can't be used across multiple threads.

Covered by fast/images/animated-image-mp4{,-crash}.html tests.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
3:04 AM Changeset in webkit [263030] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after 263019.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
2:31 AM Changeset in webkit [263029] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] flatpak update still not displayed
https://bugs.webkit.org/show_bug.cgi?id=213180

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

Added a new --version option to the script. We no longer gather the flatpak update command
output to know if something was updated or not. Instead we get the version of the SDK prior
to the update operation and compare that with the version after the update.

  • flatpak/flatpakutils.py:

(FlatpakObject.version):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.main):

2:27 AM Changeset in webkit [263028] by Carlos Garcia Campos
  • 14 edits
    4 adds in trunk

[GTK][WPE] Add API to expose UIClient::requestStorageAccessConfirm
https://bugs.webkit.org/show_bug.cgi?id=210422

Reviewed by Michael Catanzaro.

Source/WebKit:

Add WebKitWebsiteDataAccessPermissionRequest to ask for permission to the user using the existing permission
request API.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitUIClient.cpp:
  • UIProcess/API/glib/WebKitWebsiteDataAccessPermissionRequest.cpp: Added.

(webkitWebsiteDataAccessPermissionRequestAllow):
(webkitWebsiteDataAccessPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitWebsiteDataAccessPermissionRequestDispose):
(webkit_website_data_access_permission_request_class_init):
(webkitWebsiteDataAccessPermissionRequestCreate):
(webkit_website_data_access_permission_request_get_requesting_domain):
(webkit_website_data_access_permission_request_get_current_domain):

  • UIProcess/API/glib/WebKitWebsiteDataAccessPermissionRequestPrivate.h: Added.
  • UIProcess/API/gtk/WebKitWebsiteDataAccessPermissionRequest.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/WebKitWebsiteDataAccessPermissionRequest.h: Added.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
  • UIProcess/API/wpe/webkit.h:

Tools:

Handle WebKitWebsiteDataAccessPermissionRequest in MiniBrowser.

  • MiniBrowser/gtk/BrowserTab.c:

(decidePermissionRequest):

2:20 AM Changeset in webkit [263027] by commit-queue@webkit.org
  • 9 edits
    3 adds
    5 deletes in trunk/Tools

[Flatpak SDK] Add libavif
https://bugs.webkit.org/show_bug.cgi?id=212964
<rdar://problem/64291035>

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

Because of the ABI bump of dav1d, which ffmpeg depends on, ffmpeg needs to be rebuilt. So
this is a good opportunity to include it in the SDK and not rely on the ffmpeg-full
extension anymore, because it doesn't provide debug symbols.

  • buildstream/elements/flatpak/platform.bst:
  • buildstream/elements/flatpak/sdk.bst:
  • buildstream/elements/freedesktop-sdk.bst:
  • buildstream/elements/sdk-platform.bst:
  • buildstream/elements/sdk/ffmpeg.bst: Added.
  • buildstream/elements/sdk/gst-libav.bst:
  • buildstream/elements/sdk/libavif.bst: Added.
  • buildstream/elements/sdk/ruby-highline.bst: Remove the spec source, un-needed.
  • buildstream/patches/fdo/0001-dav1d-Bump-to-0.7.0.patch: Added.
  • buildstream/patches/fdo/0001-ffmpeg-Add-MS-MPEG-DivX-variants.patch: Removed.
  • buildstream/patches/fdo/0002-ffmpeg-Add-VP6-and-Sorenson-Spark-video-codecs.patch: Removed.
  • buildstream/patches/fdo/0003-ffmpeg-Add-Intel-Indeo-and-Cinepak-video-support.patch: Removed.
  • buildstream/patches/fdo/0004-ffmpeg-Add-MPEG-2-video-decoder.patch: Removed.
  • buildstream/patches/fdo/0005-ffmpeg-Add-msmpeg4v3-support.patch: Removed.
  • buildstream/project.conf:
  • flatpak/flatpakutils.py:

(WebkitFlatpak._get_packages):

2:19 AM Changeset in webkit [263026] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

Simplify MediaRecorderPrivateWriterCocoa threading logic
https://bugs.webkit.org/show_bug.cgi?id=213126

Reviewed by Eric Carlson.

Always hop to the main thread when receiving compressed samples.
This makes the threading model simpler and pushing enqueued samples in the writer is not very performance sensitive.

Add handling of the special case of video samples being pushed but no compressed sample is yet produced.
In that case, when stopping recording, the samples will be pushed and we will start the writer.

Minor refactoring to remove some unnecessary checks and make sure some of the member fields gets initialized in their declaration.
Covered by existing tests.

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::compressedVideoOutputBufferCallback):
(WebCore::MediaRecorderPrivateWriter::compressedAudioOutputBufferCallback):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::stopRecording):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):

2:13 AM Changeset in webkit [263025] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a quirk to allow starting AudioContext if document was interacted
https://bugs.webkit.org/show_bug.cgi?id=213118

Reviewed by Eric Carlson.

Manually tested on bing.com.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::isDocumentAllowingAutoplayWebAudio):
(WebCore::AudioContext::willBeginPlayback):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAutoplayWebAudioForArbitraryUserGesture const):

  • page/Quirks.h:
2:09 AM Changeset in webkit [263024] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Remove webkit-build-directory dependency from flatpakutils
https://bugs.webkit.org/show_bug.cgi?id=213179

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

This makes webkit-flatpak usable without installing additional perl modules (version) on the host OS.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args): Make --release and --debug mutually exclusive, and default to Release builds.
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args): No need to pull in webkitpy which pulls webkitdirs.pm only to
determine the default configuration. Assume we use Release by default.

1:57 AM Changeset in webkit [263023] by Paulo Matos
  • 2 edits in trunk/Tools

Properly propagate TZ to the remote test devices
https://bugs.webkit.org/show_bug.cgi?id=212816

Reviewed by Philippe Normand.

  • Scripts/run-jsc-stress-tests:
1:35 AM Changeset in webkit [263022] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Move textFromUTF8() to TextResourceDecoder from FetchBodyConsumer
https://bugs.webkit.org/show_bug.cgi?id=213170

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-15
Reviewed by Youenn Fablet.

This function abstracts https://encoding.spec.whatwg.org/#utf-8-decode
so I think it's better to place to TextResourceDecoder.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::takeAsText):

  • loader/TextResourceDecoder.cpp:

(WebCore::shouldPrependBOM):
(WebCore::TextResourceDecoder::textFromUTF8):

  • loader/TextResourceDecoder.h:
1:17 AM Changeset in webkit [263021] by Russell Epstein
  • 5 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262962. rdar://problem/64316002

FileInputType should use WeakPtr for FileListCreator lambdas
https://bugs.webkit.org/show_bug.cgi?id=213130
<rdar://problem/64276591>

Reviewed by David Kilzer.

FileInputType::filesChosen was passing a completion handler to FileListCreator::create that
captured |this|. If the FileListCreator instance still existed when |this| was destroyed,
FileInputType::~FileInputType would clear the captured |this| by calling
FileListCreator::clear. This can be simplified by having the FileListCreator completion
handler capture a WeakPtr to |this|.

Also, when FileInputType::allowsDirectories is false, m_fileListCreator would not be
properly cleared after creating the file list. The FileListCreator completion handler would
set m_fileListCreator to nullptr, but would be executed *before* FileListCreator::create
returned and set m_fileListCreator to the newly-created FileListCreator object. Fixed this
by having FileListCreator::create execute the completion handler immediately and return
nullptr in cases where a FileListCreator does not need to be created for directory
resolution.

Covered by existing tests.

  • html/FileInputType.cpp: (WebCore::FileInputType::~FileInputType): (WebCore::FileInputType::filesChosen):
  • html/FileInputType.h:
  • html/FileListCreator.cpp: (WebCore::createFileList): (WebCore::FileListCreator::create): (WebCore::FileListCreator::FileListCreator): (WebCore::FileListCreator::createFileList):
  • html/FileListCreator.h: (WebCore::FileListCreator::create): Deleted.

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

1:12 AM Changeset in webkit [263020] by Russell Epstein
  • 8 edits
    7 adds in branches/safari-609-branch

Cherry-pick r262918. rdar://problem/64315999

[iOS] nullptr deref in FileInputType::iconLoaded when the input's type attribute is modified by a change event listener
https://bugs.webkit.org/show_bug.cgi?id=208244
<rdar://problem/41855350>

Reviewed by Wenson Hsieh.

Source/WebCore:

When an <input> element's type attribute changes, its existing InputType is detached from
the HTMLInputElement by nulling InputType::m_element. When FileInputType::filesChosen is
called, it dispatches the input and change events, which can run arbitrary JavaScript that
might modify the element's type attribute. If this happens, FileInputType::m_element will be
null after returning from FileInputType::setFiles and if there is an icon will be
dereferenced by FileInputType::iconLoaded.

Fixed this by checking for a non-null m_element before calling iconLoaded. While here, also
fixed a bug where we sometimes checked the length of m_fileList before FileListCreator had
finished setting m_fileList. This bug resulted in missing file icons whenever an
<input type=file> had the webkitdirectory attribute.

Tests: fast/forms/file/file-input-type-detached-on-change.html

fast/forms/file/file-input-webkitdirectory-icon.html

  • html/FileInputType.cpp: (WebCore::FileInputType::filesChosen):

Tools:

  • DumpRenderTree/TestRunner.cpp: (SetOpenPanelFilesMediaIconCallback): (TestRunner::staticFunctions):
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setOpenPanelFilesMediaIcon):

LayoutTests:

  • fast/forms/file/file-input-type-detached-on-change-expected.txt: Added.
  • fast/forms/file/file-input-type-detached-on-change.html: Added.
  • fast/forms/file/file-input-webkitdirectory-icon-expected.html: Added.
  • fast/forms/file/file-input-webkitdirectory-icon.html: Added.
  • fast/forms/file/file-reset-in-change-using-open-panel-with-icon.html:
  • fast/forms/file/open-file-panel-crash.html:
  • fast/forms/file/resources/file-icon-bytes.js: Added.

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

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

MediaRecorder should not be collectable when fetching data from its backend
https://bugs.webkit.org/show_bug.cgi?id=213121

Reviewed by Eric Carlson.

Take a pending activity when fetching data since we might want dispatch an event when receiving the fetch data.
Covered by existing tests no longer crashing in debug.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::requestData):

Note: See TracTimeline for information about the timeline view.