Timeline



Jan 10, 2020:

10:54 PM Changeset in webkit [254393] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Flush old tables in End phase
https://bugs.webkit.org/show_bug.cgi?id=206120
<rdar://problem/58039989>

Reviewed by Mark Lam.

JSTests:

  • stress/create-many-realms.js: Added.

(foo):

Source/JavaScriptCore:

stopThePeriphery is stopping compiler threads and main thread (mutator), which means making m_worldIsStopped = true.
It is not for stopping all heap threads including a concurrent marker. The concurrent collector can work while executing
stopThePeriphery. This means that concurrent collectors can access to the old StructureIDTable while it is destroyed
in stopThePeriphery. Destroying old StructureIDTable in GC End phase, this is appropriate phase that we can ensure no
other threads (accessing to heap) are working including concurrent markers, mutator, and compiler threads.

  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):
(JSC::Heap::stopThePeriphery):

9:32 PM Changeset in webkit [254392] by eric.carlson@apple.com
  • 23 edits in trunk

[Media in GPU process] Extend the GPU process sandbox to allow access to local files when necessary
https://bugs.webkit.org/show_bug.cgi?id=205967
<rdar://problem/58425020>

Reviewed by youenn fablet.

Source/WebKit:

No new tests, un-skipped existing tests that pass because of this change.

The GPU process sandbox does not allow access to local files so extend it before
attempting to open a file:// url, and revoke the extension when the file is closed.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::load):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::load):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::openGPUProcessConnection):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::setAuditToken):
(WebKit::GPUProcessConnection::auditToken const):

  • WebProcess/GPU/GPUProcessConnectionInfo.h:

(WebKit::GPUProcessConnectionInfo::encode const):
(WebKit::GPUProcessConnectionInfo::decode):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::prepareToPlay):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setPreservesPitch):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::setPreload):
(WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode):
(WebKit::MediaPlayerPrivateRemote::seek):
(WebKit::MediaPlayerPrivateRemote::seekWithTolerance):
(WebKit::MediaPlayerPrivateRemote::prepareForRendering):
(WebKit::MediaPlayerPrivateRemote::setSize):
(WebKit::MediaPlayerPrivateRemote::setVisible):
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep):
(WebKit::MediaPlayerPrivateRemote::requestResource):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp:

(WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(WebKit::RemoteMediaPlayerManager::originsInMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnection const):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:

(WebKit::RemoteMediaPlayerManager::parentProcess const):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureGPUProcessConnection):

LayoutTests:

  • gpu-process/TestExpectations:
8:57 PM Changeset in webkit [254391] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043

Temporarily mark the navigator-language tests as flakey until I can figure out what to do with them.

Unreviewed.

  • platform/mac/TestExpectations:
7:17 PM Changeset in webkit [254390] by Alexey Shvayka
  • 4 edits in trunk

Object.keys should throw if called on module namespace object with uninitialized binding
https://bugs.webkit.org/show_bug.cgi?id=205983

Reviewed by Yusuke Suzuki.

JSTests:

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

Source/JavaScriptCore:

If JSModuleNamespaceObject::getOwnPropertyNames method is called by
Object.keys or for/in loop, it should invoke GetOwnProperty? on
every binding so a ReferenceError is thrown if the binding is uninitialized.

Complete call stack of internal methods and abstract ops is in "info" meta of
JSTests/test262/test/language/module-code/namespace/internals/object-keys-binding-uninit.js

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::getOwnPropertyNames):

7:05 PM Changeset in webkit [254389] by mmaxfield@apple.com
  • 11 edits
    41 adds
    1 delete in trunk

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043
Source/WTF:

<rdar://problem/44119496>

Reviewed by Dean Jackson.

We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
in this way.

Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
minimize the entropy revealed.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Language.h:
  • wtf/Platform.h:
  • wtf/PlatformMac.cmake:
  • wtf/cf/LanguageCF.cpp:

(WTF::httpStyleLanguageCode):
(WTF::platformUserPreferredLanguages):

  • wtf/cocoa/LanguageCocoa.mm: Added.

(WTF::minimizedLanguagesFromLanguages):

  • wtf/spi/cocoa/NSLocaleSPI.h: Added.

Tools:

Reviewed by Dean Jackson.

Migrate system language tests to LayoutTests, to match the rest of our system language tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Removed.

LayoutTests:

<rdar://problem/44119496>

Reviewed by Dean Jackson.

Migrate and update tests from TestWebKitAPI to LayoutTests, to match the rest of our system language tests.

  • platform/mac/TestExpectations: Mark these tests as possibly failing on older versions of macOS.
  • fast/text/international/system-language/navigator-language/navigator-language-en-GB-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-GB.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-US.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-419.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-hi.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ja.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ru.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html: Added.
  • js/dom/navigator-language-expected.txt:
6:49 PM Changeset in webkit [254388] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] TableFormattingContext::layoutTableCellBox should take HorizontalConstraints
https://bugs.webkit.org/show_bug.cgi?id=206075
<rdar://problem/58483791>

Reviewed by Antti Koivisto.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
6:32 PM Changeset in webkit [254387] by jer.noble@apple.com
  • 10 edits
    1 add in trunk

[iOS] Audio from non-frontmost tab continues when app is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=206101
<rdar://problem/58089916>

Reviewed by Eric Carlson.

Source/WebKit:

Tests: WKWebViewPausePlayingAudioTests.InWindow

WKWebViewPausePlayingAudioTests.OutOfWindow

The ApplicationStateTracker will only send notifications about application state to
WebPageProxies when those proxies' views are actually in-window. Add a separate application
state observer strictly for media which fires only when application state notifications are
received while the view is not in-window.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView _applicationDidEnterBackground:]):
(-[WKContentView _applicationWillEnterForeground:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackgroundForMedia):
(WebKit::WebPageProxy::applicationWillEnterForegroundForMedia):

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

(WebKit::WebPage::applicationDidEnterBackgroundForMedia):
(WebKit::WebPage::applicationWillEnterForegroundForMedia):

Tools:

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

(TestWebKitAPI::autoplayingConfiguration):
(TestWebKitAPI::TEST):

5:52 PM Changeset in webkit [254386] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Make http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins* use resource/util.js
https://bugs.webkit.org/show_bug.cgi?id=206100
<rdar://problem/58492335>

Unreviewed test gardening.

  • http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
  • http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:

These two tests now use setEnableFeature() in resources/util.js which makes sure
testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned() is called with
false before ending the test.

5:29 PM Changeset in webkit [254385] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

3 editing/spelling test failures on Mojave Release WK1
https://bugs.webkit.org/show_bug.cgi?id=206071

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Update test expectations to disable failing tests.
5:27 PM Changeset in webkit [254384] by Simon Fraser
  • 16 edits in trunk/Source

Introduce ENABLE_META_VIEWPORT and use it in some WK2 code
https://bugs.webkit.org/show_bug.cgi?id=206091

Reviewed by Tim Horton.
Source/WebCore:

didDispatchViewportPropertiesChanged() is used for a Coordinated Graphics assertion, so
should be #if ASSERT_ENABLED rather than #ifndef NDEBUG.

  • dom/Document.cpp:

(WebCore::Document::updateViewportArguments):
(WebCore::Document::suspend):

  • dom/Document.h:

Source/WebKit:

Use ENABLE(META_VIEWPORT) rather than PLATFORM(IOS_FAMILY) to enable various
bits of viewport-related code.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ViewportArguments>::decode):
(IPC::ArgumentCoder<ViewportAttributes>::encode):
(IPC::ArgumentCoder<ViewportAttributes>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetIgnoresViewportScaleLimits):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

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

(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::viewportConfiguration const):

Source/WTF:

Define ENABLE_META_VIEWPORT for iOS.

  • wtf/FeatureDefines.h:
5:06 PM Changeset in webkit [254383] by Jonathan Bedard
  • 6 edits in trunk

Python3: Support Source/WebKit/Scripts/webkit
https://bugs.webkit.org/show_bug.cgi?id=206078

Reviewed by Stephanie Lewis.

Source/WebKit:

Covered by existing unit tests.

  • Scripts/webkit/LegacyMessages-expected.h: Sort forward declarations.
  • Scripts/webkit/Messages-expected.h: Ditto.
  • Scripts/webkit/messages.py: Sort printed outputs.

Tools:

  • Scripts/test-webkitpy-python3: Call test-webkitpy with Python 3 since

everything is now compatible.

4:48 PM Changeset in webkit [254382] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkit-patch crashes when creating new bug with Python 3
https://bugs.webkit.org/show_bug.cgi?id=205911

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(BugzillaQueries.is_invalid_bugzilla_email): Decode page before applying regex.
(Bugzilla.authenticate): Decode group before printing.
(Bugzilla._parse_attachment_id_from_add_patch_to_bug_response): Ensure HTML response
Is a string before applying the regex.
(Bugzilla._check_create_bug_response): Ditto.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: Attachment ID should be a string,

not a byte array.

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

[iOS] Remove reporting for some well-understood sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=206111

Reviewed by Per Arne Vollan.

Remove sandbox rules designed to generate reporting about resource use for some well-understood
items that are frequently hit in WebKit use.

No new tests. No change in behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:32 PM Changeset in webkit [254380] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Add missing escape reason to BlockFormattingContext::Quirks::stretchedInFlowHeight
https://bugs.webkit.org/show_bug.cgi?id=206076
<rdar://problem/58483919>

Reviewed by Antti Koivisto.

This is also a valid formatting context escape.

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

4:21 PM Changeset in webkit [254379] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove used media-related mach services from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206089
<rdar://problem/58489478>

Reviewed by Per Arne Vollan.

After conducting multiple test passes and large-scale living-on testing with telemetry, we have
confirmed that the following XPC services are not used by the media logic in WebKit, and can be
removed:

com.apple.coremedia.cpeprotector.xpc
com.apple.coremedia.figcontentkeysession.xpc
com.apple.coremedia.routingsessionmanager.xpc
com.apple.coremedia.sts

Source/WebKit:

Test: fast/sandbox/ios/sandbox-mach-lookup.html

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
4:13 PM Changeset in webkit [254378] by Antti Koivisto
  • 7 edits
    2 adds in trunk

[LFC][Integration] Update style for layout boxes
https://bugs.webkit.org/show_bug.cgi?id=206074

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/css/simple-color-change.html

For simple style changes we may keep the existing layout boxes. In this case we need to update the style.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateStyle):

Update style in layout boxes.

(WebCore::LayoutIntegration::LineLayout::rootLayoutBox):

  • layout/integration/LayoutIntegrationLineLayout.h:

Make root non-const.

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::nextSibling):

  • layout/layouttree/LayoutContainer.h:

Expose non-const accessors.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

Invoke LineLayout::updateStyle

LayoutTests:

  • fast/css/simple-color-change-expected.html: Added.
  • fast/css/simple-color-change.html: Added.
4:01 PM Changeset in webkit [254377] by Alan Coon
  • 1 copy in tags/Safari-608.5.11

Tag Safari-608.5.11.

4:00 PM Changeset in webkit [254376] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove 'com.apple.awdd' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206095
<rdar://problem/56871147>

Reviewed by Per Arne Vollan.

We no longer need access to 'com.apple.awdd' in the iOS WebContent sandbox. We should remove
it from the sandbox.

Source/WebKit:

Test: fast/sandbox/ios/sandbox-mach-lookup.html

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
3:59 PM Changeset in webkit [254375] by Alan Coon
  • 1 copy in tags/Safari-608.5.7.3.2

Tag Safari-608.5.7.3.2.

3:48 PM Changeset in webkit [254374] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Resource Load Statistics: Align WebCore::NetworkStorageSession's m_thirdPartyCookieBlockingMode init value with r254239
https://bugs.webkit.org/show_bug.cgi?id=206082
<rdar://problem/58487498>

Unreviewed minor, follow-up fix.

  • platform/network/NetworkStorageSession.h:

The init value of m_thirdPartyCookieBlockingMode was changed to
ThirdPartyCookieBlockingMode::All to align it with r254239.

3:39 PM Changeset in webkit [254373] by pvollan@apple.com
  • 17 edits
    4 adds in trunk

Map CSS value ID to system color in the UI process
https://bugs.webkit.org/show_bug.cgi?id=204314

Reviewed by Dean Jackson.

Source/WebCore:

Currently, RenderThemeIOS is mapping CSS value IDs to system colors in the WebContent process. This mapping leads to
invoking selectors on UITraitCollection and UIColor, which will send messages to the runningboard daemon. Since we
will be blocking access to this daemon in the WebContent process, this mapping should be moved to the UI process.
The UI process will create a mapping between CSS value IDs and system colors, and pass it to the WebContent process.

Test: fast/css/ios/system-color-for-css-value.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleColor.h:
  • css/parser/CSSPropertyParser.h:
  • rendering/CSSValueKey.h: Added.

(WebCore::operator==):
(WebCore::CSSValueKey::encode const):
(WebCore::CSSValueKey::decode):
(WebCore::CSSValueKey::hash const):
(WTF::CSSValueKeyHash::hash):
(WTF::CSSValueKeyHash::equal):
(WTF::HashTraits<WebCore::CSSValueKey>::emptyValue):
(WTF::HashTraits<WebCore::CSSValueKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSValueKey>::isDeletedValue):

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

(WebCore::cssValueIDSelectorList):
(WebCore::systemColorFromCSSValueID):
(WebCore::globalCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::getOrCreateCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::setCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::systemColor const):

  • testing/Internals.cpp:

(WebCore::Internals::systemColorForCSSValue):

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

Source/WebKit:

Create mapping between CSS value IDs and system colors in the UI process and send to the WebContent process
on process startup.

  • 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):

LayoutTests:

  • TestExpectations:
  • fast/css/ios: Added.
  • fast/css/ios/system-color-for-css-value-expected.txt: Added.
  • fast/css/ios/system-color-for-css-value.html: Added.
  • platform/ios/TestExpectations:
3:29 PM Changeset in webkit [254372] by Pablo Saavedra
  • 3 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r254357
https://bugs.webkit.org/show_bug.cgi?id=206079

Unreviewed WPE and GTK+ gardening after r254357.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:13 PM Changeset in webkit [254371] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Fix accessibility/deleting-iframe-destroys-axcache.html and accessibility/div-within-anchors-causes-crash.html
https://bugs.webkit.org/show_bug.cgi?id=206072

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::lineCount const):

We may have a line layout with 0 runs but 1 line. In these cases line count must return 0
to match other systems.

2:52 PM Changeset in webkit [254370] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit

Gardening: simple build fix after r254119.

Not reviewed.

We should be using ASSERT_ENABLED instead of ASSERT_DSIABLED.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::sendRequestCallback):

2:48 PM Changeset in webkit [254369] by Alan Coon
  • 1 copy in tags/Safari-609.1.14

Tag Safari-609.1.14.

2:48 PM Changeset in webkit [254368] by Alan Coon
  • 1 delete in tags/Safari-609.1.14

Delete tag.

2:38 PM Changeset in webkit [254367] by achristensen@apple.com
  • 3 edits in trunk/Tools

Fix test assertions after r254345
https://bugs.webkit.org/show_bug.cgi?id=206037

There were two assertions being hit in the new tests:

  1. Beacon sends POST requests, so the HTTP server that receives them needs to be able to handle POST requests.
  2. There was an assertion in the destructor of NetworkResourceLoader because we were destroying a WKWebView during a sync xhr.

This isn't a problem in practice, but we may as well wait for the sync xhr to finish before completing the test so we can
keep the sync xhr assertion, which is useful to prevent hangs.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(-[TestUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):

2:21 PM Changeset in webkit [254366] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove 'com.apple.powerlog.plxpclogger.xpc' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206086
<rdar://problem/57195681>

Reviewed by Per Arne Vollan.

Source/WebKit:

Telemetry and testing have confirmed that we no longer need a mach connection to the
'com.apple.powerlog.plxpclogger.xpc' service. We should remove it from the WebContent process sandbox.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
2:17 PM Changeset in webkit [254365] by Brent Fulgham
  • 6 edits in trunk

Remove 'com.apple.iohideventsystem' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206085
<rdar://problem/36085204>

Reviewed by Alex Christensen.

After r253357 we no longer need access to 'com.apple.iohideventsystem', and should remove it from
the WebContent process sandbox.

Source/WebKit:

Test: fast/sandbox/ios/sandbox-mach-lookup.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
1:38 PM Changeset in webkit [254364] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove 'com.apple.cookied' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206083
<rdar://problem/56963865>

Reviewed by Per Arne Vollan.

Telemetry and testing have confirmed that we no longer use the 'com.apple.cookied' mach connection
in the WebContent process on iOS. We should remove this from the WebContent process sandbox

Source/WebKit:

Tested by fast/sandbox/ios/sandbox-mach-lookup.html.

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
12:39 PM Changeset in webkit [254363] by Brent Fulgham
  • 6 edits in trunk

Remove com.apple.locationd.registration from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=206021
<rdar://problem/58451384>

Reviewed by Per Arne Vollan.

Now that we generate a dynamic extension for 'com.apple.locationd.registration', we should remove
the blanket allow rule from the sandbox.

Source/WebKit:

Test: fast/sandbox/ios/sandbox-mach-lookup.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
12:32 PM Changeset in webkit [254362] by Alan Coon
  • 3 edits
    2 adds in branches/safari-609-branch

Revert "Revert "Cherry-pick r254301. rdar://problem/58346124""

11:56 AM Changeset in webkit [254361] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Clean up -[WKWebView _didCommitLayerTree:]
https://bugs.webkit.org/show_bug.cgi?id=206049

Reviewed by Tim Horton.

In preparation for sharing more of this code with macOS, factors parts of -[WKWebView _didCommitLayerTree:]
into new functions.

Also pull out part of -[WKWebView _updateVisibleContentRects] into its own function.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _trackTransactionCommit:]):
(-[WKWebView _updateScrollViewForTransaction:]):
(-[WKWebView _restoreScrollAndZoomStateForTransaction:]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _allowsDoubleTapGestures]):
(-[WKWebView currentlyVisibleContentInsetsWithScale:obscuredInsets:]):
(-[WKWebView _updateVisibleContentRects]):
(areEssentiallyEqualAsFloat): Deleted.

11:56 AM Changeset in webkit [254360] by Simon Fraser
  • 7 edits
    4 adds in trunk/Source/WebKit

[macOS UI-side compositing] Introduce WKScrollView and WKContentView for macOS
https://bugs.webkit.org/show_bug.cgi?id=206042

Reviewed by Tim Horton.

Add WKScrollViewMac and WKWebViewMac, with bare-bones implementations. WKScrollViewMac
has a WKScrollViewDelegate to make it more iOS-like, to avoid clients having to register
boundsDidChange notifications, and WKWebView on macOS becomes the delegate.

These views are only created when UI-side compositing is enabled.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/mac/WKContentViewMac.h: Added.
  • UIProcess/API/mac/WKContentViewMac.mm: Added.

(-[WKContentView initWithFrame:page:]):
(-[WKContentView isFlipped]):
(-[WKContentView _setAcceleratedCompositingRootLayer:]):

  • UIProcess/API/mac/WKScrollViewMac.h: Added.
  • UIProcess/API/mac/WKScrollViewMac.mm: Added.

(+[WKScrollView isCompatibleWithResponsiveScrolling]):
(-[WKScrollView initWithFrame:]):
(-[WKScrollView dealloc]):
(-[WKScrollView delegate]):
(-[WKScrollView setDelegate:]):
(-[WKScrollView contentOffset]):
(-[WKScrollView boundsDidChange:]):
(-[WKScrollView setContentInsets:]):

  • UIProcess/API/mac/WKWebViewMac.h:
  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewContentInsetsDidChange:]):
(-[WKWebView _setupScrollAndContentViews]):

  • UIProcess/ios/WebPageProxyIOS.mm:
  • WebKit.xcodeproj/project.pbxproj:
11:36 AM Changeset in webkit [254359] by clopez@igalia.com
  • 5 edits in trunk/Tools

[GTK][WPE] EWS should not wipe the JHBuild in the unapply patch step
https://bugs.webkit.org/show_bug.cgi?id=206061

Reviewed by Aakash Jain.

The current unapply patch step on the EWS calls the script clean-webkit, which wipes everything.
Rebuilding the JHBuild takes around 30 minutes, even with ccache.
And its not needed to wipe the JHBuild directories on the clean-webkit step, because the WebKit
tooling for building the JHBuild (update-webkitgtk-libs) already detects when the moduleset has
been modified and wipes it when necessary.

This patch adds the optional argument --keep-jhbuild-directory to the script clean-webkit,
that the EWS will pass when doing the unapply patch step for platform GTK or WPE.

  • BuildSlaveSupport/ews-build/steps.py:

(CleanWorkingDirectory.start):

  • Scripts/clean-webkit:

(main):

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.discard_untracked_files):

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
11:32 AM Changeset in webkit [254358] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608.5.7.3-branch

Cherry-pick r254301. rdar://problem/58480222

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.

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

11:16 AM Changeset in webkit [254357] by achristensen@apple.com
  • 2 edits in trunk/Tools

Build fix for builds without libwebrtc's BoringSSL.
https://bugs.webkit.org/show_bug.cgi?id=206037

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
11:06 AM Changeset in webkit [254356] by jiewen_tan@apple.com
  • 20 edits in trunk

[WebAuthn] Support authenticatorGetNextAssertion
https://bugs.webkit.org/show_bug.cgi?id=203346
<rdar://problem/56558488>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new tests within existing test files.

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

(WebCore::AuthenticatorAssertionResponse::setName):
(WebCore::AuthenticatorAssertionResponse::name const):
(WebCore::AuthenticatorAssertionResponse::setDisplayName):
(WebCore::AuthenticatorAssertionResponse::displayName const):
(WebCore::AuthenticatorAssertionResponse::setNumberOfCredentials):
(WebCore::AuthenticatorAssertionResponse::numberOfCredentials const):
Adds new members to store new fields of the response from the authenticator. Field "icon"
is omitted given it could be used to track users according to https://github.com/w3c/webauthn/issues/1285.

  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetAssertionResponse):
Adds new logic to parse above fields from an authenticator response.

Source/WebKit:

This patch implements authenticatorGetNextAssertion as suggested by the spec:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetNextAssertion

The work flow is as follow:
1) When a valid assertion response is received, check its numberOfCredentials member;
2) When it is larger then 1, use authenticatorGetNextAssertion to get all remaining responses;
3) Once all responses are gathered, ask UI clients to pick one to return.

  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::selectAssertionResponses const):

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::selectAssertionResponses):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::parseRequest):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:

Adds new test case for new logic in DeviceResponseConverter.

LayoutTests:

  • http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
  • http/wpt/webauthn/resources/util.js:
11:02 AM Changeset in webkit [254355] by Alan Coon
  • 7 edits in branches/safari-608.5.7.3-branch/Source

Versioning.

10:56 AM Changeset in webkit [254354] by Alan Coon
  • 7 edits in branches/safari-608.5.0.2-branch/Source

Versioning.

10:55 AM Changeset in webkit [254353] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r254301. rdar://problem/58467176

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.

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

10:54 AM Changeset in webkit [254352] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

10:54 AM Changeset in webkit [254351] by Brent Fulgham
  • 10 edits in trunk

Remove 'com.apple.nehelper' from the WebContent sandbox.
https://bugs.webkit.org/show_bug.cgi?id=206025
<rdar://problem/58453508>

Reviewed by Per Arne Vollan.

Now that we generate a dynamic extension for 'com.apple.nehelper' and 'com.apple.nesessionmanager.content-filter',
we should remove the blanket allow rules from the sandbox.

Tests: fast/sandbox/ios/sandbox-mach-lookup.html, fast/sandbox/mac/sandbox-mach-lookup.html

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
10:50 AM Changeset in webkit [254350] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

[WebGL] Add all remaining WebGL2 implementation functions to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=206038
<rdar://problem/58459051>

Reviewed by Simon Fraser.

Add stubs for all the GraphicsContextGL methods that will be
necessary to implement WebGL2.

While here, rearrange the header file to mirror the way
WebGL2RenderingContext orders the methods, and mark all the
GraphicsContextGLOpenGL methods as final (rather than override).

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::texImage3D):
(WebCore::GraphicsContextGLOpenGL::texSubImage3D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::glGetQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::readPixels):

10:49 AM Changeset in webkit [254349] by sbarati@apple.com
  • 3 edits
    4 adds in trunk

ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added.

(assert):
(v9):

  • stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added.

(assert):
(v9):

  • stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added.

(bool):
(effects):
(escape):
(bar):

  • stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added.

(alwaysFalse):
(sometimesZero):
(assert):
(v9):

Source/JavaScriptCore:

Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:

`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`

It solves the points to problem knowing @4 points to @1.

It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.

This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)

So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}


Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
10:48 AM Changeset in webkit [254348] by Jonathan Bedard
  • 1 edit
    3 deletes in trunk/WebKitLibraries

WebKitLibraries: Remove old private framework stubs
https://bugs.webkit.org/show_bug.cgi?id=206067
<rdar://problem/58479518>

Reviewed by Alexey Proskuryakov.

  • WebKitPrivateFrameworkStubs/iOS/10: Removed.
  • WebKitPrivateFrameworkStubs/iOS/11: Removed.
  • WebKitPrivateFrameworkStubs/iOS/12: Removed.
10:32 AM Changeset in webkit [254347] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Silence compiler warning
https://bugs.webkit.org/show_bug.cgi?id=206070

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-01-10
Reviewed by Chris Dumez.

Silence compiler by using the proper formatter for log out.

No functional changes.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):

10:14 AM Changeset in webkit [254346] by Jonathan Bedard
  • 2 edits in trunk/Tools

Python 3: Add support to run-webkit-tests (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=205291

Unreviewed follow-up fix.

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image): Diff output is byte array, not string.
(PortTestCase.test_diff_image_failed): Ditto.
(PortTestCase.test_diff_image_crashed): Ditto.

10:06 AM Changeset in webkit [254345] by achristensen@apple.com
  • 27 edits
    6 adds in trunk

Expand _WKResourceLoadDelegate callbacks
https://bugs.webkit.org/show_bug.cgi?id=206037
Source/WebKit:

<rdar://problem/57132290>

Reviewed by Youenn Fablet.

Add 5 informative delegate callbacks at these times during the loading process:

  1. When a request is sent.
  2. When a redirect happens.
  3. When a challenge happens.
  4. When a response is received.
  5. When loading completes or fails.

As mentioned in r254183 these callbacks are only called when a _WKResourceLoadDelegate is given to a WKWebView.
We add a new struct ResourceLoadInfo which will need to be expanded containing currently only the load identifier.
Covered by new API tests which verify the validity of the sent information.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkLoadClient.h:

(WebKit::NetworkLoadClient::didReceiveChallenge):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::generateResourceLoadID):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::resourceLoadInfo):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didReceiveChallenge):
Add a way to send a message informing that a challenge happened with information gathered from the NetworkResourceLoader,
which previously was not informed of challenges because the challenges went directly from the NetworkLoad to the AuthenticationManager.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::m_shouldCaptureExtraNetworkLoadMetrics): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/ResourceLoadInfo.h: Added.

(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):

  • SourcesCocoa.txt:
  • UIProcess/API/APIResourceLoadClient.h:
  • UIProcess/API/APIResourceLoadInfo.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm: Added.

(-[_WKResourceLoadInfo dealloc]):
(-[_WKResourceLoadInfo resourceLoadID]):
(-[_WKResourceLoadInfo _apiObject]):

  • UIProcess/API/Cocoa/_WKResourceLoadInfoInternal.h: Added.
  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
An AuthenticationChallengeProxy was only used for challenges that needed credentials, so they wrapped a CompletionHandler.
This new type of informative-only challenge will be given a null CompletionHandler, which means no action can be taken.

  • UIProcess/Cocoa/ResourceLoadDelegate.h:
  • UIProcess/Cocoa/ResourceLoadDelegate.mm:

(WebKit::ResourceLoadDelegate::setDelegate):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didSendRequest const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didPerformHTTPRedirection const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveChallenge const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveResponse const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didCompleteWithError const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::resourceLoadDidSendRequest):
(WebKit::NetworkProcessProxy::resourceLoadDidPerformHTTPRedirection):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveChallenge):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveResponse):
(WebKit::NetworkProcessProxy::resourceLoadDidCompleteWithError):
(WebKit::NetworkProcessProxy::pageWillSendRequest): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest):

Tools:

Reviewed by Youenn Fablet.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(-[TestResourceLoadDelegate webView:resourceLoad:didSendRequest:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didPerformHTTPRedirection:newRequest:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didReceiveChallenge:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didReceiveResponse:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didCompleteWithError:]):
(TEST):
(-[TestResourceLoadDelegate webView:willSendRequest:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):
Add the ability to have non-200 status codes in responses.
Also switch the order of parameters to reflect the fact that header fields are sent before the body.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::statusText):
(TestWebKitAPI::HTTPServer::respondToRequests):

9:57 AM Changeset in webkit [254344] by commit-queue@webkit.org
  • 8 edits in trunk

Add SPI to enable TLS 1.0 and 1.1 in WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=206046

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

Source/WebKit:

This is needed for <rdar://problem/58464912>
Covered by API tests.

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

(-[_WKWebsiteDataStoreConfiguration legacyTLSEnabled]):
(-[_WKWebsiteDataStoreConfiguration setLegacyTLSEnabled:]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::legacyTLSEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setLegacyTLSEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

9:52 AM Changeset in webkit [254343] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension to "com.apple.nesessionmanager" prior to 10.15
https://bugs.webkit.org/show_bug.cgi?id=206031
<rdar://problem/58455467>

Reviewed by Per Arne Vollan.

The mach name of 'com.apple.nesessionmanager' changed between macOS 10.14 and 10.15.
We should continue to issue the old name when building for older operating systems."

Covered by existing tests.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

9:40 AM Changeset in webkit [254342] by commit-queue@webkit.org
  • 11 edits in trunk

Remove WebsiteDataStore::setCacheStorageDirectory which has been replaced by WebsiteDataStoreConfiguration::setCacheStorageDirectory
https://bugs.webkit.org/show_bug.cgi?id=205841

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

Source/WebKit:

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationCopyCacheStorageDirectory):
(WKWebsiteDataStoreConfigurationSetCacheStorageDirectory):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _cacheStorageDirectory]): Deleted.
(-[WKWebsiteDataStore _setCacheStorageDirectory:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::cacheStorageDirectory const):
(WebKit::WebsiteDataStore::setCacheStorageDirectory): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

8:48 AM Changeset in webkit [254341] by youenn@apple.com
  • 8 edits in trunk

[WTR] Use short heart beat timer as a TestOption
https://bugs.webkit.org/show_bug.cgi?id=205795

Reviewed by Chris Dumez.

Tools:

Using short service worker heartbeat timeout values creates flakiness on slow bots.
By default, use regular service worker heartbeat timeout values for layout tests.
Add a WTR option value to use short service worker timeout values.
Use this option for service worker spinning layout tests.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

  • http/wpt/service-workers/service-worker-spinning-activate.https.html:
  • http/wpt/service-workers/service-worker-spinning-fetch.https.html:
  • http/wpt/service-workers/service-worker-spinning-install.https.html:
  • http/wpt/service-workers/service-worker-spinning-message.https.html:
8:16 AM Changeset in webkit [254340] by Jonathan Bedard
  • 23 edits in trunk/Tools

Python 3: Add support to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=205291

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.
  • Scripts/webkitpy/common/message_pool.py:

(_MessagePool._loop): Move exception inside of loop.
(_Message.repr): Use .format strings.
(_Worker.init): Ditto.

  • Scripts/webkitpy/common/wavediff.py:

(WaveDiff.init): Use Python 3 compatible BytesIO and StringIO.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder._read_test_names_from_file): Use .format string.
(LayoutTestFinder.split_into_chunks): Explicitly use integer division.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._get_test_inputs): Use range over xrange.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._handle_error): Use .format strings.

  • Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:

(JSONLayoutResultsGenerator._insert_failure_summaries): Use Python 3 compatible itervalues.

  • Scripts/webkitpy/layout_tests/models/test_results.py:

(TestResult.init): Sort type list.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.setUp): Multiple processes are buggy in test-webkitpy.
(RunTest.test_basic): replace buflist with getvalue().
(RunTest.test_child_processes_2): Ditto.
(RunTest.test_child_processes_min): Ditto.
(RunTest.test_keyboard_interrupt): Ditto.
(RunTest.test_missing_and_unexpected_results): Compare dictionaries instead of json strings.
(RunTest.test_crash_with_stderr): Ditto.
(RunTest.test_reftest_should_not_use_naming_convention_if_not_listed_in_reftestlist): Ditto.
(EndToEndTest.test_reftest_with_two_notrefs): Ditto.

  • Scripts/webkitpy/layout_tests/views/metered_stream.py:

(MeteredStream.write): Flush stream after writing.
(MeteredStream._erase_last_partial_line): Ditto.

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer._print_directory_timings): Can't compare string to integer.
(Printer._print_statistics_for_test_timings): Use integer division.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort._merge_crash_logs): Use items over iteritems.

  • Scripts/webkitpy/port/device.py:

(Device.hash): Allow hashing of devices.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort._install): Use range over xrange.
(DevicePort.setup_test_run): Ditto.
(DevicePort.clean_up_test_run): Ditto.

  • Scripts/webkitpy/port/driver.py:

(DriverOutput.init): Text should be decoded, audio encoded.
(Driver.init):
(Driver.run_test):
(Driver._parse_child_processes_output): Output is byte array.
(Driver._check_for_driver_timeout): Ditto.
(Driver._check_for_address_sanitizer_violation): Error lines are byte arrays.
(Driver._check_for_driver_crash_or_unresponsiveness): Ditto.
(Driver._read_optional_image_block): If a block is base64 encoded, we want the decoded
content, otherwise, we want the encoded content.
(Driver._read_header): Lines are byte arrays, decode them before processing.
(Driver._process_stdout_line): Blocks are byte arrays.
(Driver._strip_eof): Lines should be byte arrays, not strings.
(Driver._read_block): Standardize encoding in blocks.
(ContentBlock.init): Content should be a byte array.
(ContentBlock.decode_content): Attempt to decode content.

  • Scripts/webkitpy/port/driver_unittest.py:

(DriverTest.test_read_binary_block): Content should be encoded.
(DriverTest.test_read_base64_block): Ditto.
(DriverTest.test_check_for_driver_crash): ServerProcess output should be a byte array.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer.diff_image): ImageDiff output is in byte arrays.
(ImageDiffer._read): Ditto.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.write): Encode data before writing it.

  • Scripts/webkitpy/port/server_process_mock.py:

(MockServerProcess.init): Convert string mock output to bytes.
(MockServerProcess.read_stdout_line): Stdout lines are byte arrays.
(MockServerProcess.read_stdout): Ditto.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.NonBlockingFileFromSocket.close): Don't double close socket in Python 3.
(SimulatorProcess._start): Stdin should be a binary stream.

  • Scripts/webkitpy/port/test.py:

(unit_test_list): Convert audio streams to byte arrays.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.is_usable): Decode xcrun output.
(SimulatedDevice.install_app): Use xrange over range.

7:46 AM Changeset in webkit [254339] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Fix accessibility/scroll-to-make-visible-iframe-offscreen.html
https://bugs.webkit.org/show_bug.cgi?id=206063

Reviewed by Zalan Bujtas.

This is failing due to missing LFC implementation for RenderText::absoluteQuad.

  • rendering/RenderText.cpp:

(WebCore::collectAbsoluteQuadsForNonComplexPaths):

Implement generic version for collecting absolute quads. It doesn't cover everything that is needed for
the complex path so that still calls into layout system specific code.

(WebCore::RenderText::absoluteQuadsClippedToEllipsis const):
(WebCore::RenderText::absoluteQuads const):
(WebCore::RenderText::layoutFormattingContextLineLayout const):
(WebCore::RenderText::usesComplexLineLayoutPath const):

  • rendering/RenderText.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuads): Deleted.

Not needed anymore.

  • rendering/SimpleLineLayoutFunctions.h:
7:22 AM Changeset in webkit [254338] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] imported/w3c/web-platform-tests/xhr/anonymous-mode-unsupported.htm is flaky
https://bugs.webkit.org/show_bug.cgi?id=206065

Unreviewed, mark test as flaky.

  • platform/gtk/TestExpectations:
7:10 AM Changeset in webkit [254337] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r254335
https://bugs.webkit.org/show_bug.cgi?id=206062

Unreviewed WPE and GTK+ gardening after r254335.

  • platform/gtk/TestExpectations:
7:06 AM Changeset in webkit [254336] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] Replace FormattingContext::EscapeTypes with EscapeReasons
https://bugs.webkit.org/show_bug.cgi?id=206050
<rdar://problem/58466862>

Reviewed by Antti Koivisto.

EscapeReason is more explicit about why certain formatting context escapes are allowed.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

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

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

4:46 AM Changeset in webkit [254335] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[Flatpak] Update IceCC to version 1.2
https://bugs.webkit.org/show_bug.cgi?id=206059

Reviewed by Philippe Normand.

Update IceCC/Icecream to version 1.2, which is the same version
currently shipped with Debian stable (Buster). This bump is needed
because IceCC 1.1 does not seem to interoperate with the scheduler
from newer versions and it is expected that people who run IceCC will
install IceCC in their build farm from distribution packages.

  • flatpak/org.webkit.CommonModules.yaml: Bump IceCC version to 1.2,

add the Git commit-id for the release tag.

4:32 AM Changeset in webkit [254334] by commit-queue@webkit.org
  • 7 edits in trunk

Source/WebCore:
[EME][ClearKey] Refactor CDMInstanceClearKey::updateLicense()
https://bugs.webkit.org/show_bug.cgi?id=205999

Patch by Charlie Turner <mail@charles.plus> on 2020-01-10
Reviewed by Xabier Rodriguez-Calvar.

Covered by existing tests.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::toHexString const): Helper utility to view
a shared buffer's contents as a hex string.

  • platform/SharedBuffer.h:
  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMInstanceClearKey::Key::keyIDAsString const): Uses the
new utility to return a hex string of the key ID for debugging.
(WebCore::CDMInstanceClearKey::Key::keyValueAsString const):
Ditto, but for the key data.
(WebCore::operator==): Added comparison operations to
CDMInstanceClearKey::Key to cleanup code in updateLicense.
(WebCore::operator<):
(WebCore::CDMInstanceSessionClearKey::updateLicense): Refactored
to use operators associated with the key class, so as to avoid
open-coded memcmp's in the middle of conditionals and other
techniques that made the code harder to read that necessary.

  • platform/encryptedmedia/clearkey/CDMClearKey.h:

Tools:
[EME][ClearKey] Refactor CDMClearKey::update()
https://bugs.webkit.org/show_bug.cgi?id=205999

Patch by Charlie Turner <mail@charles.plus> on 2020-01-10
Reviewed by Xabier Rodriguez-Calvar.

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F): Added a test for the new toHexString
helper. It should make sure to zero pad each byte to two
characters, so that it's easy to read.

3:58 AM Changeset in webkit [254333] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.4 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.27.4.
3:39 AM Changeset in webkit [254332] by Carlos Garcia Campos
  • 5 edits in trunk/Source

Unreviewed. Fix GTK and WPE API docs generation

Source/JavaScriptCore:

Add index for new symbols in 2.28.

  • API/glib/docs/jsc-glib-docs.sgml:

Source/WebKit:

Fix the name of the new class. WebKitInputMethodFilter -> WebKitInputMethodContext.

  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
2:53 AM Changeset in webkit [254331] by Carlos Garcia Campos
  • 6 edits in trunk

[GLIB] Add GLib specific API for JSC JSValueRef.h's JSValueMakeFromJSONString and JSValueCreateJSONString methods
https://bugs.webkit.org/show_bug.cgi?id=205161

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Add jsc_value_new_from_json() and jsc_value_to_json().

  • API/glib/JSCValue.cpp:

(jsc_value_new_from_json):
(jsc_value_to_json):

  • API/glib/JSCValue.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add tests for new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(testJSCJSON):
(main):

12:45 AM Changeset in webkit [254330] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Automation: resolveChildFrameWithNodeHandle should return NodeNotFound when node doesn't exist
https://bugs.webkit.org/show_bug.cgi?id=205993

Reviewed by Brian Burg.

According to the spec:

"If element is stale, return error with error code stale element reference."
https://w3c.github.io/webdriver/#switch-to-frame

Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_webelement_stale_reference

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):

12:44 AM Changeset in webkit [254329] by Carlos Garcia Campos
  • 8 edits in trunk

Automation: evaluateJavaScriptFunction should use Promises
https://bugs.webkit.org/show_bug.cgi?id=204151

Reviewed by Brian Burg.

Source/WebDriver:

  • CommandResult.cpp:

(WebDriver::CommandResult::httpStatusCode const): Timeout errors should return 500 not 408.

  • Session.cpp:

(WebDriver::Session::executeScript): Ensure the script body goes between new lines to avoid problems with
trailing comments like in function() { return foo; Comment }.

Source/WebKit:

Make the function to run scripts async and handle the result as a promise. To implement the script timeout we
use another promise that starts the timer and then we run a Promise.race() with both promises. To simplify the
results reporting, all exceptions (including timeout errors that are now handled as exceptions) are now handled
as errors passed to the resultCallback. The boolean parameter has been removed, we can simply check the type of
the value received because results are always strings and errors are always exception objects.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::evaluateJavaScriptCallback): Handle the script result, including all possible errors now (not only timeouts).
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Any exception running the script should be an
internal error now. The code to handle error has been moved to evaluateJavaScriptCallback().

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(WebKitAutomation.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _execute and handle the
promise result to call resultCallback wityh either the result or the error.
(WebKitAutomation.AutomationSessionProxy.prototype._execute): Make the function to run the script async and
handle the result as a promise.

WebDriverTests:

Remove expectations for tests that are now passing.

12:42 AM Changeset in webkit [254328] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Automation: scripts are executed in the wrong js context after a history navigation
https://bugs.webkit.org/show_bug.cgi?id=204880
<rdar://problem/58413615>

Reviewed by Brian Burg.

After a history navigation we use the script object from the previous frame js context because
didClearWindowObjectForFrame() is not called in that case. We are caching the script object for every frame ID,
and after a history navigation the frame ID is the same, but the frame js context isn't. That also means we might
be leaking the script objects in those cases, because we end up calling JSValueUnprotect with the wrong
context. It would be easier to set the script object as a property of the global object and let JSC handle the
lifetime. Instead of caching the script object and protect/unprotect it, we just check if the global object of
the current js context has the property or not to get or create it. We use a private symbol as the key of the
global object property to ensure it's not visible.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::WebAutomationSessionProxy): Initialize m_scriptObjectIdentifier.
(WebKit::WebAutomationSessionProxy::scriptObject): Helper function to get the script object for the given
JavaScript context.
(WebKit::WebAutomationSessionProxy::setScriptObject): Helper function to set the script object for the given
JavaScript context.
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Get or create the script object.
(WebKit::WebAutomationSessionProxy::elementForNodeHandle): Get the script object from global object.
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): Remove the code to unprotect script objects
of the frame.

  • WebProcess/Automation/WebAutomationSessionProxy.h: Add m_scriptObjectIdentifier and remove m_webFrameScriptObjectMap.

Jan 9, 2020:

10:51 PM Changeset in webkit [254327] by Adrian Perez de Castro
  • 11 edits in trunk/Source

Fix various non-unified build issues introduced since r253538
https://bugs.webkit.org/show_bug.cgi?id=205996

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • bytecode/ExecutableToCodeBlockEdge.cpp: Add missing inclusion of JSObjectInlines.h and

StructureInlines.h

  • dfg/DFGVariableEvent.cpp: Add missing inclusion of OperandsInlines.h
  • runtime/NarrowingNumberPredictionFuzzerAgent.cpp: Add missing inclusion of CodeBlock.h
  • runtime/WideningNumberPredictionFuzzerAgent.cpp: Ditto.
  • wasm/WasmOperations.cpp: Add missing inclusion of ButterflyInlines.h

Source/WebCore:

No new tests needed.

  • dom/UserGestureIndicator.cpp: Add missing inclusion of DOMWindow.h
  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::parseAttribute): Add missing namespace prefix to HTMLNames::openAttr.
(WebCore::HTMLDialogElement::toggleOpen): Ditto.

  • page/Page.cpp: Add missing inclusion of MediaRecorderProvider.h
  • page/PageConfiguration.h: Add missing inclusion of wtf/Forward.h and wtf/Vector.h
9:23 PM Changeset in webkit [254326] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/xhr/event-timeout-order.any.html has been flaky since it was imported in r254154
https://bugs.webkit.org/show_bug.cgi?id=206053

Unreviewed, mark test as flaky.

8:44 PM Changeset in webkit [254325] by Ross Kirsling
  • 4 edits in trunk/Source/WebKit

REGRESSION(r253868): Socket-based remote inspector cannot inspect any target
https://bugs.webkit.org/show_bug.cgi?id=206045

Reviewed by Don Olmstead.

Revert part of patch, ensuring Target struct stays consistent with socket inspector's messaging protocol.

  • UIProcess/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::setTargetList):
(WebKit::debuggableTypeToString): Deleted.

  • UIProcess/socket/RemoteInspectorClient.h:
  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::targetListChanged):
(WebKit::debuggableTypeToString): Deleted.

7:59 PM Changeset in webkit [254324] by Ryan Haddad
  • 2 edits in trunk/Tools

Move macOS Test262, JSC, and perf queues to Catalina
https://bugs.webkit.org/show_bug.cgi?id=205971

Unreviewed.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): Update queue names on dashboard to match new naming scheme (dashes instead of spaces)

7:50 PM Changeset in webkit [254323] by Fujii Hironori
  • 13 edits
    1 add
    2 deletes in trunk

[Win] Use ComplexTextController instead of UniscribeController
https://bugs.webkit.org/show_bug.cgi?id=204884

Reviewed by Brent Fulgham.

Source/WebCore:

UniscribeController doesn't support surrogate pairs and has
rendering glitches of partially selected a combining character.

Remove UniscribeController, and use ComplexTextController by
implementing collectComplexTextRunsForCharacters with Uniscribe.

Covered by existing tests.

  • PlatformWin.cmake:
  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const):
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const):
(WebCore::FontCascade::drawGlyphBuffer const):
(WebCore::FontCascade::floatWidthForComplexText const):
(WebCore::FontCascade::adjustSelectionRectForComplexText const):
(WebCore::FontCascade::offsetForPositionForComplexText const):

  • platform/graphics/win/ComplexTextControllerUniscribe.cpp: Added.

(WebCore::shapeByUniscribe):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/graphics/win/FontCGWin.cpp:
  • platform/graphics/win/FontCascadeDirect2D.cpp:
  • platform/graphics/win/FontWin.cpp:

(WebCore::FontCascade::adjustSelectionRectForComplexText const): Deleted.
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Deleted.
(WebCore::FontCascade::floatWidthForComplexText const): Deleted.
(WebCore::FontCascade::offsetForPositionForComplexText const): Deleted.

  • platform/graphics/win/UniscribeController.cpp: Removed.
  • platform/graphics/win/UniscribeController.h: Removed.

Tools:

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: Enabled these tests for PLATFORM(WIN).

LayoutTests:

  • platform/win/TestExpectations:
  • platform/win/fast/text/justify-ideograph-complex-expected.txt: Rebaselined.
  • platform/wincairo/TestExpectations:
7:38 PM Changeset in webkit [254322] by Chris Dumez
  • 7 edits
    4 adds in trunk

Block cross-site top-frame navigations from untrusted iframes
https://bugs.webkit.org/show_bug.cgi?id=206027
<rdar://problem/58320516>

Reviewed by Geoffrey Garen.

Source/WebCore:

Block cross-site top-frame navigations from untrusted iframes, unless they have a user gesture.
We already consider third-party iframes as untrusted, we now also treat first-party iframes
as untrusted if they are loaded both third-party scripts & iframes.

Test: http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes.html

  • dom/Document.cpp:

(WebCore::Document::canNavigate):
(WebCore::Document::willLoadScriptElement):
(WebCore::Document::willLoadFrameElement):
(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):

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

(WebCore::ScriptElement::requestClassicScript):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):

LayoutTests:

Add layout test coverage.

  • http/tests/security/block-top-level-navigations-by-third-party-iframes-expected.txt:
  • http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes-expected.txt: Added.
  • http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes.html: Added.
  • http/tests/security/resources/navigate-top-level-frame-to-failure-page-untrusted-iframe.html: Added.
  • http/tests/security/resources/navigate-top-to-error-page.js: Added.
7:08 PM Changeset in webkit [254321] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=206007

  • platform/gtk/TestExpectations:
6:34 PM Changeset in webkit [254320] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Disable accessibility isolated tree for LayoutTests.
https://bugs.webkit.org/show_bug.cgi?id=206048
<rdar://problem/58459580>

Reviewed by Chris Fleizach.

Fix for numerous LayoutTests failing when using accessibility isolated tree.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):

6:21 PM Changeset in webkit [254319] by Kocsen Chung
  • 1 copy in tags/Safari-608.5.10

Tag Safari-608.5.10.

6:10 PM Changeset in webkit [254318] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

TestController::platformLibraryPathForTesting() returns inner pointer to autoreleased NSString
<https://webkit.org/b/206018>
<rdar://problem/58449733>

Reviewed by Darin Adler.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

  • Use WTF::AutodrainedPool to fix remaining autoreleasePool leaks.
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformLibraryPathForTesting):

  • Retain NSString since these methods return an inner pointer. This also only needs to be initialized once.
5:25 PM Changeset in webkit [254317] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Adopt TARGET_OS_MACCATALYST in more places
https://bugs.webkit.org/show_bug.cgi?id=206040
<rdar://problem/57127108>

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/API/Cocoa/WebKit.h:

Source/WebKitLegacy/mac:

  • Misc/WebDownload.h:

Source/WTF:

  • wtf/Platform.h:
5:24 PM Changeset in webkit [254316] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: suggest "color()" when defining color in CSS value
https://bugs.webkit.org/show_bug.cgi?id=205976

Reviewed by Devin Rousso.

  • UserInterface/Models/CSSKeywordCompletions.js:
5:07 PM Changeset in webkit [254315] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Clean up -[WKWebView _initializeWithConfiguration:]
https://bugs.webkit.org/show_bug.cgi?id=206039

Reviewed by Tim Horton.

-[WKWebView _initializeWithConfiguration:] is full of platform #ifdefs so needs
cleaning up before adding more code. Factor out WKScrollView and view hookup,
pageConfiguration setup, and notification registration.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setupPageConfiguration:]):

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setupScrollAndContentViews]):
(-[WKWebView _registerForNotifications]):

4:40 PM Changeset in webkit [254314] by Wenson Hsieh
  • 5 edits in trunk

Text manipulation controller should not observe changes in new replacement elements
https://bugs.webkit.org/show_bug.cgi?id=206015
<rdar://problem/58353667>

Reviewed by Tim Horton.

Source/WebCore:

TextManipulationController may insert elements in the process of completing text replacement operations. When
renderers are created for these elements (after the next layout pass), the controller is notified via
TextManipulationController::didCreateRendererForElement, which causes it to begin observing the newly inserted
elements. For certain clients, this may lead to an unending cycle of text manipulation updates as the new
text manipulation items' tokens will be replaced with new tokens, and we never reach a stable state.

To mitigate this, we avoid adding newly visible elements to m_mutatedElements in the case where the newly
visible elements were recently inserted by text replacement. See below for more details.

Test: TextManipulation.CompleteTextManipulationDoesNotCreateMoreTextManipulationItems

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::didCreateRendererForElement):

Avoid considering an element that has a new renderer, if it is an element we had just inserted using text
manipulation APIs.

(WebCore::TextManipulationController::replace):

As we iterate over and apply each text replacement, remember the elements we've inserted using a WeakHashSet;
this set is cleared in a queued async task, after which layout should be up to date.

  • editing/TextManipulationController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

Add a new API test to verify that we don't fire text manipulation item callbacks due to inserting elements when
completing text manipulation.

(-[TextManipulationDelegate initWithItemCallback]): Deleted.

Remove a stray initializer that was unused (and also doesn't take an ItemCallback, as its name might suggest).

4:19 PM Changeset in webkit [254313] by Alan Coon
  • 1 copy in tags/Safari-608.5.0.2.3

Tag Safari-608.5.0.2.3.

3:48 PM Changeset in webkit [254312] by Simon Fraser
  • 11 edits in trunk/Source/WebKit

Use HAVE(TOUCH_BAR) instead of PLATFORM(COCOA) in more places
https://bugs.webkit.org/show_bug.cgi?id=205975

Reviewed by Wenson Hsieh.

Protect Touch Bar-related code with HAVE(TOUCH_BAR) instead of PLATFORM(COCOA).

  • Shared/TouchBarMenuData.cpp:
  • Shared/TouchBarMenuData.h:
  • Shared/TouchBarMenuItemData.cpp:
  • Shared/TouchBarMenuItemData.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::forceRequestCandidatesForTesting):
(WebKit::WebViewImpl::setEditableElementIsFocused):

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

(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition):
(WebKit::WebPage::didInsertMenuElement):
(WebKit::WebPage::didRemoveMenuElement):
(WebKit::WebPage::didInsertMenuItemElement):
(WebKit::WebPage::didRemoveMenuItemElement):

  • WebProcess/WebPage/WebPage.h:
3:48 PM Changeset in webkit [254311] by Simon Fraser
  • 15 edits in trunk/Source

Add ENABLE_UI_SIDE_COMPOSITING and use it in a few places
https://bugs.webkit.org/show_bug.cgi?id=205982

Reviewed by Jon Lee.
Source/WebKit:

All Remote* things should get wrapped in ENABLE(UI_SIDE_COMPOSITING)
if other platforms build the files, so do some of that. VisibleContentRect*
and ViewUpdateDispatcher* stuff is also UI-side compositing only.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h:

(WebKit::RemoteScrollingCoordinatorTransaction::scrollingStateTree):

  • Shared/VisibleContentRectUpdateInfo.cpp:
  • Shared/VisibleContentRectUpdateInfo.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::handleMouseEvent):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:
  • WebProcess/WebPage/ViewUpdateDispatcher.h:
  • WebProcess/WebPage/WebPage.h:

Source/WTF:

Add a #define ENABLE_UI_SIDE_COMPOSITING for Cocoa platforms. Minor comment cleanup, and
move the duplicate ENABLE_ASYNC_SCROLLING from iOS and macOS sections into the Cocoa section.

  • wtf/FeatureDefines.h:
3:47 PM Changeset in webkit [254310] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Check the existence of the optional m_sessionID before using it in WebProcess::setResourceLoadStatisticsEnabled()
https://bugs.webkit.org/show_bug.cgi?id=206035
<rdar://problem/58455306>

Reviewed by Brent Fulgham.

No new tests.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setResourceLoadStatisticsEnabled):

Added a check that m_sessionID exists.

3:47 PM Changeset in webkit [254309] by Alan Coon
  • 3 edits
    2 deletes in branches/safari-609-branch

Revert "Cherry-pick r254301. rdar://problem/58346124"

3:33 PM Changeset in webkit [254308] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Add styles to support Web Inspector reference articles
https://bugs.webkit.org/show_bug.cgi?id=206032

Reviewed by Devin Rousso.

  • wp-content/themes/webkit/style.css:

(main h1,):
(main h1):
(article .meta .updated):
(article .bodycopy,):
(.image):
(p .image,):
(.image.block):
(.image img):
(.widescreen .image):
(.image.slice-top > picture > img):
(.image.slice-right > picture > img):
(.image.slice-bottom > picture > img):
(.image.slice-left > picture > img):
(.flex):
(.flex.center):
(figure.widescreen):
(article picture):
(article picture > img):
(.single-web_inspector_page .landing-link):
(.single-web_inspector_page .landing-link:hover):
(@media(prefers-color-scheme:dark) article .invert-brightness,):
(@media(prefers-color-scheme:dark) .table-of-contents label:after):
(article h1,): Deleted.
(article .bodycopy): Deleted.

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

Install WebKit framework symlink for more iOS-derived platforms
https://bugs.webkit.org/show_bug.cgi?id=206030

Reviewed by Andy Estes.

  • WebKit.xcodeproj/project.pbxproj:
3:18 PM Changeset in webkit [254306] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Remove AGXCompilerService access from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=206020
<rdar://problem/58451395>

Reviewed by Per Arne Vollan.

Now that we generate a dynamic extension for 'com.apple.AGXCompilerService', we should remove the
blanket allow rule from the sandbox.

Covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:59 PM Changeset in webkit [254305] by Alan Coon
  • 3 edits
    2 adds in branches/safari-609-branch

Cherry-pick r254301. rdar://problem/58346124

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.

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

2:58 PM Changeset in webkit [254304] by Alan Coon
  • 1 copy in tags/Safari-608.5.7.3.1

Tag Safari-608.5.7.3.1.

2:57 PM Changeset in webkit [254303] by basuke.suzuki@sony.com
  • 6 edits
    1 copy
    1 add in trunk/Source/bmalloc

[bmalloc] Extract constants from Heap and share it among Heaps.
https://bugs.webkit.org/show_bug.cgi?id=205834

Reviewed by Geoffrey Garen.

A Heap has many constants (m_vmPageSizePhysical, m_smallLineMetadata and m_pageClasses) and they
are dependent only to vmPageSizePhysical and identical for all Heaps.

Extracting them into a class and make it sharable among heaps. Also this is the first step for
making Heap constants to actual constexpr.

  • CMakeLists.txt: Added HeapConstants.cpp.
  • bmalloc.xcodeproj/project.pbxproj: Ditto.
  • bmalloc/Heap.cpp: Referencing HeapConstants object to get information.

(bmalloc::Heap::Heap):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::initializeLineMetadata): Moved to HeapConstants.cpp.
(bmalloc::Heap::initializePageMetadata): Moved to HeapConstants.cpp.

  • bmalloc/Heap.h: Extract metadata initialization and member variables.
  • bmalloc/HeapConstants.cpp: Added.

(bmalloc::HeapConstants::HeapConstants):
(bmalloc::HeapConstants::initializeLineMetadata):
(bmalloc::HeapConstants::initializePageMetadata):

  • bmalloc/HeapConstants.h:

(bmalloc::HeapConstants::pageClass const):
(bmalloc::HeapConstants::smallLineCount const):
(bmalloc::HeapConstants::startOffset):
(bmalloc::HeapConstants::objectCount):
(bmalloc::HeapConstants::lineMetadata):

2:57 PM Changeset in webkit [254302] by Ryan Haddad
  • 2 edits in trunk/Tools

Move macOS Test262, JSC, and perf queues to Catalina
https://bugs.webkit.org/show_bug.cgi?id=205971

Unreviewed infrastructure fix.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Add missing scheduler for perf queue.
2:41 PM Changeset in webkit [254301] by Brent Fulgham
  • 3 edits
    2 adds in trunk

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.
2:38 PM Changeset in webkit [254300] by Alan Coon
  • 1 copy in tags/Safari-609.1.14

Tag Safari-609.1.14.

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

Fix a tiny logging mistake in launchProcess
https://bugs.webkit.org/show_bug.cgi?id=206026

Reviewed by Wenson Hsieh.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcess):

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

Update status for Web SQL Database
https://bugs.webkit.org/show_bug.cgi?id=205304

Patch by Eamon Sisk <esisk@apple.com> on 2020-01-09
Reviewed by Darin Adler.

The status for Web SQL Database is out of date.

  • features.json:
2:19 PM Changeset in webkit [254297] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fix redundant anchor tags when generating table of contents
https://bugs.webkit.org/show_bug.cgi?id=206016

Reviewed by Devin Rousso.

  • wp-content/plugins/table-of-contents.php:
2:01 PM Changeset in webkit [254296] by wilander@apple.com
  • 24 edits
    2 copies
    2 adds in trunk

Resource Load Statistics: Add timing information to WebPageProxy::logFrameNavigation() to detect delayed client-side redirects
https://bugs.webkit.org/show_bug.cgi?id=205522
<rdar://problem/58125759>

Reviewed by Chris Dumez.

Source/WebKit:

The purpose of this patch is to capture navigations that happen programmatically
after the document has loaded. These are delayed redirects and should be counted
as redirects in ITP.

To achieve this, a timestamp is captured in
WebPageProxy::didFinishDocumentLoadForFrame() to be able to calculate how much time
has passed since that timestamp in the IPC sent from
WebPageProxy::logFrameNavigation(). The IPC also gets information on whether
userInitiatedActivity exists so that ITP can decide whether to treat the navigation
as triggered by the user or not.

A new test was added and existing test expectations were updated.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.

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

(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.

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

(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.
The deleted WebResourceLoadStatisticsStore::logFrameNavigation() was dead code.

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

(WebKit::NetworkProcess::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]): Deleted.

Dead code.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):

Now captures a timestamp.

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Removed dead code.

(WebKit::WebPageProxy::logFrameNavigation):

Now sends the diff between now and the timestamp captured in
WebPageProxy::didFinishDocumentLoadForFrame().

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformInitialize):

Removed dead code.

(WebKit::WebsiteDataStore::platformDestroy):

Removed dead code.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resourceLoadStatistics const): Deleted.

Dead code.

Tools:

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

Removed dead code.

LayoutTests:

Results updated with additional data now that delayed redirects are captured.

  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:
  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database.html: Added.
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt: Added.
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects.html: Added.
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
1:56 PM Changeset in webkit [254295] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Implement encoders and decoders for more font-related entities
https://bugs.webkit.org/show_bug.cgi?id=205952

Reviewed by Dean Jackson.

Implement encode/decode template methods for more font-rendering-related objects in WebCore.

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::encode const):
(WebCore::FontDescription::decode):

  • platform/graphics/FontSelectionAlgorithm.h:

(WebCore::FontSelectionValue::encode const):
(WebCore::FontSelectionValue::decode):
(WebCore::FontSelectionRange::encode const):
(WebCore::FontSelectionRange::decode):
(WebCore::FontSelectionSpecifiedCapabilities::encode const):
(WebCore::FontSelectionSpecifiedCapabilities::decode):

  • platform/graphics/FontTaggedSettings.h:

(WebCore::FontTaggedSetting<T>::encode const):
(WebCore::FontTaggedSetting<T>::decode):

We cast from uint8_t to char and back when encoding and decoding because IPC encoders are currently only
able to encode uint8_ts, rather than chars. We could alternately address this in a future patch by adding
encode/decode functions for char to Encoder.h.

(WebCore::FontTaggedSettings<T>::encode const):
(WebCore::FontTaggedSettings<T>::decode):

1:39 PM Changeset in webkit [254294] by Andres Gonzalez
  • 2 edits in trunk/Source/WebKit

WKAccessibilityWebPageObject should use Accessibility::retrieveValueFromMainThread.
https://bugs.webkit.org/show_bug.cgi?id=206009

Reviewed by Chris Fleizach.

  • WKAccessibilityWebPageObject now uses Accessibility::retrieveValueFromMainThread,

which is consistent with WebAccessibilityObjectWrapper.

  • It also uses a captured protectedSelf to ensure the object is alive

when the lambda is invoked on the main thread.

  • Added nullity check for m_page in accessibilityAttributeSizeValue,

which is a potential crasher in the multithreaded mode.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WKAccessibilityWebPageObject convertScreenPointToRootView:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeSizeValue]):
(-[WKAccessibilityWebPageObject accessibilityAttributePositionValue]):
(-[WKAccessibilityWebPageObject accessibilityDataDetectorValue:point:]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
(retrieveAccessibilityValueFromMainThread): Not needed since it uses now the one in Accessibility nasespace.

1:32 PM Changeset in webkit [254293] by wilander@apple.com
  • 9 edits in trunk/Source

Resource Load Statistics: Flip experimental website data removal setting from an enable to a disable
https://bugs.webkit.org/show_bug.cgi?id=205966
<rdar://problem/58425000>

Reviewed by Brent Fulgham.

To get default on behavior, experimental features in the network process need to be
turned from enable flags to disable flags. This patch does that for the experimental
website data removal flag.

Source/WebCore:

No new tests. This change just reverses the interpretation of a flag.

  • page/Settings.yaml:

Source/WebKit:

This change also aligns the init values of the setting to match the default.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/NetworkSessionCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

1:10 PM Changeset in webkit [254292] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Set the title for images so it will be correctly displayed in UIContextMenus
https://bugs.webkit.org/show_bug.cgi?id=205980
<rdar://problem/57701988>

Reviewed by Dean Jackson.

Need to set the title text for images.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView continueContextMenuInteraction:]):

12:52 PM Changeset in webkit [254291] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

ImageBitmap can't be created in workers in some cases due to main-thread assert in ImageSource
https://bugs.webkit.org/show_bug.cgi?id=205850

Patch by Chris Lord <Chris Lord> on 2020-01-09
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-worker.js: Added.

Source/WebCore:

Assert that we're destroyed on the creation thread, rather than on the
main thread. This is required for ImageBitmap creation in workers in
debug builds.

Test: imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::startAsyncDecodingQueue):

  • platform/graphics/ImageSource.h:
12:35 PM Changeset in webkit [254290] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Race condition in run-jsc-stress-tests chdir
https://bugs.webkit.org/show_bug.cgi?id=205910

Patch by Paulo Matos <Paulo Matos> on 2020-01-09
Reviewed by Keith Miller.

chdir block was in a race condition when multiple remotes are used.
As an example of this see line 3345 of:

https://ews-build.webkit.org/#/builders/26/builds/5719/steps/12/logs/stdio

quote error:
Tools/Scripts/run-jsc-stress-tests:1946: warning: conflicting chdir during another chdir block

Multiple threads should not enter a chdir block simultaneously, therefore we need
a mutex to guard it. More information is here:

https://bugs.ruby-lang.org/issues/15661

  • Scripts/run-jsc-stress-tests:
12:24 PM Changeset in webkit [254289] by Ryan Haddad
  • 2 edits in trunk/Tools

Move commit queue to Mojave
https://bugs.webkit.org/show_bug.cgi?id=205972

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer):

12:18 PM Changeset in webkit [254288] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[Cocoa] persistent-usage-record message fails first time; succeeds subsequent times
https://bugs.webkit.org/show_bug.cgi?id=205970
<rdar://problem/57785647>

Reviewed by Eric Carlson.

The AVContentKeySession is created too early; before the CDM has a chance to provide the storage path
for persistent usage records. Delay creation of the AVCKS until it's actually needed during the first
license request.

Drive-by fix: fix the exceptional case where a PUR session is closed but PUR data isn't available; send
a null message rather than an empty array.

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::CDMInstanceFairPlayStreamingAVFObjC): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::ensureSession): Deleted.

12:08 PM Changeset in webkit [254287] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Fullscreen videos do not enter PiP in first tap
https://bugs.webkit.org/show_bug.cgi?id=205986

Reviewed by Eric Carlson.

This patch essentially reverts the fix for webkit.org/b/204461.
The fix for webkit.org/b/204461 depends on a fix in AVKit along
with a corresponding update in WebKit (webkit.org/b/204979).
We will need to reapply the fix for webkit.org/b/204461 after they are landed.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

12:01 PM Changeset in webkit [254286] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

ITP API classes need WK_CLASS_AVAILABLE tags
https://bugs.webkit.org/show_bug.cgi?id=205969
<rdar://problem/58427147>

Reviewed by Dean Jackson.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h:
  • WebKit.xcodeproj/project.pbxproj:

This updates the header file targets from Project to Private.

11:52 AM Changeset in webkit [254285] by Pablo Saavedra
  • 3 edits
    2 copies
    1 add in trunk/LayoutTests

Bad baseline for Catalina on xhr web-platform-tests imported in r254154
https://bugs.webkit.org/show_bug.cgi?id=205991

Unreviewed, fix some Catalina builds after r254154.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/getallresponseheaders-expected.txt:

LayoutTests:

  • platform/mac-highsierra/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt.
  • platform/mac-mojave/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt.
11:49 AM Changeset in webkit [254284] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608.5.7.3-branch

Cherry-pick r254220. rdar://problem/58450166

Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp: (WebCore::computeFontSelectionRequest): (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.

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

11:40 AM Changeset in webkit [254283] by Alan Coon
  • 7 edits in branches/safari-608.5.7.3-branch/Source

Versioning.

11:27 AM Changeset in webkit [254282] by Alan Coon
  • 1 copy in branches/safari-608.5.7.3-branch

New branch.

11:24 AM Changeset in webkit [254281] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Fix iOS build.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContext.cpp:

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

11:13 AM Changeset in webkit [254280] by Ryan Haddad
  • 5 edits in trunk/Tools

Move macOS Test262, JSC, and perf queues to Catalina
https://bugs.webkit.org/show_bug.cgi?id=205971

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.macos-highsierra img.logo): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
11:12 AM Changeset in webkit [254279] by Justin Fan
  • 3 edits in trunk/LayoutTests

[WebGL] Skip all webgl/2.0.0 tests, as ANGLE switch obsoletes all old expectated results
https://bugs.webkit.org/show_bug.cgi?id=205988

Unreviewed test gardening.

The WebGL dedicated queue will continue to run failing tests.
Normal bots will only enable 2.0.0 tests after development work confirms they are passing with ANGLE.

10:56 AM Changeset in webkit [254278] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r254220. rdar://problem/58429231

Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp: (WebCore::computeFontSelectionRequest): (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.

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

10:39 AM Changeset in webkit [254277] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] Rename UsedHorizontal(Vertical)Values to OverrideHorizontal(Vertical)values
https://bugs.webkit.org/show_bug.cgi?id=206008
<rdar://problem/58443375>

Reviewed by Antti Koivisto.

These structure are a mixture of specified and used values.
What these specified/used values mean in this context is that they override the default input
values for the "compute geometry" functions (e.g. computing the width of a floating box follows
the same set of steps as computing the width of an inline replaced box. So whenever we need to
compute the width of a floating box, we could just call the computeInlineReplacedWidth() function.
However their horizontal margin computations are different and since width and horizontal margins are being computed together,
we need to make sure that inlineReplacedWidthAndMargin() takes a set of pre-computed margin values
and uses them while computing the width value. Same applies to min/max-width/heigh computations.)

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

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

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

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

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

10:36 AM Changeset in webkit [254276] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

10:34 AM Changeset in webkit [254275] by Alan Coon
  • 7 edits in branches/safari-608.5.0.2-branch/Source

Versioning.

10:34 AM Changeset in webkit [254274] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Add missing HorizontalConstraints/VerticalConstraints
https://bugs.webkit.org/show_bug.cgi?id=205987
<rdar://problem/58432728>

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
10:33 AM Changeset in webkit [254273] by Alan Coon
  • 2 edits in branches/safari-608.5.0.2-branch/Source/WebKit

Apply patch. rdar://problem/58396582

10:30 AM Changeset in webkit [254272] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] Decouple UsedHorizontal(Vertical)Values and Horizontal(Vertical)Constraints
https://bugs.webkit.org/show_bug.cgi?id=205985
<rdar://problem/58431985>

Reviewed by Antti Koivisto.

Some geometry functions need only the constraint values and some need both the constraint and the used values.

Inflow:

horizontal:

width and margin: needs horizontal constraint (containing block width) and the used values (min/max width).
position: needs horizontal constraint (containing block's content box left).

vertical:

height and margin: needs horizontal constraint to resolve margin values and the used values (min/max height).
position: needs vertical constraint (containing block's content box top).

Out-of-flow:

horizontal geometry: horizontal constraint and the used value.
vertical geometry: horizontal and vertical constraint and the vertical used value.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues): Deleted.
(WebCore::Layout::UsedVerticalValues::UsedVerticalValues): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

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

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

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalAndVerticalGeometry):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

10:25 AM Changeset in webkit [254271] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC] Use Horizontal/VerticalConstraints wherever possible
https://bugs.webkit.org/show_bug.cgi?id=205973
<rdar://problem/58426772>

Reviewed by Antti Koivisto.

Let's pass in Horizontal/VerticalConstraints struct instead of the UsedHorizontal/VerticalValues
to the "compute geometry" functions when only the constraint values are needed/available.
This is also in preparation for decoupling used and constraint values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):

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

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

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

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/blockformatting/BlockMarginCollapse.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalAndVerticalGeometry):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

10:20 AM Changeset in webkit [254270] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC] Move Constraints struct out of UsedHorizontal(Vertical)values.
https://bugs.webkit.org/show_bug.cgi?id=205944
<rdar://problem/58415893>

Reviewed by Antti Koivisto.

This is in preparation for decoupling used values and constraints.
Certain "compute geometry" functions only need the constraints while others only need the used values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForInFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForInFlow):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues):
(WebCore::Layout::UsedVerticalValues::UsedVerticalValues):
(WebCore::Layout::UsedHorizontalValues::Constraints::Constraints): Deleted.
(WebCore::Layout::UsedVerticalValues::Constraints::Constraints): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

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

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::computedTextIndent const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

  • layout/tableformatting/TableFormattingContext.h:
10:14 AM Changeset in webkit [254269] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] FormattingContext::layoutInFlowContent should take UsedVerticalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=205937
<rdar://problem/58412170>

Reviewed by Antti Koivisto.

This is in preparation for not needing to query the containing block for constraint information.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
10:06 AM Changeset in webkit [254268] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][BFC] Start passing in vertical constraints to compute* functions
https://bugs.webkit.org/show_bug.cgi?id=205934
<rdar://problem/58411387>

