Timeline



Nov 14, 2019:

10:50 PM Changeset in webkit [252479] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make gcSafeMemcpy/gcSafeMemmove/gcSafeZeroMemory work properly on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=204217

Reviewed by Mark Lam.

We need to be explicit in the code about using 64-bit types and pointer types.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):
(JSC::gcSafeMemmove):
(JSC::gcSafeZeroMemory):

7:26 PM Changeset in webkit [252478] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

Crash when setting HTMLInputElement.checked for a disconnected radio button in a shadow root
https://bugs.webkit.org/show_bug.cgi?id=204208
<rdar://problem/57045830>

Reviewed by Tim Horton.

Source/WebCore:

r251110 refactored logic in RadioButtonGroup::updateCheckedState, such that it assumes that m_nameToGroupMap
always contains an entry for the given input element's name. Prior to r251110, it would bail if m_nameToGroupMap
didn't exist. In this particular case, a named input element is added to a shadow root that is disconnected from
the document. This means that in HTMLInputElement::didFinishInsertingNode(), we will avoid adding the element to
the radio button group, even though it has a tree scope due to the isConnected() check.

Later, when we try to set the checked attribute, we invoke updateCheckedState which sees that we have a tree
scope and assumes that we must have previously added the input element to the radio button map; this leads to a
nullptr deref, as the map is empty. Thus, to fix this, we change the isConnected() check to isInTreeScope().

Test: fast/forms/radio-input-in-shadow-root-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didFinishInsertingNode):

LayoutTests:

Adds a new layout test to verify that we don't crash in this scenario.

  • fast/forms/radio-input-in-shadow-root-crash-expected.txt: Added.
  • fast/forms/radio-input-in-shadow-root-crash.html: Added.

2019-11-07 Youenn Fablet <youenn@apple.com>

Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897

Reviewed by Eric Carlson.

  • webrtc/simulcast-h264.html:

Update test to remove rid information from answer.

7:14 PM Changeset in webkit [252477] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.layout_package
https://bugs.webkit.org/show_bug.cgi?id=204212

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.layout_package.
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(convert_trie_to_flat_paths): Use compatible iteritems.
(JSONResultsGenerator._insert_failure_summaries): Use compatible iterkeys.
(JSONResultsGenerator._convert_json_to_current_version): Use compatible iteritems.
(JSONResultsGenerator._convert_tests_to_trie): Use compatible iterkeys.

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

(JSONGeneratorTest._verify_json_results): Use items instead of iteritems.
(JSONGeneratorTest.test_test_timings_trie): Python 3's json decoder is sensitive to ordering.

6:57 PM Changeset in webkit [252476] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Tools

Flaky API Test TestWebKitAPI.ServiceWorkers.ThrottleCrash
https://bugs.webkit.org/show_bug.cgi?id=203734

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-14
Reviewed by Youenn Fablet.

Some API tests using TCPServer have multiple concurrent HTTP requests in flight at the same time.
When this happens, sometimes NSURLSession will make multiple TCP connections to the same server.
TCPServer is not the right tool for this because it handles all its connections manually.
To make the test server agnostic to how many connections are initiated, I introduce HTTPServer,
which uses the Network framework to handle as many responses and as many connections as happen.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h: Added.

(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):

  • TestWebKitAPI/cocoa/HTTPServer.mm: Added.

(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::HTTPServer::port const):
(TestWebKitAPI::HTTPServer::request const):

  • TestWebKitAPI/config.h:
6:56 PM Changeset in webkit [252475] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.servers
https://bugs.webkit.org/show_bug.cgi?id=204209

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.servers.
  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Use compatible iteritems.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd._prepare_config): Ditto.

6:55 PM Changeset in webkit [252474] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, update the feature status of WebAuthn

  • features.json:
6:12 PM Changeset in webkit [252473] by youenn@apple.com
  • 1248 adds in trunk/Source/ThirdParty/libwebrtc

Add missing file from https://trac.webkit.org/changeset/252472
https://bugs.webkit.org/show_bug.cgi?id=203897

Unreviewed, fixing the build

5:03 PM Changeset in webkit [252472] by youenn@apple.com
  • 2540 edits in trunk

Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897

Patch by Youenn Fablet <youenn@apple.com> on 2019-11-07

LayoutTest/ChangeLog

  • webrtc/simulcast-h264.html: Update test to remove rid information from answer.

LayoutTests/imported/w3c/ChangeLog

  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-getStats.https-expected.txt:

Source/ThirdParty/libwebrtc/ChangeLog

  • webrtc: Updated

Source/WebCore/ChangeLog

Update include paths and binding code.
Covered by existing tests.

  • Modules/mediastream/RTCStatsReport.idl: Removed no longer standard codec stat.
  • Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::setConfiguration):
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCObservers.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: (WebCore::fillInboundRTPStreamStats): (WebCore::fillOutboundRTPStreamStats): (WebCore::fillRTCCodecStats):
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
  • platform/mediastream/RealtimeIncomingAudioSource.h:
  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::BasicPacketSocketFactory::CreateClientTcpSocket):
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
  • testing/MockLibWebRTCPeerConnection.cpp:
  • testing/MockLibWebRTCPeerConnection.h:

Source/WebKit/ChangeLog

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::createClientTCPSocket):
  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.mm:
  • NetworkProcess/webrtc/NetworkRTCSocket.h:
  • Shared/RTCPacketOptions.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp: (WebKit::RTCSocketFactory::CreateClientTcpSocket):
  • WebProcess/Network/webrtc/LibWebRTCResolver.h:
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: (WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:
  • WebProcess/Network/webrtc/WebRTCMonitor.h:
5:02 PM Changeset in webkit [252471] by Megan Gardner
  • 2 edits in trunk/Tools

Fix another build error from r252449
https://bugs.webkit.org/show_bug.cgi?id=204173

Unreviewed Build Fix for r252449

  • TestWebKitAPI/ios/UIKitSPI.h:
4:34 PM Changeset in webkit [252470] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

[iOS] Audio capture fails when a track is unmuted
https://bugs.webkit.org/show_bug.cgi?id=204202
<rdar://problem/57005820>

Reviewed by Youenn Fablet.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::canProduceAudioChanged): Remove unused "client" parameter.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(MediaSessionManagerCocoa::sessionCanProduceAudioChanged): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setMuted): Change m_muted before calling start/stop so the
muted method will return the correct value.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::startInternal): Call sessionCanProduceAudioChanged before
starting the audio unit so the audio session category is set correctly. ASSERT if the
audio session category is incorrect.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::startProducingData): Ditto.

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

Make NetworkResourceLoader::didReceiveResponse more straightforward after r244700
https://bugs.webkit.org/show_bug.cgi?id=204134

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-14
Reviewed by Youenn Fablet.

If m_isKeptAlive is true, we do not want to receive any HTTP body.
Rather than storing the CompletionHandler and relying on the destructor to call it, just call it.

No change in behavior.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

4:16 PM Changeset in webkit [252468] by Jonathan Bedard
  • 13 edits in trunk/Tools

Python 3: Add support in webkitpy.style
https://bugs.webkit.org/show_bug.cgi?id=203762

Reviewed by Stephanie Lewis.

  • Scripts/check-webkit-style: Remove Python 2 version check.
  • Scripts/test-webkitpy-python3: Add webkitpy.style.
  • Scripts/webkitpy/style/checker.py: Use explicit imports.
  • Scripts/webkitpy/style/checker_unittest.py:

(GlobalVariablesTest.test_max_reports_per_category): Use keys() over iterkeys.

  • Scripts/webkitpy/style/checkers/contributors.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/test_expectations.py:

(TestExpectationsChecker._should_log_linter_warning): Use compatible iteritems.

  • Scripts/webkitpy/style/error_handlers_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/filter.py:

(FilterConfiguration._get_path_specific_lower): Return list instead of iterator.
(FilterConfiguration._filter_from_path): Avoid confusion with filter builtin.

  • Scripts/webkitpy/style/filter_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/main.py:

(CheckWebKitStyle._engage_awesome_stderr_hacks): No reason to apply encoding to stderr
in Python 3.

  • Scripts/webkitpy/style/main_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/patchreader.py:

(PatchReader.check): Ensure that the provided patch is a string, use items over iteritems.

2:45 PM Changeset in webkit [252467] by commit-queue@webkit.org
  • 13 edits in trunk

The CSSParser should not consume negative or unit-less lengths for the SVG properties 'r', 'rx' and 'ry'
https://bugs.webkit.org/show_bug.cgi?id=204200

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-11-14
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/geometry/parsing/r-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/r-invalid-expected.txt:
  • web-platform-tests/svg/geometry/parsing/rx-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/rx-invalid-expected.txt:
  • web-platform-tests/svg/geometry/parsing/ry-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/ry-invalid-expected.txt:

Source/WebCore:

Both the CSSParser and SVGElement::parseAttribute() should be consistent
when parsing these properties.

The type of these properties is <length-percentage>, which requires specifying
the unit for the length: https://www.w3.org/TR/css-values/#length-value.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::isSimpleLengthPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRxOrRy):
(WebCore::CSSPropertyParser::parseSingleValue):

LayoutTests:

  • svg/css/parse-length-expected.txt:
  • svg/css/parse-length.html:
2:18 PM Changeset in webkit [252466] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Crash under WebProcess::processTaskStateDidChange(WebKit::ProcessTaskStateObserver::TaskState)
https://bugs.webkit.org/show_bug.cgi?id=204177

Reviewed by Jer Noble.

Delay creating the ProcessTaskStateObserver until the WebProcess's connection to its parent had been
initialized. This is necessary because ProcessTaskStateObserver may call WebProcess::processTaskStateDidChange()
on a background thread, which will deference the IPC connection.

  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::~WebProcess):
(WebKit::WebProcess::initializeConnection):
(WebKit::m_taskStateObserver): Deleted.

  • WebProcess/WebProcess.h:
2:01 PM Changeset in webkit [252465] by Megan Gardner
  • 2 edits in trunk/Tools

Fix build error from r252449
https://bugs.webkit.org/show_bug.cgi?id=204173

Reviewed by Wenson Hsieh.

Include needed header for all platforms, not just iPhone.

  • TestWebKitAPI/ios/UIKitSPI.h:
1:59 PM Changeset in webkit [252464] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Use toLength() and getIndexQuickly() in JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=204122

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-14
Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/json-stringify-array-replacer.js: Added.
  • microbenchmarks/json-stringify-empty-array.js: Added.

Source/JavaScriptCore:

Using toLength() is semantically equivalent and performance-neutral, while adding
JSObject::getIndexQuickly() advances microbenchmarks/json-stringify-array-replacer.js
by 34%.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):

12:51 PM Changeset in webkit [252463] by Caio Lima
  • 5 edits in trunk

Support or16(TrustedImm32, AbsoluteAddress) in the MIPS MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=204126

Reviewed by Mark Lam.

JSTests:

Decreasing the number of iterations of test to avoid timeout into slow
ports.

  • stress/regress-57020338.js:

Source/JavaScriptCore:

This is adjusting the implementation of or16 for MIPS. This required
the addition of load16 and store16 for this macro assembler as
well. This is also fixing build issue on ARMv7 or16 implementation.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or16):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or16):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::store16):

12:32 PM Changeset in webkit [252462] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Invalidation] Skip non-dirty out-of-flow boxes.
https://bugs.webkit.org/show_bug.cgi?id=204196

Reviewed by Antti Koivisto.

Use the InvalidationState to decide whether the current out-of-flow box needs layout.

  • layout/FormattingContext.cpp:

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

12:16 PM Changeset in webkit [252461] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

[Web Animations] Accelerated transitions do not always remove their backing accelerated animation
https://bugs.webkit.org/show_bug.cgi?id=204198
<rdar://problem/45847205>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark some WPT progressions.

  • web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt:

Source/WebCore:

Test: webanimations/accelerated-animation-removal-upon-transition-completion.html

There could be several calls to KeyframeEffect::updateAcceleratedAnimationState() made after an animation had completed but
before any pending accelerated actions would be processed during the next animation frame. In the first call, we would correctly
set add Accelerated::Stop to the list of pending accelerated actions, but on a further call, wrongly assuming that the fact that
we'd already recorded an Accelerated::Stop action meant that it had been committed, we would clear that action and the animation
would never be explicitly removed.

Additionally, we would schedule animation resolution on the DocumentTimeline in the wrong function, we now do that in the function
where animations with an effect pending accelerated actions is added rather than in the function where we track which elements have
accelerated animations.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateAcceleratedAnimationState):

LayoutTests:

Add a new test that checks that a CSS Transition targeting the transform property which requires a layer correctly clears the
accelerated animation upon completion.

  • webanimations/accelerated-animation-removal-upon-transition-completion-expected.txt: Added.
  • webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
11:42 AM Changeset in webkit [252460] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

[LFC][Invalidation] Use InvalidationState to populate LayoutQueue
https://bugs.webkit.org/show_bug.cgi?id=204191
<rdar://problem/57179614>

Reviewed by Antti Koivisto.

Start using the InvalidationState in BlockFormattingContext::layoutInFlowContent() to filter out
non-dirty boxes (currently InvalidationState returns true for every box).

  • layout/FormattingContext.cpp:

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

  • layout/FormattingContext.h: InvalidationState should not be const as we keep adding additional dirty boxes during layout.
  • layout/LayoutContext.cpp:

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

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

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

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

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

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/invalidation/InvalidationState.cpp:

(WebCore::Layout::InvalidationState::needsLayout const):

  • layout/invalidation/InvalidationState.h:
  • layout/tableformatting/TableFormattingContext.cpp:

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

  • layout/tableformatting/TableFormattingContext.h:
10:09 AM Changeset in webkit [252459] by beidson@apple.com
  • 14 edits
    1 add in trunk

Summary: WKWebView is missing an equivalent to WebKit 1's API to set the media style.
<rdar://problem/49862107> and https://bugs.webkit.org/show_bug.cgi?id=203974

Reviewed by Alex Christensen.

Source/WebKit:

Covered by new API test.

This is basically:

  • Expose a read/write property on WKWebView.
  • Pipe the new media type to the WebProcess.
  • Force a style recalc.
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setMediaType:]):
(-[WKWebView mediaType]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setOverriddenMediaType):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::overriddenMediaType const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::overrideMediaType const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setOverriddenMediaType):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::overriddenMediaType const):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

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

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:07 AM Changeset in webkit [252458] by beidson@apple.com
  • 6 edits
    1 add in trunk

pageZoom/setPageZoom: should not be in a Mac-only part of WKWebView.mm
https://bugs.webkit.org/show_bug.cgi?id=204128

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):

Tools:

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

(TestWebKitAPI::getClientWidth):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView waitUntilClientWidthIs:]):

7:28 AM Changeset in webkit [252457] by Chris Fleizach
  • 3 edits in trunk/Source/WebCore

AX: Implement isolated tree support for math objects
https://bugs.webkit.org/show_bug.cgi?id=204056
<rdar://problem/57054644>

Reviewed by Zalan Bujtas.

Implement isolated tree support for math objects.
Add a method for setting and getting objects.

  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::setObjectProperty):
(WebCore::AXIsolatedObject::objectAttributeValue const):

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
6:58 AM Changeset in webkit [252456] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Clarify webkitpy/style/optparser_unittest.py by removing parse variables
https://bugs.webkit.org/show_bug.cgi?id=204183

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/style/optparser_unittest.py:

(ArgumentParserTest.test_parse_documentation): Remove parse variable.
(ArgumentParserTest.test_parse_bad_values): Ditto.
(ArgumentParserTest.test_parse_default_arguments): Ditto.
(ArgumentParserTest.test_parse_explicit_arguments): Ditto.
(ArgumentParserTest.test_parse_files): Ditto.

6:25 AM Changeset in webkit [252455] by graouts@webkit.org
  • 9 edits
    5 adds in trunk

[Web Animations] Retargeted transitions targeting accelerated properties do not stop the original transition
https://bugs.webkit.org/show_bug.cgi?id=204116
<rdar://problem/57116961>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/css-transition-in-flight-reversal-accelerated.html

There were two problems with the reversal of in-flight transitions targeting accelerated properties. The first issue
was that the animated value for the accelerated property would be missing from the before-change style since animating
acceelerated properties do not update RenderStyle while running. As such, we would not detect the need to reverse a
transition, but rather simply cancel the initial transition with no new transition to reverse its effect, since the
value in the before-change and after-change styles were the same. We now fix this by figuring out whether the running
transition for that property is accelerated in AnimationTimeline::updateCSSTransitionsForElementAndProperty() and
applying the animated value to the before-change style.

The second issue was that canceling an accelerated transition had no visible effect since the accelerated animation
was not stopped. We now have a new AnimationEffect::animationWasCanceled() virtual method which KeyframeEffect overrides
to add AcceleratedAction::Stop to the list of pending acceleration actions for this effect. We also ensure that the document
timeline knows to run DocumentTimeline::updateAnimationsAndSendEvents() if there are pending accelerated actions, even if
there aren't any animations waiting to be resolved, since a single canceled transition would prevent this method from
completing.

  • animation/AnimationEffect.h:
  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animationWasCanceled):

  • animation/KeyframeEffect.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::cancel):

LayoutTests:

Add a new test that checks that reversing an in-flight transition for "opacity" and "transform" correctly reverses the transition.

  • platform/mac-wk1/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.
  • webanimations/css-transition-in-flight-reversal-accelerated-expected.txt: Added.
  • webanimations/css-transition-in-flight-reversal-accelerated.html: Added.
3:44 AM Changeset in webkit [252454] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Add support for remotes file for EWS builders (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=203899

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-build/factories.py:

(JSCTestsFactory.init): Passed remotes parameter to JSCTestsFactory as well.

  • BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-test.
3:29 AM Changeset in webkit [252453] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Enable JSC queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=204179

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json: Enabled the scheduler for JSC queue.
  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Enabled JSC queue bubble on new EWS.
  • QueueStatusServer/config/queues.py: Removed JSC queue from old EWS.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer): Removed JSC queue from bot-watcher's dashboard.

1:37 AM Changeset in webkit [252452] by ysuzuki@apple.com
  • 29 edits
    1 add in trunk/Source

[JSC] BlockDirectory's bits should be compact
https://bugs.webkit.org/show_bug.cgi?id=204149

Reviewed by Robin Morisset.

Source/JavaScriptCore:

We start applying IsoSubspace to all JSCells. This means that IsoSubspace should be small enough,
so that we can hold many IsoSubspaces without considering about memory regression.

In this patch, we introduce several things to shrink sizeof(IsoSubspace) from 528 to 384.

  1. Adjusting members to remove some paddings.
  2. Remove m_heap field since this can be got from the caller easily.
  3. Make MarkedSpace::heap() efficient: just doing pointer arithmetic.
  4. Remove m_size field from IsoSubspace since BlockDirectory knows cellSize.
  5. Introduce BlockDirectoryBits, which repalces 9 FastBitVector in BlockDirectory to this one class. Since all FastBitVector has the same size, we should not have a size field for each FastBitVector. We reuse FastBitVector's View mechanism to keep the same ergonomics while making BlockDirectoryBits much smaller. We put 9 uint32_t as Segment, and manage Vector<Segment> in this data structure. Since we touch several bits at the same time for the same block-index, this data structure is compact and efficient.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/AlignedMemoryAllocator.cpp:

(JSC::AlignedMemoryAllocator::registerDirectory):

  • heap/AlignedMemoryAllocator.h:
  • heap/Allocator.h:
  • heap/AllocatorInlines.h:

