Timeline
Mar 12, 2020:
- 10:55 PM Changeset in webkit [258384] by
-
- 4 edits in trunk/Source/WebKit
Add a very verbose logging mode for incremental PDF loading
https://bugs.webkit.org/show_bug.cgi?id=208975
Reviewed by Simon Fraser.
Adds a verbose logging channel that includes a full dump of the PDFPlugin's loading status
for each logging message.
- Platform/Logging.h:
- WebProcess/Plugins/PDF/PDFPlugin.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pdfLog):
(WebKit::PDFPlugin::logStreamLoader):
(WebKit::PDFPlugin::verboseLog):
(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::dataProviderGetByteRangesCallback):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::adoptBackgroundThreadDocument):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithBytes):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithAccumulatedData):
(WebKit::PDFPlugin::forgetLoader):
- 10:45 PM Changeset in webkit [258383] by
-
- 2 edits in trunk/Source/WebKitLegacy/ios
rdar://problem/60359230 Mark locationManager:didChangeAuthorizationStatus: as deprecated.
- Misc/WebGeolocationCoreLocationProvider.mm:
(-[WebGeolocationCoreLocationProvider locationManager:didChangeAuthorizationStatus:]):
- 10:30 PM Changeset in webkit [258382] by
-
- 5 edits2 adds in trunk
REGRESSION(r255957): Element with scroll-behavior:smooth isn't draggable after r255957
https://bugs.webkit.org/show_bug.cgi?id=208566
Reviewed by Simon Fraser and Frédéric Wang.
Source/WebCore:
To perform smooth scroll, RenderLayer::scrollRectToVisible checks the value of scroll-behavior.
It starts an animated scrolling if scroll-behavior is smooth.
On the other hand, the drag action would start an autoscroll if the element is scrollable.
The autoscroll uses m_autoscrollTimer which is a repeating timer, when the timer fired it calls
scrollRectToVisible with different positions.
So if performing autoscroll on scroll-bahavior: smooth element, there are two nested animations.
When timer fired, scrollRectToVisible is called, because of scroll-behavior:smooth, it starts
animated scrolling not instant scrolling. Then there's the next timer fired, the previous
animated scrolling would be canceled. Eventually, the element becomes un-draggable.
To fix this, while performing autoscroll, scrollRectToVisible shouldn't trigger animated scrolling
no matter what the value of scroll-behavior is.
Test: fast/events/drag-smooth-scroll-element.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::autoscroll):
- rendering/RenderLayer.h:
LayoutTests:
The test uses eventSender to generate drag action.
- fast/events/drag-smooth-scroll-element-expected.txt: Added.
- fast/events/drag-smooth-scroll-element.html: Added.
- platform/ios/TestExpectations: IOS doesn't support mouse events, so skip the test.
- 9:16 PM Changeset in webkit [258381] by
-
- 2 edits in trunk/Source/JavaScriptCore
DFG nodes that take a TypedArray's storage need to keepAlive the TypedArray
https://bugs.webkit.org/show_bug.cgi?id=209035
Reviewed by Saam Barati.
It might be possible to produce a graph where the last reference to a TypedArray
is via a GetByVal or PutByVal. Since those nodes don't create any reference to the
TypedArray in B3 we may end up not keeping the TypedArray alive until after the
storage access.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
- 8:47 PM Changeset in webkit [258380] by
-
- 5 edits2 adds in trunk
RenderTreeNeedsLayoutChecker asserts with imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html
https://bugs.webkit.org/show_bug.cgi?id=209022
<rdar://problem/60390647>
Reviewed by Simon Fraser.
Source/WebCore:
Fix the case when
- the block level box is no longer the containing block for its out-of-flow descendants and
- the new containing block does not get marked dirty because there's a re-layout boundary (overflow: hidden)
between the old and the new containing block.
Test: fast/block/containing-block-for-out-of-flow-becomes-static.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::removePositionedObjects):
LayoutTests:
- TestExpectations:
- fast/block/containing-block-for-out-of-flow-becomes-static-expected.html: Added.
- fast/block/containing-block-for-out-of-flow-becomes-static.html: Added.
- 8:09 PM Changeset in webkit [258379] by
-
- 6 edits in trunk/Source
Correct preference handling and naming conventions in AppBound browsing preferences
https://bugs.webkit.org/show_bug.cgi?id=209031
<rdar://problem/60396298>
Reviewed by John Wilander.
Source/WebKit:
I made a mistake in the handling of preferences related to the IsInAppBrowserPrivacyEnabled
and the quirk flag, which led to some code not executing when expected.
This patch does the following:
- Uses the correct naming scheme for WebKit Internal Debug flags. They should be 'WebKitDebug', not 'WebKitInternal' or 'WebKitInternalDebug'.
- Updates the local quirk state in WebPage when page settings change.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Source/WebKitLegacy/mac:
This patch consistently uses the correct naming scheme for WebKit Internal Debug flags.
They should be 'WebKitDebug', not 'WebKitInternal' or 'WebKitInternalDebug'.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences isInAppBrowserPrivacyEnabled]):
(-[WebPreferences setInAppBrowserPrivacyEnabled:]):
(-[WebPreferences needsInAppBrowserPrivacyQuirks]):
(-[WebPreferences setNeedsInAppBrowserPrivacyQuirks:]):
- 5:51 PM Changeset in webkit [258378] by
-
- 4 edits in branches/safari-610.1.7-branch
Cherry-pick r258371. rdar://problem/60395490
Crash in TextManipulationController::replace
https://bugs.webkit.org/show_bug.cgi?id=209021
Reviewed by Wenson Hsieh.
Source/WebCore:
This patch addresses two issues that can lead to a crash in TextManipulationController::replace.
The biggest issue here is that commonAncestor can be a descendent of insertionPoint's containerNode.
Addressed this issue by computing the first node to remove in the same traveral where commonAncestor
is computed by way of remembering the very first content node (firstContentNode). This also lets us
eliminate the secondary, redundant traversal to discover all the nodes to remove.
In addition, the set of nodes to remove could sometimes contain commonAncestor and its ancestors.
This patch addresses this issue by removing all inclusive ancestors of commonAncestor from nodesToRemove.
- editing/TextManipulationController.cpp: (WebCore::TextManipulationController::replace):
Tools:
Added a regression test.
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm: (TextManipulation.CompleteTextManipulationShouldReplaceContentFollowedAfterImageInCSSTable):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:51 PM Changeset in webkit [258377] by
-
- 5 edits in branches/safari-610.1.7-branch
Revert r258353. rdar://problem/60395490
- 5:51 PM Changeset in webkit [258376] by
-
- 4 edits in branches/safari-610.1.7-branch
Revert r258354. rdar://problem/60395490
- 5:47 PM Changeset in webkit [258375] by
-
- 8 edits in branches/safari-610.1.7-branch/Source
Versioning.
- 5:15 PM Changeset in webkit [258374] by
-
- 2 edits in trunk/Source/WebKit
WebPageProxy::SaveImageToLibrary should validate its
imageSizeparameter
<https://webkit.org/b/209012>
<rdar://problem/60181295>
Reviewed by Chris Dumez.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::saveImageToLibrary):
- Validate upper bound of
imageSizeparameter. - Add static_cast<size_t>() to
imageSizeparameter to denote type change.
- 4:55 PM Changeset in webkit [258373] by
-
- 3 edits in trunk/LayoutTests
http/tests/paymentrequest/page-cache-completed-payment-response.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207385
<rdar://problem/59260167>
Unreviewed, address flakiness by only making sure that the promises get rejected, without checking
which error it is actually rejected with, since this is racy.
- http/tests/paymentrequest/page-cache-completed-payment-response.https.html:
- platform/mac-wk2/TestExpectations:
- 4:49 PM Changeset in webkit [258372] by
-
- 5 edits in trunk/LayoutTests
[ Mac ] fast/history/page-cache-webdatabase-pending-transaction.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=207010
<rdar://problem/59035295>
Unreviewed, silence console messages to address flakiness.
LayoutTests/imported/w3c:
- web-platform-tests/workers/WorkerGlobalScope_ErrorEvent_lineno-expected.txt:
LayoutTests:
- TestExpectations:
- platform/mac/TestExpectations:
- 4:29 PM Changeset in webkit [258371] by
-
- 4 edits in trunk
Crash in TextManipulationController::replace
https://bugs.webkit.org/show_bug.cgi?id=209021
Reviewed by Wenson Hsieh.
Source/WebCore:
This patch addresses two issues that can lead to a crash in TextManipulationController::replace.
The biggest issue here is that commonAncestor can be a descendent of insertionPoint's containerNode.
Addressed this issue by computing the first node to remove in the same traveral where commonAncestor
is computed by way of remembering the very first content node (firstContentNode). This also lets us
eliminate the secondary, redundant traversal to discover all the nodes to remove.
In addition, the set of nodes to remove could sometimes contain commonAncestor and its ancestors.
This patch addresses this issue by removing all inclusive ancestors of commonAncestor from nodesToRemove.
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::replace):
Tools:
Added a regression test.
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(TextManipulation.CompleteTextManipulationShouldReplaceContentFollowedAfterImageInCSSTable):
- 4:21 PM Changeset in webkit [258370] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (257740?): [ iOS ] fast/events/autoscroll-in-iframe.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=209025
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:17 PM Changeset in webkit [258369] by
-
- 4 edits in trunk/Source/WebKit
Check for overflows in MachMessage::messageSize()
https://bugs.webkit.org/show_bug.cgi?id=209020
<rdar://problem/58264215>
Reviewed by Alex Christensen.
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::Connection::sendOutgoingMessage):
- Platform/IPC/cocoa/MachMessage.cpp:
(IPC::MachMessage::messageSize):
- Platform/IPC/cocoa/MachMessage.h:
- 4:14 PM Changeset in webkit [258368] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Debug ] webgpu/whlsl/vector-compare.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209024
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:10 PM Changeset in webkit [258367] by
-
- 5 edits in trunk/LayoutTests
[ macOS iOS ] fast/dom/connected-subframe-counter-overflow.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207152
<rdar://problem/59127411>
Unreviewed, mark the test as slow instead of flaky timeout. The test is slow to run because
it checks for some overflow and adds a lot of iframes to the document.
This patch also speed up the test a bit by marking the iframes as display:none *before* inserting
them into the document. We also now add the frames in a timer to yield and make sure that the
main thread stays responsive while running this test.
- TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 4:06 PM Changeset in webkit [258366] by
-
- 1 copy in tags/Safari-610.1.7.2
Tag Safari-610.1.7.2.
- 4:04 PM Changeset in webkit [258365] by
-
- 8 edits in branches/safari-610.1.7-branch/Source
Versioning.
- 3:43 PM Changeset in webkit [258364] by
-
- 5 edits in trunk/LayoutTests
[ Mac wk2 Release ] fast/dom/navigator-detached-no-crash.html flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207151
<rdar://problem/59126935>
Unreviewed, silence console warnings to address flakiness.
- TestExpectations:
- platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
- 3:29 PM Changeset in webkit [258363] by
-
- 3 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r254979. rdar://problem/58836694
Actually fix history link directs on dashboard and results.html
https://bugs.webkit.org/show_bug.cgi?id=206666
Reviewed by Jonathan Bedard.
- fast/harness/results.html:
- legacy-animation-engine/fast/harness/results.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:56 PM Changeset in webkit [258362] by
-
- 2 edits in trunk/LayoutTests
[ Catalina wk2 ] webrtc/video-autoplay1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209018
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:42 PM Changeset in webkit [258361] by
-
- 35 edits in trunk
[CMake] Find modules should find pkg-config with find_package(PkgConfig QUIET)
https://bugs.webkit.org/show_bug.cgi?id=208948
Reviewed by Michael Catanzaro.
- Source/cmake/FindATK.cmake:
- Source/cmake/FindATKBridge.cmake:
- Source/cmake/FindATSPI.cmake:
- Source/cmake/FindCairo.cmake:
- Source/cmake/FindCairoGL.cmake:
- Source/cmake/FindEGL.cmake:
- Source/cmake/FindEnchant.cmake:
- Source/cmake/FindFontconfig.cmake:
- Source/cmake/FindGDK3.cmake:
- Source/cmake/FindGLIB.cmake:
- Source/cmake/FindGObjectIntrospection.cmake:
- Source/cmake/FindGStreamer.cmake:
- Source/cmake/FindGTK3.cmake:
- Source/cmake/FindGTKUnixPrint.cmake:
- Source/cmake/FindHarfBuzz.cmake:
- Source/cmake/FindLibEpoxy.cmake:
- Source/cmake/FindLibNotify.cmake:
- Source/cmake/FindLibPSL.cmake:
- Source/cmake/FindLibSoup.cmake:
- Source/cmake/FindLibseccomp.cmake:
- Source/cmake/FindLibsecret.cmake:
- Source/cmake/FindLibtasn1.cmake:
- Source/cmake/FindLibxkbcommon.cmake:
- Source/cmake/FindNghttp2.cmake:
- Source/cmake/FindOpenGL.cmake:
- Source/cmake/FindOpenGLES2.cmake:
- Source/cmake/FindOpenJPEG.cmake:
- Source/cmake/FindSQLite3.cmake:
- Source/cmake/FindWOFF2Dec.cmake:
- Source/cmake/FindWPE.cmake:
- Source/cmake/FindWPEBackend-fdo.cmake:
- Source/cmake/FindWayland.cmake:
- Source/cmake/FindWaylandProtocols.cmake:
- Source/cmake/FindWebP.cmake:
- 2:41 PM Changeset in webkit [258360] by
-
- 1 copy in tags/Safari-610.1.7.1
Tag Safari-610.1.7.1.
- 2:36 PM Changeset in webkit [258359] by
-
- 13 edits1 add in trunk
[macOS] _AXSApplicationAccessibilityEnabled should not be called
https://bugs.webkit.org/show_bug.cgi?id=208953
Reviewed by Brent Fulgham.
Source/WebCore:
The function _AXSApplicationAccessibilityEnabled and the notification kAXSApplicationAccessibilityEnabledNotification
exist on macOS, but they do not have the same behavior as on iOS, and should not be used in the same way. Using this
function and notification on macOS was introduced in <https://bugs.webkit.org/show_bug.cgi?id=208690>, and this patch
partially reverts this behavior.
API test: WebKit.IsRemoteUIAppForAccessibility
- testing/Internals.cpp:
(WebCore::Internals::isRemoteUIAppForAccessibility):
- testing/Internals.h:
- testing/Internals.idl:
- testing/Internals.mm:
(WebCore::Internals::isRemoteUIAppForAccessibility):
Source/WebCore/PAL:
Declare method to check if the process is a remote UI app for accessibility.
- pal/spi/cocoa/NSAccessibilitySPI.h:
Source/WebKit:
On macOS, stop using the function _AXSApplicationAccessibilityEnabled and listening to the notification
kAXSApplicationAccessibilityEnabledNotification, since they do not have the same behavior as on iOS.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::unblockAccessibilityServer):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 2:33 PM Changeset in webkit [258358] by
-
- 2 edits in trunk
[CMake] Avoid calling FPHSA multiple time in FindPerlModules.cmake
https://bugs.webkit.org/show_bug.cgi?id=208948
Reviewed by Michael Catanzaro.
- Source/cmake/FindPerlModules.cmake:
- 2:22 PM Changeset in webkit [258357] by
-
- 6 edits in trunk
Resource load statistics data summary should return all third party data
https://bugs.webkit.org/show_bug.cgi?id=209000
<rdar://problem/60348306>
Reviewed by John Wilander.
Source/WebKit:
No new tests, this patch adjusts old tests to test this new behavior
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setThirdPartyCookieBlockingMode:onlyOnSitesWithoutUserInteraction:completionHandler:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
Added new function _setThirdPartyCookieBlockingMode so API tests can
set this parameter.
Tools:
Marked only 2 of 3 domains prevalent in data summary tests to ensure
the call returns all third parties, not just prevalent ones.
Added a more aggressive check for the size of the array at the
beginning of the test to ensure the array is still returning 3 values.
Also removed the ASSERT statements as they seem to cause timeouts (not
clear crashes) when they are not true, which is hard to debug.
If these values are nil, the test will fail in the EXPECT_WK_STREQ
checks, we don't need ASSERT statements.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
- 2:12 PM Changeset in webkit [258356] by
-
- 8 edits in trunk/Source/WebCore
Cache the ScrollView platformWidget to avoid [WebAccessibilityObjectWrapper scrollViewParent] hitting the main thread too often.
https://bugs.webkit.org/show_bug.cgi?id=209010
Reviewed by Chris Fleizach.
- [WebAccessibilityObjectWrapper scrollViewParent] is called very often
and blocks the AXThread to retrieve a value from the main thread. This
change caches the PlatformWidget for the corresponding ScrollView (an
NSView) to avoid hitting the main thread that often.
- In Addition, made the ScrollView member of AccessibilityScrollView a
WeakPtr instead of a naked pointer.
- Removed an unused lock from AXIsolatedObject and the const qualifier
from the return value of stringAttributeValue which is unnecessary.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::AccessibilityScrollView):
(WebCore::AccessibilityScrollView::platformWidget const):
(WebCore::AccessibilityScrollView::widgetForAttachmentView const):
(WebCore::AccessibilityScrollView::webAreaObject const):
(WebCore::AccessibilityScrollView::documentFrameView const):
(WebCore::AccessibilityScrollView::parentObject const):
(WebCore::AccessibilityScrollView::parentObjectIfExists const):
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable const):
- accessibility/AccessibilityScrollView.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::stringAttributeValue const):
(WebCore::AXIsolatedObject::platformWidget const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper scrollViewParent]):
- 2:06 PM Changeset in webkit [258355] by
-
- 1 edit6 adds in trunk/Tools
resultsdpy: Add script to run local instance
https://bugs.webkit.org/show_bug.cgi?id=208746
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/example: Added.
- resultsdbpy/resultsdbpy/example/init.py: Added.
- resultsdbpy/resultsdbpy/example/environment.py: Added.
(Environment): Organize environment variables used by results database.
(ModelFromEnvironment): Construct the database model from the environment.
(main): Create and drop tables, if required.
- resultsdbpy/resultsdbpy/example/main.py: Added.
(health): Web-server health check.
(handle_errors):
(main): Run results database web-server.
- resultsdbpy/resultsdbpy/example/worker.py: Added.
(main): Asynchronously process uploaded results.
- resultsdbpy/resultsdbpy/run: Added.
- 2:01 PM Changeset in webkit [258354] by
-
- 4 edits in branches/safari-610.1.7-branch
Revert r258037. rdar://problem/60382950
- 2:01 PM Changeset in webkit [258353] by
-
- 5 edits in branches/safari-610.1.7-branch
Revert r258093. rdar://problem/60382950
- 1:47 PM Changeset in webkit [258352] by
-
- 8 edits in branches/safari-610.1.7-branch/Source
Versioning.
- 1:18 PM Changeset in webkit [258351] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] fast/scrolling/momentum-scroll-with-borders.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209013
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 12:10 PM Changeset in webkit [258350] by
-
- 2 edits in trunk/Tools
run-webkit-tests --use-gpu-process should enable GPU Process for canvas
https://bugs.webkit.org/show_bug.cgi?id=209004
Reviewed by Tim Horton.
Add "RenderCanvasInGPUProcessEnabled" to the list of internal features that should be enabled when
use_gpu_processis specified.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
- 12:06 PM Changeset in webkit [258349] by
-
- 2 edits in trunk/Source/WebCore
Attributes SelectionTextMarkerRange and Start/EndTextMarker need to run on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=208996
Reviewed by Chris Fleizach.
Covered by existing tests.
Dispatch to the main thread the computation of these accessibility attributes.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- 12:02 PM Changeset in webkit [258348] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208993
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 12:01 PM Changeset in webkit [258347] by
-
- 2 edits in trunk/Tools
Make flatpack import for run-webkit-tests only happen on linux systems
https://bugs.webkit.org/show_bug.cgi?id=208954
Reviewed by Philippe Normand.
- Scripts/run-webkit-tests: Added an if statement to find the system platform
to determine if we need the flatpackutils import.
- 11:43 AM Changeset in webkit [258346] by
-
- 5 edits2 moves in trunk
AX: Isolated tree: Crash in URL retrieval
https://bugs.webkit.org/show_bug.cgi?id=208942
<rdar://problem/60337588>
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/url-test.html
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::url const): Check for m_renderer
before dereferencing and re-use the associated Node. Also fixes the last
type check and downcast that were using different types.
LayoutTests:
Moved the url-test.html test to the root directory so that it is
executed in both Mac and iOS.
- accessibility/url-test-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/url-test-expected.txt.
- accessibility/url-test.html: Renamed from LayoutTests/accessibility/ios-simulator/url-test.html.
- platform/ios-simulator/TestExpectations:
- platform/win/TestExpectations:
- 11:34 AM Changeset in webkit [258345] by
-
- 2 edits in trunk/LayoutTests/platform
REGRESSION: [ Mac iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209006
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 11:33 AM Changeset in webkit [258344] by
-
- 13 edits1 add in trunk/Source/JavaScriptCore
[JSC] Use CacheableIdentifier in ByValInfo
https://bugs.webkit.org/show_bug.cgi?id=208978
Reviewed by Saam Barati.
CodeBlock::finalizeUnconditionally discards JITData. And this includes ByValInfo, which holds Identifier.
However, finalizeUnconditionally is only guaranteeing that the main thread is not working. It can be invoked
in the heap thread, and it is not not setting the AtomStringTable for this heap thread. If Identifier destroys
AtomStringImpl, which fails to unregister itself from the table.
In this patch,
- We explicitly set nullptr for the current AtomStringTable to catch the bug as soon as possible in GC end phase.
- We use CacheableIdentifier in ByValInfo to avoid destroying Identifier in CodeBlock::finalizeUnconditionally.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/ByValInfo.cpp: Added.
(JSC::ByValInfo::visitAggregate):
- bytecode/ByValInfo.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::stronglyVisitStrongReferences):
- bytecode/CodeBlock.h:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handlePutByVal):
- heap/Heap.cpp:
(JSC::Heap::runEndPhase):
- jit/JIT.h:
- jit/JITOperations.cpp:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitByValIdentifierCheck):
- runtime/CacheableIdentifier.h:
- 11:28 AM Changeset in webkit [258343] by
-
- 11 edits in trunk
WKWebView.hasOnlySecureContent should be correct after back/forward navigations
https://bugs.webkit.org/show_bug.cgi?id=207609
Source/WebCore:
<rdar://problem/59371252>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-12
Reviewed by Ryosuke Niwa.
The web process informs the UI process of insecure content loads when http resources are requested from https pages.
The web process also remembers that this happened.
Rather than ask the UI process during a navigation, which can sometimes get information about the wrong navigation,
just use the remembered values. We will need to do something for legacy TLS loads too, but I left that code as it is
for this patch. Another is coming soon.
Covered by API tests.
- history/CachedFrame.cpp:
(WebCore::CachedFrame::setUsedLegacyTLS):
(WebCore::CachedFrame::hasInsecureContent const):
(WebCore::CachedFrame::setHasInsecureContent): Deleted.
- history/CachedFrame.h:
(WebCore::CachedFrame::hasInsecureContent const): Deleted.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
Source/WebKit:
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-12
Reviewed by Ryosuke Niwa.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::usedLegacyTLS):
(WebKit::WebPageProxy::hasInsecureContent): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-12
Reviewed by Ryosuke Niwa.
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::TEST):
- 11:18 AM Changeset in webkit [258342] by
-
- 5 edits in trunk
REGRESSION (r257938): Some pointerevents/ios/touch-action-region tests started to fail
https://bugs.webkit.org/show_bug.cgi?id=209005
<rdar://problem/60337239>
Reviewed by Tim Horton, Wenson Hsieh.
Source/WebCore:
We need to continue to paint event regions if there are touch-action elements.
Tested by existing tests.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateEventRegion):
LayoutTests:
New baselines for tests with overflow:scroll, where the scrolled container gets
a rectangular event region.
- pointerevents/ios/touch-action-region-backing-sharing-expected.txt:
- pointerevents/ios/touch-action-region-overflow-expected.txt:
- 11:15 AM Changeset in webkit [258341] by
-
- 2 edits in trunk/LayoutTests
Fixed expectations for two tests from 'Pass Failure' to 'Pass ImageOnlyFailure'
https://bugs.webkit.org/show_bug.cgi?id=205525
https://bugs.webkit.org/show_bug.cgi?id=205524
Unreviewed test gardening
- platform/mac/TestExpectations:
- 11:05 AM Changeset in webkit [258340] by
-
- 2 edits in trunk/Source/WebKit
Drop unused WebProcess::UpdateActivePages IPC
https://bugs.webkit.org/show_bug.cgi?id=209002
<rdar://problem/59682658>
Reviewed by Geoffrey Garen.
- WebProcess/WebProcess.messages.in:
- 10:56 AM Changeset in webkit [258339] by
-
- 32 edits in trunk/Source
Source/WebCore:
FrameLoader should own its FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=208918
Reviewed by Geoffrey Garen.
Update Frame/FrameLoader constructors to get a UniqueRef<FrameLoaderClient>.
This makes the lifetime management much clearer and allows some WebKit1/WebKit2 clean-up.
Covered by existing tests.
- loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
- loader/EmptyFrameLoaderClient.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::~FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):
(WebCore::FrameLoader::didExplicitOpen):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::finishedParsing):
(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::setOpener):
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::willLoadMediaElementURL):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::setDocumentLoader):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::clientRedirectCancelledOrFinished):
(WebCore::FrameLoader::clientRedirected):
(WebCore::FrameLoader::closeOldDataSources):
(WebCore::FrameLoader::willChangeTitle):
(WebCore::FrameLoader::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::didReachLayoutMilestone):
(WebCore::FrameLoader::didReachVisuallyNonEmptyState):
(WebCore::FrameLoader::frameLoadCompleted):
(WebCore::FrameLoader::checkLoadComplete):
(WebCore::FrameLoader::userAgent const):
(WebCore::FrameLoader::dispatchOnloadEvents):
(WebCore::FrameLoader::detachViewsAndDocumentLoader):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::cancelledError const):
(WebCore::FrameLoader::blockedByContentBlockerError const):
(WebCore::FrameLoader::blockedError const):
(WebCore::FrameLoader::blockedByContentFilterError const):
(WebCore::FrameLoader::connectionProperties):
(WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
(WebCore::FrameLoader::dispatchGlobalObjectAvailableInAllWorlds):
(WebCore::FrameLoader::didChangeTitle):
(WebCore::FrameLoader::dispatchDidCommitLoad):
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
(WebCore::FrameLoader::completePageTransitionIfNeeded):
- loader/FrameLoader.h:
- loader/FrameLoaderClient.h:
- page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore::Frame::create):
- page/Frame.h:
- page/Page.cpp:
(WebCore::Page::Page):
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
- workers/service/context/SWContextManager.cpp:
- workers/service/context/SWContextManager.h:
Source/WebKit:
FrameLoader should own its FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=208918
Reviewed by Geoffrey Garen.
Pass a UniqueRef to the PageConfiguration.
Update WebFrameLoaderClient according updated FrameLoaderClient interface.
WebFrame no longer needs to ref/unref itself to keep the loader client alive.
Update WebFrame construction to not need a static_cast at initialization of the main frame.
The ownership is now that a WebCore::FrameLoader owns a FrameLoaderClient who owns a WebFrame.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
(WebKit::WebFrameLoaderClient::~WebFrameLoaderClient):
(WebKit::WebFrameLoaderClient::webPageProxyID const):
(WebKit::WebFrameLoaderClient::pageID const):
(WebKit::WebFrameLoaderClient::frameID const):
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest):
(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
(WebKit::WebFrameLoaderClient::shouldUseCredentialStorage):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveResponse):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoading):
(WebKit::WebFrameLoaderClient::dispatchDidDispatchOnloadEvents):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidCancelClientRedirect):
(WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::dispatchShow):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::applyToDocumentLoader):
(WebKit::WebFrameLoaderClient::allowsContentJavaScriptFromMostRecentNavigation const):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::dispatchUnableToImplementPolicy):
(WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
(WebKit::WebFrameLoaderClient::willReplaceMultipartContent):
(WebKit::WebFrameLoaderClient::didReplaceMultipartContent):
(WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
(WebKit::WebFrameLoaderClient::didRunInsecureContent):
(WebKit::WebFrameLoaderClient::didDetectXSS):
(WebKit::WebFrameLoaderClient::cancelledError const):
(WebKit::WebFrameLoaderClient::blockedError const):
(WebKit::WebFrameLoaderClient::blockedByContentBlockerError const):
(WebKit::WebFrameLoaderClient::cannotShowURLError const):
(WebKit::WebFrameLoaderClient::interruptedForPolicyChangeError const):
(WebKit::WebFrameLoaderClient::blockedByContentFilterError const):
(WebKit::WebFrameLoaderClient::cannotShowMIMETypeError const):
(WebKit::WebFrameLoaderClient::fileDoesNotExistError const):
(WebKit::WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebKit::WebFrameLoaderClient::shouldFallBack const):
(WebKit::WebFrameLoaderClient::restoreViewState):
(WebKit::WebFrameLoaderClient::didFinishLoad):
(WebKit::WebFrameLoaderClient::userAgent const):
(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::webGLPolicyForURL const):
(WebKit::WebFrameLoaderClient::resolveWebGLPolicyForURL const):
(WebKit::WebFrameLoaderClient::objectContentType):
(WebKit::WebFrameLoaderClient::overrideMediaType const):
(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
(WebKit::WebFrameLoaderClient::dispatchGlobalObjectAvailable):
(WebKit::WebFrameLoaderClient::willInjectUserScript):
(WebKit::WebFrameLoaderClient::willCacheResponse const):
(WebKit::WebFrameLoaderClient::createNetworkingContext):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::initWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
(WebKit::WebFrame::WebFrame):
(WebKit::WebFrame::frameLoaderClient const):
(WebKit::WebFrame::fromCoreFrame):
(WebKit::WebFrame::didReceivePolicyDecision):
- WebProcess/WebPage/WebFrame.h:
(WebKit::WebFrame::create):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_processDisplayName):
Source/WebKitLegacy/mac:
FrameLoader should own its FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=208918
Reviewed by Geoffrey Garen.
Update according new Frame/FrameLoader constructors and FrameLoaderClient interface.
- WebCoreSupport/WebFrameLoaderClient.h:
(WebFrameLoaderClient::setWebFrame):
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::~WebFrameLoaderClient):
(WebFrameLoaderClient::cancelledError const):
(WebFrameLoaderClient::blockedError const):
(WebFrameLoaderClient::blockedByContentBlockerError const):
(WebFrameLoaderClient::cannotShowURLError const):
(WebFrameLoaderClient::interruptedForPolicyChangeError const):
(WebFrameLoaderClient::blockedByContentFilterError const):
(WebFrameLoaderClient::cannotShowMIMETypeError const):
(WebFrameLoaderClient::fileDoesNotExistError const):
(WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebFrameLoaderClient::shouldFallBack const):
(WebFrameLoaderClient::userAgent const):
- WebView/WebFrame.mm:
(+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]):
(+[WebFrame _createMainFrameWithPage:frameName:frameView:]):
(+[WebFrame _createMainFrameWithSimpleHTMLDocumentWithPage:frameView:style:]):
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKitLegacy/win:
Make sure a preflight fails if response headers are invalid
https://bugs.webkit.org/show_bug.cgi?id=208924
Reviewed by Geoffrey Garen.
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::cancelledError const):
(WebFrameLoaderClient::blockedError const):
(WebFrameLoaderClient::blockedByContentBlockerError const):
(WebFrameLoaderClient::cannotShowURLError const):
(WebFrameLoaderClient::interruptedForPolicyChangeError const):
(WebFrameLoaderClient::cannotShowMIMETypeError const):
(WebFrameLoaderClient::fileDoesNotExistError const):
(WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebFrameLoaderClient::shouldFallBack const):
(WebFrameLoaderClient::userAgent const):
(WebFrameLoaderClient::frameLoaderDestroyed): Deleted.
(WebFrameLoaderClient::cancelledError): Deleted.
(WebFrameLoaderClient::blockedError): Deleted.
(WebFrameLoaderClient::blockedByContentBlockerError): Deleted.
(WebFrameLoaderClient::cannotShowURLError): Deleted.
(WebFrameLoaderClient::interruptedForPolicyChangeError): Deleted.
(WebFrameLoaderClient::cannotShowMIMETypeError): Deleted.
(WebFrameLoaderClient::fileDoesNotExistError): Deleted.
(WebFrameLoaderClient::pluginWillHandleLoadError): Deleted.
(WebFrameLoaderClient::shouldFallBack): Deleted.
(WebFrameLoaderClient::userAgent): Deleted.
- WebCoreSupport/WebFrameLoaderClient.h:
- WebFrame.cpp:
(WebFrame::createSubframeWithOwnerElement):
- 10:40 AM Changeset in webkit [258338] by
-
- 4 edits in trunk/Source/WebKit
Drop unused LogGlobalDiagnosticMessageWithValue IPC message
https://bugs.webkit.org/show_bug.cgi?id=208974
<rdar://problem/59682189>
Reviewed by Chris Dumez.
I added these messages for ITP, but we later switched to tracking network sessions
individually and no longer need this "global" message.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::logGlobalDiagnosticMessageWithValue): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- 10:10 AM Changeset in webkit [258337] by
-
- 11 edits in trunk/Source/WebKit
Networking process should kill the WebContent process if an invalid IPC message is received from it
https://bugs.webkit.org/show_bug.cgi?id=208999
Reviewed by Geoffrey Garen.
If the NetworkProcess receives a bad IPC from a WebProcess, it now sends an IPC to the UIProcess
asking for said WebProcess to be terminated.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveInvalidMessage):
- Platform/IPC/HandleMessage.h:
(IPC::handleMessage):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
I noticed when testing this patch that the decoder was sometimes not marked as invalid even though
decoding failed (verified this by not decoding enough data or decoding too much data). As a result,
the IPC message would get ignored but didReceiveInvalidMessage() would not get called. To address
this, I know mark the decoder as invalid anytime decoding fails, instead of asserting that it is
already invalid.
- Shared/ProcessTerminationReason.h:
- UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::wkProcessTerminationReason):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::terminateWebProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
- 10:09 AM Changeset in webkit [258336] by
-
- 6 edits2 adds in trunk
REGRESSION (r254054): finance.google.com watch list renders initially then disappears for 5+ seconds before reappearing
https://bugs.webkit.org/show_bug.cgi?id=208972
<rdar://problem/59727171>
Reviewed by Zalan Bujtas.
Source/WebCore:
After r254054 we could get a style change in which opacity was unchanged, but
hasAutoUsedZIndex() in the style changed (because Adjuster::adjustAnimatedStyle() can set it).
In this case we failed to trigger layout, which means that we failed to recompute visual
overflow when a layer changed from being self-painting to non-self-painting (which affects
visual overflow computation and has hasAutoUsedZIndex() as input). We'd thus fail to paint some
renderers because their visual overflow didn't intersect the paint dirty rect.
Fix by having RenderStyle::changeRequiresLayout() return true if hasAutoUsedZIndex() differs
between the styles. This has minimal performance impact; rareNonInheritedDataChangeRequiresLayout()
already returns true if opacity, filters and other stacking-context-affecting properties change.
Test: fast/overflow/animation-recompute-overflow.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::addOverflowFromChild):
(WebCore::RenderBox::addLayoutOverflow):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout const):
LayoutTests:
Ref test, and some rebaselines where repaint order changed.
- css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
- fast/overflow/animation-recompute-overflow-expected.html: Added.
- fast/overflow/animation-recompute-overflow.html: Added.
- platform/ios/css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
- 9:32 AM Changeset in webkit [258335] by
-
- 4 edits in trunk/Source/WebKit
Remove unused GetWebCoreStatistics message
https://bugs.webkit.org/show_bug.cgi?id=209001
<rdar://problem/59682747>
Reviewed by Chris Dumez.
- WebProcess/WebProcess.cpp:
(WebKit::fromCountedSetToHashMap): Deleted.
(WebKit::getWebCoreMemoryCacheStatistics): Deleted.
(WebKit::WebProcess::getWebCoreStatistics): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 9:28 AM Changeset in webkit [258334] by
-
- 6 edits in trunk/Source/WebKit
WebPasteboardProxy::SetPasteboardBufferForType should validate its
sizeparameter
<https://webkit.org/b/208902>
<rdar://problem/60181117>
Reviewed by Chris Dumez.
- Platform/IPC/Connection.h:
(MESSAGE_CHECK_BASE):
- Define in terms of MESSAGE_CHECK_COMPLETION_BASE() with a no-op completion handler.
(MESSAGE_CHECK_COMPLETION_BASE):
- Rename from MESSAGE_CHECK_BASE() and add completion handler parameter.
- Platform/SharedMemory.h:
(WebKit::SharedMemory::Handle::size const): Add.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(MESSAGE_CHECK):
- Define macro to use in WebPasteboardProxy::setPasteboardBufferForType().
- Undefine macro at end of source file due to unified sources.
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
- Add IPC::Connection& parameter after change to WebPasteboardProxy.messages.in. Use with MESSAGE_CHECK().
- Validate
sizeparameter using MESSAGE_CHECK(). Because SharedMemory::Handle::size() returns a size_t value, we do not need to checksize <= std::numeric_limits<size_t>::max(). - Add static_cast<size_t>() to size parameter to denote type change.
- UIProcess/WebPasteboardProxy.h:
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
- Add IPC::Connection& parameter after change to WebPasteboardProxy.messages.in.
- UIProcess/WebPasteboardProxy.messages.in:
(SetPasteboardBufferForType):
- Add 'WantsConnection' attribute to add IPC::Connection& parameter to WebPasteboardProxy::setPasteboardBufferForType().
- 9:19 AM Changeset in webkit [258333] by
-
- 4 edits in trunk
FocusController::setFocusedElement() should tell client of refocused element
https://bugs.webkit.org/show_bug.cgi?id=208880
Reviewed by Wenson Hsieh.
Source/WebCore:
If the specified new focus element is non-nullptr and is already focused then tell the client
that the element was re-focused so that it may update its input state, if needed. On iOS, this
lets the UI process evaluate again whether to start an input session (i.e. bring up the keyboard),
which may have been disallowed when the element was originally focused (say, it was programmatically
focused and there was no hardware keyboard attached).
- page/FocusController.cpp:
(WebCore::FocusController::setFocusedElement):
Tools:
Adds a test to ensure that calling -selectPositionAtPoint on an already focused element tries
to start an input session. Currently, it does not even try.
- TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:
(TEST):
- 8:47 AM Changeset in webkit [258332] by
-
- 1 copy in releases/WPE WebKit/webkit-2.28.0
WPE WebKit 2.28.0
- 8:47 AM Changeset in webkit [258331] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.28.0 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.28.0.
- 8:38 AM Changeset in webkit [258330] by
-
- 13 edits4 adds in trunk
Implement wildcard behavior for Cross-Origin-Expose-Headers
https://bugs.webkit.org/show_bug.cgi?id=208800
Patch by Rob Buis <rbuis@igalia.com> on 2020-03-12
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Update improved test results and add a test for testing
xhr and wildcard behavior for Cross-Origin-Expose-Headers behavior.
- web-platform-tests/fetch/api/cors/cors-expose-star.sub.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.worker-expected.txt:
- web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
- web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
- web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-cors-exposed-header-names.https-expected.txt:
- web-platform-tests/xhr/cors-expose-star.sub.any-expected.txt: Added.
- web-platform-tests/xhr/cors-expose-star.sub.any.html: Added.
- web-platform-tests/xhr/cors-expose-star.sub.any.js: Added.
(sharedHeaders.string_appeared_here.async_test):
(string_appeared_here.async_test):
- web-platform-tests/xhr/resources/top.txt: Added.
Source/WebCore:
Implement wildcard behavior for Cross-Origin-Expose-Headers [1] while also
checking for credentials mode.
Test: imported/w3c/web-platform-tests/xhr/cors-expose-star.sub.any.html
[1] https://fetch.spec.whatwg.org/#ref-for-concept-response-cors-exposed-header-name-list%E2%91%A2
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::create):
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
(WebCore::FetchResponse::BodyLoader::start):
- Modules/fetch/FetchResponse.h:
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didFinishLoading):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
- platform/network/ResourceResponseBase.h:
- 8:36 AM Changeset in webkit [258329] by
-
- 2 edits in trunk/Source/WebKit
Provide orientation to GPUProcess when it will start to capture
https://bugs.webkit.org/show_bug.cgi?id=208911
Reviewed by Eric Carlson.
Provide orientation to GPUProcess whenever starting to capture.
This fixes the case of spinning the GPUProcess/starting capture in landscape mode.
Do not send orientation to GPUProcess if it is not yet started as an optimization.
Manually tested.
- UIProcess/WebPageProxy.cpp:
- 8:25 AM Changeset in webkit [258328] by
-
- 2 edits in trunk/Tools
[GTK] Use #!/usr/bin/python3 shebang to run generate-gtkdoc
https://bugs.webkit.org/show_bug.cgi?id=208970
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-12
Reviewed by Daniel Bates.
Fedora and Ubuntu are both patching generate-gtkdoc to use #!/usr/bin/python3 rather than
#!/usr/bin/env python.
#!/usr/bin/env and /usr/bin/python are both banned in Fedora packages. I guess Ubuntu
probably has similar rules.
Note this is the only script that attempts to use /usr/bin/python in tarball builds.
Everything else that does so is probably only used by webkit-build.
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_multiple_python_runtimes
- gtkdoc/generate-gtkdoc:
- 8:17 AM Changeset in webkit [258327] by
-
- 7 edits1 delete in trunk/Source/WebKit
Remove TextTrackPrivateRemote.messages.in
https://bugs.webkit.org/show_bug.cgi?id=208935
Reviewed by Don Olmstead.
No new tests, no functional change.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/TextTrackPrivateRemote.messages.in: Removed.
- 8:14 AM Changeset in webkit [258326] by
-
- 3 edits in trunk/Source/WebCore
Remove no longer used code in LibWebRTCMediaEndpoint to handle remote streams
https://bugs.webkit.org/show_bug.cgi?id=208919
Reviewed by Eric Carlson.
These stream APIs are legacy now and not useful anymore.
Stop implementing the corresponding callbacks and remove related code.
Coverd by existing tests.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream): Deleted.
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack): Deleted.
(WebCore::LibWebRTCMediaEndpoint::OnAddStream): Deleted.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- 7:09 AM Changeset in webkit [258325] by
-
- 3 edits in trunk/Source/WebCore
[Curl] sort out MS vs Seconds confusion in Cookies
https://bugs.webkit.org/show_bug.cgi?id=208964
Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-03-12
Reviewed by Don Olmstead.
Making sure curl parser is storing expires using millis in the code. Using consistent time
functions around the changed code.
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::getAllCookies):
(WebCore::CookieJarDB::setCookie):
- platform/network/curl/CookieUtil.cpp:
(WebCore::CookieUtil::parseExpiresMS):
(WebCore::CookieUtil::parseCookieAttributes):
- 7:05 AM Changeset in webkit [258324] by
-
- 18 edits in trunk/Source
Move AudioSession interruption listener code to AudioSession
https://bugs.webkit.org/show_bug.cgi?id=208714
Reviewed by Jer Noble.
Source/WebCore:
Move AudioSession interruption detection code from MediaSessionManagerIOS helper to AudioSessionIOS.
Add interruption observer capabilities to AudioSession and make MediaSessionManagerIOS an observer of it.
Manually tested.
- platform/audio/AudioSession.cpp:
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
- platform/audio/AudioSession.h:
- platform/audio/ios/AudioSessionIOS.mm:
(-[WebInterruptionObserverHelper initWithCallback:]):
(-[WebInterruptionObserverHelper dealloc]):
(-[WebInterruptionObserverHelper clearCallback]):
(-[WebInterruptionObserverHelper interruption:]):
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSessionPrivate::~AudioSessionPrivate):
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
- platform/audio/ios/MediaSessionHelperIOS.h:
- platform/audio/ios/MediaSessionHelperIOS.mm:
(-[WebMediaSessionHelper initWithCallback:]):
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):
Source/WebKit:
Make RemoteAudioSessionProxyManager an observer for AudioSession interruptions.
When being interrupted, notify all WebProcesses and trigger begin/end interruption mechanisms.
We only send interruption to sessions that are active in RemoteAudioSessionProxyManager.
Minor refactorting to move manager proxies from a map to a weak hash set.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::audioSessionProxy):
- GPUProcess/media/RemoteAudioSessionProxy.cpp:
(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setPreferredBufferSize):
(WebKit::RemoteAudioSessionProxy::tryToSetActive):
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::~RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess):
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):
(WebKit::RemoteAudioSessionProxyManager::beginAudioSessionInterruption):
(WebKit::RemoteAudioSessionProxyManager::endAudioSessionInterruption):
- GPUProcess/media/RemoteAudioSessionProxyManager.h:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:
- 6:55 AM Changeset in webkit [258323] by
-
- 2 edits in trunk/Source/WebKit
[GPUP] Use standard int type in RemoteMediaPlayerState
https://bugs.webkit.org/show_bug.cgi?id=208962
Reviewed by Eric Carlson.
An unsigned long long is at least 64-bits so use uint64_t instead. This issue
was found when compiling out the GPU Process. No specialization of unsigned long
long was found which resulted in errors. This appears to be a non-Cocoa problem.
- WebProcess/GPU/media/RemoteMediaPlayerState.h:
(WebKit::RemoteMediaPlayerState::decode):
- 6:41 AM Changeset in webkit [258322] by
-
- 14 edits in trunk/Source/WebKit
GPUProcess should ensure UIProcess granted capture access to a WebProcess making a capture request
https://bugs.webkit.org/show_bug.cgi?id=208910
Reviewed by Eric Carlson.
When UIProcess receives a getUserMedia request, it will send to GPUProcess a notification of what is allowed.
GPUProcess stores for each connection to web process whether microphone, camera and/or display are allowed.
We do not disable access for a given process for now.
A future refactoring should probably streamline the implementation so that, in case capture happens in GPUProcess,
GPUProcess receives the getUserMedia request, asks permission to UIProcess and, upon granted permission, creates directly the sources.
Covered by existing tests.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::updateCaptureAccess):
- GPUProcess/GPUConnectionToWebProcess.h:
(WebKit::GPUConnectionToWebProcess::allowsAudioCapture const):
(WebKit::GPUConnectionToWebProcess::allowsVideoCapture const):
(WebKit::GPUConnectionToWebProcess::allowsDisplayCapture const):
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::createGPUConnectionToWebProcess):
(WebKit::GPUProcess::updateCaptureAccess):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updateCaptureAccess):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
- 6:30 AM Changeset in webkit [258321] by
-
- 12 edits14 adds in trunk
Accurate style invalidation for user action pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=208859
<rdar://problem/55196888>
Reviewed by Zalan Bujtas.
Source/WebCore:
Currently :hover, :focus, :focus-within and :active lack fine grained invalidation using
rule sets like we do with class and attribute selectors.
This can be added easily following the same pattern.
Tests: fast/selectors/style-invalidation-hover-change-descendants.html
fast/selectors/style-invalidation-hover-change-siblings.html
fast/selectors/style-invalidation-focus-change-descendants.html
fast/selectors/style-invalidation-focus-change-siblings.html
fast/selectors/style-invalidation-focus-within-change-descendants.html
fast/selectors/style-invalidation-focus-within-change-siblings.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Element.cpp:
(WebCore::Element::setActive):
(WebCore::Element::setFocus):
(WebCore::Element::setHasFocusWithin):
(WebCore::Element::setHovered):
Use PseudoClassChangeInvalidation.
- dom/Element.h:
(WebCore::Element::setHasFocusWithin): Deleted.
- page/FrameViewLayoutContext.cpp:
(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker):
- style/PseudoClassChangeInvalidation.cpp: Added.
(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
Compute invalidation rule set for a pseudo class change.
(WebCore::Style::PseudoClassChangeInvalidation::invalidateStyleWithRuleSets):
- style/PseudoClassChangeInvalidation.h: Added.
(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::~PseudoClassChangeInvalidation):
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::Style::RuleFeatureSet::collectFeatures):
Collect pseudo class features, similar to classes/attributes.
(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):
- style/RuleFeature.h:
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::collectFeatures const):
(WebCore::Style::ensureInvalidationRuleSets):
Make more generic to allow enum key.
(WebCore::Style::ScopeRuleSets::pseudoClassInvalidationRuleSets const):
Create pseudo class invalidation ruleset.
- style/StyleScopeRuleSets.h:
LayoutTests:
- fast/selectors/style-invalidation-focus-change-descendants-expected.txt: Added.
- fast/selectors/style-invalidation-focus-change-descendants.html: Added.
- fast/selectors/style-invalidation-focus-change-siblings-expected.txt: Added.
- fast/selectors/style-invalidation-focus-change-siblings.html: Added.
- fast/selectors/style-invalidation-focus-within-change-descendants-expected.txt: Added.
- fast/selectors/style-invalidation-focus-within-change-descendants.html: Added.
- fast/selectors/style-invalidation-focus-within-change-siblings-expected.txt: Added.
- fast/selectors/style-invalidation-focus-within-change-siblings.html: Added.
- fast/selectors/style-invalidation-hover-change-descendants-expected.txt: Added.
- fast/selectors/style-invalidation-hover-change-descendants.html: Added.
- fast/selectors/style-invalidation-hover-change-siblings-expected.txt: Added.
- fast/selectors/style-invalidation-hover-change-siblings.html: Added.
- 3:39 AM Changeset in webkit [258320] by
-
- 4 edits in trunk/Source/WebKit
Drop unused EnableEnumeratingAllNetworkInterfaces / DisableEnumeratingAllNetworkInterfaces IPC messages
https://bugs.webkit.org/show_bug.cgi?id=208973
<rdar://problem/59683940>
Reviewed by Youenn Fablet.
Remove two unused IPC messages.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::disableEnumeratingAllNetworkInterfaces): Deleted.
(WebKit::WebPage::enableEnumeratingAllNetworkInterfaces): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 3:37 AM Changeset in webkit [258319] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, expected to fail but passed
https://bugs.webkit.org/show_bug.cgi?id=208987
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 2:50 AM Changeset in webkit [258318] by
-
- 3 edits1 add in trunk/LayoutTests
[WPE] Gardening, update TestExpectations and baselines
https://bugs.webkit.org/show_bug.cgi?id=208986
Unreviewed gardening.
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-datalist-crash-expected.txt: Added.
- 1:10 AM Changeset in webkit [258317] by
-
- 8 edits in trunk
[GPU Process] GraphicsContextStateChange must accumulate fill and stroke fields as single properties
https://bugs.webkit.org/show_bug.cgi?id=208971
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-12
Reviewed by Simon Fraser.
Source/WebCore:
Setting the fill or the stroke should set one field: color, gradient or
pattern. When detecting a change any of them, accumulate() should copy
all of the fields from the source state to the destination state.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextStateChange::accumulate):
- platform/graphics/GraphicsContext.h:
LayoutTests:
Adjust the change-flags values in the displaylists tests since the first
bit was not used.
- displaylists/canvas-display-list-expected.txt:
- displaylists/extent-includes-shadow-expected.txt:
- displaylists/extent-includes-transforms-expected.txt:
- displaylists/layer-dispay-list-expected.txt:
- 12:48 AM Changeset in webkit [258316] by
-
- 18 edits2 copies1 add in trunk/Source/WebCore
AnimationTimeline should not have multiple HashMaps with raw Element* keys
https://bugs.webkit.org/show_bug.cgi?id=208079
<rdar://problem/59687906>
Reviewed by Ryosuke Niwa.
We introduce a new ElementAnimationRareData class that holds the KeyframeEffectStack previously owned by ElementRareData as well as a few maps and lists
owned by AnimationTimeline which would use raw Element pointers as keys. Specifically, this is what changed:
- AnimationTimeline::m_elementToRunningCSSTransitionByCSSPropertyID → ElementAnimationRareData::runningTransitionByProperty()
- AnimationTimeline::m_elementToCompletedCSSTransitionByCSSPropertyID → ElementAnimationRareData::completedTransitionByProperty()
- AnimationTimeline::m_elementToCSSAnimationsCreatedByMarkupMap → ElementAnimationRareData::animationsCreatedByMarkup()
- AnimationTimeline::m_elementToCSSTransitionsMap → ElementAnimationRareData::transitions()
- AnimationTimeline::m_elementToCSSAnimationsMap → ElementAnimationRareData::cssAnimations()
- AnimationTimeline::m_elementToAnimationsMap → ElementAnimationRareData::webAnimations()
For convenience, these new members are exposed via Element directly.
No change in behavior, so no new tests.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/AnimationPlaybackEventInit.h:
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::animationWasAddedToElement):
(WebCore::removeCSSTransitionFromMap):
(WebCore::AnimationTimeline::animationWasRemovedFromElement):
(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement):
(WebCore::AnimationTimeline::animationsForElement const):
(WebCore::AnimationTimeline::removeCSSAnimationCreatedByMarkup):
(WebCore::AnimationTimeline::willDestroyRendererForElement):
(WebCore::AnimationTimeline::elementWasRemoved):
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForElement):
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::propertyInStyleMatchesValueForTransitionInMap):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):
(WebCore::removeAnimationFromMapForElement): Deleted.
(WebCore::AnimationTimeline::ensureRunningTransitionsByProperty): Deleted.
- animation/AnimationTimeline.h:
- animation/ComputedEffectTiming.h:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::transitionDidComplete):
- animation/ElementAnimationRareData.cpp: Copied from Source/WebCore/animation/ComputedEffectTiming.h.
(WebCore::ElementAnimationRareData::ElementAnimationRareData):
(WebCore::ElementAnimationRareData::~ElementAnimationRareData):
(WebCore::ElementAnimationRareData::ensureKeyframeEffectStack):
- animation/ElementAnimationRareData.h: Added.
(WebCore::ElementAnimationRareData::keyframeEffectStack):
(WebCore::ElementAnimationRareData::webAnimations):
(WebCore::ElementAnimationRareData::cssAnimations):
(WebCore::ElementAnimationRareData::transitions):
(WebCore::ElementAnimationRareData::animationsCreatedByMarkup):
(WebCore::ElementAnimationRareData::setAnimationsCreatedByMarkup):
(WebCore::ElementAnimationRareData::completedTransitionByProperty):
(WebCore::ElementAnimationRareData::runningTransitionsByProperty):
- animation/KeyframeEffect.h:
- animation/OptionalEffectTiming.h:
- animation/WebAnimation.h:
- animation/WebAnimationTypes.h: Copied from Source/WebCore/animation/WebAnimationUtilities.h.
(WebCore::WebAnimationsMarkableDoubleTraits::isEmptyValue):
(WebCore::WebAnimationsMarkableDoubleTraits::emptyValue):
- animation/WebAnimationUtilities.h:
(WebCore::WebAnimationsMarkableDoubleTraits::isEmptyValue): Deleted.
(WebCore::WebAnimationsMarkableDoubleTraits::emptyValue): Deleted.
- dom/Element.cpp:
(WebCore::Element::animationRareData const):
(WebCore::Element::ensureAnimationRareData):
(WebCore::Element::keyframeEffectStack const):
(WebCore::Element::ensureKeyframeEffectStack):
(WebCore::Element::hasKeyframeEffects const):
(WebCore::Element::webAnimations):
(WebCore::Element::cssAnimations):
(WebCore::Element::transitions):
(WebCore::Element::animationsCreatedByMarkup):
(WebCore::Element::setAnimationsCreatedByMarkup):
(WebCore::Element::completedTransitionByProperty):
(WebCore::Element::runningTransitionsByProperty):
- dom/Element.h:
- dom/ElementRareData.h:
(WebCore::ElementRareData::elementAnimationRareData):
(WebCore::ElementRareData::useTypes const):
(WebCore::ElementRareData::ensureAnimationRareData):
(WebCore::ElementRareData::keyframeEffectStack): Deleted.
(WebCore::ElementRareData::setKeyframeEffectStack): Deleted.
- dom/Node.cpp:
(WebCore::stringForRareDataUseType):
- dom/NodeRareData.h:
- 12:08 AM Changeset in webkit [258315] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208977
Unreviewed gardening.
- platform/gtk/TestExpectations:
Mar 11, 2020:
- 9:57 PM Changeset in webkit [258314] by
-
- 9 edits in trunk/Source
Adopt AVSampleBufferVideoOutput
https://bugs.webkit.org/show_bug.cgi?id=208951
Reviewed by Eric Carlson.
Source/WebCore:
Adopt AVSampleBufferVideoOutput, used for extracting decoded samples from an AVSampleBufferDisplayLayer.
Rather than use a separate decompression session when we need to, e.g., paint samples into WebGL, we will
add a AVSBVO to the AVSBDL and use it to extract CVPixelBuffers when asked.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isVideoOutputAvailable const):
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 9:25 PM Changeset in webkit [258313] by
-
- 5 edits in trunk/Source/WebCore
Removed unused textElements member from AccessibilityText structure.
https://bugs.webkit.org/show_bug.cgi?id=208967
Reviewed by Chris Fleizach.
The textElements member of AccessibilityText is not used by any client
and its computation is causing crashes in IsolatedTree mode. So this
change removes it.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::accessibilityText const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- 9:24 PM Changeset in webkit [258312] by
-
- 2 edits in trunk/Source/WebKit
[GPU Process] encodeNativeImage() should pass imageSize to GraphicsContext::drawNativeImage()
https://bugs.webkit.org/show_bug.cgi?id=208936
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-11
Reviewed by Myles C. Maxfield.
Passing an empty FloatSize makes drawNativeImage() draws nothing to
the ShareableBitmap
- Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeNativeImage):
- 9:19 PM Changeset in webkit [258311] by
-
- 4 edits in trunk/Source/WebKit
RemoteImageBuffer::getImageData() has to clear its DisplayList after calling flushDrawingContext()
https://bugs.webkit.org/show_bug.cgi?id=208931
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-11
Reviewed by Myles C. Maxfield.
Instead of letting every caller to flushDrawingContextAndWaitCommit() or
flushDrawingContext() be responsible of clearing the DisplayList, we can
make these functions take this responsibility.
- WebProcess/GPU/graphics/RemoteImageBuffer.h:
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContextAndWaitCommit):
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
- 8:19 PM Changeset in webkit [258310] by
-
- 9 edits in trunk/Source
Non-unified build fixes early March 2020 edition Take 2
https://bugs.webkit.org/show_bug.cgi?id=208968
Unreviewed build fix.
Source/WebCore:
- editing/TextIterator.cpp:
- editing/TextIterator.h:
- editing/TextManipulationController.cpp:
- editing/VisibleSelection.cpp:
- editing/VisibleUnits.cpp:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
- 7:55 PM Changeset in webkit [258309] by
-
- 12 edits5 adds in trunk/Source/WebKit
[GPUP] Add entry points for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=208965
Reviewed by Michael Catanzaro.
Add a CMake target for the GPU Process that is optionally defined based on
whether the process is enabled.
Add an entry point for the GPU Process for unix and windows ports. Use this
as the source for the GPU Process by specifying it in the Platform CMake file.
Add in hooks for both Windows and GLib to launch the GPU Process if it is
enabled in the port.
- CMakeLists.txt:
- GPUProcess/EntryPoint/unix/GPUProcessMain.cpp: Added.
(main):
- GPUProcess/EntryPoint/win/GPUProcessMain.cpp: Added.
(main):
- GPUProcess/GPUProcessMain.h: Added.
- PlatformFTW.cmake:
- PlatformGTK.cmake:
- PlatformMac.cmake:
- PlatformPlayStation.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
- Shared/ProcessExecutablePath.h:
- Shared/glib/ProcessExecutablePathGLib.cpp:
(WebKit::executablePathOfGPUProcess):
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
- UIProcess/Launcher/win/ProcessLauncherWin.cpp:
(WebKit::processName):
- 7:48 PM Changeset in webkit [258308] by
-
- 4 edits in trunk/Source/WebCore
Large single select elements are incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=208966
Reviewed by Tim Horton.
Adjusts several size and margin values for menu lists (i.e. the default appearance of non-multiple select
elements) to reflect recent changes in macOS. Additionally, adds a workaround for <rdar://problem/60350699>,
which causes text inside many form controls (including select buttons) to be incorrectly sized.
- platform/mac/ThemeMac.h:
- platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::systemFontSizeFor):
(WebCore::ThemeMac::controlFont const):
- rendering/RenderThemeMac.mm:
Replace calls to +[NSFont systemFontSizeForControlSize:] with
ThemeMac::systemFontSizeFor(NSControlSize size)
in order to work around <rdar://problem/60350699>.
(WebCore::RenderThemeMac::updateCachedSystemFontDescription const):
(WebCore::RenderThemeMac::setFontFromControlSize const):
(WebCore::RenderThemeMac::controlSizeForSystemFont const):
(WebCore::RenderThemeMac::popupButtonMargins const):
(WebCore::menuListButtonSizes):
- 6:50 PM Changeset in webkit [258307] by
-
- 1 copy in tags/Safari-610.1.7
Tag Safari-610.1.7.
- 6:43 PM Changeset in webkit [258306] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258304. rdar://problem/60351239
[macOS] Register with accessibility when the WebContent process starts
https://bugs.webkit.org/show_bug.cgi?id=208960
Reviewed by Brent Fulgham.
When we reenabled CF prefs direct mode in <https://bugs.webkit.org/show_bug.cgi?id=208690>, we started to register
with accessibility when we received a message to do so from the UI process. This would typically happen when the user
enabled accessibility. On macOS, this notification does not work the same way as on iOS, and it is assumed that
accessibility should always be enabled. Therefore we should go back to registering with accessibility on startup of
the WebContent process on macOS.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeProcess): (WebKit::WebProcess::unblockAccessibilityServer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:35 PM Changeset in webkit [258305] by
-
- 2 edits in trunk/Source/WebKit
[GPUP] Add special handling of MediaTime within message generator
https://bugs.webkit.org/show_bug.cgi?id=208958
Reviewed by Eric Carlson.
When compiling the GPU Process sources without unified sources there were
numerous compilation errors around MediaTime. Only GPU Process .messages.in
files reference this type so there was no special handling within messages.py.
Adding explicit references to MediaTime so the proper header is used and all
sources compile.
- Scripts/webkit/messages.py:
- 6:22 PM Changeset in webkit [258304] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Register with accessibility when the WebContent process starts
https://bugs.webkit.org/show_bug.cgi?id=208960
Reviewed by Brent Fulgham.
When we reenabled CF prefs direct mode in <https://bugs.webkit.org/show_bug.cgi?id=208690>, we started to register
with accessibility when we received a message to do so from the UI process. This would typically happen when the user
enabled accessibility. On macOS, this notification does not work the same way as on iOS, and it is assumed that
accessibility should always be enabled. Therefore we should go back to registering with accessibility on startup of
the WebContent process on macOS.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::unblockAccessibilityServer):
- 6:22 PM Changeset in webkit [258303] by
-
- 4 edits2 adds in trunk
AX: accessibilityReplaceRange:withText: doesn't post an AXValueChanged notification like when typing with kb
https://bugs.webkit.org/show_bug.cgi?id=208332
<rdar://problem/58489685>
Patch by Canhai Chen <canhai_chen@apple.com> on 2020-03-11
Reviewed by Chris Fleizach.
Source/WebCore:
When accessibilityReplaceRange:withText: is called to insert or replace text, there should be a
AXValueChanged notification posted with the correct user info to notify the AX client that the text value
has been changed with detailed info about the change.
Post a notification in Editor::replaceSelectionWithFragment for EditAction::Insert edit type
with replaced text and selection.
Add a new test for text replacement value change notification in editable div, text input, and textarea,
including direct text insertion and replace-and-insert.
Test: accessibility/mac/replace-text-with-range-value-change-notification.html
- editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment):
- editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::documentFragmentPlainText const):
LayoutTests:
Test text replacement value change notification in editable div, text input, and textarea,
including direct text insertion and replace-and-insert.
- accessibility/mac/replace-text-with-range-value-change-notification-expected.txt: Added.
- accessibility/mac/replace-text-with-range-value-change-notification.html: Added.
- 6:10 PM Changeset in webkit [258302] by
-
- 9 edits in trunk/Source/WebKit
[GPUP] RemoteAudioDestination classes should require ENABLE(WEB_AUDIO)
https://bugs.webkit.org/show_bug.cgi?id=208956
Reviewed by Dean Jackson.
RemoteAudioDestinationProxy uses AudioBus directly. For ports that don't
ENABLE(WEB_AUDIO) there is no implementation and linker errors will occur after
building with ENABLE(GPU_PROCESS).
Add guards for ENABLE(WEB_AUDIO) around relevant implementations.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
- GPUProcess/media/RemoteAudioDestinationManager.h:
- GPUProcess/media/RemoteAudioDestinationManager.messages.in:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in:
- 5:33 PM Changeset in webkit [258301] by
-
- 3 edits in branches/safari-610.1.7-branch/Source/WebCore
Cherry-pick r258297. rdar://problem/60347323
AX: Isolated tree: enabling secondary thread for the wrong clients
https://bugs.webkit.org/show_bug.cgi?id=208950
Reviewed by Chris Fleizach.
Removed incorrect call to _AXUIElementUseSecondaryAXThread and wrap it
in initializeSecondaryAXThread with the appropriate checks.
- accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::isolatedTreeFocusedObject): (WebCore::AXObjectCache::initializeSecondaryAXThread): (WebCore::AXObjectCache::isolatedTreeRootObject):
- accessibility/AXObjectCache.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:33 PM Changeset in webkit [258300] by
-
- 6 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258296. rdar://problem/60348995
Add a parameter to allow ignoring app-bound domain categorization
https://bugs.webkit.org/show_bug.cgi?id=208949
<rdar://problem/60239187>
Reviewed by Brent Fulgham.
Introduce a new parameter to ignore app-bound domain categorization
for specific WebViews.
- UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::ignoresAppBoundDomains const): (API::PageConfiguration::setIgnoresAppBoundDomains):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _ignoresAppBoundDomains]): (-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258296 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:30 PM Changeset in webkit [258299] by
-
- 2 edits in trunk/LayoutTests
[WebGL] Additional WebGL bot gardening
https://bugs.webkit.org/show_bug.cgi?id=208961
Unreviewed test gardening.
- webgl/TestExpectations:
- 4:58 PM Changeset in webkit [258298] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r258294.
https://bugs.webkit.org/show_bug.cgi?id=208957
Introduced API failure (Requested by perarne on #webkit).
Reverted changeset:
"[macOS] _AXSApplicationAccessibilityEnabled should not be
called"
https://bugs.webkit.org/show_bug.cgi?id=208953
https://trac.webkit.org/changeset/258294
Patch by Commit Queue <commit-queue@webkit.org> on 2020-03-11
- 4:56 PM Changeset in webkit [258297] by
-
- 3 edits in trunk/Source/WebCore
AX: Isolated tree: enabling secondary thread for the wrong clients
https://bugs.webkit.org/show_bug.cgi?id=208950
Reviewed by Chris Fleizach.
Removed incorrect call to _AXUIElementUseSecondaryAXThread and wrap it
in initializeSecondaryAXThread with the appropriate checks.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isolatedTreeFocusedObject):
(WebCore::AXObjectCache::initializeSecondaryAXThread):
(WebCore::AXObjectCache::isolatedTreeRootObject):
- accessibility/AXObjectCache.h:
- 4:53 PM Changeset in webkit [258296] by
-
- 6 edits in trunk/Source/WebKit
Add a parameter to allow ignoring app-bound domain categorization
https://bugs.webkit.org/show_bug.cgi?id=208949
<rdar://problem/60239187>
Reviewed by Brent Fulgham.
Introduce a new parameter to ignore app-bound domain categorization
for specific WebViews.
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::ignoresAppBoundDomains const):
(API::PageConfiguration::setIgnoresAppBoundDomains):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _ignoresAppBoundDomains]):
(-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
- 4:49 PM Changeset in webkit [258295] by
-
- 26 edits in trunk/Source
[EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
https://bugs.webkit.org/show_bug.cgi?id=208923
Reviewed by Eric Carlson.
Source/WebCore:
When AVStreamDataParser encounters an initialization segment indicating encrypted content, it
will issue a -streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID: message
to its delegate. If the parser is already associated with an AVContentKeySession, it will instead
allow the session to handle the initialization segment and the delagete method will not be called.
When the latter situation occurs, we can detect that the -didProvideRequest callback did not
occur due to the client calling MediaKeySession.generateRequest() and therefore must have been
due to parsing an encrypted segment. In response, store the request in a list of "unexpected"
requests to be checked the next time a MediaKeySession tries to generateRequest(). Then, we will
pass the initalizationData and type to HTMLMediaElement through a new client interface, where it
will use that initializationData to issue an "encrypted" event. If the client passes that same
initializationData back into MediaKeySession, the "unexpected" request can be found, and re-used.
Drive-by fixes: Added a ton of debug logging messages to the CDMPrivate classes.
- Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::CDM):
- Modules/encryptedmedia/CDM.h:
- Modules/encryptedmedia/CDMClient.h:
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):
- Modules/encryptedmedia/MediaKeySession.h:
- Modules/encryptedmedia/MediaKeySystemAccess.cpp:
(WebCore::MediaKeySystemAccess::createMediaKeys):
- Modules/encryptedmedia/MediaKeySystemAccess.h:
- Modules/encryptedmedia/MediaKeySystemAccess.idl:
- Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):
(WebCore::MediaKeys::attachCDMClient):
(WebCore::MediaKeys::detachCDMClient):
(WebCore::MediaKeys::attemptToResumePlaybackOnClients):
(WebCore::MediaKeys::unrequestedInitializationDataReceived):
(WebCore::MediaKeys::nextChildIdentifier const):
- Modules/encryptedmedia/MediaKeys.h:
(WebCore::MediaKeys::create): Deleted.
(WebCore::MediaKeys::cdmInstance): Deleted.
(WebCore::MediaKeys::cdmInstance const): Deleted.
- Modules/encryptedmedia/MediaKeys.idl:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::cdmClientUnrequestedInitializationDataReceived):
- html/HTMLMediaElement.h:
- platform/encryptedmedia/CDMFactory.h:
- platform/encryptedmedia/CDMInstance.h:
(WebCore::CDMInstance::setClient):
(WebCore::CDMInstance::clearClient):
(WebCore::CDMInstance::setLogger):
- platform/encryptedmedia/CDMInstanceSession.h:
(WebCore::CDMInstanceSession::setLogger):
(WebCore::CDMInstanceSession::setClient):
- platform/encryptedmedia/CDMPrivate.h:
(WebCore::CDMPrivate::setLogger):
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::logChannel):
(WebCore::CDMPrivateFairPlayStreaming::setLogger):
(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):
- platform/graphics/avfoundation/CDMFairPlayStreaming.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::logChannel):
(WebCore::initTypeForRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setServerCertificate):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::clearClient):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::hasRequest const):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WTF:
- wtf/LoggerHelper.h:
(WTF::LoggerHelper::childLogIdentifier): Made static.
- 4:27 PM Changeset in webkit [258294] by
-
- 3 edits in trunk/Source/WebKit
[macOS] _AXSApplicationAccessibilityEnabled should not be called
https://bugs.webkit.org/show_bug.cgi?id=208953
Reviewed by Brent Fulgham.
This function should only be called on iOS, not on macOS.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- 3:42 PM Changeset in webkit [258293] by
-
- 30 edits in trunk
[WebAuthn] Formalize the Keychain schema
https://bugs.webkit.org/show_bug.cgi?id=183533
<rdar://problem/43347926>
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by new test contents within existing files.
- Modules/webauthn/AuthenticatorAssertionResponse.cpp:
(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):
- Modules/webauthn/AuthenticatorAssertionResponse.h:
Modifies the constructors to accept userEntity.name.
- Modules/webauthn/cbor/CBORValue.h:
Adds a FIXME.
- testing/MockWebAuthenticationConfiguration.h:
(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::decode):
- testing/MockWebAuthenticationConfiguration.idl:
Modifies the test infra to use Credential ID as the unique identifier for a credential instead of
the original combination of RP ID and user handle.
Source/WebKit:
This patch formalizes the schema for the Keychain as follows:
kSecAttrLabel: RP ID
kSecAttrApplicationLabel: Credential ID (auto-gen by Keychain)
kSecAttrApplicationTag: { "id": UserEntity.id, "name": UserEntity.name } (CBOR encoded)
Noted, the vale of kSecAttrApplicationLabel is automatically generated by the Keychain, which is a SHA-1 hash of
the public key.
According to the Step 7. from https://www.w3.org/TR/webauthn/#op-make-cred, the following fields are mandatory
- rpId (rpEntity.id);
- userHandle (userEntity.id), this is required for authenticators that support resident keys;
- credentialId.
Some other optional fields are:
(from https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialrpentity)
- rpEntity.name;
- rpEnitty.icon;
(from https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialuserentity)
- userEntity.displayName;
- userEntity.name;
- userEntity.icon;
(from https://www.w3.org/TR/webauthn/#sign-counter)
- signature counter.
Among the six possible fields, only 4. is chosen to store. Here is why:
For rpEntity, rpEntity.id which is either the domain or the eTLD + 1 of the website is
sufficient enough to either classify the credential or serving the UI. Also, this is the only
trustworthy information that the UserAgent produce. Others could potentially be used by
malicious websites for attacking the Keychain or spoofing/phishing users when being displayed
in the UI. Also, rpEnitty.icon is a URL to the website's favicon, which if not implemented
correctly can be used for tracking.
For userEntity, userEntity.name is the human readable version of userEntity.id, and therefore
is chosen to store such that later on WebKit can pass it to UI client to help users disambiguate
different credentials. And it is necessary as userEntity.id is not guaranteed to be human
readable. Others are abandoned for the very same reason as above.
We hard code a zero value for 'signature counter'. While this is a theoretically interesting
technique for a RP to detect private key cloning, it is unlikely to be useful in practice.
We store the private keys in our SEP. This counter would only be a meaningful protection if
adversaries were able to extract private key data from the SEP without Apple noticing, but
were not able to manipulate this counter to fool the RP.
In terms of the schema,
1) RP ID is needed to query all credentials related, and therefore it needs a column and kSecAttrLabel
is supposed to be human readable;
2) kSecAttrApplicationLabel is the auto generated programmatical identifier for a SecItem, and
therefore is suitable as the credential ID. Given the input to the SHA-1 is generated by us, and
it is only needed to be powerful enough to be unique across the keychain within a device, and potentially
to be unique across different other credential ID for the same user. The SHA-1 collision attack
doesn't seem valid here.
3) kSecAttrApplicationTag is the only other column Keychain allows applications to modify. Therefore,
UserEntity.id and UserEntity.name is bundled to use this slot. The reason to use CBOR here is that
it is more friendly then JSON to encode binaries, and it is used widely in WebAuthn.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::toArrayBuffer):
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::filterResponses const):
Tools:
Modifies the test infra to use Credential ID as the unique identifier for a credential instead of
the original combination of RP ID and user handle.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::cleanUpKeychain):
(WTR::TestRunner::keyExistsInKeychain):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistsInKeychain):
LayoutTests:
New tests are added and all tests are modified to use Credential ID to identify a credential instead
of { RP ID, user handle }.
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-local.https.html:
- http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
- http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
- http/wpt/webauthn/public-key-credential-get-success-local.https.html:
- http/wpt/webauthn/resources/util.js:
- 3:26 PM Changeset in webkit [258292] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258289. rdar://problem/60341123
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Unreviewed temporary compile fix.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:26 PM Changeset in webkit [258291] by
-
- 3 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258288. rdar://problem/60341123
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Reviewed by Tim Horton.
Check that accessibility library is present before attempting to call functions in it.
No new tests, since I am not able to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:22 PM Changeset in webkit [258290] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258225. rdar://problem/60342513
File upload cancels before files can be uploaded.
https://bugs.webkit.org/show_bug.cgi?id=208846
<rdar://problem/60244249>
Reviewed by Tim Horton.
With the new UIContextMenus, we needed to cancel in order for everything to be
reset correctly in WebCore. But this can only be done in the animation completion
handler, but we only want to cancel if we aren't presenting a different picker.
- UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]): (-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]): (-[WKFileUploadPanel ensureContextMenuInteraction]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:18 PM Changeset in webkit [258289] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Unreviewed temporary compile fix.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- 3:01 PM Changeset in webkit [258288] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Reviewed by Tim Horton.
Check that accessibility library is present before attempting to call functions in it.
No new tests, since I am not able to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- 2:57 PM Changeset in webkit [258287] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r257502): HitTestLocation::HitTestLocation(const FloatPoint&, const FloatQuad&) should set m_isRectBased to true
https://bugs.webkit.org/show_bug.cgi?id=208947
Reviewed by Wenson Hsieh.
Partial revert of r257502. I accidentally removed initialization of m_isRectBased when refactoring
the code in HitTestLocation::HitTestLocation(const FloatPoint&, const FloatQuad&). Revert this to
be faithful to the code before my change.
- rendering/HitTestLocation.cpp:
- 2:43 PM Changeset in webkit [258286] by
-
- 6 edits in trunk
Test262-runner should always consider crashes as new failures
https://bugs.webkit.org/show_bug.cgi?id=208943
Reviewed by Yusuke Suzuki.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
BigInt.asUintN() / BigInt.asIntN() should not crash when called even if we have
not implemented them yet...
- runtime/BigIntConstructor.cpp:
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):
Tools:
Right now the runner will consider crashes with no output as passes, which is obviously bad.
Since we should never crash on a conformance test we should consider a crash as a new failure
100% of the time.
- Scripts/test262/Runner.pm:
(processFile):
(runTest):
(processResult):
- 2:32 PM Changeset in webkit [258285] by
-
- 4 edits in branches/safari-610.1.7-branch/Source
Cherry-pick r258284. rdar://problem/60341123
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Source/WebKit:
<rdar://problem/60330751>
Reviewed by Brent Fulgham.
Check that accessibility library is present before attempting to use constants from it.
No new tests, since I am unable to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers): (WebKit::WebProcessPool::unregisterNotificationObservers):
Source/WTF:
Reviewed by Brent Fulgham.
Add macro to optionally soft link library.
- wtf/cocoa/SoftLinking.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258284 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:25 PM Changeset in webkit [258284] by
-
- 4 edits in trunk/Source
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Source/WebKit:
<rdar://problem/60330751>
Reviewed by Brent Fulgham.
Check that accessibility library is present before attempting to use constants from it.
No new tests, since I am unable to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
Source/WTF:
Reviewed by Brent Fulgham.
Add macro to optionally soft link library.
- wtf/cocoa/SoftLinking.h:
- 2:02 PM Changeset in webkit [258283] by
-
- 4 edits in trunk/Source
Enable safe browsing warnings in Mac Catalyst WebKit
https://bugs.webkit.org/show_bug.cgi?id=208944
<rdar://problem/58854302>
Reviewed by Tim Horton.
Source/WebKit:
I manually verified using the steps in the radar that it works as one would hope.
- Configurations/WebKit.xcconfig:
Source/WTF:
- wtf/PlatformHave.h:
- 2:00 PM Changeset in webkit [258282] by
-
- 3 edits2 adds in trunk
icloud.com Notes text in titles and headings is distorted
https://bugs.webkit.org/show_bug.cgi?id=208908
<rdar://problem/58874371>
Reviewed by Zalan Bujtas.
Source/WebCore:
icloud.com Notes determines if a font has finished loading by measuring it repeatedly.
Depending on the state of the page, we may slice the text differently in different
circumstances. These slices are all supposed to sum together equivalently, but
floating point precision may cause the results to be slightly off.
WidthIterator::applyFontTransforms() was summing a large list of numbers, and then
subtracting the same large list of numbers. A more robust design would be to sum
it twice, and then subtract the two sums.
Test: fast/text/shaping-width-precision.html
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyFontTransforms):
LayoutTests:
- fast/text/shaping-width-precision-expected.txt: Added.
- fast/text/shaping-width-precision.html: Added.
- 1:47 PM Changeset in webkit [258281] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208939
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 1:32 PM Changeset in webkit [258280] by
-
- 2 edits in trunk/Source/WebKit
Fix the macCatalyst build after r258250
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions):
- 1:26 PM Changeset in webkit [258279] by
-
- 5 edits5 adds in trunk
Throws incorrectly a syntax error when declaring a top level catch variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=189914
Reviewed by Saam Barati.
JSTests:
- ChakraCore/test/es6/globalParamCatchNewTargetSyntaxError.baseline-jsc:
- stress/catch-destructuring-shadow-lexical-const-variable-global.js: Added.
(catch):
- stress/catch-destructuring-shadow-lexical-variable-class.js: Added.
(Foo):
(Bar):
(Baz):
- stress/catch-destructuring-shadow-lexical-variable-function.js: Added.
(foo):
(bar):
- stress/catch-destructuring-shadow-lexical-variable-global.js: Added.
(catch):
- stress/catch-destructuring-shadow-var-global.js: Added.
(catch):
- test262/expectations.yaml:
Source/JavaScriptCore:
When we are parsing catch block parameters we should increment the statement depth so we don't think
we are trying to shadow top level lexical variables in the same statement depth.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseTryStatement):
- 1:22 PM Changeset in webkit [258278] by
-
- 5 edits in trunk/Source/WebCore
SVG filter triggers unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=207444
rdar://problem/59297004
Reviewed by Simon Fraser.
SVG filter code marks DOM nodes dirty and schedules style recalc outside of the SVG root
while in layout. This could lead to unstable layout and cause battery drain.
(See webkit.org/b/208903)
- rendering/RenderLayer.cpp: Remove filterNeedsRepaint(). It's a dangerously misleading name and should
not be part of RenderLayer.
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::notifyFinished):
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
- 1:19 PM Changeset in webkit [258277] by
-
- 3 edits in trunk/Source/WebKit
Terminate the Network / Plugin processes when receiving invalid IPC from them
https://bugs.webkit.org/show_bug.cgi?id=208933
<rdar://problem/58026473>
Reviewed by Geoffrey Garen.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
- UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didReceiveInvalidMessage):
- 1:09 PM Changeset in webkit [258276] by
-
- 5 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207566
<rdar://problem/59355382>
Patch by Antoine Quint <graouts@webkit.org> on 2020-03-11
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
We silence the unhandled Promise warning so that the test output is both cleaner and more stable.
- web-platform-tests/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html:
LayoutTests:
- platform/mac-wk1/TestExpectations:
- 1:06 PM Changeset in webkit [258275] by
-
- 5 edits in trunk/LayoutTests
REGRESSION: (r255821) [ iOS Mac wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html
https://bugs.webkit.org/show_bug.cgi?id=207278
<rdar://problem/59195524>
Patch by Antoine Quint <graouts@webkit.org> on 2020-03-11
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
We silence the unhandled Promise warning so that the test output is both cleaner and more stable.
- web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html:
LayoutTests:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 1:04 PM Changeset in webkit [258274] by
-
- 4 edits in trunk
[Mac wk2 Release] imported/w3c/web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state.html flaky fail
https://bugs.webkit.org/show_bug.cgi?id=206746
<rdar://problem/58867580>
Patch by Antoine Quint <graouts@webkit.org> on 2020-03-11
Reviewed by Dean Jackson.
Source/WebCore:
Because we could end up in situation where localTime was very marginally smaller than endTime inside of WebAnimation::play(), we would end up
with an unresolved hold time and we would return before calling WebAnimation::timingDidChange() and thus scheduling an animation update from
the timeline because we'd assume it was paused. As a result, the animation would never end and the test would wait for a "finish" event which
would never come.
We now account for an epsilon value when comparing times to account for such situations.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::play):
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 12:50 PM Changeset in webkit [258273] by
-
- 2 edits in trunk/Source/WebKit
Fix the macCatalyst build after r258250
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
- 12:34 PM Changeset in webkit [258272] by
-
- 4 edits in trunk
Assertion hit under WebPageProxy::suspendCurrentPageIfPossible() when bypassing certificate warning page
https://bugs.webkit.org/show_bug.cgi?id=208927
<rdar://problem/55448331>
Reviewed by Alex Christensen.
Source/WebKit:
When suspending a previous page after a process-swap, we refuse to do the suspension if the currently
committed URL does not match the url of the current back/forward list item. This makes sense since we
will store the suspended page on the back/forward list item and restore that back when navigating back
to that item. I had a debug assertion in there to help me figure out how this could happen. It turns
out that calling loadAlternateHTML on the view will replace the content of the view with the provided
HTML string, update the committed URL but not create a new back/forward list item. This is so that
if you reload or go/back to this back/forward list item, we will attempt to load the original URL
again. This would however trip my assertion. I am therefore removing my debug assertion and adding API
test coverage.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 11:34 AM Changeset in webkit [258271] by
-
- 5 edits in trunk/Tools
[GTK] Switch EWS api-gtk bot from buildAndTest to testOnly
https://bugs.webkit.org/show_bug.cgi?id=208860
Reviewed by Carlos Alberto Lopez Perez.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Added 'api-gtk'.
- BuildSlaveSupport/ews-build/config.json:
- BuildSlaveSupport/ews-build/factories.py:
(BuildFactory.init): Call InstallGTKDependencies() if platform is
GTK.
(TestFactory.init): Call InstallGTKDependencies() if platform is
GTK.
(GTKBuildFactory):
(GTKBuildFactory.init): Deleted.
(GTKBuildAndTestFactory): Deleted.
(GTKBuildAndTestFactory.init): Deleted.
(GTKAPIBuildAndTestFactory): Deleted.
- BuildSlaveSupport/ews-build/loadConfig.py:
- 11:01 AM Changeset in webkit [258270] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257915?) [ Mac ] accessibility/accessibility-node-memory-management.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208930
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:42 AM Changeset in webkit [258269] by
-
- 9 edits1 add in trunk/Source/WebKit
Introduce ResourceLoadStatisticsParameters and move members from NetworkSessionCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=208895
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-11
Reviewed by Youenn Fablet.
No change in behavior yet, but this will help us organize things better.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- Shared/ResourceLoadStatisticsParameters.h: Added.
(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- WebKit.xcodeproj/project.pbxproj:
- 10:30 AM Changeset in webkit [258268] by
-
- 8 edits1 copy1 add in trunk
Defer async scripts until DOMContentLoaded or first paint, whichever comes first
https://bugs.webkit.org/show_bug.cgi?id=208896
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebbaseline WPT test due to script execution timing change.
- web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085-expected.txt:
Source/WebCore:
Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In
Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization.
However, this seems overly aggressive on pages like wikipedia and it is sufficient
to defer those scripts until first-paint to get the performance win.
- dom/Document.cpp:
(WebCore::Document::shouldDeferAsynchronousScriptsUntilParsingFinishes const):
- page/Settings.yaml:
Source/WebKit:
Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In
Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization.
However, this seems overly aggressive on pages like wikipedia and it is sufficient
to defer those scripts until first-paint to get the performance win.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
- 10:05 AM Changeset in webkit [258267] by
-
- 2 edits in trunk/Source/WebCore
Consolidate detachment of document timeline into Document::commonTeardown.
https://bugs.webkit.org/show_bug.cgi?id=208786
<rdar://problem/59936716>
Patch by Jack Lee <Jack Lee> on 2020-03-11
Reviewed by Ryosuke Niwa.
Move detachment of DocumentTimeline to Document::commonTeardown().
No new tests. Covered by existing document tests.
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::commonTeardown):
(WebCore::Document::prepareForDestruction):
- 9:50 AM Changeset in webkit [258266] by
-
- 18 edits in trunk/Source
Unreviewed, reverting r258263.
https://bugs.webkit.org/show_bug.cgi?id=208922
it is breaking internal builds (Requested by youenn on
#webkit).
Reverted changeset:
"Move AudioSession interruption listener code to AudioSession"
https://bugs.webkit.org/show_bug.cgi?id=208714
https://trac.webkit.org/changeset/258263
- 9:41 AM Changeset in webkit [258265] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258252. rdar://problem/60310741
[iOS] A syscall is denied by the sandbox
https://bugs.webkit.org/show_bug.cgi?id=208892
<rdar://problem/60294880>
Reviewed by Brent Fulgham.
Add denied syscall to sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:41 AM Changeset in webkit [258264] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258247. rdar://problem/60305091
Some common domains should always be App-bound domains
https://bugs.webkit.org/show_bug.cgi?id=208893
<rdar://problem/60280943>
Reviewed by Brent Fulgham.
Some domains, like about:blank and pages loaded from files should
always be considered app-bound.
- UIProcess/WebPageProxy.cpp: (WebKit::shouldBeTreatedAsAppBound): (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:46 AM Changeset in webkit [258263] by
-
- 18 edits in trunk/Source
Move AudioSession interruption listener code to AudioSession
https://bugs.webkit.org/show_bug.cgi?id=208714
Reviewed by Jer Noble.
Source/WebCore:
Move AudioSession interruption detection code from MediaSessionManagerIOS helper to AudioSessionIOS.
Add interruption observer capabilities to AudioSession and make MediaSessionManagerIOS an observer of it.
Manually tested.
- platform/audio/AudioSession.cpp:
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
- platform/audio/AudioSession.h:
- platform/audio/ios/AudioSessionIOS.mm:
(-[WebInterruptionObserverHelper initWithCallback:]):
(-[WebInterruptionObserverHelper dealloc]):
(-[WebInterruptionObserverHelper clearCallback]):
(-[WebInterruptionObserverHelper interruption:]):
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSessionPrivate::~AudioSessionPrivate):
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
- platform/audio/ios/MediaSessionHelperIOS.h:
- platform/audio/ios/MediaSessionHelperIOS.mm:
(-[WebMediaSessionHelper initWithCallback:]):
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):
Source/WebKit:
Make RemoteAudioSessionProxyManager an observer for AudioSession interruptions.
When being interrupted, notify all WebProcesses and trigger begin/end interruption mechanisms.
We only send interruption to sessions that are active in RemoteAudioSessionProxyManager.
Minor refactorting to move manager proxies from a map to a weak hash set.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::audioSessionProxy):
- GPUProcess/media/RemoteAudioSessionProxy.cpp:
(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setPreferredBufferSize):
(WebKit::RemoteAudioSessionProxy::tryToSetActive):
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::~RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess):
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):
(WebKit::RemoteAudioSessionProxyManager::beginAudioSessionInterruption):
(WebKit::RemoteAudioSessionProxyManager::endAudioSessionInterruption):
- GPUProcess/media/RemoteAudioSessionProxyManager.h:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:
- 7:50 AM Changeset in webkit [258262] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations related with WebGL 2.0.0 tests
https://bugs.webkit.org/show_bug.cgi?id=208916
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 7:47 AM Changeset in webkit [258261] by
-
- 2 edits in trunk/Tools
[ews] Add unit test to prevent multiple schedulers for a builder.
https://bugs.webkit.org/show_bug.cgi?id=208917
Reviewed by Carlos Alberto Lopez Perez.
- BuildSlaveSupport/ews-build/loadConfig_unittest.py:
(ConfigDotJSONTest.test_multiple_scheduers_for_builder): Added unit test.
(TagsForBuilderTest): Fixed a typo.
- 7:40 AM Changeset in webkit [258260] by
-
- 3 edits2 adds in trunk
Crash in KeyframeEffect::getAnimatedStyle
https://bugs.webkit.org/show_bug.cgi?id=208318
<rdar://problem/59848234>
Patch by Jack Lee <Jack Lee> on 2020-03-11
Reviewed by Antoine Quint.
Source/WebCore:
Quit getAnimatedStyle if element is rendererless.
Test: fast/animation/keyframe-rendererless-element-crash.html
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getAnimatedStyle):
LayoutTests:
Quit getAnimatedStyle if element is rendererless.
- fast/animation/keyframe-rendererless-element-crash-expected.txt: Added.
- fast/animation/keyframe-rendererless-element-crash.html: Added.
- 5:44 AM Changeset in webkit [258259] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208912
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 3:48 AM Changeset in webkit [258258] by
-
- 2 edits5 deletes in trunk/LayoutTests
Regression r258148: js/dom/navigator-maxtouchpoints.html is consistently failing on windows
https://bugs.webkit.org/show_bug.cgi?id=208856
Unreviewed test gardening.
Since Pointer Events are now enabled by default everywhere, we can remove platform-specific results
and rely on the generic expectation where the navigator.maxTouchPoints property is 0.
- js/dom/navigator-maxtouchpoints-expected.txt:
- platform/gtk/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/ios/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/mac/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/win/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/wpe/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- 2:53 AM Changeset in webkit [258257] by
-
- 1 edit2 deletes in trunk/LayoutTests
[WPE] Gardening, remove WPE specific expected results
https://bugs.webkit.org/show_bug.cgi?id=208909
Unreviewed gardening.
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt: Removed.
- 2:20 AM Changeset in webkit [258256] by
-
- 2 edits in trunk/Tools
[GTK] Failing API tests under the Flatpak SDK environment
https://bugs.webkit.org/show_bug.cgi?id=208871
Reviewed by Michael Catanzaro.
The load-failed signal callback should return a boolean result,
otherwise we enter in unknown territory depending on how the
toolchain compiles this, possibly triggering bad behavior (with
GCC 9.2 from the Flatpak SDK) or not caring at all (with current
GCC toolchain on buildbots).
Patch suggested by Michael Catanzaro.
- TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:
(loadFailedCallback):
- 2:00 AM Changeset in webkit [258255] by
-
- 9 edits in trunk
[iOS] Unskip fast/mediastream tests
https://bugs.webkit.org/show_bug.cgi?id=208636
Reviewed by Eric Carlson.
Source/WebCore:
Add label to the settings so that we correctly send this information back to WebProcess.
Covered by existing tests.
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::settings):
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::settings):
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::settings):
LayoutTests:
- fast/mediastream/MediaStream-video-element-expected.txt:
- fast/mediastream/MediaStream-video-element.html:
Do not output sourceBuffer which is not supported in all platforms.
- fast/mediastream/MediaStreamTrack-getSettings-expected.txt:
- platform/ios/TestExpectations: