Timeline



Oct 12, 2018:

5:29 PM October 2018 Meeting edited by Jon Davis
Added IntersectionObserver Notes (diff)
5:29 PM IntersectionObserverNotes created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
5:17 PM October 2018 Meeting edited by Jon Davis
Added Redesigned Form Controls and Dark Mode CSS notes (diff)
5:17 PM RedesignedFormControlsAndDarkModeCSS created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
5:09 PM October 2018 Meeting edited by Jon Davis
Added Fixing WebKit Development Annoyances notes (diff)
5:08 PM FixingWebKitDevelopmentAnnoyances created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
4:54 PM Changeset in webkit [237091] by Devin Rousso
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Add a demo for WebInspector scanvas debugging.

  • demos/canvas-debugging/index.html: Added.
4:52 PM Changeset in webkit [237090] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: previews aren't removed when the parent view is hidden
https://bugs.webkit.org/show_bug.cgi?id=190525

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype.attached):

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.get canvases):
(WI.CanvasManager.prototype.get shaderPrograms):
Drive-by: simplify these getters.

4:48 PM October 2018 Meeting edited by Jon Davis
(diff)
4:46 PM October 2018 Meeting edited by Jon Davis
Added Last 2 Years of Platform/Network/cURL notes (diff)
4:44 PM Last2YearsOfPlatformNetworkCurl created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
4:42 PM October 2018 Meeting edited by Jon Davis
(diff)
4:39 PM WPTandWebKitTests edited by Jon Davis
(diff)
4:31 PM October 2018 Meeting edited by Jon Davis
Added WPT and WebKit Tests (diff)
4:30 PM WPTandWebKitTests created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
4:27 PM Changeset in webkit [237089] by guijemont@igalia.com
  • 2 edits in trunk/Tools

[Tools][webkitpy] fix handling of JSCTESTS_OPTIONS
https://bugs.webkit.org/show_bug.cgi?id=190537

Reviewed by Alexey Proskuryakov.

In DeprecatedPort.run_javascriptcore_tests_command() JSCTESTS_OPTIONS
needs to be split before adding it to the command since it is treated
as a list of args.

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

(DeprecatedPort.run_javascriptcore_tests_command):

4:17 PM October 2018 Meeting edited by Jon Davis
Added EWS Updates notes (diff)
4:16 PM Changeset in webkit [237088] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Build fix after r237084.
https://bugs.webkit.org/show_bug.cgi?id=189708

Unreviewd.

4:16 PM EWSUpdates2018 created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
4:14 PM October 2018 Meeting edited by Jon Davis
Added notes for WebKitGTK+ and WPE WebKit in Five Minutes (diff)
4:14 PM WebKitGTKAndWPEWebKitInFiveMinutes created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
4:13 PM Changeset in webkit [237087] by Wenson Hsieh
  • 27 edits
    5 adds in trunk

[iOS] Allow SPI clients to lay out at arbitrarily scaled sizes and scale to fit the view
https://bugs.webkit.org/show_bug.cgi?id=190504
<rdar://problem/45117760>

Reviewed by Tim Horton.

Source/WebCore:

Add support in ViewportConfiguration for applying a layout size scale factor to the viewport. See below for
more details.

Tests: fast/viewport/ios/constant-width-viewport-after-changing-view-scale.html

fast/viewport/ios/device-width-viewport-after-changing-view-scale.html

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::setViewLayoutSize):

The viewport's layout size may now be changed alongside the layout size scale factor. If either of these two
variables change, we recompute our minimum layout size and viewport configuration parameters.

(WebCore::ViewportConfiguration::shouldIgnoreHorizontalScalingConstraints const):
(WebCore::ViewportConfiguration::nativeWebpageParameters):
(WebCore::ViewportConfiguration::testingParameters):
(WebCore::ViewportConfiguration::updateConfiguration):

Multiply the minimum scale, initial scale, and maximum scale by the layout size scale factor. This allows us to
keep the document well-proportioned within the viewport, while still laying out at a different layout size.

(WebCore::ViewportConfiguration::updateMinimumLayoutSize):

Compute the minimum layout size by scaling the default layout size derived from our view's size.

(WebCore::ViewportConfiguration::layoutWidth const):
(WebCore::ViewportConfiguration::layoutHeight const):

  • page/ViewportConfiguration.h:

Maintain the original initial scale, unaffected by the layout size scale factor. This is used when computing
layout width and height to prevent scaling by the layout size scale factor twice when computing layout sizes.

(WebCore::ViewportConfiguration::description const):

Include the layout size scale factor in ViewportConfiguration's description string.

(WebCore::ViewportConfiguration::Parameters::operator== const):
(WebCore::operator<<):

Source/WebKit:

Add support for _setViewScale: and _viewScale on iOS. While similar in concept to macOS, changing this property
on iOS uses viewport configurations to change the minimum layout size of the document and apply view scaling.
Setting the view scale on iOS to a value s multiplies the minimium layout size by a factor 1 / s, but also
multiplies the initial, minimum and maximum scales by a factor of s. The net effect of applying this scale
causes the page to lay out at a larger width and shrink (or a smaller width and expand) to fit the viewport.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

Send viewportConfigurationLayoutSizeScaleFactor alongside viewportConfigurationViewLayoutSize.

(-[WKWebView _dispatchSetViewLayoutSize:]):
(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):

Provide a different implementation of _setViewScale: on iOS, by scaling the effective minimum layout size.
(See above for more detail).

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add missing API availability annotations for the _viewScale property.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setViewScale:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

Both -[WKView _setViewScale:] and -[WKWebView _setViewScale:] throw Objective C exceptions upon receiving a bad
argument (e.g. scale <= 0). However, logic for throwing this exception is specific to iOS in WKWebView, and
handled in WebViewImpl on macOS. To make this less confusing, move the exception throwing code out of
!PLATFORM(MAC) in WKWebView, and move the path for raising this exception in WKView on macOS from WebViewImpl to
WKView.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::layoutSizeScaleFactor const):

Tie the notion of "view scale" on iOS to layoutSizeScaleFactor. As its name suggests, this is a scale factor
by which we transform the layout size.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize):

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

Plumb the layout size scale factor over to the web process, along with the layout size.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setViewportConfigurationViewLayoutSize):

Tools:

Teach UIScriptController to set WKWebView's view scale via a new setViewScale method, supported in WebKit2 on
macOS and iOS.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setViewScale):

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::setViewScale):

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

(WTR::UIScriptController::setViewScale):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/UIScriptControllerCocoa.mm: Added.

Add a new file for UIScriptController methods on Cocoa platforms.

(WTR::UIScriptController::setViewScale):

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

Ensure that _viewScale is reset to 1 after running a layout test.

LayoutTests:

Add two new layout tests on iOS that change WKWebView's view scale, and measure the resulting window sizes and
lengths of viewport units.

  • fast/viewport/ios/constant-width-viewport-after-changing-view-scale-expected.txt: Added.
  • fast/viewport/ios/constant-width-viewport-after-changing-view-scale.html: Added.

Add a test page with a viewport meta tag that has a constant width and an explicit initial scale of 0.5.

  • fast/viewport/ios/device-width-viewport-after-changing-view-scale-expected.txt: Added.
  • fast/viewport/ios/device-width-viewport-after-changing-view-scale.html: Added.

Add a test page with a viewport meta tag at device-width, with initial scale 1.

  • resources/ui-helper.js:

(window.UIHelper.setViewScale):

Add a convenience function that wraps a UI script invocation of setViewScale in a promise.

(window.UIHelper):

4:13 PM October 2018 Meeting edited by Jon Davis
Added Igalia Contributions to WebKit (diff)
4:12 PM IgaliaContributionsToWebKit created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
4:10 PM Changeset in webkit [237086] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard: add a test for aggregating subtests without a matching metric in /api/report
https://bugs.webkit.org/show_bug.cgi?id=190544

Rubber-stamped by Keith Miller and unofficially reviewed by Dewei Zhu.

Added tests for reporting results to /api/report where a test with aggregated metrics has a subtest
without a matching metric type. The aggregation should simply skip such a subtest instead of returning
an error or aggregating with a mismatching metric type.

  • server-tests/api-report-tests.js:

(.makeReport): Extracted out of a test case.

4:05 PM October 2018 Meeting edited by Jon Davis
Added JavaScript RegExp Processing and JavaScriptCore Goals (diff)
4:03 PM JSCRegExpProcessingAndJSCGoals created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
3:59 PM Changeset in webkit [237085] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: Highlight text in Network Headers search is too dark
https://bugs.webkit.org/show_bug.cgi?id=190510

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-10-12
Reviewed by Devin Rousso.

  • UserInterface/Views/ResourceHeadersContentView.css:

(.resource-headers.showing-find-banner .search-highlight):
Use adaptive text-color.

3:54 PM October 2018 Meeting edited by Jon Davis
Added Web Inspector notes (diff)
3:52 PM WebInspectorNotes2018 created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
3:50 PM October 2018 Meeting edited by Jon Davis
Added WebDriver Notes (diff)
3:47 PM WebDriverNotes2018 created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
3:39 PM Changeset in webkit [237084] by Tadeu Zagallo
  • 7 edits
    2 adds in trunk/Source/JavaScriptCore

Separate configuration extraction from offset extraction
https://bugs.webkit.org/show_bug.cgi?id=189708

Reviewed by Keith Miller.

Instead of generating a file with all offsets for every combination of
configurations, we first generate a file with only the configuration
indices and pass that to the offset extractor. The offset extractor then
only generates the offsets for valid configurations

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • llint/LLIntOffsetsExtractor.cpp:

(JSC::LLIntOffsetsExtractor::dummy):

  • llint/LLIntSettingsExtractor.cpp: Added.

(main):

  • offlineasm/generate_offset_extractor.rb:
  • offlineasm/generate_settings_extractor.rb: Added.
  • offlineasm/offsets.rb:
  • offlineasm/settings.rb:
3:38 PM October 2018 Meeting edited by Jon Davis
Added WebKit Accessibility Performance notes (diff)
3:37 PM WebKitAccessibilityPerformance created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
3:28 PM October 2018 Meeting edited by Jon Davis
Added Investigating Leaks and Bloat (diff)
3:28 PM InvestigatingLeaksAndBloat created by Jon Davis
Notes from 2018 WebKit Contributors Meeting
3:24 PM October 2018 Meeting edited by Jon Davis
Added WebKit Feature Focus 2018-2019 Notes (diff)
3:23 PM WebKitFeatureFocus2018-2019 created by Jon Davis
Notes from the 2018 WebKit Contributors Meeting
3:16 PM October 2018 Meeting edited by timothy@hatcher.name
(diff)
3:06 PM Changeset in webkit [237083] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Rename iOS-11-Simulator-Tests-EWS to iOS-11-Simulator-WK2-Tests-EWS
https://bugs.webkit.org/show_bug.cgi?id=190536

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/config.json: Renamed iOS-11-Simulator-Tests-EWS to iOS-11-Simulator-WK2-Tests-EWS.
3:06 PM Changeset in webkit [237082] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Use downcast for use of RealtimeMediaSource in LibWebRTCMediaEndpoint
https://bugs.webkit.org/show_bug.cgi?id=190533

Reviewed by Chris Dumez.

Clean-up work.
No change of behavior.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::setExistingReceiverSourceTrack):

  • platform/mediastream/RealtimeIncomingAudioSource.h:

(isType):

  • platform/mediastream/RealtimeIncomingVideoSource.h:

(isType):

  • platform/mediastream/RealtimeMediaSource.h:
2:43 PM Changeset in webkit [237081] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

WebAVSampleBufferErrorListener's parent should be a WeakPtr.
https://bugs.webkit.org/show_bug.cgi?id=190524
<rdar://problem/44359307>

Reviewed by Eric Carlson.

Once WebAVSampleBufferErrorListener's parent is a WeakPtr, we no longer need to pass
protectedSelf into the callOnMainThread lambdas; we can pass in the parent itself.

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

(-[WebAVSampleBufferErrorListener initWithParent:]):
(-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
(-[WebAVSampleBufferErrorListener layerFailedToDecode:]):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers):

2:42 PM Changeset in webkit [237080] by Ryan Haddad
  • 15 edits in trunk/Source

Unreviewed, rolling out r237063.

Caused layout test fast/dom/Window/window-postmessage-clone-
deep-array.html to fail on macOS and iOS Debug bots.

Reverted changeset:

"[JSC] Remove gcc warnings on mips and armv7"
https://bugs.webkit.org/show_bug.cgi?id=188598
https://trac.webkit.org/changeset/237063

2:32 PM Changeset in webkit [237079] by youenn@apple.com
  • 1 edit in trunk/Source/ThirdParty/libwebrtc/CMakeLists.txt

Unreviewed.
Speculative build fix for GTK/WPE after r237075.

2:30 PM Changeset in webkit [237078] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: wrong color used for "goto arrow" for selected DOM breakpoint tree element
https://bugs.webkit.org/show_bug.cgi?id=190180
<rdar://problem/44927654>

Reviewed by Matt Baker.

  • UserInterface/Views/Main.css:

(@media (prefers-dark-interface)):
(:focus .selected .go-to-arrow):

2:29 PM Changeset in webkit [237077] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Address the review comment which was meant to be addressed in r237025.

  • editing/MarkupAccumulator.cpp:

(WebCore::elementCannotHaveEndTag):

2:04 PM Changeset in webkit [237076] by Ryan Haddad
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Unreviewed build fix, remove executable file imported with r237075.

  • Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
1:53 PM October 2018 Meeting edited by Jon Davis
Moved "How Text Works" into main schedule (diff)
1:45 PM Changeset in webkit [237075] by youenn@apple.com
  • 1279 edits
    64 copies
    164 moves
    313 adds
    92 deletes in trunk/Source

Refresh libwebrtc up to 343f4144be
https://bugs.webkit.org/show_bug.cgi?id=190361

Reviewed by Chris Dumez.

This refresh should not change behavior but will allow us to implement better
mdns candidate support and simulcast activation surfacing through addTransceiver.
Covered by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::doCreateAnswer):
  • testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::CreateAnswer):
  • testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): Deleted. (WebCore::MockRtpSender::SetParameters): Deleted. (WebCore::MockRtpSender::GetDtmfSender const): Deleted.

ThirdParty/libwebrtc

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Source/webrtc: Resynced.
  • WebKit/0001-Updating-webrtc.patch: Removed.
  • libwebrtc.xcodeproj/project.pbxproj:
1:20 PM Changeset in webkit [237074] by achristensen@apple.com
  • 23 edits in trunk/Source

Allow encoding of small enum classes
https://bugs.webkit.org/show_bug.cgi?id=190531

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:
  • dom/Document.h:
  • editing/FontAttributeChanges.h:
  • history/CachedFrame.h:
  • loader/FrameLoaderTypes.h:
  • platform/CookiesStrategy.h:
  • platform/PasteboardItemInfo.h:
  • platform/ReferrerPolicy.h:

Source/WebKit:

  • NetworkProcess/NetworkLoadClient.h:
  • Scripts/webkit/messages.py:
  • Scripts/webkit/parser.py:

(parse_parameters_string):

  • UIProcess/API/APINavigation.h:
  • UIProcess/WebFramePolicyListenerProxy.h:
  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(-[WebFramePolicyListener dealloc]):

Source/WTF:

  • wtf/Forward.h:
12:58 PM October 2018 Meeting edited by Jon Davis
Added IntersectionObserver talk (diff)
12:51 PM October 2018 Meeting edited by Jon Davis
(diff)
12:47 PM October 2018 Meeting edited by Michael Catanzaro
(diff)
12:43 PM October 2018 Meeting edited by Jon Davis
Changed order of Igalia and Web Inspector talks (diff)
12:20 PM Changeset in webkit [237073] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Solve the confusion around blankURL() and isBlankURL() in URL
https://bugs.webkit.org/show_bug.cgi?id=158988

Patch by Rob Buis <rbuis@igalia.com> on 2018-10-12
Reviewed by Alex Christensen.

Source/WebCore:

The name isBlankURL is not accurate as the function tests the
protocol, not the full URL. Choose protocolIsAbout to align with
exisiting protocolIsData, protocolIsBlob etc.

No tests as no change in functionality.

  • WebCore.order:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadApplicationManifest):
(WebCore::DocumentLoader::startIconLoading):

  • loader/NavigationAction.cpp:

(WebCore::shouldTreatAsSameOriginNavigation):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::appendCustomAttributes):
(WebCore::PageSerializer::serializeFrame):

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource const):

  • platform/URL.cpp:

(WebCore::URL::protocolIsAbout const):
(WebCore::URL::isBlankURL const): Deleted.

  • platform/URL.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::loadFull):

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueWillSendRequest):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setLastSeen):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom):

11:03 AM Changeset in webkit [237072] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

[Mojave Wk2] Layout Test http/tests/cache/disk-cache/disk-cache-validation-attachment.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190323

Unreviewed, mark test as Flaky.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-12

  • platform/mac-wk2/TestExpectations:
10:57 AM Changeset in webkit [237071] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Cache API tests are flaky due to file writing failing from time to time
https://bugs.webkit.org/show_bug.cgi?id=190321

Reviewed by Chris Dumez.

Make NetworkCache::Storage::store callback return an error in case of writing failure.
Use this to surface this error at Cache API level.

Minor clean-up to make Storage::clear take a completion handler.

Make also sure to create the folder before writing the file in CacheStorageEngine.
As can be seen from some logging, it does happen that writing the 'origin' file sometimes fail with Posix error 9,
which might mean the folder is not present.

Changes are covered by current tests, flaky tests like http/wpt/cache-storage/cache-put-keys.https.any.worker.html
will show a "failed writing data to the file system" error message.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::writeFile):

  • NetworkProcess/cache/CacheStorageEngine.h:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::storeOrigin):
(WebKit::CacheStorage::Caches::writeCachesToDisk):
(WebKit::CacheStorage::Caches::writeRecord):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::finishWriteOperation):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::clear):

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::store):

10:14 AM Changeset in webkit [237070] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

DOMCache should dereference itself as soon as stopped
https://bugs.webkit.org/show_bug.cgi?id=190441

Reviewed by Chris Dumez.

Dereference the DOMCache as soon as its context is stopped instead of waiting for garbage collection.
This allows freeing resources sooner in the network process.
No observable change of behavior since the DOMCache becomes no-op when its context is stopped.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::~DOMCache):
(WebCore::DOMCache::stop):

9:57 AM Changeset in webkit [237069] by ap@apple.com
  • 2 edits in trunk/Source/WTF

Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=190477

Reviewed by Tim Horton.

Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
because of dependencies in other source repositories.

  • wtf/Platform.h: Changed to the new name in this file though. Kept a few

instances that actually target iOS only, having a version check.

9:24 AM October 2018 Meeting edited by mmaxfield@apple.com
(diff)
9:07 AM Changeset in webkit [237068] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190520

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:28 AM Changeset in webkit [237067] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

CRASH in WebCore::MediaPlayerPrivateAVFoundation::setPreload
https://bugs.webkit.org/show_bug.cgi?id=190485
<rdar://problem/34613350>

Reviewed by Eric Carlson.

Crash analytics show that a pure-virtual function is called by MediaPlayerPrivateAVFoundation::setPreload(), and
the likely cause of that pure-virtual function call is that the MediaPlayerPrivateAVFoundation object itself has
been destroyed, likely as a side effect of calling MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL().
The usual suspect for this kind of crash is due to calling into JS (e.g., from a callback passed up to
HTMLMediaElement). Code inspection hasn't yielded any good hints about why this might be occurring, so we will
add a ScriptDisallowedScope assertion inside HTMLMediaElement::prepareToPlay(), to generate a good crashlog
showing exactly what callback is resulting in a JS call. But just in case the deallocation is not due to JS,
also add an explicit strong-ref inside MediaPlayer::prepareToPlay.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareToPlay):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::prepareToPlay):

8:28 AM Changeset in webkit [237066] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Null-dereference in SourceBufferPrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged
https://bugs.webkit.org/show_bug.cgi?id=190490
<rdar://problem/42213807>

Reviewed by Eric Carlson.

Crash analytics show a null dereference occurring, likely because m_mediaSource is null.

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

(WebCore::SourceBufferPrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):

6:19 AM October 2018 Meeting edited by dbates@webkit.org
Cannot attend the meeting. (diff)

Oct 11, 2018:

11:33 PM Changeset in webkit [237065] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r236956. Use array_get to avoid warnings.

  • public/include/report-processor.php:
11:13 PM Changeset in webkit [237064] by jonlee@apple.com
  • 2 edits in trunk/Websites/browserbench.org

Update default hyperlink for MotionMark to MotionMark 1.1
https://bugs.webkit.org/show_bug.cgi?id=190491

Reviewed by Ryosuke Niwa.

  • index.html:
7:51 PM Changeset in webkit [237063] by guijemont@igalia.com
  • 15 edits in trunk/Source

[JSC] Remove gcc warnings on mips and armv7
https://bugs.webkit.org/show_bug.cgi?id=188598

Reviewed by Mark Lam.

Source/bmalloc:

Add bitwise_cast (from WTF) and use it instead of reinterpret_cast in
a couple places where reinterpret_cast triggers a warning about
alignment even though we know that alignment is correct.

  • bmalloc/Algorithm.h:

(bmalloc::bitwise_cast): Copied from WTF/wtf/StdLibextras.h

  • bmalloc/IsoDirectoryPageInlines.h:

(bmalloc::IsoDirectoryPage<Config>::pageFor):

  • bmalloc/IsoPageInlines.h:

(bmalloc::IsoPage<Config>::startAllocating):

Source/JavaScriptCore:

Fix many gcc/clang warnings that are false positives, mostly alignment
issues.

  • assembler/MacroAssemblerPrinter.cpp:

(JSC::Printer::printMemory):
Use bitwise_cast instead of reinterpret_cast.

  • assembler/testmasm.cpp:

(JSC::floatOperands):
marked as potentially unused as it is not used on all platforms.
(JSC::testProbeModifiesStackValues):
modifiedFlags is not used on mips, so don't declare it.

  • bytecode/CodeBlock.h:

Make ScriptExecutable::prepareForExecution() return an
std::optional<Exception*> instead of a JSObject*.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
Update calling code for the prototype change of
ScriptExecutable::prepareForExecution().

  • jit/JITOperations.cpp: Same as for Interpreter.cpp.
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall): Same as for Interpreter.cpp.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::dataStorage):
Use bitwise_cast instead of reinterpret_cast.

  • runtime/ScriptExecutable.cpp:
  • runtime/ScriptExecutable.h:

Make ScriptExecutable::prepareForExecution() return an
std::optional<Exception*> instead of a JSObject*.

  • tools/JSDollarVM.cpp:

(JSC::codeBlockFromArg): Use bitwise_cast instead of reinterpret_cast.

7:45 PM Changeset in webkit [237062] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Add Houdini specs to features.json
https://bugs.webkit.org/show_bug.cgi?id=190494
<rdar://problem/45211879>

Unreviewed fix.

Specifications should not reference other specifications. Also
move Worklet into the specifications section.

  • features.json:
7:30 PM Changeset in webkit [237061] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: detail view reverts to "Response" when new requests are added
https://bugs.webkit.org/show_bug.cgi?id=190443

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._showDetailView):
Return early if we are already showing a detail view for the selected object.

6:33 PM Changeset in webkit [237060] by youenn@apple.com
  • 13 edits in trunk

IOS 12 - Service worker cache not shared when added to homescreen
https://bugs.webkit.org/show_bug.cgi?id=190269
<rdar://problem/45009961>

Reviewed by Alex Christensen.

Source/WebCore:

Expose Cache Storage API when Service Worker API is exposed.
This is used for API tests.

  • dom/ScriptExecutionContext.h: Make hasServiceWorkerScheme

available outside SERVICE_WORKER compilation flag since used by DOMWindowCaches.

  • dom/ScriptExecutionContext.cpp: Ditto.
  • Modules/cache/DOMWindowCaches.idl:

Source/WebKit:

NetworkProcessProxy does not always have all its stores in its hash map.
Make sure to check for the default web process pool store when grabbing cache storage parameters from a given session ID.

Add a way to remove the default website data for testing.
This is used in the new API test.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::deleteDefaultDataStoreForTesting):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]):

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

(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

Add test to ensure that CacheStorage use the default website data store parameters.

6:32 PM Changeset in webkit [237059] by yusukesuzuki@slowstart.org
  • 5 edits in trunk/Source

Use currentStackPointer more
https://bugs.webkit.org/show_bug.cgi?id=190503

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • runtime/VM.cpp:

(JSC::VM::committedStackByteCount):

Source/WTF:

Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.

  • wtf/StackBounds.cpp:

(WTF::testStackDirection2):
(WTF::testStackDirection):

  • wtf/ThreadingPthreads.cpp:

(WTF::Thread::signalHandlerSuspendResume):
(WTF::getApproximateStackPointer): Deleted.

5:23 PM Changeset in webkit [237058] by Simon Fraser
  • 9 edits in trunk/Source

Hide RenderLayer z-order and normal flow lists behind iterators
https://bugs.webkit.org/show_bug.cgi?id=190457

Source/WebCore:

Reviewed by Zalan Bujtas.

Expose the positive z-order, negative z-order and normal flow lists
from RenderLayer as iterators rather than vectors of raw pointers.

This hides the fact that the vectors can be null, and allows for easier casting in future.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::update3DTransformedDescendantStatus):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestList):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::traverseVisibleNonCompositedDescendantLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
(WebCore::RenderLayerCompositor::recursiveRepaintLayer):
(WebCore::RenderLayerCompositor::needsContentsCompositingLayer const):
(WebCore::RenderLayerCompositor::layerHas3DContent const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeLayers):

Source/WebKit:

Reviewed by Zalan Bujtas.

Expose the positive z-order, negative z-order and normal flow lists
from RenderLayer as iterators rather than vectors of raw pointers.

Use a lambda function to get access to the private constructor, while not having
to refer to the nested RenderLayer::LayerIterator class in the header.

  • Shared/WebRenderLayer.cpp:

(WebKit::WebRenderLayer::WebRenderLayer):
(WebKit::WebRenderLayer::createArrayFromLayerList): Deleted.

  • Shared/WebRenderLayer.h:
5:08 PM Changeset in webkit [237057] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Add Houdini specs to features.json
https://bugs.webkit.org/show_bug.cgi?id=190494

Reviewed by Simon Fraser.

Add CSS Typed OM Level 1, CSS Layout API Level 1, CSS Animation
Worklet, and group them under a Houdini feature set.

  • features.json:
4:51 PM Changeset in webkit [237056] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

iOS: Scrolling using the arrow keys doesn't show the scroll indicator like it does on macOS
https://bugs.webkit.org/show_bug.cgi?id=190478
<rdar://problem/22194031>

Reviewed by Megan Gardner.

  • Platform/spi/ios/UIKitSPI.h:

Add some SPI.

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):
Do a persistent flash when scrolling continuously.

(-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]):
Do a single flash when doing a scroll-to-top/bottom.

4:48 PM Changeset in webkit [237055] by timothy_horton@apple.com
  • 4 edits in trunk

Clicking on bookmarklet crashes at NavigationState::willRecordNavigationSnapshot
https://bugs.webkit.org/show_bug.cgi?id=190476
<rdar://problem/32757191>

Reviewed by Megan Gardner.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _saveBackForwardSnapshotForItem:]):
The WKBackForwardListItem can be nil. Then we retrieve a reference from it.
An Objective-C method that returns a reference is a great way to get
a null reference. Other code then assumes it's not null and crashes.
Add a nil check.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SnapshotStore.mm:

(TEST):
Add a test that we don't crash.

4:43 PM Changeset in webkit [237054] by yusukesuzuki@slowstart.org
  • 27 edits
    2 adds in trunk

[JSC] JSC should have "parseFunction" to optimize Function constructor
https://bugs.webkit.org/show_bug.cgi?id=190340

Reviewed by Mark Lam.

JSTests:

This patch fixes the line number of syntax errors raised by the Function constructor,
since we now parse the final code only once. And we no longer use block statement
for Function constructor's parsing.

  • ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
  • stress/function-cache-with-parameters-end-position.js: Added.