(JSC::Allocator::allocate const):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::BlockDirectory):
(JSC::BlockDirectory::findEmptyBlockToSteal):
(JSC::BlockDirectory::findBlockForAllocation):
(JSC::BlockDirectory::tryAllocateBlock):
(JSC::BlockDirectory::addBlock):
(JSC::BlockDirectory::removeBlock):
(JSC::BlockDirectory::prepareForAllocation):
(JSC::BlockDirectory::beginMarkingForFullCollection):
(JSC::BlockDirectory::endMarking):
(JSC::BlockDirectory::snapshotUnsweptForEdenCollection):
(JSC::BlockDirectory::snapshotUnsweptForFullCollection):
(JSC::BlockDirectory::findBlockToSweep):
(JSC::BlockDirectory::sweep):
(JSC::BlockDirectory::shrink):
(JSC::BlockDirectory::assertNoUnswept):
(JSC::BlockDirectory::parallelNotEmptyBlockSource):
(JSC::BlockDirectory::dumpBits):

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::cellKind const):
(JSC::BlockDirectory::forEachBitVector):
(JSC::BlockDirectory::forEachBitVectorWithName):
(JSC::BlockDirectory::heap): Deleted.

  • heap/BlockDirectoryBits.h: Added.

(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::BlockDirectoryBitVectorWordView):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::numBits const):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::word const):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::word):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::clearAll):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::view const):
(JSC::BlockDirectoryBits::numBits const):
(JSC::BlockDirectoryBits::resize):
(JSC::BlockDirectoryBits::forEachSegment):

  • heap/BlockDirectoryInlines.h:

(JSC::BlockDirectory::forEachBlock):
(JSC::BlockDirectory::forEachNotEmptyBlock):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::allocatorForSlow):
(JSC::CompleteSubspace::tryAllocateSlow):

  • heap/CompleteSubspaceInlines.h:

(JSC::CompleteSubspace::allocateNonVirtual):

  • heap/IsoCellSet.cpp:

(JSC::IsoCellSet::parallelNotEmptyMarkedBlockSource):

  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::forEachMarkedCell):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):

  • heap/IsoSubspace.h:

(JSC::IsoSubspace::cellSize):
(JSC::IsoSubspace::allocatorForNonVirtual):
(JSC::IsoSubspace::size const): Deleted.
(): Deleted.

  • heap/IsoSubspaceInlines.h:

(JSC::IsoSubspace::allocateNonVirtual):

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::AutoremovingIsoSubspace::~AutoremovingIsoSubspace):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::doTestCollectionsIfNeeded):

  • heap/LocalAllocator.h:
  • heap/LocalAllocatorInlines.h:

(JSC::LocalAllocator::allocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::dumpState):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::sweepBlocks):
(JSC::MarkedSpace::prepareForAllocation):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):
(JSC::MarkedSpace::prepareForMarking):
(JSC::MarkedSpace::beginMarking):
(JSC::MarkedSpace::snapshotUnswept):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::heap const): Deleted.

  • heap/MarkedSpaceInlines.h:

(JSC::MarkedSpace::heap const):

  • heap/Subspace.cpp:

(JSC::Subspace::initialize):

  • heap/Subspace.h:

Source/WTF:

  • wtf/FastBitVector.h:

(WTF::fastBitVectorArrayLength):
(WTF::FastBitVectorImpl::unsafeWords):
(WTF::FastBitVectorImpl::unsafeWords const):
(WTF::FastBitReference::FastBitReference):
(WTF::FastBitReference::operator bool const):
(WTF::FastBitReference::operator=):
(WTF::FastBitVector::at):
(WTF::FastBitVector::operator[]):
(WTF::FastBitVector::BitReference::BitReference): Deleted.
(WTF::FastBitVector::BitReference::operator bool const): Deleted.
(WTF::FastBitVector::BitReference::operator=): Deleted.

Nov 13, 2019:

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

Fix GTK/WPE builds after enabling POINTER_EVENTS support
https://bugs.webkit.org/show_bug.cgi?id=204164

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2019-11-13
Reviewed by Žan Doberšek.

Our g++ 8.3.0 yields "error: call to non-constexpr function
WTFReportAssertionFailure" when compiling rendering/EventRegion.cpp
since r252366.

Turn both toTouchAction() / toIndex() into static inline instead of
constexpr functions to appease g++ 8.3.0.

  • rendering/EventRegion.cpp:

(WebCore::toIndex):
(WebCore::toTouchAction):

10:39 PM Changeset in webkit [252450] by Wenson Hsieh
  • 11 edits
    6 adds in trunk

[Clipboard API] Add support for Clipboard.write()
https://bugs.webkit.org/show_bug.cgi?id=204078
<rdar://problem/57087756>

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch adds support for the write() method on Clipboard, forgoing sanitization for now (this will be added
in the next patch). See below for more details.

Tests: editing/async-clipboard/clipboard-change-data-while-writing.html

editing/async-clipboard/clipboard-write-basic.html
editing/async-clipboard/clipboard-write-items-twice.html

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::~Clipboard):
(WebCore::shouldProceedWithClipboardWrite):
(WebCore::Clipboard::write):

Implement this method by creating a new ItemWriter and loading data from all the ClipboardItems that are being
written. If the previous writer is still in progress, make sure that we invalidate it first (rejecting the
promise) before proceeding.

(WebCore::Clipboard::didResolveOrReject):
(WebCore::Clipboard::ItemWriter::ItemWriter):
(WebCore::Clipboard::ItemWriter::write):
(WebCore::Clipboard::ItemWriter::invalidate):
(WebCore::Clipboard::ItemWriter::setData):
(WebCore::Clipboard::ItemWriter::didSetAllData):
(WebCore::Clipboard::ItemWriter::reject):

Introduce a private helper class to collect clipboard data for writing from a list of ClipboardItems, and
resolve or reject the given promise when finished.

  • Modules/async-clipboard/Clipboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::createItemProviderRegistrationList):

Fix a stray bug where the empty string could not be read back as plain text or URLs from the platform pasteboard
on iOS. This is exercised by the new layout test clipboard-write-basic.html.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write):

Address another issue where we would sometimes try and declare the empty string as a pasteboard type when
writing to the platform pasteboard. While benign in a real NSPasteboard, there's no reason to include it in this
list of declared pasteboard types.

Tools:

Make the LocalPasteboard in WebKitTestRunner compatible with calls to -writeObjects: with a list of pasteboard
items. Currently, attempts to -writeObjects: result in a crash, since NSPasteboard code will attempt to
communicate with pasted and fail. We fix this by implementing -writeObjects: and storing the array of
NSPasteboardItems in LocalPasteboard, the same way we do in DumpRenderTree's LocalPasteboard implementation.

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard _clearContentsWithoutUpdatingChangeCount]):

Factor out logic to clear the pasteboard's content into a separate helper, and clear out the list of saved
pasteboard items here as well.

(-[LocalPasteboard clearContents]):

Implement -clearContents in DumpRenderTree's LocalPasteboard, so that we can test Clipboard.write() in WebKit1.

(-[LocalPasteboard writeObjects:]):

Also make it so that we save any NSPasteboardItems we write to the local pasteboard, so that we can return them
later in -pasteboardItems.

(-[LocalPasteboard pasteboardItems]):

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(-[LocalPasteboard initWithName:]):

Clean up this code a bit by replacing manual reference counting for typesArray and its neighboring data
structures with RetainPtr. Additionally, underscore-prefix the instance variables on LocalPasteboard to match
most of the other Objective-C objects in WebKit.

(-[LocalPasteboard name]):
(-[LocalPasteboard _clearContentsWithoutUpdatingChangeCount]):

Clear out the NSPasteboardItem list here too.

(-[LocalPasteboard clearContents]):
(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard _addTypesWithoutUpdatingChangeCount:owner:]):
(-[LocalPasteboard changeCount]):
(-[LocalPasteboard types]):
(-[LocalPasteboard availableTypeFromArray:]):
(-[LocalPasteboard setData:forType:]):
(-[LocalPasteboard dataForType:]):
(-[LocalPasteboard pasteboardItems]):
(-[LocalPasteboard writeObjects:]):

Implement this by porting over the implementation that currently exists in DumpRenderTree. Like in
DumpRenderTree, we want to also save the NSPasteboardItem array we're given here, so that we can return it in
-pasteboardItems.

(-[LocalPasteboard dealloc]): Deleted.

LayoutTests:

Adds several new layout tests to exercise the write method on Clipboard.

  • editing/async-clipboard/clipboard-change-data-while-writing-expected.txt: Added.
  • editing/async-clipboard/clipboard-change-data-while-writing.html: Added.

Verify that if the platform pasteboard contents change while the page attempts to write to the clipboard, we
will reject the promise for writing.

  • editing/async-clipboard/clipboard-write-basic-expected.txt: Added.
  • editing/async-clipboard/clipboard-write-basic.html: Added.

Verify that writing multiple ClipboardItems to the clipboard using write() works. Among these items, one of them
contains no types, and another only contains types that resolve to empty strings. The page should be able to
read all four items back using Clipboard.read().

  • editing/async-clipboard/clipboard-write-items-twice-expected.txt: Added.
  • editing/async-clipboard/clipboard-write-items-twice.html: Added.

Verify that attempting to write a clipboard item that resolves on a long delay, and then attempting to write
another item that resolves on a short delay before the previous clipboard item has finished writing does not
cause the latter call to Clipboard.write() to fail. Additionally, the clipboard should contain the contents of
the second set of clipboard items, rather than the first.

  • editing/async-clipboard/resources/async-clipboard-helpers.js:

(async.checkClipboardItemString):

Add a helper method to read a string for the given type, out of the given clipboard item, and compare it against
an expected result.

8:40 PM Changeset in webkit [252449] by Megan Gardner
  • 5 edits in trunk/Tools

Cleanup UIKitSPI for Testing
https://bugs.webkit.org/show_bug.cgi?id=204173

Reviewed by Simon Fraser.

Remove old staging for UIKit APIs that should not be needed now.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator _concludeDropAndPerformOperationIfNecessary]):

  • TestWebKitAPI/ios/UIKitSPI.h:
8:04 PM Changeset in webkit [252448] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "aqua" and "fuchsia" aren't detected as colors
https://bugs.webkit.org/show_bug.cgi?id=204085

Reviewed by Devin Rousso.

  • UserInterface/Models/Color.js:
7:36 PM Changeset in webkit [252447] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Invalid type of argument 'eventName' for command 'DOMDebugger.setEventBreakpoint' call. It must be 'string' but it is 'object'.
https://bugs.webkit.org/show_bug.cgi?id=204176

Reviewed by Timothy Hatcher.

  • UserInterface/Views/EventBreakpointPopover.js:

(WI.EventBreakpointPopover.prototype.dismiss):
Only create the WI.EventBreakpoint if the <input> has a value.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.addURLBreakpoint):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._willDismissEventBreakpointPopover):
(WI.SourcesNavigationSidebarPanel.prototype._willDismissURLBreakpointPopover):
Drive-by: if the configuration isn't valid (e.g. no breakpoint) or the breakpoint already

exists, beep.

7:07 PM Changeset in webkit [252446] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Add build step to Analyze JSC Tests Results
https://bugs.webkit.org/show_bug.cgi?id=204174

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunJavaScriptCoreTests.evaluateCommand): invoke AnalyzeJSCTestsResults step.
(AnalyzeJSCTestsResults): Build step to analyze layout-test results.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeJSCTestsResults):
(TestAnalyzeJSCTestsResults.test_single_new_stress_failure): Added unit-test.
(TestAnalyzeJSCTestsResults.test_single_new_binary_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_multiple_new_stress_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_multiple_new_binary_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_new_stress_and_binary_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_stress_failure_on_clean_tree): Ditto.
(TestAnalyzeJSCTestsResults.test_binary_failure_on_clean_tree): Ditto.
(TestAnalyzeJSCTestsResults.test_stress_and_binary_failure_on_clean_tree): Ditto.
(TestAnalyzeJSCTestsResults.test_flaky_stress_and_binary_failures): Ditto.
(TestAnalyzeJSCTestsResults.test_flaky_and_consistent_stress_failures): Ditto.
(TestAnalyzeJSCTestsResults.test_flaky_and_consistent_failures_with_clean_tree_failures): Ditto.

6:26 PM Changeset in webkit [252445] by mmaxfield@apple.com
  • 4 edits
    1 add
    1 delete in trunk/Websites/webkit.org

[WebGPU] Update Babylon WebGPU demos to work on ToT
https://bugs.webkit.org/show_bug.cgi?id=204182

Reviewed by Dean Jackson.

3 things were wrong:

  • demos/webgpu/babylon/babylonjs.loaders.min.js: Added.

(return):
(return.n.d):
(return.get n.r):
(return.n.t):
(return.):
(return.n.n):
(return.n.o):

  • demos/webgpu/babylon/oneHelmetWebGPU.html:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/babylon/oneSphereWebGPUWSLShaders.js:

(sampler.reflectionSamplerSampler.register):
(float3.normal.attribute): Deleted.

  • demos/webgpu/babylon/vertexShaderGLSL1.glsl: Removed. Unnecessary.
6:21 PM Changeset in webkit [252444] by commit-queue@webkit.org
  • 19 edits in trunk

[SVG2] Add the 'orient' property of the interface SVGMarkerElement
https://bugs.webkit.org/show_bug.cgi?id=203646

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-11-13
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/idlharness.window-expected.txt:
  • web-platform-tests/svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:

Source/WebCore:

This patch does the following:

  1. Adding the 'orient' property of the interface SVGMarkerElement: The specs link is: https://www.w3.org/TR/SVG2/painting.html#InterfaceSVGMarkerElement
  1. Keeping the pair properties <orientAngle, orientType> in sync when when one of them changes to keep them in consistent state.
  1. Setting the value of SVGMarkerOrientAutoStartReverse: The specs https://www.w3.org/TR/SVG2/painting.html#__svg__SVGMarkerElement__orient says that when setting the 'orient' attribute to "auto-start-reverse", the value of orientType should be SVG_MARKER_ORIENT_UNKNOWN. Therefore SVGMarkerOrientAutoStartReverse has to be equal to SVGMarkerOrientUnknown.
  • svg/SVGAngle.h:

(WebCore::SVGAngle::unitType const):
(WebCore::SVGAngle::valueForBindings const):
(WebCore::SVGAngle::valueInSpecifiedUnits const):
(WebCore::SVGAngle::unitType): Deleted.
(WebCore::SVGAngle::valueForBindings): Deleted.
(WebCore::SVGAngle::valueInSpecifiedUnits): Deleted.
Make these functions const.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):
Calling SVGPropertyRegistry::setAnimatedPropertDirty() to set the dirty
flag of the animated property through its accessor.

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::orient const):
(WebCore::SVGMarkerElement::setOrient):
Add the new property handlers.

(WebCore::SVGMarkerElement::setOrientToAuto):
(WebCore::SVGMarkerElement::setOrientToAngle):
Fix the bug of not setting the unitType of the SVGAngle in orientAngle.

  • svg/SVGMarkerElement.h:

Delete unused enum value SVG_MARKER_ORIENT_AUTOSTARTREVERSE.

  • svg/SVGMarkerElement.idl:
  • svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::highestEnumValue):
(WebCore::SVGIDLEnumLimits<SVGMarkerOrientType>::highestExposedEnumValue): Deleted.
Fix the value of SVGMarkerOrientAutoStartReverse. No need for
highestExposedEnumValue() since all the enum values are now exposed.

  • svg/properties/SVGAnimatedPropertyPairAccessorImpl.h:

Keep the pair properties <orientAngle, orientType> in sync.

  • svg/properties/SVGMemberAccessor.h:

(WebCore::SVGMemberAccessor::setDirty const):
This is what SVGElement::commitPropertyChange() used to do for all properties.

  • svg/properties/SVGPropertyOwnerRegistry.h:
  • svg/properties/SVGPropertyRegistry.h:

LayoutTests:

The pair properties <orientAngle, orientType> are now in sync. Fix the
tests which were assuming that these properties can change independently.

  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html:
  • svg/dynamic-updates/SVGMarkerElement-dom-orient-attr-expected.txt:
  • svg/dynamic-updates/SVGMarkerElement-dom-orient-attr.html:
6:08 PM Changeset in webkit [252443] by Jonathan Bedard
  • 11 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.controllers
https://bugs.webkit.org/show_bug.cgi?id=204180

Reviewed by Stephanie Lewis.

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

(_MessagePool.init): Use Python 3 queue syntax.
(_MessagePool._can_pickle): Use Python 3 pickle syntax.
(_MessagePool._loop): Use Python 3 queue syntax.
(_Worker.run): Use Python 3 queue syntax.
(_Worker._raise): Python 2 and Python 3 have different semantics for raising an exception
With a stack trace. However, 'raise' will raise the exception we are in the process of capturing,
Which is exactly what we want in this case.

  • Scripts/webkitpy/common/read_checksum_from_png.py:

(read_checksum): Standardize checksum as a string.

  • Scripts/webkitpy/common/system/filesystem.py:

(FileSystem.write_binary_file): Binary files should be written with bytes, not strings.

  • Scripts/webkitpy/common/system/filesystem_mock.py:

(MockFileSystem.write_binary_file): Binary files should be written with bytes, not strings.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py: assertItemsEqual is not

Defined in Python 3.

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

(Worker._do_post_tests_work): Use compatible iteritems.
(Sharder._shard_by_directory): Ditto.

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

(Manager.run): Use compatible itervalues.
(Manager._look_for_new_crash_logs): Use Python 3 item iteration.
(Manager._results_to_upload_json_trie): Use compatible itervalues.
(Manager._stats_trie): Use compatible iteritems.

  • Scripts/webkitpy/port/base.py:

(Port.expected_text): Be explicit about decoding text expectations.

  • Scripts/webkitpy/port/mock_drt.py:

(MockDRT.write_test_output):

5:59 PM Changeset in webkit [252442] by pvollan@apple.com
  • 9 edits in trunk

REGRESSION: WKWebView navigation fails when navigating from about:blank
https://bugs.webkit.org/show_bug.cgi?id=203852
Source/WebKit:

<rdar://problem/56973112>

Reviewed by Brent Fulgham.

Previously, WebPageProxy::loadFile would unconditionally create a sandbox extension for the resource directory URL. Currently,
this method is calling WebPageProxy::maybeInitializeSandboxExtension to create a sandbox extension if needed. The sandbox
extension for the resource URL is not created if the WebContent process already has assumed access to the resource URL, which
is the case when loading the same file for the second time. The sandbox extension still needs to be issued in this case, since
the WebContent process is revoking its extension when the load is done. This patch restore the original behaviour by adding a
flag to WebPageProxy::maybeInitializeSandboxExtension to indicate whether the method should check if the process already has
assumed access.

API test: WKWebView.LoadRelativeFileURL

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):

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

(WebKit::WebProcessProxy::shouldSendPendingMessage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequestWaitingForProcessLaunch):
(WebKit::WebPage::loadRequestWaitingForPID): Deleted.

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

Tools:

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm:

(TEST):

5:54 PM Changeset in webkit [252441] by Fujii Hironori
  • 6 edits in trunk

[Win][DumpRenderTree][WebKitTestRunner] eventSender.keyDown should support function keys
https://bugs.webkit.org/show_bug.cgi?id=204146

Reviewed by Ross Kirsling.

Tools:

Changed eventSender.keyDown of DRT and WTR to support sending
function keys.

In addition to that, this change set correct scan code to LPARAM
for all key events. Unfortunately, there is no API to get a
correct extended scan code from a virtual key because
MapVirtualKey and MapVirtualKeyEx doesn't work as expected.
makeKeyDataForScanCode turns on KF_EXTENDED flag for some keys
explicitly for the workaround.
<http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/>

  • DumpRenderTree/win/EventSender.cpp:

(makeKeyDataForScanCode):
(keyDownCallback):

  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::makeKeyDataForScanCode):
(WTR::EventSenderProxy::keyDown):

LayoutTests:

  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Unskipped fast/events/keydown-function-keys.html and fast/events/keydown-leftright-keys.html.

5:04 PM Changeset in webkit [252440] by Jonathan Bedard
  • 32 edits in trunk/Tools

Python 3: Add support in webkitpy.style.checkers
https://bugs.webkit.org/show_bug.cgi?id=203761

Rubber-stamped by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.style.checkers.
  • Scripts/webkitpy/port/builders.py:

(all_port_names): Convert map to a list before concatenating.

  • Scripts/webkitpy/style/checkers/changelog.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/changelog_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/cmake.py: Ditto.
  • Scripts/webkitpy/style/checkers/cmake_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/common_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/contributors.py: Ditto.
  • Scripts/webkitpy/style/checkers/cpp.py:

(Position): Add rich comparison functions.
(check_for_copyright): Use range instead of xrange.
(detect_functions): Ditto.
(check_language): Use r-string.
(check_for_include_what_you_use): Use range instead of xrange.
(_process_lines): Convert iterator to list, use range instead of xrange.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest): Be explicit about bytes vs strings.

  • Scripts/webkitpy/style/checkers/js.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/js_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/jsonchecker.py: Ditto.

(JSONFeaturesChecker.check):

  • Scripts/webkitpy/style/checkers/jsonchecker_unittest.py: Ditto.

(JSONCheckerTest.test_conflict_marker): Differentiate between Python 2 and 3
json parsers.

  • Scripts/webkitpy/style/checkers/jstest_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/messagesin.py: Ditto.
  • Scripts/webkitpy/style/checkers/messagesin_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/png_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/python.py:

(PythonChecker.check): Only run pylint in Python 2.
(PythonChecker._check_pylint): Use r string.
(Pylinter.run): Surpress logging from Pylint.

  • Scripts/webkitpy/style/checkers/python_unittest.py: Use explicit imports.

(PythonCheckerTest.test_check): Add FIXME for running pylint in Python 3.

  • Scripts/webkitpy/style/checkers/python_unittest_falsepositives.py:
  • Scripts/webkitpy/style/checkers/python_unittest_input.py:
  • Scripts/webkitpy/style/checkers/test_expectations.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/test_expectations_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/text.py: Ditto.
  • Scripts/webkitpy/style/checkers/text_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/watchlist_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/xcodeproj_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/xml_unittest.py: Ditto.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pep8): Update pep8 version.

4:35 PM Changeset in webkit [252439] by Simon Fraser
  • 5 edits
    2 adds in trunk

REGRESSION (r249434): flashy menus on wellsfargo.com
https://bugs.webkit.org/show_bug.cgi?id=204175
<rdar://problem/56654512>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: compositing/backing/backing-for-clipping.html

r249434 made overflow an "indirect compositing reason" (i.e. we composite for overflow:hidden
when necessary to clip a composited descendant). However this made a clause in RenderLayerCompositor::requiresOwnBackingStore()
return early when this reason is set, skipping the bounds check, so we need to do the bound check first.
This is similar to the fix in r252070.

The change to the perspective test relates to the "FIXME"; we don't use the correct ancestor for the
bounds check, so sometimes layers can have backing store when they don't need it until that's fixed.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):

LayoutTests:

  • compositing/backing/backing-for-clipping-expected.html: Added.
  • compositing/backing/backing-for-clipping.html: Added.
  • compositing/backing/no-backing-for-perspective-expected.txt:
  • platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt:
4:25 PM Changeset in webkit [252438] by jer.noble@apple.com
  • 7 edits
    1 add in trunk

Link mediaDataLoadsAutomatically setting to AutoplayPolicy
https://bugs.webkit.org/show_bug.cgi?id=201738
<rdar://problem/55315194>

Reviewed by Eric Carlson.

Source/WebCore:

This change has two effects: on Mac, when the embedding app sets an AutoplayPolicy to
deny autoplay, this will also deny the ability to load media data beyond "preload"; on iOS
when the embedding app sets an AutoplayPolicy to allow autoplay, this will also allow media
data to load beyond "preload".

  • dom/Document.cpp:

(WebCore::Document::mediaDataLoadsAutomatically const):

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::finishInitialization):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/media-loading.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

4:17 PM Changeset in webkit [252437] by clopez@igalia.com
  • 2 edits in trunk/Tools

test262-runner: use NUMBER_OF_PROCESSORS and stop multiplying the number of cores.
https://bugs.webkit.org/show_bug.cgi?id=204154

Reviewed by Ross Kirsling.

We have enabled running test262 on GTK and WPE test bots on r252362
But it seems this test262 runner is not respecting the environment
variable NUMBER_OF_PROCESSORS. We set that on the bot environments
to tell each worker how much parallelism it should use.

Instead this runner was using all the system cores (which on some
cases is 256) and that was causing issues on other containers/workloads
running on the same system at the same time.

This environment variable is understood by all webkit-related test scripts.
It should be accepted also by this test262 runner script.

On top of that, this patch removes the multiplication that is done
when the number of parallel jobs is not specified and its calculated
from the available cores of the system. On one hand there is no
written motivation for this multiplication behaviour, and on the other
hand there is evidence that it doesn't improve performance.

  • Scripts/test262/Runner.pm:

(getProcesses):

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

Web Inspector: DOM.highlightSelector should work for "a:visited"
https://bugs.webkit.org/show_bug.cgi?id=146161
<rdar://problem/21467303>

Reviewed by Antti Koivisto.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):
Rather than use document.querySelectorAll, which doesn't match pseudo-selectors, attempt
to mimic how CSS actually matches nodes.

  • rendering/style/RenderStyleConstants.h:

(WebCore::PseudoIdSet::remove): Added.

3:13 PM Changeset in webkit [252435] by mmaxfield@apple.com
  • 22 edits in trunk

[Mac] Fix build
https://bugs.webkit.org/show_bug.cgi?id=204136

Reviewed by Alex Christensen.

Remove deprecation warnings.

Source/WebCore:

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformCanBlitOnScroll const):

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformCanBlitOnScroll const):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::systemColor const):
(WebCore::paintAttachmentTitleBackground):

Source/WebKit:

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error):
(WebKit::initializeCocoaOverrides):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView changeFont:]):
(-[WKWebView changeColor:]):
(-[WKWebView view:stringForToolTip:point:userData:]):
(-[WKWebView pasteboardChangedOwner:]):
(-[WKWebView pasteboard:provideDataForType:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView changeFont:]):
(-[WKView view:stringForToolTip:point:userData:]):
(-[WKView pasteboardChangedOwner:]):
(-[WKView pasteboard:provideDataForType:]):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::launchApplicationAtURL):
(WebKit::PluginProcessProxy::openFile):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionView setBackgroundStyle:]):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
(WebKit::WebPageProxy::openPDFFromTemporaryFolderWithNativeApplication):

Source/WebKitLegacy/mac:

  • Plugins/WebPluginController.mm:

(-[WebPluginController webPlugInContainerSelectionColor]):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::setCopiesOnScroll):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView view:stringForToolTip:point:userData:]):
(-[WebHTMLView pasteboardChangedOwner:]):
(-[WebHTMLView pasteboard:provideDataForType:]):
(-[WebHTMLView changeFont:]):
(-[WebHTMLView changeColor:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView _openWithFinder:]):

Tools:

  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController validateMenuItem:]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):

  • TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm:

(-[DragInfo ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[DragInfo draggedImage]): Deleted.

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

Cleanup old UIKit Staging
https://bugs.webkit.org/show_bug.cgi?id=204130

Reviewed by Wenson Hsieh.

Not new tests - linking only.

  • Platform/spi/ios/UIKitSPI.h:

Removing old staging code that should be unnecessary now.

2:56 PM Changeset in webkit [252433] by Megan Gardner
  • 3 edits in trunk/Tools

check-webkit-style: fix false errors for obj-c method calls in range-based for statements using colon syntax
https://bugs.webkit.org/show_bug.cgi?id=204142

Reviewed by Jonathan Bedard.

Allow for the existance of an obj-c method call in a range-based for statement that also uses colons.
Do not allow colons between square brackets to trigger the error.
Also add a test for this specific case.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_spacing):

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

[iOS] Cannot open camera from websites
https://bugs.webkit.org/show_bug.cgi?id=204168
<rdar://problem/57138788>

Reviewed by Jer Noble.

The sandbox is blocking a required service.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:41 PM Changeset in webkit [252431] by commit-queue@webkit.org
  • 5 edits in trunk/Source

VeryHigh priority loads are actually loading at VeryLow priority
https://bugs.webkit.org/show_bug.cgi?id=203423
<rdar://problem/56621789>

Patch by Benjamin Nham <Ben Nham> on 2019-11-13
Reviewed by Antti Koivisto.

There are two issues with the way we translate ResourceLoadPriority to
CFURLRequestPriority:

  1. We call _CFNetworkHTTPConnectionCacheSetLimit and set 1 too few

priority levels. This means VeryHigh priority loads are actually out
of bounds, which causes CFNetwork to set the priority level back to 0
in HTTPConnectionCacheEntry::_prepareNewRequest. After this patch we'll
call _CFNetworkHTTPConnectionCacheSetLimit with the correct number of
levels.

  1. _CFNetworkHTTPConnectionCacheSetLimit doesn't work for NSURLSession

right now (<rdar://problem/56621205>), so we have to map to the default
number of CFURLRequestPriority levels, which is 4. Right now we have 5
ResourceLoadPriority levels, so there will be some aliasing involved.
After this patch VeryLow gets a priority of -1 and Low gets a priority
of 0, but due to the aforementioned clamping behavior both VeryLow and
Low will effectively both have a CFURLRequestPriority of 0.

Source/WebCore:

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::initializeMaximumHTTPConnectionCountPerHost):
(WebCore::initializeHTTPConnectionSettingsOnStartup):

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):
(WebCore::toPlatformRequestPriority):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::initializeNetworkSettings):

1:51 PM Changeset in webkit [252430] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] Parse jsc_results.json for JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204090

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunJavaScriptCoreTests):
(RunJavaScriptCoreTests.start): Initialize log_observer for json.
(RunJavaScriptCoreTests.commandComplete): Parse jsc_results.json and set properties accordingly.
(RunJavaScriptCoreTests.getResultSummary): Update the build-step summary string.
(ReRunJavaScriptCoreTests):
(RunJSCTestsWithoutPatch):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestRunJavaScriptCoreTests.setUp): Added sample json files for testing.
(TestRunJavaScriptCoreTests.configureStep):
(TestRunJavaScriptCoreTests.test_single_stress_test_failure): Added unit-tests.
(TestRunJavaScriptCoreTests.test_lot_of_stress_test_failure): Ditto.
(TestRunJavaScriptCoreTests.test_masm_failure): Ditto.
(TestRunJavaScriptCoreTests.test_b3_and_stress_test_failure): Ditto.
(TestRunJavaScriptCoreTests.test_dfg_air_and_stress_test_failure): Ditto.

1:47 PM Changeset in webkit [252429] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

Layout Tests in imported/w3c/web-platform-tests/websockets/ are flakey failures after r246406
https://bugs.webkit.org/show_bug.cgi?id=199013
<rdar://problem/51902173>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/websockets/Close-undefined.any-expected.txt:

LayoutTests:

Mark more tests as DumpJSConsoleLogInStdErr

1:33 PM Changeset in webkit [252428] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Remove timer to stop service worker process
https://bugs.webkit.org/show_bug.cgi?id=204118

Reviewed by Alex Christensen.

Removal of a timer that is never get activated.
No change of behavior.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):

  • UIProcess/WebProcessPool.h:
1:31 PM Changeset in webkit [252427] by youenn@apple.com
  • 13 edits in trunk/LayoutTests

Several XHR and CORS tests are flaky due to inconsistent order of console messages
https://bugs.webkit.org/show_bug.cgi?id=179607

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/access-control-and-redirects-async-expected.txt:
  • web-platform-tests/xhr/access-control-and-redirects-async-same-origin-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-header-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-method-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-not-supported-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-header-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-method-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-not-supported-expected.txt:
  • web-platform-tests/xhr/event-error.sub-expected.txt:
  • web-platform-tests/xhr/send-conditional-cors-expected.txt:

LayoutTests:

Use DumpJSConsoleLogInStdErr to remove console lines.

1:11 PM Changeset in webkit [252426] by Alan Coon
  • 5 edits in tags/Safari-609.1.9.5

Cherry-pick r252116. rdar://problem/57162237

Temporarily turn off NSURLSession isolation
https://bugs.webkit.org/show_bug.cgi?id=201822

Reviewed by Chris Dumez.

Source/WebKit:

Existing tests skipped.

Re-enabling it is tracked in rdar://problem/56921584.

  • NetworkProcess/cache/NetworkCacheStorage.h:

Bumps the version to force a clean cache.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

Skips setting needsIsolatedSession.

LayoutTests:

Re-enabling it is tracked in rdar://problem/56921584.

  • platform/wk2/TestExpectations:

Skipped the associated tests.

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

1:07 PM Changeset in webkit [252425] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.5/Source

Versioning.

1:05 PM Changeset in webkit [252424] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.5

New tag.

12:16 PM Changeset in webkit [252423] by dino@apple.com
  • 10 edits in trunk

Fix some WebGPU demos
https://bugs.webkit.org/show_bug.cgi?id=204167
Source/WebCore:

<rdar://problem/57160316>

Reviewed by Myles C. Maxfield.

Add a note referencing a bug I detected while fixing this demo.
And a drive-by typo.

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):

  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::copyBufferToTexture):

Websites/webkit.org:

Reviewed by Myles C. Maxfield.

Use COPY_ rather than TRANSFER_.

  • demos/webgpu/babylon/babylonWebGpu.max.js:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/hello-cube.html:
  • demos/webgpu/scripts/compute-boids-compile.js:
  • demos/webgpu/scripts/compute-boids-utils.js:

(async.createTextureFromImage):

  • demos/webgpu/textured-cube.html:
12:07 PM Changeset in webkit [252422] by rmorisset@apple.com
  • 53 edits
    1 add in trunk

Split ArithProfile into a Unary and a Binary version
https://bugs.webkit.org/show_bug.cgi?id=202832
<rdar://problem/56266847>

Reviewed by Keith Miller.

JSTests:

The new test (kindly provided by Mark Lam) catches the metadata corruption that used to happen in the previous version of this patch.

  • stress/regress-57020338.js: Added.

Source/JavaScriptCore:

ArithProfile was for a long time only used for add/sub/mul/div, but recently it started being used for negate. And it will soon also have to be used for inc and dec due to BigInt.
So in this patch I make a separate version that only has the data for a single argument, and thus takes half as much memory.

After discussing this change with Phil I realized that the ResultType(s) that were taking space in ArithProfile are not needed: they never change and a copy is already in the bytecode instruction itself.
Removing them allowed shrinking both kinds of ArithProfile to fit in 16 bits (9 and 13 respectively).
I kept the two kinds separate because they may shrink or grow independently in the future.

This also required adding the "orh" instruction to the offline assembler, to set bits in the ArithProfile.
This in turn motivated the addition of "storeh", as on RISC platforms "orh" on a memory location is actually loadh -> orh -> storeh.

Finally it required adding support for or16(TrustedImm32, AbsoluteAddress) in the MacroAssembler for the ICs.
Instead of directly calling it (like we used to do with or32), I introduced ArithProfile::emitUnconditionalSet, so that if either ArithProfile ever changes in size again we'll have fewer places to change.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::or16):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or16):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or16):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::or16):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::or16):

  • assembler/testmasm.cpp:

(JSC::testOrImmMem):
(JSC::run):

  • bytecode/ArithProfile.cpp:

(JSC::ArithProfile<BitfieldType>::emitObserveResult):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetDouble const):
(JSC::ArithProfile<BitfieldType>::emitSetDouble const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::emitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitUnconditionalSet const):
(WTF::printInternal):

  • bytecode/ArithProfile.h:

(JSC::ArithProfile::didObserveNonInt32 const):
(JSC::ArithProfile::didObserveDouble const):
(JSC::ArithProfile::didObserveNonNegZeroDouble const):
(JSC::ArithProfile::didObserveNegZeroDouble const):
(JSC::ArithProfile::didObserveNonNumeric const):
(JSC::ArithProfile::didObserveBigInt const):
(JSC::ArithProfile::didObserveInt32Overflow const):
(JSC::ArithProfile::didObserveInt52Overflow const):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumeric):
(JSC::ArithProfile::setObservedBigInt):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::observeResult):
(JSC::ArithProfile::addressOfBits const):
(JSC::ArithProfile::bits const):
(JSC::ArithProfile::ArithProfile):
(JSC::ArithProfile::hasBits const):
(JSC::ArithProfile::setBit):
(JSC::UnaryArithProfile::UnaryArithProfile):
(JSC::UnaryArithProfile::observedIntBits):
(JSC::UnaryArithProfile::observedNumberBits):
(JSC::UnaryArithProfile::argObservedType const):
(JSC::UnaryArithProfile::setArgObservedType):
(JSC::UnaryArithProfile::argSawInt32):
(JSC::UnaryArithProfile::argSawNumber):
(JSC::UnaryArithProfile::argSawNonNumber):
(JSC::UnaryArithProfile::observeArg):
(JSC::UnaryArithProfile::isObservedTypeEmpty):
(JSC::BinaryArithProfile::BinaryArithProfile):
(JSC::BinaryArithProfile::observedIntIntBits):
(JSC::BinaryArithProfile::observedNumberIntBits):
(JSC::BinaryArithProfile::observedIntNumberBits):
(JSC::BinaryArithProfile::observedNumberNumberBits):
(JSC::BinaryArithProfile::setLhsObservedType):
(JSC::BinaryArithProfile::setRhsObservedType):
(JSC::BinaryArithProfile::observeLHS):
(JSC::BinaryArithProfile::observeLHSAndRHS):
(JSC::BinaryArithProfile::isObservedTypeEmpty):

  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::addJITNegIC):
(JSC::CodeBlock::binaryArithProfileForBytecodeIndex):
(JSC::CodeBlock::unaryArithProfileForBytecodeIndex):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialArithFastCase):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addMathIC):

  • bytecode/Fits.h:
  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue const):
(JSC::MethodOfGettingAValueProfile::reportValue):

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::UnaryOpNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueNegate):

  • jit/JIT.h:
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_negate):
(JSC::JIT::emit_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emit_op_sub):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::copiedArithProfile):

  • jit/JITMathIC.h:

(JSC::JITMathIC::JITMathIC):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::arithProfile const):
(JSC::JITBinaryMathIC::JITBinaryMathIC):
(JSC::JITUnaryMathIC::JITUnaryMathIC):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:
  • jit/JITNegGenerator.cpp:

(JSC::JITNegGenerator::generateInline):
(JSC::JITNegGenerator::generateFastPath):

  • jit/JITNegGenerator.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntOffsetsExtractor.cpp:

(JSC::LLIntOffsetsExtractor::dummy):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm.rb:
  • offlineasm/arm64.rb:
  • offlineasm/cloop.rb:
  • offlineasm/instructions.rb:
  • offlineasm/mips.rb:
  • offlineasm/risc.rb:
  • offlineasm/x86.rb:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):

  • runtime/CommonSlowPaths.cpp:

(JSC::updateArithProfileForUnaryArithOp):
(JSC::updateArithProfileForBinaryArithOp):
(JSC::SLOW_PATH_DECL):

11:40 AM Changeset in webkit [252421] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Put more into IsoSubspace part 2
https://bugs.webkit.org/show_bug.cgi?id=204144

Reviewed by Mark Lam.