Reviewed by Antti Koivisto.

This is in preparation for not needing to query the containing block for constraint information.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForInFlow):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
10:02 AM Changeset in webkit [254267] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Reformat FrameView logging
https://bugs.webkit.org/show_bug.cgi?id=205984
<rdar://problem/58431722>

Reviewed by Brent Fulgham.

Update the format used by FrameView in its RELEASE_LOG logging. Use
the format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

0x4a1cf8010 - FrameView::fireLayoutRelatedMilestonesIfNeeded() - firing first visually non-empty layout milestone on the main frame

becomes:

0x561be8010 - [frame=0x55d47e000, main=1] FrameView::fireLayoutRelatedMilestonesIfNeeded: Firing first visually non-empty layout milestone on the main frame

No new tests -- no new or changed functionality.

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):

9:59 AM Changeset in webkit [254266] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] computeHeightAndMargin/placeInFlowPositionedChildren should take UsedHorizontalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=205904
<rdar://problem/58398413>

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::move):

9:54 AM Changeset in webkit [254265] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::layoutFormattingContextRoot should take the horizontal constraints
https://bugs.webkit.org/show_bug.cgi?id=205894
<rdar://problem/58391798>

Reviewed by Antti Koivisto.

layoutFormattingContextRoot should not need to read the containing block's geometry for constraints information.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
9:37 AM Changeset in webkit [254264] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebCore

IndexedDB: stop cursor prefetching when size of cached records reaches limit
https://bugs.webkit.org/show_bug.cgi?id=205909

Reviewed by Alex Christensen.

SQLiteIDBCursor was allowed to prefetch 8 cursor records at most. This patch introduces a new rule for better
flexibility. Prefetch will stop if either of the following conditions is true:

  1. number of prefetched records is not less than 128
  2. size of prefeteched records is not less than 8MB
  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::size const):

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::size const):

  • Modules/indexeddb/IDBValue.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch):
(WebCore::IDBServer::SQLiteIDBCursor::advance):
(WebCore::IDBServer::SQLiteIDBCursor::fetch):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/shared/IDBCursorRecord.h:

(WebCore::IDBCursorRecord::size const):

9:36 AM Changeset in webkit [254263] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] FormattingContext::layoutOutOfFlowContent should take horizontal and vertical constraints.
https://bugs.webkit.org/show_bug.cgi?id=205892
<rdar://problem/58389802>

Reviewed by Antti Koivisto.

The caller should provide the horizontal/vertical constraints for the the out-of-flow boxes. It helps to make sure that we don't access geometry information
in the parent formatting context.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForInFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForInFlow):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalConstraints): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalConstraints): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inFlowHorizontalConstraints): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inFlowVerticalConstraints): Deleted.

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/blockformatting/BlockMarginCollapse.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

8:49 AM Changeset in webkit [254262] by commit-queue@webkit.org
  • 5 edits in trunk

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

Broke production builds (Requested by ap on #webkit).

Reverted changeset:

"build-jsc should invoke make instead of calling xcodebuild
directly"
https://bugs.webkit.org/show_bug.cgi?id=205960
https://trac.webkit.org/changeset/254234

8:47 AM Changeset in webkit [254261] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] http/wpt/service-workers/persistent-importScripts.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205886
<rdar://problem/58387910>

Reviewed by Chris Dumez.

Make sure registrations are stored on disk before crashing the network process.

  • http/wpt/service-workers/persistent-importScripts.html:
  • platform/mac-wk2/TestExpectations:
8:22 AM Changeset in webkit [254260] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] webrtc/video-autoplay.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205893
<rdar://problem/58391046>

Reviewed by Eric Carlson.

  • webrtc/video-autoplay.html:

Speculative fix as I am not able to reproduce locally.
Hypothesis is that removing from DOM the video element is supposed to asynchronously pause the video element.
We should therefore ensure that the video element is paused before calling getUserMedia.

7:58 AM Changeset in webkit [254259] by youenn@apple.com
  • 12 edits in trunk/Source

REGRESSION: [ Mac wk2 ] fast/mediastream/captureInGPUProcess.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205873
<rdar://problem/58380638>

Reviewed by Eric Carlson.

Source/WebCore:

Beef up reporting of error cases when device is not found for a getUserMedia call.
Covered by unflaked test.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::create):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::create):

  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockRealtimeAudioSource::create):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSource::create):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::create):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::create):

Source/WebKit:

GPUProcess and UIProcess were sometimes getting out of sync with regards to using mock devices or real capture devices.
This ended up in GPUProcess trying to find mock devices based on real device IDs.
Fix this issue by storing this bool value in GPUProcessProxy and send IPC to GPUProcess whenver this value is changed.
Update GPUProcessProxy value whenever UserMediaPermissionRequestManagerProxy is asked to sync this value.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::singleton):
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::setUseMockCaptureDevices):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

7:31 AM Changeset in webkit [254258] by magomez@igalia.com
  • 130 edits in trunk/LayoutTests

Unreviewed WPE gardening: rebaseline several tests after r254044.

  • platform/wpe/css1/basic/containment-expected.txt:
  • platform/wpe/css1/basic/contextual_selectors-expected.txt:
  • platform/wpe/css1/basic/grouping-expected.txt:
  • platform/wpe/css1/basic/id_as_selector-expected.txt:
  • platform/wpe/css1/basic/inheritance-expected.txt:
  • platform/wpe/css1/box_properties/border-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_width-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_color-expected.txt:
  • platform/wpe/css1/box_properties/border_color_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_left-expected.txt:
  • platform/wpe/css1/box_properties/border_left_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_left_width-expected.txt:
  • platform/wpe/css1/box_properties/border_left_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_right-expected.txt:
  • platform/wpe/css1/box_properties/border_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_right_width-expected.txt:
  • platform/wpe/css1/box_properties/border_right_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_style-expected.txt:
  • platform/wpe/css1/box_properties/border_style_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_top-expected.txt:
  • platform/wpe/css1/box_properties/border_top_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_top_width-expected.txt:
  • platform/wpe/css1/box_properties/border_top_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_width-expected.txt:
  • platform/wpe/css1/box_properties/border_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/clear-expected.txt:
  • platform/wpe/css1/box_properties/clear_float-expected.txt:
  • platform/wpe/css1/box_properties/float-expected.txt:
  • platform/wpe/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/wpe/css1/box_properties/float_margin-expected.txt:
  • platform/wpe/css1/box_properties/height-expected.txt:
  • platform/wpe/css1/box_properties/margin-expected.txt:
  • platform/wpe/css1/box_properties/margin_bottom-expected.txt:
  • platform/wpe/css1/box_properties/margin_bottom_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_left-expected.txt:
  • platform/wpe/css1/box_properties/margin_left_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_right-expected.txt:
  • platform/wpe/css1/box_properties/margin_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_top-expected.txt:
  • platform/wpe/css1/box_properties/margin_top_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding-expected.txt:
  • platform/wpe/css1/box_properties/padding_bottom-expected.txt:
  • platform/wpe/css1/box_properties/padding_bottom_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_left-expected.txt:
  • platform/wpe/css1/box_properties/padding_left_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_right-expected.txt:
  • platform/wpe/css1/box_properties/padding_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_top-expected.txt:
  • platform/wpe/css1/box_properties/padding_top_inline-expected.txt:
  • platform/wpe/css1/box_properties/width-expected.txt:
  • platform/wpe/css1/cascade/cascade_order-expected.txt:
  • platform/wpe/css1/cascade/important-expected.txt:
  • platform/wpe/css1/classification/display-expected.txt:
  • platform/wpe/css1/classification/list_style-expected.txt:
  • platform/wpe/css1/classification/list_style_image-expected.txt:
  • platform/wpe/css1/classification/list_style_position-expected.txt:
  • platform/wpe/css1/classification/list_style_type-expected.txt:
  • platform/wpe/css1/classification/white_space-expected.txt:
  • platform/wpe/css1/color_and_background/background-expected.txt:
  • platform/wpe/css1/color_and_background/background_attachment-expected.txt:
  • platform/wpe/css1/color_and_background/background_color-expected.txt:
  • platform/wpe/css1/color_and_background/background_image-expected.txt:
  • platform/wpe/css1/color_and_background/background_position-expected.txt:
  • platform/wpe/css1/color_and_background/background_repeat-expected.txt:
  • platform/wpe/css1/color_and_background/color-expected.txt:
  • platform/wpe/css1/conformance/forward_compatible_parsing-expected.txt:
  • platform/wpe/css1/font_properties/font-expected.txt:
  • platform/wpe/css1/font_properties/font_family-expected.txt:
  • platform/wpe/css1/font_properties/font_size-expected.txt:
  • platform/wpe/css1/font_properties/font_style-expected.txt:
  • platform/wpe/css1/font_properties/font_variant-expected.txt:
  • platform/wpe/css1/font_properties/font_weight-expected.txt:
  • platform/wpe/css1/formatting_model/canvas-expected.txt:
  • platform/wpe/css1/formatting_model/floating_elements-expected.txt:
  • platform/wpe/css1/formatting_model/height_of_lines-expected.txt:
  • platform/wpe/css1/formatting_model/inline_elements-expected.txt:
  • platform/wpe/css1/formatting_model/replaced_elements-expected.txt:
  • platform/wpe/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/wpe/css1/pseudo/anchor-expected.txt:
  • platform/wpe/css1/pseudo/firstletter-expected.txt:
  • platform/wpe/css1/pseudo/firstline-expected.txt:
  • platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/wpe/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
  • platform/wpe/css1/text_properties/letter_spacing-expected.txt:
  • platform/wpe/css1/text_properties/line_height-expected.txt:
  • platform/wpe/css1/text_properties/text_align-expected.txt:
  • platform/wpe/css1/text_properties/text_decoration-expected.txt:
  • platform/wpe/css1/text_properties/text_indent-expected.txt:
  • platform/wpe/css1/text_properties/text_transform-expected.txt:
  • platform/wpe/css1/text_properties/vertical_align-expected.txt:
  • platform/wpe/css1/text_properties/word_spacing-expected.txt:
  • platform/wpe/css1/units/color_units-expected.txt:
  • platform/wpe/css1/units/length_units-expected.txt:
  • platform/wpe/css1/units/percentage_units-expected.txt:
  • platform/wpe/css1/units/urls-expected.txt:
  • platform/wpe/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
  • platform/wpe/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
  • platform/wpe/fast/css/empty-pseudo-class-expected.txt:
  • platform/wpe/fast/css/first-child-pseudo-class-expected.txt:
  • platform/wpe/fast/css/last-child-pseudo-class-expected.txt:
  • platform/wpe/fast/css/only-child-pseudo-class-expected.txt:
  • platform/wpe/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/wpe/fast/html/listing-expected.txt:
  • platform/wpe/fast/invalid/junk-data-expected.txt:
  • platform/wpe/fast/invalid/missing-end-tag-expected.txt:
  • platform/wpe/fast/parser/xhtml-alternate-entities-expected.txt:
  • platform/wpe/fast/table/border-collapsing/004-expected.txt:
  • platform/wpe/fast/table/border-collapsing/004-vertical-expected.txt:
  • platform/wpe/fast/xsl/xslt-extra-content-at-end-expected.txt:
  • platform/wpe/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
  • platform/wpe/svg/custom/bug45331-expected.txt:
  • platform/wpe/svg/custom/junk-data-expected.txt:
  • platform/wpe/svg/custom/missing-xlink-expected.txt:
  • platform/wpe/svg/custom/path-bad-data-expected.txt:
  • platform/wpe/svg/custom/use-font-face-crash-expected.txt:
  • platform/wpe/svg/hixie/error/012-expected.txt:
  • platform/wpe/tables/mozilla/bugs/45621-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug139524-2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
6:32 AM Changeset in webkit [254257] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore/PAL

Don't softlink AVCapture classes on watchOS or tvOS
https://bugs.webkit.org/show_bug.cgi?id=205974
<rdar://problem/45508044>

Reviewed by Jon Lee.

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:
6:31 AM Changeset in webkit [254256] by youenn@apple.com
  • 4 edits
    1 copy
    1 add in trunk

RemoteVideoSample should be able to support canvas video samples
https://bugs.webkit.org/show_bug.cgi?id=205922

Reviewed by Eric Carlson.

Source/WebCore:

Canvas capture is producing video samples that are not IOSurface backed.
This makes it impossible to send them through IPC via RemoteVideoSample.
We beef up RemoteVideoSample to create an IOSurface for RGBA video samples.

Test: http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::transferBGRAPixelBufferToIOSurface):
(WebCore::RemoteVideoSample::create):

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:

Remove no longer valid comment and beef up test in case of assertion failure.

6:23 AM Changeset in webkit [254255] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Mark imported/w3c/webdriver/tests/switch_to_frame/cross_origin.py::test_nested_cross_origin_iframe as failure

3:47 AM Changeset in webkit [254254] by ddkilzer@apple.com
  • 5 edits in trunk

WebKitTestRunner leaks objects in a top-level autoreleasePool that's never cleared
<https://webkit.org/b/205950>
<rdar://problem/50987831>

Reviewed by Joseph Pecoraro.

Source/WebKit:

  • UIProcess/mac/WebPreferencesMac.mm:

(WebKit::WebPreferences::platformInitializeStore):

  • Add an @autoreleasepool block around the contents of this method since it generates numerous autoreleased objects when run.

Tools:

  • WebKitTestRunner/ios/mainIOS.mm:

(main):

  • Add an @autoreleasepool block around a line of code that generates autoreleased objects. These objects would never be released for the life of the process prior to this change.
  • WebKitTestRunner/mac/main.mm:

(main):

  • Move instantiation of WTR::TestController outside of @autoreleasepool block so the pool can be drained while running tests. Prior to this change, this autoreleasePool would never be drained.

Jan 8, 2020:

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

Fix test transferToImageBitmap-empty.html after r253099
https://bugs.webkit.org/show_bug.cgi?id=205924

Reviewed by Žan Doberšek.

  • http/wpt/offscreen-canvas/transferToImageBitmap-empty.html:
10:07 PM Changeset in webkit [254252] by keith_miller@apple.com
  • 71 edits
    7 adds in trunk

[JSC] Introduce JSArrayIterator
https://bugs.webkit.org/show_bug.cgi?id=204043

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-iterator-materialize-at-osr-exit.js: Added.

(shouldBe):
(test):

  • stress/array-iterator-materialize-one-path.js: Added.

(shouldBe):
(test):

  • stress/array-iterator-materialize.js: Added.

(shouldBe):
(test):

  • stress/array-iterator-sinking.js: Added.

(shouldBe):
(test):

  • stress/array-iterators-next-error-messages.js:

(catch):

  • stress/array-iterators-next-with-call.js:
  • stress/for-of-iteration.js: Added.

(shouldBe):
(test1):
(test2):
(test3):

  • stress/typedarray-functions-with-neutered.js:

(checkProtoFunc):

Source/JavaScriptCore:

This patch introduces JSArrayIterator that changes the iterator object
from a JSFinalObject to an InternalFieldsObject. This makes accessing it
much easier from C++ code and makes the iterator object smaller. It also
means that the JS code for the next function is much simpler and can *almost*
be inlined without shenanigans.

As part of this patch the keys/values/entries functions have been converted to
C++ with intrinsics since that's slightly more efficient in the LLInt/Baseline.

Lastly, this patch also add a custom ISOSubspace for JSArrayIterator objects.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/ArrayIteratorPrototype.js:

(next):
(globalPrivate.arrayIteratorNextHelper):
(globalPrivate.arrayIteratorValueNext): Deleted.
(globalPrivate.arrayIteratorKeyNext): Deleted.
(globalPrivate.arrayIteratorKeyValueNext): Deleted.

  • builtins/ArrayPrototype.js:

(globalPrivate.ArrayIterator): Deleted.
(values): Deleted.
(keys): Deleted.
(entries): Deleted.

  • builtins/TypedArrayPrototype.js:

(values): Deleted.
(keys): Deleted.
(entries): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsArrayIterator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::arrayIteratorInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getArrayIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putArrayIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isGenerator): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isAsyncGenerator): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isJSArray): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isPromise): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isProxyObject): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isRegExpObject): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isObject): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isDerivedArray): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isMap): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isSet): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isUndefinedOrNull): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToPhantomNewObject):
(JSC::DFG::Node::convertToPhantomNewArrayIterator):
(JSC::DFG::Node::convertToPhantomCreateActivation):
(JSC::DFG::Node::hasStructure):
(JSC::DFG::Node::hasObjectMaterializationData):
(JSC::DFG::Node::isPhantomAllocation):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGPromotedHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGPromotedHeapLocation.h:

(JSC::DFG::PromotedLocationDescriptor::neededForMaterialization const):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckNeutered):
(JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor):
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject):
(JSC::DFG::SpeculativeJIT::compileNewArrayIterator):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckArray):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckNeutered):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayIterator):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewInternalFieldObjectImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewInternalFieldObject):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::cloneArrayIteratorObject):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::createArrayIteratorObject):
(JSC::arrayProtoFuncValues):
(JSC::arrayProtoFuncEntries):
(JSC::arrayProtoFuncKeys):

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

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/IterationKind.h:

(): Deleted.

  • runtime/JSArrayIterator.cpp: Added.

(JSC::JSArrayIterator::create):
(JSC::JSArrayIterator::createWithInitialValues):
(JSC::JSArrayIterator::createStructure):
(JSC::JSArrayIterator::JSArrayIterator):
(JSC::JSArrayIterator::finishCreation):
(JSC::JSArrayIterator::visitChildren):

  • runtime/JSArrayIterator.h: Added.
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arrayIteratorPrototype const):
(JSC::JSGlobalObject::arrayIteratorStructure const):

  • runtime/JSMapIterator.h:
  • runtime/JSSetIterator.h:
  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::createTypedArrayIteratorObject):
(JSC::typedArrayViewProtoFuncValues):
(JSC::typedArrayProtoViewFuncEntries):
(JSC::typedArrayViewProtoFuncKeys):
(JSC::JSTypedArrayViewPrototype::finishCreation):

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

Source/WebCore:

JSDOMIterator should just use the JSC IterationKind enum. Also,
update other files for the enum member name changes.

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorTraits>::asJS):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateIterableDefinition):

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

(WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
(WebCore::jsTestInterfacePrototypeFunctionKeysCaller):
(WebCore::jsTestInterfacePrototypeFunctionValuesCaller):

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

(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
(WebCore::jsTestIterablePrototypeFunctionKeysCaller):
(WebCore::jsTestIterablePrototypeFunctionValuesCaller):

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

(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
(WebCore::jsTestNodePrototypeFunctionKeysCaller):
(WebCore::jsTestNodePrototypeFunctionValuesCaller):

LayoutTests:

Change the labels of iteration kinds to match what JS refers to them as.

  • inspector/model/remote-object/iterator-expected.txt:
  • inspector/model/remote-object/iterator-large-expected.txt:
  • inspector/model/remote-object/iterators-mutated-expected.txt:
10:02 PM Changeset in webkit [254251] by sbarati@apple.com
  • 2 edits in trunk/Tools

build-jsc should work with "testing" and "release+assert" targets
https://bugs.webkit.org/show_bug.cgi?id=205978

Reviewed by Mark Lam.

  • Scripts/webkitdirs.pm:

(determineConfiguration):
(determinePassedConfiguration):

9:31 PM Changeset in webkit [254250] by Alexey Shvayka
  • 2 edits
    14 deletes in trunk/LayoutTests/imported/w3c

Clean up web-platform-tests/resources
https://bugs.webkit.org/show_bug.cgi?id=204652

Reviewed by Dean Jackson.

This patch removes web-platform-tests/resources subdirectories that are
missing in upstream 73d748fca7e8 (import-w3c-tests tool seems to keep them).

Also it removes and marks as "skip" in import-expectations.json two subdirectories:

  1. web-platform-tests/resources/chromium as it contains Chromium-specific harness we don't use;
  2. web-platform-tests/resources/test as it contains harness tests we don't run.

In total, this patch removes ~2 MB of unneeded files.

  • resources/import-expectations.json:
  • web-platform-tests/resources/*: Updated.
6:45 PM Changeset in webkit [254249] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Remove some #ifdefs related to iOS port of ANGLE
https://bugs.webkit.org/show_bug.cgi?id=205781

Since the port to the iOS Simulator in
https://bugs.webkit.org/show_bug.cgi?id=205618 , these #ifdefs
should no longer be needed.

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

  • src/common/PackedEnums.cpp:

(egl_gl::EGLTextureTargetToTextureType):

  • src/libANGLE/validationES2.cpp:

(gl::ValidateFramebufferTexture2D):

6:33 PM Changeset in webkit [254248] by sbarati@apple.com
  • 4 edits in trunk

build-jsc should invoke make instead of calling xcodebuild directly
https://bugs.webkit.org/show_bug.cgi?id=205960

Reviewed by Keith Miller.

.:

  • Makefile.shared:

Tools:

This makes build-jsc invoke make instead of directly invoking xcodebuild.
There are some benefits here:

  • 'make' is a more standard way to build than build-jsc, so as we make

improvements to the make build (e.g r254234), we'll get the same improvements
in build-jsc.

  • There has been a longstanding bug where if you did if you did

build-jsc --release && cd Source/JavaScriptCore && make release
then the make release call would rebuild all of JavaScriptCore.
If build-jsc directly invokes make, this issue goes away and allows
the two to interoperate as expected.

  • Scripts/build-jsc:

(buildMyProject):

6:30 PM Changeset in webkit [254247] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Unreviewed follow up on r254188. I accidentally included the same test
twice instead of including the two different variants.

  • stress/ai-value-mod-should-result-in-constant-int-where-possible.js:
6:24 PM Changeset in webkit [254246] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

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

Broke layout tests (Requested by aakashja_ on #webkit).

Reverted changeset:

"run-webkit-tests: clobber-old-results should remove the
entire results folder"
https://bugs.webkit.org/show_bug.cgi?id=205875
https://trac.webkit.org/changeset/254235

Patch by Commit Queue <commit-queue@webkit.org> on 2020-01-08

6:15 PM Changeset in webkit [254245] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: not all injected scripts and style sheets are from extensions
https://bugs.webkit.org/show_bug.cgi?id=205955

Reviewed by Brian Burg.

  • UserInterface/Base/Utilities.js:

(isWebKitExtensionScheme): Added.

  • UserInterface/Models/CSSStyleSheet.js:

(WI.CSSStyleSheet.prototype.get injected):

  • .eslintrc:

Move the logic for detecting an extension injected resource to its own function.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject):
(WI.SourcesNavigationSidebarPanel.prototype._addStyleSheet):
(WI.SourcesNavigationSidebarPanel.prototype._addScript):
Only show the Anonymous Style Sheets folder once the user tries to show a style sheet that
would be in it.

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype.didPresentDialog):
(WI.OpenResourceDialog.prototype._addScriptsForTarget):
(WI.OpenResourceDialog.prototype._handleStyleSheetAdded):
(WI.OpenResourceDialog.prototype._handleStyleSheetRemoved):
Ignore anonymous scripts, and allow injected style sheets to be added after presenting.

6:04 PM Changeset in webkit [254244] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Instruction.h: Multiplication result converted to larger type
https://bugs.webkit.org/show_bug.cgi?id=205945

Reviewed by Mark Lam.

  • bytecode/Instruction.h:

(JSC::BaseInstruction::size const):
Changed the types to size_t so that the computation is computed accordingly.

6:00 PM Changeset in webkit [254243] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Show RGBA input fields for p3 color picker
https://bugs.webkit.org/show_bug.cgi?id=203928
<rdar://problem/56963805>

Reviewed by Brian Burg.

Display numeric input fields for colors defined via color(...) CSS syntax.

  • UserInterface/Controllers/CodeMirrorColorEditingController.js:

(WI.CodeMirrorColorEditingController.prototype.popoverWillPresent):
Remove unnecessary WI.ColorPicker.Event.FormatChanged event.

  • UserInterface/Views/ColorPicker.css:

(.color-picker > .color-inputs > div + div):

  • UserInterface/Views/ColorPicker.js:

(WI.ColorPicker):
Don't append inputs of all possible color formats to DOM on instantiation.

(WI.ColorPicker.prototype.set color):
(WI.ColorPicker.prototype.set enableColorComponentInputs):
(WI.ColorPicker.prototype._updateColor):
(WI.ColorPicker.prototype._updateColorGamut):
(WI.ColorPicker.prototype._createColorInputsIfNeeded):
(WI.ColorPicker.prototype._showColorComponentInputs):
(WI.ColorPicker.prototype._handleColorInputsContainerInput):

  • UserInterface/Views/InlineSwatch.js:

Remove unnecessary WI.ColorPicker.Event.FormatChanged event.

5:42 PM Changeset in webkit [254242] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Perform validation of patch before retrying CompileWebKit on ToT
https://bugs.webkit.org/show_bug.cgi?id=205953
<rdar://problem/58064430>

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(CompileWebKit.evaluateCommand):

5:42 PM Changeset in webkit [254241] by ysuzuki@apple.com
  • 71 edits
    1 add in trunk/Source

Reduce binary size by purging C++ type information in Objective-C fields and parameters
https://bugs.webkit.org/show_bug.cgi?id=205905

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • API/JSWrapperMap.mm:

(-[JSObjCClassInfo dealloc]):

Source/WebCore:

No behavior change.

  • page/mac/WebCoreFrameView.h:
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContextGL:]):

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

(-[WebVideoFullscreenController videoElement]):
(-[WebVideoFullscreenController setVideoElement:]):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollAnimationHelperDelegate initWithScrollAnimator:]):
(-[WebScrollAnimationHelperDelegate invalidate]):
(-[WebScrollerImpDelegate scrollAnimator]):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithNetworkSession:wrapper:withCredentials:]):

  • Shared/API/Cocoa/WKBrowsingContextHandle.mm:

(-[WKBrowsingContextHandle _initWithPageProxy:]):
(-[WKBrowsingContextHandle _initWithPage:]):

  • Shared/API/Cocoa/WKBrowsingContextHandleInternal.h:
  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _initWithWebPage:]):
(-[_WKRemoteObjectRegistry _initWithWebPageProxy:]):

  • Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _page]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):

  • UIProcess/API/Cocoa/_WKThumbnailView.mm:
  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:processPool:configuration:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::setLayoutMode):
(WebKit::WebViewImpl::fullScreenWindowController):
(WebKit::WebViewImpl::remoteObjectRegistry):

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView willMoveToWindow:]):
(-[WKApplicationStateTrackingView didMoveToWindow]):

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

(-[WKContentView initWithFrame:processPool:configuration:webView:]):

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _manager]):
(-[WKFullScreenViewController _togglePiPAction:]):
(-[WKFullScreenViewController _showPhishingAlert]):

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(WebKit::WKWebViewState::applyTo):
(WebKit::WKWebViewState::store):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
(-[WKFullScreenWindowController _exitFullscreenImmediately]):
(-[WKFullScreenWindowController _manager]):

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController initWithWindow:webView:page:]):

  • UIProcess/mac/WKImmediateActionController.h:
  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):

  • UIProcess/mac/WKInspectorViewController.h:
  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController initWithInspectedPage:]):

  • UIProcess/mac/WKTextFinderClient.h:
  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]):

  • UIProcess/mac/WKViewLayoutStrategy.h:
  • UIProcess/mac/WKViewLayoutStrategy.mm:

(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):
(-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):

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

(-[WKDOMDocumentParserYieldToken initWithDocument:]):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase axObjectCache]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):

Source/WebKitLegacy/mac:

  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView element]):

  • WebCoreSupport/WebEditorClient.mm:

(_WebCreateFragment):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::transitionToCommittedForNewPage):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:]):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:appLinkURL:]):

  • WebCoreSupport/WebGeolocationClient.mm:

(-[WebGeolocationPolicyListener initWithGeolocation:]):
(-[WebGeolocationPolicyListener initWithGeolocation:forWebView:]):
(-[WebGeolocationProviderInitializationListener initWithGeolocation:]):

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::resetState):
(-[WebInspectorWindowController setFrontendClient:]):
(-[WebInspectorWindowController setInspectorClient:]):
(-[WebInspectorWindowController inspectorClient]):

  • WebInspector/WebInspectorFrontend.h:
  • WebInspector/WebInspectorFrontend.mm:
  • WebInspector/WebNodeHighlight.h:
  • WebInspector/WebNodeHighlight.mm:

(-[WebNodeHighlight initWithTargetView:inspectorController:]):

  • WebView/WebArchive.mm:

(-[WebArchive initWithMainResource:subresources:subframeArchives:]):

  • WebView/WebDataSource.mm:

(-[WebDataSource _documentLoader]):
(-[WebDataSource addSubresource:]):

  • WebView/WebDataSourceInternal.h:
  • WebView/WebFrame.mm:

(getWebView):
(-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]):
(-[WebFrame _unmarkAllBadGrammar]):
(-[WebFrame _unmarkAllMisspellings]):
(-[WebFrame _hasSelection]):
(-[WebFrame _atMostOneFrameHasSelection]):
(-[WebFrame _findFrameWithSelection]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):
(-[WebFrame _documentFragmentWithMarkupString:baseURLString:]):
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):
(-[WebFrame _canProvideDocumentSource]):
(-[WebFrame _isDescendantOfFrame:]):
(-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]):
(-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]):
(-[WebFrame setTimeoutsPaused:]):
(-[WebFrame prepareForPause]):
(-[WebFrame resumeFromPause]):
(-[WebFrame resetTextAutosizingBeforeLayout]):
(-[WebFrame _globalContextForScriptWorld:]):
(-[WebFrame _layerTreeAsText]):
(-[WebFrame _clearOpener]):
(-[WebFrame focusedNodeHasContent]):
(-[WebFrame _dispatchDidReceiveTitle:]):
(-[WebFrame jsWrapperForNode:inScriptWorld:]):
(-[WebFrame elementAtPoint:]):
(-[WebFrame name]):
(-[WebFrame DOMDocument]):
(-[WebFrame frameElement]):
(-[WebFrame provisionalDataSource]):
(-[WebFrame dataSource]):
(-[WebFrame loadRequest:]):
(-[WebFrame findFrameNamed:]):
(-[WebFrame parentFrame]):
(-[WebFrame childFrames]):
(-[WebFrame windowObject]):
(-[WebFrame globalContext]):
(-[WebFrame javaScriptContext]):

  • WebView/WebFrameInternal.h:
  • WebView/WebFrameView.mm:

(-[WebFrameView _web_frame]):
(-[WebFrameView _frameSizeChanged]):
(-[WebFrameView _isVerticalDocument]):
(-[WebFrameView _isFlippedDocument]):
(-[WebFrameView keyDown:keyDown:]):

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController _document]):

  • WebView/WebHTMLView.mm:

(-[WebMenuTarget menuController]):
(-[WebMenuTarget setMenuController:]):
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
(-[WebHTMLView _interpretKeyEvent:savingCommands:]):
(-[WebHTMLView setPromisedDragTIFFDataSource:]):

  • WebView/WebHTMLViewInternal.h:
  • WebView/WebNotification.mm:

(-[WebNotification initWithCoreNotification:notificationID:]):

  • WebView/WebNotificationInternal.h:
  • WebView/WebResource.mm:

(-[WebResource _coreResource]):

  • WebView/WebResourceInternal.h:
  • WebView/WebVideoFullscreenController.h:
  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController videoElement]):
(-[WebVideoFullscreenController setVideoElement:]):

  • WebView/WebVideoFullscreenHUDWindowController.h:
  • WebView/WebView.mm:

(-[WebView page]):
(-[WebView _enterVideoFullscreenForVideoElement:mode:]):
(-[WebView _setUpPlaybackControlsManagerForMediaElement:]):
(-[WebView _supportsFullScreenForElement:withKeyboard:]):
(-[WebView _enterFullScreenForElement:]):
(-[WebView _exitFullScreenForElement:]):

  • WebView/WebViewInternal.h:

Source/WTF:

Objective-C has reflection mechanisms. This means that fields, methods, and their types
need to hold its string representations in binary even if we are using release build.
While typical Objective-C class does not have large size of type names, C++ struct / class
has very large one, and putting them in Objective-C method names, parameter types, or fields
makes binary size very large.

Interesting thing is that type information is gathered when parameter is a C++ pointer, reference,
or value. And it gathers one-level deep information from this pointer etc. This means that, if
we use RefPtr<T>, collected type information is the one of RefPtr, not one of T. So it becomes significantly
smaller.

This patch introduces NakedRef<T>. This is similar to Ref while it does not have any ownership. So it
is just a wrapper around T&. We already have NakedPtr<T>. And use NakedRef<T> / NakedPtr<T> instead
of T& and T* if,

  1. T is C++ class.
  2. T* / T& is in Objective-C fields or parameter types (including a return type).

Then, these type information is one of NakedRef<T> / NakedPtr<T> instead of T, and we can reduce binary size.

This patch saves 600~KB in binary size.

Note the following things.

  1. If we use __attribute__((objc_direct)), __attribute__((objc_direct_members)), possibly, we can completely remove these metadata without using NakedRef / NakedPtr[1]. However, this is not available for our supporting platforms now (including pre-Catalina OSes). This NakedRef / NakedPtr technique can reduce binary without waiting for it.
  2. Reverting NakedRef / NakedPtr to usual reference / pointer is fairly easy since it is well typed. Once __attribute__((objc_direct)) becomes available in our platforms, we can consider it. But using NakedRef / NakedPtr is harmless.

[1]: https://github.com/llvm/llvm-project/commit/d4e1ba3fa9dfec2613bdcc7db0b58dea490c56b1

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/NakedRef.h: Added.

(WTF::NakedRef::NakedRef):
(WTF::NakedRef::operator-> const):
(WTF::NakedRef::get const):
(WTF::NakedRef::operator T& const):
(WTF::NakedRef::operator! const):
(WTF::=):
(WTF::NakedRef<T>::swap):
(WTF::swap):

5:32 PM Changeset in webkit [254240] by sihui_liu@apple.com
  • 2 edits in trunk/PerformanceTests

REGRESSION (r242911?): High Sierra Release WK2 Perf bot timing out while running IndexedDB/large-number-of-inserts.html
https://bugs.webkit.org/show_bug.cgi?id=195952
<rdar://problem/49137688>

Re-enable the test after recent IDB performance improvement.

Reviewed by Alexey Proskuryakov.

  • Skipped:
5:21 PM Changeset in webkit [254239] by wilander@apple.com
  • 9 edits in trunk/Source

Resource Load Statistics: Flip experimental cookie blocking setting from an enable to a disable
https://bugs.webkit.org/show_bug.cgi?id=205963
<rdar://problem/58424136>

Reviewed by Brent Fulgham.

To get default on behavior, experimental features in the network process need to be
turned from enable flags to disable flags. This patch does that for the experimental
cookie blocking flag.

Source/WebCore:

No new tests. This change just reverses the interpretation of a flag.

  • page/Settings.yaml:

Source/WebKit:

This change also aligns the init values of the setting to match the default.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/NetworkSessionCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

5:18 PM Changeset in webkit [254238] by yoshiaki.jitsukawa@sony.com
  • 1 edit in trunk/Source/WebCore/platform/LocalizedStrings.cpp

Unreviewed, fix builds with WEB_CRYPTO enabled, following r217686

4:59 PM Changeset in webkit [254237] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit

Allow some sysctl-read calls needed by WebRTC
https://bugs.webkit.org/show_bug.cgi?id=205946
<rdar://problem/58416475>

Reviewed by Per Arne Vollan.

This patch allows some sysctl-read calls that are needed when running WebRTC tests.
It also removes telemetry and logging from a UIKit class that was confirmed to be
needed by Performance and PowerLogging code.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:39 PM Changeset in webkit [254236] by Peng Liu
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json
4:30 PM Changeset in webkit [254235] by Jonathan Bedard
  • 3 edits in trunk/Tools

run-webkit-tests: clobber-old-results should remove the entire results folder
https://bugs.webkit.org/show_bug.cgi?id=205875
<rdar://problem/58236117>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._clobber_old_results): Remove entire results folder.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_retrying_and_flaky_tests): clobber-old-results now removes the
entire results directory.

4:13 PM Changeset in webkit [254234] by sbarati@apple.com
  • 5 edits in trunk

build-jsc should invoke make instead of calling xcodebuild directly
https://bugs.webkit.org/show_bug.cgi?id=205960

Reviewed by Keith Miller.

.:

  • Makefile.shared:

Source/JavaScriptCore:

The various jsc, and test* binaries can all be compiled in parallel.
This patch makes that happen when building with make via the CLI
that these are built in parallel. To make this work, in Xcode, I needed
to mark these binaries as depending on JavaScriptCore.framework.

4:05 PM Changeset in webkit [254233] by Alan Coon
  • 1 copy in tags/Safari-608.5.9

Tag Safari-608.5.9.

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

Move logic for parsing image-orientation to CSSParserFastPaths
https://bugs.webkit.org/show_bug.cgi?id=205962

Reviewed by Simon Fraser.

Covered by exiting tests. No change in functionality.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeImageOrientation): Deleted.

3:45 PM Changeset in webkit [254231] by Ryan Haddad
  • 1 edit
    7 adds in trunk/LayoutTests

few web-platform-tests are failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=205927

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/xhr/event-timeout-order.any-expected.txt: Added.
3:41 PM Changeset in webkit [254230] by commit-queue@webkit.org
  • 5 edits
    6 adds in trunk/Source/JavaScriptCore

Add FuzzerAgents that narrow and widen number predictions
https://bugs.webkit.org/show_bug.cgi?id=203993

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2020-01-08
Reviewed by Yusuke Suzuki.

Add two FuzzerAgents such that for any predictions that are originally subsets of SpecFullNumber:

  • one adds more number types to the prediction
  • the other removes some of the number types from the prediction
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/NarrowingNumberPredictionFuzzerAgent.cpp: Added.
  • runtime/NarrowingNumberPredictionFuzzerAgent.h: Added.
  • runtime/NumberPredictionFuzzerAgent.cpp: Added.
  • runtime/NumberPredictionFuzzerAgent.h: Added.
  • runtime/OptionsList.h:
  • runtime/VM.cpp:
  • runtime/WideningNumberPredictionFuzzerAgent.cpp: Added.
  • runtime/WideningNumberPredictionFuzzerAgent.h: Added.
3:38 PM Changeset in webkit [254229] by commit-queue@webkit.org
  • 8 edits in trunk

<img>.naturalWidth should return the density-corrected intrinsic width
https://bugs.webkit.org/show_bug.cgi?id=150443

Patch by Noam Rosenthal <Noam Rosenthal> on 2020-01-08
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Updated expected results.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic-expected.txt:

All tests now pass.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative-expected.txt:

Still fails but failure values are different.

Source/WebCore:

Take image's density into account when requesting naturalWidth/naturalHeight, not in SVG.

This now complies with the standard (https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth)
It also matches the behavior on Chrome and on Firefox.

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html

Updaded expected results

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::effectiveImageDevicePixelRatio const):
(WebCore::HTMLImageElement::naturalWidth const):
(WebCore::HTMLImageElement::naturalHeight const):

  • html/HTMLImageElement.h:

Use effective image devicePixelRatio for naturalWidth/height calculation

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::unclampedImageSizeForRenderer const):
(WebCore::CachedImage::imageSizeForRenderer const):

  • loader/cache/CachedImage.h:

Don't clamp to 1 when calculating naturalWidth/naturalHeight, as this has
nothing to do with zoomed images. Zoomed images behavior remains the same.

2:22 PM Changeset in webkit [254228] by Devin Rousso
  • 4 edits in trunk/Source

REGRESSION: (r254186) [ Mac ] inspector/css/add-rule.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205938
<rdar://problem/58413597>

Reviewed by Brian Burg.

Source/WebCore:

Covered by existing tests.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::originalStyleSheetText const):
(WebCore::InspectorStyleSheet::resourceStyleSheetText const):
(WebCore::InspectorStyleSheet::inlineStyleSheetText const):
(WebCore::InspectorStyleSheet::extensionStyleSheetText const):
The Inspector Style Sheet is an inline style sheet, so it goes through inlineStyleSheetText
instead of resourceStyleSheetText. Style sheets are only be sourced from one place anyways
so there's no reason to gate each function based on the origin.

Source/WebInspectorUI:

  • UserInterface/Models/CSSStyleSheet.js:

(WI.CSSStyleSheet.prototype.get injected):
scheme can be null, so check that it exists before calling String.prototype functions.

2:20 PM Changeset in webkit [254227] by mark.lam@apple.com
  • 11 edits in trunk

Rename testing build configuration to release+assert, and add new testing build configuration.
https://bugs.webkit.org/show_bug.cgi?id=205954

Reviewed by Yusuke Suzuki.

.:

"make release-assert" builds a release build with ASSERT_ENABLED=1.
"make testing" builds a debug build with clang optimization level forced to -O3.

  • Makefile:
  • Makefile.shared:
  • Source/Makefile:

Source/ThirdParty:

  • Makefile:

Tools:

Added a --force-opt shortcut for the --force-optimization-level option of
set-webkit-configuration. This makes it less painful to type this on the command
line for those of us who would like to use this option often in our local builds.

  • Makefile:
  • Scripts/set-webkit-configuration:

WebKitLibraries:

  • Makefile:
2:10 PM Changeset in webkit [254226] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Suppress "unused parameter" when including libWebRTC headers in LibWebRTCProviderCocoa.cpp
https://bugs.webkit.org/show_bug.cgi?id=205951

Reviewed by Eric Carlson.

Suppress the "unused parameter" warning that results from including video_encoder.h, which contains the
following line of code (where reason is unused):

`
virtual void OnDroppedFrame(DropReason reason) {}
`

This matches other places in WebCore where we attempt to #include <webrtc/sdk/WebKit/WebKitUtilities.h>.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
2:09 PM Changeset in webkit [254225] by Matt Lewis
  • 2 edits in trunk/Tools

Move EWS from macOS High Sierra to macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=205948

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json:
2:04 PM Changeset in webkit [254224] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

TypeProfiler.h: Multiplication result converted to larger type
https://bugs.webkit.org/show_bug.cgi?id=205947

Reviewed by Mark Lam.

Added cast to keep the hash() calculation unsigned.

  • runtime/TypeProfiler.h:

(JSC::QueryKey::hash const):

2:00 PM Changeset in webkit [254223] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix some IOS_FAMILY builds after r254210.

  • Shared/AuxiliaryProcess.h:
1:47 PM Changeset in webkit [254222] by beidson@apple.com
  • 4 edits in trunk

Make _callAsyncFunction:withArguments: work with promises.
https://bugs.webkit.org/show_bug.cgi?id=205654

Reviewed by Saam Barati.

Source/WebCore:

Covered by API tests.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):

Tools:

Test that:

  • Resolve results in success handler being called
  • Reject results in error handler being called
  • Both resolve and reject becoming unreachable results in the error handler being called
  • Both native Promise objects and arbitrary thenables work
  • Any object where "then" is callable - even if not a function - works
  • TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:

(TestWebKitAPI::tryGCPromise):
(TestWebKitAPI::TEST):

1:30 PM Changeset in webkit [254221] by dbates@webkit.org
  • 4 edits in trunk/Tools

Regression r254160: 6 API test failures
https://bugs.webkit.org/show_bug.cgi?id=205935
<rdar://problem/58411559>

Revert API test changes in r254160. I mistakenly thought this were legitimate changes,
but they were actually the result of a bug I have since corrected in r254167.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:

(TEST):

1:26 PM Changeset in webkit [254220] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp:

(WebCore::computeFontSelectionRequest):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.
1:18 PM Changeset in webkit [254219] by keith_miller@apple.com
  • 4 edits in trunk

Fix testing Makefile to inherit preprocessor definitions
https://bugs.webkit.org/show_bug.cgi?id=205940

Reviewed by Mark Lam.

.:

  • Makefile.shared:

Tools:

  • Makefile:
12:54 PM Changeset in webkit [254218] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSArrayBufferView.h: Multiplication result converted to larger type
https://bugs.webkit.org/show_bug.cgi?id=205943

Reviewed by Saam Barati.

Added cast to size_t to make the whole calculation size_t.

  • runtime/JSArrayBufferView.h:

(JSC::JSArrayBufferView::sizeOf):

12:50 PM Changeset in webkit [254217] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r252847. rdar://problem/58414545

REGRESSION (Safari 13): WebSocket payload is truncated when x-webkit-deflate-frame is used
https://bugs.webkit.org/show_bug.cgi?id=202401
<rdar://problem/55922632>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/deflate-extension.html

  • Modules/websockets/WebSocketDeflater.cpp: (WebCore::WebSocketDeflater::finish): Make sure to continue calling deflate until all output data is flushed.

LayoutTests:

  • http/tests/websocket/tests/hybi/deflate-extension-expected.txt: Added.
  • http/tests/websocket/tests/hybi/deflate-extension.html: Added.

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

12:45 PM Changeset in webkit [254216] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

12:41 PM Changeset in webkit [254215] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=205931

  • platform/gtk/TestExpectations:
12:27 PM Changeset in webkit [254214] by dino@apple.com
  • 93 edits
    1 move in trunk/Source

[WebGL] More GraphicsContext3D to GraphicsContextGL renaming
https://bugs.webkit.org/show_bug.cgi?id=205949
<rdar://problem/58416989>

Reviewed by Antoine Quint.

Source/WebCore:

Rename the GC3D-prefixed types.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:
  • html/HTMLVideoElement.h:
  • html/OffscreenCanvas.cpp:
  • html/canvas/ANGLEInstancedArrays.cpp:
  • html/canvas/ANGLEInstancedArrays.h:
  • html/canvas/OESVertexArrayObject.cpp:
  • html/canvas/OESVertexArrayObject.h:
  • html/canvas/WebGL2RenderingContext.cpp:
  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLActiveInfo.h:
  • html/canvas/WebGLBuffer.cpp:
  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLDrawBuffers.cpp:
  • html/canvas/WebGLDrawBuffers.h:
  • html/canvas/WebGLFramebuffer.cpp:
  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLObject.cpp:
  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLProgram.cpp:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.cpp:
  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.cpp:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLRenderingContext.cpp:
  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:
  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSampler.cpp:
  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.cpp:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.cpp:
  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSync.cpp:
  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.cpp:
  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.cpp:
  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLUniformLocation.cpp:
  • html/canvas/WebGLUniformLocation.h:
  • html/canvas/WebGLVertexArrayObject.cpp:
  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:
  • html/canvas/WebGLVertexArrayObjectBase.h:
  • html/canvas/WebGLVertexArrayObjectOES.cpp:
  • html/canvas/WebGLVertexArrayObjectOES.h:
  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/GraphicsContextGL.cpp:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/GraphicsTypesGL.h: Renamed from Source/WebCore/platform/graphics/GraphicsTypes3D.h.
  • platform/graphics/ImageBuffer.cpp:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp:
  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:
  • platform/graphics/angle/TemporaryANGLESetting.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/cairo/ImageBufferCairo.cpp:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
  • platform/graphics/cocoa/WebGLLayer.mm:
  • platform/graphics/cv/TextureCacheCV.h:
  • platform/graphics/cv/TextureCacheCV.mm:
  • platform/graphics/cv/VideoTextureCopierCV.cpp:
  • platform/graphics/cv/VideoTextureCopierCV.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp:
  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
  • platform/graphics/opengl/ExtensionsGLOpenGLES.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
  • platform/graphics/opengl/TemporaryOpenGLSetting.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
  • platform/graphics/texmap/TextureMapperGL.cpp:

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
11:58 AM Changeset in webkit [254213] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Remove NATIVE_MOUSE_EVENT_HANDLER macros
https://bugs.webkit.org/show_bug.cgi?id=205897

Reviewed by Tim Horton.

Remove the NATIVE_MOUSE_EVENT_HANDLER and NATIVE_MOUSE_EVENT_HANDLER_INTERNAL which are almost identical,
calling a couple of shared functions instead. The only reason the eventName was used was for logging, so just
log the -[NSEvent type] instead.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::operator<<):
(WebKit::WebViewImpl::nativeMouseEventHandler):
(WebKit::WebViewImpl::nativeMouseEventHandlerInternal):
(WebKit::WebViewImpl::mouseEntered):
(WebKit::WebViewImpl::mouseExited):
(WebKit::WebViewImpl::otherMouseDown):
(WebKit::WebViewImpl::otherMouseDragged):
(WebKit::WebViewImpl::otherMouseUp):
(WebKit::WebViewImpl::rightMouseDown):
(WebKit::WebViewImpl::rightMouseDragged):
(WebKit::WebViewImpl::rightMouseUp):
(WebKit::WebViewImpl::mouseMovedInternal):
(WebKit::WebViewImpl::mouseDownInternal):
(WebKit::WebViewImpl::mouseUpInternal):
(WebKit::WebViewImpl::mouseDraggedInternal):

11:56 AM Changeset in webkit [254212] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

After playing a video and making it full screen, the video exits full screen and stops but the audio continues to play
https://bugs.webkit.org/show_bug.cgi?id=205896

Patch by Peng Liu <Peng Liu> on 2020-01-08
Reviewed by Jer Noble.

AVKit calls playerViewController:shouldExitFullScreenWithReason in the scenario that the exit fullscreen request
is from the web process (e.g., through Javascript API videoElement.webkitExitFullscreen()).
We have to ignore the callback in that case.

No new tests, covered by existing tests.

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

(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):

11:50 AM Changeset in webkit [254211] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Remove an unused variable in WebCoreArgumentCodersCocoa.mm after r254202
https://bugs.webkit.org/show_bug.cgi?id=205939

Reviewed by Tim Horton.

Remove an unused temporary variable that was only used for debugging.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<FontHandle>::decodePlatformData):

11:38 AM Changeset in webkit [254210] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Move UIProcess DependencyProcessAssertion from WebContent to AuxiliaryProcess
https://bugs.webkit.org/show_bug.cgi?id=205836

Reviewed by Alex Christensen.

Move UIProcess DependencyProcessAssertion from WebContent to AuxiliaryProcess, so that other auxiliary
processes (Network Process, GPU Process) also benefit from it.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initializeConnection):

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

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
11:36 AM Changeset in webkit [254209] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Network process sandboxes should not include 'common.sb' or 'system.sb'
https://bugs.webkit.org/show_bug.cgi?id=205521
<rdar://problem/58095870>

Reviewed by Per Arne Vollan.

This patch replaces the 'include' with a copy/paste of the contents of the relevant
sandbox include file. I removed definitions that were not referenced in the existing
Network sandbox, but did not otherwise edit the contents. There are duplicates and
redundancies after this patch, which I will remove as a follow-up step once we confirm
that this has no regressions.

I also updated the sandbox to generate telemetry for some mach connections that we think
are unneeded, or that should be targeted for removal.

No new tests. There should be no change in behavior.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
11:26 AM Changeset in webkit [254208] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

IPC::Connection::sendMessage() should use CRASH_WITH_INFO()
<https://webkit.org/b/205419>
<rdar://problem/58058661>

Reviewed by Mark Lam.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendMessage):

  • Switch from CRASH() to CRASH_WITH_INFO().
11:15 AM Changeset in webkit [254207] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for parameterized attribute TextMarkerRangeForUIElement which should run ion main thread.
https://bugs.webkit.org/show_bug.cgi?id=205920

Reviewed by Chris Fleizach.

Parameterized attribute TextMarkerRangeForUIElement must run on main
thread since it invokes DOM Range methods.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

11:02 AM Changeset in webkit [254206] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Add encoding/decoding support for data structures in TextFlags.h
https://bugs.webkit.org/show_bug.cgi?id=205903

Reviewed by Tim Horton.

Adds encoders and decoders for the enum classes and structs in TextFlags.h, with the eventual goal of being able
to send font creation parameters when sending font data to the GPU process. No change in behavior.

  • platform/text/TextFlags.h:

(WebCore::FontVariantSettings::encode const):
(WebCore::FontVariantSettings::decode):
(WebCore::FontVariantLigaturesValues::encode const):
(WebCore::FontVariantLigaturesValues::decode):
(WebCore::FontVariantNumericValues::encode const):
(WebCore::FontVariantNumericValues::decode):
(WebCore::FontVariantEastAsianValues::encode const):
(WebCore::FontVariantEastAsianValues::decode):

10:58 AM Changeset in webkit [254205] by Alexey Shvayka
  • 4 edits in trunk

Proxy's OwnPropertyKeys? is correct only in PropertyNameMode::StringsAndSymbols
https://bugs.webkit.org/show_bug.cgi?id=205772

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

This change fixes two spec compatibility issues:
(steps 8-11 of https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys)

  1. If Object.getOwnPropertyNames is called on Proxy with "ownKeys" trap,

symbol keys of Proxy's target are ignored during invariants validation.

  1. If Object.getOwnPropertySymbols is called on Proxy with "ownKeys" trap,

string keys of Proxy's target are ignored during invariants validation.

Given that per spec uncheckedResultKeys contains both strings and symbols,
seenKeys and explanation comment about it is removed.

Specifying PrivateSymbolMode::Exclude eliminates any chance of false TypeErrors
during invariants validation, since user code can't possibly return a private symbol
from "ownKeys" trap, yet an object with private symbols can be Proxy's target.

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performGetOwnPropertyNames):

9:13 AM Changeset in webkit [254204] by Truitt Savell
  • 3 edits in trunk/Source/WebKit

Unreviewed, rolling out r254174.

Broke 80 tests on Catalina

Reverted changeset:

"Network process sandboxes should not include 'common.sb' or
'system.sb'"
https://bugs.webkit.org/show_bug.cgi?id=205521
https://trac.webkit.org/changeset/254174

9:02 AM Changeset in webkit [254203] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Unreviewed gardening for unexpected passes
https://bugs.webkit.org/show_bug.cgi?id=205854

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
8:33 AM Changeset in webkit [254202] by Wenson Hsieh
  • 13 edits in trunk/Source

Add support for encoding WebCore::Font over IPC for DisplayList::DrawGlyphs
https://bugs.webkit.org/show_bug.cgi?id=205830
<rdar://problem/57347719>

Reviewed by Dean Jackson.

Source/WebCore:

Add support for encoding Fonts. In the case where the Font is installed, we use platform encoders to send across
the font descriptor, and reconstruct the font using this descriptor on the receiving end (see the existing
implementations of encodeFontInternal and decodeFontInternal). In the case where the Font is not installed, we
instead send the font face data over (plumbed across from the CachedFont), and reconstruct the platform font
data from the raw font data on the receiving end.

This allows us to render web fonts in the GPU process through the DrawGlyphs display list item.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::font):

  • css/CSSFontFaceSource.h:
  • platform/graphics/Font.cpp:

(WebCore::Font::setFontFaceData):

Add a way to set font face data used to create the Font. This data comes from a CachedFont's data buffer, and is
used to serialize FontHandles when building display list items.

(WebCore::FontHandle::FontHandle):

Add a serializable wrapper class that contains a nullable Font. The encoder/decoders for FontHandle are
implemented in WebKit2.

  • platform/graphics/Font.h:

(WebCore::Font::fontFaceData const):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::DrawGlyphs):

Finish implementing the encode/decode methods for DrawGlyphs, by sending the Font data over via FontHandle.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawGlyphs::create):
(WebCore::DisplayList::DrawGlyphs::encode const):
(WebCore::DisplayList::DrawGlyphs::decode):

When decoding DrawGlyphs, avoid having to rebuild the glyph Vector by adding (and using) new DrawGlyphs
constructors that take Vector&&s.

Source/WebKit:

Add basic support for encoding and decoding a FontHandle.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<FontHandle>::encodePlatformData):
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):

  • Shared/WebCoreArgumentCoders.cpp:

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

When encoding a Font on Cocoa platforms, send across the font face data (if present); otherwise, fall back to
sending the font descriptor for the UIFont or NSFont (as is the case for installed fonts).

  • Shared/WebCoreArgumentCoders.h:
  • Shared/curl/WebCoreArgumentCodersCurl.cpp:

(IPC::ArgumentCoder<FontHandle>::encodePlatformData):
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<FontHandle>::encodePlatformData):
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):

8:30 AM Changeset in webkit [254201] by graouts@webkit.org
  • 7 edits
    2 adds in trunk

[Web Animations] Stop creating CSS Animations for <noscript> elements
https://bugs.webkit.org/show_bug.cgi?id=205925
<rdar://problem/58158479>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/no-css-animation-on-noscript.html

It makes no sense to create CSS Animations for a <noscript> element and it has the side effect of potential crashes.
Indeed, AnimationTimeline::updateCSSAnimationsForElement() may be called without a currentStyle and so we never have
a list of previously-applied animations to compare to the list of animations in afterChangeStyle. So on each call we
end up creating a new CSSAnimation and the previous animation for the same name is never explicitly removed from the
effect stack and is eventually destroyed and the WeakPtr for it in the stack ends up being null, which would cause a
crash under KeyframeEffectStack::ensureEffectsAreSorted().

We now prevent elements such as <noscript> from being considered for CSS Animations in TreeResolver::resolveElement().

  • dom/Element.cpp:

(WebCore::Element::rendererIsNeeded):

  • dom/Element.h:

(WebCore::Element::rendererIsEverNeeded):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::rendererIsEverNeeded):
(WebCore::HTMLElement::rendererIsNeeded): Deleted.

  • html/HTMLElement.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

LayoutTests:

Add a new test that checks that setting the animation property on a <noscript> element does not yield the creation of a CSSAnimation object.

  • webanimations/no-css-animation-on-noscript-expected.txt: Added.
  • webanimations/no-css-animation-on-noscript.html: Added.
7:57 AM Changeset in webkit [254200] by aboya@igalia.com
  • 6 edits in trunk/Source

[WTF] Allow MediaTime static constants
https://bugs.webkit.org/show_bug.cgi?id=205723

Reviewed by Darin Adler.

Source/WebCore:

Since MediaTime no longer has a non-trivial destructor, declaring
MediaTime variables no longer has potential side effects as far as the
compiler is concerned and it can therefore print "unused variable"
errors where that is the case.

This patch marks one of such variable as intentionally unused, since
it's only used in Debug and would otherwise break the Release build.
Actually unused variables are also removed.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::imageForTime):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeCodedFrames):

Source/WTF:

Despite all its convenience methods, at its core MediaTime is a rather
trivial class with only integral members. Despite this, since it had a
destructor declared, this made the class non-trivially destructible
even if the implementation was empty, and therefore clang did not
allow to use it for static variables unless done in form of a pointer.

By removing the destructor this restriction is lifted and we don't
need heap allocations for static MediaTime objects.

Previous usages of heap allocation for static MediaTime objects have
been rewritten to take advantage of this. Test coverage is provided by
successful compilation without [-Werror,-Wexit-time-destructors]
errors and existing tests.

  • wtf/MediaTime.cpp:

(WTF::MediaTime::zeroTime):
(WTF::MediaTime::invalidTime):
(WTF::MediaTime::positiveInfiniteTime):
(WTF::MediaTime::negativeInfiniteTime):
(WTF::MediaTime::indefiniteTime):
(WTF::MediaTime::~MediaTime): Deleted.

  • wtf/MediaTime.h:
7:13 AM Changeset in webkit [254199] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Editing: Allow line breaks in lists
https://bugs.webkit.org/show_bug.cgi?id=205913

Patch by Milan Crha <mcrha@redhat.com> on 2020-01-08
Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/KeyBindingTranslator.cpp:

Treat Shift+Enter as "InsertLineBreak", instead of "InsertNewLine".

6:10 AM Changeset in webkit [254198] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

REGRESSION(r253939): [GTK] Broke build with !USE(WPE_RENDERER)
https://bugs.webkit.org/show_bug.cgi?id=205648

Reviewed by Carlos Alberto Lopez Perez.

  • platform/graphics/GraphicsContextGL.h: Rename enum None to

DOMSourceNone to avoid name collission.

6:09 AM Changeset in webkit [254197] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Add expectations for several tests failing

6:07 AM Changeset in webkit [254196] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Allow multiple cmakeargs inside inside envvar
https://bugs.webkit.org/show_bug.cgi?id=205722

Patch by Paulo Matos <Paulo Matos> on 2020-01-08
Reviewed by Carlos Alberto Lopez Perez.

Allow sub-argument lists to be passed in a build environment variable.

  • Scripts/build-jsc:
  • Scripts/build-webkit:
5:48 AM Changeset in webkit [254195] by Alexey Shvayka
  • 4 edits in trunk

RegExp.prototype[Symbol.replace] does not support named capture groups
https://bugs.webkit.org/show_bug.cgi?id=205783

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

This patch adds named capture groups support to RegExp.prototype[Symbol.replace],
for both functional and string pattern replacement.
(steps 14.j-l of https://tc39.es/ecma262/#sec-regexp.prototype-@@replace)

This method is used in slow path of String.prototype.replace (RegExp subclass handling),
yet it also can be invoked directly in user code.

  • builtins/RegExpPrototype.js:

(getSubstitution):
(Symbol.replace):

4:45 AM Changeset in webkit [254194] by youenn@apple.com
  • 39 edits
    13 adds in trunk

Implement MediaRecorder backend in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205802

Reviewed by Eric Carlson.

Source/WebCore:

Add a page provider to create MediaRecorderPrivate implementations.
This is used by WebKit layer to implement this in GPUProcess.

Update MediaRecorderPrivate by adding an error callback that is used to surface errors as MediaRecorder error events.

Covered by existing tests as MediaRecorder implementation in WebKitTestRunner will use GPUProcess.

  • Headers.cmake:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::createMediaRecorderPrivate):

  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorderProvider.cpp: Added.

(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):

  • Modules/mediarecorder/MediaRecorderProvider.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::mediaRecorderProvider):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::create):

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUseGPUProcessForWebRTC):

Source/WebKit:

Add support for sending audio/video tracks to record from WebProcess to GPUProcess.
Add a MediaRecorderPrivate implementation that supports sending one audio track and/or one video track to GPUProcess
and stopping/fetching data from the remote recorder in GPUProcess.

In GPUProcess, implement the remote recorder using the existing WebCore recorder writer.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::userMediaCaptureManagerProxy):
(WebKit::GPUConnectionToWebProcess::mediaRecorderManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp: Added.

(WebKit::RemoteMediaRecorder::create):
(WebKit::RemoteMediaRecorder::RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::~RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::storage):
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
(WebKit::RemoteMediaRecorder::audioSamplesAvailable):
(WebKit::RemoteMediaRecorder::videoSampleAvailable):
(WebKit::RemoteMediaRecorder::fetchData):
(WebKit::RemoteMediaRecorder::stopRecording):

  • GPUProcess/webrtc/RemoteMediaRecorder.h: Added.
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in: Added.
  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: Added.

(WebKit::RemoteMediaRecorderManager::RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::~RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::didReceiveRemoteMediaRecorderMessage):
(WebKit::RemoteMediaRecorderManager::createRecorder):
(WebKit::RemoteMediaRecorderManager::releaseRecorder):

  • GPUProcess/webrtc/RemoteMediaRecorderManager.h: Added.

(WebKit::RemoteMediaRecorderManager::didReceiveMessageFromWebProcess):

  • GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in: Added.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/MediaRecorderProvider.cpp: Added.

(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):

  • WebProcess/GPU/media/MediaRecorderProvider.h: Added.
  • WebProcess/GPU/webrtc/MediaRecorderIdentifier.h: Added.
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Added.

(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::~MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::sampleBufferUpdated):
(WebKit::MediaRecorderPrivate::audioSamplesAvailable):
(WebKit::MediaRecorderPrivate::storageChanged):
(WebKit::MediaRecorderPrivate::fetchData):
(WebKit::MediaRecorderPrivate::stopRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Added.
  • WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: Added.

(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):

  • WebProcess/GPU/webrtc/MediaRecorderProvider.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:

Do not use GPUProcess for this test until canvas buffers are IOSurfaces.

4:12 AM Changeset in webkit [254193] by clopez@igalia.com
  • 5 edits
    18 adds in trunk/LayoutTests

[CSS Font Loading] Import css-font-loading WPT tests
https://bugs.webkit.org/show_bug.cgi?id=205863

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-font-loading/META.yml: Added.
  • web-platform-tests/css/css-font-loading/empty-family-load-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/empty-family-load.html: Added.
  • web-platform-tests/css/css-font-loading/font-face-reject-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/font-face-reject.html: Added.
  • web-platform-tests/css/css-font-loading/fontface-descriptor-updates-expected.html: Added.
  • web-platform-tests/css/css-font-loading/fontface-descriptor-updates.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-no-root-element.html: Added.
  • web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor.html: Added.
  • web-platform-tests/css/css-font-loading/idlharness.https-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/idlharness.https.html: Added.
  • web-platform-tests/css/css-font-loading/resources/GenI102.woff2: Added.
  • web-platform-tests/css/css-font-loading/resources/GenR102.woff2: Added.
  • web-platform-tests/css/css-font-loading/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-font-loading/w3c-import.log: Added.

LayoutTests:

Tests failing:

3:53 AM Changeset in webkit [254192] by Carlos Garcia Campos
  • 36 edits
    2 adds
    1 delete in trunk/WebDriverTests

Unreviewed. Update W3C WebDriver imported tests.

  • TestExpectations.json:
  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/init.py:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/error.py:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner/docs/expectation.rst:
  • imported/w3c/tools/wptrunner/requirements.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/tox.ini:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/android_weblayer.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorwebdriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_webdriver.js:
  • imported/w3c/tools/wptrunner/wptrunner/testdriver-extra.js:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_webkitgtk.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/find_element_from_element/find.py:
  • imported/w3c/webdriver/tests/new_session/default_values.py:
  • imported/w3c/webdriver/tests/perform_actions/support/keys.py:
  • imported/w3c/webdriver/tests/perform_actions/validity.py:
  • imported/w3c/webdriver/tests/send_alert_text/send.py:
  • imported/w3c/webdriver/tests/set_window_rect/set.py:
2:29 AM Changeset in webkit [254191] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Improve logging of creating a service worker
https://bugs.webkit.org/show_bug.cgi?id=205849

Reviewed by Chris Dumez.

Add some release logging to identify which service worker is created in which process.
No change of observable behavior.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

1:00 AM Changeset in webkit [254190] by Fujii Hironori
  • 7 edits in trunk

[HarfBuzz][GTK] fast/text/complex-first-glyph-with-initial-advance.html is failing
https://bugs.webkit.org/show_bug.cgi?id=118221

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Arabic diacritics made glyphs vertically unaligned if the first
glyph had a vertical offset.

The initial advance should be same with the first glyph origin for
HarfBuzz. See the diagram in ComplexTextController.h for details.
<https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ComplexTextController.h?rev=224007#L109>

drawGlyphs of Cairo port was assuming upward y-axis for glyph
advances even though those of Mac and AppleWin port are assuming
downward y-axis. This is a problem for Windows ports because
AppleWin and WinCairo port are sharing the code calculating
advances.

Covered by existing tests.

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawGlyphs):
Sum up the height of advances into yOffset instead of subtraction.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
Don't negate offsetY. Set m_initialAdvance as the first item of
m_glyphOrigins.

LayoutTests:

  • platform/gtk/TestExpectations: Unmarked

fast/text/complex-first-glyph-with-initial-advance.html and
fast/text/initial-advance-in-intermediate-run-complex.html.

  • platform/wincairo/TestExpectations: Unmarked

fast/text/complex-first-glyph-with-initial-advance.html and
fast/text/complex-initial-advance.html.

Jan 7, 2020:

11:59 PM Changeset in webkit [254189] by sbarati@apple.com
  • 2 edits in trunk/Tools

run-jsc should not print "... I should not be here ..." when it doesn't get killed when sending a signal to itself
https://bugs.webkit.org/show_bug.cgi?id=205907

Reviewed by Ross Kirsling.

In r253024, I added code that would try to make run-jsc exit with the same
signal that the actual jsc binary exitted with. This made it so crashes and
in the jsc process would look like equivalent crashes in run-jsc process.
Not thinking of non terminating signals, I added code like this:
`
system("kill -" . $signal . " " . $PID);
print STDERR "\n... I should not be here ...\n";
`

However, this print will happen for totally legitimate reasons, like when
you Ctrl+C from the REPL when using run-jsc. This patch removes this print.

  • Scripts/run-jsc:
11:23 PM Changeset in webkit [254188] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

AI rule for ValueMod/ValueDiv produce constants with the wrong format when the result can be an int32
https://bugs.webkit.org/show_bug.cgi?id=205906
<rdar://problem/56108519>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/ai-value-div-should-result-in-constant-int-where-possible.js: Added.

(foo.bar.f):
(foo.):
(foo):

  • stress/ai-value-mod-should-result-in-constant-int-where-possible.js: Added.

(foo.bar.f):
(foo.):
(foo):

Source/JavaScriptCore:

The runtime code for ValueMod and ValueDiv produces an int32 when the result
is of int32 value. However, the AI was saying the result is in double format.
This patch fixes AI to produce a JSValue in the right format.

  • dfg/DFGAbstractInterpreterInlines.h:

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

10:40 PM Changeset in webkit [254187] by commit-queue@webkit.org
  • 32 edits
    6 adds in trunk

Implement css3-images image-orientation
https://bugs.webkit.org/show_bug.cgi?id=89052

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

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-images/inheritance-expected.txt:
  • web-platform-tests/css/css-images/inheritance.html:

This test is re-synced from upstream

  • web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt:
  • web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt:

Source/JavaScriptCore:

Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Implement the CSS image-orientation property for content images. The valid
values are "from-image" or "none". The default value is "from-image".

Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation
GitHub issue: https://github.com/w3c/csswg-drafts/issues/4164

Tests: fast/images/image-orientation-dynamic-from-image.html

fast/images/image-orientation-dynamic-none.html
fast/images/image-orientation-none.html

  • Configurations/FeatureDefines.xcconfig:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted.

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeImageOrientation):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::imageOrientation const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::styleDidChange):

  • rendering/style/RenderStyle.cpp:

(WebCore::rareInheritedDataChangeRequiresLayout):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setImageOrientation):
(WebCore::RenderStyle::initialImageOrientation):
(WebCore::RenderStyle::imageOrientation const):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertImageOrientation):

Source/WebCore/PAL:

Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

  • wtf/FeatureDefines.h:

Tools:

Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Test the css image-orientation property.

  • fast/images/image-orientation-dynamic-from-image-expected.html: Added.
  • fast/images/image-orientation-dynamic-from-image.html: Added.
  • fast/images/image-orientation-dynamic-none-expected.html: Added.
  • fast/images/image-orientation-dynamic-none.html: Added.
  • fast/images/image-orientation-none-expected.html: Added.
  • fast/images/image-orientation-none.html: Added.
9:02 PM Changeset in webkit [254186] by Devin Rousso
  • 17 edits in trunk/Source

Web Inspector: unable to edit or view the source of style sheets injected by safari app extensions
https://bugs.webkit.org/show_bug.cgi?id=205900
<rdar://problem/57898773>

Reviewed by Timothy Hatcher.

Remove the restrictions around CSS.StyleSheetOrigin.User style sheets, thereby allowing
Web Inspector to get the source information that is necessary to show the "resource" in the
Sources Tab.

Source/WebCore:

  • dom/ExtensionStyleSheets.h:
  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):
(WebCore::ExtensionStyleSheets::contentForInjectedStyleSheet const): Added.
Save a copy of the string source of any injected style sheet and provide a way to get it for
any given CSSStyleSheet.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::activeStyleSheetsForInspector):

  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):
Include all types of extension style sheets when collecting active rules and style sheets
for Web Inspector to instrument.

  • inspector/InspectorStyleSheet.cpp:
  • inspector/InspectorStyleSheet.h:

(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::originalStyleSheetText const):
(WebCore::InspectorStyleSheet::resourceStyleSheetText const):
(WebCore::InspectorStyleSheet::inlineStyleSheetText const):
(WebCore::InspectorStyleSheet::extensionStyleSheetText const): Added.

Source/WebInspectorUI:

  • UserInterface/Models/CSSStyleSheet.js:

(WI.CSSStyleSheet.prototype.get displayName):
(WI.CSSStyleSheet.prototype.get injected): Added.
(WI.CSSStyleSheet.prototype.get anonymous): Added.

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype._parseRulePayload):

  • UserInterface/Models/CSSRule.js:

(WI.CSSRule):
(WI.CSSRule.prototype.get editable):
(WI.CSSRule.prototype._selectorResolved):
Attempt to create a source code location for any style sheet with a source range, not just
for the Inspector Style Sheet.

  • UserInterface/Views/CSSStyleSheetTreeElement.js:

(WI.CSSStyleSheetTreeElement):
Instead of hardcoding "Inspector Style Sheet", use the associated WI.CSSStyleSheet's info.

  • UserInterface/Views/FrameTreeElement.js:

(WI.FrameTreeElement):
(WI.FrameTreeElement.prototype.onattach):
(WI.FrameTreeElement.prototype.ondetach):
(WI.FrameTreeElement.prototype._styleSheetAdded):
(WI.FrameTreeElement.prototype._styleSheetRemoved): Added.
Ensure that only non-injected non-anonymous style sheets are shown under frames.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
(WI.SourcesNavigationSidebarPanel.prototype._addResource):
(WI.SourcesNavigationSidebarPanel.prototype._addStyleSheet): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged):
(WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetAdded): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetRemoved): Added.
Add "Extension Style Sheets", "Extra Style Sheets", and "Anonymous Style Sheets" folders,
just like for scripts, with a similar logic as to when style sheets are added to each.

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog):
(WI.OpenResourceDialog.prototype.representedObjectIsValid): Added.
(WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
(WI.OpenResourceDialog.prototype._populateResourceTreeOutline.createTreeElement):
(WI.OpenResourceDialog.prototype.didDismissDialog):
(WI.OpenResourceDialog.prototype.didPresentDialog):
(WI.OpenResourceDialog.prototype._removeResource): Added.
(WI.OpenResourceDialog.prototype._resourceWasRemoved): Added.
(WI.OpenResourceDialog.prototype._scriptAdded):
(WI.OpenResourceDialog.prototype._scriptRemoved): Added.
(WI.OpenResourceDialog.prototype._handleStyleSheetAdded): Added.
(WI.OpenResourceDialog.prototype._handleStyleSheetRemoved): Added.
Add any non-injected non-anonymous style sheets when populating the list of resources.
Drive-by: remove listings for any resources that are removed from the inspected page.

  • UserInterface/Views/ResourceTreeElement.js:

(WI.ResourceTreeElement.compareResourceTreeElements):
(WI.ResourceTreeElement.compareResourceTreeElements.resolvedType): Added.
Support comparisons against non-resource tree elements.

  • Localizations/en.lproj/localizedStrings.js:
8:03 PM Changeset in webkit [254185] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[GTK] fast/text/atsui-rtl-override-selection.html is failing since r254114
https://bugs.webkit.org/show_bug.cgi?id=205898

Unreviewed test gardening.

Patch by Fujii Hironori <fujii.hironori@gmail.com> on 2020-01-07

  • platform/gtk/fast/text/atsui-rtl-override-selection-expected.png:
  • platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt:
6:34 PM Changeset in webkit [254184] by Fujii Hironori
  • 26 edits in trunk/LayoutTests

Unreviewed test gardening for GTK port after r252598.

  • platform/gtk/compositing/images/direct-image-background-color-expected.txt:
  • platform/gtk/compositing/webgl/webgl-background-color-expected.txt:
  • platform/gtk/fast/backgrounds/background-leakage-expected.txt:
  • platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
  • platform/gtk/fast/block/float/intruding-painted-twice-expected.txt:
  • platform/gtk/fast/borders/mixed-border-styles-expected.txt:
  • platform/gtk/fast/borders/mixed-border-styles-radius-expected.txt:
  • platform/gtk/fast/borders/mixed-border-styles-radius2-expected.txt:
  • platform/gtk/fast/box-shadow/inset-box-shadow-radius-expected.txt:
  • platform/gtk/fast/css/percentage-non-integer-expected.txt:
  • platform/gtk/fast/css/shadow-multiple-expected.txt:
  • platform/gtk/fast/css/viewport-units-dynamic-expected.txt:
  • platform/gtk/fast/multicol/client-rects-expected.txt:
  • platform/gtk/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/gtk/fast/multicol/client-rects-spanners-expected.txt:
  • platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/gtk/fast/overflow/float-in-relpositioned-expected.txt:
  • platform/gtk/fast/ruby/select-ruby-expected.txt:
  • platform/gtk/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
  • platform/gtk/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
  • platform/gtk/fast/text/shadow-no-blur-expected.txt:
  • platform/gtk/fast/text/shadow-translucent-fill-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
6:20 PM Changeset in webkit [254183] by achristensen@apple.com
  • 24 edits
    5 adds in trunk

Introduce _WKResourceLoadDelegate
https://bugs.webkit.org/show_bug.cgi?id=205887

Reviewed by Dean Jackson.

Source/WebCore:

  • page/Page.h:

(WebCore::Page::setHasResourceLoadClient):
(WebCore::Page::hasResourceLoadClient const):

Source/WebKit:

Add a new delegate that will be informed about main and subresource requests.
This is distinct from the WKNavigationDelegate, which primarily receives callbacks about main resource requests.
Because the IPC churn can be a significant performance reduction, only send the IPC messages if the page has such a client.
This client will need to be expanded to implement <rdar://problem/57132290> but this is a minimal testable start.
The simple case is covered by an API test.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • SourcesCocoa.txt:
  • UIProcess/API/APIResourceLoadClient.h: Added.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _resourceLoadDelegate]):
(-[WKWebView _setResourceLoadDelegate:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadDelegate.h: Added.
  • UIProcess/Cocoa/ResourceLoadDelegate.h: Added.
  • UIProcess/Cocoa/ResourceLoadDelegate.mm: Added.

(WebKit::ResourceLoadDelegate::ResourceLoadDelegate):
(WebKit::ResourceLoadDelegate::createResourceLoadClient):
(WebKit::ResourceLoadDelegate::delegate):
(WebKit::ResourceLoadDelegate::setDelegate):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::ResourceLoadClient):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::pageWillSendRequest):

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

(WebKit::WebPageProxy::setResourceLoadClient):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):
(WebKit::WebPage::setHasResourceLoadClient):

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

Tools:

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

(-[TestResourceLoadDelegate webView:willSendRequest:]):
(TEST):

6:08 PM Changeset in webkit [254182] by Chris Dumez
  • 37 edits in trunk

Remove document.origin
https://bugs.webkit.org/show_bug.cgi?id=205681

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Merge upstream changes from:

  • web-platform-tests/dom/historical-expected.txt:
  • web-platform-tests/dom/historical.html:
  • web-platform-tests/dom/nodes/Document-constructor-svg.svg:
  • web-platform-tests/dom/nodes/Document-constructor-xml.xml:
  • web-platform-tests/dom/nodes/Document-constructor.html:
  • web-platform-tests/dom/nodes/Node-cloneNode.html:
  • web-platform-tests/html/browsers/windows/browsing-context.html:
  • web-platform-tests/html/dom/usvstring-reflection.https.html:

Source/WebCore:

Remove document.origin, which was replaced by self.origin as per:

Gecko has never supported this and Blink has already dropped support for it.

No new tests, updated existing tests.

  • dom/Document.cpp:

(WebCore::Document::origin const): Deleted.

  • dom/Document.h:
  • dom/Document.idl:
  • dom/ScriptExecutionContext.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::printAccessDeniedMessage const):

  • workers/WorkerGlobalScope.h:
  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::origin const): Deleted.

  • worklets/WorkletGlobalScope.h:

Source/WebKitLegacy/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument origin]):

LayoutTests:

  • fast/dom/Document/document-constructor-expected.txt:
  • fast/dom/Document/document-constructor.html:
  • fast/dom/domparser-parsefromstring-origin-expected.txt:
  • fast/dom/domparser-parsefromstring-origin.html:
5:55 PM Changeset in webkit [254181] by keith_miller@apple.com
  • 10 edits in trunk

Add a testing target to make that is release + assertions
https://bugs.webkit.org/show_bug.cgi?id=205895

Reviewed by Mark Lam.

  • Makefile:

.:

  • Makefile.shared:
  • Source/Makefile:
5:44 PM Changeset in webkit [254180] by Kate Cheney
  • 8 edits
    1 add in trunk

Create a mechanism for 'safe by default' web views
https://bugs.webkit.org/show_bug.cgi?id=205407
<rdar://problem/58053071>

Reviewed by Alex Christensen.

Source/WebKit:

Adds common cases to be used as the basis for 'safe by default' web views.
The cases are in the form of an NS_ENUM _WKWebViewCategory and
its equivalent C++ enum WebViewCategory. The conversion between
these happens in WKWebViewConfiguration.mm.

  • Shared/WebViewCategory.h: Added.
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::webViewCategory const):
(API::PageConfiguration::setWebViewCategory):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(convertToAPIWebViewCategory):
(convertFromAPIWebViewCategory):
(-[WKWebViewConfiguration _webViewCategory]):
(-[WKWebViewConfiguration _setWebViewCategory:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Test the default WebView category is correct and that the setter works
properly.

  • TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm:

(TEST):

5:31 PM Changeset in webkit [254179] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Reformat FrameLoader logging
https://bugs.webkit.org/show_bug.cgi?id=205884
<rdar://problem/58387123>

Reviewed by Brent Fulgham.

Update the format used by FrameLoader in its RELEASE_LOG logging. Use
the format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

0x4aa2df000 - FrameLoader::allAllLoaders: Clearing provisional document loader (frame = 0x4a8ad3550, main = 0 m_provisionalDocumentLoader=0x0)

becomes:

0x465fb61a0 - [frame=0x465c98a20, main=0] FrameLoader::stopAllLoaders: Clearing provisional document loader (m_provisionalDocumentLoader=0x0)

No new tests -- no new or changed functionality.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::finishedParsing):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::stopForBackForwardCache):
(WebCore::FrameLoader::setProvisionalDocumentLoader):
(WebCore::FrameLoader::setState):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):

5:07 PM Changeset in webkit [254178] by Chris Dumez
  • 10 edits
    4 adds in trunk

Using Web Share API preceded by an AJAX call
https://bugs.webkit.org/show_bug.cgi?id=197779
<rdar://problem/50708309>

Reviewed by Dean Jackson.

Source/WebCore:

As per the Web Share specification, navigator.share() is supposed to reject the promise with a
"NotAllowedError" DOMException if the relevant global object of this does not have transient
activation [1]. However, our implementation was stricter and would reject the promise if we
are not currently processing a user-gesture. This behavior did not match Chrome and does not
appear to be Web compatible.

To address the issue, this patch introduces the concept of transient activation [2] in WebKit
and uses it in navigator.share() to match the specification more closely. Note that we are
still a bit stricter than the specification because calling navigator.share() will currently
"consume the activation" [3] to prevent the JS from presenting the share sheet more than once
based on a single activation. However, our new behavior is still more permissive and more aligned
with Chrome.

[1] https://w3c.github.io/web-share/#dom-navigator-share
[2] https://html.spec.whatwg.org/multipage/interaction.html#transient-activation
[3] https://html.spec.whatwg.org/multipage/interaction.html#consume-user-activation

Tests: fast/web-share/share-transient-activation-expired.html

fast/web-share/share-transient-activation.html

  • dom/UserGestureIndicator.cpp:
  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::startTime const):

  • page/DOMWindow.cpp:

(WebCore::transientActivationDurationOverrideForTesting):
(WebCore::transientActivationDuration):
(WebCore::DOMWindow::origin const):
(WebCore::DOMWindow::securityOrigin const):
(WebCore::DOMWindow::overrideTransientActivationDurationForTesting):
(WebCore::DOMWindow::hasTransientActivation const):
(WebCore::DOMWindow::consumeTransientActivation):
(WebCore::DOMWindow::notifyActivated):

  • page/DOMWindow.h:
  • page/Navigator.cpp:

(WebCore::Navigator::share):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setTransientActivationDuration):

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

LayoutTests:

Add layout test coverage.

  • fast/web-share/share-transient-activation-expected.txt: Added.
  • fast/web-share/share-transient-activation-expired-expected.txt: Added.
  • fast/web-share/share-transient-activation-expired.html: Added.
  • fast/web-share/share-transient-activation.html: Added.
4:54 PM Changeset in webkit [254177] by Simon Fraser
  • 8 edits in trunk/Source

Add some more Animations logging
https://bugs.webkit.org/show_bug.cgi?id=205890

Reviewed by Dean Jackson.

Source/WebCore:

Add Animations logging to various WebAnimations entry points.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getAnimatedStyle):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::silentlySetCurrentTime):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::cancel):
(WebCore::WebAnimation::finish):
(WebCore::WebAnimation::play):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::pause):
(WebCore::WebAnimation::reverse):
(WebCore::WebAnimation::runPendingPauseTask):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::seekAnimation):

Source/WTF:

Make Seconds TextStream-loggable, and make Markable<> loggable.

  • wtf/Seconds.cpp:

(WTF::operator<<):

  • wtf/Seconds.h:
  • wtf/text/TextStream.h:

(WTF::operator<<):

4:41 PM Changeset in webkit [254176] by Truitt Savell
  • 3 edits in trunk/Tools

Unreviewed, rolling out r254165.

Caused 500+ missing results on Mac

Reverted changeset:

"run-webkit-tests: clobber-old-results should remove the
entire results folder"
https://bugs.webkit.org/show_bug.cgi?id=205875
https://trac.webkit.org/changeset/254165

4:40 PM Changeset in webkit [254175] by Alan Coon
  • 1 copy in tags/Safari-609.1.13.2.1

Tag Safari-609.1.13.2.1.

4:38 PM Changeset in webkit [254174] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Network process sandboxes should not include 'common.sb' or 'system.sb'
https://bugs.webkit.org/show_bug.cgi?id=205521
<rdar://problem/58095870>

Reviewed by Per Arne Vollan.

This patch replaces the 'include' with a copy/paste of the contents of the relevant
sandbox include file. I removed definitions that were not referenced in the existing
Network sandbox, but did not otherwise edit the contents. There are duplicates and
redundancies after this patch, which I will remove as a follow-up step once we confirm
that this has no regressions.

I also updated the sandbox to generate telemetry for some mach connections that we think
are unneeded, or that should be targeted for removal.

No new tests. There should be no change in behavior.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
4:29 PM Changeset in webkit [254173] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r254143. rdar://problem/58310178

Unreviewed non-arm64e build fix.

  • dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::reifyInlinedCallFrames):

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

4:29 PM Changeset in webkit [254172] by Alan Coon
  • 5 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r254142. rdar://problem/58310178

Bytecode checkpoint fixes for arm64(e)
https://bugs.webkit.org/show_bug.cgi?id=205871

Reviewed by Michael Saboff.

The original bytecode checkpoint patch had a couple of bugs on
arm64(e). For arm64 generally, when osr exiting to an inline
varargs frame we didn't set the return value of callee before
moving the call frame register into a0 for the slow path
call. This meant we clobber the return value on arm64 as a0 == r0.

On arm64e the osr exit compiler set the tag for the return pc for
an inline frame to JSEntryTag but the code expected
NoTag. Additionally, in the stack unwinder, we were using the
JSEntryTag but we should have been stripping the tag from the
stack value.

  • dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::callerReturnPC): (JSC::DFG::reifyInlinedCallFrames):
  • dfg/DFGOSRExitCompilerCommon.h:
  • interpreter/Interpreter.cpp: (JSC::UnwindFunctor::operator() const):
  • llint/LowLevelInterpreter.asm:

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

4:29 PM Changeset in webkit [254171] by Alan Coon
  • 5 edits in branches/safari-609-branch

Cherry-pick r254111. rdar://problem/58093690

REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205473
<rdar://problem/58093690>

Source/WebInspectorUI:

The failure was due to attempts to add output to the test page which could be not fully
loaded after navigation. To make it deterministic it is now possible to keep provisional
navigation paused and to defer output until the test page is ready.

Reviewed by Brian Burg.

  • UserInterface/Protocol/Target.js: (WI.Target.prototype.initialize): (WI.Target.prototype._resumeIfPaused): extracted resume logic in a method that can be overridden in the tests.
  • UserInterface/Test/FrontendTestHarness.js: (FrontendTestHarness.prototype.deferOutputUntilTestPageIsReloaded): allow to pause output when navigation is started via protocol commands rather than the test harness.

LayoutTests:

Reviewed by Brian Burg.

Keep provisional page paused until second navigation replaces it and also
defer output until test page is fully initialized after navigation.

  • http/tests/inspector/target/provisional-load-cancels-previous-load.html:

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

4:24 PM Changeset in webkit [254170] by Alan Coon
  • 8 edits in branches/safari-609.1.13.2-branch/Source

Versioning.

4:17 PM Changeset in webkit [254169] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKitLegacy

REGRESSION (r248734): different threads write m_storageMap of StorageAreaImpl at the same time
https://bugs.webkit.org/show_bug.cgi?id=205764
<rdar://problem/58179425>

Reviewed by Maciej Stachowiak.

In StorageAreaImpl, we avoid modifying m_storageMap from different threads at the same time by blocking main
thread access to it until the writes(importing items) of storage thread is done.

In r248734 we introduced a new case where the main thread could modify m_storageMap for session change, but we
didn't add the wait there.

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::importItems):
(WebKit::StorageAreaImpl::sessionChanged):

4:14 PM Changeset in webkit [254168] by Alan Coon
  • 1 copy in branches/safari-609.1.13.2-branch

New branch.

4:08 PM Changeset in webkit [254167] by dbates@webkit.org
  • 4 edits in trunk/LayoutTests

Fix up layout tests results following r254160
<rdar://problem/58383099>

Revert some results back to pre-r254091. These results were changed because I made
an accident (corrected in r254160) that made me mistakenly think the new results
were legitimate. They weren't.

  • fast/dom/Range/getClientRects-expected.txt:
  • fast/dom/Range/getClientRects.html:
  • fast/repaint/text-selection-overflow-hidden-expected.txt:
4:01 PM Changeset in webkit [254166] by Ross Kirsling
  • 17 edits in trunk/Source

Unreviewed restabilization of non-unified build.

Source/JavaScriptCore:

  • bytecode/MethodOfGettingAValueProfile.h:
  • dfg/DFGVariableEvent.h:
  • dfg/DFGVariableEventStream.cpp:
  • interpreter/CheckpointOSRExitSideState.h:

Source/WebCore:

  • html/HTMLDialogElement.cpp:
  • platform/graphics/cairo/ImageBufferCairo.cpp:
  • style/StyleAdjuster.h:
  • style/UserAgentStyle.cpp:
  • workers/service/SWClientConnection.cpp:
  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

Source/WebKit:

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

(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::suspend):
(WebKit::WebIDBServer::didFireVersionChangeEvent):

  • UIProcess/WebContextClient.h:
3:54 PM Changeset in webkit [254165] by Jonathan Bedard
  • 3 edits in trunk/Tools

run-webkit-tests: clobber-old-results should remove the entire results folder
https://bugs.webkit.org/show_bug.cgi?id=205875
<rdar://problem/58236117>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._clobber_old_results): Remove entire results folder.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_retrying_and_flaky_tests): clobber-old-results now removes the
entire results directory.

3:17 PM Changeset in webkit [254164] by Simon Fraser
  • 3 edits
    2 adds in trunk

WebKit rejects changes between similar unprefixed & prefixed gradient syntax
https://bugs.webkit.org/show_bug.cgi?id=171015

Reviewed by Dean Jackson.
Source/WebCore:

equals() needs to test m_gradientType.

Test: fast/css/gradient-prefixed-unprefixed-toggle.html

  • css/CSSGradientValue.cpp:

(WebCore::CSSLinearGradientValue::equals const):
(WebCore::CSSRadialGradientValue::equals const):

LayoutTests:

  • fast/css/gradient-prefixed-unprefixed-toggle-expected.html: Added.
  • fast/css/gradient-prefixed-unprefixed-toggle.html: Added.
3:14 PM Changeset in webkit [254163] by Alan Coon
  • 1 copy in tags/Safari-608.5.8

Tag Safari-608.5.8.

2:58 PM Changeset in webkit [254162] by Alan Coon
  • 1 copy in tags/Safari-609.1.13.4

Tag Safari-609.1.13.4.

2:53 PM Changeset in webkit [254161] by Alan Coon
  • 8 edits in branches/safari-609.1.13-branch/Source

Versioning.

2:39 PM Changeset in webkit [254160] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix failing tests following r254091
<rdar://problem/58383099>

Use LayoutUnit for the logical width instead of "auto" as the original code did before r254091
to fix layout test failures, e.g. editing/selection/ios/fixed-selection-after-scroll.html
This avoids accidental integer truncation that can occur if "snappedSelectionRect.maxX() > logicalRight"
evaluates to true.

  • rendering/InlineTextBox.cpp:

(WebCore::snappedSelectionRect):

2:33 PM Changeset in webkit [254159] by Megan Gardner
  • 7 edits in trunk/Source/WebCore

Rename start/endPosition to start/endOffset in SelectionRangeData for clarity
https://bugs.webkit.org/show_bug.cgi?id=205838

Reviewed by Megan Gardner.

Offset is a more correct term for this variable, as it is just an unsigned.

No behavior change.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::verifySelectionState const):
(WebCore::InlineTextBox::selectionStartEnd const):
(WebCore::InlineTextBox::highlightStartEnd const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::isSelected const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::collectSelectionRectsForLineBoxes):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::setSelectionState):

  • rendering/SelectionRangeData.cpp:

(WebCore::rendererAfterOffset):
(WebCore::collect):
(WebCore::SelectionRangeData::selectionStateForRenderer):
(WebCore::SelectionRangeData::repaint const):
(WebCore::SelectionRangeData::collectBounds const):
(WebCore::SelectionRangeData::apply):
(WebCore::rendererAfterPosition): Deleted.

  • rendering/SelectionRangeData.h:

(WebCore::SelectionRangeData::Context::Context):
(WebCore::SelectionRangeData::Context::startOffset const):
(WebCore::SelectionRangeData::Context::endOffset const):
(WebCore::SelectionRangeData::Context::operator== const):
(WebCore::SelectionRangeData::startOffset const):
(WebCore::SelectionRangeData::endOffset const):
(WebCore::SelectionRangeData::Context::startPosition const): Deleted.
(WebCore::SelectionRangeData::Context::endPosition const): Deleted.
(WebCore::SelectionRangeData::startPosition const): Deleted.
(WebCore::SelectionRangeData::endPosition const): Deleted.

2:28 PM Changeset in webkit [254158] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

AXIsolatedObject support for lists (l, ul, ol, dl).
https://bugs.webkit.org/show_bug.cgi?id=205874

Reviewed by Chris Fleizach.

  • AXIsolatedObject implementation of isUnordered/Ordered/descriptionList.
  • Client code doesn't downcast to AccessibilityList any longer,

but instead uses these methods that are exposed through AXCoreObject.

  • accessibility/AccessibilityList.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::rolePlatformDescription const):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):

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

REGRESSION: [ Mac wk2 ] http/wpt/service-workers/persistent-importScripts.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205886

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:14 PM Changeset in webkit [254156] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] Limit pre-existing JSC tests failures to display in buildbot summary
https://bugs.webkit.org/show_bug.cgi?id=205878

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeJSCTestsResults.start): Limit the number of failures to display.

2:07 PM Changeset in webkit [254155] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add a move constructor to IDBResultData
https://bugs.webkit.org/show_bug.cgi?id=205833
<rdar://problem/58146233>

Reviewed by Youenn Fablet.

  • Modules/indexeddb/shared/IDBResultData.h:
1:58 PM Changeset in webkit [254154] by Pablo Saavedra
  • 42 edits
    1 copy
    24 moves
    205 adds
    24 deletes in trunk/LayoutTests

Re-sync web-platform-tests/xhr from upstream
https://bugs.webkit.org/show_bug.cgi?id=205641

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/FormData-append-expected.txt:
  • web-platform-tests/xhr/FormData-append.html:
  • web-platform-tests/xhr/META.yml:
  • web-platform-tests/xhr/abort-after-receive.htm: Removed.
  • web-platform-tests/xhr/abort-after-send.htm: Removed.
  • web-platform-tests/xhr/abort-after-stop.htm: Removed.
  • web-platform-tests/xhr/abort-after-timeout.htm: Removed.
  • web-platform-tests/xhr/abort-during-done.htm: Removed.
  • web-platform-tests/xhr/abort-during-headers-received.htm: Removed.
  • web-platform-tests/xhr/abort-during-loading.htm: Removed.
  • web-platform-tests/xhr/abort-during-unsent.htm: Removed.
  • web-platform-tests/xhr/abort-during-upload.htm: Removed.
  • web-platform-tests/xhr/abort-event-abort.htm: Removed.
  • web-platform-tests/xhr/abort-event-listeners.htm: Removed.
  • web-platform-tests/xhr/abort-event-loadend.htm: Removed.
  • web-platform-tests/xhr/abort-upload-event-abort.htm: Removed.
  • web-platform-tests/xhr/abort-upload-event-loadend.htm: Removed.
  • web-platform-tests/xhr/access-control-and-redirects-async-same-origin.htm: Removed.
  • web-platform-tests/xhr/access-control-and-redirects-async.htm: Removed.
  • web-platform-tests/xhr/access-control-and-redirects.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-access-control-origin-header.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-async.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-non-cors-safelisted-method-async.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-non-cors-safelisted-method.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-preflight-cache-invalidation-by-header.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-preflight-cache-invalidation-by-method.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-preflight-cache-timeout.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-preflight-cache.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow-star.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-allow.htm: Removed.
  • web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers-expected.txt:
  • web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers.htm:
  • web-platform-tests/xhr/event-abort.htm: Removed.
  • web-platform-tests/xhr/event-error.sub.html: Removed.
  • web-platform-tests/xhr/event-load.htm: Removed.
  • web-platform-tests/xhr/event-loadend.htm: Removed.
  • web-platform-tests/xhr/event-loadstart-upload.htm: Removed.
  • web-platform-tests/xhr/event-loadstart.htm: Removed.
  • web-platform-tests/xhr/event-progress.htm: Removed.
  • web-platform-tests/xhr/event-readystate-sync-open.htm: Removed.
  • web-platform-tests/xhr/event-readystatechange-loaded.htm: Removed.
  • web-platform-tests/xhr/event-timeout-order.htm: Removed.
  • web-platform-tests/xhr/event-timeout.htm: Removed.
  • web-platform-tests/xhr/event-upload-progress-crossorigin.htm: Removed.
  • web-platform-tests/xhr/event-upload-progress.htm: Removed.
  • web-platform-tests/xhr/formdata-expected.txt:
  • web-platform-tests/xhr/formdata-set-expected.txt:
  • web-platform-tests/xhr/formdata-set.htm:
  • web-platform-tests/xhr/formdata.htm:
  • web-platform-tests/xhr/getallresponseheaders-expected.txt:
  • web-platform-tests/xhr/getallresponseheaders.htm:
  • web-platform-tests/xhr/idlharness.any.js:
  • web-platform-tests/xhr/open-during-abort-processing-expected.txt:
  • web-platform-tests/xhr/open-during-abort-processing.htm:
  • web-platform-tests/xhr/overridemimetype-blob.html:
  • web-platform-tests/xhr/overridemimetype-unsent-state-force-shiftjis.htm: Removed.
  • web-platform-tests/xhr/resources/access-control-basic-options-not-supported.py:

(main):

  • web-platform-tests/xhr/resources/authentication.py:

(main):

  • web-platform-tests/xhr/resources/echo-method.py:

(main):

  • web-platform-tests/xhr/resources/headers.asis:
  • web-platform-tests/xhr/response-data-progress.htm:
  • web-platform-tests/xhr/responsexml-document-properties-expected.txt:
  • web-platform-tests/xhr/responsexml-document-properties.htm:
  • web-platform-tests/xhr/send-authentication-basic-cors-not-enabled-expected.txt:
  • web-platform-tests/xhr/send-authentication-basic-cors-not-enabled.htm:
  • web-platform-tests/xhr/send-authentication-basic-repeat-no-args.htm:
  • web-platform-tests/xhr/send-content-type-charset.htm:
  • web-platform-tests/xhr/send-data-arraybuffer.htm: Removed.
  • web-platform-tests/xhr/send-data-arraybufferview.htm: Removed.
  • web-platform-tests/xhr/send-data-es-object.htm: Removed.
  • web-platform-tests/xhr/send-data-formdata.htm: Removed.
  • web-platform-tests/xhr/send-redirect-bogus-sync-expected.txt:
  • web-platform-tests/xhr/send-redirect-bogus-sync.htm:
  • web-platform-tests/xhr/send-redirect-bogus.htm:
  • web-platform-tests/xhr/send-redirect-post-upload.htm:
  • web-platform-tests/xhr/setrequestheader-content-type.htm:
  • web-platform-tests/xhr/sync-no-progress.any.js:
  • web-platform-tests/xhr/timeout-cors-async.htm:
  • web-platform-tests/xhr/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
  • platform/mac-wk1/TestExpectations:
  • tests-options.json:
1:26 PM Changeset in webkit [254153] by dbates@webkit.org
  • 13 edits in trunk

First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines
https://bugs.webkit.org/show_bug.cgi?id=205842
<rdar://problem/56884325>

Reviewed by Zalan Bujtas.

Source/WebCore:

Adds a new BoundingRectBehavior enumarator, IgnoreEmptyTextSelections, to ignore line boxes
that are not selected by the specified range when computing the bounding box for it via Range::absoluteBoundingBox().

A line box is said to be selected if there is at least one character in the specified character
range. So, a range whose start position coincides with the edge of a line box does not select the
box. However such ranges are considered to select such boxes when passed to web-exposed APIs
{Element, Range}.getClientRects() and {Element, Range}.getBoundingClientRect(). These ranges
produce empty client rectangles and these empty rectangles effect the computation of the bounding
client rect. This is all speced behavior.

When computing the glpyh bounding box for a document context request, these empty rectangles are
not meaningful and cause weird results: the empty rect is unioned with the rect for the next selected
character producing a rectangle that overlaps two lines. Ignoring them makes things behave more like
NSLayoutManager.

  • dom/Range.cpp:

(WebCore::Range::absoluteBoundingBox const):
(WebCore::Range::absoluteRectsForRangeInText const):
(WebCore::Range::absoluteTextQuads const):

  • dom/Range.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteQuadsForRange const):

  • rendering/RenderText.h:
  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const):
Pass an option to ignore empty text selections through. By default Range::absoluteBoundingBox() takes
an empty set of BoundingRectBehavior enumerators to keep its current behavior.

(WebCore::RenderTextLineBoxes::absoluteRectsForRange const): Added a boolean as to whether to
ignore empty selections. If enabled, skip all boxes that are not selected by the specified
character range.

  • rendering/RenderTextLineBoxes.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange): Ditto.

  • rendering/SimpleLineLayoutFunctions.h:

Source/WebKit:

Pass BoundingRectBehavior::IgnoreEmptyTextSelections to Range::absoluteBoundingBox() to compute
the glyph bounding box ignoring empty text selections that would typically occur if the start of
the range coincide with the edge of a line box. This makes the behavior more consistent with
the behavior of NSLayoutManager.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add a new test.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

1:13 PM Changeset in webkit [254152] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Remove vm accessor in JSVirtualMachine to reduce binary size
https://bugs.webkit.org/show_bug.cgi?id=205880

Reviewed by Mark Lam.

Objective-C has reflection mechanism. This means that fields, methods, and their types
need to hold its string representations in binary even if we are using release build.
While typical Objective-C class does not have large size of type names, C++ struct / class
has very large one, and putting them in Objective-C method names, parameter types, or fields
makes binary size very large.

By analyzing JavaScriptCore binary, I found that Objective-C method type symbols are taking 200~KB
binary size. (Section objc_methtype: 235081 (addr 0x105e9a3 offset 17164707)). And it is due to
JSC::VM type included in [JSVirtualMachine vm] accessor.

This patch removes this accessor and gets 200KB binary size reduction.

  • API/JSScript.mm:

(-[JSScript readCache]):
(-[JSScript sourceCode]):
(-[JSScript jsSourceCode]):
(-[JSScript writeCache:]):

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine JSContextGroupRef]):
(-[JSVirtualMachine isWebThreadAware]):
(-[JSVirtualMachine vm]): Deleted.

  • API/JSVirtualMachineInternal.h:
1:10 PM Changeset in webkit [254151] by Ryan Haddad
  • 13 edits in trunk

Unreviewed, rolling out r254144.

Broke the iOS build.

Reverted changeset:

"First character in each word-wrapped line has incorrect
character rect when requested range spans multiple lines"
https://bugs.webkit.org/show_bug.cgi?id=205842
https://trac.webkit.org/changeset/254144

12:58 PM Changeset in webkit [254150] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark webexposed/css-properties-behind-flags.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=197204

  • platform/mac/TestExpectations:
12:54 PM Changeset in webkit [254149] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Handle case where processing data is undefined
https://bugs.webkit.org/show_bug.cgi?id=205870

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext._do_job_for_key): If the job content is undefined, mark the job as
finished.

12:47 PM Changeset in webkit [254148] by dino@apple.com
  • 11 edits in trunk

[WebGL] Fill in missing WebGL2 entry points
https://bugs.webkit.org/show_bug.cgi?id=205689
<rdar://problem/58280920>

Reviewed by Simon Fraser.

Fill in the bits of the WebGL2 API that were missing.

The specification splits into Base and Implementation
interfaces, but I put everything in one place since
we already have to check that we don't have function
signature clashes.

I also fixed some situations where we were not
allowing for an Exception to be returned.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::compressedTexImage2D):
(WebCore::WebGL2RenderingContext::compressedTexSubImage2D):
(WebCore::WebGL2RenderingContext::uniform1fv):
(WebCore::WebGL2RenderingContext::uniform2fv):
(WebCore::WebGL2RenderingContext::uniform3fv):
(WebCore::WebGL2RenderingContext::uniform4fv):
(WebCore::WebGL2RenderingContext::uniform1iv):
(WebCore::WebGL2RenderingContext::uniform2iv):
(WebCore::WebGL2RenderingContext::uniform3iv):
(WebCore::WebGL2RenderingContext::uniform4iv):
(WebCore::WebGL2RenderingContext::uniformMatrix2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4fv):
(WebCore::WebGL2RenderingContext::readPixels):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
12:38 PM Changeset in webkit [254147] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Reformat WebFrameLoaderClient logging
https://bugs.webkit.org/show_bug.cgi?id=205869
<rdar://problem/58379240>

Reviewed by Brent Fulgham.

Update the format used by WebFrameLoaderClient in its RELEASE_LOG
logging. Use the format used by WebPageProxy and
NetworkResourceLoader, which is generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

0x4a1d7c310 - WebFrameLoaderClient::dispatchDidReachLayoutMilestone: dispatching didCompletePageTransition, page = 0x7f83ba009208

becomes:

0x4a1d7c310 - [webFrame=0x7ff703f03b68, webFrameID=3, webPage=0x7ff704831808, webPageID=15] WebFrameLoaderClient::dispatchDidReachLayoutMilestone: dispatching didCompletePageTransition

No new tests - no added or changed functionality.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):

12:38 PM Changeset in webkit [254146] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

transitions/default-timing-function.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205804
<rdar://problem/58343509>

Patch by Antoine Quint <Antoine Quint> on 2020-01-07
Reviewed by Simon Fraser.

To pause a Web Animation at a given time, we need to call pause() first and set currentTime after. Otherwise, the animation's hold
time will not be set to the provided value and the time may progress between the moment pause() was called and the moment the pending
pause task it creates is performed.

The reason the behavior changed for this test is because in r254042 we added a call to updateRendering() which updates the timeline time
which otherwise wouldn't have been updated.

  • animations/resources/animation-test-helpers.js:
  • transitions/resources/transition-test-helpers.js:
12:17 PM Changeset in webkit [254145] by Devin Rousso
  • 5 edits in trunk

REGRESSION: [ Mac Debug ] inspector/page/setBootstrapScript-main-frame.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205807
<rdar://problem/58344669>

Reviewed by Dean Jackson.

Source/WebInspectorUI:

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.async createBootstrapScript):
(WI.NetworkManager.prototype._handleBootstrapScriptContentDidChange):
Ensure that Page.setBootstrapScript is called when restoring the bootstrap script from the
IndexedDB storage. Otherwise, in situations like when Web Inspector is first opened, we will
show the Inspector Bootstrap Script in the UI, but not actually set it on the inspected page.

LayoutTests:

  • inspector/page/setBootstrapScript-main-frame.html:

In addition to waiting for Page.reload, we should also wait for the page to actually load.
Set the content of the bootstrap script during its creation instead of as a two step process.
Avoid an assertion by setting the enabled state after the bootstrap script is initalized.

  • platform/mac/TestExpectations:

Remove expectation added in r254059.

12:03 PM Changeset in webkit [254144] by dbates@webkit.org
  • 13 edits in trunk

First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines
https://bugs.webkit.org/show_bug.cgi?id=205842
<rdar://problem/56884325>

Reviewed by Zalan Bujtas.

Source/WebCore:

Adds a new BoundingRectBehavior enumarator, IgnoreEmptyTextSelections, to ignore line boxes
that are not selected by the specified range when computing the bounding box for it via Range::absoluteBoundingBox().

A line box is said to be selected if there is at least one character in the specified character
range. So, a range whose start position coincides with the edge of a line box does not select the
box. However such ranges are considered to select such boxes when passed to web-exposed APIs
{Element, Range}.getClientRects() and {Element, Range}.getBoundingClientRect(). These ranges
produce empty client rectangles and these empty rectangles effect the computation of the bounding
client rect. This is all speced behavior.

When computing the glpyh bounding box for a document context request, these empty rectangles are
not meaningful and cause weird results: the empty rect is unioned with the rect for the next selected
character producing a rectangle that overlaps two lines. Ignoring them makes things behave more like
NSLayoutManager.

  • dom/Range.cpp:

(WebCore::Range::absoluteBoundingBox const):
(WebCore::Range::absoluteRectsForRangeInText const):
(WebCore::Range::absoluteTextQuads const):

  • dom/Range.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteQuadsForRange const):

  • rendering/RenderText.h:
  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const):
Pass an option to ignore empty text selections through. By default Range::absoluteBoundingBox() takes
an empty set of BoundingRectBehavior enumerators to keep its current behavior.

(WebCore::RenderTextLineBoxes::absoluteRectsForRange const): Added a boolean as to whether to
ignore empty selections. If enabled, skip all boxes that are not selected by the specified
character range.

  • rendering/RenderTextLineBoxes.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange): Ditto.

  • rendering/SimpleLineLayoutFunctions.h:

Source/WebKit:

Pass BoundingRectBehavior::IgnoreEmptyTextSelections to Range::absoluteBoundingBox() to compute
the glyph bounding box ignoring empty text selections that would typically occur if the start of
the range coincide with the edge of a line box. This makes the behavior more consistent with
the behavior of NSLayoutManager.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add a new test.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

11:58 AM Changeset in webkit [254143] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed non-arm64e build fix.

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

11:43 AM Changeset in webkit [254142] by keith_miller@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Bytecode checkpoint fixes for arm64(e)
https://bugs.webkit.org/show_bug.cgi?id=205871

Reviewed by Michael Saboff.

The original bytecode checkpoint patch had a couple of bugs on
arm64(e). For arm64 generally, when osr exiting to an inline
varargs frame we didn't set the return value of callee before
moving the call frame register into a0 for the slow path
call. This meant we clobber the return value on arm64 as a0 == r0.

On arm64e the osr exit compiler set the tag for the return pc for
an inline frame to JSEntryTag but the code expected
NoTag. Additionally, in the stack unwinder, we were using the
JSEntryTag but we should have been stripping the tag from the
stack value.

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):
(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.h:
  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator() const):

  • llint/LowLevelInterpreter.asm:
11:27 AM Changeset in webkit [254141] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Flaky API Test: TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS
https://bugs.webkit.org/show_bug.cgi?id=194340
<rdar://problem/50507254>

Reviewed by Eric Carlson.

Workaround for AVFoundation crash for OS versions prior to platform fix. This crash occurrs infrequently
while triggering KVO due to an internal @property change. Work around the crash by disabling KVO for that
property at runtime, by injecting a new class method +automaticallyNotifiesObserversOfSuppressesVideoLayers
immediately after soft linking the AVFoundation library.

  • pal/cocoa/AVFoundationSoftLink.mm:

(PAL::justReturnsNO):
(PAL::AVFoundationLibrary):

11:04 AM Changeset in webkit [254140] by basuke.suzuki@sony.com
  • 3 edits in trunk/Tools

check-webkit-style: bmalloc doesn't use config.h
https://bugs.webkit.org/show_bug.cgi?id=205840

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_IncludeState.check_next_include_order):
(check_include_line):
(check_has_config_header):

10:55 AM Changeset in webkit [254139] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Correct some conflicting expectations for fast/text/emoji-gender- tests
https://bugs.webkit.org/show_bug.cgi?id=204820

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:39 AM Changeset in webkit [254138] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Correct expectations made in r254134, r254135, and r254136
https://bugs.webkit.org/show_bug.cgi?id=205862
https://bugs.webkit.org/show_bug.cgi?id=205865
https://bugs.webkit.org/show_bug.cgi?id=205867

Unreviewed test gardneing.

  • platform/mac/TestExpectations:
10:35 AM Changeset in webkit [254137] by commit-queue@webkit.org
  • 39 edits
    15 deletes in trunk

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

It is breaking WinCairo build and internal builds. (Requested
by youenn on #webkit).

Reverted changeset:

"Implement MediaRecorder backend in GPUProcess"
https://bugs.webkit.org/show_bug.cgi?id=205802
https://trac.webkit.org/changeset/254132

9:59 AM Changeset in webkit [254136] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mojave+ wk2 ] webgpu/draw-indexed-triangles.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205867

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:57 AM Changeset in webkit [254135] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mojave+ wk2 ] webgpu/whlsl/ensure-proper-variable-lifetime-2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205865

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:55 AM Changeset in webkit [254134] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mojave+ wk2 ] webgpu/whlsl/while-loop-break.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205862

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:23 AM Changeset in webkit [254133] by Pablo Saavedra
  • 69 edits
    1 copy
    1 move
    42 adds in trunk/LayoutTests

Re-sync web-platform-tests/content-security-policy from upstream
https://bugs.webkit.org/show_bug.cgi?id=205639

Reviewed by Carlos Alberto Lopez Perez.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/content-security-policy/README.html:
  • web-platform-tests/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html:
  • web-platform-tests/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html:
  • web-platform-tests/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html:
  • web-platform-tests/content-security-policy/embedded-enforcement/support/echo-required-csp.py:

(main):

  • web-platform-tests/content-security-policy/font-src/font-none-blocked.sub.html:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block.html:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-none-block-expected.txt:
  • web-platform-tests/content-security-policy/frame-ancestors/report-blocked-frame.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/report-blocked-frame.sub.html: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub.html: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy-report-only.sub.html: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy-report-only.sub.html.sub.headers: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy.sub.html: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy.sub.html.sub.headers: Added.
  • web-platform-tests/content-security-policy/frame-ancestors/support/frame-ancestors-test.sub.js:

(iframeLoaded):

  • web-platform-tests/content-security-policy/frame-ancestors/support/service-worker.js: Added.

(self.onfetch.e.e.respondWith):

  • web-platform-tests/content-security-policy/frame-ancestors/support/w3c-import.log:
  • web-platform-tests/content-security-policy/frame-ancestors/w3c-import.log:
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document-expected.txt: Added.
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta.html: Added.
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document.html: Added.
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document.html.headers: Added.
  • web-platform-tests/content-security-policy/frame-src/w3c-import.log:
  • web-platform-tests/content-security-policy/generic/generic-0_1-script-src.html:
  • web-platform-tests/content-security-policy/generic/generic-0_10.sub-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/content-security-policy/generic/generic-0_9.sub-expected.txt.
  • web-platform-tests/content-security-policy/generic/generic-0_10.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/content-security-policy/generic/generic-0_10.html.
  • web-platform-tests/content-security-policy/generic/generic-0_2-expected.txt:
  • web-platform-tests/content-security-policy/generic/generic-0_2.html:
  • web-platform-tests/content-security-policy/generic/generic-0_8.sub-expected.txt:
  • web-platform-tests/content-security-policy/generic/generic-0_8.sub.html:
  • web-platform-tests/content-security-policy/generic/generic-0_8_1.sub.html:
  • web-platform-tests/content-security-policy/generic/generic-0_9.sub-expected.txt:
  • web-platform-tests/content-security-policy/generic/generic-0_9.sub.html:
  • web-platform-tests/content-security-policy/generic/no-default-src.sub-expected.txt:
  • web-platform-tests/content-security-policy/generic/no-default-src.sub.html:
  • web-platform-tests/content-security-policy/generic/positiveTest.js:

(onload): Deleted.

  • web-platform-tests/content-security-policy/generic/w3c-import.log:
  • web-platform-tests/content-security-policy/img-src/img-src-4_1.sub-expected.txt:
  • web-platform-tests/content-security-policy/img-src/img-src-4_1.sub.html:
  • web-platform-tests/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub-expected.txt:
  • web-platform-tests/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub.html:
  • web-platform-tests/content-security-policy/img-src/img-src-port-wildcard-allowed.sub-expected.txt:
  • web-platform-tests/content-security-policy/img-src/img-src-port-wildcard-allowed.sub.html:
  • web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js:
  • web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js:

(promise_test.t.return.new.Promise):
(async_test.t.Promise.all.new.Promise): Deleted.

  • web-platform-tests/content-security-policy/inside-worker/support/script-src-allow.sub.js:
  • web-platform-tests/content-security-policy/inside-worker/support/script-src-self.sub.js:
  • web-platform-tests/content-security-policy/media-src/media-src-7_3.sub.html:
  • web-platform-tests/content-security-policy/media-src/media-src-7_3_2.sub.html:
  • web-platform-tests/content-security-policy/meta/sandbox-iframe-expected.txt: Added.
  • web-platform-tests/content-security-policy/meta/sandbox-iframe.html: Added.
  • web-platform-tests/content-security-policy/meta/w3c-import.log:
  • web-platform-tests/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html:
  • web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub.html:
  • web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval-expected.txt: Added.
  • web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval.html: Added.
  • web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval.html.sub.headers: Added.
  • web-platform-tests/content-security-policy/reporting/report-uri-from-child-frame-expected.txt:
  • web-platform-tests/content-security-policy/reporting/report-uri-from-child-frame.html:
  • web-platform-tests/content-security-policy/reporting/w3c-import.log:
  • web-platform-tests/content-security-policy/script-src/script-src-sri_hash.sub-expected.txt:
  • web-platform-tests/content-security-policy/script-src/script-src-sri_hash.sub.html:
  • web-platform-tests/content-security-policy/script-src/scripthash-basic-blocked-error-event-expected.txt: Added.
  • web-platform-tests/content-security-policy/script-src/scripthash-basic-blocked-error-event.html: Added.
  • web-platform-tests/content-security-policy/script-src/scripthash-changed-1-expected.txt: Added.
  • web-platform-tests/content-security-policy/script-src/scripthash-changed-1.html: Added.
  • web-platform-tests/content-security-policy/script-src/scripthash-changed-2-expected.txt: Added.
  • web-platform-tests/content-security-policy/script-src/scripthash-changed-2.html: Added.
  • web-platform-tests/content-security-policy/script-src/scripthash-unicode-normalization.sub.html:
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-1-expected.txt: Added.
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-1.html: Added.
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-2-expected.txt: Added.
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-2.html: Added.
  • web-platform-tests/content-security-policy/script-src/support/change-scripthash-before-execute.js: Added.

(document.getElementById):

  • web-platform-tests/content-security-policy/script-src/support/change-scriptnonce-before-execute.js: Added.

(document.getElementById):

  • web-platform-tests/content-security-policy/script-src/support/empty.css: Added.
  • web-platform-tests/content-security-policy/script-src/support/inline-script-should-be-blocked.js: Added.

(async_test.t.s.onerror.t.step_func):
(async_test.t.s.onload.t.step_func):

  • web-platform-tests/content-security-policy/script-src/support/w3c-import.log:
  • web-platform-tests/content-security-policy/script-src/support/worker-importscripts.js:
  • web-platform-tests/content-security-policy/script-src/w3c-import.log:
  • web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html:
  • web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html:
  • web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html:
  • web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html:
  • web-platform-tests/content-security-policy/securitypolicyviolation/support/inside-worker.sub.js:
  • web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html:
  • web-platform-tests/content-security-policy/style-src/style-src-stylesheet-nonce-allowed.html:
  • web-platform-tests/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html:
  • web-platform-tests/content-security-policy/support/inject-image.sub.js:
  • web-platform-tests/content-security-policy/svg/object-in-svg-foreignobject.sub.html:

LayoutTests:

  • platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
  • tests-options.json:
9:08 AM Changeset in webkit [254132] by youenn@apple.com
  • 39 edits
    15 adds in trunk

Implement MediaRecorder backend in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205802

Reviewed by Eric Carlson.

Source/WebCore:

Add a page provider to create MediaRecorderPrivate implementations.
This is used by WebKit layer to implement this in GPUProcess.

Update MediaRecorderPrivate by adding an error callback that is used to surface errors as MediaRecorder error events.

Covered by existing tests as MediaRecorder implementation in WebKitTestRunner will use GPUProcess.

  • Headers.cmake:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::createMediaRecorderPrivate):

  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorderProvider.cpp: Added.

(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):

  • Modules/mediarecorder/MediaRecorderProvider.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::mediaRecorderProvider):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::create):

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUseGPUProcessForWebRTC):

Source/WebKit:

Add support for sending audio/video tracks to record from WebProcess to GPUProcess.
Add a MediaRecorderPrivate implementation that supports sending one audio track and/or one video track to GPUProcess
and stopping/fetching data from the remote recorder in GPUProcess.

In GPUProcess, implement the remote recorder using the existing WebCore recorder writer.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::userMediaCaptureManagerProxy):
(WebKit::GPUConnectionToWebProcess::mediaRecorderManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp: Added.

(WebKit::RemoteMediaRecorder::create):
(WebKit::RemoteMediaRecorder::RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::~RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::storage):
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
(WebKit::RemoteMediaRecorder::audioSamplesAvailable):
(WebKit::RemoteMediaRecorder::videoSampleAvailable):
(WebKit::RemoteMediaRecorder::fetchData):
(WebKit::RemoteMediaRecorder::stopRecording):

  • GPUProcess/webrtc/RemoteMediaRecorder.h: Added.
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in: Added.
  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: Added.

(WebKit::RemoteMediaRecorderManager::RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::~RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::didReceiveRemoteMediaRecorderMessage):
(WebKit::RemoteMediaRecorderManager::createRecorder):
(WebKit::RemoteMediaRecorderManager::releaseRecorder):

  • GPUProcess/webrtc/RemoteMediaRecorderManager.h: Added.

(WebKit::RemoteMediaRecorderManager::didReceiveMessageFromWebProcess):

  • GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in: Added.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/MediaRecorderProvider.cpp: Added.

(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):

  • WebProcess/GPU/media/MediaRecorderProvider.h: Added.
  • WebProcess/GPU/webrtc/MediaRecorderIdentifier.h: Added.
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Added.

(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::~MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::sampleBufferUpdated):
(WebKit::MediaRecorderPrivate::audioSamplesAvailable):
(WebKit::MediaRecorderPrivate::storageChanged):
(WebKit::MediaRecorderPrivate::fetchData):
(WebKit::MediaRecorderPrivate::stopRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Added.
  • WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: Added.

(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):

  • WebProcess/GPU/webrtc/MediaRecorderProvider.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:

Do not use GPUProcess for this test until canvas buffers are IOSurfaces.

9:06 AM Changeset in webkit [254131] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK][EME] ClearKey encrypted media gardening
https://bugs.webkit.org/show_bug.cgi?id=205857

Unreviewed gardening.

Patch by Charlie Turner <mail@charles.plus> on 2020-01-07

  • platform/gtk/TestExpectations: Skip

mock-MediaKeySession-{generateRequest,remove}.html and update some
no longer timing out test-cases.

8:49 AM Changeset in webkit [254130] by youenn@apple.com
  • 21 edits
    2 moves in trunk

Add an option to make video capture in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205853

Reviewed by Eric Carlson.

Source/WebKit:

Add an option to make video capture in GPU process.
Pass this option at creation of the web page so that the process can be updated after launch time.
Apply the same principle to other audio/video capture parameters.
Add SPI to update this preference.
Fix bug in the passing of preference to process pool for the video capture in UIProcess parameter, which is now an experimental flag and not an internal one.

Test: fast/mediastream/captureInGPUProcess.html

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCaptureVideoInGPUProcessEnabled):
(WKPreferencesGetCaptureVideoInGPUProcessEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::setupCaptureProcesses):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

(WebKit::UserMediaCaptureManager::VideoFactory::setShouldCaptureInGPUProcess):

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

  • fast/mediastream/captureInGPUProcess-expected.txt: Renamed from LayoutTests/fast/mediastream/captureAudioInGPUProcess-expected.txt.
  • fast/mediastream/captureInGPUProcess.html: Renamed from LayoutTests/fast/mediastream/captureAudioInGPUProcess.html.
8:43 AM Changeset in webkit [254129] by Alexey Shvayka
  • 109 edits
    5 copies
    2 moves
    43 adds
    7 deletes in trunk/LayoutTests

Re-sync web-platform-tests/css/cssom-view from upstream
https://bugs.webkit.org/show_bug.cgi?id=204649

Reviewed by Chris Dumez.

Re-sync web-platform-tests/css/cssom-view from upstream 106e0bdf02a1.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/*: Updated.

LayoutTests:

8:31 AM Changeset in webkit [254128] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests/imported/w3c

Re-sync web-platform-tests/domparsing from upstream
https://bugs.webkit.org/show_bug.cgi?id=205638

Reviewed by Chris Dumez.

  • resources/import-expectations.json:

Remove not longer needed domparsing skip instructions in the
import-expectations.json file

7:34 AM Changeset in webkit [254127] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test storage/indexeddb/IDBTransaction-page-cache.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=205856

Unreviewed test gardening.

  • platform/win/TestExpectations:
7:29 AM Changeset in webkit [254126] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test http/wpt/css/css-highlight-api/highlight-text-across-elements.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205855

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:49 AM Changeset in webkit [254125] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Fix non GPUProcess build issue in UserMediaCaptureManager
https://bugs.webkit.org/show_bug.cgi?id=205851

Reviewed by Eric Carlson.

Build fix, no change of behavior.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::connection):

6:12 AM Changeset in webkit [254124] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove loader/win
https://bugs.webkit.org/show_bug.cgi?id=205852

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

Remove loader/win since it is not used anymore.

  • loader/win/DocumentLoaderWin.cpp: Removed.
  • loader/win/FrameLoaderWin.cpp: Removed.
5:15 AM Changeset in webkit [254123] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

Implementation of containsText for AXIsolatedObjects.
https://bugs.webkit.org/show_bug.cgi?id=205847

Reviewed by Chris Fleizach.

No new tests, no new functionality.

  • Moved implementation of containsText from AccessibilityObject to

AXCoreObject to be re-used by AXIsolatedObject.

  • Implemented AXIsolatedObject::stringValue.
  • AXIsolatedObject::isTable must return false because it is used in the

SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY macro.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::containsText const): Moved to AXCoreObject.

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

(WebCore::AXCoreObject::containsText const):

  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::containsText const): Implementation in base class AXCoreObject.
(WebCore::AXIsolatedObject::stringValue const): Deleted.

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
2:59 AM Changeset in webkit [254122] by Carlos Garcia Campos
  • 25 edits in trunk

[GTK][WPE] Add API to retrieve and delete surrounding text for input methods
https://bugs.webkit.org/show_bug.cgi?id=205716

Reviewed by Žan Doberšek.

Source/WebKit:

Extend WebKitInputMethodContext to be able to retrieve and delete surrounding text.

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const): Encode paragraphContext and paragraphContextCursorPosition.
(WebKit::EditorState::PostLayoutData::decode): Decode paragraphContext and paragraphContextCursorPosition.

  • Shared/EditorState.h: Add paragraphContext and paragraphContextCursorPosition.
  • UIProcess/API/glib/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::deleteSurroundingCallback): Callback to handle
WebKitInputMethodContext::delete-surrounding signal.
(WebKit::InputMethodFilter::setContext): Connect to WebKitInputMethodContext::delete-surrounding signal.
(WebKit::InputMethodFilter::notifySurrounding): Save the new surrounding text and position and call
webkit_input_method_context_notify_surrounding().
(WebKit::InputMethodFilter::deleteSurrounding): Ask WebKitWebView to delete the surrounding text.

  • UIProcess/API/glib/InputMethodFilter.h:
  • UIProcess/API/glib/WebKitInputMethodContext.cpp:

(webkit_input_method_context_class_init): Add delete-surrounding signal.
(webkit_input_method_context_notify_surrounding): Call the virtual method notify_surrounding if implemented.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewDeleteSurrounding): Call WebPageProxy::deleteSurrounding().

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/WebKitInputMethodContext.h:
  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:

(contextRetrieveSurrounding): Call gtk_im_context_set_surrounding() with the current surrounding text and position.
(webkitInputMethodContextImplGtkConstructed): Connect to GtkIMContext::retrieve-surrounding signal.
(webkitInputMethodContextImplGtkNotifySurrounding): Save the new surrounding text and position.
(webkit_input_method_context_impl_gtk_class_init): Add implementation for notify_surrounding vfunc.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseUpdateTextInputState): Also notify the context about surrounding text and position.

  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::selectionDidChange): Ditto.

  • UIProcess/API/wpe/WebKitInputMethodContext.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::deleteSurrounding): Send DeleteSurrounding message to web process.

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

(WebKit::WebPage::deleteSurrounding): Delete the given range.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add DeleteSurrounding message.
  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::platformEditorState const): Moved from GTK and WPE here and also added paragraphContext and
paragraphContextCursorPosition initialization.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp: Remove platformEditorState().
  • WebProcess/WebPage/wpe/WebPageWPE.cpp: Ditto.

Tools:

Add new test case for the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:

(webkitInputMethodContextMockFinalize):
(webkitInputMethodContextMockNotifySurrounding):
(webkitInputMethodContextMockReset):
(webkit_input_method_context_mock_class_init):
(testWebKitInputMethodContextSurrounding):
(beforeAll):

2:48 AM Changeset in webkit [254121] by Carlos Garcia Campos
  • 58 edits
    1 copy
    1 add in trunk

[GTK][WPE] Add API to set purpose and hints of active editable element to input methods
https://bugs.webkit.org/show_bug.cgi?id=205605

Reviewed by Žan Doberšek.

.:

Add ENABLE_AUTOCAPITALIZE build flag. It's private and disabled by default, enabled in GTK and WPE ports.

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

PerformanceTests:

Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.

  • StitchMarker/wtf/FeatureDefines.h:

Source/WebCore:

Use ENABLE(AUTOCAPITALIZE) and ENABLE(AUTOCORRECT) instead of ENABLE(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).

  • Sources.txt: Add Autocapitalize.cpp to the build.
  • html/Autocapitalize.cpp: Add ENABLE(AUTOCAPITALIZE) guards.
  • html/Autocapitalize.h: Ditto.
  • html/HTMLElement.cpp:
  • html/HTMLElement.h:
  • html/HTMLElement.idl:
  • html/HTMLFormControlElement.cpp:
  • html/HTMLFormControlElement.h:
  • html/HTMLFormElement.cpp:
  • html/HTMLFormElement.h:
  • loader/EmptyClients.cpp: Update to new API of EditorClient::setInputMethodState
  • page/EditorClient.h: The focused element or nullptr is now received by setInputMethodState() instead of enabled/disabled boolean.
  • page/FocusController.cpp:

(WebCore::FocusController::setFocusedElement): Pass the focused element or nullptr to setInputMethodState().

Source/WebKit:

Add input-purpose and input-hints properties to WebKitInputMethodContext. The message SetInputMethodState now
receives an optional InputMethodState struct with information about the purpose and hints of the active editable
element.

  • Scripts/webkit/messages.py: Only include InputMethodState.h for GTK and WPE.
  • Shared/glib/InputMethodState.cpp: Added.

(WebKit::InputMethodState::setPurposeOrHintForInputMode):
(WebKit::inputElementHasDigitsPattern):
(WebKit::InputMethodState::setPurposeForInputElement):
(WebKit::InputMethodState::addHintsForAutocapitalizeType):
(WebKit::InputMethodState::encode const):
(WebKit::InputMethodState::decode):

  • Shared/glib/InputMethodState.h: Added.

(WebKit::operator==):

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::setContext): Use isEnabled() instead of m_enabled.
(WebKit::InputMethodFilter::setState): Now receives an optional InputMethodState struct.
(WebKit::InputMethodFilter::filterKeyEvent): Use isEnabled() instead of m_enabled.
(WebKit::InputMethodFilter::isViewFocused const): Ditto.
(WebKit::toWebKitPurpose): Helper to convert InputMethodState::Purpose to WebKitInputPurpose.
(WebKit::toWebKitHints): Helper to convert InputMethodState::Hint to WebKitInputHints.
(WebKit::InputMethodFilter::notifyFocusedIn): Set the purpose and hints to the context.
(WebKit::InputMethodFilter::notifyFocusedOut): Use isEnabled() instead of m_enabled.
(WebKit::InputMethodFilter::notifyCursorRect): Ditto.
(WebKit::InputMethodFilter::preeditStarted): Ditto.
(WebKit::InputMethodFilter::preeditChanged): Ditto.
(WebKit::InputMethodFilter::preeditFinished): Ditto.
(WebKit::InputMethodFilter::committed): Ditto.

  • UIProcess/API/glib/InputMethodFilter.h:

(WebKit::InputMethodFilter::isEnabled const): Return true if we have a state.

  • UIProcess/API/glib/WebKitInputMethodContext.cpp:

(webkitInputMethodContextSetProperty): Properties setter.
(webkitInputMethodContextGetProperty): Properties getter.
(webkit_input_method_context_class_init): Add implementation for properties getter and setter.
(webkit_input_method_context_get_input_purpose):
(webkit_input_method_context_set_input_purpose):
(webkit_input_method_context_get_input_hints):
(webkit_input_method_context_set_input_hints):

  • UIProcess/API/gtk/WebKitInputMethodContext.h:
  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:

(toGtkInputPurpose): Helper to convert WebKitInputPurpose to GtkInputPurpose.
(toGtkInputHints): Helper to convert WebKitInputHints to GtkInputHints.
(inputPurposeChangedCallback): Set the purpose on GtkIMContext.
(inputHintsChangedCallback): Set the hints on GtkIMContext.
(webkitInputMethodContextImplGtkConstructed): Connect to notify signal for input-purpose and input-hints
properties of the context.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetInputMethodState):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::setInputMethodState):

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

(WKWPE::View::setInputMethodState):

  • UIProcess/API/wpe/WPEView.h:
  • UIProcess/API/wpe/WebKitInputMethodContext.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::setInputMethodState):

  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::setInputMethodState):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::setInputMethodState):

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::inputMethodSateForElement): Build an InputMethodState for the given element.
(WebKit::WebPage::setInputMethodState):

Source/WebKitLegacy/mac:

  • DOM/DOMHTMLElement.mm: Use ENABLE(AUTOCORRECT) and ENABLE(AUTOCAPITALIZE).
  • WebCoreSupport/WebEditorClient.h: Update tom the new API to WebEditorClient::setInputMethodState.
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::setInputMethodState): Ditto.

Source/WebKitLegacy/win:

Update to the new API of WebEditorClient::setInputMethodState.

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::setInputMethodState):

  • WebCoreSupport/WebEditorClient.h:

Source/WTF:

Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.

  • wtf/FeatureDefines.h:

Tools:

Add new test case to check the purpose and hints API.

  • TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:

(testWebKitInputMethodContextContentType):
(beforeAll):

2:45 AM Changeset in webkit [254120] by Carlos Garcia Campos
  • 4 edits in trunk

WebDriver: several w3c collections tests added in r230953 are failing
https://bugs.webkit.org/show_bug.cgi?id=184966

Reviewed by Brian Burg.

Source/WebKit:

This is because JSON.stringify() is not enough, we need to first clone the value using the internal JSON clone
algorithm explained in the spec. See https://w3c.github.io/webdriver/#dfn-internal-json-clone-algorithm.

Fixes: imported/w3c/webdriver/tests/execute_script/collections.py::test_arguments

imported/w3c/webdriver/tests/execute_script/collections.py::test_file_list
imported/w3c/webdriver/tests/execute_script/collections.py::test_html_all_collection
imported/w3c/webdriver/tests/execute_async_script/collections.py::test_arguments
imported/w3c/webdriver/tests/execute_async_script/collections.py::test_file_list
imported/w3c/webdriver/tests/execute_async_script/collections.py::test_html_all_collection

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(WebKitAutomation.AutomationSessionProxy.prototype._jsonStringify): Call JSON.stringify(), but without the
replacer and passing the result of _jsonClone().
(WebKitAutomation.AutomationSessionProxy.prototype._isCollection): Helper to check if the value is a collection.
(WebKitAutomation.AutomationSessionProxy.prototype._checkCyclic): Throw an error if the value is a cyclic structure.
(WebKitAutomation.AutomationSessionProxy.prototype._jsonClone): Implement the internal JSON clone algorithm.
(WebKitAutomation.AutomationSessionProxy.prototype._createNodeHandle): Trhow an error if the node is stale.

WebDriverTests:

Remove expectations for tests that are now passing.

1:58 AM Changeset in webkit [254119] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] HSTS Support causes page loading to fail with "Operation was cancelled"
https://bugs.webkit.org/show_bug.cgi?id=203620

Reviewed by Michael Catanzaro.

The problem is that we are assuming that request cancellation happens synchronously, but it can happen that the
async ready callback for the previous request is called after the new one has started.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::sendRequestCallback): Return early if this is a previous request already cancelled.

1:55 AM Changeset in webkit [254118] by Carlos Garcia Campos
  • 6 edits in trunk/Source

WebDriver: handle no such element errors
https://bugs.webkit.org/show_bug.cgi?id=204684

Reviewed by Brian Burg.

Source/WebDriver:

Handle InvalidNodeIdentifier errors.

Fixes: imported/w3c/webdriver/tests/get_element_tag_name/get.py::test_element_not_found

imported/w3c/webdriver/tests/get_element_property/get.py::test_element_not_found
imported/w3c/webdriver/tests/get_element_attribute/get.py::test_element_not_found

  • CommandResult.cpp:

(WebDriver::CommandResult::CommandResult):

Source/WebKit:

Add InvalidNodeIdentifier to be generated when the elementID provided by WebDriver is not a valid node identifier.

  • UIProcess/Automation/Automation.json: Add InvalidNodeIdentifier error.
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::isValidNodeHandle): Helper function to check the given node handle is valid.
(WebKit::isValidNodeIdentifier): JavaScript callback function to check the node identifier is valid.
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Add isValidNodeIdentifier function.
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidNodeIdentifier errors.
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): Call isValidNodeHandle() and generate
InvalidNodeIdentifier error if it fails.
(WebKit::WebAutomationSessionProxy::computeElementLayout): Ditto.
(WebKit::WebAutomationSessionProxy::selectOptionElement): Ditto.
(WebKit::WebAutomationSessionProxy::takeScreenshot): Ditto.

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype._nodeForIdentifier): Call isValidNodeIdentifier() and throw
InvalidNodeIdentifier if it fails.

1:52 AM Changeset in webkit [254117] by Carlos Garcia Campos
  • 4 edits in trunk

WebDriver: several tests in imported/w3c/webdriver/tests/state/get_element_attribute.py are failing
https://bugs.webkit.org/show_bug.cgi?id=180415

Reviewed by Brian Burg.

Source/WebKit:

Update the ElementAttribute atom to properly handle boolean attributes, following what the selenium original
atom does.

  • UIProcess/Automation/atoms/ElementAttribute.js:

(getAttribute):
(tagName.string_appeared_here.lowercaseAttributeName.string_appeared_here):
(isBooleanAttribute):

WebDriverTests:

Remove expectations for tests that are now passing.

1:43 AM Changeset in webkit [254116] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] mediastreamsrc ref sinked triggers critical warning in gst 1.17
https://bugs.webkit.org/show_bug.cgi?id=205777

Reviewed by Carlos Garcia Campos.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

Use a raw pointer to keep track of the src element in the track
observer, similarily to the other observer implementation. Using
GRefPtr here would have the side effect of removing the floating
reference on the element and trigger a critical warning in GStreamer.

12:14 AM Changeset in webkit [254115] by Chris Fleizach
  • 17 edits in trunk

AX: Enable ACCESSIBILITY_ISOLATED_TREE
https://bugs.webkit.org/show_bug.cgi?id=205535
<rdar://problem/58131075>

Reviewed by Zalan Bujtas.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Enable compilation of the accessibility isolated tree and make it a runtime feature.

  • Configurations/FeatureDefines.xcconfig:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setIsAccessibilityIsolatedTreeEnabled):
(WebCore::RuntimeEnabledFeatures::isAccessibilityIsolatedTreeEnabled const):

  • page/Settings.yaml:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetIsAccessibilityIsolatedTreeEnabled):
(WKPreferencesGetIsAccessibilityIsolatedTreeEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Jan 6, 2020:

11:49 PM Changeset in webkit [254114] by Fujii Hironori
  • 4 edits
    2 adds in trunk

ComplexTextController::offsetForPosition returns a wrong offset for a glyph boundary in a RTL text
https://bugs.webkit.org/show_bug.cgi?id=205486

Reviewed by Ross Kirsling.

Source/WebCore:

ComplexTextController::offsetForPosition had the following code:

unsigned hitIndex = hitGlyphStart + (hitGlyphEnd - hitGlyphStart) * (m_run.ltr() ? x / adjustedAdvance : 1 - x / adjustedAdvance);

If m_run.ltr() was false and x == 0, hitIndex would become hitGlyphEnd.
This is not expected. It expects hitIndex < hitGlyphEnd if hitGlyphStart ≠ hitGlyphEnd.
Let hitIndex be hitGlyphStart-1 in the such condition.

Above change makes fast/text/ellipsis-text-rtl.html starting to
fail because offsetForPosition returns the character offset of the
next glyph if the argument 'h' is in a glyph boundary. In RTL
text, offsetForPosition should return a character offset of the
previous glyph in case of a glyph boundary. Use '<=' instead of '<'
for RTL text in order to select previous glyphs for glyph
boundaries.

Test: fast/dom/Document/CaretRangeFromPoint/rtl.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::offsetForPosition): Compute correct hitGlyphEnd for RTL.

LayoutTests:

  • fast/dom/Document/CaretRangeFromPoint/rtl-expected.txt: Added.
  • fast/dom/Document/CaretRangeFromPoint/rtl.html: Added.
  • platform/gtk/TestExpectations: Unmarked imported/blink/editing/selection/offset-from-point-complex-scripts.html.
9:48 PM Changeset in webkit [254113] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Start using the UsedHorizontalValues::Constraints values in ::layoutInFlowContent
https://bugs.webkit.org/show_bug.cgi?id=205831
<rdar://problem/58353565>

Reviewed by Antti Koivisto.

Use the incoming horizontal constraint value instead of querying the root's geometry (which is technically outside of the current formatting context).

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

8:51 PM Changeset in webkit [254112] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] computeBorderAndPadding/computeWidthAndMargin/computeStaticPosition functions should take UsedHorizontalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=205825
<rdar://problem/58351397>

Reviewed by Antti Koivisto.

Let's pass in the horizontal constraints so that the compute* functions don't need to
access containing block's geometry.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin): Deleted.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalAndVerticalGeometry):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

8:42 PM Changeset in webkit [254111] by yurys@chromium.org
  • 5 edits in trunk

REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205473
<rdar://problem/58093690>

Source/WebInspectorUI:

The failure was due to attempts to add output to the test page which could be not fully
loaded after navigation. To make it deterministic it is now possible to keep provisional
navigation paused and to defer output until the test page is ready.

Reviewed by Brian Burg.

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.initialize):
(WI.Target.prototype._resumeIfPaused): extracted resume logic in a method that
can be overridden in the tests.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.deferOutputUntilTestPageIsReloaded): allow to pause
output when navigation is started via protocol commands rather than the test harness.

LayoutTests:

Reviewed by Brian Burg.

Keep provisional page paused until second navigation replaces it and also
defer output until test page is fully initialized after navigation.

  • http/tests/inspector/target/provisional-load-cancels-previous-load.html:
8:40 PM Changeset in webkit [254110] by ChangSeok Oh
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix since r254064.

  • CMakeLists.txt: GraphicsContext3D was renamed GraphicsContextGLOpenGL, not GraphicsContextGLOpenGLBase.
8:36 PM Changeset in webkit [254109] by Fujii Hironori
  • 4 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo port after r253326 and r250849.

  • platform/wincairo/fast/css/invalidation-errors-2-expected.txt:
  • platform/wincairo/fast/css/invalidation-errors-expected.txt:
  • platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
8:36 PM Changeset in webkit [254108] by yoshiaki.jitsukawa@sony.com
  • 4 edits in trunk

[PlayStation] Update port cmake
https://bugs.webkit.org/show_bug.cgi?id=205846

Reviewed by Don Olmstead.

.:

Define C/CXX macro BPLATFORM_PLAYSTATION.

Find HarfBuzz::ICU component to fix cmake errors.

Make the WebCore and WebKit builds optional.

  • Source/cmake/OptionsPlayStation.cmake:

Source/JavaScriptCore:

  • PlatformPlayStation.cmake:

Workaround of compilation errors with VisualStudio generator, which gives -std=c++* options to C sources.

8:18 PM Changeset in webkit [254107] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Remove redundant UsedVerticalValues::Constraints(Display::Box)
https://bugs.webkit.org/show_bug.cgi?id=205813
<rdar://problem/58346993>

Reviewed by Antti Koivisto.

Let's call the other c'tor instead.

  • layout/LayoutUnits.cpp:

(WebCore::Layout::UsedVerticalValues::Constraints::Constraints): Deleted.

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

(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

7:58 PM Changeset in webkit [254106] by Fujii Hironori
  • 7 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo port after r252598.

  • platform/wincairo/fast/box-shadow/inset-box-shadow-radius-expected.txt:
  • platform/wincairo/fast/css/hsl-color-expected.txt:
  • platform/wincairo/fast/css/hsla-color-expected.txt:
  • platform/wincairo/fast/css/percentage-non-integer-expected.txt:
  • platform/wincairo/fast/css/shadow-multiple-expected.txt:
  • platform/wincairo/fast/css/viewport-units-dynamic-expected.txt:
7:44 PM Changeset in webkit [254105] by Fujii Hironori
  • 112 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo port after r254044.

  • platform/wincairo/css1/basic/containment-expected.txt:
  • platform/wincairo/css1/basic/contextual_selectors-expected.txt:
  • platform/wincairo/css1/basic/grouping-expected.txt:
  • platform/wincairo/css1/basic/id_as_selector-expected.txt:
  • platform/wincairo/css1/basic/inheritance-expected.txt:
  • platform/wincairo/css1/box_properties/border-expected.txt:
  • platform/wincairo/css1/box_properties/border_bottom-expected.txt:
  • platform/wincairo/css1/box_properties/border_bottom_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_bottom_width-expected.txt:
  • platform/wincairo/css1/box_properties/border_bottom_width_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_color-expected.txt:
  • platform/wincairo/css1/box_properties/border_color_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_left-expected.txt:
  • platform/wincairo/css1/box_properties/border_left_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_left_width-expected.txt:
  • platform/wincairo/css1/box_properties/border_left_width_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_right-expected.txt:
  • platform/wincairo/css1/box_properties/border_right_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_right_width-expected.txt:
  • platform/wincairo/css1/box_properties/border_right_width_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_style-expected.txt:
  • platform/wincairo/css1/box_properties/border_style_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_top-expected.txt:
  • platform/wincairo/css1/box_properties/border_top_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_top_width-expected.txt:
  • platform/wincairo/css1/box_properties/border_top_width_inline-expected.txt:
  • platform/wincairo/css1/box_properties/border_width-expected.txt:
  • platform/wincairo/css1/box_properties/border_width_inline-expected.txt:
  • platform/wincairo/css1/box_properties/clear-expected.txt:
  • platform/wincairo/css1/box_properties/clear_float-expected.txt:
  • platform/wincairo/css1/box_properties/float-expected.txt:
  • platform/wincairo/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/wincairo/css1/box_properties/float_margin-expected.txt:
  • platform/wincairo/css1/box_properties/height-expected.txt:
  • platform/wincairo/css1/box_properties/margin-expected.txt:
  • platform/wincairo/css1/box_properties/margin_bottom-expected.txt:
  • platform/wincairo/css1/box_properties/margin_bottom_inline-expected.txt:
  • platform/wincairo/css1/box_properties/margin_inline-expected.txt:
  • platform/wincairo/css1/box_properties/margin_left-expected.txt:
  • platform/wincairo/css1/box_properties/margin_left_inline-expected.txt:
  • platform/wincairo/css1/box_properties/margin_right-expected.txt:
  • platform/wincairo/css1/box_properties/margin_right_inline-expected.txt:
  • platform/wincairo/css1/box_properties/margin_top-expected.txt:
  • platform/wincairo/css1/box_properties/margin_top_inline-expected.txt:
  • platform/wincairo/css1/box_properties/padding-expected.txt:
  • platform/wincairo/css1/box_properties/padding_bottom-expected.txt:
  • platform/wincairo/css1/box_properties/padding_bottom_inline-expected.txt:
  • platform/wincairo/css1/box_properties/padding_inline-expected.txt:
  • platform/wincairo/css1/box_properties/padding_left-expected.txt:
  • platform/wincairo/css1/box_properties/padding_left_inline-expected.txt:
  • platform/wincairo/css1/box_properties/padding_right-expected.txt:
  • platform/wincairo/css1/box_properties/padding_right_inline-expected.txt:
  • platform/wincairo/css1/box_properties/padding_top-expected.txt:
  • platform/wincairo/css1/box_properties/padding_top_inline-expected.txt:
  • platform/wincairo/css1/box_properties/width-expected.txt:
  • platform/wincairo/css1/cascade/cascade_order-expected.txt:
  • platform/wincairo/css1/cascade/important-expected.txt:
  • platform/wincairo/css1/classification/display-expected.txt:
  • platform/wincairo/css1/classification/list_style-expected.txt:
  • platform/wincairo/css1/classification/list_style_image-expected.txt:
  • platform/wincairo/css1/classification/list_style_position-expected.txt:
  • platform/wincairo/css1/classification/list_style_type-expected.txt:
  • platform/wincairo/css1/classification/white_space-expected.txt:
  • platform/wincairo/css1/color_and_background/background-expected.txt:
  • platform/wincairo/css1/color_and_background/background_attachment-expected.txt:
  • platform/wincairo/css1/color_and_background/background_color-expected.txt:
  • platform/wincairo/css1/color_and_background/background_image-expected.txt:
  • platform/wincairo/css1/color_and_background/background_position-expected.txt:
  • platform/wincairo/css1/color_and_background/background_repeat-expected.txt:
  • platform/wincairo/css1/color_and_background/color-expected.txt:
  • platform/wincairo/css1/conformance/forward_compatible_parsing-expected.txt:
  • platform/wincairo/css1/font_properties/font-expected.txt:
  • platform/wincairo/css1/font_properties/font_size-expected.txt:
  • platform/wincairo/css1/font_properties/font_style-expected.txt:
  • platform/wincairo/css1/font_properties/font_variant-expected.txt:
  • platform/wincairo/css1/font_properties/font_weight-expected.txt:
  • platform/wincairo/css1/formatting_model/canvas-expected.txt:
  • platform/wincairo/css1/formatting_model/floating_elements-expected.txt:
  • platform/wincairo/css1/formatting_model/height_of_lines-expected.txt:
  • platform/wincairo/css1/formatting_model/inline_elements-expected.txt:
  • platform/wincairo/css1/formatting_model/replaced_elements-expected.txt:
  • platform/wincairo/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/wincairo/css1/pseudo/anchor-expected.txt:
  • platform/wincairo/css1/pseudo/firstletter-expected.txt:
  • platform/wincairo/css1/pseudo/firstline-expected.txt:
  • platform/wincairo/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/wincairo/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
  • platform/wincairo/css1/text_properties/letter_spacing-expected.txt:
  • platform/wincairo/css1/text_properties/line_height-expected.txt:
  • platform/wincairo/css1/text_properties/text_align-expected.txt:
  • platform/wincairo/css1/text_properties/text_decoration-expected.txt:
  • platform/wincairo/css1/text_properties/text_indent-expected.txt:
  • platform/wincairo/css1/text_properties/text_transform-expected.txt:
  • platform/wincairo/css1/text_properties/vertical_align-expected.txt:
  • platform/wincairo/css1/text_properties/word_spacing-expected.txt:
  • platform/wincairo/css1/units/color_units-expected.txt:
  • platform/wincairo/css1/units/length_units-expected.txt:
  • platform/wincairo/css1/units/percentage_units-expected.txt:
  • platform/wincairo/css1/units/urls-expected.txt:
  • platform/wincairo/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
  • platform/wincairo/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
  • platform/wincairo/editing/selection/designmode-no-caret-expected.txt:
  • platform/wincairo/fast/css/empty-pseudo-class-expected.txt:
  • platform/wincairo/fast/css/first-child-pseudo-class-expected.txt:
  • platform/wincairo/fast/css/last-child-pseudo-class-expected.txt:
  • platform/wincairo/fast/css/only-child-pseudo-class-expected.txt:
  • platform/wincairo/fast/html/listing-expected.txt:
  • platform/wincairo/fast/text/whitespace/024-expected.txt:
  • platform/wincairo/fast/text/whitespace/030-expected.txt:
  • platform/wincairo/fast/text/word-break-expected.txt:
7:15 PM Changeset in webkit [254104] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] FormattingContext::layoutInFlowContent should take UsedHorizontalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=205809
<rdar://problem/58345856>

Reviewed by Antti Koivisto.

This patch is in preparation for using the incoming horizontal constraint instead of
accessing the formatting context root's geometry.
(e.g. <div style="width: 100px;">text content</div>. The IFC should not need to query the div's display box
for the horizontal available space (100px))

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
6:52 PM Changeset in webkit [254103] by don.olmstead@sony.com
  • 15 edits in trunk

Rename GraphicsContext3D to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=205778
<rdar://problem/58327597>

Reviewed by Ross Kirsling.

.:

Fix the build after r254064 on Windows and PlayStation.

Add USE_OPENGL_ES_3 to Windows and WPE builds to simplify the Platform checks
for GL functions available in OpenGL ES 3.0+. Expose additional USE macros for
Windows builds to remove Platform.h entries around ENABLE(WEBGL).

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

Source/WebCore:

Use ENABLE(GRAPHICS_CONTEXT_GL) instead of ENABLE(WEBGL) for relevant files.
This was causing the build breakage.

Move methods wrapping OpenGL[ES] 3.0+ functions into GraphicsContextGLOpenGLCommon.cpp
and remove them from GraphicsContextGLTextureMapper.cpp. Add a check for OpenGL[ES]
versions rather than depending on a particular platform.

  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/GraphicsContextGL.cpp:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/GraphicsContextGLAttributes.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::mapBufferRange): Deleted.
(WebCore::GraphicsContextGLOpenGL::unmapBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInternalformativ): Deleted.
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample): Deleted.
(WebCore::GraphicsContextGLOpenGL::texStorage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texStorage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms): Deleted.

Source/WTF:

Define USE_OPENGL_3 for Mac and USE_OPENGL_ES_3 for iOS. Use CMake config for
Windows and WebGL.

  • wtf/Platform.h:
5:10 PM Changeset in webkit [254102] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] UsedHorizontalValues::Constraints should not take Display::Box
https://bugs.webkit.org/show_bug.cgi?id=205811
<rdar://problem/58346356>

Reviewed by Antti Koivisto.

Passing in only the actual rect values (content/padding box left/width) to UsedHorizontalValues::Constraints makes the
constraint logic look clear.

  • layout/FormattingContext.cpp:

(WebCore::Layout::outOfFlowHorizontalConstraints):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/LayoutUnits.cpp:

(WebCore::Layout::UsedHorizontalValues::Constraints::Constraints):

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

(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/blockformatting/BlockMarginCollapse.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

5:06 PM Changeset in webkit [254101] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[iOS] Get display level in the UI process for all iOS platforms
https://bugs.webkit.org/show_bug.cgi?id=205835
<rdar://problem/58116883>

Reviewed by Brent Fulgham.

This was previously only done for iOS, but should be done for all iOS platforms.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:
4:52 PM Changeset in webkit [254100] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Tweak processing constants
https://bugs.webkit.org/show_bug.cgi?id=205828
<rdar://problem/58146698>

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext):
Increase process timeout to 1 week.
Allow 5 retries instead of 3.
Retry stuck tasks after 10 minutes instead of 5.
Include more tasks so that a scan is always greater than the number of workers.

4:49 PM Changeset in webkit [254099] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Only prewarm fonts with valid font names
https://bugs.webkit.org/show_bug.cgi?id=205822

Reviewed by Brent Fulgham.

The font names ".SF NS Text" and ".SF NS Display" are not valid on iOS, and should not be prewarmed.

No new tests, no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::prewarmGlobally):

4:34 PM Changeset in webkit [254098] by eric.carlson@apple.com
  • 13 edits in trunk/Source/WebKit

Add some of the remote media player messages needed for video playback
https://bugs.webkit.org/show_bug.cgi?id=205812
<rdar://problem/58346531>

Reviewed by Jer Noble.

No new tests, it isn't possible to play video yet.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::prepareForRendering):
(WebKit::RemoteMediaPlayerManagerProxy::setSize):
(WebKit::RemoteMediaPlayerManagerProxy::setVisible):
(WebKit::RemoteMediaPlayerManagerProxy::setShouldMaintainAspectRatio):
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenFrame):
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenGravity):
(WebKit::RemoteMediaPlayerManagerProxy::acceleratedRenderingStateChanged):
(WebKit::RemoteMediaPlayerManagerProxy::setShouldDisableSleep):
(WebKit::RemoteMediaPlayerManagerProxy::setRate):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::getConfiguration):
(WebKit::RemoteMediaPlayerProxy::prepareForRendering):
(WebKit::RemoteMediaPlayerProxy::setSize):
(WebKit::RemoteMediaPlayerProxy::setVisible):
(WebKit::RemoteMediaPlayerProxy::setShouldMaintainAspectRatio):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenFrame):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenGravity):
(WebKit::RemoteMediaPlayerProxy::acceleratedRenderingStateChanged):
(WebKit::RemoteMediaPlayerProxy::setShouldDisableSleep):
(WebKit::RemoteMediaPlayerProxy::setRate):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingCanBeAccelerated):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::sizeChanged):
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::shouldIgnoreIntrinsicSize):
(WebKit::MediaPlayerPrivateRemote::prepareForRendering):
(WebKit::MediaPlayerPrivateRemote::setSize):
(WebKit::MediaPlayerPrivateRemote::setVisible):
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep):
(WebKit::MediaPlayerPrivateRemote::naturalSize const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h:

(WebKit::RemoteMediaPlayerConfiguration::encode const):
(WebKit::RemoteMediaPlayerConfiguration::decode):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::sizeChanged):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const):
(WebKit::RemoteMediaPlayerState::decode):

4:31 PM Changeset in webkit [254097] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Improve logging for when a synchronous IPC times out
https://bugs.webkit.org/show_bug.cgi?id=205829

Reviewed by Tim Horton.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):

  • Platform/IPC/Connection.h:
4:15 PM Changeset in webkit [254096] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

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

test-lldb-webkit: Use logging module
https://bugs.webkit.org/show_bug.cgi?id=205832

Reviewed by Stephanie Lewis.

  • Scripts/test-lldb-webkit:

(LldbTester.run): Configure logger.

3:55 PM Changeset in webkit [254094] by Nikita Vasilyev
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Color picker: make it keyboard accessible
https://bugs.webkit.org/show_bug.cgi?id=205572
<rdar://problem/58169943>

Reviewed by Brian Burg.

For the color square, make up, down, left, and right keys move the crosshair.

For the hue and opacity sliders:

  • Pressing up and down keys should adjust the value by 1%.
  • When holding Shift, up and down keys adjust the value by 10%.
  • UserInterface/Views/ColorPicker.js:

(WI.ColorPicker.prototype.focus):

  • UserInterface/Views/ColorSquare.css:

(.color-square):
Match the border of the hue and opacity sliders.

  • UserInterface/Views/ColorSquare.js:

(WI.ColorSquare):
Make the color square focusable.

(WI.ColorSquare.prototype._handleMousedown):
(WI.ColorSquare.prototype._handleKeyDown):

  • UserInterface/Views/InlineSwatch.js:
  • UserInterface/Views/Slider.css:

(.slider:focus):

  • UserInterface/Views/Slider.js:

(WI.Slider):
(WI.Slider.prototype._handleMousedown):
Drive-by: right clicking the slider shouldn't move the thumb.

(WI.Slider.prototype._handleKeyDown):

3:49 PM Changeset in webkit [254093] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Build (unified) failure after adding source files to support media in GPU process
https://bugs.webkit.org/show_bug.cgi?id=205616

Patch by Peng Liu <Peng Liu> on 2020-01-06
Reviewed by Darin Adler.

No new tests, no functional change.

Source/WebCore:

  • Modules/mediastream/UserMediaClient.h:

Source/WebKit:

  • Sources.txt:
  • SourcesGTK.txt:
  • WebKit.xcodeproj/project.pbxproj:
3:32 PM Changeset in webkit [254092] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

NetworkSessionCocoa::isolatedSession should not use iterator after mutating m_isolatedSessions
https://bugs.webkit.org/show_bug.cgi?id=205824
<rdar://problem/55107625>

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

Classic iterator use after mutating iterated container was causing crashes by returning a null SessionWrapper&
This was introduced in r252185 or r248640.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::isolatedSession):

3:08 PM Changeset in webkit [254091] by dbates@webkit.org
  • 13 edits in trunk

Precision of getClientRects(), getBoundingClientRect() differs depending whether simple line layout or line box layout is used
https://bugs.webkit.org/show_bug.cgi?id=205563
<rdar://problem/58165528>

Reviewed by Zalan Bujtas.

Source/WebCore:

Fix up simple line layout run rect to match the rect returned by the line layout code path.

  • rendering/InlineTextBox.cpp:

(WebCore::snappedSelectionRect): Added; extracted from localSelectionRect().
(WebCore::InlineTextBox::localSelectionRect const): Moved some logic into snappedSelectionRect()
and modified code to use it.

  • rendering/InlineTextBox.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange): Fix up run rect.

Tools:

Update test results.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:

(TEST):

LayoutTests:

Update expected result now that simple line layout computes a client rect that matches
the rect the line layout code computes.

  • fast/dom/Range/getClientRects-expected.txt:
  • fast/dom/Range/getClientRects.html:
  • fast/dom/Range/mac/getClientRects-and-getBoundingClientRect-before-and-after-selection-expected.txt:
  • fast/repaint/text-selection-overflow-hidden-expected.txt:
3:05 PM Changeset in webkit [254090] by Alan Coon
  • 1 copy in tags/Safari-608.5.7

Tag Safari-608.5.7.

2:57 PM Changeset in webkit [254089] by youenn@apple.com
  • 6 edits in trunk

XMLHTTPRequest POSTs blob data to a custom WKURLSchemeHandler protocol crash
https://bugs.webkit.org/show_bug.cgi?id=205685

Reviewed by Alex Christensen.

Source/WebCore:

There is no blob registry in the UIProcess.
This should not matter since we do not yet support blobs in custom scheme handlers.
But we are calling the blob registry when creating a request body, which does not work in UIProcess.
Instead, pass a lambda that will be called in case of blobs.
Covered by API test.

  • platform/network/FormData.cpp:

(WebCore::FormDataElement::lengthInBytes const):
(WebCore::FormData::resolveBlobReferences):

  • platform/network/FormData.h:
  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::createHTTPBodyCFReadStream):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
2:47 PM Changeset in webkit [254088] by Alexey Shvayka
  • 4 edits in trunk

String.prototype.replace() incorrectly handles named references on RegExp w/o named groups
https://bugs.webkit.org/show_bug.cgi?id=205785

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

This patch fixes substitution of named references by ignoring "$<" sequences
for a RegExp without named capture groups, removing some index tweaking.
(step 11 of https://tc39.es/ecma262/#sec-getsubstitution)

Also this change removes 2 obsolete FIXMEs regarding possible spec changes.

  • runtime/StringPrototype.cpp:

(JSC::substituteBackreferencesSlow):

2:24 PM Changeset in webkit [254087] by mark.lam@apple.com
  • 382 edits in trunk

PerformanceTests:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • JetStream2/wasm/HashSet.cpp:
  • StitchMarker/wtf/Assertions.h:
  • StitchMarker/wtf/DateMath.cpp:

(WTF::initializeDates):

  • StitchMarker/wtf/HashTable.h:
  • StitchMarker/wtf/Hasher.h:

(WTF::StringHasher::addCharacters):

  • StitchMarker/wtf/NeverDestroyed.h:

(WTF::LazyNeverDestroyed::construct):

  • StitchMarker/wtf/StackBounds.h:

(WTF::StackBounds::checkConsistency const):

  • StitchMarker/wtf/ValueCheck.h:
  • StitchMarker/wtf/Vector.h:

(WTF::minCapacity>::checkConsistency):

  • StitchMarker/wtf/text/AtomicStringImpl.cpp:
  • StitchMarker/wtf/text/AtomicStringImpl.h:
  • StitchMarker/wtf/text/StringCommon.h:

(WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):

  • StitchMarker/wtf/text/StringImpl.h:
  • StitchMarker/wtf/text/SymbolImpl.h:
  • StitchMarker/wtf/text/UniquedStringImpl.h:

Source/JavaScriptCore:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • API/tests/testapi.c:
  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::replaceWithLoad):
(JSC::ARM64Assembler::replaceWithAddressComputation):

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerBuffer::LocalWriter::LocalWriter):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/ProbeStack.cpp:

(JSC::Probe::Stack::Stack):

  • assembler/ProbeStack.h:
  • b3/B3FoldPathConstants.cpp:
  • b3/B3LowerToAir.cpp:
  • b3/B3MemoryValue.cpp:

(JSC::B3::MemoryValue::MemoryValue):

  • b3/B3Opcode.cpp:
  • b3/B3Type.h:
  • b3/B3TypeMap.h:
  • b3/B3Width.h:
  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • b3/air/AirArg.cpp:
  • b3/air/AirArg.h:
  • b3/air/AirCode.h:
  • b3/air/AirEmitShuffle.cpp:

(JSC::B3::Air::emitShuffle):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutable):

  • bytecode/AccessCase.cpp:
  • bytecode/AccessCase.h:
  • bytecode/CallVariant.cpp:

(JSC::variantListWithVariant):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndex):

  • bytecode/CodeBlockHash.cpp:

(JSC::CodeBlockHash::dump const):

  • bytecode/StructureStubInfo.cpp:
  • bytecode/StructureStubInfo.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallResolveNode::emitBytecode):

  • bytecompiler/RegisterID.h:

(JSC::RegisterID::RegisterID):
(JSC::RegisterID::setIndex):

  • debugger/Debugger.cpp:

(JSC::Debugger::removeBreakpoint):

  • debugger/DebuggerEvalEnabler.h:

(JSC::DebuggerEvalEnabler::DebuggerEvalEnabler):
(JSC::DebuggerEvalEnabler::~DebuggerEvalEnabler):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:
  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::merge):
(JSC::DFG::AbstractValue::checkConsistency const):
(JSC::DFG::AbstractValue::assertIsRegistered const):

  • dfg/DFGArithMode.h:

(JSC::DFG::doesOverflow):

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::BasicBlock):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::didLink):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):

  • dfg/DFGCommon.h:

(JSC::DFG::validationEnabled):

  • dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::finalizeCatchEntrypoints):

  • dfg/DFGDesiredWatchpoints.h:
  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::makeWord):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::finalizeOSREntrypoints):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGScoreBoard.h:

(JSC::DFG::ScoreBoard::assertClear):

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::SlowPathGenerator::generate):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::emitBinarySwitchStringRecurse):
(JSC::DFG::SpeculativeJIT::emitAllocateButterfly):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateCell):

  • dfg/DFGStructureAbstractValue.cpp:
  • dfg/DFGStructureAbstractValue.h:

(JSC::DFG::StructureAbstractValue::assertIsRegistered const):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::callPreflight):
(JSC::FTL::DFG::LowerDFGToB3::callCheck):
(JSC::FTL::DFG::LowerDFGToB3::crash):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::assertNoUnswept):

  • heap/GCSegmentedArray.h:

(JSC::GCArraySegment::GCArraySegment):

  • heap/GCSegmentedArrayInlines.h:

(JSC::GCSegmentedArray<T>::clear):
(JSC::GCSegmentedArray<T>::expand):
(JSC::GCSegmentedArray<T>::validatePrevious):

  • heap/HandleSet.cpp:
  • heap/HandleSet.h:
  • heap/Heap.cpp:

(JSC::Heap::updateAllocationLimits):

  • heap/Heap.h:
  • heap/MarkedBlock.cpp:
  • heap/MarkedBlock.h:

(JSC::MarkedBlock::assertValidCell const):
(JSC::MarkedBlock::assertMarksNotStale):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::beginMarking):
(JSC::MarkedSpace::endMarking):
(JSC::MarkedSpace::assertNoUnswept):

  • heap/PreciseAllocation.cpp:
  • heap/PreciseAllocation.h:

(JSC::PreciseAllocation::assertValidCell const):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::SlotVisitor):
(JSC::SlotVisitor::appendJSCellOrAuxiliary):

  • heap/SlotVisitor.h:
  • inspector/InspectorProtocolTypes.h:

(Inspector::Protocol::BindingTraits<JSON::ArrayOf<T>>::assertValueHasExpectedType):

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator._generate_assertion_for_object_declaration):
(CppProtocolTypesImplementationGenerator):
(CppProtocolTypesImplementationGenerator._generate_assertion_for_enum):

  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
  • interpreter/FrameTracers.h:

(JSC::JITOperationPrologueCallFrameTracer::JITOperationPrologueCallFrameTracer):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::Interpreter):

  • interpreter/Interpreter.h:
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::prepareCallOperation):

  • jit/BinarySwitch.cpp:

(JSC::BinarySwitch::BinarySwitch):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupStubArgs):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::emitDeltaCheck):
(JSC::CallFrameShuffler::prepareAny):

  • jit/JIT.cpp:

(JSC::JIT::assertStackPointerOffset):
(JSC::JIT::compileWithoutLinking):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_loop_hint):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_from_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_from_scope):

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::emitPointerValidation):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntOfflineAsmConfig.h:
  • parser/Lexer.cpp:
  • parser/Lexer.h:

(JSC::isSafeBuiltinIdentifier):
(JSC::Lexer<T>::lexExpectIdentifier):

  • runtime/ArgList.h:

(JSC::MarkedArgumentBuffer::setNeedsOverflowCheck):
(JSC::MarkedArgumentBuffer::clearNeedsOverflowCheck):

  • runtime/Butterfly.h:

(JSC::ContiguousData::ContiguousData):
(JSC::ContiguousData::Data::Data):

  • runtime/HashMapImpl.h:

(JSC::HashMapImpl::checkConsistency const):
(JSC::HashMapImpl::assertBufferIsEmpty const):

  • runtime/JSCellInlines.h:

(JSC::JSCell::methodTable const):

  • runtime/JSFunction.cpp:
  • runtime/JSFunction.h:

(JSC::JSFunction::assertTypeInfoFlagInvariants):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

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

(JSC::JSObject::visitChildren):
(JSC::JSFinalObject::visitChildren):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::validatePutOwnDataProperty):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::assertVariableIsInThisObject):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::Lexer::lex):

  • runtime/LiteralParser.h:
  • runtime/Operations.h:

(JSC::scribbleFreeCells):

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

(JSC::VM::computeCanUseJIT):

  • runtime/VM.h:

(JSC::VM::canUseJIT):

  • runtime/VarOffset.h:

(JSC::VarOffset::checkSanity const):

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::checkConsistency const):
(JSC::WeakMapImpl::assertBufferIsEmpty const):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::validateInst):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser::validationFail const):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::checkConsistency):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::tryRemoveContextAndCancelIfLast):

  • wasm/WasmSectionParser.h:
  • wasm/WasmSections.h:
  • wasm/WasmSignatureInlines.h:

(JSC::Wasm::SignatureInformation::get):

  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::enqueue):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::previousInstanceOffset const):

Source/WebCore:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • Modules/fetch/FetchBodySource.cpp:

(WebCore::FetchBodySource::close):

  • Modules/fetch/FetchBodySource.h:
  • Modules/webdatabase/DatabaseDetails.h:

(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::operator=):

  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTask::performTask):

  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::terminationRequested const):

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

(WebCore::WHLSL::AST::TypeAnnotation::TypeAnnotation):

  • Modules/webgpu/WHLSL/WHLSLHighZombieFinder.cpp:

(WebCore::WHLSL::findHighZombies):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::matches):

  • Modules/webgpu/WHLSL/WHLSLLiteralTypeChecker.cpp:

(WebCore::WHLSL::checkLiteralTypes):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

(WebCore::WHLSL::FindAllTypes::appendNamedType):

  • bindings/js/JSCallbackData.h:
  • bindings/js/JSLazyEventListener.cpp:
  • bindings/js/JSLazyEventListener.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcOperationNode::primitiveType const):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValue.cpp:
  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSStyleSheet.cpp:
  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::suspendIfNeeded):
(WebCore::ActiveDOMObject::assertSuspendIfNeededWasCalled const):

  • dom/ActiveDOMObject.h:
  • dom/ContainerNode.cpp:
  • dom/ContainerNodeAlgorithms.cpp:
  • dom/ContainerNodeAlgorithms.h:
  • dom/CustomElementReactionQueue.cpp:
  • dom/CustomElementReactionQueue.h:

(WebCore::CustomElementReactionDisallowedScope::CustomElementReactionDisallowedScope):
(WebCore::CustomElementReactionDisallowedScope::~CustomElementReactionDisallowedScope):

  • dom/Document.cpp:

(WebCore::Document::hitTest):

  • dom/Document.h:

(WebCore::Document::decrementReferencingNodeCount):

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):
(WebCore::Element::getURLAttribute const):
(WebCore::Element::getNonEmptyURLAttribute const):

  • dom/Element.h:
  • dom/ElementAndTextDescendantIterator.h:

(WebCore::ElementAndTextDescendantIterator::ElementAndTextDescendantIterator):
(WebCore::ElementAndTextDescendantIterator::dropAssertions):
(WebCore::ElementAndTextDescendantIterator::popAncestorSiblingStack):
(WebCore::ElementAndTextDescendantIterator::traverseNextSibling):
(WebCore::ElementAndTextDescendantIterator::traversePreviousSibling):

  • dom/ElementDescendantIterator.h:

(WebCore::ElementDescendantIterator::ElementDescendantIterator):
(WebCore::ElementDescendantIterator::dropAssertions):
(WebCore::ElementDescendantIterator::operator++):
(WebCore::ElementDescendantIterator::operator--):
(WebCore::ElementDescendantConstIterator::ElementDescendantConstIterator):
(WebCore::ElementDescendantConstIterator::dropAssertions):
(WebCore::ElementDescendantConstIterator::operator++):

  • dom/ElementIterator.h:

(WebCore::ElementIterator<ElementType>::ElementIterator):
(WebCore::ElementIterator<ElementType>::traverseNext):
(WebCore::ElementIterator<ElementType>::traversePrevious):
(WebCore::ElementIterator<ElementType>::traverseNextSibling):
(WebCore::ElementIterator<ElementType>::traversePreviousSibling):
(WebCore::ElementIterator<ElementType>::traverseNextSkippingChildren):
(WebCore::ElementIterator<ElementType>::dropAssertions):
(WebCore::ElementIterator<ElementType>::traverseAncestor):
(WebCore::ElementConstIterator<ElementType>::ElementConstIterator):
(WebCore::ElementConstIterator<ElementType>::traverseNext):
(WebCore::ElementConstIterator<ElementType>::traversePrevious):
(WebCore::ElementConstIterator<ElementType>::traverseNextSibling):
(WebCore::ElementConstIterator<ElementType>::traversePreviousSibling):
(WebCore::ElementConstIterator<ElementType>::traverseNextSkippingChildren):
(WebCore::ElementConstIterator<ElementType>::traverseAncestor):
(WebCore::ElementConstIterator<ElementType>::dropAssertions):

  • dom/EventContext.cpp:
  • dom/EventContext.h:
  • dom/EventListener.h:
  • dom/EventPath.cpp:
  • dom/EventSender.h:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::innerInvokeEventListeners):

  • dom/Node.cpp:

(WebCore::Node::~Node):
(WebCore::Node::moveNodeToNewDocument):
(WebCore::Node::removedLastRef):

  • dom/Node.h:

(WebCore::Node::deref const):

  • dom/ScriptDisallowedScope.h:

(WebCore::ScriptDisallowedScope::InMainThread::isEventDispatchAllowedInSubtree):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::~ScriptExecutionContext):

  • dom/ScriptExecutionContext.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::execute const):

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::removeSlotElementByName):
(WebCore::SlotAssignment::resolveSlotsAfterSlotMutation):
(WebCore::SlotAssignment::findFirstSlotElement):

  • dom/SlotAssignment.h:
  • dom/TreeScopeOrderedMap.cpp:

(WebCore::TreeScopeOrderedMap::add):
(WebCore::TreeScopeOrderedMap::get const):

  • dom/TreeScopeOrderedMap.h:
  • fileapi/Blob.cpp:
  • fileapi/Blob.h:
  • history/BackForwardCache.cpp:

(WebCore::BackForwardCache::removeAllItemsForPage):

  • history/BackForwardCache.h:
  • html/CanvasBase.cpp:

(WebCore::CanvasBase::notifyObserversCanvasDestroyed):

  • html/CanvasBase.h:
  • html/HTMLCollection.h:

(WebCore::CollectionNamedElementCache::didPopulate):

  • html/HTMLSelectElement.cpp:

(WebCore:: const):

  • html/HTMLTableRowsCollection.cpp:

(WebCore::assertRowIsInTable):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::indexForPosition const):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::~CanvasRenderingContext2DBase):

  • html/parser/HTMLParserScheduler.cpp:

(WebCore::HTMLParserScheduler::HTMLParserScheduler):
(WebCore::HTMLParserScheduler::suspend):
(WebCore::HTMLParserScheduler::resume):

  • html/parser/HTMLParserScheduler.h:
  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::beginStartTag):
(WebCore::HTMLToken::beginEndTag):
(WebCore::HTMLToken::endAttribute):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::constructTree):

  • html/parser/HTMLTreeBuilder.h:

(WebCore::HTMLTreeBuilder::~HTMLTreeBuilder):

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setContentBoxHeight):
(WebCore::Display::Box::setContentBoxWidth):
(WebCore::Display::Box::setHorizontalMargin):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setHorizontalComputedMargin):
(WebCore::Display::Box::setBorder):
(WebCore::Display::Box::setPadding):

  • layout/displaytree/DisplayInlineRect.h:

(WebCore::Display::InlineRect::InlineRect):
(WebCore::Display::InlineRect::setTopLeft):
(WebCore::Display::InlineRect::setTop):
(WebCore::Display::InlineRect::setBottom):
(WebCore::Display::InlineRect::setLeft):
(WebCore::Display::InlineRect::setWidth):
(WebCore::Display::InlineRect::setHeight):

  • layout/displaytree/DisplayLineBox.h:

(WebCore::Display::LineBox::LineBox):
(WebCore::Display::LineBox::setBaselineOffsetIfGreater):
(WebCore::Display::LineBox::resetBaseline):
(WebCore::Display::LineBox::Baseline::Baseline):
(WebCore::Display::LineBox::Baseline::setAscent):
(WebCore::Display::LineBox::Baseline::setDescent):
(WebCore::Display::LineBox::Baseline::reset):

  • layout/displaytree/DisplayRect.h:

(WebCore::Display::Rect::Rect):
(WebCore::Display::Rect::setTopLeft):
(WebCore::Display::Rect::setTop):
(WebCore::Display::Rect::setLeft):
(WebCore::Display::Rect::setWidth):
(WebCore::Display::Rect::setHeight):
(WebCore::Display::Rect::setSize):
(WebCore::Display::Rect::clone const):

  • layout/floats/FloatingContext.cpp:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::CollapsibleContent::collapse):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Column::setWidthConstraints):
(WebCore::Layout::TableGrid::Column::setLogicalWidth):
(WebCore::Layout::TableGrid::Column::setLogicalLeft):

  • layout/tableformatting/TableGrid.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::attachToFrame):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::addSubresourceLoader):

  • loader/DocumentLoader.h:
  • loader/ImageLoader.cpp:
  • loader/cache/CachedResource.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::lruListFor):
(WebCore::MemoryCache::removeFromLRUList):

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • page/FrameViewLayoutContext.cpp:
  • page/FrameViewLayoutContext.h:
  • page/Page.cpp:
  • page/Page.h:
  • page/ViewportConfiguration.cpp:
  • page/ViewportConfiguration.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::CurrentEventScope::CurrentEventScope):

  • platform/DateComponents.cpp:

(WebCore::DateComponents::toStringForTime const):

  • platform/ScrollableArea.cpp:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::combineIntoOneSegment const):

  • platform/SharedBuffer.h:
  • platform/Supplementable.h:
  • platform/Timer.cpp:

(WebCore::TimerBase::checkHeapIndex const):
(WebCore::TimerBase::updateHeapIfNeeded):

  • platform/graphics/BitmapImage.cpp:
  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::ScratchBuffer):
(WebCore::ScratchBuffer::getScratchBuffer):
(WebCore::ScratchBuffer::scheduleScratchBufferPurge):

  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::setWindow):

  • platform/graphics/ca/win/CACFLayerTreeHost.h:
  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::putData):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:
  • platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp:

(gstAllocatorFastMallocFree):

  • platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:

(Nicosia::PaintingContextCairo::ForPainting::ForPainting):

  • platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp:

(Nicosia::BackingStoreTextureMapperImpl::createTile):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:

(Nicosia::ContentLayerTextureMapperImpl::~ContentLayerTextureMapperImpl):

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::fill):

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::putData):

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::Path::appendGeometry):
(WebCore::Path::Path):
(WebCore::Path::operator=):
(WebCore::Path::strokeContains const):
(WebCore::Path::transform):

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::setTags):

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::~RealtimeOutgoingAudioSource):

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::~RealtimeOutgoingVideoSource):

  • platform/network/HTTPParsers.cpp:

(WebCore::isCrossOriginSafeHeader):

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

(WebCore::SQLiteStatement::SQLiteStatement):
(WebCore::SQLiteStatement::prepare):
(WebCore::SQLiteStatement::finalize):

  • platform/sql/SQLiteStatement.h:
  • platform/win/COMPtr.h:
  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::removeInlineBox const):

  • rendering/FloatingObjects.cpp:

(WebCore::FloatingObject::FloatingObject):
(WebCore::FloatingObjects::addPlacedObject):
(WebCore::FloatingObjects::removePlacedObject):

  • rendering/FloatingObjects.h:
  • rendering/GridTrackSizingAlgorithm.cpp:
  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/LayoutDisallowedScope.cpp:
  • rendering/LayoutDisallowedScope.h:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::removeFloatingObject):
(WebCore::RenderBlockFlow::ensureLineBoxes):

  • rendering/RenderBoxModelObject.cpp:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):

  • rendering/RenderElement.cpp:
  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::mapToContainer const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::baselinePosition const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::willBeDestroyed):

  • rendering/RenderLayer.cpp:

(WebCore::ClipRectsCache::ClipRectsCache):
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::traverseVisibleNonCompositedDescendantLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
(WebCore::RenderLayerCompositor::addDescendantsToOverlapMapRecursive const):
(WebCore::RenderLayerCompositor::recursiveRepaintLayer):
(WebCore::RenderLayerCompositor::layerHas3DContent const):

  • rendering/RenderLayoutState.cpp:

(WebCore::RenderLayoutState::RenderLayoutState):
(WebCore::RenderLayoutState::computeOffsets):
(WebCore::RenderLayoutState::addLayoutDelta):

  • rendering/RenderLayoutState.h:

(WebCore::RenderLayoutState::RenderLayoutState):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::~RenderObject):
(WebCore::RenderObject::clearNeedsLayout):

  • rendering/RenderObject.h:
  • rendering/RenderQuote.cpp:

(WebCore::quotesForLanguage):

  • rendering/RenderTableCell.h:
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::computeOverflowFromCells):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::checkConsistency const):

  • rendering/RenderTextLineBoxes.h:
  • rendering/line/BreakingContext.h:

(WebCore::tryHyphenating):

  • rendering/style/GridArea.h:

(WebCore::GridSpan::GridSpan):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::~RenderStyle):

  • rendering/style/RenderStyle.h:
  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::detach):

  • rendering/updating/RenderTreePosition.cpp:

(WebCore::RenderTreePosition::computeNextSibling):

  • rendering/updating/RenderTreePosition.h:
  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::Placeholder::Placeholder):
(WebCore::SVGToOTFFontConverter::Placeholder::populate):
(WebCore::SVGToOTFFontConverter::appendCFFTable):
(WebCore::SVGToOTFFontConverter::firstGlyph const):
(WebCore::SVGToOTFFontConverter::appendKERNTable):

  • svg/SVGTransformDistance.cpp:

(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance const):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addToSVGTransform const):
(WebCore::SVGTransformDistance::distance const):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage):

  • testing/InternalSettings.cpp:
  • workers/service/ServiceWorkerJob.h:
  • worklets/PaintWorkletGlobalScope.h:

(WebCore::PaintWorkletGlobalScope::~PaintWorkletGlobalScope):

  • xml/XPathStep.cpp:

Source/WebKit:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::invalidateAndCancel):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::setCapacity):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toNSURLSessionResponseDisposition):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::waitForMessage):

  • Platform/IPC/MessageReceiver.h:

(IPC::MessageReceiver::willBeAddedToMessageReceiverMap):
(IPC::MessageReceiver::willBeRemovedFromMessageReceiverMap):

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::readFromMachPort):

  • Platform/mac/MachUtilities.cpp:

(setMachExceptionPort):

  • Shared/API/APIClient.h:

(API::Client::Client):

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:
  • Shared/Cocoa/ArgumentCodersCocoa.h:
  • Shared/SharedStringHashTableReadOnly.cpp:
  • UIProcess/BackingStore.cpp:

(WebKit::BackingStore::incorporateUpdate):

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

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/PageLoadState.h:

(WebKit::PageLoadState::Transaction::Token::Token):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::~WebPageProxy):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:

(WebKit::NetscapePluginStream::NetscapePluginStream):
(WebKit::NetscapePluginStream::notifyAndDestroyStream):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runModal):

  • WebProcess/WebProcess.cpp:

(WebKit::checkDocumentsCaptureStateConsistency):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):

Source/WebKitLegacy:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::close):

  • Storage/StorageAreaImpl.h:

Source/WebKitLegacy/mac:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • History/WebHistory.mm:

(-[WebHistoryPrivate removeItemForURLString:]):

  • WebView/WebFrame.mm:

Source/WebKitLegacy/win:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:

(WKQCA::CAD3DRenderer::swapChain):
(WKQCA::CAD3DRenderer::initialize):

  • WebKitQuartzCoreAdditions/CAD3DRenderer.h:
  • WebView.cpp:

(WebView::Release):

  • WebView.h:

Source/WTF:
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776

Reviewed by Saam Barati.

This patch did the following changes:

  1. Replaced ASSERT_DISABLED with ASSERT_ENABLED. This change does away with the need for the double negative !ASSERT_DISABLED test that is commonly used all over the code, thereby improving code readability.

In Assertions.h, there is also BACKTRACE_DISABLED, ASSERT_MSG_DISABLED,
ASSERT_ARG_DISABLED, FATAL_DISABLED, ERROR_DISABLED, LOG_DISABLED, and
RELEASE_LOG_DISABLED. We should replace those with ..._ENABLED equivalents
as well. We'll do that in another patch. For now, they are left as is to
minimize the size of this patch.
See https://bugs.webkit.org/show_bug.cgi?id=205780.

  1. Fixed some code was guarded with "#ifndef NDEBUG" that should actually be guarded by "#if ASSERT_ENABLED" instead.
  1. In cases where the change is minimal, we move some code around so that we can test for "#if ASSERT_ENABLED" instead of "#if !ASSERT_ENABLED".
  • wtf/Assertions.h:
  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThread::start):

  • wtf/BitVector.h:
  • wtf/BlockObjCExceptions.mm:

(ReportBlockedObjCException):

  • wtf/BloomFilter.h:
  • wtf/CallbackAggregator.h:

(WTF::CallbackAggregator::CallbackAggregator):

  • wtf/CheckedArithmetic.h:

(WTF::observesOverflow<AssertNoOverflow>):

  • wtf/CheckedBoolean.h:

(CheckedBoolean::CheckedBoolean):
(CheckedBoolean::operator bool):

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):

  • wtf/DateMath.cpp:

(WTF::initializeDates):

  • wtf/Gigacage.cpp:

(Gigacage::tryAllocateZeroedVirtualPages):

  • wtf/HashTable.h:

(WTF::KeyTraits>::checkKey):
(WTF::KeyTraits>::checkTableConsistencyExceptSize const):

  • wtf/LoggerHelper.h:
  • wtf/NaturalLoops.h:

(WTF::NaturalLoops::headerOf const):

  • wtf/NeverDestroyed.h:

(WTF::LazyNeverDestroyed::construct):

  • wtf/OptionSet.h:

(WTF::OptionSet::OptionSet):

  • wtf/Platform.h:
  • wtf/PtrTag.h:
  • wtf/RefCounted.h:

(WTF::RefCountedBase::disableThreadingChecks):
(WTF::RefCountedBase::enableThreadingChecksGlobally):
(WTF::RefCountedBase::RefCountedBase):
(WTF::RefCountedBase::applyRefDerefThreadingCheck const):

  • wtf/SingleRootGraph.h:

(WTF::SingleRootGraph::assertIsConsistent const):

  • wtf/SizeLimits.cpp:
  • wtf/StackBounds.h:

(WTF::StackBounds::checkConsistency const):

  • wtf/URLParser.cpp:

(WTF::URLParser::URLParser):
(WTF::URLParser::domainToASCII):

  • wtf/ValueCheck.h:
  • wtf/Vector.h:

(WTF::Malloc>::checkConsistency):

  • wtf/WeakHashSet.h:
  • wtf/WeakPtr.h:

(WTF::WeakPtrImpl::WeakPtrImpl):
(WTF::WeakPtrFactory::WeakPtrFactory):

  • wtf/text/AtomStringImpl.cpp:
  • wtf/text/AtomStringImpl.h:
  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::reifyString const):

  • wtf/text/StringBuilder.h:
  • wtf/text/StringCommon.h:

(WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):

  • wtf/text/StringHasher.h:

(WTF::StringHasher::addCharacters):

  • wtf/text/StringImpl.h:
  • wtf/text/SymbolImpl.h:
  • wtf/text/UniquedStringImpl.h:

Tools:
Remove WebsiteDataStore::setServiceWorkerRegistrationDirectory
https://bugs.webkit.org/show_bug.cgi?id=205754

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

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):
(WTR::TestController::platformAdjustContext):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

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

ASSERTION FAILED: hasLayer() in RenderLayer::enclosingOverflowClipLayer
https://bugs.webkit.org/show_bug.cgi?id=205474

Patch by Jack Lee <Jack Lee> on 2020-01-06
Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/css/sticky/sticky-tablecol-crash.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::enclosingClippingBoxForStickyPosition const):
(WebCore::RenderBoxModelObject::constrainingRectForStickyPosition const):
(WebCore::RenderBoxModelObject::stickyPositionOffset const):

LayoutTests:

  • fast/css/sticky/sticky-tablecol-crash-expected.txt: Added.
  • fast/css/sticky/sticky-tablecol-crash.html: Added.
2:17 PM Changeset in webkit [254085] by commit-queue@webkit.org
  • 12 edits in trunk

Remove WebsiteDataStore::setServiceWorkerRegistrationDirectory
https://bugs.webkit.org/show_bug.cgi?id=205754

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

Source/WebKit:

The directory is now only set in the configuration, which will prevent misuse of the misplaced SPI.
Updated API tests, which still work.

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationCopyServiceWorkerRegistrationDirectory):
(WKWebsiteDataStoreConfigurationSetServiceWorkerRegistrationDirectory):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): Deleted.
(WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): Deleted.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):
(-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): Deleted.
(-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::setCacheStorageDirectory):
(WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): Deleted.
(WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):
(WTR::TestController::platformAdjustContext):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

1:59 PM Changeset in webkit [254084] by commit-queue@webkit.org
  • 4 edits in trunk

Allow wildcard scheme in UserContentURLPattern
https://bugs.webkit.org/show_bug.cgi?id=205695

Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-06
Reviewed by Darin Adler.

Source/WebCore:

This is needed for <rdar://problem/58011337> and covered by an API test.

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::matches const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
1:57 PM Changeset in webkit [254083] by Alan Coon
  • 1 copy in tags/Safari-609.1.13.3

Tag Safari-609.1.13.3.

1:53 PM Changeset in webkit [254082] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk

REGRESSION: [ iOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205458
<rdar://problem/58081704>

Patch by Antoine Quint <Antoine Quint> on 2020-01-06
Reviewed by Wenson Hsieh.

Tools:

The last sub-test in imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html checks on the
ability to activate various form controls after disabling and re-enabling them. Two of those form controls, <select>
and <textarea>, would trigger animations of the web view's UIScrollView causing touches to be consumed by UIKit and
never seen by the WKContentView, and as such the expected "click" events would not be received. It would have been
possible to modify the test to wait on any potential page scroll to complete before dispatching taps, but since this
is a WPT test, we cannot modify it. Instead, we make a change to the function called by uiScriptController.singleTapAtPoint()
to interrupt any pending UIScrollView animation when a tap is being triggered on the web view. Credit to Wenson Hsieh
for suggesting this simple and effective approach.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):

LayoutTests:

Remove the platform-specific expectation since this test now passes reliably on iOS as well.

  • platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Removed.
1:23 PM Changeset in webkit [254081] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebKit

Remove _WKProcessPoolConfiguration.CTDataConnectionServiceType and suppressesConnectionTerminationOnSystemChange
https://bugs.webkit.org/show_bug.cgi?id=205751

Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-06
Reviewed by Darin Adler.

Their replacements on _WKWebViewConfiguration have been adopted.

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::dataConnectionServiceType const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::globalCTDataConnectionServiceType): Deleted.
(WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): Deleted.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): Deleted.
(-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]): Deleted.
(-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): Deleted.
(-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]): Deleted.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType):

12:58 PM Changeset in webkit [254080] by mark.lam@apple.com
  • 3 edits in trunk/Tools

Add --force-optimization-level option to Tools/Scripts/set-webkit-configuration.
https://bugs.webkit.org/show_bug.cgi?id=205787

Reviewed by Saam Barati.

Usage:

--force-optimization-level=<opt> Force optimization: O3, O2, O1, O0, Os, Ofast, Og, or none

This can be used to force debug builds to be built with a higher level optimization
so that tests can run to completion faster.

It can also be useful as a simple way to force release builds to be built with
different optimization levels for performance comparison.

Setting --force-optimization-level=none restores the default optimization levels.
Of course, the build targets need to be rebuilt for this to take effect.

  • Scripts/set-webkit-configuration:
  • Scripts/webkitdirs.pm:

(determineForceOptimizationLevel):
(forceOptimizationLevel):
(XcodeOptions):

12:56 PM Changeset in webkit [254079] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Fix non unified build in FIDO Pin.cpp
https://bugs.webkit.org/show_bug.cgi?id=205794

Reviewed by Jiewen Tan.

No change of behavior, this is a build fix.

  • Modules/webauthn/fido/Pin.cpp:
12:46 PM Changeset in webkit [254078] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Reformat WebPage logging
https://bugs.webkit.org/show_bug.cgi?id=205709
<rdar://problem/58290285>

Reviewed by Brent Fulgham.

Update the format used by WebPage in its RELEASE_LOG logging. Use the
format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

0x4a1df5000 - WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (frame=0x4a1db0220, priority=0, webPageID=15, frameID=3, resourceID=32)',

becomes:

0x4a1df5000 - [resourceLoader=0x1418b7200, frameLoader=0x1326d7340, frame=0x4a1db0220, webPageID=15, frameID=3, resourceID=32] WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (priority=2)

This new form is a lot more verbose, but it really helps in tracing
activity from the top of our page/frame/resource load stack to the
bottom.

No new tests - no added or changed functionality.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::networkProcessCrashed):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):

  • WebProcess/Network/WebLoaderStrategy.h:
12:42 PM Changeset in webkit [254077] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression r254029: imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205819

Unreviewed, rebaseline test on iOS after r254029 now that one more check is passing.

  • platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
12:38 PM Changeset in webkit [254076] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression r254029: imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205817

Unreviewed, rebaseline test on iOS after r254029 now that more checks are passing.

  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
12:29 PM Changeset in webkit [254075] by commit-queue@webkit.org
  • 7 edits
    2 moves in trunk/Source/WebKit

Add WKWebView SPI to query _WKMediaMutedState
https://bugs.webkit.org/show_bug.cgi?id=205789
<rdar://problem/58335241>

Patch by Luming Yin <luming_yin@apple.com> on 2020-01-06
Reviewed by Eric Carlson.

Add plumbing for clients to query the media muted state on WKWebView.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mediaMutedState]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/MediaUtilities.h: Renamed from Source/WebKit/UIProcess/Cocoa/MediaCaptureUtilities.h.
  • UIProcess/Cocoa/MediaUtilities.mm: Renamed from Source/WebKit/UIProcess/Cocoa/MediaCaptureUtilities.mm.

(WebKit::toWKMediaCaptureState):
(WebKit::toWKMediaMutedState):

  • UIProcess/Cocoa/UIDelegate.mm:
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::mutedStateFlags const):

  • WebKit.xcodeproj/project.pbxproj:
12:11 PM Changeset in webkit [254074] by Simon Fraser
  • 6 edits in trunk/LayoutTests

REGRESSION: [r254042] pageoverlay/overlay- tests are failing in WK1
https://bugs.webkit.org/show_bug.cgi?id=205810

Unreviewed test gardening. Page Overlay test in WK1 now dump one or more repaint rects after r254042.

  • platform/mac-wk1/pageoverlay/overlay-installation-expected.txt:
  • platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt:
  • platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt:
  • platform/mac-wk1/pageoverlay/overlay-small-frame-mouse-events-expected.txt:
  • platform/mac-wk1/pageoverlay/overlay-small-frame-paints-expected.txt:
11:54 AM Changeset in webkit [254073] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebCore

Protect ServiceWorker::postMessage from a null execState
https://bugs.webkit.org/show_bug.cgi?id=205394
<rdar://problem/57392221>

Reviewed by Chris Dumez.

Crash logs indicate null pointer crashes.
We should return early in that case.

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

11:47 AM Changeset in webkit [254072] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

11:32 AM Changeset in webkit [254071] by Alan Coon
  • 1 copy in branches/safari-609.1.14-branch

New branch.

11:31 AM Changeset in webkit [254070] by Alexey Shvayka
  • 6 edits in trunk

Proxy's OwnPropertyKeys? is incorrect in DontEnumPropertiesMode::Exclude
https://bugs.webkit.org/show_bug.cgi?id=203818

Reviewed by Keith Miller.

JSTests:

Stress test was failing because "ownKeys" trap didn't return non-configurable
"prototype" property of Proxy's target, violating an invariant.

  • stress/proxy-get-own-property-names-should-not-clear-previous-results.js:
  • test262/expectations.yaml: Mark 8 test cases as passing.

Source/JavaScriptCore:

This change fixes two spec compatibility issues:

  1. If Object.keys is called on Proxy w/o "ownKeys" trap, filtering non-enumerable

properties are not observed by "getOwnPropertyDescriptor" trap.
(step 4 of https://tc39.es/ecma262/#sec-enumerableownpropertynames)

  1. If Object.keys is called on Proxy with "ownKeys" trap, non-enumerable

properties of Proxy's target are ignored during invariants validation.
(step 11 of https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys)

Instead of extracting DontEnum filtering to lambda function, a wrapper method for
ProxyObject::performGetOwnPropertyNames was introduced to avoid creating &
filling intermediate PropertyNameArray instance (in case of DontEnumPropertiesMode::Include)
and avoid having inner EnumerationMode in ProxyObject::performGetOwnPropertyNames.

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performGetOwnEnumerablePropertyNames):
(JSC::ProxyObject::getOwnPropertyNames):

  • runtime/ProxyObject.h:
11:27 AM Changeset in webkit [254069] by Alan Coon
  • 1 copy in branches/safari-609-branch

New branch.

11:18 AM Changeset in webkit [254068] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

11:16 AM Changeset in webkit [254067] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r247626): Introduced memory regression
https://bugs.webkit.org/show_bug.cgi?id=205815

Unreviewed rollout of https://trac.webkit.org/changeset/247626/webkit.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::prewarmGlobally):
(WebCore::fontFamiliesForPrewarming): Deleted.

11:00 AM Changeset in webkit [254066] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Catalina wk1 ] editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205814

unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:59 AM Changeset in webkit [254065] by ysuzuki@apple.com
  • 5 edits in trunk/Source/WebCore

[WebCore] Shrink sizeof(RuleFeature)
https://bugs.webkit.org/show_bug.cgi?id=205774

Reviewed by Dean Jackson.

We noticed that Vector<RuleFeature> is frequently allocated and kept. While sizeof(RuleFeature) is 32,

  1. RuleFeature::invalidationSelector is nullptr basically. It is used only for some specific cases.
  2. RuleFeature::selectorIndex and RuleFeature::selectorListIndex is unsigned. But they never exceed uint16_t since both values are derived from RuleData::m_selectorIndex and RuleData::m_selectorListIndex and both are uint16_t size.
  3. Optional<MatchElement> takes 8 bytes since sizeof(MatchElement) is 4. But we can make it 1 byte.

Given the above observations, this patch introduced RuleFeatureWithInvalidationSelector, which is RuleFeature + invalidationSelector.
And keep using RuleFeature if invalidationSelector is unnecessary. By applying (2) and (3)'s optimizations, we can now make
sizeof(RuleFeature) 16, 50% reduction.

No behavior change.

  • style/RuleData.h:
  • style/RuleFeature.cpp:

(WebCore::Style::RuleFeature::RuleFeature):
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):

  • style/RuleFeature.h:

(WebCore::Style::RuleFeatureWithInvalidationSelector::RuleFeatureWithInvalidationSelector):

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ensureInvalidationRuleSets):

10:52 AM Changeset in webkit [254064] by dino@apple.com
  • 149 edits
    27 moves
    2 adds
    2 deletes in trunk

Rename GraphicsContext3D to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=205778
<rdar://problem/58327597>

Reviewed by Sam Weinig.

Rename all the GraphicsContext3D things to GraphicsContextGL
(includes Extensions3D and GRAPHICS_CONTEXT_3D).

GraphicsContext3DBase now becomes GraphicsContextGL.
GraphicsContext3D is now GraphicsContextGLOpenGL (since it represents
the OpenGL implementation of the API).

.:

  • Source/CMakeLists.txt:
  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

PerformanceTests:

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

Source/WebCore:

  • CMakeLists.txt:
  • Headers.cmake:
  • PlatformAppleWin.cmake:
  • PlatformFTW.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:
  • html/HTMLVideoElement.h:
  • html/OffscreenCanvas.cpp:
  • html/canvas/ANGLEInstancedArrays.cpp:
  • html/canvas/OESVertexArrayObject.cpp:
  • html/canvas/WebGL2RenderingContext.cpp:
  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLActiveInfo.h:
  • html/canvas/WebGLBuffer.cpp:
  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLCompressedTextureASTC.cpp:
  • html/canvas/WebGLCompressedTextureATC.cpp:
  • html/canvas/WebGLCompressedTextureETC.cpp:
  • html/canvas/WebGLCompressedTextureETC1.cpp:
  • html/canvas/WebGLCompressedTexturePVRTC.cpp:
  • html/canvas/WebGLCompressedTextureS3TC.cpp:
  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextGroup.cpp:
  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLContextObject.cpp:
  • html/canvas/WebGLContextObject.h:
  • html/canvas/WebGLDebugShaders.cpp:
  • html/canvas/WebGLDepthTexture.cpp:
  • html/canvas/WebGLDepthTexture.h:
  • html/canvas/WebGLDrawBuffers.cpp:
  • html/canvas/WebGLFramebuffer.cpp:
  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLObject.cpp:
  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLProgram.cpp:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.cpp:
  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.cpp:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLRenderingContext.cpp:
  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:
  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSampler.cpp:
  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.cpp:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSharedObject.cpp:
  • html/canvas/WebGLSharedObject.h:
  • html/canvas/WebGLSync.cpp:
  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.cpp:
  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.cpp:
  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLVertexArrayObject.cpp:
  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:
  • html/canvas/WebGLVertexArrayObjectBase.h:
  • html/canvas/WebGLVertexArrayObjectOES.cpp:
  • html/canvas/WebGLVertexArrayObjectOES.h:
  • inspector/InspectorShaderProgram.cpp:
  • loader/FrameLoaderClient.h:
  • page/Chrome.cpp:
  • platform/SourcesCairo.txt:
  • platform/TextureMapper.cmake:
  • platform/WebGLStateTracker.cpp:
  • platform/WebGLStateTracker.h:
  • platform/graphics/ANGLEWebKitBridge.cpp:
  • platform/graphics/ExtensionsGL.h: Renamed from Source/WebCore/platform/graphics/Extensions3D.h.
  • platform/graphics/FormatConverter.cpp:
  • platform/graphics/FormatConverter.h:
  • platform/graphics/GLContext.cpp:
  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsContext3D.cpp: Removed.
  • platform/graphics/GraphicsContext3DBase.cpp: Removed.
  • platform/graphics/GraphicsContextGL.cpp: Added.
  • platform/graphics/GraphicsContextGL.h: Renamed from Source/WebCore/platform/graphics/GraphicsContext3DBase.h.
  • platform/graphics/GraphicsContextGLAttributes.h: Renamed from Source/WebCore/platform/graphics/GraphicsContext3DAttributes.h.
  • platform/graphics/ImageBuffer.cpp:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/OpenGLShims.cpp:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp: Renamed from Source/WebCore/platform/graphics/angle/Extensions3DANGLE.cpp.
  • platform/graphics/angle/ExtensionsGLANGLE.h: Renamed from Source/WebCore/platform/graphics/angle/Extensions3DANGLE.h.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: Renamed from Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp.
  • platform/graphics/angle/TemporaryANGLESetting.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/cairo/GraphicsContextGLCairo.cpp: Renamed from Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp.
  • platform/graphics/cairo/ImageBufferCairo.cpp:
  • platform/graphics/cg/GraphicsContextGLCG.cpp: Renamed from Source/WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: Renamed from Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm.
  • platform/graphics/cocoa/IOSurface.mm:
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:
  • platform/graphics/cpu/arm/GraphicsContextGLNEON.h: Renamed from Source/WebCore/platform/graphics/cpu/arm/GraphicsContext3DNEON.h.
  • platform/graphics/cv/TextureCacheCV.h:
  • platform/graphics/cv/TextureCacheCV.mm:
  • platform/graphics/cv/VideoTextureCopierCV.cpp:
  • platform/graphics/cv/VideoTextureCopierCV.h:
  • platform/graphics/egl/GLContextEGL.cpp:
  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/glx/GLContextGLX.cpp:
  • platform/graphics/glx/GLContextGLX.h:
  • platform/graphics/gpu/Texture.cpp:
  • platform/graphics/gpu/Texture.h:
  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/ios/GraphicsContextGLOpenGLESIOS.h: Renamed from Source/WebCore/platform/graphics/ios/GraphicsContext3DIOS.h.
  • platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp:
  • platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:
  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:
  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h:
  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp: Renamed from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp.
  • platform/graphics/opengl/ExtensionsGLOpenGL.h: Renamed from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp: Renamed from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp.
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h: Renamed from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.h.
  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp: Renamed from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp.
  • platform/graphics/opengl/ExtensionsGLOpenGLES.h: Renamed from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: Added.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h: Renamed from Source/WebCore/platform/graphics/GraphicsContext3D.h.
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp: Renamed from Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp.
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp: Renamed from Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp.
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp: Renamed from Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp.
  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp: Renamed from Source/WebCore/platform/graphics/GraphicsContext3DManager.cpp.
  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.h: Renamed from Source/WebCore/platform/graphics/GraphicsContext3DManager.h.
  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.cpp: Renamed from Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp.
  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.h: Renamed from Source/WebCore/platform/graphics/GraphicsContext3DPrivate.h.
  • platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
  • platform/graphics/opengl/TemporaryOpenGLSetting.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp: Renamed from Source/WebCore/platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp.
  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:
  • platform/graphics/win/GraphicsContextGLDirect2D.cpp: Renamed from Source/WebCore/platform/graphics/win/GraphicsContext3DDirect2D.cpp.
  • testing/Internals.cpp:

Source/WebKit:

  • CMakeLists.txt:
  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::initializeEGL):

  • UIProcess/mac/HighPerformanceGPUManager.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/mac/WebPageMac.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::displayConfigurationChanged):

Source/WTF:

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

Tools:

  • Scripts/webkitpy/common/config/watchlist:
10:39 AM Changeset in webkit [254063] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/mac

[Web Animations] Enable CSS Animations via Web Animations for WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=205791

Patch by Antoine Quint <Antoine Quint> on 2020-01-06
Reviewed by Dean Jackson.

It was an oversight that it had not been done along with the WebKit change.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

10:33 AM Changeset in webkit [254062] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove unused variable jsDriverArgs from script
https://bugs.webkit.org/show_bug.cgi?id=205797

Patch by Paulo Matos <Paulo Matos> on 2020-01-06
Reviewed by Žan Doberšek.

  • Scripts/run-javascriptcore-tests:
10:24 AM Changeset in webkit [254061] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r218839): Web Inspector: Color picker: pressing Esc should hide color picker
https://bugs.webkit.org/show_bug.cgi?id=205570
<rdar://problem/58169820>

Reviewed by Brian Burg.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype.set keyboardShortcutDisabled):
(WI.QuickConsole.prototype._toggleOrFocus):
Restore keyboardShortcutDisabled setter, which was removed in r218839 without any explanation.

10:08 AM Changeset in webkit [254060] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac WK2 ] fast/text/international/unicode-bidi-other-neutrals.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205808

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:56 AM Changeset in webkit [254059] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac Debug ] inspector/page/setBootstrapScript-main-frame.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205807

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:48 AM Changeset in webkit [254058] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: unable to see recording actions for WebGL canvases that have lots of shader programs
https://bugs.webkit.org/show_bug.cgi?id=205659

Reviewed by Brian Burg.

Limit the height of the canvas and shader program tree a recording is selected.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas.showing-recording > .content > .tree-outline.canvas): Added.

9:39 AM Changeset in webkit [254057] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add support for passing test arguments in envvar TEST_JSC_ARGS
https://bugs.webkit.org/show_bug.cgi?id=205800

Patch by Paulo Matos <Paulo Matos> on 2020-01-06
Reviewed by Žan Doberšek.

Similarly to what is done in build-jsc, we add support to pass
extra command line arguments in environment variable TEST_JSC_ARGS.

  • Scripts/run-javascriptcore-tests:
9:33 AM Changeset in webkit [254056] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mojave ] tables/mozilla_expected_failures/bugs/bug2479-5.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205805
<rdar://problem/58342884>

Unreviewed.

Rebaseline after r254044.

  • platform/mac-mojave/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
9:09 AM Changeset in webkit [254055] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Remove unused GlobalFrameID from NetworkCacheSpeculativeLoad
https://bugs.webkit.org/show_bug.cgi?id=205796

Patch by Rob Buis <rbuis@igalia.com> on 2020-01-06
Reviewed by Chris Dumez.

Remove unused GlobalFrameID from NetworkCacheSpeculativeLoad
and NetworkCache::update.

No change in behavior.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
8:44 AM Changeset in webkit [254054] by Simon Fraser
  • 12 edits
    2 adds in trunk

REGRESSION (r252724): Unable to tap on play button on google video 'See the top search trends of 2019'
https://bugs.webkit.org/show_bug.cgi?id=205694
<rdar://problem/58062987>

Reviewed by Zalan Bujtas.

Source/WebCore:

After r252724, which separated 'used' from 'specified' z-index in style, we need to copy
the specified to the used z-index in animated styles, while preserving the existing 'forceStackingContext'
behavior which set the used z-index to 0.

Do so by creating Adjuster::adjustAnimatedStyle(), which is called from TreeResolver::createAnimatedElementUpdate()
if any animations could have affected the style. We need to pass back information about whether the animation should
force stacking context.

Test: animations/z-index-in-keyframe.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::triggersStackingContext const):

  • dom/Element.cpp:

(WebCore::Element::applyKeyframeEffects):

  • dom/Element.h:
  • page/animation/CSSAnimationController.h:

(): Deleted.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::animate):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustAnimatedStyle):

  • style/StyleAdjuster.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

  • animations/z-index-in-keyframe-expected.html: Added.
  • animations/z-index-in-keyframe.html: Added.
8:36 AM Changeset in webkit [254053] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression r254029: imported/w3c/web-platform-tests/html/dom/idlharness.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205803

Unreviewed, rebaseline WPT test on iOS after r254029, now that more checks are passing.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
8:03 AM Changeset in webkit [254052] by pvollan@apple.com
  • 16 edits
    2 adds in trunk

[iOS] Issue mach lookup extension to launch services daemon for Mail
https://bugs.webkit.org/show_bug.cgi?id=205316

Reviewed by Brent Fulgham.

Source/WebCore:

Export function getting bundle identifier.

Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html

  • platform/RuntimeApplicationChecks.h:

Source/WebKit:

Issue mach lookup extension to "com.apple.lsd.open" for Mail, since this service will be removed from the WebContent sandbox.

Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html

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

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

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

(+[WKWebView _setApplicationBundleIdentifier:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Add test option to set bundle identifier. Using this, WebKitTestRunner can pretend to be any client, e.g. Mail.

Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::setApplicationBundleIdentifier):

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt: Added.
  • fast/sandbox/ios/sandbox-mach-lookup-mail.html: Added.
7:02 AM Changeset in webkit [254051] by youenn@apple.com
  • 5 edits in trunk/Source

RemoteVideoSample::create does not need to take a MediaSample r value
https://bugs.webkit.org/show_bug.cgi?id=205793

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::create):

  • platform/graphics/RemoteVideoSample.h:

Source/WebKit:

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
1:47 AM Changeset in webkit [254050] by youenn@apple.com
  • 26 edits
    1 copy
    3 adds in trunk/Source

Implement RTC VTB encoders in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205713

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add support for remote video encoders created and used through simple routines.
Add factory to create video encoders implemented elsewhere than in WebRTC backend.
This is used for H264 encoders.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitEncoder.h: Added.

(webrtc::WebKitRTPFragmentationHeader::value):
(webrtc::WebKitEncodedFrameInfo::decode):
(webrtc::WebKitEncodedFrameInfo::encode const):
(webrtc::WebKitRTPFragmentationHeader::WebKitRTPFragmentationHeader):
(webrtc::WebKitRTPFragmentationHeader::encode const):
(webrtc::WebKitRTPFragmentationHeader::decode):

  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm: Added.

(webrtc::VideoEncoderFactoryWithSimulcast::CreateVideoEncoder):
(webrtc::videoEncoderCallbacks):
(webrtc::setVideoEncoderCallbacks):
(webrtc::RemoteVideoEncoder::RemoteVideoEncoder):
(webrtc::RemoteVideoEncoder::InitEncode):
(webrtc::RemoteVideoEncoder::Release):
(webrtc::RemoteVideoEncoder::Encode):
(webrtc::RemoteVideoEncoder::SetRates):
(webrtc::RemoteVideoEncoder::GetEncoderInfo const):
(webrtc::RemoteVideoEncoder::RegisterEncodeCompleteCallback):
(webrtc::RemoteVideoEncoder::encodeComplete):
(webrtc::createLocalEncoder):
(webrtc::releaseLocalEncoder):
(webrtc::initializeLocalEncoder):
(webrtc::encodeLocalEncoderFrame):
(webrtc::setLocalEncoderRates):

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Refactoring to expose a createPixelBuffer routine, to set/get RemoteVideoSample and to create a CVPixelBuffer from an IOSurfaceRef.

Covered by existing tests, in particular webrtc/video-gpuProcess.html.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::create):

  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::rotation const):

  • platform/graphics/cv/ImageTransferSessionVT.h:
  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createPixelBuffer):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool):

  • platform/mediastream/mac/RealtimeVideoUtilities.h:
  • platform/mediastream/mac/RealtimeVideoUtilities.mm: Added.

(WebCore::createPixelBufferPool):

Source/WebKit:

Add support for remote video encoders in GPUProcess based on libwebrtc exposed routines.
WebProcess sets callbacks in the webrtc backend to implement H264 encoding as a remote video encoder.
In addition to video frames, we also need to send rate setting orders.

  • Configurations/WebKit.xcconfig:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::~LibWebRTCCodecsProxy):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::initializeEncoder):
(WebKit::toWebRTCVideoRotation):
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
(WebKit::LibWebRTCCodecsProxy::setEncodeRates):

  • Scripts/webkit/messages.py:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::createVideoEncoder):
(WebKit::releaseVideoEncoder):
(WebKit::initializeVideoEncoder):
(WebKit::toMediaSampleVideoRotation):
(WebKit::encodeVideoFrame):
(WebKit::registerEncodeCompleteCallback):
(WebKit::setEncodeRatesCallback):
(WebKit::LibWebRTCCodecs::setCallbacks):
(WebKit::LibWebRTCCodecs::createDecoder):
(WebKit::LibWebRTCCodecs::releaseDecoder):
(WebKit::LibWebRTCCodecs::failedDecoding):
(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::createEncoder):
(WebKit::LibWebRTCCodecs::releaseEncoder):
(WebKit::LibWebRTCCodecs::initializeEncoder):
(WebKit::LibWebRTCCodecs::encodeFrame):
(WebKit::LibWebRTCCodecs::registerEncodeFrameCallback):
(WebKit::LibWebRTCCodecs::setEncodeRates):
(WebKit::LibWebRTCCodecs::completedEncoding):
(WebKit::LibWebRTCCodecs::pixelBufferPool):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
  • WebProcess/GPU/webrtc/RTCEncoderIdentifier.h: Added.
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createDecoderFactory):

1:12 AM Changeset in webkit [254049] by Philippe Normand
  • 2 edits in trunk/Tools

[WPE][Qt] TestRunJavaScript failure
https://bugs.webkit.org/show_bug.cgi?id=205766

Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WPEQt/TestRunJavaScript.cpp:

(TestRunJavaScript::main): Surround JS function with parentheses
to comply with the ECMAScript specification.

Note: See TracTimeline for information about the timeline view.