(shouldBe):
(shouldThrow):
(i.anonymous):

  • stress/function-constructor-name.js: Added.

(shouldBe):
(GeneratorFunction):
(AsyncFunction.async):
(AsyncGeneratorFunction.async):
(anonymous):
(async.anonymous):

  • test262/expectations.yaml:

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/inline-event-handler-ordering-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-late-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-attribute-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-body-onerror-expected.txt:

Source/JavaScriptCore:

The current Function constructor is suboptimal. We parse the piece of the same code three times to meet
the spec requirement. (1) check parameters syntax, (2) check body syntax, and (3) parse the entire function.
And to parse 1-3 correctly, we create two strings, the parameters and the entire function. This operation
is really costly and ideally we should meet the above requirement by the one time parsing.

To meet the above requirement, we add a special function for Parser, parseSingleFunction. This function
takes std::optional<int> functionConstructorParametersEndPosition and check this end position is correct in the parser.
For example, if we run the code,

Function('/*', '*/){')

According to the spec, this should produce '/*' parameter string and '*/){' body string. And parameter
string should be syntax-checked by the parser, and raise the error since it is incorrect. Instead of doing
that, in our implementation, we first create the entire string.

function anonymous(/*) {

*/){

}

And we parse it. At that time, we also pass the end position of the parameters to the parser. In the above case,
the position of the `function anonymous(/*)' <> is passed. And in the parser, we check that the last token
offset of the parameters is the given end position. This check allows us to raise the error correctly to the
above example while we parse the entire function only once. And we do not need to create two strings too.

This improves the performance of the Function constructor significantly. And web-tooling-benchmark/uglify-js is
significantly sped up (28.2%).

Before:

uglify-js: 2.94 runs/s

After:

uglify-js: 3.77 runs/s

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::fromGlobalCode):

  • bytecode/UnlinkedFunctionExecutable.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseSingleFunction):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseFunctionExpression):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse):
(JSC::parse):
(JSC::parseFunctionForFunctionConstructor):

  • parser/ParserModes.h:
  • parser/ParserTokens.h:

(JSC::JSTextPosition::JSTextPosition):
(JSC::JSTokenLocation::JSTokenLocation): Deleted.

  • parser/SourceCodeKey.h:

(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::operator== const):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):

  • runtime/CodeCache.h:
  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::fromGlobalCode):

  • runtime/FunctionExecutable.h:

LayoutTests:

  • fast/dom/attribute-event-listener-errors-expected.txt:
  • fast/events/attribute-listener-deletion-crash-expected.txt:
  • fast/events/window-onerror-syntax-error-in-attr-expected.txt:
  • js/dom/invalid-syntax-for-function-expected.txt:
  • js/dom/script-start-end-locations-expected.txt:
4:41 PM Changeset in webkit [237053] by timothy_horton@apple.com
  • 8 edits
    2 adds in trunk/Source/WebKit

Hardware keyboard arrow keys/spacebar don't scroll PDFs (works for web content)
https://bugs.webkit.org/show_bug.cgi?id=190495
<rdar://problem/22734616>

Reviewed by Andy Estes.

Hook up WKKeyboardScrollViewAnimator to the scroll view when
WKPDFView is installed.

  • Platform/spi/ios/UIKitSPI.h:

Move _inputFlags to the IPI section so we can remove it
from WKContentViewInteraction.

  • SourcesCocoa.txt:
  • UIProcess/ios/WKWebEvent.h:
  • UIProcess/ios/WKWebEvent.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView handleKeyEvent:]):
(-[WKWebEvent dealloc]): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Move WKWebEvent out of WKContentViewInteraction.
We tend to prefer one file per class.
Also, move the code to make a WKWebEvent from a UIEvent into
-initWithEvent:, instead of being ad-hoc in WKContentViewInteraction.
Adopt RetainPtr for the WKWebEvent's uiEvent property.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _handleKeyUIEvent:]):

  • UIProcess/Cocoa/WKWebViewContentProvider.h:

Plumb hardware keyboard events to custom content views, if they want them.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView dealloc]):
(-[WKPDFView web_handleKeyEvent:]):
(-[WKPDFView web_initWithFrame:webView:mimeType:]):
Install a WKKeyboardScrollViewAnimator and plumb key events to it.

4:07 PM October 2018 Meeting edited by Jon Davis
Swapped ggaren and cfleizach talks (diff)
3:52 PM Changeset in webkit [237052] by Ross Kirsling
  • 5 edits
    1 move in trunk/Source

[WTF] Semaphore.h conflicts with POSIX header
https://bugs.webkit.org/show_bug.cgi?id=190486

Reviewed by Yusuke Suzuki.

Source/WebCore:

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

Source/WTF:

Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
3:06 PM Changeset in webkit [237051] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Fix non-existent define CPU(JSVALUE64)
https://bugs.webkit.org/show_bug.cgi?id=190479

Reviewed by Yusuke Suzuki.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsImpl):
Correct CPU(JSVALUE64) to USE(JSVALUE64).

2:46 PM Changeset in webkit [237050] by Matt Baker
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: remove unused TreeOutline style .force-focus
https://bugs.webkit.org/show_bug.cgi?id=190480
<rdar://problem/45203484>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CallFrameTreeElement.css:

(.tree-outline:focus .item.call-frame.selected .status > .status-image):
(.tree-outline:matches(:focus, .force-focus) .item.call-frame.selected .status > .status-image): Deleted.

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:focus .item.processing.selected .subtitle > progress):
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Deleted.

  • UserInterface/Views/DataGrid.css:

(body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)):
(body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)):
(.data-grid:focus tr.parent.selected td.disclosure::before):
(.data-grid:focus tr.parent.expanded.selected td.disclosure::before):
(.data-grid:focus tr.selected):
(.data-grid:focus tr.selected td .subtitle):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:focus tr.editable.selected .cell-content > input):
(@media (prefers-dark-interface)):
(body[dir=ltr] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
(body[dir=rtl] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
(.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before): Deleted.
(.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before): Deleted.
(.data-grid:matches(:focus, .force-focus) tr.selected): Deleted.
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): Deleted.

  • UserInterface/Views/Main.css:

(:focus .selected .go-to-arrow):
(:focus .selected .go-to-arrow:active):
(:matches(:focus, .force-focus) .selected .go-to-arrow): Deleted.
(:matches(:focus, .force-focus) .selected .go-to-arrow:active): Deleted.

  • UserInterface/Views/ProfileView.css:

(.profile > .data-grid:focus tr.selected td .location):
(.profile > .data-grid:matches(:focus, .force-focus) tr.selected td .location): Deleted.

  • UserInterface/Views/RecordingActionTreeElement.css:

(.tree-outline:focus .item.action.selected:not(.initial-state, .invalid) > .icon):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus .item.action.selected > .titles .parameter.swizzled,):
(.tree-outline:matches(:focus, .force-focus) .item.action.selected:not(.initial-state, .invalid) > .icon): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,): Deleted.

  • UserInterface/Views/ScriptDetailsTimelineView.css:

(.tree-outline:focus .item.selected .alternate-subtitle):
(.tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle): Deleted.

  • UserInterface/Views/ShaderProgramTreeElement.css:

(.tree-outline:focus .item.shader-program.selected .status > img):
(.tree-outline:matches(:focus, .force-focus) .item.shader-program.selected .status > img): Deleted.

  • UserInterface/Views/ThreadTreeElement.css:

(.tree-outline:focus > .item.thread.selected .status-button.resume):
(.tree-outline:matches(:focus, .force-focus) > .item.thread.selected .status-button.resume): Deleted.

  • UserInterface/Views/TimelineRecordBar.css:

(:focus .selected .timeline-record-bar > .segment):
(:focus .selected .timeline-record-bar > .segment.inactive):
(body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment): Deleted.
(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive): Deleted.
(body[dir=ltr] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
(body[dir=rtl] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.

  • UserInterface/Views/TreeElementStatusButton.css:

(:focus .item.selected > .status > .status-button):
(:matches(:focus, .force-focus) .item.selected > .status > .status-button): Deleted.

  • UserInterface/Views/TreeOutline.css:

(.tree-outline:focus .item.selected .disclosure-button):
(.tree-outline:focus .item.selected.expanded .disclosure-button):
(.tree-outline:focus .item.selected):
(.tree-outline:focus .item.selected .subtitle):
(.tree-outline:not(.large):focus .item.selected .status .indeterminate-progress-spinner):
(.tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): Deleted.
(.tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): Deleted.
(.tree-outline:matches(:focus, .force-focus) .item.selected): Deleted.
(.tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): Deleted.
(.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner): Deleted.

2:43 PM Changeset in webkit [237049] by graouts@webkit.org
  • 3 edits in trunk/Source/WebKit

[Web Animations] Allow iOS to also control toggling Web Animations CSS Integration
https://bugs.webkit.org/show_bug.cgi?id=190489

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setWebAnimationsCSSIntegrationEnabled:]):
(-[WKPreferences _webAnimationsCSSIntegrationEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2:30 PM Changeset in webkit [237048] by commit-queue@webkit.org
  • 10 edits in trunk

[GStreamer] Support arbitrary video resolution in getUserMedia API
https://bugs.webkit.org/show_bug.cgi?id=189734

Source/WebCore:

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-11
Reviewed by Xabier Rodriguez-Calvar.

Implement arbitrary video resolution for the getUserMedia API in GStreamer.

Fix the MockRealtimeMediaSource device list to make devices properties match
test expectations.

Reactivate tests that were failling because of that.

  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::standardVideoSizes):
(WebCore::standardVideoSizes): Deleted.

  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/VideoPreset.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoPreset::create):
(WebCore::GStreamerVideoPreset::GStreamerVideoPreset):
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource):
(WebCore::GStreamerVideoCaptureSource::capabilities):
(WebCore::GStreamerVideoCaptureSource::generatePresets):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices):

LayoutTests:

Implement arbitrary video resolution for the getUserMedia API in GStreamer.

Fix the MockRealtimeMediaSource device list to make devices properties match
test expectations.

Reactivate tests that were failling because of that.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-11
Reviewed by Xabier Rodriguez-Calvar.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
2:22 PM Changeset in webkit [237047] by Keith Rollin
  • 12 edits in trunk/Source

CURRENT_ARCH should not be used in Run Script phase.
https://bugs.webkit.org/show_bug.cgi?id=190407
<rdar://problem/45133556>

Reviewed by Alexey Proskuryakov.

CURRENT_ARCH is used in a number of Xcode Run Script phases. However,
CURRENT_ARCH is not well-defined during this phase (and may even have
the value "undefined") since this phase is run just once per build
rather than once per supported architecture. Migrate away from
CURRENT_ARCH in favor of ARCHS, either by iterating over ARCHS and
performing an operation for each value, or by picking the first entry
in ARCHS and using that as a representative value.

Source/JavaScriptCore:

LLIntDesiredOffsets.h into a directory with a name based on ARCHS
rather than CURRENT_ARCH.

Source/WebCore:

No new tests -- no functional changes.

  • DerivedSources.make: When forming TARGET_TRIPLE_FLAGS, grab the

first entry in ARCHS rather than use CURRENT_ARCH.

Source/WebKit:

  • DerivedSources.make: When forming TARGET_TRIPLE_FLAGS, grab the

first entry in ARCHS rather than use CURRENT_ARCH.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: When generating

WebKitLegacy.*.exp, generate both 32- and 64-bit versions for
macosx platforms.

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig: When generating

WebKitLegacy.*.exp, generate both 32- and 64-bit versions for
macosx platforms.

  • MigrateHeaders.make:
  • migrate-headers.sh: When generating ReexportedWebCoreSymbols_*.exp,

generate one for each architecture in ARCHS.

1:30 PM Changeset in webkit [237046] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Support building WebKit for macOS Mojave using a newer SDK
https://bugs.webkit.org/show_bug.cgi?id=190431

Reviewed by Andy Estes.

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::coreSameSitePolicy):
(WebCore::nsSameSitePolicy):

1:29 PM Changeset in webkit [237045] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

[iOS] Add typedef for WebEvent keyboard flags
https://bugs.webkit.org/show_bug.cgi?id=190435

Reviewed by Wenson Hsieh.

Currently WebEvent and UIKit SPI are intertwined when it comes to keyboard flags. It seems sufficient
to have WebEvent defined its own keyboard flags so that callers do not need to be aware of UIKit SPI.

No functionality changed. So, no new tests.

  • platform/ios/WebEvent.h:
  • platform/ios/WebEvent.mm:

(-[WebEvent keyboardFlags]):

12:32 PM Changeset in webkit [237044] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r237037): Cannot use webkit-patch upload, always fails with unknown 'cc_radar'

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

(Options):
Fix the name of the variable that the --cc-radar option writes into.

12:26 PM Changeset in webkit [237043] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: detail view is not re-shown after sorting the Network table
https://bugs.webkit.org/show_bug.cgi?id=190330
<rdar://problem/45089607>

Reviewed by Matt Baker.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._restoreSelectedRow):

12:19 PM Changeset in webkit [237042] by mark.lam@apple.com
  • 14 edits
    2 adds in trunk/Source

Changes towards allowing use of the ASAN detect_stack_use_after_return option.
https://bugs.webkit.org/show_bug.cgi?id=190405
<rdar://problem/45131464>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

The ASAN detect_stack_use_after_return option checks for use of stack variables
after they have been freed. It does this by allocating relevant stack variables
in heap memory (instead of on the stack) if the code ever takes the address of
those stack variables. Unfortunately, this is a common idiom that we use to
compute the approximate stack pointer value. As a result, on such ASAN runs, the
computed approximate stack pointer value will point into the heap instead of the
stack. This breaks the VM's expectations and wreaks havoc.

To fix this, we use the newly introduced WTF::currentStackPointer() instead of
taking the address of stack variables.

We also need to enhance ExceptionScopes to be able to work with ASAN
detect_stack_use_after_return which will allocated the scope in the heap. We
work around this by passing the current stack pointer of the instantiating calling
frame into the scope constructor, and using that for the position check in
~ThrowScope() instead.

The above is only a start towards enabling ASAN detect_stack_use_after_return on
the VM. There are still other issues to be resolved before we can run with this
ASAN option.

  • runtime/CatchScope.h:
  • runtime/ExceptionEventLocation.h:

(JSC::ExceptionEventLocation::ExceptionEventLocation):

  • runtime/ExceptionScope.h:

(JSC::ExceptionScope::stackPosition const):

  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):

  • runtime/ThrowScope.cpp:

(JSC::ThrowScope::~ThrowScope):

  • runtime/ThrowScope.h:
  • runtime/VM.h:

(JSC::VM::needExceptionCheck const):
(JSC::VM::isSafeToRecurse const):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse const):

Source/WTF:

Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/StackBounds.h:

(WTF::StackBounds::checkConsistency const):

  • wtf/StackPointer.cpp: Added.

(WTF::currentStackPointer):

  • wtf/StackPointer.h: Added.
11:56 AM Changeset in webkit [237041] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.10.2/Source/WebKit

Cherry-pick r236989. rdar://problem/43391014

REGRESSION(r231663) loading in hidden WKWebViews stalls because WebProcess is suspended
https://bugs.webkit.org/show_bug.cgi?id=190417
<rdar://problem/43391014>

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::didChangeIsLoading): Revert r321663, but keep the change to TestWKWebView.mm because that made the tests more reliable.

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

11:39 AM Changeset in webkit [237040] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Use finer grained locking in FontDatabase
https://bugs.webkit.org/show_bug.cgi?id=190467

Reviewed by Alex Christensen.

  • platform/graphics/FontCache.h:

Also use ListHashSet for prewarming info so we can prewarm in the same order the fonts were
seen last time.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::collectionForFamily):

Only hold the lock when accessing the hashmap. There is no need to hold it during font construction
which can take a long time.

(WebCore::FontDatabase::fontForPostScriptName):

This is currently not prewarmed from a thread so no need for locking.

(WebCore::FontDatabase::clear):

11:35 AM Changeset in webkit [237039] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.10.2/Source

Versioning.

11:32 AM Changeset in webkit [237038] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.10.2

New tag.

11:10 AM October 2018 Meeting edited by Jon Davis
Schedule changes. (diff)
10:32 AM Changeset in webkit [237037] by dino@apple.com
  • 6 edits in trunk/Tools

Add --cc-radar option to webkit-patch bug creation
https://bugs.webkit.org/show_bug.cgi?id=190451
<rdar://problem/45176671>

Reviewed by Antoine Quint.

Add a new command line option to automatically
CC radar to new or updated bugs.

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

(CommandsTest.assert_execute_outputs):

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

(CreateBug.init):
(CreateBug.execute):

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

(test_prepare_with_cc):
(test_prepare_with_radar):
(test_prepare_with_cc_and_radar):

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

(CreateBug.options):
(CreateBug.run):

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

(Options):

10:29 AM Changeset in webkit [237036] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix race condition in GStreamerVideoDecoder
https://bugs.webkit.org/show_bug.cgi?id=190470

The GStreamerVideoDecoder.m_dtsPtsMap filed is accessed from
the main thread and some GStreamer streaming thread, make sure
to protect its access.

And use WTF::StdMap instead of std::map.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-11
Reviewed by Philippe Normand.

Manually tested and a random crash is gone.

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

(WebCore::GStreamerVideoDecoder::newSampleCallback):

10:25 AM Changeset in webkit [237035] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(PSON): Deal with the drawing area potentially being null under WebChromeClient::contentsSizeChanged()
https://bugs.webkit.org/show_bug.cgi?id=190474

Reviewed by Geoffrey Garen.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::contentsSizeChanged const):

8:54 AM Changeset in webkit [237034] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test fast/forms/fieldset/fieldset-elements-htmlcollection.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190472

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:10 AM Changeset in webkit [237033] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][MSE] Fix height calculation for streams with source aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=190464

Reviewed by Xabier Rodriguez-Calvar.

This patch is authored by Nikola Veljkovic <Nikola.Veljkovic@zenterio.com>

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::getVideoResolutionFromCaps): Reverse the SAR adjustment to "undo" it
instead of applying it twice.

3:41 AM Changeset in webkit [237032] by Claudio Saavedra
  • 2 edits in trunk/Tools

[GStreamer] Do not build gstgtk plugins
https://bugs.webkit.org/show_bug.cgi?id=190463

Reviewed by Xabier Rodriguez-Calvar.

These plugins pull a GTK+ dependency that, at least in WPE,
is unnecessary. The GTK+ port doesn't need it either, as far
as I can tell.

  • gstreamer/jhbuild.modules: Disable gstgtk plugins
3:26 AM Changeset in webkit [237031] by commit-queue@webkit.org
  • 23 edits
    6 adds in trunk

[GTK][WPE] Add mediaDevices.enumerateDevices support
https://bugs.webkit.org/show_bug.cgi?id=185761

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-10-11
Reviewed by Youenn Fablet.

Source/WebCore:

We are adopting the same policy COCOA is using when returning the
list of media devices if the user does not have persistent
access. Namely, we just return the first media device for audio
and video capture.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::filterDeviceList): Add support for
other platforms when filtering devices if there is no persistent
access to the origin.

Source/WebKit:

Implemented the enumerateDevices API using a new WebKit class
(DeviceIdHashSaltStorage) that generates and stores the device ids
hash salts per origin, used to avoid fingerprinting in the
webpages.

The patch also adds a new type of data for the WebsiteDataStore.
That way the users can call the WebsiteDataStore to show what
origins have hash salt generated and remove them at some point.

For the moment just GTK+ and WPE ports are using this class to
generate the hash salts. The patch adds code to the
checkUserMediaPermissionForOrigin API implementation, it was empty
until now for these ports. In this function we create an instance
of a new class WebKitDeviceInfoPermissionRequest that implements
the WebKitPermissionRequestIface interface, that allows the ports
to use the current permission managers implemented in the
embedders to handle this new kind of request the way they like
it. The default implementation is deny.

The class WebKitDeviceInfoPermissionRequest takes care of
contacting the DeviceIdHashSaltStorage and request/regenerate the
hash salts accordingly.

Persistency is still not implemented, we will add it in a
future patch.

  • Shared/WebsiteData/WebsiteDataType.h: Added the new type of

webside data: DeviceIdHashSalt.

  • Sources.txt: Added new files to compilation.
  • SourcesGTK.txt: Ditto.
  • SourcesWPE.txt: Ditto.
  • UIProcess/API/glib/WebKitDeviceInfoPermissionRequest.cpp: Added

this class to represent a request of permission to access the
devices information. This is specific for glib ports and implements
the policies regarding the hash salts when the embedder allows or
denies the access using the DeviceIdHashSaltStorage class.
(webkitDeviceInfoPermissionRequestAllow): Get the device hash salt
when the origin is allowed and set it in the original request.
(webkitDeviceInfoPermissionRequestDeny): Regenerate the device id
hash salt when the user does not allow to access the device information.
(webkit_permission_request_interface_init):
(webkitDeviceInfoPermissionRequestDispose):
(webkit_device_info_permission_request_class_init):
(webkitDeviceInfoPermissionRequestCreate): Create the class using
the proxy request from the webprocess and a reference to the
DeviceIdHashSaltStorage.

  • UIProcess/API/glib/WebKitDeviceInfoPermissionRequestPrivate.h:

Ditto.

  • UIProcess/API/glib/WebKitUIClient.cpp: Added the implementation

for the checkUserMediaPermissionForOrigin API for the glib ports,
it creates the device info request and calls the permission
request API.

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes): Added the DeviceIdHashSalt
type.
(toWebKitWebsiteDataTypes): Added the conversion from the WebKit
types to the glib types for the WebsiteDataType::DeviceIdHashSalt.

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(toWebsiteDataTypes): Added the conversion from the glib type
WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT to the WebKit type.
(webkit_website_data_manager_remove): Make sure we remote the
DeviceIdHashSalt if the Cookies are selected.

  • UIProcess/API/gtk/WebKitDeviceInfoPermissionRequest.h: Added

this new class that represents a permission request for the device
information in the GTK+ port.

  • UIProcess/API/gtk/WebKitWebsiteData.h: Added the new type of

website that in the GTK+ port:
WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT.

  • UIProcess/API/wpe/WebKitDeviceInfoPermissionRequest.h: Added

this new class that represents a permission request for the device
information in the WPE port.

  • UIProcess/API/wpe/WebKitWebsiteData.h: Added the new type of

website that in the WPE port:
WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT.

  • UIProcess/DeviceIdHashSaltStorage.cpp: Added this new class that

handles how to generate and store the hash salts inside
WebKit. Persistency is still not implemented, we will add it in a
future patch.
(WebKit::DeviceIdHashSaltStorage::create):
(WebKit::DeviceIdHashSaltStorage::deviceIdentifierHashSaltForOrigin):
Check the map to get the hash salt for an origin, if there is none
create a new random one.
(WebKit::DeviceIdHashSaltStorage::regenerateDeviceIdentifierHashSaltForOrigin):
Delete the hash salt of an origin if it already exists and create a new one.
(WebKit::DeviceIdHashSaltStorage::getDeviceIdHashSaltOrigins):
Returns the list of origins that have a hash salt generated for
them. It is used in the WebsiteDataStore.
(WebKit::DeviceIdHashSaltStorage::deleteDeviceIdHashSaltForOrigins):
Deletes the hash salts in the map for an origin.
(WebKit::DeviceIdHashSaltStorage::deleteDeviceIdHashSaltOriginsModifiedSince):
Delete the origins that have not been modified since a time.

  • UIProcess/DeviceIdHashSaltStorage.h: Ditto.
  • UIProcess/UserMediaPermissionCheckProxy.h: Remove uneeded class

definition.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: Added support to

return and remove the origins with a generate hash salt used to
generate the device ids.
(WebKit::WebsiteDataStore::WebsiteDataStore): Added the new
reference to the DeviceIdHashSaltStorage class, used to handle the
hash salts.
(WebKit::WebsiteDataStore::fetchDataAndApply): Get the list of
origins with a hash salts in the DeviceIdHashSaltStorage.
(WebKit::WebsiteDataStore::removeData): Remove the hash salts in
DeviceIdHashSaltStorage for an origin.

  • UIProcess/WebsiteData/WebsiteDataStore.h: Ditto.

(WebKit::WebsiteDataStore::deviceIdHashSaltStorage):

  • WebKit.xcodeproj/project.pbxproj: Added the

DeviceIdHashSaltStorage to the compilation.

Tools:

Added new API test for the mediaDevices.enumerateDevices:
usermedia-enumeratedevices-permission-check. And a new API test
for the WebsiteDataStore: testWebsiteDataDeviceIdHashSalt.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback): Added a new section to the about:data
webpage to include the information about the hash salt.

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewUserMediaEnumerateDevicesPermissionCheck): Added the
new test checking the enumerateDevices API when permission is
denied and when permission is allowed for the origin.
(beforeAll): Defined the new test.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback): Register a new URI for the enumerateDevices.
(testWebsiteDataConfiguration): Remove the hash salts from the
directories.
(testWebsiteDataDeviceIdHashSalt): New test cheking the
enumerateDevices API.
(beforeAll): Added the new test testWebsiteDataDeviceIdHashSalt to
the init structure.

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::initializeWebView): Make sure the media-stream is
activated in the webView.

LayoutTests:

Remove the failure expectation for the test
media-devices-enumerate-devices.html. Just for the record we have
also checked the following tests.

fast/mediastream/media-devices-enumerate-devices.html
fast/mediastream/resources/enumerate-devices-frame.html
http/tests/media/media-stream/enumerate-devices-source-id.html
http/tests/media/media-stream/enumerate-devices-source-id-persistent.html
http/tests/media/media-stream/resources/enumerate-devices-source-id-frame.html

  • platform/gtk/TestExpectations:

Oct 10, 2018:

10:10 PM Changeset in webkit [237030] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 67

Added a tag for Safari Technology Preview release 67.

9:27 PM Changeset in webkit [237029] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Rename a couple of DOMWindowProperty virtual functions
https://bugs.webkit.org/show_bug.cgi?id=190458

Reviewed by Geoffrey Garen.

Rename a couple of DOMWindowProperty virtual functions as the current naming no longer makes
sense after recent refactoring.

disconnectFrameForDocumentSuspension() was renamed to suspendForPageCache(), and
reconnectFrameFromDocumentSuspension(Frame*) was renamed to resumeFromPageCache().
DOMWindowProperty objects no longer need to disconnect / reconnect from their
frame since they now get their frame from their associated Window. However, some
DOMWindowProperty subclasses do have some page cache suspension / resuming logic
implemented of overrides of these functions.

Also drop the disconnectDOMWindowProperties() / reconnectDOMWindowProperties()
methods in DOMWindow. The naming made little sense as it does not really
disconnect those properties in any way. Instead, inline them in
DOMWindow's suspendForPageCache() / resumeFromPageCache() since these are
the only callers.

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::suspendForPageCache):
(WebCore::DOMWindowIndexedDatabase::resumeFromPageCache):
(WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension): Deleted.
(WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension): Deleted.

  • Modules/indexeddb/DOMWindowIndexedDatabase.h:
  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open):

  • loader/appcache/DOMApplicationCache.cpp:

(WebCore::DOMApplicationCache::suspendForPageCache):
(WebCore::DOMApplicationCache::resumeFromPageCache):
(WebCore::DOMApplicationCache::disconnectFrameForDocumentSuspension): Deleted.
(WebCore::DOMApplicationCache::reconnectFrameFromDocumentSuspension): Deleted.

  • loader/appcache/DOMApplicationCache.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::suspendForPageCache):
(WebCore::DOMWindow::resumeFromPageCache):
(WebCore::DOMWindow::suspendForDocumentSuspension): Deleted.
(WebCore::DOMWindow::resumeFromDocumentSuspension): Deleted.
(WebCore::DOMWindow::disconnectDOMWindowProperties): Deleted.
(WebCore::DOMWindow::reconnectDOMWindowProperties): Deleted.

  • page/DOMWindow.h:
  • page/DOMWindowExtension.cpp:

(WebCore::DOMWindowExtension::suspendForPageCache):
(WebCore::DOMWindowExtension::resumeFromPageCache):
(WebCore::DOMWindowExtension::disconnectFrameForDocumentSuspension): Deleted.
(WebCore::DOMWindowExtension::reconnectFrameFromDocumentSuspension): Deleted.

  • page/DOMWindowExtension.h:
  • page/DOMWindowProperty.cpp:

(WebCore::DOMWindowProperty::suspendForPageCache):
(WebCore::DOMWindowProperty::resumeFromPageCache):
(WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension): Deleted.
(WebCore::DOMWindowProperty::reconnectFrameFromDocumentSuspension): Deleted.

  • page/DOMWindowProperty.h:
9:13 PM Changeset in webkit [237028] by Devin Rousso
  • 23 edits
    2 copies
    7 adds in trunk

Web Inspector: create special Network waterfall for media events
https://bugs.webkit.org/show_bug.cgi?id=189773
<rdar://problem/44626605>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Add didFireEvent event that is fired when specific event listeners added by
InspectorInstrumentation::addEventListenersToNode are fired.

Source/WebCore:

Test: http/tests/inspector/dom/didFireEvent.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::addEventListenersToNode): Added.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::addEventListenersToNodeImpl): Added.

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

(WebCore::EventFiredCallback): Added.
(WebCore::EventFiredCallback::create): Added.
(WebCore::EventFiredCallback::operator==): Added.
(WebCore::EventFiredCallback::handleEvent): Added.
(WebCore::EventFiredCallback::EventFiredCallback): Added.
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::addEventListenersToNode): Added.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Base/Utilities.js:
  • UserInterface/Protocol/DOMObserver.js:

(WI.DOMObserver.prototype.didFireEvent): Added.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.didFireEvent): Added.

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.get domEvents): Added.
(WI.DOMNode.prototype.didFireEvent): Added.
(WI.DOMNode.prototype._addDOMEvent): Added.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.shown):
(WI.NetworkTableContentView.prototype.hidden):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.showRepresentedObject):
(WI.NetworkTableContentView.prototype.networkDetailViewClose): Added.
(WI.NetworkTableContentView.prototype.tableSortChanged):
(WI.NetworkTableContentView.prototype.tableSelectionDidChange):
(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._populateWaterfallGraph.positionByStartOffset): Added.
(WI.NetworkTableContentView.prototype._populateWaterfallGraph.setWidthForDuration): Added.
(WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): Added.
(WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
(WI.NetworkTableContentView.prototype._populateWaterfallGraph):
(WI.NetworkTableContentView.prototype._processPendingEntries):
(WI.NetworkTableContentView.prototype._rowIndexForRepresentedObject): Added.
(WI.NetworkTableContentView.prototype._updateEntryForResource):
(WI.NetworkTableContentView.prototype._hideDetailView): Added.
(WI.NetworkTableContentView.prototype._showDetailView): Added.
(WI.NetworkTableContentView.prototype._positionDetailView): Added.
(WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange):
(WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode):
(WI.NetworkTableContentView.prototype._handleNodeDidFireEvent): Added.
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
(WI.NetworkTableContentView.prototype._urlFilterDidChange):
(WI.NetworkTableContentView.prototype._restoreSelectedRow):
(WI.NetworkTableContentView.prototype._waterfallPopoverContent): Added.
(WI.NetworkTableContentView.prototype._waterfallPopoverContentForResourceEntry): Added.
(WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry): Added.
(WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall): Added.
(WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall): Added.
(WI.NetworkTableContentView.prototype._handleMousedownWaterfall): Added.
(WI.NetworkTableContentView.prototype.networkResourceDetailViewClose): Deleted.
(WI.NetworkTableContentView.prototype._rowIndexForResource): Deleted.
(WI.NetworkTableContentView.prototype._hideResourceDetailView): Deleted.
(WI.NetworkTableContentView.prototype._showResourceDetailView): Deleted.
(WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): Deleted.

  • UserInterface/Views/NetworkTableContentView.css:

(.content-view.network .network-table): Added.
(.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-event): Added.
(.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity): Added.
(.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity.playing): Added.

  • UserInterface/Views/NetworkDOMNodeDetailView.js: Added.

(WI.NetworkDOMNodeDetailView):
(WI.NetworkDOMNodeDetailView.prototype.initialLayout):
(WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier):

  • UserInterface/Views/NetworkResourceDetailView.css:

(.content-view.resource-details):
(.network-resource-detail): Deleted.
(.network-resource-detail .navigation-bar): Deleted.
(.network-resource-detail .item.close > .glyph): Deleted.
(.network-resource-detail .item.close > .glyph:hover): Deleted.
(.network-resource-detail .item.close > .glyph:active): Deleted.
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only): Deleted.
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): Deleted.
(.network-resource-detail > .content-browser): Deleted.
(@media (prefers-dark-interface)): Deleted.

  • UserInterface/Views/NetworkResourceDetailView.js:

(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype.headersContentViewGoToRequestData):
(WI.NetworkResourceDetailView.prototype.sizesContentViewGoToHeaders):
(WI.NetworkResourceDetailView.prototype.sizesContentViewGoToRequestBody):
(WI.NetworkResourceDetailView.prototype.sizesContentViewGoToResponseBody):
(WI.NetworkResourceDetailView.prototype.initialLayout):
(WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
(WI.NetworkResourceDetailView.prototype.get resource): Deleted.
(WI.NetworkResourceDetailView.prototype.hidden): Deleted.
(WI.NetworkResourceDetailView.prototype.dispose): Deleted.
(WI.NetworkResourceDetailView.prototype.willShowWithCookie): Deleted.
(WI.NetworkResourceDetailView.prototype.initialLayout): Deleted.
(WI.NetworkResourceDetailView.prototype._showPreferredContentView): Deleted.
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem): Deleted.
(WI.NetworkResourceDetailView.prototype._navigationItemSelected): Deleted.
(WI.NetworkResourceDetailView.prototype._handleCloseButton): Deleted.

  • UserInterface/Views/NetworkDetailView.js: Added.

(WI.NetworkDetailView):
(WI.NetworkDetailView.prototype.get representedObject):
(WI.NetworkDetailView.prototype.shown):
(WI.NetworkDetailView.prototype.hidden):
(WI.NetworkDetailView.prototype.dispose):
(WI.NetworkDetailView.prototype.willShowWithCookie):
(WI.NetworkDetailView.prototype.initialLayout):
(WI.NetworkDetailView.prototype.createDetailNavigationItem):
(WI.NetworkDetailView.prototype.detailNavigationItemForIdentifier):
(WI.NetworkDetailView.prototype.showContentViewForIdentifier):
(WI.NetworkDetailView.prototype._showPreferredContentView):
(WI.NetworkDetailView.prototype._navigationItemSelected):
(WI.NetworkDetailView.prototype._handleCloseButton):

  • UserInterface/Views/NetworkDetailView.css: Added.

(.network-detail):
(.network-detail .navigation-bar):
(.network-detail .item.close > .glyph):
(.network-detail .item.close > .glyph:hover):
(.network-detail .item.close > .glyph:active):
(.network .network-detail .navigation-bar .item.radio.button.text-only):
(.network .network-detail .navigation-bar .item.radio.button.text-only.selected):
(.network-detail > .content-browser):
(@media (prefers-dark-interface)):
Create base class for detail views shown in the Network tab.

  • UserInterface/Views/DOMNodeEventsContentView.js: Added.

(WI.DOMNodeEventsContentView):
(WI.DOMNodeEventsContentView.prototype.initialLayout):
(WI.DOMNodeEventsContentView.prototype.closed):
(WI.DOMNodeEventsContentView.prototype._handleDOMNodeDidFireEvent):

  • UserInterface/Views/DOMNodeEventsContentView.css: Added.

(.dom-node-details.dom-events):

  • UserInterface/Views/DOMEventsBreakdownView.js: Added.

(WI.DOMEventsBreakdownView):
(WI.DOMEventsBreakdownView.prototype.addEvent):
(WI.DOMEventsBreakdownView.prototype.initialLayout):
(WI.DOMEventsBreakdownView.prototype._populateTable.percentOfTotalTime):
(WI.DOMEventsBreakdownView.prototype._populateTable):

  • UserInterface/Views/DOMEventsBreakdownView.css: Added.

(.waterfall-popover-content .dom-events-breakdown):
(.dom-events-breakdown):
(.dom-events-breakdown table):
(.dom-events-breakdown tr > :matches(th, td)):
(.dom-events-breakdown tbody > tr):
(.dom-events-breakdown .graph):
(.dom-events-breakdown .graph > :matches(.point, .area)):
(.dom-events-breakdown .graph > .point):
(.dom-events-breakdown .time):

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(.resource-timing-breakdown > table > tr.header:not(.total-row) > td): Added.
(.popover.waterfall-popover): Deleted.

LayoutTests:

  • http/tests/inspector/dom/didFireEvent-expected.txt: Added.
  • http/tests/inspector/dom/didFireEvent.html: Added.
  • inspector/unit-tests/array-utilities-expected.txt:
  • inspector/unit-tests/array-utilities.html:
8:08 PM Changeset in webkit [237027] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

[iOS] Cleanup -[WAKView _selfHandleEvent:] and -[WAKWindow sendEventSynchronously:]
https://bugs.webkit.org/show_bug.cgi?id=190402

Reviewed by Anders Carlsson.

Unindent case statements. Remove use of default case statements with body ASSERT_NOT_REACHED()
to catch the cases of a missing enumerator. By omitting the default case statement we turn
such a scenario into a compile-time error instead of handling it as a runtime error.

  • platform/ios/wak/WAKView.mm:

(-[WAKView _selfHandleEvent:]):

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow sendEventSynchronously:]):

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

Safari crashes when attempting to share a YouTube video while in full-screen
https://bugs.webkit.org/show_bug.cgi?id=190456
<rdar://problem/45130748>

Reviewed by Wenson Hsieh.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithParameters:completionHandler:]):
Allow the share sheet to present centered, since we don't have enough
context to put it in a more sensible place.

7:27 PM Changeset in webkit [237025] by rniwa@webkit.org
  • 5 edits in trunk/Source/WebCore

Rename MarkupAccumulator::appendStartTag, appendElement, etc... for clarity
https://bugs.webkit.org/show_bug.cgi?id=190308

Reviewed by Darin Adler.

Renamed appendStartTag and appendEndTag to startAppendingNode and endAppendingNode since serialize any node,
not just elements which produce start and end tags.

Renamed appendElement and appendEndElement to appendStartTag and appendEndTag since that's what they do.

  • editing/MarkupAccumulator.cpp:

(WebCore::elementCannotHaveEndTag): Made this a static local function.
(WebCore::shouldSelfClose): Ditto.
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::startAppendingNode): Renamed from appendStartTag.
(WebCore::MarkupAccumulator::endAppendingNode): Renamed from appendEndElement and merged appendEndMarkup here.
(WebCore::MarkupAccumulator::appendTextSubstring): Deleted. This was only used by StyledMarkupAccumulator.
(WebCore::MarkupAccumulator::appendStringView): Added.
(WebCore::MarkupAccumulator::appendStartTag): Renamed from appendElement.
(WebCore::MarkupAccumulator::appendCloseTag):
(WebCore::MarkupAccumulator::appendNonElementNode): Renamed from appendStartMarkup. No longer serializes
an element. StyledMarkupAccumulator had a check before calling this function already so this clarifies
the purpose of this function.
(WebCore::MarkupAccumulator::appendElement): Deleted.
(WebCore::MarkupAccumulator::appendEndMarkup): Deleted. Merged into appendEndTag.

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::appendNodeEnd): Renamed from appendEndTag.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::wrapWithNode):
(WebCore::StyledMarkupAccumulator::appendStartTag): Renamed from appendElement.
(WebCore::StyledMarkupAccumulator::appendEndTag): Renamed from appendEndElement.
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
(WebCore::StyledMarkupAccumulator::appendNodeToPreserveMSOList): Use String::substring directly instead of
going through appendTextSubstring which has been deleted.

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::appendStartTag): Renamed from appendElement.
(WebCore::PageSerializer::SerializerMarkupAccumulator::appendEndTag): Renamed from appendEndElement.

6:39 PM Changeset in webkit [237024] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Increase executable memory pool from 64MB to 128MB for ARM64
https://bugs.webkit.org/show_bug.cgi?id=190453

Reviewed by Saam Barati.

  • jit/ExecutableAllocator.cpp:
6:25 PM Changeset in webkit [237023] by Fujii Hironori
  • 3 edits in trunk/Tools

Add WinCairo to the flakiness dashboard
https://bugs.webkit.org/show_bug.cgi?id=188345

Reviewed by Lucas Forschler.

  • TestResultServer/static-dashboards/builders.jsonp: Regenerated by generate_builders_json.py.
  • TestResultServer/static-dashboards/flakiness_dashboard.js: Added a new platform 'WINCAIRO'.
6:09 PM Changeset in webkit [237022] by dino@apple.com
  • 3 edits in trunk/Tools

[WHSL -> MSL] Annotate semantics correctly in generated MSL
https://bugs.webkit.org/show_bug.cgi?id=190452
<rdar://problem/45178272>

Reviewed by Myles Maxfield.

Correctly label the appropriate semantics as position?
and color(N)?.

  • WebGPUShadingLanguageRI/Metal/MSLBackend.js: Identify position

and color attributes. Also use the semantic's index rather than
a counter.

  • WebGPUShadingLanguageRI/Metal/WhlslToMsl.html: Use a <pre> for

output, and only include the actual shader code.

5:47 PM Changeset in webkit [237021] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix the build with current SDKs.

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::getPublicKeyComponents):

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

REGRESSION (r236935): Layout test fast/events/ios/keyboard-scrolling-distance.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=190444
<rdar://problem/45110698>

Reviewed by Simon Fraser.

There's a race in WKKeyboardScrollingAnimator that's exacerbated by HIDEventGenerator
being much faster than a human finger. We get our "begin" events from interpretKeyEvent,
after the Web Content process has had its way with it, but currently the
back-channel "handle" events (e.g. for key up, which doesn't go to interpretKeyEvent)
are retrieved from handleKeyWebEvent in the UI process, which is *before*
the Web Content process has had a swing at it.

If you lose the race (an insanely short tap like you get from HIDEventGenerator,
or with a very busy Web Content process), we see handle(keyDown), handle(keyUp), begin(keyDown),
and get stuck scrolling!

Instead, retrieve the out-of-band "handle" events from _didHandleKeyEvent,
so that they're sensibly and strictly ordered with respect to the timing of interpretKeyEvent/"begin".

Also, hook up didFinishScrolling, so that UIScriptController's callbacks work correctly.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView handleKeyWebEvent:]):
(-[WKContentView _didHandleKeyEvent:eventWasHandled:]):
(-[WKContentView keyboardScrollViewAnimatorDidFinishScrolling:]):

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

(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(-[WKKeyboardScrollingAnimator displayLinkFired:]):
(-[WKKeyboardScrollViewAnimator setDelegate:]):
(-[WKKeyboardScrollViewAnimator handleKeyEvent:]):
(-[WKKeyboardScrollViewAnimator didFinishScrolling]):

3:41 PM Changeset in webkit [237019] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r236853): Uncaught Exception: undefined is not an object (evaluating 'entry.resource')
https://bugs.webkit.org/show_bug.cgi?id=190442

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.reset):
It's unnecessary to deselect rows in the WI.Table when we're about to remove them.

3:25 PM Changeset in webkit [237018] by Brent Fulgham
  • 6 edits in trunk

Only report the supported WebGL version
https://bugs.webkit.org/show_bug.cgi?id=190434
<rdar://problem/45024677>

Reviewed by Dean Jackson.

Source/WebCore:

Tested by fast/canvas/webgl/gl-getstring.html

Revise getParameter(gl.VERSION) to only return the WebGL version without the hardware and
driver-specific details available through the low-level OpenGL driver interface. These details
are not needed for WebGL use and expose information about the user's system that we do not
need to share.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getParameter):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter):

LayoutTests:

  • fast/canvas/webgl/gl-getstring-expected.txt:
  • fast/canvas/webgl/gl-getstring.html:
2:52 PM October 2018 Meeting edited by Jon Davis
(diff)
2:50 PM October 2018 Meeting edited by Jon Davis
(diff)
2:49 PM October 2018 Meeting edited by Jon Davis
(diff)
2:23 PM Changeset in webkit [237017] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, add missing headers for inline functions
https://bugs.webkit.org/show_bug.cgi?id=190429

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2:20 PM October 2018 Meeting edited by Jon Davis
Added EWS Updates (diff)
2:18 PM October 2018 Meeting edited by Jon Davis
(diff)
2:02 PM October 2018 Meeting edited by Simon Fraser
(diff)
1:52 PM Changeset in webkit [237016] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: selection in network table is lost when new entries are added
https://bugs.webkit.org/show_bug.cgi?id=190362

Reviewed by Matt Baker.

The _selectedRows list is cleared each time reloadData is called, meaning that
WI.Table expects its "owner" to restore the selection (since it doesn't know how). As a
result, WI.NetworkTableContentView needs to call selectRow _after_ reloadData is
called, not before.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.tableSortChanged):
(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._processPendingEntries):
(WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
(WI.NetworkTableContentView.prototype._updateSort): Added.
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._reloadTable): Added.
(WI.NetworkTableContentView.prototype._resetFilters):
(WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
(WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
(WI.NetworkTableContentView.prototype._urlFilterDidChange):
(WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): Deleted.

  • UserInterface/Views/Table.js:

(WI.Table.prototype.reloadData):
Ensure that the _selectedRowIndex is also reset.

1:29 PM Changeset in webkit [237015] by Ross Kirsling
  • 2 edits in trunk/Tools

build-webkit --inspector-frontend shouldn't have a nonzero exit code
https://bugs.webkit.org/show_bug.cgi?id=190430

Reviewed by Brian Burg.

  • Scripts/webkitdirs.pm:

(argumentsForConfiguration):
--inspector-frontend should only be popped off of argv by determineIsInspectorFrontend;
it shouldn't be re-inserted as a CLI option by argumentsForConfiguration.

1:06 PM Changeset in webkit [237014] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

1:00 PM Changeset in webkit [237013] by Kocsen Chung
  • 4 edits in branches/safari-606.2.104.0-branch

Revert r236977. rdar://problem/45133492

12:05 PM Changeset in webkit [237012] by timothy_horton@apple.com
  • 25 edits
    2 copies
    2 moves
    1 add in trunk

Share more WKShareSheet code between macOS and iOS, and fix a few bugs
https://bugs.webkit.org/show_bug.cgi?id=190420

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/web-share/share-with-no-url.html

  • page/Navigator.cpp:

(WebCore::Navigator::share):

  • page/ShareData.h:

Make 'url' an optional field on ShareDataWithParsedURL, and don't
reject the share() promise if the URL is totally empty (as opposed to invalid).

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _resolutionForShareSheetImmediateCompletionForTesting]):
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]):
(-[WKWebView _invokeShareSheetWithResolution:]): Deleted.
Add a new mechanism to tell the share sheet up-front that it should
immediately dismiss with a particular resolution, for testing.
See the Tools ChangeLog for justification.
We keep the bit on WKWebView instead of WKShareSheet so that it can be
called prior to invoking the share sheet.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/WKShareSheet.h:
  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet initWithView:]):
(-[WKShareSheet presentWithParameters:completionHandler:]):
(-[WKShareSheet sharingServicePicker:didChooseSharingService:]):
(-[WKShareSheet _didCompleteWithSuccess:]):
(-[WKShareSheet dismiss]):
(-[WKShareSheet dispatchDidDismiss]):
(-[WKShareSheet initWithView:initWithView:]): Deleted.
(-[WKShareSheet _dispatchDidDismiss]): Deleted.
(-[WKShareSheet _cancel]): Deleted.
(-[WKShareSheet _dismissDisplayAnimated:]): Deleted.
(-[WKShareSheet _presentFullscreenViewController:animated:]): Deleted.
(-[WKShareSheet invokeShareSheetWithResolution:]): Deleted.
Reduce the number of extraneous members, methods, and #ifdefs.
Try to share as much of WKShareSheet between the platforms as makes sense.
The interface is now totally identical on the two platforms.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::showShareSheet):

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

(-[WKContentView _showShareSheet:completionHandler:]):
(-[WKContentView invokeShareSheetWithResolution:]): Deleted.
Instead of silently failing (without even calling the completion handler!)
if we try to present one share sheet on top of another, dismiss the first
and present the new one. This is important because there are (separately
filed) bugs on both platforms where the completion handler is not called;
now, instead of a tab getting stuck forever, we'll reject the promise
when another share takes place.

Tools:

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution):
(WTR::UIScriptController::invokeShareSheetWithResolution): Deleted.

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution):

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

(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution):
(WTR::UIScriptController::invokeShareSheetWithResolution): Deleted.

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution):
(WTR::UIScriptController::invokeShareSheetWithResolution): Deleted.

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution):
Change the testing mechanism for the share sheet such that we up-front
set that it should immediately return with a particular state, instead
of programmatically dismissing the sheet.

Otherwise, running the tests on macOS doesn't work, because we pop
a context menu, which spins the runloop and prevents dismissal from
going through.

LayoutTests:

  • fast/events/ios/share-expected.txt: Removed.
  • fast/events/ios/share.html: Removed.
  • fast/web-share/share.html: Added.
  • fast/web-share/share-expected.txt: Added.
  • resources/ui-helper.js:

(window.UIHelper.setShareSheetCompletesImmediatelyWithResolution):
(window.UIHelper.invokeShareSheetWithResolution): Deleted.
Move the existing share sheet test to fast/web-share so it runs on both macOS and iOS.

  • fast/web-share/share-with-no-url.html: Added.
  • fast/web-share/share-with-no-url-expected.txt: Added.

Add a new test that the sheet is successfully invoked even when a URL is not provided.

11:43 AM Changeset in webkit [237011] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r236678): Keyboard scrolling with arrow keys doesn't work on iOS
https://bugs.webkit.org/show_bug.cgi?id=190433
<rdar://problem/45111986>

Reviewed by Simon Fraser.

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]): Deleted.
(-[WKKeyboardScrollViewAnimator beginWithEvent:]): Deleted.
r236678 changes the characters in charactersIgnoringModifiers to match AppKit.
We similarly need to update WKKeyboardScrollingAnimator's comparison.

11:34 AM Changeset in webkit [237010] by Devin Rousso
  • 17 edits in trunk

Web Inspector: notify the frontend when a canvas has started recording via console.record
https://bugs.webkit.org/show_bug.cgi?id=190306

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:

Add recordingStarted event.

  • inspector/protocol/Recording.json:

Add Initiator enum for determining who started the recording.

Source/WebCore:

Updated existing tests: LayoutTests/inspector/canvas/recording-2d.html

LayoutTests/inspector/canvas/recording-bitmaprenderer.html
LayoutTests/inspector/canvas/recording-webgl-snapshots.html
LayoutTests/inspector/canvas/recording-webgl.html

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):

  • inspector/InspectorCanvas.h:

Default singleFrame to false to better match the default behaviour of other console
functions (profile doesn't stop until profileEnd is called, so the same should be true
of record and recordEnd).

Source/WebInspectorUI:

  • UserInterface/Protocol/CanvasObserver.js:

(WI.CanvasObserver.prototype.recordingStarted): Added.

  • UserInterface/Protocol/CanvasManager.js:

(WI.CanvasManager.prototype.recordingStarted): Added.

  • UserInterface/Models/Canvas.js:

(WI.Canvas.prototype.startRecording):
(WI.Canvas.prototype.recordingStarted): Added.
(WI.Canvas.prototype.recordingFinished):

LayoutTests:

  • inspector/canvas/recording-2d.html:
  • inspector/canvas/recording-bitmaprenderer.html:
  • inspector/canvas/recording-webgl-snapshots.html:
  • inspector/canvas/recording-webgl.html:
  • inspector/canvas/resources/recording-utilities.js:

(TestPage.registerInitializer.window.startRecording):
Wait to complete the test until the "LastFrame" event is fired, ensuring that any running
commands don't affect the next test case.

11:29 AM Changeset in webkit [237009] by yusukesuzuki@slowstart.org
  • 90 edits in trunk

[JSC] Rename createXXX to tryCreateXXX if it can return RefPtr
https://bugs.webkit.org/show_bug.cgi?id=190429

Reviewed by Saam Barati.

Source/JavaScriptCore:

Some createXXX functions can fail. But sometimes the caller does not perform error checking.
To make it explicit that these functions can fail, we rename these functions from createXXX
to tryCreateXXX. In this patch, we focus on non-JS-managed factory functions. If the factory
function does not fail, it should return Ref<>. Otherwise, it should be named as tryCreateXXX
and it should return RefPtr<>.

This patch mainly focuses on TypedArray factory functions. Previously, these functions are
RefPtr<XXXArray> create(...). This patch changes them to RefPtr<XXXArray> tryCreate(...).
And we also introduce Ref<XXXArray> create(...) function which internally performs
RELEASE_ASSERT on the result of tryCreate(...).

And we also convert OpaqueJSString::create to OpaqueJSString::tryCreate since it can fail.

This change actually finds one place which does not perform any null checkings while it uses
RefPtr<> create(...) function.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::putByIndex):
(JSC::JSCallbackObject<Parent>::deleteProperty):
(JSC::JSCallbackObject<Parent>::callbackGetter):

  • API/JSClassRef.h:

(StaticValueEntry::StaticValueEntry):

  • API/JSContext.mm:

(-[JSContext evaluateScript:withSourceURL:]):
(-[JSContext setName:]):

  • API/JSContextRef.cpp:

(JSGlobalContextCopyName):
(JSContextCreateBacktrace):

  • API/JSObjectRef.cpp:

(JSObjectCopyPropertyNames):

  • API/JSScriptRef.cpp:
  • API/JSStringRef.cpp:

(JSStringCreateWithCharactersNoCopy):

  • API/JSValue.mm:

(+[JSValue valueWithNewRegularExpressionFromPattern:flags:inContext:]):
(+[JSValue valueWithNewErrorFromMessage:inContext:]):
(+[JSValue valueWithNewSymbolFromDescription:inContext:]):
(performPropertyOperation):
(-[JSValue invokeMethod:withArguments:]):
(containerValueToObject):
(objectToValueWithoutCopy):
(objectToValue):

  • API/JSValueRef.cpp:

(JSValueCreateJSONString):
(JSValueToStringCopy):

  • API/OpaqueJSString.cpp:

(OpaqueJSString::tryCreate):
(OpaqueJSString::create): Deleted.

  • API/OpaqueJSString.h:
  • API/glib/JSCContext.cpp:

(evaluateScriptInContext):

  • API/glib/JSCValue.cpp:

(jsc_value_new_string_from_bytes):

  • ftl/FTLLazySlowPath.h:

(JSC::FTL::LazySlowPath::createGenerator):

  • ftl/FTLLazySlowPathCall.h:

(JSC::FTL::createLazyCallGenerator):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::emitOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):

  • ftl/FTLOSRExit.h:
  • ftl/FTLPatchpointExceptionHandle.cpp:

(JSC::FTL::PatchpointExceptionHandle::create):
(JSC::FTL::PatchpointExceptionHandle::createHandle):

  • ftl/FTLPatchpointExceptionHandle.h:
  • heap/EdenGCActivityCallback.h:

(JSC::GCActivityCallback::tryCreateEdenTimer):
(JSC::GCActivityCallback::createEdenTimer): Deleted.

  • heap/FullGCActivityCallback.h:

(JSC::GCActivityCallback::tryCreateFullTimer):
(JSC::GCActivityCallback::createFullTimer): Deleted.

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • inspector/AsyncStackTrace.cpp:

(Inspector::AsyncStackTrace::create):

  • inspector/AsyncStackTrace.h:
  • jsc.cpp:

(fillBufferWithContentsOfFile):

  • runtime/ArrayBuffer.h:
  • runtime/GenericTypedArrayView.h:
  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::tryCreate):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::tryCreateUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::subarray const):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::possiblySharedImpl):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::possiblySharedTypedImpl):
(JSC::JSGenericTypedArrayView<Adaptor>::unsharedTypedImpl):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::create):
(JSC::Wasm::Memory::tryCreate):

  • wasm/WasmMemory.h:
  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::tryCreate):
(JSC::Wasm::Table::create): Deleted.

  • wasm/WasmTable.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::JSWebAssemblyMemory):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::constructJSWebAssemblyMemory):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::constructJSWebAssemblyTable):

Source/WebCore:

Use tryCreate or new create. If we use new create, we can use Ref<> and remove null check.

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::cachedKeyForKeyID const):

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::jsValueWithDictionaryInContext):

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::getChannelData):

  • Modules/webvr/VREyeParameters.cpp:

(WebCore::VREyeParameters::offset const):

  • Modules/webvr/VRFrameData.cpp:

(WebCore::matrixToArray):

  • Modules/webvr/VRPose.cpp:

(WebCore::optionalFloat3ToJSCArray):
(WebCore::VRPose::position const):
(WebCore::VRPose::orientation const):

  • Modules/webvr/VRStageParameters.cpp:

(WebCore::VRStageParameters::sittingToStandingTransform const):

  • bindings/js/ReadableStreamDefaultController.h:

(WebCore::ReadableStreamDefaultController::enqueue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readArrayBufferView):

  • crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:

(WebCore::CryptoKeyRSA::algorithm const):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::algorithm const):

  • css/DOMMatrixReadOnly.cpp:

(WebCore::DOMMatrixReadOnly::toFloat32Array const):
(WebCore::DOMMatrixReadOnly::toFloat64Array const):

  • css/FontFace.cpp:

(WebCore::FontFace::create):

  • dom/TextEncoder.cpp:

(WebCore::TextEncoder::encode const):

  • html/ImageData.cpp:

(WebCore::ImageData::ImageData):

  • html/ImageData.h:

(WebCore::ImageData::data const):
(): Deleted.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::bufferData):
(WebCore::WebGL2RenderingContext::bufferSubData):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::getParameter):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getVertexAttrib):
(WebCore::WebGLRenderingContextBase::getWebGLFloatArrayParameter):
(WebCore::WebGLRenderingContextBase::getWebGLIntArrayParameter):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::extractKeyURIKeyIDAndCertificateFromInitData):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::generateKeyRequest):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::shouldWaitForLoadingOfResource):

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

(WebCore::CDMSessionAVContentKeySession::generateKeyRequest):
(WebCore::CDMSessionAVContentKeySession::releaseKeys):
(WebCore::CDMSessionAVContentKeySession::update):
(WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage):

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

(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):

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

(WebCore::CDMSessionAVStreamSession::generateKeyRequest):
(WebCore::CDMSessionAVStreamSession::releaseKeys):
(WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

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

(WebCore::MediaSampleAVFObjC::getRGBAImageData const):

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

(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::getImageData):

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData const):

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::platformApplySoftware):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::unmultipliedResult):
(WebCore::FilterEffect::premultipliedResult):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData const):

  • platform/mac/SerializedPlatformRepresentationMac.mm:

(WebCore::jsValueWithDictionaryInContext):

  • platform/mock/mediasource/MockBox.cpp:

(WebCore::MockBox::peekType):
(WebCore::MockBox::peekLength):
(WebCore::MockTrackBox::MockTrackBox):
(WebCore::MockInitializationBox::MockInitializationBox):
(WebCore::MockSampleBox::MockSampleBox):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • testing/LegacyMockCDM.cpp:

(WebCore::initDataPrefix):
(WebCore::keyPrefix):
(WebCore::keyRequest):

Source/WebKit:

Use tryCreate or new create. If we use new create, we can use Ref<> and remove null check.

  • Shared/API/c/WKString.cpp:

(WKStringCopyJSString):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::toJSValue):
(WebKit::callPropertyFunction):
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame):
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::runScriptsInPDFDocument):

Source/WebKitLegacy/ios:

Use tryCreate or new create. If we use new create, we can use Ref<> and remove null check.

  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView finishedLoadingWithDataSource:]):

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder _evaluateJSForDocument:]):

Source/WebKitLegacy/mac:

Use tryCreate or new create. If we use new create, we can use Ref<> and remove null check.

  • WebView/WebPDFRepresentation.mm:

(-[WebPDFRepresentation finishedLoadingWithDataSource:]):

Tools:

  • TestWebKitAPI/Tests/WebCore/mac/GPUBuffer.mm:

(TestWebKitAPI::TEST_F):

11:21 AM Changeset in webkit [237008] by Chris Dumez
  • 9 edits in trunk

Regression(PSON): Assertion hit under WebPageProxy::didNavigateWithNavigationData()
https://bugs.webkit.org/show_bug.cgi?id=190418
<rdar://problem/45059769>

Reviewed by Geoffrey Garen.

Source/WebKit:

When process swapping and "suspending" the previous WebProcess in a SuspendedPageProxy,
we need to keep around the main frame's ID that still exists on in this process. This
is needed so that we can re-create a UI-side WebFrameProxy for the WebFrame that exists
in the WebProcess, if we ever swap back to this suspended process (see login in
WebPageProxy::swapToWebProcess()).

The bug was that the main frame ID was stored on the WebPageProxy via m_mainFrameID instead of the
SuspendedPageProxy. This means that m_mainFrameID would get overriden when navigating in the new
WebProcess with the value 1 (because WebFrame identifiers start at 1 and are per-WebProcess).
This would lead to us constructing a WebFrameProxy with the wrong frame identifier in
WebPageProxy::swapToWebProcess(), which would override an existing unrelated WebFrame in the
WebProcessProxy's HashMap of frames. This would lead to crashes later on as the WebFrame
would not be associated to the WebPageProxy we expect.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):

  • UIProcess/SuspendedPageProxy.h:

(WebKit::SuspendedPageProxy::mainFrameID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeCreateSuspendedPage):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didCreateMainFrame):

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

(WebKit::WebProcessProxy::suspendWebPageProxy):

  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:20 AM Changeset in webkit [237007] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Compare input string to UIKeyInput constants using string comparison instead of pointer comparison
https://bugs.webkit.org/show_bug.cgi?id=190432

Reviewed by Tim Horton.

Pointer comparision is brittle. We should be more forgiving and perform string comparision
of an input string to a UIKeyInput constant.

  • platform/ios/WebEvent.mm:

(normalizedStringWithAppKitCompatibilityMapping):

11:01 AM Changeset in webkit [237006] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: indent all network entries when "Group by Node" is checked
https://bugs.webkit.org/show_bug.cgi?id=190388

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table.grouped .data-container .cell.name): Added.
(.network-table.grouped .data-container .cell:not(.parent).name): Added.
(.network-table.grouped .data-container .cell.child.name): Added.
(.network-table .cell.grouped-by-node.name): Deleted.
(body[dir=ltr] .network-table .cell.grouped-by-node.name): Deleted.
(body[dir=rtl] .network-table .cell.grouped-by-node.name): Deleted.
Apply a padding to all nodes when the WI.Table is grouped.

10:45 AM Changeset in webkit [237005] by Alan Coon
  • 7 edits in tags/Safari-607.1.10.1/Source

Versioning.

10:41 AM Changeset in webkit [237004] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit

Do domain prewarming for processes for new tabs
https://bugs.webkit.org/show_bug.cgi?id=190425

Reviewed by Chris Dumez.

We currently only do domain prewarming for navigation process swaps.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

Do domain prewarming when using an existing but so far unused process.

(WebKit::WebProcessPool::tryPrewarmWithDomainInformation):

Factor into a function.

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

(WebKit::WebPage::close):

This didn't usually get invoked.

(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::didFinishLoad):

Update prewarm information when a top level load finishes.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::sendPrewarmInformation):

  • WebProcess/WebProcess.h:
10:16 AM Changeset in webkit [237003] by Alan Coon
  • 1 copy in tags/Safari-607.1.10.1

New tag.

9:55 AM October 2018 Meeting edited by Simon Fraser
(diff)
9:53 AM October 2018 Meeting edited by Simon Fraser
(diff)
9:53 AM October 2018 Meeting edited by Simon Fraser
(diff)
9:30 AM Changeset in webkit [237002] by Chris Dumez
  • 4 edits in trunk

Unreviewed, rolling out r236802.

Working on getting the HTML spec updated instead
(https://github.com/whatwg/html/pull/4079)

Reverted changeset:

"Passing noopener=NOOPENER to window.open() should cause the
new window to not have an opener"
https://bugs.webkit.org/show_bug.cgi?id=190251
https://trac.webkit.org/changeset/236802

8:22 AM October 2018 Meeting edited by Jon Davis
Schedule change (diff)
6:33 AM Changeset in webkit [237001] by guijemont@igalia.com
  • 5 edits in trunk/Tools

[JSCOnly Add an armv7 JSCOnly EWS that runs tests
https://bugs.webkit.org/show_bug.cgi?id=190191

Reviewed by Michael Catanzaro.

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

(DeprecatedPort.run_javascriptcore_tests_command):
Add the possibility to pass arguments to run-javascriptcore-tests with
the JSCTESTS_OPTIONS environment variable

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

(test_ews_name):

4:39 AM Changeset in webkit [237000] by guijemont@igalia.com
  • 2 edits in trunk/JSTests

Skip JSC test stress/sampling-profiler-richards.js on armv7/linux
https://bugs.webkit.org/show_bug.cgi?id=190426

Unreviewed gardening.

  • stress/sampling-profiler-richards.js:
1:48 AM Changeset in webkit [236999] by yusukesuzuki@slowstart.org
  • 4 edits in trunk/Source/WebCore

XMLHttpRequest should use reportExtraMemoryAllocated/reportExtraMemoryVisited instead of deprecatedReportExtraMemory
https://bugs.webkit.org/show_bug.cgi?id=190279

Reviewed by Ryosuke Niwa.

This patch switches deprecatedReportExtraMemory to reportExtraMemoryAllocated/reportExtraMemoryVisited
in XMLHttpRequest. We report extra memory allocation when the readyState becomes DONE. And memoryCost
function returns the memory cost which is based on the readyState and m_responseBuilder.
We annotate XMLHttpRequest with ReportExtraMemoryCost to use reportExtraMemoryVisited automatically with
memoryCost() function.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::changeState):
(WebCore::XMLHttpRequest::abort):
(WebCore::XMLHttpRequest::internalAbort):
(WebCore::XMLHttpRequest::networkErrorTimerFired):
(WebCore::XMLHttpRequest::memoryCost const):
(WebCore::XMLHttpRequest::didFinishLoading):
(WebCore::XMLHttpRequest::didReachTimeout):
(WebCore::XMLHttpRequest::dropProtection): Deleted.

  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:

Oct 9, 2018:

11:55 PM Changeset in webkit [236998] by graouts@webkit.org
  • 27 edits in trunk

Remove the frames() timing function
https://bugs.webkit.org/show_bug.cgi?id=190034
<rdar://problem/44827544>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
  • web-platform-tests/css-timing-1/frames-timing-functions-syntax-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt:
  • web-platform-tests/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt:
  • web-platform-tests/web-animations/timing-model/time-transformations/transformed-progress-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTimingFunctionValue):

  • css/CSSTimingFunctionValue.cpp:

(WebCore::CSSFramesTimingFunctionValue::customCSSText const): Deleted.
(WebCore::CSSFramesTimingFunctionValue::equals const): Deleted.

  • css/CSSTimingFunctionValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isStepsTimingFunctionValue const):
(WebCore::CSSValue::isFramesTimingFunctionValue const): Deleted.

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

(WebCore::consumeAnimationTimingFunction):
(WebCore::consumeFrames): Deleted.

  • platform/animation/TimingFunction.cpp:

(WebCore::operator<<):
(WebCore::TimingFunction::transformTime const):
(WebCore::TimingFunction::createFromCSSValue):

  • platform/animation/TimingFunction.h:

(WebCore::TimingFunction::isStepsTimingFunction const):
(WebCore::TimingFunction::isFramesTimingFunction const): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::animationCanBeAccelerated const):
(WebCore::animationHasFramesTimingFunction): Deleted.

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FramesTimingFunction>::encode): Deleted.
(IPC::ArgumentCoder<FramesTimingFunction>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::Properties::encode const):
(WebKit::PlatformCAAnimationRemote::Properties::decode):

LayoutTests:

  • legacy-animation-engine/transitions/frames-timing-function-expected.txt:
  • legacy-animation-engine/transitions/transitions-parsing-expected.txt:
  • transitions/frames-timing-function-expected.txt:
  • transitions/transitions-parsing-expected.txt:
8:43 PM Changeset in webkit [236997] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

Performance dashboard should show added iterations due failed build requests.
https://bugs.webkit.org/show_bug.cgi?id=190419

Reviewed by Ryosuke Niwa.

Added UI to show added build requests due to previous failed build requests.
Updated the retry/bisect button to default to initial repetition count when test group is created.

  • public/v3/pages/analysis-task-page.js: Added a div to show added build requests.

Retry and bisect button should default to initial repetion count.
(AnalysisTaskTestGroupPane.prototype._renderCurrentTestGroup):
(AnalysisTaskTestGroupPane.cssTemplate):

8:15 PM Changeset in webkit [236996] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

ManifestGenerator shouldn't need more than 1GB of memory or run for 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=190393

Reviewed by Antti Koivisto and unofficially reviewed by Dewei Zhu.

This patch reduces the runtime of /api/manifest from 13s to 7s and reduces the memory requirement from
1GB to 400MB for the internal dashboard in my local testing.

The biggest perf win comes from avoid running a complex query over test_configurations to compute
the latest modified date across different test configuration types ("current" vs. "baseline").
Instead, we now fetch the entire table row by row and compute the latest modified date in memory.

Also call intval in many more places to avoid generating double quotes, which is a pretty significant
proportion of the JSON file size at this point.

Finally, use references in more places to avoid deep copying of arrays.

  • public/include/manifest-generator.php:

(ManifestGenerator::generate): Skip the generation of "dashboard" since it's only used by v1 UI.
(ManifestGenerator::tests): Don't copy each row.
(ManifestGenerator::metrics): Ditto.
(ManifestGenerator::platforms): Implement the aforementioned optimization. Instead of grouping
test configurations for a given metric and platform together, fetch them all and do in-memory
processing in PHP. Avoid more copying as well.
(ManifestGenerator::repositories): Avoid more copying.
(ManifestGenerator::bug_trackers): Ditto.
(ManifestGenerator::fetch_triggerables): Ditto.

7:49 PM Changeset in webkit [236995] by Devin Rousso
  • 21 edits
    3 adds in trunk

Web Inspector: show redirect requests in Network and Timelines tabs
https://bugs.webkit.org/show_bug.cgi?id=150005
<rdar://problem/5378164>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Network.json:

Add missing fields to ResourceTiming.

Source/WebCore:

Updated existing test http/tests/inspector/network/resource-timing.html.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::didFinishLoading):
Add missing fields for Network.types.ResourceTiming.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/Variables.css:
  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.resourceRequestWillBeSent):

  • UserInterface/Models/Resource.js:

(WI.Resource):
(WI.Resource.prototype.get redirects): Added.
(WI.Resource.prototype.get lastRedirectReceivedTimestamp):
(WI.Resource.prototype.updateForRedirectResponse):
Save each redirect in an array instead of just remembering the last timestamp.

  • UserInterface/Models/ResourceTimingData.js:

(WI.ResourceTimingData):
(WI.ResourceTimingData.fromPayload.offsetToTimestamp):
(WI.ResourceTimingData.fromPayload):
(WI.ResourceTimingData.prototype.get redirectStart): Added.
(WI.ResourceTimingData.prototype.get redirectEnd): Added.
(WI.ResourceTimingData.prototype.get fetchStart): Added.
Add missing fields for Network.types.ResourceTiming.

  • UserInterface/Models/Redirect.js: Added.

(WI.Redirect):
(WI.Redirect.prototype.get url):
(WI.Redirect.prototype.get requestMethod):
(WI.Redirect.prototype.get requestHeaders):
(WI.Redirect.prototype.get responseStatusCode):
(WI.Redirect.prototype.get responseStatusText):
(WI.Redirect.prototype.get responseHeaders):
(WI.Redirect.prototype.get timestamp):
(WI.Redirect.prototype.get urlComponents):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView):
(WI.ResourceHeadersContentView.prototype.initialLayout):
(WI.ResourceHeadersContentView.prototype.layout):
(WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections): Added.
(WI.ResourceHeadersContentView.prototype._resourceRequestHeadersDidChange):

  • UserInterface/Views/ResourceHeadersContentView.css:

(body[dir] .resource-headers > section.summary > .details): Added.
(body[dir] .resource-headers > section:matches(.redirect, .headers) > .details): Added.
(.resource-headers .details .key):
(.resource-headers .summary .key):
(body[dir] .resource-headers > section > .details): Deleted.
(body[dir] .resource-headers > section.headers > .details): Deleted.
(.resource-headers .value): Deleted.
Add a request/response header section for each redirect.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
(WI.NetworkTableContentView.prototype._populateWaterfallGraph):
(WI.NetworkTableContentView.prototype._checkURLFilterAgainstResource):
(WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):

  • UserInterface/Views/NetworkTableContentView.css:

(.waterfall .block.redirect): Added.
(.waterfall .block.queue):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):

  • UserInterface/Views/ResourceTimingBreakdownView.js:

(WI.ResourceTimingBreakdownView.prototype.initialLayout):
Add timeline/waterfall entries for total redirect time.

LayoutTests:

  • http/tests/inspector/network/resource-timing-expected.txt:
  • http/tests/inspector/network/resource-timing.html:
  • http/tests/inspector/network/resources/delay.php: Added.
  • http/tests/inspector/network/resources/redirect.php: Added.
6:01 PM October 2018 Meeting edited by Simon Fraser
(diff)
6:00 PM October 2018 Meeting edited by Simon Fraser
(diff)
5:31 PM Changeset in webkit [236994] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: m_cachesLocks.contains(sessionID) in WebKit::CacheStorageEngineConnection::dereference(PAL::SessionID, unsigned long long)
https://bugs.webkit.org/show_bug.cgi?id=190373
<rdar://problem/45106402>

Reviewed by Alex Christensen.

This assertion can be hit if:

  • WebProcess has a DOMCache
  • NetworkProcess crashes
  • WebProcess navigates and dereference DOMCache.

Remove this assertion as it is hit when a test is using testRunner.terminateNetworkProcess().

  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:

(WebKit::CacheStorageEngineConnection::dereference):

5:28 PM Changeset in webkit [236993] by guijemont@igalia.com
  • 4 edits in trunk/Tools

Allow run-javascriptcore-tests to distribute tests between devices
https://bugs.webkit.org/show_bug.cgi?id=190190

Reviewed by Michael Catanzaro.

  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitruby/jsc-stress-test-writer-default.rb:
  • Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:
5:23 PM Changeset in webkit [236992] by dino@apple.com
  • 7 edits
    1 add in trunk/Tools

Update WHLSL to Metal tester with semantics
https://bugs.webkit.org/show_bug.cgi?id=190416
<rdar://problem/45145139>

Reviewed by Myles Maxfield.

A few small changes to the WHLSL to Metal tools:

  • Make it compile by adding some missing JS files :)
  • Add semantics to the default shader
  • Add FIXMEs to the other shaders
  • Create an in-browser test for the WHLSLToMetal codepath
  • Fix typos in the semantics checker
  • WebGPUShadingLanguageRI/Checker.js:

(Checker.prototype._checkSemantics.checkSemanticTypes):
(Checker.prototype._checkSemantics.checkSemanticForShaderType):

  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Compiler.m:
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Default.whlsl:
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Julia.whlsl:
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Mandelbrot.whlsl:
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj:
  • WebGPUShadingLanguageRI/Metal/WhlslToMsl.html: Added.
5:22 PM WebKitGTK/2.22.x edited by Michael Catanzaro
Propose some more backports (diff)
4:59 PM Changeset in webkit [236991] by Said Abou-Hallawa
  • 5 edits
    2 adds in trunk

REGRESSION(r234620): SVGLangSpace::svgAttributeChanged() should invalidate the renderer of the SVGGeometryElement descendant only
https://bugs.webkit.org/show_bug.cgi?id=190411

Reviewed by Simon Fraser.

Source/WebCore:

Test: svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr.html

When changing the attributes of the SVGLangSpace, we should invalidate
the renderer of the SVGGeometryElement descendant only. Renderer of other
elements, like SVGStopElement, should not be invalidated because they do
not have geometry and they can be used as resources for drawing another
SVGGeometryElement.

  • svg/SVGElement.h:

(WebCore::SVGElement::isSVGGeometryElement const):

  • svg/SVGGeometryElement.h:

(isType):

  • svg/SVGLangSpace.cpp:

(WebCore::SVGLangSpace::svgAttributeChanged):

LayoutTests:

  • svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr-expected.txt: Added.
  • svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr.html: Added.
4:56 PM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
4:46 PM Changeset in webkit [236990] by jer.noble@apple.com
  • 4 edits
    1 add in trunk

Crash when closing WKWebView during enter fullscreen animation
https://bugs.webkit.org/show_bug.cgi?id=190412

Reviewed by Brian Burg.

Source/WebKit:

We need a valid _webView if, during -[NSWindow close], we catch a notification saying we failed to enter
fullscreen and try to replace the placeholder with the actual _webView.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController close]):

Tools:

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

(-[CloseWebViewDuringEnterFullscreenUIDelegate _webViewWillEnterFullscreen:]):
(-[CloseWebViewDuringEnterFullscreenUIDelegate _webViewWillExitFullscreen:]):
(TestWebKitAPI::TEST):

4:40 PM Changeset in webkit [236989] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r231663) loading in hidden WKWebViews stalls because WebProcess is suspended
https://bugs.webkit.org/show_bug.cgi?id=190417
<rdar://problem/43391014>

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::didChangeIsLoading):
Revert r321663, but keep the change to TestWKWebView.mm because that made the tests more reliable.

4:25 PM Changeset in webkit [236988] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Allow behavior when the parent process IPC::Connection closes to be overridden by ChildProcess subclasses
https://bugs.webkit.org/show_bug.cgi?id=190294

Reviewed by Geoffrey Garen.

Allow behavior when the parent process IPC::Connection closes to be overridden by ChildProcess subclasses.
This will be useful to allow the NetworkProcess to not exit if it still has pending downloads.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::callExitSoon):
(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.cpp:

(WebKit::callExit):
(WebKit::PluginProcess::initializeConnection):

  • PluginProcess/PluginProcess.h:
  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::didClose):
(WebKit::ChildProcess::initialize):
(WebKit::callExitNow): Deleted.
(WebKit::callExitSoon): Deleted.

  • Shared/ChildProcess.h:

(WebKit::ChildProcess::shouldCallExitWhenConnectionIsClosed const): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::callExit):
(WebKit::WebProcess::initializeConnection):

4:21 PM Changeset in webkit [236987] by Chris Dumez
  • 16 edits
    4 adds in trunk

Anchor target should be ignored on activation when the download attribute is set
https://bugs.webkit.org/show_bug.cgi?id=190408

Reviewed by Geoffrey Garen.

Source/WebCore:

Anchor target should be ignored on activation when the download attribute is set:

When the download attribute is set, we should use the "download the hyperlink" algorithm [1]
instead of the "follow the hyperlink" [2] algorithm.

Note that the "download the hyperlink" triggers a download and ignores the target attribute
entirely.

This is important as an anchor element with target=_blank and the download attribute set may
fail because of Safari's popup blocker if we do not disregard the anchor target.

[1] https://html.spec.whatwg.org/#downloading-hyperlinks
[2] https://html.spec.whatwg.org/#following-hyperlinks-2

Tests: fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed.html

fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

Tools:

Update WebKitTestRunner to block popups by default and add support for testRunner.setCanOpenWindows()
for tests that need popups. This aligns WebKitTestRunner with DumpRenderTree and allows testing
popup blocking.

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

(WTR::TestRunner::setCanOpenWindows):

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

(WTR::TestController::createOtherPage):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed.html: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed.html: Added.

Add layout test coverage.

  • http/tests/download/anchor-load-after-download.html:
  • http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:

Update existing WK2-only layout tests to call testRunner.setCanOpenWindows() since they rely on
opening a new window. We failed to notice the issue because these tests are not run on WK1.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:

Skip new tests on WebKit1 since the download attribute is only supported on WebKit2.

3:31 PM Changeset in webkit [236986] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas Tab: grayed out Record button in navigator is nearly invisible
https://bugs.webkit.org/show_bug.cgi?id=190365
<rdar://problem/45097739>

Reviewed by Brian Burg.

  • UserInterface/Views/CanvasSidebarPanel.css:

(@media (prefers-dark-interface)): Added.
(.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Added.

3:19 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
2:59 PM Changeset in webkit [236985] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[WPE][GTK] Complex text crashes with harfbuzz 1.8.8
https://bugs.webkit.org/show_bug.cgi?id=190409

Reviewed by Žan Doberšek.

We discovered that harfbuzz 1.8.8 breaks WebKit by changing the ownership semantics of
hb_icu_get_unicode_funcs() from (transfer full) to (transfer none). Our code was actually
expecting (transfer none), so it's not immediately clear to me why it's crashing now, but
doesn't matter as Behdad recommends removing this line of code because it hasn't been
been needed for many years.

This should be covered by all our complex text tests if the bots were upgraded to the newer
harfbuzz.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

2:45 PM Changeset in webkit [236984] by jer.noble@apple.com
  • 4 edits
    1 add in trunk

WebDriver: thrown ObjC exception under -[WKFullScreenWindowController windowDidFailToEnterFullScreen:] when session is terminated
https://bugs.webkit.org/show_bug.cgi?id=190098
<rdar://problem/42822671>

Reviewed by Brian Burg.

Source/WebKit:

Forcibly exit fullscreen in resetState(), while the VideoFullscreenManagerProxy is still valid.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

Tools:

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

(-[CloseWebViewAfterEnterFullscreenUIDelegate _webViewDidEnterFullscreen:]):
(-[CloseWebViewAfterEnterFullscreenUIDelegate _webViewDidExitFullscreen:]):
(TestWebKitAPI::TEST):

2:36 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
2:31 PM Changeset in webkit [236983] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Cleanup EventHandler::passSubframeEventToSubframe()
https://bugs.webkit.org/show_bug.cgi?id=190390

Reviewed by Wenson Hsieh.

Unindent case statements in switch block and use more auto.

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::passSubframeEventToSubframe):

2:30 PM Changeset in webkit [236982] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup WebEvent.mm
https://bugs.webkit.org/show_bug.cgi?id=190391

Reviewed by Wenson Hsieh.

Unindent case statements in switch blocks.

  • platform/ios/WebEvent.mm:

(-[WebEvent _typeDescription]):
(-[WebEvent _modiferFlagsDescription]):
(-[WebEvent _touchPhaseDescription:]):
(-[WebEvent _eventDescription]):

2:29 PM Changeset in webkit [236981] by dbates@webkit.org
  • 6 edits in trunk/Source/WebKit

[iOS] Ignore some deprecated declarations
https://bugs.webkit.org/show_bug.cgi?id=190371

Reviewed by Dan Bernstein.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet init]):
(-[WKActionSheet presentSheet:]):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant presentSheet]):

  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKMultipleSelectPicker initWithView:]):

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectTableViewController initWithView:hasGroups:]):

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

Unreviewed, skip fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html on iOS.

The download attribute is not supported on iOS yet.

  • platform/ios-wk2/TestExpectations:
1:11 PM Changeset in webkit [236979] by commit-queue@webkit.org
  • 5 edits
    13 adds in trunk

Resolve inset properties to computed style when there is overconstraintment
https://bugs.webkit.org/show_bug.cgi?id=188711

Patch by Oriol Brufau <Oriol Brufau> on 2018-10-09
Reviewed by Manuel Rego Casasnovas.

This patch makes WebKit behave closer to Blink. Specifically,

  • In overconstrained relative or absolute positioning, inset properties resolve to the computed value (absolutizing percentages) instead of to the used value.
  • In fixed positioning, the resolved value of non-'auto' values is no longer increased by the border of the containg block.

LayoutTests/imported/w3c:

Some tests still have failures due to

This patch can slighlty alter the resolved value if it's a long decimal number,
that's why test expectations for the timing functions test changed.

  • web-platform-tests/css-timing-1/cubic-bezier-timing-functions-output-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-insets-absolute-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-absolute.html: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-fixed-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-fixed.html: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-nobox-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-nobox.html: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-relative-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-relative.html: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-static-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-static.html: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-sticky-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html: Added.
  • web-platform-tests/css/cssom/support/getComputedStyle-insets.js: Added.

(serialize):
(wmName):
(checkStyle):
(runTestsWithWM):
(export.runTests):

Source/WebCore:

This patch can slighlty alter the resolved value if it's a long decimal number.

Tests: imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-absolute.html

imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-fixed.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-nobox.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-relative.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-static.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):

  • rendering/RenderBox.h:
1:04 PM Changeset in webkit [236978] by Kocsen Chung
  • 7 edits in branches/safari-606.2.104.0-branch/Source

Versioning.

12:52 PM Changeset in webkit [236977] by Alan Coon
  • 4 edits in branches/safari-606.2.104.0-branch

Cherry-pick r236945. rdar://problem/45133492

CrashTracer: backboardd at Recursion
QuartzCore: CA::Render::Updater::prepare_sublayer0 https://bugs.webkit.org/show_bug.cgi?id=190376 <rdar://problem/44986520>

Reviewed by Tim Horton.

Source/WebCore:

Very deep CoreAnimation layer trees can cause problems. Reduce our maximum
depth from 256 to 128.

Modified existing test: compositing/layer-creation/deep-tree.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: Cap the depth at 128.

LayoutTests:

  • compositing/layer-creation/deep-tree.html:

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

12:32 PM Changeset in webkit [236976] by jiewen_tan@apple.com
  • 5 edits
    10 adds in trunk

[WebAuthN] Import CTAP HID message and packet structure from Chromium
https://bugs.webkit.org/show_bug.cgi?id=189289
<rdar://problem/44120310>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch imports CTAP HID message and packet structure:
https://fidoalliance.org/specs/fido-v2.0-ps-20170927/fido-client-to-authenticator-protocol-v2.0-ps-20170927.html#message-and-packet-structure
from Chromium. With this library, WebKit can now turn binaries into messages that CTAP devices could understand.
This patch contains the following Chromium files and modifies them to fit into WebKit:
https://cs.chromium.org/chromium/src/device/fido/fido_constants.cc?l=1&rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75
https://cs.chromium.org/chromium/src/device/fido/fido_constants.h?l=1&rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75
https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_message.cc?l=1&rcl=387f3725de2842e0e6b7175a9b2ed472b0cf781a
https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_message.h?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75
https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_packet.cc?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75
https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_packet.h?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75
https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_message_unittest.cc?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75

Covered by API tests.

  • Modules/webauthn/fido/FidoConstants.cpp: Added.

(fido::isFidoHidDeviceCommand):

  • Modules/webauthn/fido/FidoConstants.h: Added.
  • Modules/webauthn/fido/FidoHidMessage.cpp: Added.

(fido::FidoHidMessage::create):
(fido::FidoHidMessage::createFromSerializedData):
(fido::FidoHidMessage::messageComplete const):
(fido::FidoHidMessage::getMessagePayload const):
(fido::FidoHidMessage::popNextPacket):
(fido::FidoHidMessage::addContinuationPacket):
(fido::FidoHidMessage::numPackets const):
(fido::FidoHidMessage::FidoHidMessage):

  • Modules/webauthn/fido/FidoHidMessage.h: Added.
  • Modules/webauthn/fido/FidoHidPacket.cpp: Added.

(fido::FidoHidPacket::FidoHidPacket):
(fido::FidoHidInitPacket::createFromSerializedData):
(fido::FidoHidInitPacket::FidoHidInitPacket):
(fido::FidoHidInitPacket::getSerializedData const):
(fido::FidoHidContinuationPacket::createFromSerializedData):
(fido::FidoHidContinuationPacket::FidoHidContinuationPacket):
(fido::FidoHidContinuationPacket::getSerializedData const):

  • Modules/webauthn/fido/FidoHidPacket.h: Added.
  • Modules/webauthn/fido/FidoParsingUtils.cpp: Added.

(fido::getInitPacketData):
(fido::getContinuationPacketData):

  • Modules/webauthn/fido/FidoParsingUtils.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Tools:

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

(TestWebKitAPI::TEST):

12:25 PM Changeset in webkit [236975] by Claudio Saavedra
  • 4 edits in trunk/Source

[WPE] Explicitly link against gmodule where used
https://bugs.webkit.org/show_bug.cgi?id=190398

Reviewed by Michael Catanzaro.

  • PlatformWPE.cmake:
12:23 PM Changeset in webkit [236974] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[CoordGraphics] Remove the 'previous backing store' logic
https://bugs.webkit.org/show_bug.cgi?id=188838

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-10-09
Reviewed by Žan Doberšek.

Remove previousBackingStore from LayerState, since it's not needed anymore.
When there is scale adjustment, we now simply discard mainBackingStore and
recreate a new one.

No new tests required.

  • platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):

12:09 PM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
12:04 PM Changeset in webkit [236973] by Chris Dumez
  • 6 edits in trunk

PSON: Doing a cross-site navigation via the URL bar does not swap process on iOS
https://bugs.webkit.org/show_bug.cgi?id=190378
<rdar://problem/45059466>

Reviewed by Geoffrey Garen.

Source/WebKit:

Process swapping was sometimes not happening via URL bar navigation on iOS due to top-hit preloading,
which would use a new WKWebView for the speculative load and rely on the _relatedWebView SPI to use
the same WebContent process as the view currently on screen.

To address the issue, if the source URL is empty and the page has a related page, use the related
page's URL as source URL when doing the process-swap decision.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::relatedPage const):
(API::PageConfiguration::relatedPage): Deleted.

  • UIProcess/API/APIPageConfiguration.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
12:04 PM Changeset in webkit [236972] by Devin Rousso
  • 5 edits in trunk

Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
https://bugs.webkit.org/show_bug.cgi?id=190403

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype._removeCanvas):
Clear the shaderProgramCollection when a WI.Canvas is removed so that a remove event is
fired for each WI.ShaderProgram.

LayoutTests:

  • inspector/canvas/create-context-webmetal.html:

Fix missing parenthesis.

  • inspector/canvas/resources/shaderProgram-utilities.js:

(createProgram):
(TestPage.registerInitializer.awaitProgramAdded):
(TestPage.registerInitializer):
(TestPage.registerInitializer.window.initializeTestSuite):
Replace the WI.CanvasManager events (which were removed) with listeners for events on the
specific WI.Canvas.

11:38 AM Changeset in webkit [236971] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[PSON] Prewarm system UI font
https://bugs.webkit.org/show_bug.cgi?id=190397

Reviewed by Geoffrey Garen.

Cache system UI font fallbacks. Almost every web process needs these.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

11:25 AM Changeset in webkit [236970] by Chris Dumez
  • 5 edits
    2 adds in trunk

REGRESSION (Safari 12): Download of Blob URL fails
https://bugs.webkit.org/show_bug.cgi?id=190351
<rdar://problem/45091181>

Reviewed by Geoffrey Garen.

Source/WebCore:

When using both the download attribute and target="_blank" on an anchor element, we would
mistakenly drop the download attribute after the "new window" policy decision has been made.
As a result, we would try to load the blob instead of downloading it.

Test: fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html: Added.
11:15 AM Changeset in webkit [236969] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

StringTypeAdapter constructor is not properly enforcing String::MaxLength.
https://bugs.webkit.org/show_bug.cgi?id=190392
<rdar://problem/45116210>

Reviewed by Saam Barati.

Previously, the StringTypeAdapter constructor for a UChar* string was summing the
unsigned length of the source string without an overflow check. We now make that
length a size_t which removes this issue, and assert that it's within
String::MaxLength thereafter.

Also made the StringTypeAdapter constructor for a LChar* string behave in an
equivalent manner for consistency. In both cases, we'll crash in a RELEASE_ASSERT
if the source string length exceeds String::MaxLength.

  • wtf/text/StringConcatenate.h:
10:56 AM Changeset in webkit [236968] by aestes@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS] Replace @"UIPreviewDataAttachmentListIsContentManaged" with a UIKit constant
https://bugs.webkit.org/show_bug.cgi?id=190400
<rdar://problem/35442879>

Reviewed by Wenson Hsieh.

Also fixed the iOS version check in WKContentViewInteraction.mm.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

10:40 AM Changeset in webkit [236967] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] r236735 has some dead ASSERTs that need to be moved
https://bugs.webkit.org/show_bug.cgi?id=190394

Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::createOptionalParserForFormat):

10:18 AM Changeset in webkit [236966] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

REGRESSION (r232416): Can not scroll after swiping back on quoteunquoteapps.com
https://bugs.webkit.org/show_bug.cgi?id=190377
<rdar://problem/45108222>

Reviewed by Andy Estes.

Introduce the notion of 'pausing' to SnapshotRemovalTracker.
Reimplement r232416 in terms of this: the SnapshotRemovalTracker
starts out paused (not accepting events), and un-pauses when
we get a provisional load or same-document navigation.
This way, we don't lose the watchdog timer in cases where we get
no provisional load, same-document navigation, or main frame load
(which is the separate root cause for this bug -- this just papers
over it with a timeout).

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame):
(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
Resume the snapshot removal tracker.

(WebKit::ViewGestureController::didReachMainFrameLoadTerminalState):
If we didn't see a provisional load or same document navigation,
but somehow got to the terminal load state, immediately remove the snapshot.

(WebKit::ViewGestureController::SnapshotRemovalTracker::resume):
(WebKit::ViewGestureController::SnapshotRemovalTracker::start):
Start the SnapshotRemovalTracker out in the paused state; it will be
resumed in the same places we previously would call the
provisionalOrSameDocumentLoadCallback.

(WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent):
Ignore (but debug log) incoming events while paused.

  • UIProcess/Cocoa/ViewGestureController.h:

(WebKit::ViewGestureController::SnapshotRemovalTracker::pause):
(WebKit::ViewGestureController::SnapshotRemovalTracker::isPaused const):
Add the pausing bit.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endSwipeGesture):
Remove m_provisionalOrSameDocumentLoadCallback.

10:15 AM Changeset in webkit [236965] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Have DOMWindow get its frame from its document
https://bugs.webkit.org/show_bug.cgi?id=190389

Reviewed by Geoff Garen.

Have DOMWindow get its frame from its document instead of having its own m_frame which can potentially
be out-of-sync.

  • dom/Document.cpp:

(WebCore::Document::frameDestroyed):
(WebCore::Document::willDetachPage):
(WebCore::Document::attachToCachedFrame):

  • dom/Document.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::allowPopUp):
(WebCore::ContextDestructionObserver):
(WebCore::DOMWindow::didSecureTransitionTo):
(WebCore::DOMWindow::frameDestroyed):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
(WebCore::DOMWindow::isCurrentlyDisplayedInFrame const):
(WebCore::DOMWindow::collectMatchingElementsInFlatTree):
(WebCore::DOMWindow::matchingElementInFlatTree):
(WebCore::DOMWindow::orientation const):
(WebCore::DOMWindow::console const):
(WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
(WebCore::DOMWindow::webkitNamespace):
(WebCore::DOMWindow::postMessage):
(WebCore::DOMWindow::postMessageTimerFired):
(WebCore::DOMWindow::frameElement const):
(WebCore::DOMWindow::focus):
(WebCore::DOMWindow::blur):
(WebCore::DOMWindow::close):
(WebCore::DOMWindow::print):
(WebCore::DOMWindow::stop):
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirm):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::find const):
(WebCore::DOMWindow::outerHeight const):
(WebCore::DOMWindow::outerWidth const):
(WebCore::DOMWindow::innerHeight const):
(WebCore::DOMWindow::innerWidth const):
(WebCore::DOMWindow::screenX const):
(WebCore::DOMWindow::screenY const):
(WebCore::DOMWindow::scrollX const):
(WebCore::DOMWindow::scrollY const):
(WebCore::DOMWindow::closed const):
(WebCore::DOMWindow::length const):
(WebCore::DOMWindow::name const):
(WebCore::DOMWindow::setName):
(WebCore::DOMWindow::setStatus):
(WebCore::DOMWindow::setDefaultStatus):
(WebCore::DOMWindow::self const):
(WebCore::DOMWindow::opener const):
(WebCore::DOMWindow::disownOpener):
(WebCore::DOMWindow::parent const):
(WebCore::DOMWindow::top const):
(WebCore::DOMWindow::getMatchedCSSRules const):
(WebCore::DOMWindow::devicePixelRatio const):
(WebCore::DOMWindow::scrollBy const):
(WebCore::DOMWindow::scrollTo const):
(WebCore::DOMWindow::allowedToChangeWindowGeometry const):
(WebCore::DOMWindow::moveBy const):
(WebCore::DOMWindow::moveTo const):
(WebCore::DOMWindow::resizeBy const):
(WebCore::DOMWindow::resizeTo const):
(WebCore::DOMWindow::clearTimeout):
(WebCore::DOMWindow::isSameSecurityOriginAsMainFrame const):
(WebCore::DOMWindow::finishedLoading):
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):
(WebCore::DOMWindow::frame const):
(WebCore::FrameDestructionObserver): Deleted.
(WebCore::DOMWindow::willDetachPage): Deleted.
(WebCore::DOMWindow::detachFromFrame): Deleted.
(WebCore::DOMWindow::attachToFrame): Deleted.

  • page/DOMWindow.h:
9:54 AM Changeset in webkit [236964] by jer.noble@apple.com
  • 13 edits
    1 add in trunk

ISOTrackEncryptionBox returns incorrect defaultKeyID
https://bugs.webkit.org/show_bug.cgi?id=190368

Reviewed by Eric Carlson.

Source/WebCore:

Test: TestWebKitAPI.ISOBox.ISOProtectionSchemeInfoBox

ISOTrackEncryptionBox::parse() increments the data offset by an incorrect amount.

Drive-by fix: add EXPORT macros to all the ISO box classes so that tests can be written in TestWebKitAPI.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/iso/ISOBox.h:
  • platform/graphics/iso/ISOOriginalFormatBox.h:
  • platform/graphics/iso/ISOProtectionSchemeInfoBox.h:
  • platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:
  • platform/graphics/iso/ISOSchemeInformationBox.h:
  • platform/graphics/iso/ISOSchemeTypeBox.h:
  • platform/graphics/iso/ISOTrackEncryptionBox.cpp:

(WebCore::ISOTrackEncryptionBox::parse):

  • platform/graphics/iso/ISOTrackEncryptionBox.h:

Tools:

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

(TestWebKitAPI::TEST):

9:01 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
8:44 AM Changeset in webkit [236963] by youenn@apple.com
  • 11 edits
    2 adds in trunk

Add support for IceCandidate stats
https://bugs.webkit.org/show_bug.cgi?id=190329

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Export new stats kType values.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Convert IceCandidate stats gathered by libwebrtc.
Since networkType might be sensitive information, we currently do not expose it.
We do not expose address either if it is a host or prflx candidate.

Test: webrtc/candidate-stats.html

  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::iceCandidateState):
(WebCore::fillRTCIceCandidateStats):
(WebCore::LibWebRTCStatsCollector::OnStatsDelivered):

LayoutTests:

  • webrtc/candidate-stats-expected.txt: Added.
  • webrtc/candidate-stats.html: Added.
  • webrtc/routines.js:
  • webrtc/video-stats.html:
8:31 AM Changeset in webkit [236962] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

Revert temporary asserts for debugging a mysterious ASAN bot crash.
https://bugs.webkit.org/show_bug.cgi?id=190396

Reviewed by Yusuke Suzuki.

  • wtf/StackBounds.cpp:

(WTF::StackBounds::newThreadStackBounds):

  • wtf/StackBounds.h:

(WTF::StackBounds::checkConsistency const):

8:10 AM Changeset in webkit [236961] by Philippe Normand
  • 7 edits in trunk

[GStreamer] Stealing cross-origin video pixel with HLS
https://bugs.webkit.org/show_bug.cgi?id=190003

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Report the SecurityOrigin of downloaded adaptivedemux (HLS, DASH,
SmoothStreaming) fragments as tainted if their origin differs from
the manifest SecurityOrigin. SecurityOrigins are stored in the
CachedResourceStreamingClient implemented in the internal
GStreamer HTTP(S) source element.

The implementation is not ideal yet because the fragments download
is performed by the WebProcess, until bug 189967 is fixed. When
this bug is fixed, the m_hasTaintedOrigin member variable should
be removed and all checks be done unconditionally to the
webkithttpsrc element which will manage the download of the
manifests and fragments.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::loadFull): Reset the m_hasTaintedOrigin value.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Get the
fragment URL from the adaptivedemux stats message and check if its
origin is tainted.
(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):
Initial implementation by checking the m_hasTaintedOrigin member
variable value.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::responseReceived): Store the
resource origin internally so it can be checked later on by
webKitSrtcWouldTaintOrigin().
(webKitSrcWouldTaintOrigin): Check given origin against cached
origins. This implementation is similar to Cocoa's
WebCoreNSURLSession implementation.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unflag now-passing test.
6:54 AM Changeset in webkit [236960] by Philippe Normand
  • 2 edits
    4 deletes in trunk/Tools

[JHBuild] Update to GStreamer 1.14.4
https://bugs.webkit.org/show_bug.cgi?id=190395

Reviewed by Xabier Rodriguez-Calvar.

  • gstreamer/jhbuild.modules: Remove patches merged in 1.14.4 and bump version of GStreamer modules.
  • gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Removed.
  • gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Removed.
  • gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Removed.
  • gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Removed.
2:14 AM Changeset in webkit [236959] by Antti Koivisto
  • 18 edits
    1 copy in trunk/Source

Prewarm FontDatabase on process swap
https://bugs.webkit.org/show_bug.cgi?id=190312

Reviewed by Chris Dumez.

Source/WebCore:

Implement basic prewarming of FontDatabase. When the domain of the first page load on
a new process is known we pass the list of font families previous used by that domain to the
process. This is used to prewarm CoreText font database. Initialization (which involves lots of
blocking IPC) happens outside the main thread so the fonts are ready to use when needed.

  • WebCore.xcodeproj/project.pbxproj:
  • page/PrewarmInformation.h: Added.

(WebCore::PrewarmInformation::encode const):
(WebCore::PrewarmInformation::decode):

Add data structure for prewarm information with encode/decode support.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::collectPrewarmInformation):
(WebCore::ProcessWarming::prewarmWithInformation):

Prewarming interface to be used from WebKit.

  • page/ProcessWarming.h:
  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::collectPrewarmInformation const):
(WebCore::FontCache::prewarm):

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::fontForPostScriptName):
(WebCore::FontDatabase::clear):

Add mutex for thread safe access.

(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::collectPrewarmInformation const):

Collect font families seen by this process.

(WebCore::FontCache::prewarm):

Prewarm FontDatabase in a dispatch queue.

Source/WebKit:

Add mechanism for caching prewarm information per domain on UI process side. This information
is then passed to newly initialized web processes that are being used for the same domain.

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

(WebKit::WebProcessPool::processForNavigationInternal):

Pass prewarm information on process swap to the new process.

(WebKit::WebProcessPool::didCollectPrewarmInformation):

UI process side cache.

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

(WebKit::WebProcessProxy::didCollectPrewarmInformation):

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

(WebKit::WebPage::close):
(WebKit::WebPage::didReceivePolicyDecision):

Collect and cache prewarm information for the previous process on process swap.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prewarmGlobally):

Renamed for clarity.

(WebKit::WebProcess::prewarmWithDomainInformation):
(WebKit::WebProcess::sendPrewarmInformation):

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

Oct 8, 2018:

8:28 PM Changeset in webkit [236958] by Wenson Hsieh
  • 2 edits in trunk/Tools

[macOS] API test DragAndDropTests.DropColor is failing on macOS 10.12
https://bugs.webkit.org/show_bug.cgi?id=190386

Reviewed by Ryosuke Niwa.

Unlike macOS 10.13 and 10.14, -[NSColor redColor] is not equivalent to a fully red color in sRGB on macOS 10.12.
Fix the test by dragging and dropping an NSColor that is equivalent to rgb(255, 0, 0) on all relevant versions
of macOS.

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(TEST):

7:37 PM Changeset in webkit [236957] by Devin Rousso
  • 3 edits in trunk/LayoutTests

Fix inspector/canvas/recording.html after r236952

Unreviewed. Test gardening.

  • inspector/canvas/recording-expected.txt:
  • inspector/canvas/recording.html:

Recordings default to only capturing a single frame, so add a parameter to ensure that we
are capturing multiple frames.

7:17 PM Changeset in webkit [236956] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

/api/report takes 15+ minutes submitting some test results
https://bugs.webkit.org/show_bug.cgi?id=190382

Rubber-stamped by Alexey Proskuryakov and unofficially reviewed by Dewei Zhu.

The issue was that recursively_ensure_tests would issue thousands of dependent queries.

Since most reporting of results would be happening after all the tests and test metrics had been created,
simply fetch the list of all tests and test metrics upfront in memory.

This would slow-down the reporting of other test results but in practice doesn't matter (an extra few seconds
of overhead) but for slow reporting, it can significantly reduce the runtime from ~10 minutes to ~10 seconds.

  • public/include/report-processor.php:

(ReportProcessor::process): Call fetch_tests before recursively_ensure_tests.
(ReportProcessor::fetch_tests): Added. This builds up a mapping of tests based on a parent test ID as well as
a mapping of metrics per test based on its name and then its aggregator's name.
(ReportProcessor::recursively_ensure_tests): Added. Use the in-memory maps built in fetch_tests when possible.
(ReportProcessor::aggregator_list_if_exists): Take a reference instead of passing it by value.
(TestRunsGenerator::add_aggregated_metric): Now takes metric ID. The code to add the test metric had been moved
to recursively_ensure_tests.

6:52 PM Changeset in webkit [236955] by Wenson Hsieh
  • 20 edits
    1 add in trunk

[Cocoa] [WK2] Add support for text alignment and text lists in font attributes
https://bugs.webkit.org/show_bug.cgi?id=190342
<rdar://problem/44767118>

Reviewed by Tim Horton.

Source/WebCore:

Adds support for computing and encoding information about text alignment and enclosing list elements in the font
attributes dictionary, exposed to the UI delegate on Cocoa platforms. This is exposed through NSParagraphStyle,
which contains properties for both NSTextAlignment and an array of enclosing NSTextList objects.

Test: FontAttributes.NestedTextListsWithHorizontalAlignment

FontAttributes.FontAttributesAfterChangingSelection

  • editing/Editor.cpp:

(WebCore::editableTextListsAtPositionInDescendingOrder):

Add a helper function to ascend the DOM, starting at the given position, in search of enclosing list elements.
For each enclosing list element we find within the scope of the editable root, we create a TextList
representing the list element.

(WebCore::Editor::fontAttributesAtSelectionStart const):

Compute and set enclosing text lists and text alignment. For text alignment, we convert the initial text-align
value, start, to NSTextAlignmentNatural (the default text alignment type on Cocoa platforms); other values
then map to Left, Right, Center, and Justified as expected (taking direction into account).

  • editing/FontAttributes.h:

(WebCore::TextList::encode const):
(WebCore::TextList::decode):

Introduce TextList, a platform-agnostic representation of an unordered or ordered list. On Cocoa, this can be
used to construct a corresponding NSTextList.

  • editing/cocoa/FontAttributesCocoa.mm:

(WebCore::cocoaTextListMarkerName):

Attempt to map a WebCore list style type to a NSTextListMarker* constant. While most of the Cocoa marker
formats have a corresponding web-exposed list style type, many web-exposed types have no Cocoa equivalent; as
such, fall back to default marker formats: "{disc}" for unordered lists and "{decimal}" for ordered lists.

(WebCore::TextList::createTextList const):
(WebCore::FontAttributes::createDictionary const):

Include an NSParagraphStyle in the dictionary of font attributes that includes information about text alignment
and enclosing text lists (per Cocoa convention, in order from outermost list to innermost list).

Source/WebCore/PAL:

  • pal/ios/UIKitSoftLink.h:
  • pal/ios/UIKitSoftLink.mm:

Add NSParagraphStyle and NSTextList to the UIKit soft link header.

  • pal/spi/cocoa/NSAttributedStringSPI.h:
  • pal/spi/ios/UIKitSPI.h:

Add some SPI declarations for NSMutableParagraphStyle and NSTextList when building with a non-internal iOS SDK,
and import <UIKit/NSParagraphStyle_Private.h> and <UIKit/NSTextList.h> when building with an internal iOS SDK.
Additionally, define some internal UIFoundation string constants that denote NSTextList marker formats. These
constants are API on macOS, but are neither exposed as API nor SPI on iOS.

Source/WebKit:

Add encoding and decoding for text alignment and text lists in FontAttributes.

  • Shared/WebCoreArgumentCoders.cpp:

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

Tools:

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

Add a new API test to check that the font attributes dictionary contains the correct NSParagraphStyles when
moving the selection around text inside nested list elements.

(TestWebKitAPI::checkParagraphStyles):

Add a new helper to check an NSParagraphStyle against expected results.

(TestWebKitAPI::webViewForTestingFontAttributes):

Allow each test to pass in the name of the test page to load.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/nested-lists.html: Added.

Add a new test page that contains text enclosed in multiple levels of unordered and ordered lists.

  • TestWebKitAPI/Tests/WebKitCocoa/rich-text-attributes.html:

Remove text-align: left from one of these elements, to test for NSTextAlignmentNatural.

LayoutTests:

  • editing/mac/attributed-string/attributed-string-for-typing-expected.txt:
  • editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt:
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-expected.txt:
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt:

Rebaseline these two layout tests, now that typing attributes include an NSParagraphStyle.

6:37 PM Changeset in webkit [236954] by Justin Fan
  • 126 edits
    19 copies
    74 moves
    6 adds
    4 deletes in trunk

WebGPU: Rename old WebGPU prototype to WebMetal
https://bugs.webkit.org/show_bug.cgi?id=190325
.:

Reviewed by Dean Jackson.

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • Configurations/FeatureDefines.xcconfig:
  • inspector/protocol/Canvas.json:
  • inspector/scripts/codegen/generator.py:

Source/WebCore:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Existing WebGPU tests also renamed to reflect WebGPU -> WebMetal change.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebGPURenderPassAttachmentDescriptorCustom.cpp.

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSWebMetalRenderingContextCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebGPURenderingContextCustom.cpp.

(WebCore::JSWebMetalRenderingContext::visitAdditionalChildren):

  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::getCSSCanvasContext):

  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebMetalType):
(WebCore::HTMLCanvasElement::createContextWebMetal):
(WebCore::HTMLCanvasElement::getContextWebMetal):
(WebCore::HTMLCanvasElement::isWebGPUType): Deleted.
(WebCore::HTMLCanvasElement::createContextWebGPU): Deleted.
(WebCore::HTMLCanvasElement::getContextWebGPU): Deleted.

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:
  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::isWebMetal const):
(WebCore::CanvasRenderingContext::isWebGPU const): Deleted.

  • html/canvas/WebGPURenderingContext.cpp: Removed.
  • html/canvas/WebMetalBuffer.cpp: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.cpp.

(WebCore::WebMetalBuffer::create):
(WebCore::WebMetalBuffer::WebMetalBuffer):

  • html/canvas/WebMetalBuffer.h: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.h.
  • html/canvas/WebMetalBuffer.idl: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.idl.
  • html/canvas/WebMetalCommandBuffer.cpp: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.cpp.

(WebCore::WebMetalCommandBuffer::create):
(WebCore::WebMetalCommandBuffer::WebMetalCommandBuffer):
(WebCore::WebMetalCommandBuffer::~WebMetalCommandBuffer):
(WebCore::WebMetalCommandBuffer::commit):
(WebCore::WebMetalCommandBuffer::presentDrawable):
(WebCore::WebMetalCommandBuffer::createRenderCommandEncoderWithDescriptor):
(WebCore::WebMetalCommandBuffer::createComputeCommandEncoder):
(WebCore::WebMetalCommandBuffer::completed):

  • html/canvas/WebMetalCommandBuffer.h: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.h.
  • html/canvas/WebMetalCommandBuffer.idl: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
  • html/canvas/WebMetalCommandQueue.cpp: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.cpp.

(WebCore::WebMetalCommandQueue::create):
(WebCore::WebMetalCommandQueue::WebMetalCommandQueue):
(WebCore::WebMetalCommandQueue::createCommandBuffer):

  • html/canvas/WebMetalCommandQueue.h: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.h.
  • html/canvas/WebMetalCommandQueue.idl: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.idl.
  • html/canvas/WebMetalComputeCommandEncoder.cpp: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.cpp.

(WebCore::GPUSizeMake):
(WebCore::WebMetalComputeCommandEncoder::create):
(WebCore::WebMetalComputeCommandEncoder::WebMetalComputeCommandEncoder):
(WebCore::WebMetalComputeCommandEncoder::setComputePipelineState):
(WebCore::WebMetalComputeCommandEncoder::setBuffer):
(WebCore::WebMetalComputeCommandEncoder::dispatch):
(WebCore::WebMetalComputeCommandEncoder::endEncoding):

  • html/canvas/WebMetalComputeCommandEncoder.h: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.h.
  • html/canvas/WebMetalComputeCommandEncoder.idl: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.idl.
  • html/canvas/WebMetalComputePipelineState.cpp: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.cpp.

(WebCore::WebMetalComputePipelineState::create):
(WebCore::WebMetalComputePipelineState::WebMetalComputePipelineState):

  • html/canvas/WebMetalComputePipelineState.h: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.h.
  • html/canvas/WebMetalComputePipelineState.idl: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.idl.
  • html/canvas/WebMetalDepthStencilDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.cpp.

(WebCore::WebMetalDepthStencilDescriptor::create):
(WebCore::WebMetalDepthStencilDescriptor::depthWriteEnabled const):
(WebCore::WebMetalDepthStencilDescriptor::setDepthWriteEnabled):
(WebCore::WebMetalDepthStencilDescriptor::depthCompareFunction const):
(WebCore::WebMetalDepthStencilDescriptor::setDepthCompareFunction):

  • html/canvas/WebMetalDepthStencilDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.h.
  • html/canvas/WebMetalDepthStencilDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.idl.
  • html/canvas/WebMetalDepthStencilState.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.cpp.

(WebCore::WebMetalDepthStencilState::create):
(WebCore::WebMetalDepthStencilState::WebMetalDepthStencilState):
(WebCore::WebMetalDepthStencilState::label const):
(WebCore::WebMetalDepthStencilState::setLabel):

  • html/canvas/WebMetalDepthStencilState.h: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.h.
  • html/canvas/WebMetalDepthStencilState.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.idl.
  • html/canvas/WebMetalDrawable.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.cpp.

(WebCore::WebMetalDrawable::create):
(WebCore::WebMetalDrawable::WebMetalDrawable):

  • html/canvas/WebMetalDrawable.h: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.h.

(WebCore::WebMetalDrawable::texture):

  • html/canvas/WebMetalDrawable.idl: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.idl.
  • html/canvas/WebMetalEnums.cpp: Renamed from Source/WebCore/html/canvas/WebGPUEnums.cpp.

(WebCore::toWebMetalCompareFunction):
(WebCore::web3DCompareFunctionName):
(WebCore::toGPUCompareFunction):

  • html/canvas/WebMetalEnums.h: Renamed from Source/WebCore/html/canvas/WebGPUEnums.h.
  • html/canvas/WebMetalEnums.idl: Renamed from Source/WebCore/html/canvas/WebGPUEnums.idl.
  • html/canvas/WebMetalFunction.cpp: Renamed from Source/WebCore/html/canvas/WebGPUFunction.cpp.

(WebCore::WebMetalFunction::create):
(WebCore::WebMetalFunction::WebMetalFunction):

  • html/canvas/WebMetalFunction.h: Renamed from Source/WebCore/html/canvas/WebGPUFunction.h.
  • html/canvas/WebMetalFunction.idl: Renamed from Source/WebCore/html/canvas/WebGPUFunction.idl.
  • html/canvas/WebMetalLibrary.cpp: Renamed from Source/WebCore/html/canvas/WebGPULibrary.cpp.

(WebCore::WebMetalLibrary::create):
(WebCore::WebMetalLibrary::WebMetalLibrary):
(WebCore::WebMetalLibrary::functionNames const):
(WebCore::WebMetalLibrary::functionWithName const):

  • html/canvas/WebMetalLibrary.h: Renamed from Source/WebCore/html/canvas/WebGPULibrary.h.
  • html/canvas/WebMetalLibrary.idl: Renamed from Source/WebCore/html/canvas/WebGPULibrary.idl.
  • html/canvas/WebMetalRenderCommandEncoder.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.cpp.

(WebCore::WebMetalRenderCommandEncoder::create):
(WebCore::WebMetalRenderCommandEncoder::WebMetalRenderCommandEncoder):
(WebCore::WebMetalRenderCommandEncoder::setRenderPipelineState):
(WebCore::WebMetalRenderCommandEncoder::setDepthStencilState):
(WebCore::WebMetalRenderCommandEncoder::setVertexBuffer):
(WebCore::WebMetalRenderCommandEncoder::setFragmentBuffer):
(WebCore::WebMetalRenderCommandEncoder::drawPrimitives):
(WebCore::WebMetalRenderCommandEncoder::endEncoding):

  • html/canvas/WebMetalRenderCommandEncoder.h: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.h.
  • html/canvas/WebMetalRenderCommandEncoder.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.idl.
  • html/canvas/WebMetalRenderPassAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.cpp.

(WebCore::WebMetalRenderPassAttachmentDescriptor::WebMetalRenderPassAttachmentDescriptor):
(WebCore::WebMetalRenderPassAttachmentDescriptor::loadAction const):
(WebCore::WebMetalRenderPassAttachmentDescriptor::setLoadAction):
(WebCore::WebMetalRenderPassAttachmentDescriptor::storeAction const):
(WebCore::WebMetalRenderPassAttachmentDescriptor::setStoreAction):
(WebCore::WebMetalRenderPassAttachmentDescriptor::texture const):
(WebCore::WebMetalRenderPassAttachmentDescriptor::setTexture):

  • html/canvas/WebMetalRenderPassAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.h.
  • html/canvas/WebMetalRenderPassAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.idl.
  • html/canvas/WebMetalRenderPassColorAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.cpp.

(WebCore::WebMetalRenderPassColorAttachmentDescriptor::create):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::WebMetalRenderPassColorAttachmentDescriptor):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::descriptor const):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::clearColor const):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::setClearColor):

  • html/canvas/WebMetalRenderPassColorAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.h.
  • html/canvas/WebMetalRenderPassColorAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.idl.
  • html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.cpp.

(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::create):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::WebMetalRenderPassDepthAttachmentDescriptor):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::clearDepth const):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::setClearDepth):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::descriptor const):

  • html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.h.
  • html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.idl.
  • html/canvas/WebMetalRenderPassDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.cpp.

(WebCore::WebMetalRenderPassDescriptor::create):
(WebCore::WebMetalRenderPassDescriptor::depthAttachment):
(WebCore::WebMetalRenderPassDescriptor::colorAttachments):

  • html/canvas/WebMetalRenderPassDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.h.
  • html/canvas/WebMetalRenderPassDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.idl.
  • html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.cpp.

(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::create):
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::WebMetalRenderPipelineColorAttachmentDescriptor):
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::pixelFormat const):
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::setPixelFormat):

  • html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.h.
  • html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.idl.
  • html/canvas/WebMetalRenderPipelineDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.cpp.

(WebCore::WebMetalRenderPipelineDescriptor::create):
(WebCore::WebMetalRenderPipelineDescriptor::vertexFunction const):
(WebCore::WebMetalRenderPipelineDescriptor::setVertexFunction):
(WebCore::WebMetalRenderPipelineDescriptor::fragmentFunction const):
(WebCore::WebMetalRenderPipelineDescriptor::setFragmentFunction):
(WebCore::WebMetalRenderPipelineDescriptor::colorAttachments):
(WebCore::WebMetalRenderPipelineDescriptor::depthAttachmentPixelFormat const):
(WebCore::WebMetalRenderPipelineDescriptor::setDepthAttachmentPixelFormat):
(WebCore::WebMetalRenderPipelineDescriptor::reset):

  • html/canvas/WebMetalRenderPipelineDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.h.
  • html/canvas/WebMetalRenderPipelineDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.idl.
  • html/canvas/WebMetalRenderPipelineState.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.cpp.

(WebCore::WebMetalRenderPipelineState::create):
(WebCore::WebMetalRenderPipelineState::WebMetalRenderPipelineState):
(WebCore::WebMetalRenderPipelineState::label const):
(WebCore::WebMetalRenderPipelineState::setLabel):

  • html/canvas/WebMetalRenderPipelineState.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.h.
  • html/canvas/WebMetalRenderPipelineState.idl: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.idl.
  • html/canvas/WebMetalRenderingContext.cpp: Added.

(WebCore::WebMetalRenderingContext::create):
(WebCore::WebMetalRenderingContext::WebMetalRenderingContext):
(WebCore::WebMetalRenderingContext::canvas const):
(WebCore::WebMetalRenderingContext::initializeNewContext):
(WebCore::WebMetalRenderingContext::clampedCanvasSize const):
(WebCore::WebMetalRenderingContext::hasPendingActivity const):
(WebCore::WebMetalRenderingContext::stop):
(WebCore::WebMetalRenderingContext::activeDOMObjectName const):
(WebCore::WebMetalRenderingContext::canSuspendForDocumentSuspension const):
(WebCore::WebMetalRenderingContext::platformLayer const):
(WebCore::WebMetalRenderingContext::markLayerComposited):
(WebCore::WebMetalRenderingContext::reshape):
(WebCore::WebMetalRenderingContext::createLibrary):
(WebCore::WebMetalRenderingContext::createRenderPipelineState):
(WebCore::WebMetalRenderingContext::createDepthStencilState):
(WebCore::WebMetalRenderingContext::createComputePipelineState):
(WebCore::WebMetalRenderingContext::createCommandQueue):
(WebCore::WebMetalRenderingContext::nextDrawable):
(WebCore::WebMetalRenderingContext::createBuffer):
(WebCore::WebMetalRenderingContext::createTexture):

  • html/canvas/WebMetalRenderingContext.h: Renamed from Source/WebCore/html/canvas/WebGPURenderingContext.h.
  • html/canvas/WebMetalRenderingContext.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderingContext.idl.
  • html/canvas/WebMetalSize.h: Renamed from Source/WebCore/html/canvas/WebGPUSize.h.
  • html/canvas/WebMetalSize.idl: Renamed from Source/WebCore/html/canvas/WebGPUSize.idl.
  • html/canvas/WebMetalTexture.cpp: Renamed from Source/WebCore/html/canvas/WebGPUTexture.cpp.

(WebCore::WebMetalTexture::create):
(WebCore::WebMetalTexture::WebMetalTexture):

  • html/canvas/WebMetalTexture.h: Renamed from Source/WebCore/html/canvas/WebGPUTexture.h.
  • html/canvas/WebMetalTexture.idl: Renamed from Source/WebCore/html/canvas/WebGPUTexture.idl.
  • html/canvas/WebMetalTextureDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.cpp.

(WebCore::WebMetalTextureDescriptor::create):
(WebCore::WebMetalTextureDescriptor::WebMetalTextureDescriptor):
(WebCore::WebMetalTextureDescriptor::width const):
(WebCore::WebMetalTextureDescriptor::setWidth):
(WebCore::WebMetalTextureDescriptor::height const):
(WebCore::WebMetalTextureDescriptor::setHeight):
(WebCore::WebMetalTextureDescriptor::sampleCount const):
(WebCore::WebMetalTextureDescriptor::setSampleCount):
(WebCore::WebMetalTextureDescriptor::textureType const):
(WebCore::WebMetalTextureDescriptor::setTextureType):
(WebCore::WebMetalTextureDescriptor::storageMode const):
(WebCore::WebMetalTextureDescriptor::setStorageMode):
(WebCore::WebMetalTextureDescriptor::usage const):
(WebCore::WebMetalTextureDescriptor::setUsage):

  • html/canvas/WebMetalTextureDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.h.
  • html/canvas/WebMetalTextureDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.idl.
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildObjectForCanvas):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::contextAsScriptValue):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebMetalEnabled):
(WebCore::RuntimeEnabledFeatures::webMetalEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebGPUEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webGPUEnabled const): Deleted.

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

(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):

  • platform/graphics/cocoa/WebMetalLayer.h: Renamed from Source/WebCore/platform/graphics/cocoa/WebGPULayer.h.
  • platform/graphics/cocoa/WebMetalLayer.mm: Renamed from Source/WebCore/platform/graphics/cocoa/WebGPULayer.mm.

(-[WebMetalLayer initWithGPUDevice:]):

  • platform/graphics/gpu/GPUBuffer.cpp:

(WebCore::GPUBuffer::~GPUBuffer):

  • platform/graphics/gpu/GPUBuffer.h:
  • platform/graphics/gpu/GPUCommandBuffer.cpp:

(WebCore::GPUCommandBuffer::~GPUCommandBuffer):

  • platform/graphics/gpu/GPUCommandBuffer.h:
  • platform/graphics/gpu/GPUCommandQueue.cpp:

(WebCore::GPUCommandQueue::~GPUCommandQueue):

  • platform/graphics/gpu/GPUCommandQueue.h:
  • platform/graphics/gpu/GPUComputeCommandEncoder.cpp:

(WebCore::GPUComputeCommandEncoder::~GPUComputeCommandEncoder):

  • platform/graphics/gpu/GPUComputeCommandEncoder.h:
  • platform/graphics/gpu/GPUComputePipelineState.cpp:

(WebCore::GPUComputePipelineState::~GPUComputePipelineState):

  • platform/graphics/gpu/GPUComputePipelineState.h:
  • platform/graphics/gpu/GPUDepthStencilDescriptor.cpp:

(WebCore::GPUDepthStencilDescriptor::~GPUDepthStencilDescriptor):

  • platform/graphics/gpu/GPUDepthStencilDescriptor.h:
  • platform/graphics/gpu/GPUDepthStencilState.cpp:

(WebCore::GPUDepthStencilState::~GPUDepthStencilState):

  • platform/graphics/gpu/GPUDepthStencilState.h:
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::~GPUDevice):

  • platform/graphics/gpu/GPUDevice.h:

(WebCore::GPUDevice::layer const):

  • platform/graphics/gpu/GPUDrawable.cpp:

(WebCore::GPUDrawable::~GPUDrawable):

  • platform/graphics/gpu/GPUDrawable.h:
  • platform/graphics/gpu/GPUEnums.h:
  • platform/graphics/gpu/GPUFunction.cpp:

(WebCore::GPUFunction::~GPUFunction):

  • platform/graphics/gpu/GPUFunction.h:
  • platform/graphics/gpu/GPULibrary.cpp:

(WebCore::GPULibrary::~GPULibrary):

  • platform/graphics/gpu/GPULibrary.h:
  • platform/graphics/gpu/GPURenderCommandEncoder.cpp:

(WebCore::GPURenderCommandEncoder::~GPURenderCommandEncoder):

  • platform/graphics/gpu/GPURenderCommandEncoder.h:
  • platform/graphics/gpu/GPURenderPassAttachmentDescriptor.cpp:

(WebCore::GPURenderPassAttachmentDescriptor::~GPURenderPassAttachmentDescriptor):

  • platform/graphics/gpu/GPURenderPassAttachmentDescriptor.h:
  • platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.cpp:

(WebCore::GPURenderPassColorAttachmentDescriptor::~GPURenderPassColorAttachmentDescriptor):

  • platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.h:
  • platform/graphics/gpu/GPURenderPassDepthAttachmentDescriptor.cpp:

(WebCore::GPURenderPassDepthAttachmentDescriptor::~GPURenderPassDepthAttachmentDescriptor):

  • platform/graphics/gpu/GPURenderPassDepthAttachmentDescriptor.h:
  • platform/graphics/gpu/GPURenderPassDescriptor.cpp:

(WebCore::GPURenderPassDescriptor::~GPURenderPassDescriptor):

  • platform/graphics/gpu/GPURenderPassDescriptor.h:
  • platform/graphics/gpu/GPURenderPipelineColorAttachmentDescriptor.cpp:

(WebCore::GPURenderPipelineColorAttachmentDescriptor::~GPURenderPipelineColorAttachmentDescriptor):

  • platform/graphics/gpu/GPURenderPipelineColorAttachmentDescriptor.h:
  • platform/graphics/gpu/GPURenderPipelineDescriptor.cpp:

(WebCore::GPURenderPipelineDescriptor::~GPURenderPipelineDescriptor):

  • platform/graphics/gpu/GPURenderPipelineDescriptor.h:
  • platform/graphics/gpu/GPURenderPipelineState.cpp:

(WebCore::GPURenderPipelineState::~GPURenderPipelineState):

  • platform/graphics/gpu/GPURenderPipelineState.h:
  • platform/graphics/gpu/GPUSize.h:
  • platform/graphics/gpu/GPUTexture.cpp:

(WebCore::GPUTexture::~GPUTexture):

  • platform/graphics/gpu/GPUTexture.h:
  • platform/graphics/gpu/GPUTextureDescriptor.cpp:

(WebCore::GPUTextureDescriptor::~GPUTextureDescriptor):

  • platform/graphics/gpu/GPUTextureDescriptor.h:
  • platform/graphics/metal/GPUBufferMetal.mm:

(WebCore::GPUBuffer::GPUBuffer):

  • platform/graphics/metal/GPUCommandBufferMetal.mm:
  • platform/graphics/metal/GPUCommandQueueMetal.mm:
  • platform/graphics/metal/GPUComputeCommandEncoderMetal.mm:
  • platform/graphics/metal/GPUComputePipelineStateMetal.mm:

(WebCore::GPUComputePipelineState::GPUComputePipelineState):

  • platform/graphics/metal/GPUDepthStencilDescriptorMetal.mm:
  • platform/graphics/metal/GPUDepthStencilStateMetal.mm:

(WebCore::GPUDepthStencilState::setLabel const):

  • platform/graphics/metal/GPUDeviceMetal.mm:

(WebCore::GPUDevice::reshape const):

  • platform/graphics/metal/GPUDrawableMetal.mm:

(WebCore::GPUDrawable::release):

  • platform/graphics/metal/GPUFunctionMetal.mm:
  • platform/graphics/metal/GPULibraryMetal.mm:

(WebCore::GPULibrary::GPULibrary):

  • platform/graphics/metal/GPURenderCommandEncoderMetal.mm:

(WebCore::GPURenderCommandEncoder::GPURenderCommandEncoder):

  • platform/graphics/metal/GPURenderPassAttachmentDescriptorMetal.mm:
  • platform/graphics/metal/GPURenderPassColorAttachmentDescriptorMetal.mm:
  • platform/graphics/metal/GPURenderPassDepthAttachmentDescriptorMetal.mm:
  • platform/graphics/metal/GPURenderPassDescriptorMetal.mm:
  • platform/graphics/metal/GPURenderPipelineColorAttachmentDescriptorMetal.mm:
  • platform/graphics/metal/GPURenderPipelineDescriptorMetal.mm:
  • platform/graphics/metal/GPURenderPipelineStateMetal.mm:

(WebCore::GPURenderPipelineState::setLabel const):

  • platform/graphics/metal/GPUTextureDescriptorMetal.mm:
  • platform/graphics/metal/GPUTextureMetal.mm:

(WebCore::GPUTexture::GPUTexture):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebMetalEnabled):
(WebCore::InternalSettings::setWebGPUEnabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebCore/PAL:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • Configurations/FeatureDefines.xcconfig:

Source/WebInspectorUI:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.
For WebInspector, add WebMetal to valid enums for canvas types.

  • UserInterface/Models/Canvas.js:

(WI.Canvas.fromPayload):
(WI.Canvas.displayNameForContextType):

Source/WebKit:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferences.yaml:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences webMetalEnabled]):
(-[WebPreferences setWebMetalEnabled:]):
(-[WebPreferences webGPUEnabled]): Deleted.
(-[WebPreferences setWebGPUEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/Tests/WebCore/mac/GPUBuffer.mm:
  • TestWebKitAPI/Tests/WebCore/mac/GPUCommandQueue.mm:
  • TestWebKitAPI/Tests/WebCore/mac/GPUDevice.mm:
  • TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm:
  • TestWebKitAPI/Tests/WebCore/mac/GPULibrary.mm:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebMetalEnabled):
(WTR::TestRunner::setWebGPUEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

Websites/webkit.org:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • demos/webgpu/shared.js: Removed.
  • demos/webmetal/2d.html: Renamed from Websites/webkit.org/demos/webgpu/2d.html.
  • demos/webmetal/2d.jpg: Renamed from Websites/webkit.org/demos/webgpu/2d.jpg.
  • demos/webmetal/2d.js: Renamed from Websites/webkit.org/demos/webgpu/2d.js.

(init):

  • demos/webmetal/circle.svg: Renamed from Websites/webkit.org/demos/webgpu/circle.svg.
  • demos/webmetal/cubes.html: Renamed from Websites/webkit.org/demos/webgpu/cubes.html.
  • demos/webmetal/cubes.jpg: Renamed from Websites/webkit.org/demos/webgpu/cubes.jpg.
  • demos/webmetal/cubes.js: Renamed from Websites/webkit.org/demos/webgpu/cubes.js.

(init):

  • demos/webmetal/gl-matrix-min.js: Renamed from Websites/webkit.org/demos/webgpu/gl-matrix-min.js.
  • demos/webmetal/hello.html: Renamed from Websites/webkit.org/demos/webgpu/hello.html.
  • demos/webmetal/hello.jpg: Renamed from Websites/webkit.org/demos/webgpu/hello.jpg.
  • demos/webmetal/hello.js: Renamed from Websites/webkit.org/demos/webgpu/hello.js.

(init):

  • demos/webmetal/index.html: Renamed from Websites/webkit.org/demos/webgpu/index.html.
  • demos/webmetal/shared.css: Renamed from Websites/webkit.org/demos/webgpu/shared.css.
  • demos/webmetal/shared.js: Added.

(const.hasWebMetal):
(const.checkForWebMetal):

  • demos/webmetal/simple.html: Renamed from Websites/webkit.org/demos/webgpu/simple.html.
  • demos/webmetal/simple.jpg: Renamed from Websites/webkit.org/demos/webgpu/simple.jpg.
  • demos/webmetal/simple.js: Renamed from Websites/webkit.org/demos/webgpu/simple.js.

(init):

  • experimental-features.html:

LayoutTests:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

  • fast/canvas/webgpu/webgpu-runtime-flag-expected.txt: Removed.
  • fast/canvas/webmetal/webmetal-dispatch-expected.txt: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-dispatch-expected.txt.
  • fast/canvas/webmetal/webmetal-dispatch.html: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-dispatch.html.
  • fast/canvas/webmetal/webmetal-runtime-flag-expected.txt: Added.
  • fast/canvas/webmetal/webmetal-runtime-flag.html: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-runtime-flag.html.
  • inspector/canvas/create-context-webmetal-expected.txt: Renamed from LayoutTests/inspector/canvas/create-context-webgpu-expected.txt.
  • inspector/canvas/create-context-webmetal.html: Renamed from LayoutTests/inspector/canvas/create-context-webgpu.html.
  • inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Removed.
  • inspector/canvas/resolveCanvasContext-webmetal-expected.txt: Added.
  • inspector/canvas/resolveCanvasContext-webmetal.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
5:19 PM Changeset in webkit [236953] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: canvas recording glyph is black on gray
https://bugs.webkit.org/show_bug.cgi?id=190367
<rdar://problem/45099304>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview .content-view.canvas > footer .view-recording): Added.
(.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.

5:14 PM Changeset in webkit [236952] by Devin Rousso
  • 15 edits in trunk

Web Inspector: allow multiple canvases to be recorded at the same time
https://bugs.webkit.org/show_bug.cgi?id=190305

Reviewed by Brian Burg.

Source/WebInspectorUI:

Moved the logic for maintaining whether a canvas is actively recording from
WI.CanvasManager to WI.Canvas, meaning that each canvas can now record independently of
every other canvas in the page. If multiple recordings are all finished simultaneously, only
show the first one to be recieved by the frontend.

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager):
(WI.CanvasManager.prototype.recordingProgress):
(WI.CanvasManager.prototype.recordingFinished):
(WI.CanvasManager.prototype.programCreated):
(WI.CanvasManager.prototype.programDeleted):
(WI.CanvasManager.prototype._removeCanvas):
(WI.CanvasManager.prototype._mainResourceDidChange):
(WI.CanvasManager.prototype.get recordingCanvas): Deleted.
(WI.CanvasManager.prototype.startRecording): Deleted.
(WI.CanvasManager.prototype.stopRecording): Deleted.
(WI.CanvasManager.prototype._dispatchShaderProgramRemoved): Deleted.

  • UserInterface/Models/Canvas.js:

(WI.Canvas.prototype.get recordingFrameCount): Added.
(WI.Canvas.prototype.get recordingBufferUsed): Added.
(WI.Canvas.prototype.get recordingActive): Added.
(WI.Canvas.prototype.get isRecording): Deleted.
(WI.Canvas.prototype.startRecording): Added.
(WI.Canvas.prototype.stopRecording): Added.
(WI.Canvas.prototype.recordingProgress): Added.
(WI.Canvas.prototype.recordingFinished): Added.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype.attached):
(WI.CanvasTabContentView.prototype.detached):
(WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
(WI.CanvasTabContentView.prototype._handleSpace):
(WI.CanvasTabContentView):

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview .content-view.canvas.recording-active): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > header): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .title): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > header > .navigation-bar > .item): Added.
(.content-view.canvas-overview .content-view.canvas:matches(:hover, .recording-active) > header > .navigation-bar): Added.
(.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop.disabled): Added.
(.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Added.
(.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > .progress-vie): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > .preview): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > header): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added.
(.content-view.canvas-overview .content-view.canvas.is-recording): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .title): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .navigation-bar > .item): Deleted.
(.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar): Deleted.
(.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop.disabled): Deleted.
(.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Deleted.
(.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > .progress-vie): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > .preview): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted.
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted.

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView.prototype.attached):
(WI.CanvasContentView.prototype.detached):
(WI.CanvasContentView.prototype._toggleRecording):
(WI.CanvasContentView.prototype._recordingProgress):
(WI.CanvasContentView.prototype._recordingStopped):
(WI.CanvasContentView.prototype._shaderProgramAdded):
(WI.CanvasContentView.prototype._shaderProgramRemoved):
(WI.CanvasContentView.prototype._updateRecordNavigationItem):
(WI.CanvasContentView.prototype._updateProgressView):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel):
(WI.CanvasSidebarPanel.prototype.set canvas):
(WI.CanvasSidebarPanel.prototype._toggleRecording):
(WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):

  • UserInterface/Views/CanvasTreeElement.js:

(WI.CanvasTreeElement):
(WI.CanvasTreeElement.prototype._updateStatus):

LayoutTests:

  • inspector/canvas/recording-2d.html:
  • inspector/canvas/recording-bitmaprenderer.html:
  • inspector/canvas/recording-expected.html:
  • inspector/canvas/recording-webgl.html:
  • inspector/canvas/recording.html:
  • inspector/canvas/resources/recording-utilities.js:

(TestPage.registerInitializer.window.startRecording.handleRecordingProgress):
(TestPage.registerInitializer.window.startRecording):
(TestPage.registerInitializer.window.consoleRecord):
(TestPage.registerInitializer):

5:11 PM Changeset in webkit [236951] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Followup to r236942: Make input type=color an internal feature
https://bugs.webkit.org/show_bug.cgi?id=189162

Rubber-stamped by Dean Jackson.

I've learned from Dean that an internal feature is more suitable than an experimental feature in this scenario.

  • Shared/WebPreferences.yaml:
5:07 PM Changeset in webkit [236950] by Devin Rousso
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: replace Range.svg icon
https://bugs.webkit.org/show_bug.cgi?id=190372

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/Range.svg:
  • UserInterface/Images/RangeLarge.svg: Added.
  • UserInterface/Models/Resource.js:

(WI.Resource.classNameForResource): Added.
Create a static function for specializing the className of WI.Resource objects.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateNameCell):

  • UserInterface/Views/ResourceTreeElement.js:

(WI.ResourceTreeElement):

  • UserInterface/Views/ResourceIcons.css:

(.resource-icon.resource-type-ping .icon, .resource-icon.resource-type-beacon .icon, .large .resource-icon.resource-type-ping .icon, .large .resource-icon.resource-type-beacon .icon):
(.resource-icon.resource-type-range .icon):
(.large .resource-icon.resource-type-range .icon): Added.
Drive-by: added .large versions of ping and beacon icons for the
WI.OpenResourceDialog elements.

4:20 PM Changeset in webkit [236949] by Kocsen Chung
  • 23 edits
    1 delete in tags/Safari-607.1.10

Revert r236875. rdar://problem/45109065

4:20 PM Changeset in webkit [236948] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.10/Source/WebCore/PAL

Revert r236876. rdar://problem/45109065

4:20 PM Changeset in webkit [236947] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.10/Source/WebCore

Revert r236878. rdar://problem/45109065

4:20 PM Changeset in webkit [236946] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.10/Source/WebCore

Revert r236882. rdar://problem/45109065

4:19 PM Changeset in webkit [236945] by dino@apple.com
  • 4 edits in trunk

CrashTracer: backboardd at Recursion :: QuartzCore: CA::Render::Updater::prepare_sublayer0
https://bugs.webkit.org/show_bug.cgi?id=190376
<rdar://problem/44986520>

Reviewed by Tim Horton.

Source/WebCore:

Very deep CoreAnimation layer trees can cause problems. Reduce our maximum
depth from 256 to 128.

Modified existing test: compositing/layer-creation/deep-tree.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: Cap the depth at 128.

LayoutTests:

  • compositing/layer-creation/deep-tree.html:
3:58 PM October 2018 Meeting edited by Jon Davis
(diff)
3:34 PM Changeset in webkit [236944] by Alan Coon
  • 1 copy in tags/Safari-607.1.10

Tag Safari-607.1.10.

3:27 PM Changeset in webkit [236943] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk

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

Causing API test failures in new test (Requested by jernoble
on #webkit).

Reverted changeset:

"ISOTrackEncryptionBox returns incorrect defaultKeyID"
https://bugs.webkit.org/show_bug.cgi?id=190368
https://trac.webkit.org/changeset/236941

3:08 PM Changeset in webkit [236942] by Aditya Keerthi
  • 37 edits
    2 adds in trunk

Make <input type=color> a runtime enabled (on-by-default) feature
https://bugs.webkit.org/show_bug.cgi?id=189162

Reviewed by Wenson Hsieh and Tim Horton.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Enable the build-time flag INPUT_TYPE_COLOR by default and introduce a runtime-enabled feature for input type
color, also on by default.

Covered by rebaselining existing layout tests.

  • Configurations/FeatureDefines.xcconfig:
  • html/InputType.cpp:

(WebCore::createInputTypeFactoryMap):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::inputTypeColorEnabled const):
(WebCore::RuntimeEnabledFeatures::setInputTypeColorEnabled):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferences.yaml:

Add an experimental feature flag for input type=color.

  • UIProcess/mac/WebColorPickerMac.mm:

(-[WKPopoverColorWell webDelegate]):
(-[WKPopoverColorWell setWebDelegate:]):

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Rebaseline layout tests after enabling input type=color by default.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/ios/fast/forms/color/input-appearance-color-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/color-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
  • platform/mac/fast/selectors/read-only-read-write-input-basics-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
2:12 PM Changeset in webkit [236941] by jer.noble@apple.com
  • 12 edits
    1 add in trunk

ISOTrackEncryptionBox returns incorrect defaultKeyID
https://bugs.webkit.org/show_bug.cgi?id=190368

Reviewed by Eric Carlson.

Source/WebCore:

Test: TestWebKitAPI.ISOBox.ISOProtectionSchemeInfoBox

ISOTrackEncryptionBox::parse() increments the data offset by an incorrect amount.

Drive-by fix: add EXPORT macros to all the ISO box classes so that tests can be written in TestWebKitAPI.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/iso/ISOBox.h:
  • platform/graphics/iso/ISOOriginalFormatBox.h:
  • platform/graphics/iso/ISOProtectionSchemeInfoBox.h:
  • platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:
  • platform/graphics/iso/ISOSchemeInformationBox.h:
  • platform/graphics/iso/ISOSchemeTypeBox.h:
  • platform/graphics/iso/ISOTrackEncryptionBox.cpp:

(WebCore::ISOTrackEncryptionBox::parse):

  • platform/graphics/iso/ISOTrackEncryptionBox.h:

Tools:

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

(TestWebKitAPI::TEST):

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

Try to fix the build

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:
2:02 PM Changeset in webkit [236939] by BJ Burg
  • 7 edits in trunk/Source/WebKit

[Mac] Web Automation: some keyboard interactions don't generate events, causing event simulation to stall
https://bugs.webkit.org/show_bug.cgi?id=190316
<rdar://problem/42833290>

Reviewed by Tim Horton.

Some users have reported that Cmd-A for Select All no longer works in safaridriver.
Instead, this hangs the session. This happens because the WebAutomationSession class
assumes that each call to simulateKeyboardInteraction causes keyboard events to be processed,
but in corner cases like Cmd-A, some events that we simulate are swallowed by AppKit and
never make it back to WebKit. Because the session never gets the "keyboard events flushed"
callback, it assumes the interaction is still ongoing, and never returns, causing a hang.

This patch consists of two parts:

  • Add logging of important state changes and events when simulating user input.
  • Make code more robust when simulating key actions that generate no events on macOS.

This change progresses WPT test key_shortcuts.py::test_mod_a_and_backspace_deletes_all_text on Mac.

  • Platform/Logging.h: Add a logging channel.
  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputDispatcher::keyFrameTransitionDurationTimerFired):
(WebKit::SimulatedInputDispatcher::transitionBetweenKeyFrames):
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
(WebKit::SimulatedInputDispatcher::run):
(WebKit::SimulatedInputDispatcher::finishDispatching):
Add a bunch of logging so its easier to figure out where things get stuck.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::simulateKeyboardInteraction):
In some cases, no keyboard events need to be processed for the simulated interaction.
When that happens, early exit rather than waiting for keyboard events to be flushed.

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::sendSynthesizedEventsToPage): Logging.
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
On Mac, if you tap a character key while Command is held down, only a KeyDown event
is forwarded to the first responder by AppKit, even if you send a KeyUp event too.
In this case don't send an NSEvent since it won't ever be delivered back to WebKit.

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

(WebKit::WebPageProxy::isProcessingKeyboardEvents const): Expose this state for keyboard
events too.

1:37 PM Changeset in webkit [236938] by Antti Koivisto
  • 9 edits
    2 adds in trunk/Source/WebCore

Move SystemFontDatabase to a file of its own
https://bugs.webkit.org/show_bug.cgi?id=190347

Reviewed by Chris Dumez.

Also rename it to SystemFontDatabaseCoreText as it is CoreText specific.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/MemoryRelease.cpp:

(WebCore::releaseNoncriticalMemory):

  • page/cocoa/MemoryReleaseCocoa.mm:

Release SystemFontDatabaseCoreText directly from platform specific cleanup code.

(WebCore::platformReleaseMemory):

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontDescription::invalidateCaches):
(WebCore::systemFontCascadeList):
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
(WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParameters): Deleted.
(WebCore::SystemFontDatabase::CoreTextCascadeListParameters::isHashTableDeletedValue const): Deleted.
(WebCore::SystemFontDatabase::CoreTextCascadeListParameters::operator== const): Deleted.
(WebCore::SystemFontDatabase::CoreTextCascadeListParameters::hash const): Deleted.
(WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParametersHash::hash): Deleted.
(WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParametersHash::equal): Deleted.
(): Deleted.
(WebCore::SystemFontDatabase::singleton): Deleted.
(WebCore::SystemFontDatabase::systemFontCascadeList): Deleted.
(WebCore::SystemFontDatabase::clear): Deleted.
(WebCore::SystemFontDatabase::SystemFontDatabase): Deleted.
(WebCore::SystemFontDatabase::applyWeightItalicsAndFallbackBehavior): Deleted.
(WebCore::SystemFontDatabase::removeCascadeList): Deleted.
(WebCore::SystemFontDatabase::computeCascadeList): Deleted.
(WebCore::systemFontParameters): Deleted.

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

(WebCore::SystemFontDatabaseCoreText::singleton):
(WebCore::SystemFontDatabaseCoreText::SystemFontDatabaseCoreText):
(WebCore::SystemFontDatabaseCoreText::systemFontCascadeList):
(WebCore::SystemFontDatabaseCoreText::clear):
(WebCore::SystemFontDatabaseCoreText::applyWeightItalicsAndFallbackBehavior):
(WebCore::SystemFontDatabaseCoreText::removeCascadeList):
(WebCore::SystemFontDatabaseCoreText::computeCascadeList):
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h: Added.

(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::CascadeListParameters):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::isHashTableDeletedValue const):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::operator== const):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::hash const):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::CascadeListParametersHash::hash):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::CascadeListParametersHash::equal):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
1:24 PM Changeset in webkit [236937] by Ryan Haddad
  • 2 edits
    2 deletes in trunk/LayoutTests

Move test expectations from ios-12 to ios directory
https://bugs.webkit.org/show_bug.cgi?id=189839

Unreviewed test gardening..

  • platform/ios-11/http/tests/quicklook/hide-referer-on-navigation-expected.txt: Removed.
  • platform/ios-11/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt: Removed.
  • platform/ios-11/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.https-expected.txt: Removed.
  • platform/ios-11/platform/ios/ios/fast/text/opticalFont-expected.txt: Removed.
  • platform/ios-11/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
  • platform/ios-11/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Removed.
  • platform/ios-11/quicklook/powerpoint-expected.txt: Removed.
  • platform/ios-11/quicklook/powerpoint-legacy-expected.txt: Removed.
  • platform/ios-11/quicklook/word-expected.txt: Removed.
  • platform/ios-11/quicklook/word-legacy-expected.txt: Removed.
  • platform/ios-11/svg/batik/text/longTextOnPath-expected.txt: Removed.
  • platform/ios-12/TestExpectations: Removed.
  • platform/ios/TestExpectations:
1:23 PM WikiStart edited by Jon Davis
Added link to 2018 WebKit Contributors Meeting page. (diff)
1:22 PM Changeset in webkit [236936] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

NetworkCache::Storage should be WTF::DestructionThread::Main
https://bugs.webkit.org/show_bug.cgi?id=190324

Reviewed by Alex Christensen.

Use WTF::DestructionThread::Main to make sure that Storage is destroyed in the main thread.
Remove the code that was making sure that any ref was destroyed in the main thread.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp: Make sure the completion handler is not null.
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation): Make it clear that a ref is taken.
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::synchronize): Protect 'this' when dispatching back to the main thread.
Move the code that was after dispatch before dispatch to allow moving protectedThis in the dispatch lambda.
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::deleteOldVersions):

  • NetworkProcess/cache/NetworkCacheStorage.h:
1:21 PM October 2018 Meeting edited by Jon Davis
(diff)
1:18 PM Changeset in webkit [236935] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebKit

Adjust keyboard scrolling animator to springy and semiphysical
https://bugs.webkit.org/show_bug.cgi?id=190345
<rdar://problem/43494393>

Reviewed by Simon Fraser.

Introduce WKKeyboardScrollViewAnimator, which wraps WKKeyboardScrollingAnimator
and provides a reasonable set of default behaviors for UIScrollView.
This is the first step on the way to WKKeyboardScrollingAnimator
being platform- and toolkit-agnostic, and helps avoid adding a whole
bunch of code to WKContentView.

Adopt UIKit's scroll-to-top animation curve for whole-document scrolls.

Adjust WKKeyboardScrollingAnimator's physics; it now simulates a spring
attached to the page when decelerating. When a key is pressed, it applies
a constant force to the page (up to some maximum velocity). When released,
the spring causes the page to decelerate smoothly.

Add rubber-banding to keyboard scrolling, based on the same spring that
decelerates the page.

Remove the initial bounce on keydown before starting the smooth scroll.

Remove arrow key commands from WKContentView; this avoids double-processing
incoming arrow key events, makes the event stream make more sense, and was
entirely unnecessary.

  • Platform/spi/ios/UIKitSPI.h:

Add a wide variety of useful SPI.

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

Remove _scrollByContentOffset:animated: because it's only used by
the keyboard scrolling mechanism.

Remove _arrowKey because we're removing the arrow key commands.

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

(-[WKContentView setupInteraction]):
Create a WKKeyboardScrollViewAnimator (which knows how to directly
manipulate a UIScrollView) instead of a WKKeyboardScrollingAnimator
(which requires its clients to implement everything in terms of an
abstract interface.

(-[WKContentView scrollViewWillStartPanOrPinchGesture]):
Inform the keyboard scrolling animator that the user is going to start
an interactive gesture that needs control of the scroll view, so it
can stop its current animated scroll.

(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView keyCommands]):
(-[WKContentView _arrowKeyForWebView:]): Deleted.
Remove arrow key commands.

(-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:]):
Scale from content to WKWebView coordinate space; the keyboard scrolling
animator operates in WKWebView coordinates. This was broken before.

(-[WKContentView keyboardScrollViewAnimatorWillScroll:]):
(-[WKContentView isScrollableForKeyboardScrollViewAnimator:]):
(-[WKContentView isKeyboardScrollable]): Deleted.
(-[WKContentView distanceForScrollingIncrement:]): Deleted.
(-[WKContentView scrollByContentOffset:animated:]): Deleted.
Reimplement these as keyboardScrollViewAnimator delegate methods.

  • UIProcess/ios/WKKeyboardScrollingAnimator.h:

Add WKKeyboardScrollViewAnimator, hide the interface for
WKKeyboardScrollingAnimator itself in the implementation file.

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator initWithScrollable:]):
(-[WKKeyboardScrollingAnimator parameters]):
(-[WKKeyboardScrollingAnimator invalidate]):
(unitVector):
Return a unit vector in the given direction.

(perpendicularAbsoluteUnitVector):
Return a positive unit vector perpendicular to the axis of the given direction.
Useful for multiplying with another vector to remove the component in the
axis of the given direction.

(boxSide):
Convert ScrollingDirection to WebCore::PhysicalBoxSide, for use with RectEdges.

(-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):
Instead of just returning the desired increment, compute everything we'll need
for the lifetime of the scroll (including the force applied, maximum
velocity, etc.) and return them together.

(-[WKKeyboardScrollingAnimator beginWithEvent:]):
Use the scrollable's native scroll-to-extent animation (e.g. UIScrollView's
scroll-to-top curve) for whole-document scrolls.

Remove the first discrete scroll; start the smooth scroll immediately.

(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(farthestPointInDirection):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
Stop the current scroll. Let the spring coast to its natural stopping
point given the system's current energy, unless that stopping point is
less than one increment from the starting point. In that case, we attach
the spring to /that/ point and let it run.

(-[WKKeyboardScrollingAnimator startDisplayLinkIfNeeded]):
(-[WKKeyboardScrollingAnimator stopDisplayLink]):
(-[WKKeyboardScrollingAnimator willStartInteractiveScroll]):
Immediately stop all motion if the user touches the screen to scroll
or zoom with fingers.

(-[WKKeyboardScrollingAnimator displayLinkFired:]):
Update the position of the scrollable based on the applied force and spring.
See the comments in this function for more details.

(-[WKKeyboardScrollViewAnimator init]):
(-[WKKeyboardScrollViewAnimator initWithScrollView:]):
(-[WKKeyboardScrollViewAnimator dealloc]):
(-[WKKeyboardScrollViewAnimator invalidate]):
(-[WKKeyboardScrollViewAnimator setDelegate:]):
(-[WKKeyboardScrollViewAnimator willStartInteractiveScroll]):
(-[WKKeyboardScrollViewAnimator beginWithEvent:]):
(-[WKKeyboardScrollViewAnimator handleKeyEvent:]):
(-[WKKeyboardScrollViewAnimator isKeyboardScrollable]):
(-[WKKeyboardScrollViewAnimator distanceForIncrement:]):
(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):
(-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]):
(-[WKKeyboardScrollViewAnimator contentOffset]):
(-[WKKeyboardScrollViewAnimator boundedContentOffset:]):
(-[WKKeyboardScrollViewAnimator interactiveScrollVelocity]):
(-[WKKeyboardScrollViewAnimator scrollableDirectionsFromOffset:]):
(-[WKKeyboardScrollViewAnimator rubberbandableDirections]):
Add WKKeyboardScrollViewAnimator, which wraps WKKeyboardScrollingAnimator
and provides animated keyboard scrolling for a UIScrollView without much
additional plumbing work. It contains reasonable default behaviors,
with a few optional delegate methods for customization.

(-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]): Deleted.
(-[WKKeyboardScrollingAnimator startAnimatedScroll]): Deleted.

1:16 PM October 2018 Meeting edited by Jon Davis
Updated schedule. (diff)
1:15 PM Changeset in webkit [236934] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Remove dead code: VideoFullscreenModel::isVisible()
https://bugs.webkit.org/show_bug.cgi?id=190356

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-10-08
Reviewed by Jon Lee.

Source/WebCore:

No new tests because there is no behavior change.

Remove isVisible() since it is no longer used.

  • platform/cocoa/VideoFullscreenModel.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::isVisible const): Deleted.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::isVisible const): Deleted.

Source/WebKit:

Remove isVisible since it is no longer used.

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

(WebKit::VideoFullscreenModelContext::isVisible const): Deleted.
(WebKit::VideoFullscreenManagerProxy::isVisible const): Deleted.

1:14 PM Changeset in webkit [236933] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Remove dead code: resetMediaState.
https://bugs.webkit.org/show_bug.cgi?id=190355

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-10-08
Reviewed by Jon Lee.

Source/WebCore:

No new tests because no behavior change.

Remove resetMediaState since it is no longer used.

  • platform/cocoa/PlaybackSessionInterface.h:

(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface):

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::resetMediaState): Deleted.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController resetMediaState]): Deleted.

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

(WebCore::PlaybackSessionInterfaceMac::resetMediaState): Deleted.

Source/WebKit:

Remove resetMediaState since it is no longer used.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::resetMediaState): Deleted.

  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::resetMediaState): Deleted.

1:12 PM Changeset in webkit [236932] by Truitt Savell
  • 4 edits
    2 deletes in trunk/LayoutTests

Attempt to fix test failure after 236915
https://bugs.webkit.org/show_bug.cgi?id=190352

Unreviewed Test Gardening

LayoutTests/imported/w3c:

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt:

LayoutTests:

  • platform/mac-highsierra/hkdf.https.worker-expected.txt: Removed.
  • platform/mac/imported/w3c/canvas/2d.shadow.gradient.basic-expected.png: Removed.
  • platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt:
1:00 PM Changeset in webkit [236931] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Use MediaPlayerEnums::VideoGravity in VideoFullscreenModel.
https://bugs.webkit.org/show_bug.cgi?id=190357

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-10-08
Reviewed by Jon Lee.

Source/WebCore:

No new tests because no behavior change.

Use MediaPlayerEnums::VideoGravity instead of creating another identical enum in VideoFullscreenModel.

  • platform/cocoa/VideoFullscreenModel.h:

(): Deleted.

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

(WebCore::VideoFullscreenModelVideoElement::setVideoLayerGravity):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer setVideoGravity:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::setVideoLayerGravity):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):

Source/WebKit:

Use MediaPlayerEnums::VideoGravity instead of creating another identical enum in VideoFullscreenModel.

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

(WebKit::VideoFullscreenModelContext::setVideoLayerGravity):
(WebKit::VideoFullscreenManagerProxy::setVideoLayerGravity):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::setVideoLayerGravityEnum):

12:58 PM Changeset in webkit [236930] by achristensen@apple.com
  • 15 edits
    5 deletes in trunk

Remove WKBundleFileHandleRef
https://bugs.webkit.org/show_bug.cgi?id=190360

Reviewed by Tim Horton.

Source/WebKit:

WKBundleFrameGetJavaScriptWrapperForFileForWorld and WKBundleFileHandleCreateWithPath were only used in Mail
and were removed in rdar://problem/44955158
I need to remove them for rdar://problem/24576194

  • Shared/API/APIObject.h:
  • Shared/API/c/WKDeprecated.h:
  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKBundleFrameGetJavaScriptWrapperForFileForWorld):
(WKBundleFileHandleCreateWithPath):

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp: Removed.
  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h:
  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameGetJavaScriptWrapperForFileForWorld): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
  • WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp: Removed.
  • WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.h: Removed.
  • WebProcess/WebPage/WebFrame.cpp:
  • WebProcess/WebPage/WebFrame.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/WKBundleFileHandle.cpp: Removed.
  • TestWebKitAPI/Tests/WebKit/WKBundleFileHandle_Bundle.cpp: Removed.
12:53 PM Changeset in webkit [236929] by Truitt Savell
  • 1 edit
    1 copy
    1 move in trunk/LayoutTests

Moving files to fix failures introduced in r236915
https://bugs.webkit.org/show_bug.cgi?id=190352

Unreviewed test gardening

  • platform/mac-highsierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt: Copied from LayoutTests/platform/mac/hkdf.https.worker-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt: Renamed from LayoutTests/platform/mac/hkdf.https.worker-expected.txt.
12:12 PM Changeset in webkit [236928] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebKit

Validation in Connection::readBytesFromSocket() is too aggressive
https://bugs.webkit.org/show_bug.cgi?id=190281

Reviewed by Michael Catanzaro.

Since r217206 Connection::readBytesFromSocket() validates size of
control message. However, it compares cmsg_len with attachmentMaxAmount,
while Connection::sendOutgoingMessage() computes it as
CMSG_LEN(sizeof(int) * attachmentFDBufferLength) where
attachmentFDBufferLength <= attachmentMaxAmount. This mismatch between
sender and receiver leads to possibility of assertion failure with large
number of attachments, e.g. here 62 attachments have cmsg_length == 264.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket):

11:25 AM Changeset in webkit [236927] by Devin Rousso
  • 38 edits
    6 adds in trunk

Web Inspector: group media network entries by the node that triggered the request
https://bugs.webkit.org/show_bug.cgi?id=189606
<rdar://problem/44438527>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Network.json:

Add an optional nodeId field to the Initiator object that is set it is possible to
determine which ancestor node triggered the load. It may not correspond directly to the node
with the href/src, as that url may only be used by an ancestor for loading.

Source/WebCore:

Test: http/tests/inspector/network/resource-initiatorNode.html

Add extra arguments to functions that create ResourceRequest objects for media resources so
that initiatorNodeIdentifier can be set for WebInspector frontend to use for grouping.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::setDisplayMode):

  • loader/FrameLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::willLoadMediaElementURL):
Handles initial (e.g. DNT) resource requests.

  • loader/ImageLoader.cpp:

(ImageLoader::updateFromElement):
Handles "poster" requests.

  • loader/MediaResourceLoader.cpp:

(MediaResourceLoader::requestResource):
Handles byte-range requests.

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::loadTimerFired):

  • loader/TextTrackLoader.h:
  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load):

  • html/HTMLTrackElement.h:

Handles <track> (e.g. subtitle) requests.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::identifierForNode):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::identifierForNode):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::identifierForNodeImpl):
Allows callers to get a DOM.nodeId for the given Node, which is (in this patch) attached
to the ResourceRequest and later used by InspectorNetworkAgent.

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

(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorNetworkAgent::buildInitiatorObject):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::initiatorNodeIdentifier const):
(WebCore::ResourceRequestBase::setInitiatorNodeIdentifier):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildObjectForCanvas):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
Don't try to push the canvas' node to the frontend, as this will create a dangling node in
InspectorDOMAgent if the canvas' node is detached from the DOM.

Source/WebInspectorUI:

Introduces a WI.NavigationItem for changing whether network entries are grouped by the
node that initiated the load (if applicable). When grouped by node, a tree-like layout of
the table cells (including expand/collapse) is used for resources that share the same
initiator node. The values for the node's cell are based on it's initated resources.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager):
(WI.DOMManager.prototype._mainResourceDidChange): Added.
Whenever the frame navigates, re-request the document so that NetworkAgent is able to send
valid nodeId for each request's initiatorNode. This means that the document should
always be available.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get filterNavigationItems):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.tableSortChanged):
(WI.NetworkTableContentView.prototype.tableSelectedRowChanged):
(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._populateNameCell.createIconElement): Added.
(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._populateDomainCell.createIconAndText): Added.
(WI.NetworkTableContentView.prototype._populateDomainCell):
(WI.NetworkTableContentView.prototype._populateInitiatorCell):
(WI.NetworkTableContentView.prototype._populateTransferSizeCell):
(WI.NetworkTableContentView.prototype._generateSortComparator):
(WI.NetworkTableContentView.prototype._processPendingEntries):
(WI.NetworkTableContentView.prototype._updateEntryForResource.updateExistingEntry): Added.
(WI.NetworkTableContentView.prototype._updateEntryForResource):
(WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
(WI.NetworkTableContentView.prototype._entryForDOMNode): Added.
(WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): Added.
(WI.NetworkTableContentView.prototype._uniqueValuesForDOMNodeEntry): Added.
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Added.

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table .cell.dom-node.name .icon): Added.
(.network-table .cell.dom-node.name .disclosure): Added.
(body[dir=rtl] .network-table .cell.dom-node.name .disclosure): Added.
(.network-table:focus li.selected .cell.dom-node.name .disclosure): Added.
(.network-table .cell.dom-node.name .disclosure.expanded): Added.
(.network-table:focus li.selected .cell.node.name .disclosure.expanded): Added.
(.network-table .cell.grouped-by-node.name): Added.
(body[dir=ltr] .network-table .cell.grouped-by-node.name): Added.
(body[dir=rtl] .network-table .cell.grouped-by-node.name): Added.
(.network-table li:not(.selected) .cell:matches(.cache-type, .multiple)): Added.
(.network-table li.selected .cell.domain > .lock): Added.
(.network-table .cache-type): Deleted.
When two resources are added that share the same initiatorNode, insert a node entry into
the WI.Table before the first resource entry for that node (based on the current sort).
This node entry is added after the resource entries are filtered, so they won't appear in
the default entries list.

  • UserInterface/Models/Resource.js:

(WI.Resource):
(WI.Resource.prototype.initiatorNode): Added.
(WI.Resource.prototype.requestedByteRange): Added.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.resourceRequestWillBeSent):
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype._initiatorNodeFromPayload): Added.

  • UserInterface/Images/Range.svg: Added.
  • UserInterface/Views/ResourceIcons.css:

(.resource-icon.resource-type-range .icon): Added.

LayoutTests:

  • http/tests/inspector/network/resource-initiatorNode-expected.txt: Added.
  • http/tests/inspector/network/resource-initiatorNode.html: Added.
  • inspector/canvas/requestNode.html:

Test case no longer needed since the document is always requested once it's available.

10:51 AM Changeset in webkit [236926] by Ryan Haddad
  • 2 edits in branches/safari-606.2.104.1-branch/LayoutTests

Unreviewed, update TestExpectations for <rdar://problem/44568702>.

  • platform/mac-wk2/TestExpectations:
10:34 AM Changeset in webkit [236925] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.9.0.1/Source

Versioning.

10:32 AM Changeset in webkit [236924] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.9.0.1

Tag Safari-607.1.9.0.1.

10:24 AM Changeset in webkit [236923] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: clicking initiator link in Network Tab table doesn't automatically switch to Preview section
https://bugs.webkit.org/show_bug.cgi?id=190286

Reviewed by Brian Burg.

  • UserInterface/Views/NetworkResourceDetailView.js:

(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):

10:22 AM Changeset in webkit [236922] by aestes@apple.com
  • 6 edits in trunk

[Payment Request] Requests should be aborted after details settle when the user cancels
https://bugs.webkit.org/show_bug.cgi?id=190333

Reviewed by Alex Christensen.

Source/WebCore:

In Payment Request's "update a PaymentRequest's details" algorithm, user agents are expected
to disable the payment UI when PaymentRequest details are being updated by the merchant.
This is to prevent the user from accepting a payment before updated details are displayed.

Further, Payment Request's "user aborts the payment request" algorithm says that the
algorithm should be terminated prior to throwing an AbortError if the request is currently
being updated, and also that user agents SHOULD ensure this never occurs. This is based on
the assumption that payment UIs are disabled during details updates.

For Apple Pay, while it is true that a payment cannot be accepted by the user while details
are being updated by the merchant, the payment UI is not completely disabled. In particular,
the user is allowed to abort the payment while details are being updated. We need to honor
the user's request to abort without doing so in the middle of a details update.

This patch defers a user-initiated abort until after details are settled, at which point the
promise returned by show() is rejected with an AbortError. This behaves as if the details
update promise were rejected by the merchant.

Added a test case to http/tests/paymentrequest/payment-request-show-method.https.html.

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::settleDetailsPromise):
(WebCore::PaymentRequest::whenDetailsSettled):
(WebCore::PaymentRequest::cancel):

  • Modules/paymentrequest/PaymentRequest.h:

LayoutTests:

  • http/tests/paymentrequest/payment-request-show-method.https-expected.txt:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
10:19 AM Changeset in webkit [236921] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r235630?): [Mojave WK1] Layout test compositing/filters/opacity-change-on-filtered-paints-into-ancestor.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=189756

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:17 AM Changeset in webkit [236920] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: be more specific as to what types of WI.Collection are allowed for the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=190304

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WI.tabContentViewClassForRepresentedObject):

  • UserInterface/Views/ResourcesTabContentView.js:

(WI.ResourcesTabContentView.prototype.canShowRepresentedObject):

10:16 AM Changeset in webkit [236919] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

Layout Tests editing/deleting/delete-emoji.html editing/deleting/delete-emoji-1.html editing/deleting/delete-emoji-9.html are passing.
https://bugs.webkit.org/show_bug.cgi?id=190353

Unreviewed. Remove the tests from TestExpectations file.

  • platform/mac/TestExpectations:
10:15 AM Changeset in webkit [236918] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Open Resource Dialog should show path to resource (to disambiguate resources with same name)
https://bugs.webkit.org/show_bug.cgi?id=178153
<rdar://problem/34925686>

Reviewed by Brian Burg.

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._populateResourceTreeOutline):

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog .tree-outline.large .item .titles[data-path]): Added.
(.open-resource-dialog .tree-outline.large .item .titles[data-path]::after): Added.
(.open-resource-dialog .tree-outline.large .item .titles .title): Added.
(.open-resource-dialog .tree-outline.large .item .titles .subtitle): Added.
(.open-resource-dialog .tree-outline.large .item .titles): Deleted.

10:12 AM Changeset in webkit [236917] by Chris Dumez
  • 51 edits in trunk/Source

Have DOMWindowProperty get is frame from its associated DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=190341

Reviewed by Alex Christensen.

Source/WebCore:

Have DOMWindowProperty get is frame from its associated DOMWindow, instead of having its own
m_frame that can potentially get out-of-sync.

  • Modules/cache/DOMWindowCaches.cpp:

(WebCore::DOMWindowCaches::DOMWindowCaches):

  • Modules/geolocation/NavigatorGeolocation.cpp:

(WebCore::NavigatorGeolocation::NavigatorGeolocation):
(WebCore::NavigatorGeolocation::from):

  • Modules/geolocation/NavigatorGeolocation.h:
  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):

  • Modules/mediastream/NavigatorMediaDevices.cpp:

(WebCore::NavigatorMediaDevices::NavigatorMediaDevices):
(WebCore::NavigatorMediaDevices::from):

  • Modules/mediastream/NavigatorMediaDevices.h:
  • Modules/quota/DOMWindowQuota.cpp:

(WebCore::DOMWindowQuota::DOMWindowQuota):

  • Modules/quota/NavigatorStorageQuota.cpp:

(WebCore::NavigatorStorageQuota::NavigatorStorageQuota):

  • Modules/quota/NavigatorStorageQuota.h:
  • Modules/speech/DOMWindowSpeechSynthesis.cpp:

(WebCore::DOMWindowSpeechSynthesis::DOMWindowSpeechSynthesis):

  • css/StyleMedia.cpp:

(WebCore::StyleMedia::StyleMedia):
(WebCore::StyleMedia::type const):
(WebCore::StyleMedia::matchMedium const):

  • css/StyleMedia.h:
  • loader/appcache/DOMApplicationCache.cpp:

(WebCore::DOMApplicationCache::DOMApplicationCache):
(WebCore::DOMApplicationCache::applicationCacheHost const):
(WebCore::DOMApplicationCache::scriptExecutionContext const):

  • loader/appcache/DOMApplicationCache.h:
  • page/BarProp.cpp:

(WebCore::BarProp::BarProp):
(WebCore::BarProp::visible const):

  • page/BarProp.h:

(WebCore::BarProp::create):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::DOMSelection):
(WebCore::DOMSelection::visibleSelection const):
(WebCore::DOMSelection::anchorNode const):
(WebCore::DOMSelection::anchorOffset const):
(WebCore::DOMSelection::focusNode const):
(WebCore::DOMSelection::focusOffset const):
(WebCore::DOMSelection::baseNode const):
(WebCore::DOMSelection::baseOffset const):
(WebCore::DOMSelection::extentNode const):
(WebCore::DOMSelection::extentOffset const):
(WebCore::DOMSelection::isCollapsed const):
(WebCore::DOMSelection::type const):
(WebCore::DOMSelection::rangeCount const):
(WebCore::DOMSelection::collapse):
(WebCore::DOMSelection::collapseToEnd):
(WebCore::DOMSelection::collapseToStart):
(WebCore::DOMSelection::empty):
(WebCore::DOMSelection::setBaseAndExtent):
(WebCore::DOMSelection::setPosition):
(WebCore::DOMSelection::modify):
(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt):
(WebCore::DOMSelection::removeAllRanges):
(WebCore::DOMSelection::addRange):
(WebCore::DOMSelection::deleteFromDocument):
(WebCore::DOMSelection::containsNode const):
(WebCore::DOMSelection::toString):
(WebCore::DOMSelection::shadowAdjustedNode const):
(WebCore::DOMSelection::shadowAdjustedOffset const):
(WebCore::DOMSelection::isValidForPosition const):

  • page/DOMSelection.h:

(WebCore::DOMSelection::create):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::screen):
(WebCore::DOMWindow::history):
(WebCore::DOMWindow::locationbar):
(WebCore::DOMWindow::menubar):
(WebCore::DOMWindow::personalbar):
(WebCore::DOMWindow::scrollbars):
(WebCore::DOMWindow::statusbar):
(WebCore::DOMWindow::toolbar):
(WebCore::DOMWindow::applicationCache):
(WebCore::DOMWindow::navigator):
(WebCore::DOMWindow::location):
(WebCore::DOMWindow::visualViewport):
(WebCore::DOMWindow::webkitNamespace):
(WebCore::DOMWindow::getSelection):
(WebCore::DOMWindow::styleMedia):

  • page/DOMWindow.h:
  • page/DOMWindowExtension.cpp:

(WebCore::DOMWindowExtension::DOMWindowExtension):

  • page/DOMWindowExtension.h:

(WebCore::DOMWindowExtension::create):

  • page/DOMWindowProperty.cpp:

(WebCore::DOMWindowProperty::DOMWindowProperty):
(WebCore::DOMWindowProperty::~DOMWindowProperty):
(WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowProperty::reconnectFrameFromDocumentSuspension):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):
(WebCore::DOMWindowProperty::willDetachGlobalObjectFromFrame):
(WebCore::DOMWindowProperty::frame const):

  • page/DOMWindowProperty.h:

(WebCore::DOMWindowProperty::window const):

  • page/History.cpp:

(WebCore::History::History):
(WebCore::History::length const):
(WebCore::History::scrollRestoration const):
(WebCore::History::setScrollRestoration):
(WebCore::History::stateInternal const):
(WebCore::History::go):
(WebCore::History::urlForState):
(WebCore::History::stateObjectAdded):

  • page/History.h:
  • page/Location.cpp:

(WebCore::Location::Location):
(WebCore::Location::url const):
(WebCore::Location::href const):
(WebCore::Location::protocol const):
(WebCore::Location::host const):
(WebCore::Location::hostname const):
(WebCore::Location::port const):
(WebCore::Location::pathname const):
(WebCore::Location::search const):
(WebCore::Location::origin const):
(WebCore::Location::ancestorOrigins const):
(WebCore::Location::hash const):
(WebCore::Location::setHref):
(WebCore::Location::setProtocol):
(WebCore::Location::setHost):
(WebCore::Location::setHostname):
(WebCore::Location::setPort):
(WebCore::Location::setPathname):
(WebCore::Location::setSearch):
(WebCore::Location::setHash):
(WebCore::Location::assign):
(WebCore::Location::replace):
(WebCore::Location::reload):
(WebCore::Location::setLocation):

  • page/Location.h:

(WebCore::Location::create):

  • page/Navigator.cpp:

(WebCore::Navigator::Navigator):
(WebCore::Navigator::appVersion const):
(WebCore::Navigator::userAgent const):
(WebCore::Navigator::share):
(WebCore::Navigator::plugins):
(WebCore::Navigator::mimeTypes):
(WebCore::Navigator::cookieEnabled const):
(WebCore::Navigator::javaEnabled const):
(WebCore::Navigator::standalone const):

  • page/Navigator.h:
  • page/Performance.cpp:

(WebCore::Performance::navigation):
(WebCore::Performance::timing):

  • page/PerformanceNavigation.cpp:

(WebCore::PerformanceNavigation::PerformanceNavigation):
(WebCore::PerformanceNavigation::type const):
(WebCore::PerformanceNavigation::redirectCount const):

  • page/PerformanceNavigation.h:

(WebCore::PerformanceNavigation::create):

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::PerformanceTiming):
(WebCore::PerformanceTiming::documentLoader const):
(WebCore::PerformanceTiming::documentTiming const):

  • page/PerformanceTiming.h:

(WebCore::PerformanceTiming::create):

  • page/Screen.cpp:

(WebCore::Screen::Screen):
(WebCore::Screen::height const):
(WebCore::Screen::width const):
(WebCore::Screen::colorDepth const):
(WebCore::Screen::pixelDepth const):
(WebCore::Screen::availLeft const):
(WebCore::Screen::availTop const):
(WebCore::Screen::availHeight const):
(WebCore::Screen::availWidth const):

  • page/Screen.h:
  • page/VisualViewport.cpp:

(WebCore::VisualViewport::VisualViewport):
(WebCore::VisualViewport::scriptExecutionContext const):
(WebCore::VisualViewport::addEventListener):
(WebCore::VisualViewport::updateFrameLayout const):
(WebCore::VisualViewport::offsetLeft const):
(WebCore::VisualViewport::offsetTop const):
(WebCore::VisualViewport::pageLeft const):
(WebCore::VisualViewport::pageTop const):
(WebCore::VisualViewport::width const):
(WebCore::VisualViewport::height const):
(WebCore::VisualViewport::scale const):
(WebCore::VisualViewport::update):
(WebCore::VisualViewport::enqueueResizeEvent):
(WebCore::VisualViewport::enqueueScrollEvent):

  • page/VisualViewport.h:
  • page/WebKitNamespace.cpp:

(WebCore::WebKitNamespace::WebKitNamespace):

  • page/WebKitNamespace.h:

(WebCore::WebKitNamespace::create):

  • plugins/DOMMimeTypeArray.cpp:

(WebCore::DOMMimeTypeArray::DOMMimeTypeArray):
(WebCore::DOMMimeTypeArray::item):
(WebCore::DOMMimeTypeArray::namedItem):
(WebCore::DOMMimeTypeArray::getPluginData const):

  • plugins/DOMMimeTypeArray.h:

(WebCore::DOMMimeTypeArray::create):

  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::DOMPluginArray):
(WebCore::DOMPluginArray::item):
(WebCore::DOMPluginArray::namedItem):
(WebCore::DOMPluginArray::refresh):
(WebCore::DOMPluginArray::pluginData const):

  • plugins/DOMPluginArray.h:

(WebCore::DOMPluginArray::create):

  • storage/Storage.cpp:

(WebCore::Storage::create):
(WebCore::Storage::Storage):
(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):

  • storage/Storage.h:

Source/WebKit:

  • WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:

(WebKit::InjectedBundleDOMWindowExtension::InjectedBundleDOMWindowExtension):

9:58 AM Changeset in webkit [236916] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

Layout Tests editing/deleting/delete-emoji.html editing/deleting/delete-emoji-1.html editing/deleting/delete-emoji-9.html are passing.
https://bugs.webkit.org/show_bug.cgi?id=190353

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-08

  • platform/mac/TestExpectations:
9:48 AM Changeset in webkit [236915] by Truitt Savell
  • 3 edits
    2 copies
    1 add in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.html for Mojave
https://bugs.webkit.org/show_bug.cgi?id=190352

LayoutTests/imported/w3c:

Unreviewed Test Expetations

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt:

LayoutTests:

Unreviewed test Gardening

  • platform/mac-highsierra/hkdf.https.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt.
  • platform/mac/hkdf.https.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt.
  • platform/mac/imported/w3c/canvas/2d.shadow.gradient.basic-expected.png: Added.
9:09 AM Changeset in webkit [236914] by Antti Koivisto
  • 9 edits
    1 copy
    1 add in trunk

Move FontCascadeDescription to a file of its own
https://bugs.webkit.org/show_bug.cgi?id=190348

Reviewed by Chris Dumez.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/FontCascade.h:
  • platform/graphics/FontCascadeDescription.cpp: Copied from Source/WebCore/platform/graphics/FontDescription.cpp.

(WebCore::FontDescription::FontDescription): Deleted.
(WebCore::m_shouldAllowUserInstalledFonts): Deleted.
(WebCore::FontDescription::setLocale): Deleted.
(WebCore::FontDescription::invalidateCaches): Deleted.

  • platform/graphics/FontCascadeDescription.h: Copied from Source/WebCore/platform/graphics/FontDescription.h.

(WebCore::FontDescription::operator!= const): Deleted.
(WebCore::FontDescription::computedSize const): Deleted.
(WebCore::FontDescription::computedPixelSize const): Deleted.
(WebCore::FontDescription::italic const): Deleted.
(WebCore::FontDescription::stretch const): Deleted.
(WebCore::FontDescription::weight const): Deleted.
(WebCore::FontDescription::fontSelectionRequest const): Deleted.
(WebCore::FontDescription::renderingMode const): Deleted.
(WebCore::FontDescription::textRenderingMode const): Deleted.
(WebCore::FontDescription::script const): Deleted.
(WebCore::FontDescription::locale const): Deleted.
(WebCore::FontDescription::orientation const): Deleted.
(WebCore::FontDescription::nonCJKGlyphOrientation const): Deleted.
(WebCore::FontDescription::widthVariant const): Deleted.
(WebCore::FontDescription::featureSettings const): Deleted.
(WebCore::FontDescription::variationSettings const): Deleted.
(WebCore::FontDescription::fontSynthesis const): Deleted.
(WebCore::FontDescription::variantCommonLigatures const): Deleted.
(WebCore::FontDescription::variantDiscretionaryLigatures const): Deleted.
(WebCore::FontDescription::variantHistoricalLigatures const): Deleted.
(WebCore::FontDescription::variantContextualAlternates const): Deleted.
(WebCore::FontDescription::variantPosition const): Deleted.
(WebCore::FontDescription::variantCaps const): Deleted.
(WebCore::FontDescription::variantNumericFigure const): Deleted.
(WebCore::FontDescription::variantNumericSpacing const): Deleted.
(WebCore::FontDescription::variantNumericFraction const): Deleted.
(WebCore::FontDescription::variantNumericOrdinal const): Deleted.
(WebCore::FontDescription::variantNumericSlashedZero const): Deleted.
(WebCore::FontDescription::variantAlternates const): Deleted.
(WebCore::FontDescription::variantEastAsianVariant const): Deleted.
(WebCore::FontDescription::variantEastAsianWidth const): Deleted.
(WebCore::FontDescription::variantEastAsianRuby const): Deleted.
(WebCore::FontDescription::variantSettings const): Deleted.
(WebCore::FontDescription::opticalSizing const): Deleted.
(WebCore::FontDescription::fontStyleAxis const): Deleted.
(WebCore::FontDescription::shouldAllowUserInstalledFonts const): Deleted.
(WebCore::FontDescription::setComputedSize): Deleted.
(WebCore::FontDescription::setItalic): Deleted.
(WebCore::FontDescription::setStretch): Deleted.
(WebCore::FontDescription::setIsItalic): Deleted.
(WebCore::FontDescription::setWeight): Deleted.
(WebCore::FontDescription::setRenderingMode): Deleted.
(WebCore::FontDescription::setTextRenderingMode): Deleted.
(WebCore::FontDescription::setOrientation): Deleted.
(WebCore::FontDescription::setNonCJKGlyphOrientation): Deleted.
(WebCore::FontDescription::setWidthVariant): Deleted.
(WebCore::FontDescription::setFeatureSettings): Deleted.
(WebCore::FontDescription::setVariationSettings): Deleted.
(WebCore::FontDescription::setFontSynthesis): Deleted.
(WebCore::FontDescription::setVariantCommonLigatures): Deleted.
(WebCore::FontDescription::setVariantDiscretionaryLigatures): Deleted.
(WebCore::FontDescription::setVariantHistoricalLigatures): Deleted.
(WebCore::FontDescription::setVariantContextualAlternates): Deleted.
(WebCore::FontDescription::setVariantPosition): Deleted.
(WebCore::FontDescription::setVariantCaps): Deleted.
(WebCore::FontDescription::setVariantNumericFigure): Deleted.
(WebCore::FontDescription::setVariantNumericSpacing): Deleted.
(WebCore::FontDescription::setVariantNumericFraction): Deleted.
(WebCore::FontDescription::setVariantNumericOrdinal): Deleted.
(WebCore::FontDescription::setVariantNumericSlashedZero): Deleted.
(WebCore::FontDescription::setVariantAlternates): Deleted.
(WebCore::FontDescription::setVariantEastAsianVariant): Deleted.
(WebCore::FontDescription::setVariantEastAsianWidth): Deleted.
(WebCore::FontDescription::setVariantEastAsianRuby): Deleted.
(WebCore::FontDescription::setOpticalSizing): Deleted.
(WebCore::FontDescription::setFontStyleAxis): Deleted.
(WebCore::FontDescription::setShouldAllowUserInstalledFonts): Deleted.
(WebCore::FontDescription::operator== const): Deleted.

  • platform/graphics/FontDescription.cpp:

(WebCore::FontDescription::invalidateCaches):
(WebCore::FontCascadeDescription::FontCascadeDescription): Deleted.
(WebCore::FontCascadeDescription::effectiveFamilyCount const): Deleted.
(WebCore::FontCascadeDescription::effectiveFamilyAt const): Deleted.
(WebCore::FontCascadeDescription::lighterWeight): Deleted.
(WebCore::FontCascadeDescription::bolderWeight): Deleted.
(WebCore::FontCascadeDescription::familiesEqualForTextAutoSizing const): Deleted.
(WebCore::FontCascadeDescription::familyNamesAreEqual): Deleted.
(WebCore::FontCascadeDescription::familyNameHash): Deleted.
(WebCore::FontCascadeDescription::foldedFamilyName): Deleted.

  • platform/graphics/FontDescription.h:

(WebCore::FontCascadeDescription::operator!= const): Deleted.
(WebCore::FontCascadeDescription::familyCount const): Deleted.
(WebCore::FontCascadeDescription::firstFamily const): Deleted.
(WebCore::FontCascadeDescription::familyAt const): Deleted.
(WebCore::FontCascadeDescription::families const): Deleted.
(WebCore::FontCascadeDescription::specifiedSize const): Deleted.
(WebCore::FontCascadeDescription::isAbsoluteSize const): Deleted.
(WebCore::FontCascadeDescription::lighterWeight const): Deleted.
(WebCore::FontCascadeDescription::bolderWeight const): Deleted.
(WebCore::FontCascadeDescription::useFixedDefaultSize const): Deleted.
(WebCore::FontCascadeDescription::kerning const): Deleted.
(WebCore::FontCascadeDescription::keywordSize const): Deleted.
(WebCore::FontCascadeDescription::keywordSizeAsIdentifier const): Deleted.
(WebCore::FontCascadeDescription::fontSmoothing const): Deleted.
(WebCore::FontCascadeDescription::isSpecifiedFont const): Deleted.
(WebCore::FontCascadeDescription::setOneFamily): Deleted.
(WebCore::FontCascadeDescription::setFamilies): Deleted.
(WebCore::FontCascadeDescription::setSpecifiedSize): Deleted.
(WebCore::FontCascadeDescription::setIsAbsoluteSize): Deleted.
(WebCore::FontCascadeDescription::setKerning): Deleted.
(WebCore::FontCascadeDescription::setKeywordSize): Deleted.
(WebCore::FontCascadeDescription::setKeywordSizeFromIdentifier): Deleted.
(WebCore::FontCascadeDescription::setFontSmoothing): Deleted.
(WebCore::FontCascadeDescription::setIsSpecifiedFont): Deleted.
(WebCore::FontCascadeDescription::equalForTextAutoSizing const): Deleted.
(WebCore::FontCascadeDescription::initialItalic): Deleted.
(WebCore::FontCascadeDescription::initialFontStyleAxis): Deleted.
(WebCore::FontCascadeDescription::initialWeight): Deleted.
(WebCore::FontCascadeDescription::initialStretch): Deleted.
(WebCore::FontCascadeDescription::initialSmallCaps): Deleted.
(WebCore::FontCascadeDescription::initialKerning): Deleted.
(WebCore::FontCascadeDescription::initialFontSmoothing): Deleted.
(WebCore::FontCascadeDescription::initialTextRenderingMode): Deleted.
(WebCore::FontCascadeDescription::initialFontSynthesis): Deleted.
(WebCore::FontCascadeDescription::initialVariantPosition): Deleted.
(WebCore::FontCascadeDescription::initialVariantCaps): Deleted.
(WebCore::FontCascadeDescription::initialVariantAlternates): Deleted.
(WebCore::FontCascadeDescription::initialOpticalSizing): Deleted.
(WebCore::FontCascadeDescription::initialLocale): Deleted.
(WebCore::FontCascadeDescription::operator== const): Deleted.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • rendering/style/RenderStyle.h:
6:55 AM Changeset in webkit [236913] by mitz@apple.com
  • 32 edits in trunk

Source/ThirdParty:
gtest part of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Anders Carlsson.

Didn’t turn on any of the warnings Xcode recommended for this third-party test support
library.

  • gtest/xcode/Config/DebugProject.xcconfig: Set the deployment target in engineering builds like we do in other projects. This addresses a build-time warning when building clients of the library that its deployment target doesn’t match theirs.
  • gtest/xcode/Config/ReleaseProject.xcconfig: Ditto.
  • gtest/xcode/gtest.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

Tools:
Tools part of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Anders Carlsson.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
  • DumpRenderTree/mac/Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_STRICT_PROTOTYPES, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.
  • DumpRenderTree/mac/DumpRenderTreeMac.h: Addressed the strict prototype warning.
  • DumpRenderTree/mac/EditingDelegate.mm: Suppressed the deprecated implementations warning around deprecated methods or categories on deprecated classes.
  • DumpRenderTree/mac/FrameLoadDelegate.mm: Ditto.

(-[FrameLoadDelegate webView:windowScriptObjectAvailable:]):

  • DumpRenderTree/mac/TestRunnerMac.mm: Ditto.

(-[SynchronousLoader connection:didReceiveAuthenticationChallenge:]):

  • MiniBrowser/Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_STRICT_PROTOTYPES, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.
  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
  • MiniBrowser/mac/AppDelegate.h: Addressed the strict prototypes warning.
  • MiniBrowser/mac/WK2BrowserWindowController.m: Removed an unused #import to avoid having to address the fact that many of the WebKit C SPI headers trigger the strict prototypes warning.
  • MobileMiniBrowser/Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_STRICT_PROTOTYPES, CLANG_WARN_SUSPICIOUS_MOVE (by fixing a typo), CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
  • MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck and remove the .xcconfig files from the Copy Bundle Resources build phase.
  • TestWebKitAPI/Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_STRICT_PROTOTYPES, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED. Made the WebKit headers be treated as system headers to avoid dealing with the fact that many C SPI headers trigger the strict prototypes warning.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(-[DownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
(-[BlobDownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
(-[UIDownloadAsFileTestDelegate _webView:contextMenu:forElement:]):
(-[RedirectedDownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):

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

(-[AudioSessionCategoryUIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]):

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

(-[RenderInContextWebViewDelegate webViewDidFinishLoad:]):
(-[RenderInContextWebViewDelegate webView:didFailLoadWithError:]):

  • TestWebKitAPI/Tests/ios/SetTimeoutFunction.mm:

(-[SetTimeoutFunctionWebViewDelegate webViewDidFinishLoad:]):
(-[SetTimeoutFunctionWebViewDelegate webView:didFailLoadWithError:]):
(-[SetTimeoutFunctionWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]):

  • TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm:

(-[DragInfo namesOfPromisedFilesDroppedAtDestination:]):

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(-[DragAndDropTestWKWebView dragImage:at:offset:event:pasteboard:source:slideBack:]):

  • TestWebKitAPI/mac/SyntheticBackingScaleFactorWindow.m:

(-[SyntheticBackingScaleFactorWindow IGNORE_WARNINGS_END]):
(-[SyntheticBackingScaleFactorWindow userSpaceScaleFactor]): Deleted.

  • TestWebKitAPI/mac/TestDraggingInfo.mm:

(-[TestDraggingInfo namesOfPromisedFilesDroppedAtDestination:]):

In all of the above, suppressed the deprecated implementations warning where needed.

  • WebKitTestRunner/Configurations/Base.xcconfig: Enabled ENABLE_STRICT_OBJC_MSGSEND, CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_COMMA, CLANG_WARN_CONSTANT_CONVERSION, CLANG_WARN_EMPTY_BODY, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION, CLANG_WARN_STRICT_PROTOTYPES, CLANG_WARN_UNREACHABLE_CODE, CLANG_WARNDUPLICATE_METHOD_MATCH, GCC_WARN_UNDECLARED_SELECTOR, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and GCC_NO_COMMON_BLOCKS.
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView dragImage:at:offset:event:pasteboard:source:slideBack:]): Suppressed

the deprecated implementations warning.

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::replaceTextAtRange): Addressed an int-conversion warning.

6:25 AM Changeset in webkit [236912] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[EME][GStreamer] Add support for WebM encrypted caps "application/x-webm-enc"
https://bugs.webkit.org/show_bug.cgi?id=189239

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-10-08
Reviewed by Xabier Rodriguez-Calvar.

Add the support of GStreamer caps "application/x-webm-enc" in GStreamerCommon.

The DRM system id field in the encrypted event is set to GST_PROTECTION_UNSPECIFIED_SYSTEM_ID
in case of WebM, for details, see https://bugzilla.gnome.org/attachment.cgi?id=365211.

Tests: media/encrypted-media/clearKey/clearKey-encrypted-webm-eventmse.html

media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::capsMediaType):
(WebCore::areEncryptedCaps):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered):

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

(webkitMediaCommonEncryptionDecryptTransformCaps):

4:18 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
Note: See TracTimeline for information about the timeline view.