We are doing this step by step to carefully watch the bot status.
This patch puts following things into IsoSubspace.

  1. FunctionRareData
  2. ProxyObject
  3. SparseArrayValueMap
  • runtime/FunctionRareData.h:
  • runtime/ProxyObject.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
11:36 AM Changeset in webkit [252420] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/model/remote-object-weak-collection.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202932

Reviewed by Brian Burg.

  • inspector/model/remote-object-weak-collection.html:

Don't generatePreview when evaluating each expression, as that can create additional
references to the object. Use HeapAgent.gc() as that's guaranteed to be synchronous.

11:22 AM Changeset in webkit [252419] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Google Docs spreadsheet tiles render very slowly (because of event region painting)
https://bugs.webkit.org/show_bug.cgi?id=204160
<rdar://problem/57073401>

Reviewed by Simon Fraser.

Source/WebCore:

Content of a overflow:scroll area on this page doesn't cover the entire scrollable area and we end
up generating a complex shape for the event region. This is unnecessary as touches within scrollers
always scroll the content.

Test: fast/scrolling/ios/event-region-scrolled-contents-layer.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

Initialize event region for scrolled contents layer with layer-sized event region. This optimizes away
event region mutations. We still need to to do the event region paint to capture touch-action regions.

In future we should also improve Region type to not have pathological worst-case performance with complex
shapes.

LayoutTests:

  • fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt: Added.
  • fast/scrolling/ios/event-region-scrolled-contents-layer.html: Added.
11:15 AM Changeset in webkit [252418] by youenn@apple.com
  • 15 edits in trunk

Take service worker assertions based on client processes assertion states
https://bugs.webkit.org/show_bug.cgi?id=204119

Reviewed by Chris Dumez.

Source/WebKit:

Compute in network process which processes contain clients for service workers of a given process.
WebSWServerConnection implements it and sends update to UIProcess/WebProcessProxy.
WebProcessProxy keeps for each service worker process a set of client web processes.
WebProcessProxy now computes the service worker process assertion based on this set.

Add some private APIs to set process assertions/get service worker process assertion states.
Covered by new API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
(WebKit::WebSWServerConnection::contextConnectionCreated):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::webProcessIdentifier const):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setAssertionStateForTesting:]):
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]):
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]):

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

(WebKit::NetworkProcessProxy::registerWebProcessToServiceWorkerProcess):
(WebKit::NetworkProcessProxy::unregisterWebProcessToServiceWorkerProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::hasServiceWorkerForegroundActivityForTesting const):
(WebKit::WebProcessPool::hasServiceWorkerBackgroundActivityForTesting const):

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

(WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion):
(WebKit::WebProcessProxy::registerWebProcessToServiceWorkerProcess):
(WebKit::WebProcessProxy::unregisterWebProcessToServiceWorkerProcess):
(WebKit::WebProcessProxy::hasServiceWorkerForegroundActivityForTesting const):
(WebKit::WebProcessProxy::hasServiceWorkerBackgroundActivityForTesting const):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::setAssertionStateForTesting):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

Add tests checking service worker process assertion state.

11:00 AM Changeset in webkit [252417] by Andres Gonzalez
  • 9 edits in trunk/Source

AXObjectCache::rootObject should generate the isolated tree.
https://bugs.webkit.org/show_bug.cgi?id=204131

Reviewed by Chris Fleizach.

Source/WebCore:

No new tests, no change in functionality.

AXObjectCache::rootObject now returns an AccessibilityObject or an
IsolatedObject. This makes it possible for client code to use the
isolated tree seamlessly, as long as the client call happens on a
secondary thread. This allows WKTR AccessibilityController to use the
isolated tree in LayoutTests.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::createIsolatedTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::rootWebArea):
(WebCore::AXObjectCache::createIsolatedAccessibilityTreeHierarchy): Renamed.
(WebCore::AXObjectCache::generateIsolatedAccessibilityTree): renamed.

  • accessibility/AXObjectCache.h:

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]):
(-[WKAccessibilityWebPageObjectBase clientSupportsIsolatedTree]): Became a member of AXObjectCache.
(-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]): Deleted.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

10:45 AM Changeset in webkit [252416] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] AI should convert IsCellWithType to constant when Structure set is finite
https://bugs.webkit.org/show_bug.cgi?id=204141

Reviewed by Saam Barati.

JSTests:

  • stress/generator-cell-with-type.js: Added.

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

Source/JavaScriptCore:

We should fold IsCellWithType if Structure set is finite since we have a chance to know what JSType is.

  • dfg/DFGAbstractInterpreterInlines.h:

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

10:39 AM Changeset in webkit [252415] by Alan Bujtas
  • 6 edits
    4 moves
    1 add
    3 deletes in trunk/Source/WebCore

[LFC][Invalidation] Introduce InvalidationState and Context
https://bugs.webkit.org/show_bug.cgi?id=204140
<rdar://problem/57142106>

Reviewed by Antti Koivisto.

InvalidationContext take style/content changes and turn them into "dirty layout boxes" (stored in InvalidationState).
InvalidationState is the input to the (partial)subsequent layout.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/Invalidation.h: Removed.
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutContext::runLayout):
(WebCore::Layout::LayoutContext::styleChanged): Deleted.
(WebCore::Layout::LayoutContext::markNeedsUpdate): Deleted.

  • layout/LayoutContext.h:

(WebCore::Layout::LayoutContext::updateAll): Deleted.

  • layout/blockformatting/BlockInvalidation.cpp: Removed.
  • layout/blockformatting/BlockInvalidation.h: Removed.
  • layout/invalidation/InvalidationContext.cpp: Renamed from Source/WebCore/layout/inlineformatting/InlineInvalidation.cpp.

(WebCore::Layout::InvalidationContext::InvalidationContext):
(WebCore::Layout::InvalidationContext::styleChanged):
(WebCore::Layout::InvalidationContext::contentChanged):
(WebCore::Layout::InvalidationContext::subtreeChanged):

  • layout/invalidation/InvalidationContext.h: Renamed from Source/WebCore/layout/inlineformatting/InlineInvalidation.h.
  • layout/invalidation/InvalidationState.cpp: Renamed from Source/WebCore/layout/tableformatting/TableInvalidation.cpp.

(WebCore::Layout::InvalidationState::InvalidationState):
(WebCore::Layout::InvalidationState::markNeedsUpdate):

  • layout/invalidation/InvalidationState.h: Renamed from Source/WebCore/layout/tableformatting/TableInvalidation.h.

(WebCore::Layout::InvalidationState::formattingContextRoots const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::printLayoutTreeForLiveDocuments):

10:39 AM Changeset in webkit [252414] by Alan Coon
  • 4 edits
    1 delete in tags/Safari-609.1.10.1/Source/WebKit

Cherry-pick r252410. rdar://problem/57120002

Rollout(r251358) Causes load hangs
https://bugs.webkit.org/show_bug.cgi?id=204158
<rdar://problem/57120002>

Unreviewed, revert r251358 because it causes load hangs.

  • Platform/spi/Cocoa/SecItemSPI.h: Removed.
  • Shared/mac/SecItemRequestData.cpp: (WebKit::SecItemRequestData::decode):
  • Shared/mac/SecItemRequestData.h:
  • WebKit.xcodeproj/project.pbxproj:

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

10:25 AM Changeset in webkit [252413] by Alan Coon
  • 4 edits
    1 delete in tags/Safari-609.1.10.0.2/Source/WebKit

Cherry-pick r252410. rdar://problem/57120002

Rollout(r251358) Causes load hangs
https://bugs.webkit.org/show_bug.cgi?id=204158
<rdar://problem/57120002>

Unreviewed, revert r251358 because it causes load hangs.

  • Platform/spi/Cocoa/SecItemSPI.h: Removed.
  • Shared/mac/SecItemRequestData.cpp: (WebKit::SecItemRequestData::decode):
  • Shared/mac/SecItemRequestData.h:
  • WebKit.xcodeproj/project.pbxproj:

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

9:31 AM Changeset in webkit [252412] by youenn@apple.com
  • 6 edits in trunk

[ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=203275
<rdar://problem/56516249>

Reviewed by Alex Christensen.

Source/WebKit:

Fix flakiness by clearing the storage of each cache when the cache is being cleared.
This ensures that the storage salt gets recreated if needed.

To further improve repeatability, make sure that initialize based tasks happen after clear tasks are complete.
For that purpose, add a clear task counter and append initialize callbacks to a Vector if counter is not zero.
Increment counter at clear task creation and decrement counter at completion time.
If counter is back to 0, we can safely process the pending clear tasks.

Covered by unflaked test.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::~Engine):
(WebKit::CacheStorage::Engine::initialize):
(WebKit::CacheStorage::CompletionHandler<void):
(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):

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

(WebKit::CacheStorage::Caches::clearMemoryRepresentation):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
8:21 AM Changeset in webkit [252411] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Make webkitperl EWS robust against flakiness in webkitperl tests
https://bugs.webkit.org/show_bug.cgi?id=204155

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitPerlTests): Set haltOnFailure and flunkOnFailure to false.
(RunWebKitPerlTests.evaluateCommand): Add re-run step in case of failure.
(ReRunWebKitPerlTests):
(ReRunWebKitPerlTests.evaluateCommand): Overrided this to avoid running this step again.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestReRunJavaScriptCoreTests): Added unit-tests.

8:16 AM Changeset in webkit [252410] by Chris Dumez
  • 4 edits
    1 delete in trunk/Source/WebKit

Rollout(r251358) Causes load hangs
https://bugs.webkit.org/show_bug.cgi?id=204158
<rdar://problem/57120002>

Unreviewed, revert r251358 because it causes load hangs.

  • Platform/spi/Cocoa/SecItemSPI.h: Removed.
  • Shared/mac/SecItemRequestData.cpp:

(WebKit::SecItemRequestData::decode):

  • Shared/mac/SecItemRequestData.h:
  • WebKit.xcodeproj/project.pbxproj:
7:22 AM Changeset in webkit [252409] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebCore

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

This change broke the iOS and macOS build (Requested by
aakashja_ on #webkit).

Reverted changeset:

"Unreviewed, fix GTK/WPE builds after enabling POINTER_EVENTS
support."
https://trac.webkit.org/changeset/252402

Patch by Commit Queue <commit-queue@webkit.org> on 2019-11-13

6:40 AM Changeset in webkit [252408] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebDriver

WebDriver: duration can be undefined in pause actions
https://bugs.webkit.org/show_bug.cgi?id=204152

Reviewed by Carlos Alberto Lopez Perez.

Make duration optional in pause actions.

Fixes: imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[none]

imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[key]
imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[pointer]

  • Session.cpp:

(WebDriver::Session::performActions):

  • WebDriverService.cpp:

(WebDriver::processPauseAction):

6:38 AM Changeset in webkit [252407] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebDriver

WebDriver: check the frameID parameter before running switch to frame command
https://bugs.webkit.org/show_bug.cgi?id=204150

Reviewed by Carlos Alberto Lopez Perez.

We should check it's either null, a number (unsigned sort) or an object referencing a web element.

Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[foo]

imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[True]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[value2]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[value3]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_out_of_bounds[-1]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_out_of_bounds[65536]

  • Session.cpp:

(WebDriver::Session::switchToFrame): Remove the validation here. Also remove the case of being a frame name,
since that's not in the spec.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::switchToFrame): Check frameID type before calling Session::switchToFrame().

6:27 AM Changeset in webkit [252406] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: some layout test are failing on Win EWS
https://bugs.webkit.org/show_bug.cgi?id=204153

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:27 AM Changeset in webkit [252405] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Flaky API Test TestWebKitAPI.ServiceWorkers.ThrottleCrash
https://bugs.webkit.org/show_bug.cgi?id=203734
<rdar://problem/56814638>

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Disabled the flaky test for now.
5:45 AM Changeset in webkit [252404] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Flaky API Test TestWebKitAPI.WebKit.ApplicationCacheDirectories
https://bugs.webkit.org/show_bug.cgi?id=203732
<rdar://problem/56814641>

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: Disabled the flaky test for now.
5:00 AM Changeset in webkit [252403] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Skip imported/w3c/webdriver/tests/send_alert_text/send.py::test_alert_unsupported_operation.

The test looks specific to firefox.

4:31 AM Changeset in webkit [252402] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK/WPE builds after enabling POINTER_EVENTS support.

Our g++ 8.3.0 yields "error: call to non-constexpr function
WTFReportAssertionFailure" when compiling rendering/EventRegion.cpp
since r252366.

Simply remove the ASSERT_NOT_REACHED() from toIndex(): a missing value
in the switch statement will be caught by compiler warnings. Remove the
constexpr flag from toTouchAction(): in this case, the
ASSERT_NOT_REACHED() is useful and should stay.

Rubber-stamped by Philippe Normand.

  • rendering/EventRegion.cpp:

(WebCore::toIndex): Remove call to ASSERT_NOT_REACHED().
(WebCore::toTouchAction): Keep ASSERT_NOT_REACHED(), removed constexpr.

4:15 AM Changeset in webkit [252401] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Add expectations for execute script tests.

The ones checking the use of promises are failing.

3:31 AM Changeset in webkit [252400] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix build for ServiceWorkers disabled

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::enableServiceWorkers):

3:08 AM Changeset in webkit [252399] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix build for accessibility disabled.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::characterOffsetForIndex):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::children):
(WebCore::AccessibilityObject::updateBackingStore):

2:43 AM Changeset in webkit [252398] by calvaris@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Several issues while trying to play a video on NextCloud
https://bugs.webkit.org/show_bug.cgi?id=203194

Reviewed by Philippe Normand.

First problem was the loader not being restarted in PAUSED, so
sometimes playback never started since buffering never reached
100%.

Then, after investigating blocksizes and not being a viable
solution, reducing the 200_ms to 100_ms wait for new data was the
trick to avoid choppyness.

During investigation several issues were fixed like turning
GstQuery* into GRefPtr for MediaPlayerPrivateGStreamer::buffered,
making blocksize unsigned instead of uint64_t as it is in
GStreamer and creating and using WEBKIT_WEB_SRC_CAST since many
uses of WEBKIT_WEB_SRC cast were already protected by
WEBKIT_IS_WEB_SRC.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered const): GRefPtr<GstQuery>.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck const):
Use WEBKIT_WEB_SRC_CAST.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate): Reduce wait for data down to 100_ms and
request download restart also in PAUSED.
(CachedResourceStreamingClient::checkUpdateBlocksize): Turn
blocksize to unsigned.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Add

WEBKIT_WEB_SRC_CAST.

2:22 AM Changeset in webkit [252397] by commit-queue@webkit.org
  • 29 edits
    20 adds in trunk

Support stale-while-revalidate cache strategy
https://bugs.webkit.org/show_bug.cgi?id=201461

Patch by Rob Buis <rbuis@igalia.com> on 2019-11-13
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Import stale-while-revalidate WPT tests.

  • resources/import-expectations.json:
  • web-platform-tests/fetch/stale-while-revalidate/fetch-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/fetch-sw.https-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/fetch-sw.https.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/fetch.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-css.py: Added.

(main):

  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-image.py: Added.

(main):

  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-script.py: Added.

(id_token):
(main):

  • web-platform-tests/fetch/stale-while-revalidate/resources/w3c-import.log: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-css-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-css.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-image-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-image.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-script-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-script.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/sw-intercept.js: Added.

(async.broadcast):

  • web-platform-tests/fetch/stale-while-revalidate/w3c-import.log: Added.

Source/WebCore:

Start parsing the stale-while-revalidate Cache-Control directive
and expose it on ResourceResponse.

Tests: imported/w3c/web-platform-tests/fetch/stale-while-revalidate/fetch-sw.https.html

imported/w3c/web-platform-tests/fetch/stale-while-revalidate/fetch.html
imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-css.html
imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-image.html
imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-script.html

  • platform/network/CacheValidation.cpp:

(WebCore::parseCacheControlDirectives):

  • platform/network/CacheValidation.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::cacheControlStaleWhileRevalidate const):

  • platform/network/ResourceResponseBase.h:

Source/WebKit:

Add a new UseDecision value AsyncRevalidate for async revalidation. This is used
when the retrieved cache entry is a stale-while-revalidate response [1].
In case of AsyncRevalidate, a check is made to see if there is a
current async revalidation ongoing for the entry, if not one is
started. Regardless, the stale entry is returned, until either the
async revalidation ends successfully or at the moment when the
response expires for real.

[1] https://fetch.spec.whatwg.org/#concept-stale-while-revalidate-response

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::isStaleWhileRevalidateEnabled const):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cache/AsyncRevalidation.cpp: Added.

(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::AsyncRevalidation::staleWhileRevalidateEnding):
(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):

  • NetworkProcess/cache/AsyncRevalidation.h: Added.

(WebKit::NetworkCache::AsyncRevalidation::load const):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::makeUseDecision):
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::responseHasExpired): Deleted.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::dumpHTTPHeadersDiff):
(WebKit::NetworkCache::requestsHeadersMatch):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::dumpHTTPHeadersDiff): Deleted.
(WebKit::NetworkCache::requestsHeadersMatch): Deleted.

  • Sources.txt:
  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationGetStaleWhileRevalidateEnabled):
(WKWebsiteDataStoreConfigurationSetStaleWhileRevalidateEnabled):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::staleWhileRevalidateEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setStaleWhileRevalidateEnabled):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Enable stale-while-revalidate for the test runner.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):

LayoutTests:

Skip newly imported tests for WK1.

  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:26 AM Changeset in webkit [252396] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Add expectations for tests using strictFileInteractability

File upload is not yet supported.

1:25 AM Changeset in webkit [252395] by rniwa@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Add punctuation rules for C++ lambdas
https://bugs.webkit.org/show_bug.cgi?id=204021

Reviewed by Zalan Bujtas.

Added rules for not putting spaces between [] and () and omitting () whenever possible for C++ lambdas.

  • code-style.md:
12:45 AM Changeset in webkit [252394] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Update expectations of fullscreen tests.

They are failing in the bots, but passing locally and with wpt.

Nov 12, 2019:

10:51 PM Changeset in webkit [252393] by Simon Fraser
  • 6 edits
    2 adds in trunk/Source/WebCore

Move CSSUnitType enum to its own file
https://bugs.webkit.org/show_bug.cgi?id=204139

Reviewed by Antti Koivisto.

Pull CSSUnitType and CSSUnitCategory enums into their own file, since more future
code will use them and not CSSPrimitiveValue.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSPrimitiveValue.cpp:

(WebCore::unitCategory): Deleted.

  • css/CSSPrimitiveValue.h:
  • css/CSSUnits.cpp: Added.

(WebCore::unitCategory):

  • css/CSSUnits.h: Added.
8:41 PM Changeset in webkit [252392] by Simon Fraser
  • 67 edits in trunk/Source

Convert CSSPrimitiveValue::UnitType to an enum class, and cleanup
https://bugs.webkit.org/show_bug.cgi?id=204101

Reviewed by Antti Koivisto.
Source/WebCore:

Move CSSPrimitiveValue::UnitType to a standalone enum class CSSUnitType, and
CSSPrimitiveVallue::UnitCategory to CSSUnitCategory; these are going to more extensive
use in calc() and in the CSS OM.

Remove some comments about quirky units behavior which is now the standard behavior.

The compiler warned about some units not handled in CSSPrimitiveValue::formatNumberForCustomCSSText()
and CSSPrimitiveValue::equals() which may reveal bugs; assert for now.

  • css/CSSCalculationValue.cpp:

(WebCore::calcUnitCategory):
(WebCore::hasDoubleValue):
(WebCore::CSSCalcOperation::createSimplified):
(WebCore::CSSCalcOperation::primitiveType const):
(WebCore::CSSCalcExpressionNodeParser::parseValue):
(WebCore::createBlendHalf):
(WebCore::createCSS):
(WebCore::unitCategory): Deleted.

  • css/CSSCalculationValue.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForImageSliceSide):
(WebCore::valueForNinePieceImageQuad):
(WebCore::zoomAdjustedPixelValue):
(WebCore::zoomAdjustedNumberValue):
(WebCore::valueForReflection):
(WebCore::percentageOrZoomAdjustedValue):
(WebCore::matrixTransformValue):
(WebCore::adjustLengthForZoom):
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
(WebCore::OrderedNamedLinesCollector::appendLines const):
(WebCore::valueForGridPosition):
(WebCore::createTransitionPropertyValue):
(WebCore::delayValue):
(WebCore::durationValue):
(WebCore::textUnderlineOffsetToCSSValue):
(WebCore::textDecorationThicknessToCSSValue):
(WebCore::altTextToCSSValue):
(WebCore::contentToCSSValue):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::fontNonKeywordWeightFromStyleValue):
(WebCore::ComputedStyleExtractor::fontNonKeywordStretchFromStyleValue):
(WebCore::ComputedStyleExtractor::fontNonKeywordStyleFromStyleValue):
(WebCore::fontShorthandValueForSelectionProperties):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::blend const):

  • css/CSSCustomPropertyValue.cpp:

(WebCore::CSSCustomPropertyValue::customCSSText const):

  • css/CSSFontFace.cpp:

(WebCore::calculateItalicRange):

  • css/CSSFontStyleValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::compareStops):
(WebCore::CSSGradientValue::computeStops):
(WebCore::appendGradientStops):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::createDeprecatedCSSOMWrapper const):

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::unitCategory):
(WebCore::CSSPrimitiveValue::primitiveType const):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeDegrees const):
(WebCore::CSSPrimitiveValue::computeLengthDouble const):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::setFloatValue):
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):
(WebCore::CSSPrimitiveValue::getFloatValue const):
(WebCore::CSSPrimitiveValue::doubleValue const):
(WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
(WebCore::CSSPrimitiveValue::doubleValueInternal const):
(WebCore::CSSPrimitiveValue::setStringValue):
(WebCore::CSSPrimitiveValue::getStringValue const):
(WebCore::CSSPrimitiveValue::stringValue const):
(WebCore:: const):
(WebCore::CSSPrimitiveValue::getRGBColorValue const):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):
(WebCore::CSSPrimitiveValue::collectDirectComputationalDependencies const):
(WebCore::CSSPrimitiveValue::collectDirectRootComputationalDependencies const):
(WebCore::CSSPrimitiveValue::unitCategory): Deleted.

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::isAngle const):
(WebCore::CSSPrimitiveValue::isFontRelativeLength):
(WebCore::CSSPrimitiveValue::isLength):
(WebCore::CSSPrimitiveValue::isResolution):
(WebCore::CSSPrimitiveValue::createAllowingMarginQuirk):
(WebCore::CSSPrimitiveValue::computeTime const):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator short const):
(WebCore::CSSPrimitiveValue::operator unsigned short const):
(WebCore::CSSPrimitiveValue::operator int const):
(WebCore::CSSPrimitiveValue::operator unsigned const):
(WebCore::CSSPrimitiveValue::operator float const):
(WebCore::CSSPrimitiveValue::operator LineClampValue const):
(WebCore::CSSPrimitiveValue::operator ColumnFill const):
(WebCore::CSSPrimitiveValue::operator ColumnSpan const):
(WebCore::CSSPrimitiveValue::convertingToLengthRequiresNonNullStyle const):
(WebCore::CSSPrimitiveValue::operator ImageOrientation const):

  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::namedItem):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

  • css/CSSValue.h:
  • css/CSSValuePool.cpp:

(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::createValue):

  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createValue):

  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const):
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue):

  • css/DeprecatedCSSOMPrimitiveValue.h:
  • css/DeprecatedCSSOMRGBColor.h:
  • css/MediaQueryEvaluator.cpp:

(WebCore::doubleValue):
(WebCore::evaluateResolution):

  • css/MediaQueryExpression.cpp:

(WebCore::featureWithValidIdent):

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::glyphOrientationToCSSPrimitiveValue):
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor const):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::asText const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::parseSimpleLength):
(WebCore::parseSimpleAngle):
(WebCore::parseSimpleLengthValue):
(WebCore::parseColorIntOrPercentage):
(WebCore::fastParseColorInternal):
(WebCore::parseTransformTranslateArguments):
(WebCore::parseTransformAngleArgument):
(WebCore::parseTransformNumberArguments):

  • css/parser/CSSParserToken.cpp:

(WebCore::cssPrimitiveValueUnitFromTrie):
(WebCore::stringToUnitType):
(WebCore::CSSParserToken::CSSParserToken):
(WebCore::CSSParserToken::convertToPercentage):

  • css/parser/CSSParserToken.h:

(WebCore::CSSParserToken::unitType const):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::consumeFontStyle):
(WebCore::consumeFontStyleRange):
(WebCore::consumeCounter):
(WebCore::consumeAnimationName):
(WebCore::consumePerspective):
(WebCore::consumePositionLonghand):
(WebCore::consumeAttr):
(WebCore::consumeCounterContent):
(WebCore::consumeReflect):
(WebCore::consumeGridBreadth):
(WebCore::CSSPropertyParser::consumeSystemFont):
(WebCore::CSSPropertyParser::consumeFlex):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumeAngle):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeTime):
(WebCore::CSSPropertyParserHelpers::consumeResolution):
(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
(WebCore::CSSPropertyParserHelpers::consumeString):
(WebCore::CSSPropertyParserHelpers::consumeUrl):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientPoint):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):

  • css/parser/MediaQueryParser.cpp:

(WebCore::MediaQueryParser::readFeatureValue):

  • css/parser/SizesAttributeParser.cpp:

(WebCore::SizesAttributeParser::computeLength):
(WebCore::SizesAttributeParser::effectiveSizeDefaultValue):

  • css/parser/SizesAttributeParser.h:
  • css/typedom/StylePropertyMapReadOnly.cpp:

(WebCore::StylePropertyMapReadOnly::reifyValue):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::setInlineStyleProperty):
(WebCore::StyledElement::addPropertyToPresentationAttributeStyle):

  • dom/StyledElement.h:
  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::computedFontSize):

  • editing/EditingStyle.cpp:

(WebCore::legacyFontSizeFromCSSValue):

  • editing/FontAttributeChanges.cpp:

(WebCore::FontChanges::createStyleProperties const):
(WebCore::cssValueListForShadow):

  • editing/cocoa/HTMLConverter.mm:

(stringFromCSSValue):
(floatValueFromPrimitiveValue):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::applyBorderAttributeToStyle):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):

  • html/HTMLHRElement.cpp:

(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::didElementStateChange):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
(WebCore::HTMLTableElement::createSharedCellStyle):

  • html/ValidationMessage.cpp:

(WebCore::adjustBubblePosition):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::setPosition):
(WebCore::MediaControlPanelElement::makeOpaque):
(WebCore::MediaControlPanelElement::makeTransparent):
(WebCore::MediaControlTextTrackContainerElement::updateTextStrokeStyle):
(WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):

  • html/shadow/ProgressShadowElement.cpp:

(WebCore::ProgressValueElement::setWidthPercentage):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerElement::resolveCustomStyle):

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::tryCreate):

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
(WebCore::TextTrackCueGeneric::setFontSize):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getDisplayTree):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::displayLastTextTrackCueBox):
(WebCore::VTTRegion::willRemoveTextTrackCueBox):
(WebCore::VTTRegion::prepareRegionDisplayTree):

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):

  • page/PrintContext.cpp:

(WebCore::PrintContext::computedPageMargin):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::crossfadeBlend):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::resize):

  • rendering/RenderThemeIOS.mm:

(WebCore::applyCommonButtonPaddingToStyle):
(WebCore::RenderThemeIOS::adjustButtonStyle const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertNumber):
(WebCore::Style::BuilderConverter::convertWebkitHyphenateLimitLines):
(WebCore::Style::BuilderConverter::convertClipPath):
(WebCore::Style::BuilderConverter::convertTextStrokeWidth):
(WebCore::Style::BuilderConverter::convertFontStyleFromValue):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::mmLength):
(WebCore::Style::BuilderCustom::inchLength):
(WebCore::Style::BuilderCustom::applyValueImageResolution):

  • svg/SVGLengthValue.cpp:

(WebCore::primitiveTypeToLengthType):
(WebCore::lengthTypeToPrimitiveType):

Source/WebKit:

Move CSSPrimitiveValue::UnitType to a standalone enum class CSSUnitType, and
CSSPrimitiveVallue::UnitCategory to CSSUnitCategory; these are going to more extensive
use in calc() and in the CSS OM.

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:

(WebKit::PDFPluginAnnotation::updateGeometry):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::updateGeometry):

  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::PDFPluginTextAnnotation::updateGeometry):

6:58 PM Changeset in webkit [252391] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo

  • platform/wincairo/TestExpectations: Unskipped fast/events.
6:25 PM Changeset in webkit [252390] by ysuzuki@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

[JSC] Put more things in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204039

Reviewed by Keith Miller and Saam Barati.

This patch puts following things into IsoSubspace.

  1. UnlinkedEvalCodeBlock
  2. UnlinkedFunctionCodeBlock
  3. UnlinkedModuleProgramCodeBlock
  4. UnlinkedModuleProgramCodeBlock
  5. Symbol
  6. JSString
  7. JSRopeString
  8. GetterSetter
  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::subspaceFor):

  • bytecode/UnlinkedEvalCodeBlock.h:
  • bytecode/UnlinkedFunctionCodeBlock.h:
  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecode/UnlinkedProgramCodeBlock.h:
  • runtime/GetterSetter.h:
  • runtime/JSString.h:

(JSC::JSString::subspaceFor):

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

(JSC::VM::VM):

  • runtime/VM.h:
6:07 PM Changeset in webkit [252389] by keith_miller@apple.com
  • 17 edits
    4 adds
    1 delete in trunk

AudioScheduledSourceNodes leak if they have an attached onended EventTarget
https://bugs.webkit.org/show_bug.cgi?id=204087
Source/WebCore:

<rdar://problem/56772102>

Reviewed by Jer Noble.

Previously, if an AudioNode had any attributes that were event
targets we would leak the node as long as the AudioContext was
alive. This patch makes all the AudioNodes with EventTarget
attributes subclasses of ActiveDOMObject. For,
AudioScheduledSourceNodes we will mark the node as non-active when
either the node becomes eligible for deletion from the graph or
the onended event fires. For, ScriptProcessorNodes we mark the
node as non-active when the node becomes eligible for deletion.

Tests: webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html

webaudio/audiobuffersource-not-gced-until-ended.html

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::startLater):
(WebCore::AudioBufferSourceNode::start): Deleted.

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

(WebCore::AudioNode::deref):
(WebCore::AudioNode::finishDeref):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::didBecomeMarkedForDeletion):

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

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::startLater):
(WebCore::AudioScheduledSourceNode::stopLater):
(WebCore::AudioScheduledSourceNode::didBecomeMarkedForDeletion):
(WebCore::AudioScheduledSourceNode::finish):
(WebCore::AudioScheduledSourceNode::start): Deleted.
(WebCore::AudioScheduledSourceNode::stop): Deleted.
(WebCore::AudioScheduledSourceNode::addEventListener): Deleted.
(WebCore::AudioScheduledSourceNode::removeEventListener): Deleted.
(WebCore::AudioScheduledSourceNode::removeAllEventListeners): Deleted.

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::ScriptProcessorNode):
(WebCore::ScriptProcessorNode::~ScriptProcessorNode):
(WebCore::ScriptProcessorNode::didBecomeMarkedForDeletion):
(WebCore::ScriptProcessorNode::process):
(WebCore::ScriptProcessorNode::addEventListener): Deleted.
(WebCore::ScriptProcessorNode::removeEventListener): Deleted.
(WebCore::ScriptProcessorNode::removeAllEventListeners): Deleted.

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/ScriptProcessorNode.idl:
  • Sources.txt:
  • bindings/js/JSAudioNodeCustom.cpp: Removed.

LayoutTests:

Reviewed by Jer Noble.

  • webaudio/audiobuffersource-not-gced-until-ended-expected.txt: Added.
  • webaudio/audiobuffersource-not-gced-until-ended.html: Added.
  • webaudio/finished-audio-buffer-source-nodes-should-be-collectable-expected.txt: Added.
  • webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html: Added.
5:48 PM Changeset in webkit [252388] by Alan Coon
  • 11 edits in tags/Safari-609.1.10.0.2/Source/WebKit

Cherry-pick r252368. rdar://problem/57115922

Revert remainder of r251676
https://bugs.webkit.org/show_bug.cgi?id=203066
<rdar://problem/57115922>

  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::globalCTDataConnectionServiceType): (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): (WebKit::NetworkSessionCocoa::dataConnectionServiceType const): (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): (-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]):
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType):

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

5:47 PM Changeset in webkit [252387] by Alan Coon
  • 11 edits in tags/Safari-609.1.10.0.2/Source/WebKit

Cherry-pick r252364. rdar://problem/57115922

Revert part of r251676
https://bugs.webkit.org/show_bug.cgi?id=203066
<rdar://problem/57008444>

  • NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):
  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy):
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]):
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

5:44 PM Changeset in webkit [252386] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.0.2/Source

Versioning.

5:40 PM Changeset in webkit [252385] by ysuzuki@apple.com
  • 22 edits
    1 add in trunk

[JSC] JSC GC relies on CodeBlock is not PreciseAllocation
https://bugs.webkit.org/show_bug.cgi?id=204124

Reviewed by Saam Barati.

JSTests:

  • stress/ensure-code-block-is-not-precise-allocation.js: Added.

(foo):
(get for):

Source/JavaScriptCore:

This is a follow-up patch after r252298. This patch fixes several GC issues.

  1. We found that CodeBlock heavily relies on the fact that this is never getting PreciseAllocation. For example, in our GC, we scan conservative roots to collect currently-executing CodeBlocks. But if this is done in an Eden cycle, this can only find PreciseAllocation CodeBlocks allocated in this current Eden cycle, since we only use Eden PreciseAllocation vector to find these cells. This means some CodeBlocks that are PreciseAllocation and allocated in the past Eden cycle can be missed in this currently-executing set. But we do not want to sort all the PreciseAllocation vector every time Eden cycle happens. So, for now, we make # of lower-tier cells of CodeBlocks 0 so that CodeBlocks are always allocated as non PreciseAllocation.
  1. We had an pre-existing PreciseAllocation bug: when Weak<> is pointing PreciseAllocation, we keep PreciseAllocation in m_preciseAllocations vector while the cell inside it is destroyed. This is OK. But HeapUtil::findGCObjectPointersForMarking can populate this PreciseAllocation when performing conservative root scanning. This means that HeapUtil::findGCObjectPointersForMarking can populate destroyed cells. We insert hasValidCell check to avoid this issue.
  1. Subspace::sweep only sweeps non PreciseAllocation blocks despite of this name. This is a problem since we are explicitly calling Subspace::sweep to sweep ScriptExecutables, CodeBlocks, and JIT stubs in a defined order. We rename Subspace::sweep to Subspace::sweepBlocks, and introduce IsoSubspace::sweep which also sweeps PreciseAllocations for lower-tier cells correctly. We are calling PreciseAllocation::sweep, but we still leave PreciseAllocation in m_preciseAllocations. This is OK since PreciseAllocation::sweep can be called multiple times. Destroying / Reusing PreciseAllocations are done by MarkedSpace::sweepPreciseAllocations.
  1. We clear IsoCellSet's bit as soon as PreciseAllocation's cell is destroyed. This is aligned to the behavior of MarkedBlocks.
  • bytecode/CodeBlock.h:
  • heap/CodeBlockSetInlines.h:

(JSC::CodeBlockSet::mark):

  • heap/Heap.cpp:

(JSC::Heap::sweepSynchronously):
(JSC::Heap::sweepInFinalize):

  • heap/HeapUtil.h:

(JSC::HeapUtil::findGCObjectPointersForMarking):

  • heap/IsoCellSet.h:
  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::clearLowerTierCell):
(JSC::IsoCellSet::sweepLowerTierCell): Deleted.

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):
(JSC::IsoSubspace::sweepLowerTierCell):

  • heap/IsoSubspace.h:
  • heap/IsoSubspaceInlines.h:

(JSC::IsoSubspace::clearIsoCellSetBit):
(JSC::IsoSubspace::sweep):

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::AutoremovingIsoSubspace::AutoremovingIsoSubspace):

  • heap/MarkedBlock.h:
  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::sweepBlocks):
(JSC::MarkedSpace::sweep): Deleted.

  • heap/MarkedSpace.h:
  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::PreciseAllocation):
(JSC::PreciseAllocation::sweep):

  • heap/Subspace.cpp:

(JSC::Subspace::sweepBlocks):
(JSC::Subspace::sweep): Deleted.

  • heap/Subspace.h:
  • runtime/JSCell.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/js/JSWebAssemblyMemory.h:
5:38 PM Changeset in webkit [252384] by Alan Coon
  • 1 copy in tags/Safari-609.1.10.0.2

New tag.

5:32 PM Changeset in webkit [252383] by Alan Coon
  • 11 edits in tags/Safari-609.1.10.1/Source/WebKit

Cherry-pick r252368. rdar://problem/57115922

Revert remainder of r251676
https://bugs.webkit.org/show_bug.cgi?id=203066
<rdar://problem/57115922>

  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::globalCTDataConnectionServiceType): (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): (WebKit::NetworkSessionCocoa::dataConnectionServiceType const): (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): (-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]):
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType):

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

5:31 PM Changeset in webkit [252382] by Alan Coon
  • 11 edits in tags/Safari-609.1.10.1/Source/WebKit

Cherry-pick r252364. rdar://problem/57115922

Revert part of r251676
https://bugs.webkit.org/show_bug.cgi?id=203066
<rdar://problem/57008444>

  • NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):
  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy):
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]):
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

5:24 PM Changeset in webkit [252381] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebKit

Add size file for CacheStorage
https://bugs.webkit.org/show_bug.cgi?id=204027
<rdar://problem/57100861>

Reviewed by Youenn Fablet.

Keep the CacheStorage size in a separate file so that we can get that value without waiting for Engine to
initialize and read caches from disk.

No behavior change as the file is not in use now.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::writeSizeFile):
(WebKit::CacheStorage::Engine::readSizeFile):
(WebKit::CacheStorage::Engine::clearAllCachesFromDisk):
(WebKit::CacheStorage::Engine::deleteDirectoryRecursivelyOnBackgroundThread):

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

(WebKit::CacheStorage::Caches::cachesSizeFilename):
(WebKit::CacheStorage::Caches::updateSizeFile):
(WebKit::CacheStorage::Caches::initializeSize):
(WebKit::CacheStorage::Caches::writeRecord):
(WebKit::CacheStorage::Caches::removeRecord):
(WebKit::CacheStorage::Caches::resetSpaceUsed):

  • NetworkProcess/cache/CacheStorageEngineCaches.h:
5:08 PM Changeset in webkit [252380] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] InlineFormattingState::addInlineRun should take a unique_ptr<Display::Run>
https://bugs.webkit.org/show_bug.cgi?id=204099
<rdar://problem/57102586>

Reviewed by Antti Koivisto.

It's rather wasteful to create a Display::Run just to pass it in to InlineFormattingState::addInlineRun.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::addInlineRun):

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

Web Inspector: Local Overrides: drop zone overlay doesn't take up the full content area
https://bugs.webkit.org/show_bug.cgi?id=204093

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FontResourceContentView.css:

(.content-view.resource.font > :matches(.local-resource-override-label-view, .local-resource-override-warning-view):not([hidden]) ~ .drop-zone): Added.
(.content-view.resource.font > .drop-zone): Deleted.

  • UserInterface/Views/ImageResourceContentView.css:

(.content-view.resource.image > :matches(.local-resource-override-label-view, .local-resource-override-warning-view):not([hidden]) ~ .drop-zone): Added.
(.content-view.resource.image > .drop-zone): Deleted.

4:23 PM Changeset in webkit [252378] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: create/update local override drop zone shown in image collection view
https://bugs.webkit.org/show_bug.cgi?id=204097

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CollectionContentView.js:

(WI.CollectionContentView):
(WI.CollectionContentView.prototype.get contentViewConstructorOptions): Added.
(WI.CollectionContentView.prototype.addContentViewForItem):

  • UserInterface/Views/ResourceCollectionContentView.js:

(WI.ResourceCollectionContentView.prototype.get contentViewConstructorOptions): Added.
Provide a way to pass options when instantiating the content view from the constructor.

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.contentAvailable):
Support an optional object parameter that can be used to disable the WI.DropZone.

4:07 PM Changeset in webkit [252377] by Wenson Hsieh
  • 26 edits
    2 copies
    3 adds in trunk

[iOS] WKWebView does not respect system spellchecking preference
https://bugs.webkit.org/show_bug.cgi?id=204100
<rdar://problem/56653808>

Reviewed by Tim Horton.

Source/WebKit:

Implements a platform hook on iOS (-setContinuousSpellCheckingEnabled:) to allow UIKit to inform us when the
system spellchecking preference changes, and adds logic to propagate these changes to the web process. See below
for more details.

Test: editing/spelling/toggle-spellchecking.html

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add testing SPI to enable or disable continuous spellchecking, for both iOS and macOS.

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

(WebKit::WebViewImpl::setContinuousSpellCheckingEnabled):

  • UIProcess/TextChecker.h:
  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::TextChecker::setContinuousSpellCheckingEnabled):

  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::setContinuousSpellCheckingEnabled):

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

(-[WKContentView setupInteraction]):
(-[WKContentView setContinuousSpellCheckingEnabled:]):

Implement this method to handle changes to the system spellchecking preference. This hook is also used by legacy
WebKit on iOS to turn spellchecking on or off. If the value of the preference changed, we additionally notify
the web process. In the future, we should consider refactoring TextCheckerState to be per-web view and per-page,
since Cocoa platform APIs would allow for different WKWebViews to have different spell checking preferences.

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::setContinuousSpellCheckingEnabled):

  • UIProcess/win/TextCheckerWin.cpp:

(WebKit::TextChecker::setContinuousSpellCheckingEnabled):

  • UIProcess/wpe/TextCheckerWPE.cpp:

(WebKit::TextChecker::setContinuousSpellCheckingEnabled):

Adjusted setContinuousSpellCheckingEnabled to return whether or not the continuous spellchecking state changed.

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/cocoa/UIScriptControllerCocoa.h:
  • DumpRenderTree/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::UIScriptControllerCocoa):
(WTR::UIScriptControllerCocoa::setContinuousSpellCheckingEnabled):

Add a new UIScriptControllerCocoa subclass for DumpRenderTree. For now, this will just contain the cross-
platform implementation of setContinuousSpellCheckingEnabled.

  • DumpRenderTree/ios/UIScriptControllerIOS.h:

(WTR::UIScriptControllerIOS::UIScriptControllerIOS):

  • DumpRenderTree/mac/UIScriptControllerMac.h:

(WTR::UIScriptControllerMac::UIScriptControllerMac):

Make both -IOS and -Mac subclasses inherit from UIScriptControllerCocoa.

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

(WTR::UIScriptController::setContinuousSpellCheckingEnabled):

Add a new script controller method to change the platform spell checking preference during a layout test.

  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

Adjust this to explicitly turn continuous spellchecking on or off based on the shouldShowSpellCheckingDots
test option flag, instead of toggling it on and then off when resetting state before and after the layout test.

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

(WTR::UIScriptControllerCocoa::setContinuousSpellCheckingEnabled):

LayoutTests:

Add a new layout test to verify that the changes to platform spellchecking preferences are reflected in editable
content. See other changelogs for more information.

  • editing/spelling/toggle-spellchecking-expected.txt: Added.
  • editing/spelling/toggle-spellchecking.html: Added.
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.async.setContinuousSpellCheckingEnabled):

Also, add a new UIHelper method to enable or disable continuous spellchecking during a layout test.

(window.UIHelper):

3:50 PM Changeset in webkit [252376] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.0.4

Tag Safari-608.4.9.0.4.

3:04 PM Changeset in webkit [252375] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Update unit-tests for JSC EWS
https://bugs.webkit.org/show_bug.cgi?id=204123

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestRunJavaScriptCoreTests.configureStep):
(TestRunJavaScriptCoreTests.test_success): Updated platform to mac-highsierra.
(TestRunJavaScriptCoreTests.test_failure): Ditto.
(TestRunJavaScriptCoreTests.test_remote_success): Unit-test for jsc-only platform.
(TestReRunJavaScriptCoreTests): Automatically run all unit-tests from TestRunJavaScriptCoreTests class.

2:09 PM Changeset in webkit [252374] by commit-queue@webkit.org
  • 10 edits in trunk

RegExpBuiltinExec should create "groups" property unconditionally
https://bugs.webkit.org/show_bug.cgi?id=204067

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-12
Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

After RegExp named capture groups were initially implemented in JSC, the spec was changed
to unconditionally create "groups" property.
(https://github.com/tc39/proposal-regexp-named-groups/issues/34)

This patch implements the change (that was shipped by V8), reducing number of structures
we use for RegExpMatchesArray, and also sets Prototype? of "groups" object to null.
(step 24 of https://tc39.es/ecma262/#sec-regexpbuiltinexec)

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpMatchesArrayStructure const):
(JSC::JSGlobalObject::regExpMatchesArrayWithGroupsStructure const): Deleted.

  • runtime/RegExpMatchesArray.cpp:

(JSC::createStructureImpl):
(JSC::createRegExpMatchesArrayWithGroupsStructure): Deleted.
(JSC::createRegExpMatchesArrayWithGroupsSlowPutStructure): Deleted.

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingRegExpSearch):

11:49 AM Changeset in webkit [252373] by Kocsen Chung
  • 2 edits in branches/safari-608.4.9.2-branch/Source/WebKit

Apply patch. rdar://problem/57123564

11:43 AM Changeset in webkit [252372] by Kocsen Chung
  • 2 edits in branches/safari-608.4.9.0-branch/Source/WebKit

Apply patch. rdar://problem/57123575

11:38 AM Changeset in webkit [252371] by Kocsen Chung
  • 7 edits in branches/safari-608.4.9.0-branch/Source

Versioning.

11:32 AM Changeset in webkit [252370] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Skip matched declarations cache only for length resolution affecting font properties
https://bugs.webkit.org/show_bug.cgi?id=204098

Reviewed by Zalan Bujtas.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::equalForLengthResolution):

Put this next to the length resolution function, hopefully helping to keep them in sync.

  • css/CSSPrimitiveValue.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyMatchedProperties):

Replace test for font declaration change with a narrower test that only looks for those properties that affect length resolution.

  • style/MatchedDeclarationsCache.cpp:

(WebCore::Style::MatchedDeclarationsCache::Entry::isUsableAfterHighPriorityProperties const):

Factor into function.

  • style/MatchedDeclarationsCache.h:
11:07 AM Changeset in webkit [252369] by Truitt Savell
  • 5 edits in trunk/Source/WebKit

Unreviewed, rolling out r252351.

casued 50+ crashes on Mac and iOS wk2 debug

Reverted changeset:

"Add size file for CacheStorage"
https://bugs.webkit.org/show_bug.cgi?id=204027
https://trac.webkit.org/changeset/252351

9:30 AM Changeset in webkit [252368] by achristensen@apple.com
  • 11 edits in trunk/Source/WebKit

Revert remainder of r251676
https://bugs.webkit.org/show_bug.cgi?id=203066
<rdar://problem/57115922>

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::globalCTDataConnectionServiceType):
(WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType):
(WebKit::NetworkSessionCocoa::dataConnectionServiceType const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration CTDataConnectionServiceType]):
(-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType):

8:51 AM Changeset in webkit [252367] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

Rename _textSelectionAssistant to _textInteractionAssistant to reflect the only class it can now represent
https://bugs.webkit.org/show_bug.cgi?id=204103

Reviewed by Wenson Hsieh.

No new tests - rename only.

Now that UIWKSelectionAssistant is no longer, the _textSelectionAssistant can only be a
UIWKTextInteractionAssistant. There is enough confusion around all the selection and
interaction assistants, renaming this should alleviate some of that confusion.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didExitStableState]):

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

(-[WKContentView cleanupInteraction]):
(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]):
(-[WKContentView _scrollingNodeScrollingWillBegin]):
(-[WKContentView _scrollingNodeScrollingDidEnd]):
(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _uiTextSelectionRects]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView setUpTextSelectionAssistant]):
(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView _lookupForWebView:]):
(-[WKContentView _shareForWebView:]):
(-[WKContentView _addShortcutForWebView:]):
(-[WKContentView _promptForReplaceForWebView:]):
(-[WKContentView _transliterateChineseForWebView:]):
(-[WKContentView tintColorDidChange]):
(-[WKContentView _didHideMenu:]):
(-[WKContentView selectForWebView:]):
(-[WKContentView selectAllForWebView:]):
(-[WKContentView _showTextStyleOptionsForWebView:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView interactionAssistant]):
(-[WKContentView _showKeyboard]):
(-[WKContentView _hideKeyboard]):
(-[WKContentView _updateChangedSelection:]):
(-[WKContentView _startSuppressingSelectionAssistantForReason:]):
(-[WKContentView _stopSuppressingSelectionAssistantForReason:]):
(-[WKContentView _restoreCalloutBarIfNeeded]):
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):

8:35 AM Changeset in webkit [252366] by clopez@igalia.com
  • 10 edits
    1 delete in trunk

[GTK][WPE] Support Pointer Events
https://bugs.webkit.org/show_bug.cgi?id=202789

Reviewed by Carlos Garcia Campos.

.:

Build support for PointerEvents when EXPERIMENTAL_FEATURES is enabled.
Currently support for PointerEvents of pointerType==mouse works fine,
but support for other type of PointerEvents is missing.

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

LayoutTests/imported/w3c:

  • web-platform-tests/resources/testdriver-vendor.js:

The fix for iOS added in r245639 triggers a call to sendEventStream in
UIScriptController that crashes on GTK because that function is only
implemented for iOS. For Mac this was not an issue because the Mac port
doesn't enable TouchEvent support ("createTouch" in document).
However TouchEvent support is enabled for GTK. Fix this by only
trigerring the call to dispatchTouchActions when TouchEvent support
is enabled _and_ its iOS.

Source/WebKit:

Covered by existing tests.

  • UIProcess/PageClient.h: Add a ifdef for platform COCOA on two

function declarations that depend on the UIGestureRecognizer ObjC type.
This is not needed for GTK/WPE code.

LayoutTests:

Add test expectations for GTK/WPE.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt: Removed. Now it passes with the general expectation.
  • platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt: Removed. Now it passes with the general expectation.
  • platform/wpe/TestExpectations: Update also bug number for PointerLock.
7:39 AM Changeset in webkit [252365] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Picture-in-Picture events are not fired if we switch the Picture-in-Picture mode through modern media controls
https://bugs.webkit.org/show_bug.cgi?id=203933

Patch by Peng Liu <Peng Liu> on 2019-11-12
Reviewed by Eric Carlson.

When the Picture-in-Picture API is not available, we need to call webkitSetPresentationMode()
of the video element to implement the picture-in-picture feature.

No new tests, covered by test: media/modern-media-controls/pip-support/pip-support-click.html

  • Modules/modern-media-controls/media/pip-support.js:

(PiPSupport.prototype.buttonWasPressed):

7:27 AM Changeset in webkit [252364] by achristensen@apple.com
  • 11 edits in trunk/Source/WebKit

Revert part of r251676
https://bugs.webkit.org/show_bug.cgi?id=203066
<rdar://problem/57008444>

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]):
(-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

7:24 AM Changeset in webkit [252363] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/LayoutTests

Unskip some fetch tests
https://bugs.webkit.org/show_bug.cgi?id=204047

Patch by Rob Buis <rbuis@igalia.com> on 2019-11-12
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Add expectation for bad-gzip-body.any.worker.html.

  • web-platform-tests/fetch/api/request/destination/fetch-destination-no-load-event.https-expected.txt: Added.
  • web-platform-tests/fetch/content-encoding/bad-gzip-body.any.worker-expected.txt:

LayoutTests:

Unskip two fetch tests that do not time out anymore.

7:07 AM Changeset in webkit [252362] by Diego Pino Garcia
  • 3 edits in trunk/Tools

[GTK] Add 'test262-test' step to GTK and WPE build bots
https://bugs.webkit.org/show_bug.cgi?id=204063

Reviewed by Carlos Alberto Lopez Perez.

  • BuildSlaveSupport/build.webkit.org-config/factories.py:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
6:42 AM Changeset in webkit [252361] by clopez@igalia.com
  • 9 edits in trunk

[GTK][WPE] Enable CSS Painting API
https://bugs.webkit.org/show_bug.cgi?id=190710

Reviewed by Don Olmstead.

.:

This enables the feature when building with experimental features enabled.

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

Source/WebKit:

Enable the runtime feature by default on GTK/WPE when building with
experimental features enabled.

Covered by existing tests.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:

LayoutTests:

Unskip the tests that now pass.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
6:38 AM Changeset in webkit [252360] by clopez@igalia.com
  • 3 edits
    51 deletes in trunk/LayoutTests

[Pointer Events WPT] Delete manual tests imported as layout tests
https://bugs.webkit.org/show_bug.cgi?id=203996

Reviewed by Youenn Fablet.

Manual tests should not be imported as layout tests.

LayoutTests/imported/w3c:

  • web-platform-tests/pointerevents/compat/pointerevent_touch-action_two-finger_interaction-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_coalesced_events_attributes-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_getPredictedEvents_when_pointerlocked-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_predicted_events_attributes-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-down-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-left-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-right-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-up-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/html/pointerevent_drag_interaction-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_boundary_events_in_capturing-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_capture_suppressing_mouse-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_disabled_form_control-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_element_haspointercapture-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_element_haspointercapture_release_pending_capture-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_fractional_coordinates-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_multiple_primary_pointers_boundary_events-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_pointerId_scope-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_pen-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_click-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_override_pending_capture_element-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_to_same_element_twice-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-button-test_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-y_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-keyboard-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-mouse-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-rotated-divs_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-span-test_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_touch-action-table-test_touch-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_when_locked-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html: Removed.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html: Removed.

LayoutTests:

  • platform/mac/TestExpectations: delete expectations.
6:34 AM Changeset in webkit [252359] by alex
  • 3 edits in trunk/LayoutTests

[GTK][WPE] New tests crashing after added in the r251377
https://bugs.webkit.org/show_bug.cgi?id=204112

Unreviewed test gardening, new tests crashing.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:21 AM Changeset in webkit [252358] by Carlos Garcia Campos
  • 136 edits
    1 copy
    14 adds in trunk

Unreviewed. Update W3C WebDriver imported tests.

Tools:

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_mozlog): Update the mozlog version and add mozterm that is ow required by mozlog.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:

(WebDriverW3CExecutor.init): Add alternate domain for cross-origin checks.

WebDriverTests:

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/README.md:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner:
  • imported/w3c/webdriver/tests/accept_alert/accept.py:
  • imported/w3c/webdriver/tests/add_cookie/add.py:
  • imported/w3c/webdriver/tests/dismiss_alert/dismiss.py:
  • imported/w3c/webdriver/tests/element_clear/clear.py:
  • imported/w3c/webdriver/tests/element_click/bubbling.py:
  • imported/w3c/webdriver/tests/execute_async_script/collections.py:
  • imported/w3c/webdriver/tests/execute_async_script/promise.py: Added.
  • imported/w3c/webdriver/tests/execute_async_script/properties.py: Added.
  • imported/w3c/webdriver/tests/execute_script/collections.py:
  • imported/w3c/webdriver/tests/execute_script/execute.py:
  • imported/w3c/webdriver/tests/execute_script/promise.py:
  • imported/w3c/webdriver/tests/execute_script/properties.py: Added.
  • imported/w3c/webdriver/tests/find_element_from_element/find.py:
  • imported/w3c/webdriver/tests/get_alert_text/get.py:
  • imported/w3c/webdriver/tests/get_current_url/get.py:
  • imported/w3c/webdriver/tests/get_element_attribute/get.py:
  • imported/w3c/webdriver/tests/get_element_property/get.py:
  • imported/w3c/webdriver/tests/get_named_cookie/get.py:
  • imported/w3c/webdriver/tests/get_window_rect/get.py:
  • imported/w3c/webdriver/tests/maximize_window/maximize.py:
  • imported/w3c/webdriver/tests/navigate_to/navigate.py:
  • imported/w3c/webdriver/tests/new_session/conftest.py:
  • imported/w3c/webdriver/tests/new_session/timeouts.py:
  • imported/w3c/webdriver/tests/new_window/init.py: Added.
  • imported/w3c/webdriver/tests/new_window/new.py: Added.
  • imported/w3c/webdriver/tests/new_window/new_tab.py: Added.
  • imported/w3c/webdriver/tests/new_window/new_window.py: Added.
  • imported/w3c/webdriver/tests/new_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_events.py:
  • imported/w3c/webdriver/tests/perform_actions/pointer.py:
  • imported/w3c/webdriver/tests/perform_actions/pointer_contextmenu.py:
  • imported/w3c/webdriver/tests/perform_actions/pointer_origin.py:
  • imported/w3c/webdriver/tests/perform_actions/support/keys.py:
  • imported/w3c/webdriver/tests/perform_actions/validity.py:
  • imported/w3c/webdriver/tests/permissions/set.py:
  • imported/w3c/webdriver/tests/send_alert_text/conftest.py: Added.
  • imported/w3c/webdriver/tests/send_alert_text/send.py:
  • imported/w3c/webdriver/tests/set_timeouts/set.py:
  • imported/w3c/webdriver/tests/set_window_rect/set.py:
  • imported/w3c/webdriver/tests/support/asserts.py:
  • imported/w3c/webdriver/tests/support/authentication.py: Added.
  • imported/w3c/webdriver/tests/support/defaults.py:
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/support/helpers.py:
  • imported/w3c/webdriver/tests/support/inline.py:
  • imported/w3c/webdriver/tests/switch_to_frame/cross_origin.py: Added.
  • imported/w3c/webdriver/tests/switch_to_frame/switch.py:
  • imported/w3c/webdriver/tests/switch_to_window/alerts.py: Added.
  • imported/w3c/webdriver/tests/take_element_screenshot/init.py:
  • imported/w3c/webdriver/tests/take_element_screenshot/iframe.py: Added.
  • imported/w3c/webdriver/tests/take_element_screenshot/screenshot.py:
  • imported/w3c/webdriver/tests/take_element_screenshot/user_prompts.py:
  • imported/w3c/webdriver/tests/take_screenshot/init.py:
  • imported/w3c/webdriver/tests/take_screenshot/iframe.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/screenshot.py:
  • imported/w3c/webdriver/tests/take_screenshot/user_prompts.py:
12:26 AM Changeset in webkit [252357] by Fujii Hironori
  • 7 edits
    4 adds in trunk

[Win] UIScriptController::zoomToScale not implemented
https://bugs.webkit.org/show_bug.cgi?id=180424

Reviewed by Alex Christensen.

Tools:

  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/win/UIScriptControllerWin.cpp: Added.

(WTR::UIScriptController::create):
(WTR::UIScriptControllerWin::doAsyncTask):
(WTR::UIScriptControllerWin::zoomToScale):
(WTR::UIScriptControllerWin::zoomScale const):

  • DumpRenderTree/win/UIScriptControllerWin.h: Added.

(WTR::UIScriptControllerWin::UIScriptControllerWin):

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:
  • WebKitTestRunner/PlatformWin.cmake:
  • WebKitTestRunner/win/UIScriptControllerWin.cpp: Added.

(WTR::UIScriptController::create):
(WTR::UIScriptControllerWin::doAsyncTask):
(WTR::UIScriptControllerWin::zoomToScale):
(WTR::UIScriptControllerWin::zoomScale const):

  • WebKitTestRunner/win/UIScriptControllerWin.h: Added.

(WTR::UIScriptControllerWin::UIScriptControllerWin):

LayoutTests:

  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Unmarked skipped tests for webkit.org/b/180424.
Marked fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html,
fast/visual-viewport/client-rects-relative-to-layout-viewport.html
and fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html as
Failure.

12:12 AM Changeset in webkit [252356] by Carlos Garcia Campos
  • 19 edits in trunk

[GTK] WebDriver: implement new window command
https://bugs.webkit.org/show_bug.cgi?id=203994

Reviewed by Carlos Alberto Lopez Perez.

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::newWindow):

  • Session.h:
  • WebDriverService.cpp:

(WebDriver::WebDriverService::newWindow):

  • WebDriverService.h:

Source/WebKit:

Add new API to support new window command. The WebKitAutomationSession::create-web-view signal can now receive a
detail that can be "window" or "tab". Applications can use that to decide whether to add the new webview to a
new window or tab. WebKitWebView has a new construct only property automation-presentation-type, which is an
enum that can be either window or tab value. Appplications should use the new property when creating the web
view for automation to indicate whether the web view was added to a new window or tab.

  • UIProcess/API/glib/WebKitAutomationSession.cpp:

(webkit_automation_session_class_init):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_get_automation_presentation_type):

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

Tools:

Add support for new window command to MiniBrowser and a test case to check the new API to unit tests.

  • MiniBrowser/gtk/BrowserWindow.c:

(findActiveWindow):
(browser_window_get_or_create_web_view_for_automation):
(browser_window_create_web_view_in_new_tab_for_automation):

  • MiniBrowser/gtk/BrowserWindow.h:
  • MiniBrowser/gtk/main.c:

(createWebViewForAutomationInWindowCallback):
(createWebViewForAutomationInTabCallback):
(automationStartedCallback):
(createWebViewForAutomationCallback): Deleted.

  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:

(testAutomationSessionRequestSession):

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

REGRESSION(r250707): [GTK] UIClient::setWindowFrame only works the first time
https://bugs.webkit.org/show_bug.cgi?id=204068

Reviewed by Adrian Perez de Castro.

This is because we are connecting to configure-event of parent window, but not returning FALSE from the callback
to propagate the event.

  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::windowConfigureEventCallback): Make it boolean and return FALSE.

Nov 11, 2019:

6:56 PM Changeset in webkit [252354] by achristensen@apple.com
  • 9 edits in trunk

Add SPI to access a WebsiteDataStore without instantiating it, and its configuration
https://bugs.webkit.org/show_bug.cgi?id=204089

Reviewed by Tim Horton.

Source/WebKit:

Calling WKWebViewConfiguration.websiteDataStore instantiates the default data store.
We need a way to query if it has been set but not instantiate anything if it hasn't.
We also need a way to access the configuration used to create a WKWebsiteDataStore like we do with WKWebView.
These have been requested to fix <rdar://problem/57091216> and I think they're a good idea in general.

Covered by API tests.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _websiteDataStoreIfExists]):

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

(-[WKWebsiteDataStore _setDelegate:]):
(-[WKWebsiteDataStore set_delegate:]):
(-[WKWebsiteDataStore _configuration]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):
(WebKit::WebsiteDataStoreConfiguration::copy): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

5:59 PM Changeset in webkit [252353] by Simon Fraser
  • 8 edits
    6 adds in trunk

Captcha images render as blank white space
https://bugs.webkit.org/show_bug.cgi?id=204013
rdar://problem/50095458

Reviewed by Zalan Bujtas.
Source/WebCore:

If updating z-order lists adds layers to the paint-order lists that have
dirty bits, we need to propagate those dirty bits up the tree so that
later dirty bit propagation doesn't stop prematurely. This could happen
when content triggered visibility, and the missing dirty bits caused
subframe layers to not get parented, resulting in missing layers with reCaptcha.
We do this by accumulating dirty bits inside of collectLayers().

Test: compositing/visibility/visibility-change-in-subframe.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::rebuildZOrderLists):
(WebCore::RenderLayer::collectLayers):
(WebCore::RenderLayer::calculateClipRects const):

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

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::RenderLayerCompositor::layerTreeAsText): Log so that debugging test failures is easier.

LayoutTests:

New test. Fails in WK1 because of compositing timing differences in iframes in DRT which
has a non auto-displaying window.

  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Progression.
  • compositing/visibility/resources/become-composited.html: Added.
  • compositing/visibility/resources/frame-with-visibility-change.html: Added.
  • compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
  • compositing/visibility/visibility-change-in-subframe.html: Added.
  • platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
  • platform/ios-wk2/compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
  • platform/mac-wk1/TestExpectations:
5:58 PM Changeset in webkit [252352] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

Many legacy animation tests are timing out with VS2019
https://bugs.webkit.org/show_bug.cgi?id=204000

Reviewed by Brent Fulgham.

When compiling with VS2019, there is a compiler issue, where an Optional without a value is returned
when it should definitely have a value. Work around this issue by moving the local Optional value
when returning.

No new tests, covered by existing tests.

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::timeToNextService):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::timeToNextService):

5:49 PM Changeset in webkit [252351] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebKit

Add size file for CacheStorage
https://bugs.webkit.org/show_bug.cgi?id=204027

Reviewed by Youenn Fablet.

Keep the CacheStorage size in a separate file so that we can get that value without waiting for Engine to
initialize and read caches from disk.

No behavior change as the file is not in use now.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::writeSizeFile):
(WebKit::CacheStorage::Engine::readSizeFile):

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

(WebKit::CacheStorage::cachesSizeFilename):
(WebKit::CacheStorage::Caches::updateSizeFile):
(WebKit::CacheStorage::Caches::initializeSize):
(WebKit::CacheStorage::Caches::writeRecord):
(WebKit::CacheStorage::Caches::removeRecord):
(WebKit::CacheStorage::Caches::resetSpaceUsed):

  • NetworkProcess/cache/CacheStorageEngineCaches.h:
5:47 PM Changeset in webkit [252350] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

iOS: fast/scrolling/ios/scrollTo-at-page-load.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=204062

Reviewed by Wenson Hsieh.

Wait until the next rendering update for a scroll event.`

  • fast/scrolling/ios/scrollTo-at-page-load.html:
5:35 PM Changeset in webkit [252349] by youenn@apple.com
  • 23 edits in trunk

DOMFormData should be available in workers
https://bugs.webkit.org/show_bug.cgi?id=176674

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker-expected.txt:
  • web-platform-tests/FileAPI/idlharness.worker-expected.txt:
  • web-platform-tests/FileAPI/url/sandboxed-iframe-expected.txt:
  • web-platform-tests/FileAPI/url/url-format.any.worker-expected.txt:
  • web-platform-tests/fetch/api/abort/serviceworker-intercepted.https-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt:
  • web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt:
  • web-platform-tests/xhr/access-control-and-redirects-async-same-origin-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-header-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-method-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-not-supported-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-header-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-method-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-not-supported-expected.txt:
  • web-platform-tests/xhr/event-error.sub-expected.txt:
  • web-platform-tests/xhr/idlharness.any.worker-expected.txt:
  • web-platform-tests/xhr/send-conditional-cors-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:

Source/WebCore:

Expose DOMFormData and File to workers.
Covered by existing tests.

  • Modules/beacon/NavigatorBeacon.cpp:

(WebCore::NavigatorBeacon::sendBeacon):

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::bodyAsFormData const):

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::resourceRequest const):

  • fileapi/File.cpp:

(WebCore::File::computeNameAndContentType):
Isolate string as this might now get called from background threads.

  • fileapi/File.idl:
  • html/DOMFormData.cpp:

(WebCore::DOMFormData::DOMFormData):

  • html/DOMFormData.idl:
  • platform/network/FormData.cpp:

LayoutTests:

  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
5:27 PM Changeset in webkit [252348] by youenn@apple.com
  • 23 edits in trunk

Fail cross-origin redirection loads in case of CORS with redirection URLs having credentials
https://bugs.webkit.org/show_bug.cgi?id=204036

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/cors/redirect-userinfo-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-schemes-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl.any.worker-expected.txt:
  • web-platform-tests/fetch/security/redirect-to-url-with-credentials.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/xhr/access-control-and-redirects-async-expected.txt:

Source/WebCore:

Update checks in SubresourceLoader according networking process.
Make error messages consistent,
Test: http/tests/navigation/page-cache-mediastream.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::validateCrossOriginRedirectionURL):
(WebCore::isValidCrossOriginRedirectionURL): Deleted.

  • loader/CrossOriginAccessControl.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

Source/WebKit:

Implement https://fetch.spec.whatwg.org/#http-redirect-fetch steps 7 and 8.
Covered by updated tests.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRedirection):

LayoutTests:

  • http/tests/security/shape-image-cors-redirect-error-message-logging-4-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async.html:
5:18 PM Changeset in webkit [252347] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix incorrect assertion
https://bugs.webkit.org/show_bug.cgi?id=201908

  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::reuseForLowerTier):

5:04 PM Changeset in webkit [252346] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

ASSERT at PlatformCALayerCocoa::avPlayerLayer(): [platformLayer() sublayers].count == 1
https://bugs.webkit.org/show_bug.cgi?id=204077
<rdar://problem/56640423>

Reviewed by Simon Fraser.

Make PlatformCALayerCocoa::avPlayer() more robust against underlying layer changes.

Promote WebVideoContainerLayer to its own header file and give the class a "playerLayer" property. In
PlatformCALayerCocoa::avPlayer(), use that new property to retrieve the AVPlayerLayer.

Drive-by fix: Make PlatformCALayerCocoa::create() return a Ref<PlatformCALayerCocoa> rather than its parent class type.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:

(WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
(-[WebVideoContainerLayer setBounds:]): Deleted.
(-[WebVideoContainerLayer setPosition:]): Deleted.

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

(WebCore::PlatformCALayerCocoa::create):
(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::clone const):
(WebCore::PlatformCALayerCocoa::avPlayerLayer const):

  • platform/graphics/ca/cocoa/WebVideoContainerLayer.h: Added.
  • platform/graphics/ca/cocoa/WebVideoContainerLayer.mm: Added.

(-[WebVideoContainerLayer initWithPlayerLayer:]):
(-[WebVideoContainerLayer playerLayer]):
(-[WebVideoContainerLayer setBounds:]):
(-[WebVideoContainerLayer setPosition:]):

4:58 PM Changeset in webkit [252345] by Ross Kirsling
  • 6 edits
    1 add in trunk

UTC offset for Samoa is miscalculated when !HAVE(TIMEGM)
https://bugs.webkit.org/show_bug.cgi?id=204032

Reviewed by Yusuke Suzuki.

JSTests:

  • complex.yaml:
  • complex/timezone-offset-apia.js: Added.

Add test to verify Date.prototype.getTimezoneOffset for TZ=Pacific/Apia.

Source/WTF:

We have code assuming that the world's time zones haven't changed in the past decade,
but Samoa changed from UTC-11 to UTC+13 at the beginning of 2012.

(Note: "Samoa" here means the Independent State of Samoa (Pacific/Apia) and not American Samoa (Pacific/Samoa).

See https://en.wikipedia.org/wiki/Time_in_Samoa for more information.)

  • wtf/DateMath.cpp:

(WTF::calculateUTCOffset):
Update "canned date" from 2009 to 2019.

Tools:

  • Scripts/run-jsc-stress-tests:

Allow environment variables to be passed to "complex" tests.

4:34 PM Changeset in webkit [252344] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Always use matched declarations cache fully when parent inherited style matches
https://bugs.webkit.org/show_bug.cgi?id=204083

Reviewed by Zalan Bujtas.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyMatchedProperties):

We used inheritedDataShared check here since it is always just pointer compare.
However instrumentation shows we miss out from singificant amount of cache benefit
due to this and the full check is not expensive.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::inheritedEqual const):
(WebCore::RenderStyle::inheritedNotEqual const): Deleted.

Reverse the logic.

(WebCore::RenderStyle::inheritedDataShared const): Deleted.

Not used anymore.

  • rendering/style/RenderStyle.h:
  • rendering/style/SVGRenderStyle.cpp:

(WebCore::SVGRenderStyle::inheritedEqual const):
(WebCore::SVGRenderStyle::inheritedNotEqual const): Deleted.

  • rendering/style/SVGRenderStyle.h:
  • style/StyleChange.cpp:

(WebCore::Style::determineChange):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::createInheritedDisplayContentsStyleIfNeeded):

4:17 PM Changeset in webkit [252343] by Kocsen Chung
  • 1 copy in tags/Safari-608.4.9.1.3

Tag Safari-608.4.9.1.3.

4:17 PM Changeset in webkit [252342] by Kocsen Chung
  • 1 copy in tags/Safari-608.4.9.0.3

Tag Safari-608.4.9.0.3.

3:57 PM Changeset in webkit [252341] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix alignment adjustment when reusing PreciseAllocation
https://bugs.webkit.org/show_bug.cgi?id=201908

  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::reuseForLowerTier):

3:26 PM Changeset in webkit [252340] by Kate Cheney
  • 6 edits in trunk/LayoutTests

CrashTracer: com.apple.WebKit.Networking.Development at com.apple.WebKit: WebKit::NetworkProcess::setIsRunningResourceLoadStatisticsTest
https://bugs.webkit.org/show_bug.cgi?id=204081
<rdar://problem/56889809>

Reviewed by John Wilander.

This crash was happening in two places. First, in
has-storage-access-true-if-third-party-has-cookies-database.html,
the test was incorrectly marked as ephemeral then tried to use ITP by
calling setEnableFeature. ITP should not be used in ephemeral
sessions. There was also a small bug, ITP should be set to true (not
false) at the beginning of this test.

Second, both
has-storage-access-true-if-third-party-has-cookies-ephemeral.html and
has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html
had document.hrefs which redirected back to the non-ephemeral test cases after
setting a cookie. This caused a crash when trying to set ITP to false
using an ephemeral sessionID.

  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database-expected.txt:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html:
2:43 PM Changeset in webkit [252339] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Empty property sets should not mark MatchedProperties uncacheable
https://bugs.webkit.org/show_bug.cgi?id=204079

Reviewed by Zalan Bujtas.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::addElementStyleProperties):

Bail out if there are no incoming properties.

2:13 PM Changeset in webkit [252338] by aestes@apple.com
  • 8 edits
    12 adds in trunk

PaymentRequest / PaymentResponse should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203101
<rdar://problem/56744409>

Reviewed by Chris Dumez.

Source/WebCore:

Removed PaymentRequest's and PaymentResponse's override of
ActiveDOMObject::shouldPreventEnteringBackForwardCache_DEPRECATED and implemented
ActiveDOMObject::suspend instead.

Tests: http/tests/paymentrequest/page-cache-closed-payment-request.https.html

http/tests/paymentrequest/page-cache-completed-payment-response.https.html
http/tests/paymentrequest/page-cache-created-payment-request.https.html
http/tests/paymentrequest/page-cache-created-payment-response.https.html
http/tests/paymentrequest/page-cache-interactive-payment-request.https.html
http/tests/paymentrequest/page-cache-retried-payment-response.https.html

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::suspend):
(WebCore::PaymentRequest::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::suspend):
(WebCore::PaymentResponse::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/paymentrequest/PaymentResponse.h:
  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::callFunction):

LayoutTests:

  • http/tests/paymentrequest/page-cache-closed-payment-request.https-expected.txt: Added.
  • http/tests/paymentrequest/page-cache-closed-payment-request.https.html: Added.
  • http/tests/paymentrequest/page-cache-completed-payment-response.https-expected.txt: Added.
  • http/tests/paymentrequest/page-cache-completed-payment-response.https.html: Added.
  • http/tests/paymentrequest/page-cache-created-payment-request.https-expected.txt: Added.
  • http/tests/paymentrequest/page-cache-created-payment-request.https.html: Added.
  • http/tests/paymentrequest/page-cache-created-payment-response.https-expected.txt: Added.
  • http/tests/paymentrequest/page-cache-created-payment-response.https.html: Added.
  • http/tests/paymentrequest/page-cache-interactive-payment-request.https-expected.txt: Added.
  • http/tests/paymentrequest/page-cache-interactive-payment-request.https.html: Added.
  • http/tests/paymentrequest/page-cache-retried-payment-response.https-expected.txt: Added.
  • http/tests/paymentrequest/page-cache-retried-payment-response.https.html: Added.
  • resources/js-test.js:

(shouldReject):
(shouldRejectWithErrorName):

1:41 PM Changeset in webkit [252337] by youenn@apple.com
  • 7 edits
    2 adds in trunk

Make MediaStream/MediaStreamTrack page cache friendly
https://bugs.webkit.org/show_bug.cgi?id=204030

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/navigation/page-cache-mediastream.html

  • Modules/mediastream/MediaStream.cpp:

Remove the unnneeded opt-out of page cache in case of MediaStream.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::suspend):
In case of a capture track, end it at suspend time but fire ended event at resume time.

  • Modules/mediastream/MediaStreamTrack.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations: Disabled test for WK1.
  • http/tests/navigation/page-cache-mediastream-expected.txt: Added.
  • http/tests/navigation/page-cache-mediastream.html: Added.
11:42 AM Changeset in webkit [252336] by Matt Lewis
  • 22 edits in trunk

Revert "[css-lists] Implement list-style-type: <string>"

This reverts commit 0727a951800d22b0d8413293ef7ff42cedeb5499.

11:24 AM Changeset in webkit [252335] by eric.carlson@apple.com
  • 32 edits
    3 moves
    31 adds
    5 deletes in trunk/LayoutTests

Update WPT mediacapture-streams tests
https://bugs.webkit.org/show_bug.cgi?id=204073

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/mediacapture-streams/GUM-deny.https.html:
  • web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https.html:
  • web-platform-tests/mediacapture-streams/GUM-optional-constraint.https.html:
  • web-platform-tests/mediacapture-streams/GUM-trivial-constraint.https.html:
  • web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt: Removed.
  • web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html: Removed.
  • web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt: Removed.
  • web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html: Removed.
  • web-platform-tests/mediacapture-streams/MediaDevices-enumerateDevices.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaDevices-enumerateDevices.https.html:
  • web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https-expected.txt: Removed.
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html: Removed.
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-add-audio-track.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-audio-only.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-finished-add.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-gettrackid.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-idl.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-removetrack.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-end-manual.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-end-manual.https.html:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https.html:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-id.https.html:
  • web-platform-tests/mediacapture-streams/OWNERS: Removed.
  • web-platform-tests/mediacapture-streams/historical.html: Removed.
  • web-platform-tests/mediacapture-streams/w3c-import.log:

LayoutTests:

  • tests-options.json:
11:01 AM Changeset in webkit [252334] by Matt Lewis
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r252151.

This broke internal builds and tests along with
https://bugs.webkit.org/show_bug.cgi?id=167729#c18. For more
information discuss with your reviewers.

Reverted changeset:

"Keep None value at the end of the ListStyleType enum"
https://bugs.webkit.org/show_bug.cgi?id=203883
https://trac.webkit.org/changeset/252151

10:38 AM Changeset in webkit [252333] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Unable to view .pages files
https://bugs.webkit.org/show_bug.cgi?id=204076
<rdar://problem/57079557>

Reviewed by Brent Fulgham.

This is caused by a syscall being blocked by the sandbox. The syscall was previously unused in the
WebContent process.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
10:28 AM Changeset in webkit [252332] by dino@apple.com
  • 2 edits in trunk/Tools

Regression r252309: API Test TestWebKitAPI._WKActivatedElementInfo.InfoForLinkAroundImage is failing consistently
https://bugs.webkit.org/show_bug.cgi?id=204058
<rdar://problem/57056000>

Unreviewed.

Remove test that looks at screen dimensions, because it fails on iPad.

  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):

10:06 AM Changeset in webkit [252331] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Ensure MediaRemote callback always called.
https://bugs.webkit.org/show_bug.cgi?id=204072
<rdar://problem/56301651>

Reviewed by Eric Carlson.

MediaRemote.framework will complain if the callback passed in via MRMediaRemoteAddAsyncCommandHandlerBlock()
is not called for each invocation of the handler. Make sure we always call the completion handler, even in
the case of unsupported commands, or if the listener object has already been destroyed.

  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac):

10:01 AM Changeset in webkit [252330] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

[Picture-in-Picture Web API] Support picture-in-picture CSS pseudo-class
https://bugs.webkit.org/show_bug.cgi?id=203493

Patch by Peng Liu <Peng Liu> on 2019-11-11
Reviewed by Dean Jackson.

Source/WebCore:

Add CSS pseudo class ":picture-in-picture" for a video element in the picture-in-picture mode.

Test: media/picture-in-picture/picture-in-picture-api-css-selector.html

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:

(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesPictureInPicturePseudoClass):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

LayoutTests:

  • media/picture-in-picture/picture-in-picture-api-css-selector-expected.txt: Added.
  • media/picture-in-picture/picture-in-picture-api-css-selector.html: Added.
9:49 AM Changeset in webkit [252329] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] Use named arguments in factories.py
https://bugs.webkit.org/show_bug.cgi?id=204071

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(Factory.init):
(StyleFactory.init):
(WatchListFactory.init):
(BindingsFactory.init):
(WebKitPerlFactory.init):
(WebKitPyFactory.init):
(BuildFactory.init):
(TestFactory.init):
(JSCTestsFactory.init):
(WindowsFactory.init):
(WinCairoFactory.init):
(GTKFactory.init):
(WPEFactory.init):
(ServicesFactory.init):

9:29 AM Changeset in webkit [252328] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Typo in assertion in validateCPS in DFGValidate.cpp ("Unexecpted")
https://bugs.webkit.org/show_bug.cgi?id=204066

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-11
Reviewed by Antti Koivisto.

  • dfg/DFGValidate.cpp:
9:07 AM Changeset in webkit [252327] by Kocsen Chung
  • 5 edits in branches/safari-608.4.9.1-branch

Cherry-pick r252248. rdar://problem/57058391

[WebAuthn] Return NotAllowedError immediately for UI cancellations
https://bugs.webkit.org/show_bug.cgi?id=203937
<rdar://problem/56962420>

Reviewed by Brent Fulgham.

Source/WebKit:

NotAllowedError representing UI cancellations should be returned to sites
immediately such that sites could show appropriate error page immediately.

Covered by existing tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::cancelRequest): (WebKit::AuthenticatorManager::clearState): (WebKit::AuthenticatorManager::resetState): Deleted.
  • UIProcess/WebAuthentication/AuthenticatorManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

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

8:58 AM Changeset in webkit [252326] by Kocsen Chung
  • 5 edits in branches/safari-608.4.9.0-branch

Cherry-pick r252248. rdar://problem/57040121

[WebAuthn] Return NotAllowedError immediately for UI cancellations
https://bugs.webkit.org/show_bug.cgi?id=203937
<rdar://problem/56962420>

Reviewed by Brent Fulgham.

Source/WebKit:

NotAllowedError representing UI cancellations should be returned to sites
immediately such that sites could show appropriate error page immediately.

Covered by existing tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::cancelRequest): (WebKit::AuthenticatorManager::clearState): (WebKit::AuthenticatorManager::resetState): Deleted.
  • UIProcess/WebAuthentication/AuthenticatorManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

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

8:24 AM Changeset in webkit [252325] by commit-queue@webkit.org
  • 7 edits in trunk

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

This patch caused a crash due to synchronous event firing
(Requested by jernoble on #webkit).

Reverted changeset:

"media/W3C/video/networkState/networkState_during_progress.html
is flaky"
https://bugs.webkit.org/show_bug.cgi?id=76280
https://trac.webkit.org/changeset/251460

8:23 AM Changeset in webkit [252324] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

EWS should retry build in case of kill-old-processes failure
https://bugs.webkit.org/show_bug.cgi?id=203858

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(KillOldProcesses.evaluateCommand): Retry the build in case of failure.
(KillOldProcesses.getResultSummary): Update the build-step summary string.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
7:16 AM Changeset in webkit [252323] by Carlos Garcia Campos
  • 14 edits in trunk

WebDriver: implement proxy support
https://bugs.webkit.org/show_bug.cgi?id=180408

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

Add optional Proxy struct to session capabilities.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::processSessionCapabilities):

Source/WebDriver:

Handle proxy object in capabilities.

  • Capabilities.h: Add Proxy struct.
  • WebDriverService.cpp:

(WebDriver::deserializeProxy): Deserialize the proxy from capabilities.
(WebDriver::WebDriverService::parseCapabilities const): Get the deserialized proxy.
(WebDriver::WebDriverService::validatedCapabilities const): Ensure proxy object is valid.
(WebDriver::WebDriverService::matchCapabilities const): Check proxy type is supported by the platform.
(WebDriver::WebDriverService::createSession): Only set an empty proxy object in capabilities if we don't have a
deserialized proxy.

  • WebDriverService.h:
  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::buildSessionCapabilities const): Send the proxy settings to the browser.

  • glib/WebDriverServiceGLib.cpp:

(WebDriver::WebDriverService::platformSupportProxyType const): Return false if proxy type is "pac".

Source/WebKit:

  • UIProcess/API/glib/WebKitAutomationSession.cpp:

(parseProxyCapabilities): Parse the proxy settings from capabilities.
(webkitAutomationSessionCreate): Set the proxy settings received from capabilities.

WebDriverTests:

Unskip the tests that are now passing.

7:13 AM Changeset in webkit [252322] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Line::m_trimmableRuns does not need to be a ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=204061
<rdar://problem/57064178>

Reviewed by Antti Koivisto.

Switch from ListHashSet to Vector.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

Nov 10, 2019:

10:25 PM Changeset in webkit [252321] by Kocsen Chung
  • 4 edits in branches/safari-608.4.9.0-branch/Source

Cherry-pick r252297. rdar://problem/57040122

[WebAuthn] Add quirk needed to support legacy Google NFC Titan security keys
https://bugs.webkit.org/show_bug.cgi?id=204024
<rdar://problem/56962320>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by manual tests.

  • Modules/webauthn/fido/FidoConstants.h:

Source/WebKit:

Some legacy U2F keys such as Google T1 Titan don't understand the FIDO applet command. Instead,
they are configured to only have the FIDO applet. Therefore, when the above command fails, we
use U2F_VERSION command to double check if the connected tag can actually speak U2F, indicating
we are interacting with one of these legacy keys.

  • UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: (WebKit::fido::compareVersion): (WebKit::fido::trySelectFidoApplet): (WebKit::NfcConnection::transact const): (WebKit::NfcConnection::didDetectTags):

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

10:08 PM Changeset in webkit [252320] by Kocsen Chung
  • 7 edits in branches/safari-608.4.9.0-branch/Source

Versioning.

10:04 PM Changeset in webkit [252319] by Kocsen Chung
  • 4 edits in branches/safari-608.4.9.1-branch/Source

Cherry-pick r252297. rdar://problem/57058404

[WebAuthn] Add quirk needed to support legacy Google NFC Titan security keys
https://bugs.webkit.org/show_bug.cgi?id=204024
<rdar://problem/56962320>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by manual tests.

  • Modules/webauthn/fido/FidoConstants.h:

Source/WebKit:

Some legacy U2F keys such as Google T1 Titan don't understand the FIDO applet command. Instead,
they are configured to only have the FIDO applet. Therefore, when the above command fails, we
use U2F_VERSION command to double check if the connected tag can actually speak U2F, indicating
we are interacting with one of these legacy keys.

  • UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: (WebKit::fido::compareVersion): (WebKit::fido::trySelectFidoApplet): (WebKit::NfcConnection::transact const): (WebKit::NfcConnection::didDetectTags):

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

9:59 PM Changeset in webkit [252318] by Kocsen Chung
  • 7 edits in branches/safari-608.4.9.1-branch/Source

Versioning.

9:39 PM Changeset in webkit [252317] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

iOS: fast/events/scroll-subframe-in-rendering-update.html always fails
https://bugs.webkit.org/show_bug.cgi?id=204045

Reviewed by Wenson Hsieh.

Enable async & frame scrolling to make the test work in iOS.

  • fast/events/scroll-subframe-in-rendering-update.html:
8:09 PM Changeset in webkit [252316] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Move Line::Run's line layout specific logic to InlineItemRun
https://bugs.webkit.org/show_bug.cgi?id=204055
<rdar://problem/57053232>

Reviewed by Antti Koivisto.

Line::Run started getting a bit overloaded through supporting the line layout logic and providing the 'run' interface
to the caller (e.g. merging multiple runs happens at the very end of the line layout, when the line is being closed. When a run
is expanded some of the properties do not make sense anymore. It makes part of the Run's logic unnecessarily complicated).
This patch introduces the InlineItemRun structure to support the line layout logic. We construct InlineItemRuns
as InlineItems are getting appended to the line and when the line is getting closed, we turn them into Line::Runs (InlineItems are never merged, only Line::Runs are).

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::setExpansion):
(WebCore::Display::Run::Run):
(WebCore::Display::Run::TextContext::resetExpansion): Deleted.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::InlineItemRun::layoutBox const):
(WebCore::Layout::InlineItemRun::logicalRect const):
(WebCore::Layout::InlineItemRun::textContext const):
(WebCore::Layout::InlineItemRun::isText const):
(WebCore::Layout::InlineItemRun::isBox const):
(WebCore::Layout::InlineItemRun::isContainerStart const):
(WebCore::Layout::InlineItemRun::isContainerEnd const):
(WebCore::Layout::InlineItemRun::type const):
(WebCore::Layout::InlineItemRun::setIsCollapsed):
(WebCore::Layout::InlineItemRun::isCollapsed const):
(WebCore::Layout::InlineItemRun::isCollapsedToZeroAdvanceWidth const):
(WebCore::Layout::InlineItemRun::isCollapsible const):
(WebCore::Layout::InlineItemRun::isWhitespace const):
(WebCore::Layout::InlineItemRun::hasExpansionOpportunity const):
(WebCore::Layout::InlineItemRun::InlineItemRun):
(WebCore::Layout::InlineItemRun::setCollapsesToZeroAdvanceWidth):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::adjustExpansionBehavior):
(WebCore::Layout::Line::Run::expansionBehavior const):
(WebCore::Layout::Line::Run::setHasExpansionOpportunity):
(WebCore::Layout::Line::Run::setComputedHorizontalExpansion):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::~Line):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::alignContentVertically const):
(WebCore::Layout::Line::justifyRuns const):
(WebCore::Layout::Line::alignContentHorizontally const):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendReplacedInlineBox): Need to find a better place for setImage.
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::alignContentVertically): Deleted.
(WebCore::Layout::Line::justifyRuns): Deleted.
(WebCore::Layout::Line::alignContentHorizontally): Deleted.

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::layoutBox const):
(WebCore::Layout::Line::Run::logicalRect const):
(WebCore::Layout::Line::Run::textContext const):
(WebCore::Layout::Line::Run::isCollapsedToVisuallyEmpty const):
(WebCore::Layout::Line::Run::adjustLogicalTop):
(WebCore::Layout::Line::Run::moveHorizontally):
(WebCore::Layout::Line::Run::moveVertically):
(WebCore::Layout::Line::Run::setTextContext):
(WebCore::Layout::Line::Run::setIsCollapsedToVisuallyEmpty):
(WebCore::Layout::Line::Run::hasExpansionOpportunity const):
(WebCore::Layout::Line::Run::expansionOpportunityCount const):
(WebCore::Layout::Line::Run::displayRun const): Deleted.
(WebCore::Layout::Line::Run::isCollapsed const): Deleted.
(WebCore::Layout::Line::Run::isCollapsible const): Deleted.
(WebCore::Layout::Line::Run::hasTrailingCollapsedContent const): Deleted.
(WebCore::Layout::Line::Run::isWhitespace const): Deleted.
(WebCore::Layout::Line::Run::setIsCollapsed): Deleted.
(WebCore::Layout::Line::Run::isCollapsedToZeroAdvanceWidth const): Deleted.
(WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth): Deleted.
(WebCore::Layout::Line::Run::expansionBehavior const): Deleted.
(WebCore::Layout::Line::Run::setHasExpansionOpportunity): Deleted.
(WebCore::Layout::Line::Run::adjustExpansionBehavior): Deleted.
(WebCore::Layout::Line::Run::setComputedHorizontalExpansion): Deleted.

4:16 PM Changeset in webkit [252315] by Wenson Hsieh
  • 8 edits in trunk/Source/WebCore

[Clipboard API] Add some infrastructure to resolve ClipboardItems into pasteboard data for writing
https://bugs.webkit.org/show_bug.cgi?id=203707

Reviewed by Ryosuke Niwa.

Implements a new method that will be used in a future patch to aggregate data vended by ClipboardItems when
writing items to the platform pasteboard. See below for more details; no new tests, since there is no change in
behavior yet.

  • Modules/async-clipboard/ClipboardItem.cpp:

(WebCore::ClipboardItem::collectDataForWriting):

Add a new virtual collectDataForWriting method, which is used when writing ClipboardItem data to the
pasteboard. This allows ClipboardItems to asynchronously convert data to a PasteboardCustomData after resolving
promises to strings or blobs; or alternately, cancel all data loading if a promise is rejected.

In order to convert items into a list of PasteboardCustomData, we do the following:

set up a PasteboardCustomData corresponding to each clipboard item
for each clipboard item:

for each type in the clipboard item:

try to resolve the promise
if the promise resolved to a string:

write the string to custom data under the type

if the promise resolved to a blob:

load the blob data as either text or an ArrayBuffer (depending on the type)
write either the loaded string or buffer to custom data under the type

if the promise rejected or resolved to an unsupported value, bail from these steps

  • Modules/async-clipboard/ClipboardItem.h:
  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::documentFromClipboard):
(WebCore::readTypeForMIMEType):
(WebCore::ClipboardItemBindingsDataSource::collectDataForWriting):
(WebCore::ClipboardItemBindingsDataSource::invokeCompletionHandler):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::ClipboardItemTypeLoader):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::~ClipboardItemTypeLoader):

Add a helper class to hold state associated with loading each clipboard type. This includes the final data
itself (a variant that holds either a String or Blob), as well as a FileReaderLoader which may be present in the
case where the clipboard item type resolves to a blob.

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFinishLoading):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFail):

Each ClipboardItemType is also the client for its FileReaderLoader, if present; when the FileReaderLoader
finishes loading or fails, we then extract data from the loader and invoke the completion handler.

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::invokeCompletionHandler):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didResolveToBlob):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFailToResolve):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didResolveToString):

One of these three methods is called when the promise corresponding to a clipboard type is either resolved or
rejected. If rejected or resolved to an incompatible type, we call the completion handler immediately with no
data; if we resolve to a string, we simply store the string in m_data and invoke the completion handler;
otherwise, if we resolve to a blob, we create a new loader to fetch either the string or data buffer for the
blob, and wait until either didFinishLoading or didFail is called.

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.h:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::create):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::type):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::data):

  • Modules/async-clipboard/ClipboardItemDataSource.h:
  • Modules/async-clipboard/ClipboardItemPasteboardDataSource.cpp:

(WebCore::ClipboardItemPasteboardDataSource::collectDataForWriting):

For the time being, leave this unimplemented; a future patch will add support for writing ClipboardItems that
came from the platform pasteboard, as opposed to those created by the page.

  • Modules/async-clipboard/ClipboardItemPasteboardDataSource.h:
3:45 PM Changeset in webkit [252314] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

StorageManagerSet.m_storageAreas should use weak pointers to StorageArea
<https://webkit.org/b/204048>
<rdar://problem/55342744>

Reviewed by Geoffrey Garen.

  • NetworkProcess/WebStorage/StorageArea.h:

(class WebKit::StorageArea):

  • Inherit from CanMakeWeakPtr<StorageArea>.
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::removeConnection):
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
(WebKit::StorageManagerSet::disconnectFromStorageArea):
(WebKit::StorageManagerSet::getValues): Initialize quotaError
stack value since it is not guaranteed to be set.
(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):

  • Use makeWeakPtr() to add StorageArea pointers to m_storageAreas.
  • Use const auto& to store WeakPtr<StorageArea> values from m_storageAreas.
  • Add nullptr checks before using WeakPtr<StorageArea> values.
  • NetworkProcess/WebStorage/StorageManagerSet.h:

(WebKit::StorageManagerSet::m_storageAreas):

  • Use WeakPtr<StorageArea>.
12:01 AM Changeset in webkit [252313] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

Stack allocate StyleResolver state
https://bugs.webkit.org/show_bug.cgi?id=204053

Reviewed by Zalan Bujtas.

State is currently awkwardly a member that gets cleared. It should be stack allocated and
passed around where needed.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateBlendingKeyframes):

  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::builderContext):

Helper for initializing Style::Builder from resolver state.

(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::State::clear): Deleted.

Nothing to clear, state is transient.

(WebCore::StyleResolver::setNewStateWithElement): Deleted.
(WebCore::StyleResolver::applyPropertyToStyle): Deleted.
(WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted.

Style::Builder can be used directly to apply properties instead of via these functions that require state setup.

(WebCore::StyleResolver::initializeFontStyle): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::inspectorCSSOMWrappers):
(WebCore::StyleResolver::style const): Deleted.
(WebCore::StyleResolver::parentStyle const): Deleted.
(WebCore::StyleResolver::rootElementStyle const): Deleted.
(WebCore::StyleResolver::element const): Deleted.
(WebCore::StyleResolver::state): Deleted.
(WebCore::StyleResolver::state const): Deleted.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont):

Use Style::Builder directly to apply properties.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::Builder):

Encapsulte immutable arguments into BuilderContext type.

(WebCore::Style::Builder::applyPropertyValue):

  • style/StyleBuilder.h:
  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::BuilderState):
(WebCore::Style::BuilderState::updateFontForZoomChange):
(WebCore::Style::BuilderState::updateFontForGenericFamilyChange):

  • style/StyleBuilderState.h:

(WebCore::Style::BuilderState::parentStyle const):
(WebCore::Style::BuilderState::rootElementStyle const):
(WebCore::Style::BuilderState::document const):
(WebCore::Style::BuilderState::element const):
(WebCore::Style::BuilderState::parentFontDescription):

Note: See TracTimeline for information about the timeline view.