Timeline
Feb 5, 2020:
- 11:00 PM Changeset in webkit [255908] by
-
- 2 edits in trunk/Source/WebCore
Crash when printing at WebCore: WebCore::FrameView::paintContents
<https://webkit.org/b/207313>
<rdar://problem/56675778>
Reviewed by Brent Fulgham.
- page/PrintContext.cpp:
(WebCore::PrintContext::spoolPage):
(WebCore::PrintContext::spoolRect):
- Add nullptr check for frame.view(). This matches similar checks in other methods.
- 10:44 PM Changeset in webkit [255907] by
-
- 8 edits in trunk
[iOS] Provide a way to suppress software keyboards on WKWebView's WKContentView
https://bugs.webkit.org/show_bug.cgi?id=207272
<rdar://problem/59190828>
Reviewed by Tim Horton.
Source/WebKit:
Allow SPI clients to suppress the software keyboard using -_setSuppressSoftwareKeyboard: on WKWebView by
propagating the call to the WKContentView, which is the view that actually becomes first responder when an
element (e.g. a form control) is focused.
Test: KeyboardInputTests.SuppressSoftwareKeyboard
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setSuppressSoftwareKeyboard:]):
Tools:
Add an API test to verify (through UIKeyboardImpl) that the software keyboard should be suppressed when setting
-_setSuppressSoftwareKeyboard: on the web view. This involves making-makeKeyWindow"work" in the API testing
environment on iOS, by swizzling out both-[NSBundle bundleIdentifier]and-[UIApplication keyWindow].
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::overrideBundleIdentifier):
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(setOverriddenApplicationKeyWindow):
(applicationKeyWindowOverride):
(-[TestWKWebViewHostWindow makeKeyWindow]):
- TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
- TestWebKitAPI/ios/UIKitSPI.h:
Also move the
UIResponder (UIKitSPI)category from the internal section to the SPI section; this is redundant
when using the internal SDK to build, since these methods are already declared in UIResponder_Private.h.
- 10:39 PM Changeset in webkit [255906] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/WebPage.h
Unreviewed build fix, rdar://problem/58942727
- 9:46 PM Changeset in webkit [255905] by
-
- 8 edits in trunk
[PlayStation] Build a shared JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=198446
Reviewed by Fujii Hironori.
.:
Compile bmalloc and WTF as OBJECT libraries that are then linked into a shared
JavaScriptCore. Using OBJECT libraries is a modern CMake way to have the behavior
of --whole-archive.
- Source/cmake/OptionsPlayStation.cmake:
Source/JavaScriptCore:
Add TARGET_OBJECTS for bmalloc and WTF so JavaScriptCore links. Add bmalloc and
WTF compile definitions so exports are exposed.
- PlatformPlayStation.cmake:
Source/WTF:
Add bmalloc definition when compiling WTF. Remove LanguageUnix.cpp since
LanguagePlayStation.cpp is present which results in duplicate symbol definitions.
- wtf/PlatformPlayStation.cmake:
Tools:
Add TARGET_OBJECTS for bmalloc and WTF so TestWTF links.
- TestWebKitAPI/PlatformPlayStation.cmake:
- 9:12 PM Changeset in webkit [255904] by
-
- 11 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254873. rdar://problem/59161343
Revert suppressesConnectionTerminationOnSystemChange part of r254081
https://bugs.webkit.org/show_bug.cgi?id=205751
<rdar://problem/58725096>
There was an API client that still hadn't migrated to the replacement SPI.
- NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):
- NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:11 PM Changeset in webkit [255903] by
-
- 13 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254081. rdar://problem/59161343
Remove _WKProcessPoolConfiguration.CTDataConnectionServiceType and suppressesConnectionTerminationOnSystemChange
https://bugs.webkit.org/show_bug.cgi?id=205751
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-06
Reviewed by Darin Adler.
Their replacements on _WKWebViewConfiguration have been adopted.
- NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): Deleted.
- NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::dataConnectionServiceType const): (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): (WebKit::globalCTDataConnectionServiceType): Deleted. (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): Deleted.
- UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): Deleted. (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]): Deleted. (-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): Deleted. (-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]): Deleted.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:11 PM Changeset in webkit [255902] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Revert changes on safari-609-branch related to rdar://problem/59161343
Changes were merged incorrectly. Cleaning up.
This reverts commit r255891 and commit r255772.
- 9:07 PM Changeset in webkit [255901] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: the height of the undocked title area shouldn't change when zoomed
https://bugs.webkit.org/show_bug.cgi?id=207228
Reviewed by Timothy Hatcher.
- UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI.contentLoaded.updateZoomFactorCSSVariable): Added.
Save the zoom factor as a number in a CSS variable on the<body>.
- UserInterface/Views/Variables.css:
(body.mac-platform:not(.docked)): Added.
(body:not(.docked)): Deleted.
Divide the default22pxby the current zoom factor so that it cancels out when rendered.
Make it so that the undocked title area is only shown on macOS <https://webkit.org/b/204627#c47>
- 8:44 PM Changeset in webkit [255900] by
-
- 2 edits in trunk/Tools
[WinCairo] Set up fonts for layout tests for test bot image
https://bugs.webkit.org/show_bug.cgi?id=207223
Reviewed by Fujii Hironori.
- WebKitTestRunner/InjectedBundle/win/ActivateFontsWin.cpp: Implement activateFonts to load fonts for test
- 8:29 PM Changeset in webkit [255899] by
-
- 9 edits in trunk
[PlayStation] Miscellaneous build fixes February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207312
Unreviewed build fix.
Source/WebCore:
- accessibility/AccessibilityObject.h: Add missing definition for !ENABLE(ACCESSIBILITY)
(WebCore::AccessibilityObject::detachPlatformWrapper):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
- platform/graphics/cairo/ImageBufferCairo.cpp: Add missing include
Source/WebKit:
- NetworkProcess/NetworkDataTaskBlob.cpp: Add missing include.
- UIProcess/Downloads/DownloadProxyMap.h: Add missing forward declaration.
Tools:
- TestWebKitAPI/PlatformWebView.h: Remove #elif guard and just use #else
- 8:23 PM Changeset in webkit [255898] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix for Windows ports since r255875
https://bugs.webkit.org/show_bug.cgi?id=207073
<rdar://problem/59168065>
WEBCORE_TESTSUPPORT_EXPORT should be used only for WebCoreTestSupport, not for WebCore
See also Bug 203876.
- storage/StorageNamespaceProvider.h: Replaced WEBCORE_TESTSUPPORT_EXPORT with WEBCORE_EXPORT.
- 7:48 PM Changeset in webkit [255897] by
-
- 15 edits3 adds in trunk
Deleting a property should not turn structures into uncacheable dictionaries
https://bugs.webkit.org/show_bug.cgi?id=206430
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/delete-property-from-prototype-chain.js: Added.
(assert):
(noInline.assert.getZ):
(noInline.getZ.C):
(doTest):
(delete.C.prototype.z):
- microbenchmarks/delete-property-keeps-cacheable-structure.js: Added.
(assert):
(C):
(doTest):
- stress/cache-put-by-id-different-attributes.js:
(makePrototypeDict):
(set x):
- stress/cache-put-by-id-different-offset.js:
(makePrototypeDict):
(set x):
- stress/cache-put-by-id-poly-proto.js:
(makePrototypeDict):
(set _):
- stress/delete-property-check-structure-transition.js: Added.
(assert):
(assert_eq):
(assert_neq):
(sd):
(sid):
(testDeleteIsNotUncacheable):
(testCanMaterializeDeletes):
(testCanFlatten):
(testDeleteWithInlineCache.Object.prototype.globalProperty.42.makeFoo):
(testDeleteWithInlineCache.noInline.doTest):
(testDeleteWithInlineCache):
- stress/flatten-object-zero-unused-inline-properties.js:
Source/JavaScriptCore:
Right now, deleteProperty/removePropertyTransition causes a structure transition to uncacheable dictionary. Instead, we should allow it to transition to a new regular structure like adding a property does. This means that we have to:
1) Break the assumption that structure transition offsets increase monotonically
We add a new flag to tell that a structure has deleted its property, and update materializePropertyTable to use it.
2) Add a new transition map and transition kind for deletes
We cache the delete transition. We will not transition back to a previous structure if you add then immediately remove a property.
3) Find some heuristic for when we should actually transition to uncacheable dictionary.
Since deleting properties is expected to be rare, we just walk the structure list and count its size on removal.
This patch also fixes a related bug in addProperty, where we did not use a GCSafeConcurrentJSLocker, and adds an option to trigger the bug. Finally, we add some helper methods to dollarVM to test.
This gives a 24x speedup on delete-property-keeps-cacheable-structure.js, and is neutral on delete-property-from-prototype-chain.js (which was already generating code using the inline cache).
- heap/HeapInlines.h:
(JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
- runtime/JSObject.cpp:
(JSC::JSObject::deleteProperty):
- runtime/OptionsList.h:
- runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::get):
(JSC::PropertyTable::add):
(JSC::PropertyTable::addDeletedOffset):
(JSC::PropertyTable::reinsert):
- runtime/Structure.cpp:
(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyTable):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::removePropertyTransition):
(JSC::Structure::removePropertyTransitionFromExistingStructure):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::toUncacheableDictionaryTransition):
(JSC::Structure::remove):
(JSC::Structure::visitChildren):
- runtime/Structure.h:
- runtime/StructureInlines.h:
(JSC::Structure::forEachPropertyConcurrently):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::removePropertyWithoutTransition):
- runtime/StructureTransitionTable.h:
(JSC::StructureTransitionTable::Hash::hash):
- tools/JSDollarVM.cpp:
(JSC::JSDollarVMHelper::functionGetStructureTransitionList):
(JSC::functionGetConcurrently):
(JSC::JSDollarVM::finishCreation):
- 7:36 PM Changeset in webkit [255896] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Some cookie table column headers should not be localizable
https://bugs.webkit.org/show_bug.cgi?id=206920
Reviewed by Timothy Hatcher.
Keep headers that match cookie directives always in English.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView.prototype.initialLayout):
- 7:28 PM Changeset in webkit [255895] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r254428): [ macOS wk1 ] inspector/canvas/recording-2d-full.html became slower, flakily times out
https://bugs.webkit.org/show_bug.cgi?id=207154
<rdar://problem/59127935>
Reviewed by Zalan Bujtas.
Rather than have a
InspectorTest.log()for each line of output, collect the content into a
String/Array and do a single log to avoid lots of sequential layouts.
- inspector/canvas/resources/create-context-utilities.js:
(TestPage.registerInitializer.awaitCanvasAdded):
- inspector/canvas/resources/recording-utilities.js:
(TestPage.registerInitializer.log): Deleted.
(TestPage.registerInitializer.logRecording):
(TestPage.registerInitializer.logRecording.log): Added.
- 7:20 PM Changeset in webkit [255894] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: slightly increase the horizontal padding around scope bar items
https://bugs.webkit.org/show_bug.cgi?id=207321
Reviewed by Timothy Hatcher.
- UserInterface/Views/ScopeBar.css:
(.scope-bar):
(body[dir=ltr] .scope-bar > li.multiple > select):
(body[dir=rtl] .scope-bar > li.multiple > select):
- UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only):
- 7:14 PM Changeset in webkit [255893] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Tab Bar: move window management items to the left and don't show reload/download unless remotely inspecting
https://bugs.webkit.org/show_bug.cgi?id=207318
Reviewed by Timothy Hatcher.
Move the window management buttons to the left side to match the system look/feel.
Hide the reload/download buttons when inspecting locally, as there are other ways of
reloading the inspected page or downloading a Web Archive.
- UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI._updateDockNavigationItems):
(WI._updateReloadTabBarButton):
(WI._updateDownloadTabBarButton):
(WI._updateInspectModeTabBarButton):
(WI._updateTabBarDividers): Added.
(WI._updateConsoleTabBarButtons):
- UserInterface/Debug/Bootstrap.js:
(updateDebugUI):
(WI.runBootstrapOperations):
- 7:13 PM Changeset in webkit [255892] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: the resource detail view cuts off the bottom statistics bar
https://bugs.webkit.org/show_bug.cgi?id=207320
Reviewed by Timothy Hatcher.
- UserInterface/Views/Variables.css:
(:root):
Add a--network-statistics-heightvariable.
- UserInterface/Views/NetworkDetailView.css:
(.network-detail):
- UserInterface/Views/NetworkTableContentView.css:
(.network-table > .statistics):
Use the--network-statistics-heightvariable to make sure the statistics row and the
details view for the selected network entry don't overlap.
Drive-by: center the content of the statistics row to better match the system look/feel.
- 6:59 PM Changeset in webkit [255891] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h
Unreviewed Speculative Build-Fix, rdar://problem/59161343
- 6:40 PM Changeset in webkit [255890] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: increase the height of the tab bar to match other navigation bars
https://bugs.webkit.org/show_bug.cgi?id=207317
Reviewed by Timothy Hatcher.
- UserInterface/Views/Variables.css:
(:root):
Define--tab-bar-heightin terms of--navigation-bar-heightso they share the same value.
- UserInterface/Views/TabBar.css:
(.tab-bar > .tabs > .item):
(.tab-bar > .tabs > .item.pinned):
(.tab-bar > .tabs > .item.pinned.tab-picker): Deleted.
Increase the width to match the--tab-bar-heightso that pinned tab bar items are square.
- 6:37 PM Changeset in webkit [255889] by
-
- 6 edits in trunk
[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183
Reviewed by Mark Lam.
Source/WTF:
We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.
A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
JetStream2, while it offers 2~% improvement in Membuster. This means that we are
wasting too much memory for no-performance-improvement.
This patch changes the load-factor from 50% to 75%.
[1]: LLVM DenseMap, Abseil's, rust's, and so on.
- wtf/HashTable.h:
(WTF::HashTable::shouldExpand):
(WTF::HashTable::shouldExpand const):
(WTF::HashTableCapacityForSize::capacityForSize):
(WTF::KeyTraits>::computeBestTableSize):
Tools:
Fix load-factor assumption in existing tests.
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::testInitialCapacity):
LayoutTests:
It seems that this test is relying on hash-table's order.
- http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
- 6:29 PM Changeset in webkit [255888] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dragging handles in the easing popover selects sidebar text
https://bugs.webkit.org/show_bug.cgi?id=207316
Reviewed by Timothy Hatcher.
- UserInterface/Views/BezierEditor.js:
(WI.BezierEditor.prototype._handleMousedown):
- 6:19 PM Changeset in webkit [255887] by
-
- 17 edits3 adds in trunk
Web Inspector: Sources: add a special breakpoint for controlling whether
debuggerstatements pause
https://bugs.webkit.org/show_bug.cgi?id=206818
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/protocol/Debugger.json:
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::setPauseOnDebuggerStatements): Added.
- bytecompiler/NodesCodegen.cpp:
(JSC::DebuggerStatementNode::emitBytecode):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::dumpLineColumnEntry):
- interpreter/Interpreter.h:
- interpreter/Interpreter.cpp:
(JSC::Interpreter::debug):
(WTF::printInternal):
- debugger/Debugger.h:
(JSC::Debugger::setPauseOnDebuggerStatements): Added.
- debugger/Debugger.cpp:
(JSC::Debugger::didReachDebuggerStatement): Added.
(JSC::Debugger::didReachBreakpoint): Deleted.
ReplaceDebugHookType::DidReachBreakpointwithDebugHookType::DidReachDebuggerStatement,
as it is only actually used fordebugger;statements, not breakpoints.
Source/WebInspectorUI:
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager):
(WI.DebuggerManager.prototype.async initializeTarget):
(WI.DebuggerManager.prototype.get debuggerStatementsBreakpoint): Added.
(WI.DebuggerManager.prototype.isBreakpointRemovable):
(WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement):
(WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint):
- UserInterface/Views/BreakpointTreeElement.css:
(.breakpoint-debugger-statement-icon .icon): Added.
- UserInterface/Images/DebuggerStatement.svg: Added.
- Localizations/en.lproj/localizedStrings.js:
LayoutTests:
- inspector/debugger/setPauseOnDebuggerStatements.html: Added.
- inspector/debugger/setPauseOnDebuggerStatements-expected.txt: Added.
- 6:16 PM Changeset in webkit [255886] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Bezier editor popover should be strictly LTR
https://bugs.webkit.org/show_bug.cgi?id=206968
<rdar://problem/59007065>
Reviewed by Timothy Hatcher.
- Don't mirror the coordinate system.
- Don't reverste the order of the cubic bezier values, e.g.
cubic-bezier(0, 0.5, 1, 0.5).
- UserInterface/Views/BezierEditor.css:
(90%):
(to):
(body[dir=ltr] .bezier-editor): Deleted.
(body[dir=rtl] .bezier-editor): Deleted.
(body[dir=rtl] .bezier-editor > .bezier-container): Deleted.
- UserInterface/Views/BezierEditor.js:
- 6:13 PM Changeset in webkit [255885] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: ensure that
didClearWindowObjectInWorldis dispatched for the main world first
https://bugs.webkit.org/show_bug.cgi?id=207232
Reviewed by Timothy Hatcher.
It is necessary to order the
DOMWrapperWorlds because certain callers expect the main
world to be the first item in the list, as they use the main world as an indicator of when
the page is ready to start evaluating JavaScript. For example, Web Inspector waits for the
main world change to clear any injected scripts and debugger/breakpoint state.
- bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::getAllWorlds):
- 5:21 PM Changeset in webkit [255884] by
-
- 3 edits in trunk/Source/WebCore
Check for null return from AXIsolatedTree::nodeForID.
https://bugs.webkit.org/show_bug.cgi?id=207300
Reviewed by Chris Fleizach.
- As the IsolatedTree is updated, AXIsolatedTree::nodeForID may return
nullptr for objects that have been removed from the tree. Thus,
IsolatedObjects must check the returned value when updating children
and any other operations involving cached IDs.
- Tidying up use of auto on for and if statements.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::detachRemoteParts):
(WebCore::AXIsolatedObject::children):
(WebCore::AXIsolatedObject::accessibilityText const):
(WebCore::AXIsolatedObject::insertMathPairs):
(WebCore::AXIsolatedObject::objectAttributeValue const):
(WebCore::AXIsolatedObject::fillChildrenVectorForProperty const):
(WebCore::AXIsolatedObject::tree const): Deleted, moved inline to the header.
- accessibility/isolatedtree/AXIsolatedObject.h:
- 5:13 PM Changeset in webkit [255883] by
-
- 4 edits in trunk/Tools
resulsdbpy: Fix unit tests
https://bugs.webkit.org/show_bug.cgi?id=207304
Reviewed by Aakash Jain.
- resultsdbpy/resultsdbpy/model/configuration_context_unittest.py:
(ConfigurationContextTest.test_partition_by_configuration): Add branch to testing table.
(ConfigurationContextTest.test_partition_by_partial_configuration): Ditto.
- resultsdbpy/resultsdbpy/model/failure_context_unittest.py:
(FailureContextTest.test_failures): Sort test failures by uuid for a predictable order in testing.
(FailureContextTest.test_unexpected_failures): Ditto.
- resultsdbpy/resultsdbpy/model/mock_model_factory.py:
(MockModelFactory.iterate_all_commits): Do not batch requests since this function has no way
of knowing how expensive the callback may be.
- 5:09 PM WebKitGTK/2.26.x edited by
- (diff)
- 5:08 PM Changeset in webkit [255882] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/WebPage.h
Unreviewed build fix. rdar://problem/58942727
- 5:03 PM Changeset in webkit [255881] by
-
- 11 edits in trunk/Source
Adopt MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207275
<rdar://problem/58837093>
Reviewed by Eric Carlson.
Source/WebCore:
- platform/PlatformScreen.h:
- platform/mac/PlatformScreenMac.mm:
(WebCore::setShouldOverrideScreenSupportsHighDynamicRange):
Source/WebCore/PAL:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
Source/WebKit:
The WebProcess sandbox can block access to the services necessary for MediaToolbox to determine whether
the current display is capable of displaying HDR. Rather than opening up the sandbox, provide the information
gathered by the UIProcess by way of MTOverrideShouldPlayHDRVideo().
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::windowScreenDidChange):
(WebKit::WebPage::displayID const):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setScreenProperties): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::setScreenProperties):
(WebKit::WebProcess::updatePageScreenProperties):
- 4:56 PM Changeset in webkit [255880] by
-
- 2 edits in trunk/Tools
Unreviewed, another build fix after r255846
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
- 4:52 PM Changeset in webkit [255879] by
-
- 2 edits in trunk/Source/WebKit
[macCatalyst] Incorrect IBeam cursor when selecting text on Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=207299
<rdar://problem/59200545>
Reviewed by Tim Horton.
After r255827, if EventHandler selects an IBeam cursor at the position information request location, we will
always attempt to show a caret at that location, whose height is the height of the editing caret for that
visible position. However, this means that:
- It's possible for the caret to be incorrectly sized if the caret is before a large replaced element, such as
a table. Since the request location is also outside of any line rect, it doesn't make sense to use the caret
height for the height of the cursor. Instead, fall back to computed line height. This fixes an issue on
en.wikipedia.org where the line rect would sometimes update to an enormous size when selecting text, since
the caret would temporarily hover over an editing position that is before a large table.
- This fallback path completely negates certain cursor behaviors; partially restore this behavior by making it
so that in the case where the cursor is in editable content and the line caret first line from the top of
the hit-tested node already contains the request point, don't bother trying to recenter the line rect to be
right over the request point.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::populateCaretContext):
- 4:30 PM Changeset in webkit [255878] by
-
- 1 copy in tags/Safari-609.1.16.1
Tag Safari-609.1.16.1.
- 4:24 PM Changeset in webkit [255877] by
-
- 2 edits in trunk/Tools
Unreviewed infrastructure fix.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot): Delete entries for queues that have been removed from buildbot.
- 4:23 PM Changeset in webkit [255876] by
-
- 4 edits in trunk/Source
[IPC hardening] Fail IPC decoding of invalid ClientOrigin objects
https://bugs.webkit.org/show_bug.cgi?id=207305
<rdar://problem/58797651>
Reviewed by Brent Fulgham.
Fail IPC decoding of invalid ClientOrigin objects (empty ClientOrigin or deleted value in a HashMap).
- page/ClientOrigin.h:
(WebCore::ClientOrigin::decode):
- page/SecurityOriginData.h:
(WebCore::SecurityOriginData::decode):
- 4:11 PM Changeset in webkit [255875] by
-
- 15 edits3 adds in trunk
Regression(r248734) StorageAreaMap objects are getting leaked
https://bugs.webkit.org/show_bug.cgi?id=207073
<rdar://problem/59168065>
Reviewed by Darin Adler.
Source/WebCore:
Add test infrastructure for testing this change.
Test: http/tests/storage/storage-map-leaking.html
- storage/StorageNamespace.h:
(WebCore::StorageNamespace::storageAreaMapCountForTesting const):
- storage/StorageNamespaceProvider.h:
- testing/Internals.cpp:
(WebCore::Internals::storageAreaMapCount const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Make sure that StorageAreaMap objects are getting removed from the HashMap
in StorageNamespaceImpl, once they no longer have any users.
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::~StorageAreaImpl):
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::incrementUseCount):
(WebKit::StorageAreaMap::decrementUseCount):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::destroyStorageAreaMap):
(WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): Deleted.
- WebProcess/WebStorage/StorageNamespaceImpl.h:
(WebKit::StorageNamespaceImpl::storageType const): Deleted.
(WebKit::StorageNamespaceImpl::storageNamespaceID const): Deleted.
(WebKit::StorageNamespaceImpl::topLevelOrigin const): Deleted.
(WebKit::StorageNamespaceImpl::quotaInBytes const): Deleted.
LayoutTests:
Add layout test coverage.
- TestExpectations:
- http/tests/storage/resources/storage-map-leaking-iframe.html: Added.
- http/tests/storage/storage-map-leaking-expected.txt: Added.
- http/tests/storage/storage-map-leaking.html: Added.
- platform/wk2/TestExpectations:
- 4:06 PM Changeset in webkit [255874] by
-
- 6 edits in trunk/Source
[iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
https://bugs.webkit.org/show_bug.cgi?id=207279
<rdar://problem/59030957>
Source/WebKit:
Reviewed by Brent Fulgham.
Do not create sandbox reports when the UI process cannot issue mach extensions to the diagnostics service.
The majority of clients are capable of doing this.
No new tests, since it is not trivial to test if no sandbox reports are generated for a violation.
- Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtensionImpl::create):
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtensionImpl::SandboxExtensionImpl):
(WebKit::SandboxExtension::createHandleForMachLookup):
- Shared/SandboxExtension.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
Source/WTF:
Reviewed by Brent Fulgham.
Add flag which avoids generating sandbox reports.
- wtf/spi/darwin/SandboxSPI.h:
- 3:57 PM Changeset in webkit [255873] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255489. rdar://problem/59097788
[Web Animations] DocumentTimeline shouldn't suspend itself if hiddenPageCSSAnimationSuspensionEnabled is disabled
https://bugs.webkit.org/show_bug.cgi?id=207014
<rdar://problem/58815952>
Reviewed by Antti Koivisto.
We suspend a timeline upon consutrction if we know that the page is not visible because, unlike CSSAnimationController, the DocumentTimeline is not guaranteed
to be created by the time the Page sets the initial visibility state. This is because DocumentTimeline is created as needed when there are CSS Animations or CSS
Transitions created for the page, or if the content uses any of the Web Animations APIs.
However, the Page::setIsVisibleInternal() function that would call DocumentTimeline::resumeAnimations() at a later time checks whether the hiddenPageCSSAnimationSuspensionEnabled
setting is enabled. So we must respect that setting also when suspending animations in the first place or we risk ending up in a state where we suspend animations
because the page is not visible upon timeline creation, but never resuming animations later due to the hiddenPageCSSAnimationSuspensionEnabled setting being false.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::DocumentTimeline):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:57 PM Changeset in webkit [255872] by
-
- 4 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255260. rdar://problem/59098323
[Web Animations] Separate setting a timeline's current time from updating its animations
https://bugs.webkit.org/show_bug.cgi?id=206880
Reviewed by Dean Jackson.
While we must always update the current time of all timelines if a new animation frame has been requested,
regardless of the reason (rAF callback, animation servicing, etc.), we should only update timelines' animations
if at least one timeline has requested an update. We used to decide this at the DocumentTimeline level, but
this needs to be coordinated at the Document level to consider all timelines at once.
This is required for an upcoming patch where we make changes to the way we schedule animations to correctly
support mixed accelerated and non-accelerated properties.
No new tests since this shouldn't yield any visible behavior change.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::updateCurrentTime): (WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
- animation/DocumentTimeline.h:
- dom/Document.cpp: (WebCore::Document::updateAnimationsAndSendEvents):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:57 PM Changeset in webkit [255871] by
-
- 7 edits in branches/safari-609-branch
Cherry-pick r255141. rdar://problem/59097788
[Web Animations] Update all DocumentTimeline objects when updating animations
https://bugs.webkit.org/show_bug.cgi?id=206819
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark a single new WPT progression.
- web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt:
Source/WebCore:
Developers can create additional DocumentTimeline objects in JavaScript using that class's constructor, and an animation can be
assigned to that timeline after its creation. Until now we would only update an timeline created by a Document when that document's
animations were updated. Now we keep track of all DocumentTimeline objects that are created for a given Document as a vector of weak
references, and we update all of them when updating a document's animations.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::DocumentTimeline): (WebCore::DocumentTimeline::~DocumentTimeline):
- animation/DocumentTimeline.h:
- dom/Document.cpp: (WebCore::Document::updateAnimationsAndSendEvents): (WebCore::Document::addTimeline): (WebCore::Document::removeTimeline):
- dom/Document.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:57 PM Changeset in webkit [255870] by
-
- 4 edits in branches/safari-609-branch/Source/WebCore
Revert "Cherry-pick r255489. rdar://problem/59097788"
Revert "Cherry-pick r255260. rdar://problem/59098323"
This reverts commit r255758 and r255762.
Reverting to reland with pre-requisite patch to avoid conflicts.
- 3:56 PM Changeset in webkit [255869] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] inspector/animation/lifecycle-css-animation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207306
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-05
- platform/mac/TestExpectations:
- 3:50 PM Changeset in webkit [255868] by
-
- 2 edits in trunk/Source/WebKit
[IPC hardening] Protect against bad identifier in CacheStorageEngineConnection::reference() / dereference()
https://bugs.webkit.org/show_bug.cgi?id=207302
<rdar://problem/59016099>
Reviewed by Alex Christensen.
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::reference):
(WebKit::CacheStorageEngineConnection::dereference):
- 3:49 PM Changeset in webkit [255867] by
-
- 2 edits in trunk/Source/WebKit
[IPC hardening] Protect against bad parameters in NetworkRTCProvider::createResolver()
https://bugs.webkit.org/show_bug.cgi?id=207301
<rdar://problem/59011449>
Reviewed by Alex Christensen.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createResolver):
- 3:43 PM Changeset in webkit [255866] by
-
- 2 edits in trunk/LayoutTests
ASSERTION FAILED: !needsLayout() [ macOS wk2 ] loader/stateobjects/pushstate-size-iframe.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207303
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 3:24 PM Changeset in webkit [255865] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Add more fontconfig paths into the sandbox
https://bugs.webkit.org/show_bug.cgi?id=207293
Reviewed by Michael Catanzaro.
These paths were reported to be used on Debian.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindFonts):
- 3:05 PM Changeset in webkit [255864] by
-
- 2 edits in trunk/Source/WebKit
[IPC hardening] Protect against bad originIdentifier String in WebPageProxy::reachedApplicationCacheOriginQuota() / requestGeolocationPermissionForFrame()
https://bugs.webkit.org/show_bug.cgi?id=207292
<rdar://problem/58345601>
Reviewed by David Kilzer.
- UIProcess/WebPageProxy.cpp:
- 2:55 PM Changeset in webkit [255863] by
-
- 2 edits in trunk/Tools
Unreviewed build fix after r255846.
- TestWebKitAPI/cocoa/HTTPServer.h:
- 2:49 PM Changeset in webkit [255862] by
-
- 7 edits in trunk
Defer ending AppSSO sheets til NSWindowDidDeminiaturize or NSApplicationDidUnhide
https://bugs.webkit.org/show_bug.cgi?id=207173
<rdar://problem/55669065>
Reviewed by Brent Fulgham.
Source/WebKit:
AppKit has a bug that [m_sheetWindow sheetParent] is null if the parent is minimized or the host app is hidden.
SheetParent is used to endSheet. Therefore, WebKit cannot dismiss AppSSO UIs in the above two cases if asked
by extensions.
This patch implements a workaround to detect those two cases and defer the endSheet til NSWindowDidDeminiaturize
or NSApplicationDidUnhide is received.
Covered by API tests.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::dismissViewController):
- UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:
(WebKit::SubFrameSOAuthorizationSession::abortInternal):
Treat abort like falling back to the web path for sub frame case given displaying an empty
iframe after aborting seems bad.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView _setUpTestWindow:]):
Make the TestWKWebViewHostWindow miniaturizable to enable the test.
- 2:41 PM Changeset in webkit [255861] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/ChangeLog
Revert "Cherry-pick r254267. rdar://problem/58606290"
This reverts commit r255712 which was a ChangeLog only commit.
- 2:37 PM Changeset in webkit [255860] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against targetId String being invalid in WebPageProxy::createInspectorTarget() / destroyInspectorTarget()
https://bugs.webkit.org/show_bug.cgi?id=207288
<rdar://problem/57645953>
Reviewed by Geoffrey Garen.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createInspectorTarget):
(WebKit::WebPageProxy::destroyInspectorTarget):
- 2:13 PM Changeset in webkit [255859] by
-
- 70 edits3 copies3 moves22 adds in branches/safari-609-branch
Cherry-pick r255396. rdar://problem/59097789
Web Inspector: add instrumentation for showing existing Web Animations
https://bugs.webkit.org/show_bug.cgi?id=205434
<rdar://problem/28328087>
Reviewed by Brian Burg.
Source/JavaScriptCore:
- inspector/protocol/Animation.json:
Add types/commands/events for instrumenting the lifecycle of
Animationobjects, as well as commands for getting the JavaScript wrapper object and the target DOM node.
Source/WebCore:
Add types/commands/events for instrumenting the lifecycle of
Animationobjects, as well as
commands for getting the JavaScript wrapper object and the target DOM node.
Tests: inspector/animation/effectChanged.html
inspector/animation/lifecycle-css-animation.html
inspector/animation/lifecycle-css-transition.html
inspector/animation/lifecycle-web-animation.html
inspector/animation/requestEffectTarget.html
inspector/animation/resolveAnimation.html
inspector/animation/targetChanged.html
- animation/WebAnimation.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::instances): Added. (WebCore::WebAnimation::instancesMutex): Added. (WebCore::WebAnimation::create): (WebCore::WebAnimation::WebAnimation): (WebCore::WebAnimation::~WebAnimation): (WebCore::WebAnimation::effectTimingDidChange): (WebCore::WebAnimation::setEffectInternal): (WebCore::WebAnimation::effectTargetDidChange):
- animation/CSSAnimation.cpp: (WebCore::CSSAnimation::create):
- animation/CSSTransition.cpp: (WebCore::CSSTransition::create):
- animation/KeyframeEffect.h: (WebCore::KeyframeEffect::parsedKeyframes const): Added. (WebCore::KeyframeEffect::blendingKeyframes const): Added. (WebCore::KeyframeEffect::hasBlendingKeyframes const): Deleted. Provide a way to access the list of keyframes.
- inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::didSetWebAnimationEffect): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectTiming): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectTarget): Added. (WebCore::InspectorInstrumentation::didCreateWebAnimation): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffect): Deleted.
- inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didCommitLoadImpl): (WebCore::InspectorInstrumentation::didSetWebAnimationEffectImpl): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectTimingImpl): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectTargetImpl): Added. (WebCore::InspectorInstrumentation::didCreateWebAnimationImpl): Added. (WebCore::InspectorInstrumentation::willDestroyWebAnimationImpl): (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectImpl): Deleted.
- inspector/InstrumentingAgents.h: (WebCore::InstrumentingAgents::enabledInspectorAnimationAgent const): Added. (WebCore::InstrumentingAgents::setEnabledInspectorAnimationAgent): Added.
- inspector/InstrumentingAgents.cpp: (WebCore::InstrumentingAgents::reset):
- inspector/agents/InspectorAnimationAgent.h:
- inspector/agents/InspectorAnimationAgent.cpp: (WebCore::protocolValueForSeconds): Added. (WebCore::protocolValueForPlaybackDirection): Added. (WebCore::protocolValueForFillMode): Added. (WebCore::buildObjectForKeyframes): Added. (WebCore::buildObjectForEffect): Added. (WebCore::InspectorAnimationAgent::InspectorAnimationAgent): (WebCore::InspectorAnimationAgent::willDestroyFrontendAndBackend): (WebCore::InspectorAnimationAgent::enable): Added. (WebCore::InspectorAnimationAgent::disable): Added. (WebCore::InspectorAnimationAgent::requestEffectTarget): Added. (WebCore::InspectorAnimationAgent::resolveAnimation): Added. (WebCore::InspectorAnimationAgent::didSetWebAnimationEffect): Added. (WebCore::InspectorAnimationAgent::didChangeWebAnimationEffectTiming): Added. (WebCore::InspectorAnimationAgent::didChangeWebAnimationEffectTarget): Added. (WebCore::InspectorAnimationAgent::didCreateWebAnimation): Added. (WebCore::InspectorAnimationAgent::willDestroyWebAnimation): (WebCore::InspectorAnimationAgent::frameNavigated): (WebCore::InspectorAnimationAgent::findAnimationId): Added. (WebCore::InspectorAnimationAgent::assertAnimation): Added. (WebCore::InspectorAnimationAgent::bindAnimation): Added. (WebCore::InspectorAnimationAgent::unbindAnimation): Added. (WebCore::InspectorAnimationAgent::animationDestroyedTimerFired): Added. (WebCore::InspectorAnimationAgent::reset): Added. (WebCore::InspectorAnimationAgent::didChangeWebAnimationEffect): Deleted.
- inspector/agents/InspectorDOMAgent.h:
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushNodeToFrontend):
(WebCore::InspectorDOMAgent::querySelector):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::setOuterHTML):
(WebCore::InspectorDOMAgent::moveTo):
(WebCore::InspectorDOMAgent::requestNode):
(WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
Add an overload for
pushNodePathToFrontendthat exposes anErrorString.
Source/WebInspectorUI:
- UserInterface/Controllers/AnimationManager.js: Added. (WI.AnimationManager): (WI.AnimationManager.prototype.get domains): (WI.AnimationManager.prototype.activateExtraDomain): (WI.AnimationManager.prototype.initializeTarget): (WI.AnimationManager.prototype.get animationCollection): (WI.AnimationManager.prototype.get supported): (WI.AnimationManager.prototype.enable): (WI.AnimationManager.prototype.disable): (WI.AnimationManager.prototype.animationCreated): (WI.AnimationManager.prototype.effectChanged): (WI.AnimationManager.prototype.targetChanged): (WI.AnimationManager.prototype.animationDestroyed): (WI.AnimationManager.prototype._handleMainResourceDidChange):
- UserInterface/Protocol/AnimationObserver.js: (WI.AnimationObserver.prototype.animationCreated): Added. (WI.AnimationObserver.prototype.effectChanged): Added. (WI.AnimationObserver.prototype.targetChanged): Added. (WI.AnimationObserver.prototype.animationDestroyed): Added.
- UserInterface/Models/AnimationCollection.js: Added.
(WI.AnimationCollection):
(WI.AnimationCollection.prototype.get animationType):
(WI.AnimationCollection.prototype.get displayName):
(WI.AnimationCollection.prototype.objectIsRequiredType):
(WI.AnimationCollection.prototype.animationCollectionForType):
(WI.AnimationCollection.prototype.itemAdded):
(WI.AnimationCollection.prototype.itemRemoved):
(WI.AnimationCollection.prototype.itemsCleared):
Similar to
WI.ResourceCollection, create a subclass ofWI.Collectionthat maintains it's own sub-WI.AnimationCollections for each type ofWI.Animation.Type.
- UserInterface/Models/Animation.js: Added. (WI.Animation): (WI.Animation.fromPayload): (WI.Animation.displayNameForAnimationType): (WI.Animation.displayNameForPlaybackDirection): (WI.Animation.displayNameForFillMode): (WI.Animation.resetUniqueDisplayNameNumbers): (WI.Animation.prototype.get animationId): (WI.Animation.prototype.get backtrace): (WI.Animation.prototype.get animationType): (WI.Animation.prototype.get startDelay): (WI.Animation.prototype.get endDelay): (WI.Animation.prototype.get iterationCount): (WI.Animation.prototype.get iterationStart): (WI.Animation.prototype.get iterationDuration): (WI.Animation.prototype.get timingFunction): (WI.Animation.prototype.get playbackDirection): (WI.Animation.prototype.get fillMode): (WI.Animation.prototype.get keyframes): (WI.Animation.prototype.get displayName): (WI.Animation.prototype.requestEffectTarget): (WI.Animation.prototype.effectChanged): (WI.Animation.prototype.targetChanged): (WI.Animation.prototype._updateEffect):
- UserInterface/Protocol/RemoteObject.js: (WI.RemoteObject.resolveAnimation): Added.
- UserInterface/Views/GraphicsTabContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js. (WI.GraphicsTabContentView): (WI.GraphicsTabContentView.tabInfo): (WI.GraphicsTabContentView.isTabAllowed): (WI.GraphicsTabContentView.prototype.get type): (WI.GraphicsTabContentView.prototype.showRepresentedObject): Added. (WI.GraphicsTabContentView.prototype.canShowRepresentedObject): (WI.GraphicsTabContentView.prototype.closed): (WI.GraphicsTabContentView.prototype.attached): (WI.GraphicsTabContentView.prototype.detached): (WI.GraphicsTabContentView.prototype.initialLayout): Added. (WI.GraphicsTabContentView.prototype._handleOverviewTreeOutlineSelectionDidChange): Added.
- UserInterface/Views/GraphicsTabContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.css.
Rename the Canvas Tab to Graphics Tab and display four sections:
- Canvases
- Web Animations
- CSS Animations
- CSS Transitions
- UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype.canShowRepresentedObject):
Only appear if a
WI.CanvasorWI.Recordingis selected.
- UserInterface/Views/GraphicsOverviewContentView.js: Added. (WI.GraphicsOverviewContentView): (WI.GraphicsOverviewContentView.prototype.get supplementalRepresentedObjects): (WI.GraphicsOverviewContentView.prototype.get navigationItems): (WI.GraphicsOverviewContentView.prototype.attached): (WI.GraphicsOverviewContentView.prototype.detached): (WI.GraphicsOverviewContentView.prototype.initialLayout): (WI.GraphicsOverviewContentView.prototype.dropZoneShouldAppearForDragEvent): (WI.GraphicsOverviewContentView.prototype.dropZoneHandleDrop): (WI.GraphicsOverviewContentView.prototype._handleRefreshButtonClicked): (WI.GraphicsOverviewContentView.prototype._handleShowGridButtonClicked): (WI.GraphicsOverviewContentView.prototype._handleShowImageGridSettingChanged): (WI.GraphicsOverviewContentView.prototype._handleImportButtonNavigationItemClicked): (WI.GraphicsOverviewContentView.prototype._handleOverviewViewSelectedItemChanged): (WI.GraphicsOverviewContentView.prototype._handleOverviewViewSupplementalRepresentedObjectsDidChange): (WI.GraphicsOverviewContentView.prototype._handleClick):
- UserInterface/Views/GraphicsOverviewContentView.css: Added. (.content-view.graphics-overview): (.content-view.graphics-overview > section): (.content-view.graphics-overview > section:not(:first-child)): (.content-view.graphics-overview > section > .header): (.content-view.graphics-overview > section:not(:first-of-type) > .header): (.content-view.graphics-overview > section > .header > h1): (.content-view.graphics-overview > section > .header > .navigation-bar): (.content-view.graphics-overview > .content-view.canvas-overview): (@media (prefers-color-scheme: light) .content-view.graphics-overview): (@media (prefers-color-scheme: light) .content-view.graphics-overview > section > .header): Add sticky headers for each of the sections described above.
- UserInterface/Views/AnimationCollectionContentView.js: Added. (WI.AnimationCollectionContentView): (WI.AnimationCollectionContentView.prototype.handleRefreshButtonClicked): (WI.AnimationCollectionContentView.prototype.contentViewAdded): (WI.AnimationCollectionContentView.prototype.contentViewRemoved): (WI.AnimationCollectionContentView.prototype.detached): (WI.AnimationCollectionContentView.prototype._handleContentViewMouseEnter): (WI.AnimationCollectionContentView.prototype._handleContentViewMouseLeave):
- UserInterface/Views/AnimationCollectionContentView.css: Added. (.content-view.animation-collection):
- UserInterface/Views/AnimationContentView.js: Added. (WI.AnimationContentView): (WI.AnimationContentView.get previewHeight): (WI.AnimationContentView.prototype.handleRefreshButtonClicked): (WI.AnimationContentView.prototype.initialLayout): (WI.AnimationContentView.prototype.layout): (WI.AnimationContentView.prototype.sizeDidChange): (WI.AnimationContentView.prototype.attached): (WI.AnimationContentView.prototype.detached): (WI.AnimationContentView.prototype._refreshSubtitle): (WI.AnimationContentView.prototype._refreshPreview.addTitle): (WI.AnimationContentView.prototype._refreshPreview): (WI.AnimationContentView.prototype._handleEffectChanged): (WI.AnimationContentView.prototype._handleTargetChanged): (WI.AnimationContentView.prototype._populateAnimationTargetButtonContextMenu):
- UserInterface/Views/AnimationContentView.css: Added. (.content-view.animation): (.content-view.animation.selected): (.content-view.animation > header): (.content-view.animation > header > .titles): (.content-view.animation > header > .titles > .title): (.content-view.animation > header > .titles > .subtitle): (.content-view.animation > header > .titles > .subtitle:not(:empty)::before): (.content-view.animation > header > .navigation-bar): (.content-view.animation:hover > header > .navigation-bar): (.content-view.animation > .preview): (.content-view.animation > .preview > svg): (body[dir=rtl] .content-view.animation > .preview > svg): (.content-view.animation > .preview > svg rect): (.content-view.animation > .preview > svg > .delay line): (.content-view.animation > .preview > svg > .active path): (.content-view.animation > .preview > svg > .active circle): (.content-view.animation > .preview > svg > .active line): (.content-view.animation > .preview > span): (@media (prefers-color-scheme: dark) .content-view.animation > header > .titles > .title): (@media (prefers-color-scheme: dark) .content-view.animation > header > .titles > .subtitle): (@media (prefers-color-scheme: dark) .content-view.animation > .preview): Visualize the start/end delay and keyframes of the given animation as a series of bezier curves separated by markers.
- UserInterface/Views/AnimationDetailsSidebarPanel.js: Added. (WI.AnimationDetailsSidebarPanel): (WI.AnimationDetailsSidebarPanel.prototype.inspect): (WI.AnimationDetailsSidebarPanel.prototype.get animation): (WI.AnimationDetailsSidebarPanel.prototype.set animation): (WI.AnimationDetailsSidebarPanel.prototype.initialLayout): (WI.AnimationDetailsSidebarPanel.prototype.layout): (WI.AnimationDetailsSidebarPanel.prototype._refreshIdentitySection): (WI.AnimationDetailsSidebarPanel.prototype._refreshEffectSection): (WI.AnimationDetailsSidebarPanel.prototype._refreshBacktraceSection): (WI.AnimationDetailsSidebarPanel.prototype._handleAnimationEffectChanged): (WI.AnimationDetailsSidebarPanel.prototype._handleAnimationTargetChanged): (WI.AnimationDetailsSidebarPanel.prototype._handleDetailsSectionCollapsedStateChanged):
- UserInterface/Views/AnimationDetailsSidebarPanel.css: Added. (.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .header > .subtitle): (.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section): (.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section .row.styles): (.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section .row.styles .CodeMirror): (.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section): Show collected information about the selected animation, its effect, and its target.
- UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager):
(WI.CanvasManager.prototype.get canvasCollection): Added.
(WI.CanvasManager.prototype.disable):
(WI.CanvasManager.prototype.canvasAdded):
(WI.CanvasManager.prototype.canvasRemoved):
(WI.CanvasManager.prototype._saveRecordings): Added.
(WI.CanvasManager.prototype._mainResourceDidChange):
(WI.CanvasManager.prototype.get canvases): Deleted.
(WI.CanvasManager.prototype._removeCanvas): Deleted.
Rather than have the
WI.CanvasTabContentViewmainain theWI.CanvasCollectionand have to listen for events from theWI.CanvasManager, just have theWI.CanvasManagerhold on to it instead and provide a getter for it.
- UserInterface/Views/CanvasOverviewContentView.js: (WI.CanvasOverviewContentView): (WI.CanvasOverviewContentView.prototype.get navigationItems): (WI.CanvasOverviewContentView.prototype.handleRefreshButtonClicked): (WI.CanvasOverviewContentView.prototype.contentViewAdded): (WI.CanvasOverviewContentView.prototype.contentViewRemoved): (WI.CanvasOverviewContentView.prototype.attached): (WI.CanvasOverviewContentView.prototype.detached): (WI.CanvasOverviewContentView.prototype._addSavedRecording): (WI.CanvasOverviewContentView.prototype.hidden): Deleted. (WI.CanvasOverviewContentView.prototype.get _itemMargin): Deleted. (WI.CanvasOverviewContentView.prototype._refreshPreviews): Deleted. (WI.CanvasOverviewContentView.prototype._updateNavigationItems): Deleted. (WI.CanvasOverviewContentView.prototype._showGridButtonClicked): Deleted. (WI.CanvasOverviewContentView.prototype._updateShowImageGrid): Deleted.
- UserInterface/Views/CanvasOverviewContentView.css: (.content-view.canvas-overview): (.content-view.canvas-overview > .content-view.canvas): (@media (prefers-color-scheme: dark) .content-view.canvas-overview): Deleted.
- UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView):
(WI.CanvasContentView.prototype.handleRefreshButtonClicked): Added.
(WI.CanvasContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.CanvasContentView.prototype.dropZoneHandleDrop): Added.
(WI.CanvasContentView.prototype.initialLayout):
(WI.CanvasContentView.prototype.attached):
(WI.CanvasContentView.prototype._populateCanvasElementButtonContextMenu):
(WI.CanvasContentView.prototype.shown): Deleted.
Move the "Log Canvas Context" to be the first item in the canvas element button context menu.
Drive-by: add a
WI.DropZoneViewfor when recording JSON files are dragged on top.
- UserInterface/Views/CanvasContentView.css:
Drive-by: drop
:not(.tab)from all selectors since the Canvas Tab doesn't exist anymore.
- UserInterface/Views/CollectionContentView.js: (WI.CollectionContentView): (WI.CollectionContentView.prototype.get selectedItem): Added. (WI.CollectionContentView.prototype.set selectedItem): Added. (WI.CollectionContentView.prototype.addContentViewForItem): (WI.CollectionContentView.prototype.removeContentViewForItem): (WI.CollectionContentView.prototype.showContentPlaceholder): (WI.CollectionContentView.prototype.initialLayout): (WI.CollectionContentView.prototype._selectItem): (WI.CollectionContentView.prototype._handleClick): Added. (WI.CollectionContentView.prototype.setSelectedItem): Deleted.
- UserInterface/Views/CollectionContentView.css: (.content-view.collection > .placeholder:not(.message-text-view)): Added. (.content-view.collection .resource.image img): Deleted. (.content-view.collection .resource.image img:hover): Deleted. When selection is enabled, clicking outside of any of the content views should dismiss the current selection. Clients should also be able to get the currently selected item.
- UserInterface/Views/DetailsSectionSimpleRow.js:
(WI.DetailsSectionSimpleRow.prototype.set value):
Ensure that
0is considered as a valid value.
- UserInterface/Base/Main.js: (WI.loaded): (WI.contentLoaded): (WI.tabContentViewClassForRepresentedObject):
- UserInterface/Views/ContentView.js:
(WI.ContentView.createFromRepresentedObject):
(WI.ContentView.isViewable):
Allow
WI.Animationto be viewable.
- UserInterface/Views/Main.css:
(.navigation-item-help): Added.
(.navigation-item-help > .navigation-bar): Added.
(.navigation-item-help > .navigation-bar > .item): Added.
(.message-text-view .navigation-item-help): Deleted.
(.message-text-view .navigation-item-help .navigation-bar): Deleted.
(.message-text-view .navigation-item-help .navigation-bar > .item): Deleted.
Allow
WI.createNavigationItemHelpto be used independently ofWI.createMessageTextView.
- UserInterface/Controllers/DOMManager.js: (WI.DOMManager.prototype.nodeForId):
- UserInterface/Controllers/TimelineManager.js: (WI.TimelineManager.prototype.animationTrackingUpdated):
- UserInterface/Models/AuditTestCaseResult.js: (WI.AuditTestCaseResult.async fromPayload): Add a fallback so callers don't need to.
- UserInterface/Views/ResourceCollectionContentView.js: (WI.ResourceCollectionContentView):
- UserInterface/Views/ResourceCollectionContentView.css: (.content-view.resource-collection > .resource.image img): Added. (.content-view.resource-collection > .resource.image img:hover): Added. Drive-by: move these styles to the right file and make them more specific.
- UserInterface/Models/Canvas.js: (WI.Canvas.displayNameForContextType):
- UserInterface/Models/Recording.js: (WI.Recording.displayNameForRecordingType): Added. Drive-by: fix localized strings.
- UserInterface/Views/RecordingContentView.css:
Drive-by: drop
:not(.tab)from all selectors since the Recording Tab doesn't exist anymore.
- UserInterface/Main.html:
- UserInterface/Images/Graphics.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/Canvas.svg.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Test.html:
- UserInterface/Test/Test.js: (WI.loaded):
- UserInterface/Test/TestHarness.js:
(TestHarness.prototype.expectEmpty): Added.
(TestHarness.prototype.expectNotEmpty): Added.
(TestHarness.prototype._expectationMessageFormat):
(TestHarness.prototype._expectedValueFormat):
Add utility function for checking whether the given value is empty:
- Array
length === 0 - String
length === 0 - Set
size === 0 - Map
size === 0 - Object
isEmptyObject
- Array
Any other type will automatically fail, as non-objects can't be "empty" (e.g.
42).
LayoutTests:
- inspector/animation/effectChanged.html: Added.
- inspector/animation/effectChanged-expected.txt: Added.
- inspector/animation/lifecycle-css-animation.html: Added.
- inspector/animation/lifecycle-css-animation-expected.txt: Added.
- inspector/animation/lifecycle-css-transition.html: Added.
- inspector/animation/lifecycle-css-transition-expected.txt: Added.
- inspector/animation/lifecycle-web-animation.html: Added.
- inspector/animation/lifecycle-web-animation-expected.txt: Added.
- inspector/animation/requestEffectTarget.html: Added.
- inspector/animation/requestEffectTarget-expected.txt: Added.
- inspector/animation/resolveAnimation.html: Added.
- inspector/animation/resolveAnimation-expected.txt: Added.
- inspector/animation/targetChanged.html: Added.
- inspector/animation/targetChanged-expected.txt: Added.
- inspector/animation/resources/lifecycle-utilities.js: Added. (createAnimation): (destroyAnimations): (InspectorTest.AnimationLifecycleUtilities.async awaitAnimationCreated): (InspectorTest.AnimationLifecycleUtilities.async awaitAnimationDestroyed): (InspectorTest.AnimationLifecycleUtilities.async createAnimation): (InspectorTest.AnimationLifecycleUtilities.async destroyAnimations):
- inspector/canvas/create-context-webgpu.html:
- inspector/canvas/resources/create-context-utilities.js: (destroyCanvases): (awaitCanvasAdded): (InspectorTest.CreateContextUtilities.initializeTestSuite):
- inspector/canvas/context-attributes.html:
- inspector/canvas/extensions.html:
- inspector/canvas/memory.html:
- inspector/canvas/requestClientNodes.html:
- inspector/canvas/requestContent-2d.html:
- inspector/canvas/requestContent-bitmaprenderer.html:
- inspector/canvas/requestContent-webgl.html:
- inspector/canvas/requestContent-webgl2.html:
- inspector/canvas/requestNode.html:
- inspector/canvas/resolveContext-2d.html:
- inspector/canvas/resolveContext-bitmaprenderer.html:
- inspector/canvas/resolveContext-webgl.html:
- inspector/canvas/resolveContext-webgl2.html:
- inspector/canvas/resolveContext-webgpu.html:
- inspector/canvas/recording.html:
- inspector/canvas/setRecordingAutoCaptureFrameCount.html:
- inspector/canvas/resources/recording-utilities.js: (window.getCanvas):
- inspector/canvas/shaderProgram-add-remove-webgpu.html:
- inspector/canvas/updateShader-webgpu-sharedVertexFragment.html:
- inspector/canvas/resources/shaderProgram-utilities-webgpu.js:
- inspector/canvas/resources/shaderProgram-utilities-webgl.js: (deleteContext): (whenProgramAdded): (window.initializeTestSuite): (window.addParentCanvasRemovedTestCase):
- inspector/unit-tests/test-harness-expect-functions.html:
- inspector/unit-tests/test-harness-expect-functions-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:13 PM Changeset in webkit [255858] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/animation/WebAnimation.cpp
Fix speculative merge conflict resolution. rdar://problem/59097789
- 2:11 PM Changeset in webkit [255857] by
-
- 2 edits in trunk/Tools
results.webkit.org: Apply ttl to archive shards
https://bugs.webkit.org/show_bug.cgi?id=207295
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/model/archive_context.py:
(ArchiveContext.ArchiveMetaDataByCommit): Use new table.
(ArchiveContext.ArchiveChunks): Use new table.
(ArchiveContext.register): Add ttl to archive shards.
- 2:05 PM Changeset in webkit [255856] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r255821) [ 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
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:03 PM Changeset in webkit [255855] by
-
- 2 edits in trunk/Source/WebKit
[IPC hardening] Protect against m_inspectorPage being null inWebInspectorProxy::attach()
https://bugs.webkit.org/show_bug.cgi?id=207289
<rdar://problem/58419789>
Reviewed by David Kilzer.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::attach):
- 2:02 PM Changeset in webkit [255854] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against m_inspectorPage being null in WebInspectorProxy::detach()
https://bugs.webkit.org/show_bug.cgi?id=207286
<rdar://problem/55422296>
Reviewed by David Kilzer.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::detach):
- 2:00 PM Changeset in webkit [255853] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/dot-expressions.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207294
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 1:42 PM Changeset in webkit [255852] by
-
- 3 edits in trunk/Source/WebKit
Update sandbox to allow communication with dnssd service
https://bugs.webkit.org/show_bug.cgi?id=207276
<rdar://problem/59158405>
Reviewed by Per Arne Vollan.
Testing and telemetry indicates that we need access to the DNSSD mach service in our Network Process
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 1:37 PM Changeset in webkit [255851] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against null String under WebInspectorProxy::save() / WebInspectorProxy::append()
https://bugs.webkit.org/show_bug.cgi?id=207284
<rdar://problem/55271616>
Reviewed by David Kilzer.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::save):
(WebKit::WebInspectorProxy::append):
- 1:30 PM Changeset in webkit [255850] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against m_inspectorPage being null in WebInspectorProxy::setAttachedWindowHeight() / setAttachedWindowWidth()
https://bugs.webkit.org/show_bug.cgi?id=207287
<rdar://problem/55422919>
Reviewed by Geoffrey Garen.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::setAttachedWindowHeight):
(WebKit::WebInspectorProxy::setAttachedWindowWidth):
- 1:28 PM Changeset in webkit [255849] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against m_inspectedPage / m_inspectorPage being null in WebInspectorProxy::resetState()
https://bugs.webkit.org/show_bug.cgi?id=207285
<rdar://problem/55420035>
Reviewed by David Kilzer.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::resetState):
- 1:27 PM Changeset in webkit [255848] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against bad RegistrableDomain under WebProcessProxy::didCollectPrewarmInformation()
https://bugs.webkit.org/show_bug.cgi?id=207281
<rdar://problem/55318108>
Reviewed by Geoffrey Garen.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didCollectPrewarmInformation):
- 1:26 PM Changeset in webkit [255847] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Protect against bad ClientOrigin under Engine::readCachesFromDisk()
https://bugs.webkit.org/show_bug.cgi?id=207280
<rdar://problem/59013832>
Reviewed by Geoffrey Garen.
Protect against bad ClientOrigin under Engine::readCachesFromDisk(), as it is coming from
IPC from the WebContent process.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::readCachesFromDisk):
- 1:07 PM Changeset in webkit [255846] by
-
- 38 edits in trunk
Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
https://bugs.webkit.org/show_bug.cgi?id=207207
Reviewed by Chris Dumez.
Source/WebCore:
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::includeCertificateInfo const):
- platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::usedLegacyTLS const):
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):
Source/WebKit:
In PageLoadState::didCommitLoad, I was resetting the value of _negotiatedLegacyTLS to false.
That created a race condition when loading the main resource because the NetworkProcess would
message the UIProcess setting _negotiatedLegacyTLS to false, while the NetworkProcess would
message the WebProcess which would message the UIProcess to call PageLoadState::didCommitLoad
which would reset it to false. Now it resets it to the correct value, whatever it is.
Updating the ResourceResponseBase serialization code has the desirable side effect that the disk
cache will remember whether legacy TLS was used to fetch each resource. This will make it so
_negotiatedLegacyTLS is true if we read content from the disk cache that was originally fetched
using legacy TLS.
In order to not increase the memory footprint of ResourceResponse, I changed m_httpStatusCode from
an int to a short. It just needs to be able to cover the values 0-600 or so, which really only needs 10 bits.
Covered by new API tests.
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::negotiatedLegacyTLS const): Deleted.
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTaskClient::negotiatedLegacyTLS const): Deleted.
- NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::throttleDelayCompleted):
(WebKit::NetworkLoad::negotiatedLegacyTLS const): Deleted.
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::didReceiveResponse):
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
- UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::didCommitLoad):
- UIProcess/PageLoadState.h:
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::didCommitLoadForFrame):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Source/WTF:
- wtf/persistence/PersistentDecoder.cpp:
(WTF::Persistence::Decoder::decode):
- wtf/persistence/PersistentDecoder.h:
- wtf/persistence/PersistentEncoder.cpp:
(WTF::Persistence::Encoder::encode):
- wtf/persistence/PersistentEncoder.h:
Tools:
HTTPServer now supports HTTPS. Tell your friends!
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(testCertificate):
(testIdentity):
(credentialWithIdentity):
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::webViewWithNavigationDelegate):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.h:
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::HTTPServer::request const):
- 1:05 PM Changeset in webkit [255845] by
-
- 16 edits in trunk
_WKDownload should expose the originating FrameInfo.
<rdar://problem/58022576> and https://bugs.webkit.org/show_bug.cgi?id=207185
Patch by Brady Eidson <beidson@apple.com> on 2020-02-05
Reviewed by Geoff Garen.
Source/WebKit:
Covered by new API test.
For the cases where a navigation is converted into a download, include the relevant
WKFrameInfo on the _WKDownload object.
- UIProcess/API/APIFrameInfo.h:
- UIProcess/API/Cocoa/_WKDownload.h:
- UIProcess/API/Cocoa/_WKDownload.mm:
(-[_WKDownload originatingFrameInfo]):
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::generateDownloadID):
(WebKit::DownloadProxy::DownloadProxy):
(WebKit::DownloadProxy::create): Deleted.
(WebKit::DownloadProxy::setOriginatingPage): Deleted.
- UIProcess/Downloads/DownloadProxy.h:
(WebKit::DownloadProxy::create):
(WebKit::DownloadProxy::frameInfo):
- UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
- UIProcess/Downloads/DownloadProxyMap.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::createDownloadProxy):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedPolicyDecision):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::download):
(WebKit::WebProcessPool::resumeDownload):
(WebKit::WebProcessPool::createDownloadProxy):
- UIProcess/WebProcessPool.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(-[DownloadTestSchemeDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[DownloadSecurityOriginDelegate _downloadDidStart:]):
(loaded):
- TestWebKitAPI/cocoa/HTTPServer.mm:
- 12:51 PM Changeset in webkit [255844] by
-
- 10 edits in branches/safari-609-branch/Source/WebCore
Revert r255770. rdar://problem/58942734
- 12:08 PM Changeset in webkit [255843] by
-
- 2 edits in trunk/LayoutTests
Regression: [ Mac Debug wk2 ] http/tests/websocket/tests/hybi/server-close.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207269
Unreviewed test gardening.
Updated test expectations.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 11:59 AM Changeset in webkit [255842] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/WebPage.h
Unreviewed build fix. rdar://problem/58942727
- 11:58 AM Changeset in webkit [255841] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Fix MacCatalyst build.
- src/libANGLE/validationEGL.cpp:
(egl::ValidateCreatePbufferFromClientBuffer):
- 11:53 AM Changeset in webkit [255840] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r228901): Layout Test http/tests/appcache/abort-cache-onprogress.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=183684
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 11:48 AM Changeset in webkit [255839] by
-
- 3 edits2 adds in trunk
AX: replaceTextInRange should handle when called on the WebArea element
https://bugs.webkit.org/show_bug.cgi?id=207242
<rdar://problem/59173196>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: accessibility/mac/replace-text-with-range-on-webarea-element.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::replaceTextInRange):
LayoutTests:
- accessibility/mac/replace-text-with-range-on-webarea-element-expected.txt: Added.
- accessibility/mac/replace-text-with-range-on-webarea-element.html: Added.
- 11:48 AM Changeset in webkit [255838] by
-
- 14 edits5 deletes in branches/safari-609.1.16-branch
Cherry-pick r255189. rdar://problem/59196094
Unreviewed, revert r253984 as it appears to be causing assertion leaks.
https://bugs.webkit.org/show_bug.cgi?id=205687
Source/WebKit:
- Configurations/WebKit.xcconfig:
- Platform/spi/ios/RunningBoardServicesSPI.h: Removed.
- Scripts/process-entitlements.sh:
- Shared/DependencyProcessAssertion.cpp: Removed.
- Shared/DependencyProcessAssertion.h: Removed.
- Shared/NativeWebTouchEvent.h:
- Shared/ios/DependencyProcessAssertionIOS.mm: Removed.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::processWasResumed):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeConnection):
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::processTaskStateDidChange): (WebKit::WebProcess::releaseProcessWasResumedAssertions):
WebKitLibraries:
- WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [255837] by
-
- 15 edits1 copy3 moves7 adds1 delete in branches/safari-609.1.16-branch
Cherry-pick r255383. rdar://problem/59195978
[Web Animations] Animations should run accelerated even if other animations targeting the same element are not accelerated
https://bugs.webkit.org/show_bug.cgi?id=206890
<rdar://problem/58961750>
Reviewed by Simon Fraser.
Source/WebCore:
Test: webanimations/width-and-opacity-separate-animation-yields-compositing.html
In the Web Animations implementation, when an element has some animated properties that can be accelerated and some that cannot be, we would never
run accelerated animations at all. However, in the "legacy" animation engine, we would animate properties that can be acclerated if possible.
We now attempt to run accelerated animations provided at least one animation is accelerated.
To do that, we now keep track of whether none, some or all of the animated properties of a given KeyframeEffect are accelerated using the new
m_acceleratedPropertiesState instance variable. We compute this property when creating the blending keyframes for the effect.
Then, as time progresses and the effect is resolved, updateAcceleratedActions() is called and we simply use the effect's phase to determine
whether we need to enqueue actions to start, pause, seek or end accelerated animations. This is an improvement over how this method used to work
since we would run accelerated animations while in their delay phase, which did not match the "legacy" animation engine's behavior.
We've also removed the single method that provided the accelerated characteristics of a KeyframeEffect, isAccelerated(), with a few more methods:
- isRunningAccelerated(): the effect is currently running accelerated animations.
- isAboutToRunAccelerated(): the effect has pending accelerated actions that should make it run accelerated animations when accelerated actions are updated next.
- isCompletelyAccelerated(): the effect animates only accelerated properties.
- isCurrentlyAffectingProperty(property, accelerated): the effect is currently animating the given property, with the option to specify whether that animation is accelerated.
We use this information in a few new places. If an effect returns true for either isRunningAccelerated() or isAboutToRunAccelerated() when
Element::applyKeyframeEffects() is called, we set the AnimationImpact::RequiresRecomposite flag. In RenderLayerCompositor::requiresCompositingForAnimation(),
if an effect returns true for isCurrentlyAffectingProperty() with the accelerated flag set to true, the method returns true, matching the logic
used by the "legacy" animation engine.
All in all, this better aligns the behavior of the "legacy" and Web Animations engines to run accelerated animations in the same circumstances.
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty): Use KeyframeEfffect::isRunningAccelerated() instead of KeyframeEffect::isAccelerated().
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::isRunningAcceleratedAnimationOnRenderer const): Use KeyframeEffect::isCurrentlyAffectingProperty() instead of checking both isRunningAccelerated() and manually looking at the effect's animated properties.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::setBlendingKeyframes): Call computeAcceleratedPropertiesState() instead of the now-defunct computeShouldRunAccelerated(). (WebCore::KeyframeEffect::apply): Keep track of the newly computed phase so that we may use it in the new isCurrentlyAffectingProperty() without having to recompute it on each call. (WebCore::KeyframeEffect::isCurrentlyAffectingProperty const): Indicates whether a given property is currently animated (active phase) with the option to specify whether that animation is accelerated. (WebCore::KeyframeEffect::computeAcceleratedPropertiesState): Compute whether none, some or all of the animated properties of the given effect can be accelerated. (WebCore::KeyframeEffect::updateAcceleratedActions): Use the phase to determine which accelerated actions to enqueue. (WebCore::KeyframeEffect::animationDidSeek): Use the new m_isRunningAccelerated state to determine whether the animation is presently running accelerated. (WebCore::KeyframeEffect::animationWasCanceled): Use the new m_isRunningAccelerated state to determine whether the animation is presently running accelerated. (WebCore::KeyframeEffect::animationSuspensionStateDidChange): Use the new m_isRunningAccelerated state to determine whether the animation is presently running accelerated. (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
- animation/KeyframeEffect.h: (WebCore::KeyframeEffect::isRunningAccelerated const): (WebCore::KeyframeEffect::isAboutToRunAccelerated const): (WebCore::KeyframeEffect::isCompletelyAccelerated const):
- animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const): Indicates whether any of the effects in the stack animates a given property, with the option to specify whether the animation should be accelerated.
- animation/KeyframeEffectStack.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::effectTargetDidChange): Ensure we schedule an animation update if an effect is no longer animating a given element or newly animating an element, to ensure that replaced animations may be removed. (WebCore::WebAnimation::isCompletelyAccelerated const): Convenience function to call isCompletelyAccelerated() on the animation's effect. (WebCore::WebAnimation::computeRelevance): Check the replaced state when computing relevance. (WebCore::WebAnimation::timeToNextTick const): Schedule an immediate update if a given animation is not _completely_ accelerated.
- animation/WebAnimation.h:
- dom/Element.cpp: (WebCore::Element::keyframeEffectStack const): (WebCore::Element::applyKeyframeEffects): Set the AnimationImpact::RequiresRecomposite flag when the animation is either currently running accelerated or expected to be in the next accelerated animation update.
- dom/Element.h:
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingForAnimation const): Use the same logic as for the "legacy" animation engine to determine whether an animation requires compositing using the new KeyframeEffect::isCurrentlyAffectingProperty() method. (WebCore::RenderLayerCompositor::isRunningTransformAnimation const): Refactor some code to use the new KeyframeEffect::isCurrentlyAffectingProperty() method.
LayoutTests:
Update some tests that assumed a mix of accelerated and non-accelerated properties would not yield accelerated animations.
We also make some WK1-specific expectation due to compositing being disabled when opacity is the only potentially-accelerated
property to be animated.
- platform/mac-wk1/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Added.
- platform/mac-wk1/webanimations/opacity-animation-yields-compositing-expected.txt: Added.
- platform/mac-wk1/webanimations/opacity-animation-yields-compositing-span-expected.txt: Added.
- platform/mac-wk1/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.
- platform/mac-wk1/webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
- webanimations/left-and-opacity-animation-yields-no-compositing-expected.txt: Removed.
- webanimations/partly-accelerated-transition-by-removing-property-expected.txt:
- webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
- webanimations/width-and-opacity-separate-animation-yields-compositing.html: Renamed from LayoutTests/webanimations/left-and-opacity-animation-yields-no-compositing.html.
- webanimations/width-and-opacity-separate-animation-yields-no-compositing-expected.txt: Removed.
- webanimations/width-and-opacity-separate-animation-yields-no-compositing.html: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:35 AM Changeset in webkit [255836] by
-
- 2 edits in branches/safari-609.1.16-branch/Source/WebCore
Cherry-pick r255489. rdar://problem/59195660
[Web Animations] DocumentTimeline shouldn't suspend itself if hiddenPageCSSAnimationSuspensionEnabled is disabled
https://bugs.webkit.org/show_bug.cgi?id=207014
<rdar://problem/58815952>
Reviewed by Antti Koivisto.
We suspend a timeline upon consutrction if we know that the page is not visible because, unlike CSSAnimationController, the DocumentTimeline is not guaranteed
to be created by the time the Page sets the initial visibility state. This is because DocumentTimeline is created as needed when there are CSS Animations or CSS
Transitions created for the page, or if the content uses any of the Web Animations APIs.
However, the Page::setIsVisibleInternal() function that would call DocumentTimeline::resumeAnimations() at a later time checks whether the hiddenPageCSSAnimationSuspensionEnabled
setting is enabled. So we must respect that setting also when suspending animations in the first place or we risk ending up in a state where we suspend animations
because the page is not visible upon timeline creation, but never resuming animations later due to the hiddenPageCSSAnimationSuspensionEnabled setting being false.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::DocumentTimeline):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:35 AM Changeset in webkit [255835] by
-
- 7 edits in branches/safari-609.1.16-branch
Cherry-pick r255141. rdar://problem/59195660
[Web Animations] Update all DocumentTimeline objects when updating animations
https://bugs.webkit.org/show_bug.cgi?id=206819
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark a single new WPT progression.
- web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt:
Source/WebCore:
Developers can create additional DocumentTimeline objects in JavaScript using that class's constructor, and an animation can be
assigned to that timeline after its creation. Until now we would only update an timeline created by a Document when that document's
animations were updated. Now we keep track of all DocumentTimeline objects that are created for a given Document as a vector of weak
references, and we update all of them when updating a document's animations.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::DocumentTimeline): (WebCore::DocumentTimeline::~DocumentTimeline):
- animation/DocumentTimeline.h:
- dom/Document.cpp: (WebCore::Document::updateAnimationsAndSendEvents): (WebCore::Document::addTimeline): (WebCore::Document::removeTimeline):
- dom/Document.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:31 AM Changeset in webkit [255834] by
-
- 8 edits in branches/safari-609.1.16-branch/Source
Versioning.
- 11:28 AM Changeset in webkit [255833] by
-
- 1 copy in branches/safari-609.1.16-branch
New branch.
- 11:14 AM Changeset in webkit [255832] by
-
- 4 edits8 adds in trunk/LayoutTests
Improve stability of webrtc/video-autoplay.html by splitting tests in multiple files
https://bugs.webkit.org/show_bug.cgi?id=207252
Reviewed by Eric Carlson.
webrtc/video-autplay.html is flaky on bots.
On debug bots, removing the video element from the DOM does not always pause it in a timely manner.
To improve reliability, we split tests in individual files.
Removing flakiness expectation from video-autoplay.html since it no longer contains the flaky tests.
- TestExpectations:
- webrtc/video-autoplay-expected.txt:
- webrtc/video-autoplay.html:
- webrtc/video-autoplay1-expected.txt: Added.
- webrtc/video-autoplay1.html: Added.
- webrtc/video-autoplay2-expected.txt: Added.
- webrtc/video-autoplay2.html: Added.
- webrtc/video-autoplay3-expected.txt: Added.
- webrtc/video-autoplay3.html: Added.
- webrtc/video-autoplay4-expected.txt: Added.
- webrtc/video-autoplay4.html: Added.
- 11:10 AM Changeset in webkit [255831] by
-
- 2 edits1 add in trunk/Tools
[GTK] Fix dependencies build
https://bugs.webkit.org/show_bug.cgi?id=207273
Reviewed by Carlos Garcia Campos.
- gtk/jhbuild.modules: Bumped wpebackend-fdo version to 1.4.1 and
added mesa as one of its deps. Added the xserver patch as well.
- gtk/patches/xserver-gl-version.patch: Added.
- 10:38 AM Changeset in webkit [255830] by
-
- 2 edits8 adds in trunk/LayoutTests
[GTK] Gardening, new baselines and update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=207259
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Added.
- platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Added.
- platform/gtk/webanimations/opacity-animation-yields-compositing-expected.txt: Added.
- platform/gtk/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.
- platform/gtk/webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
- 10:37 AM Changeset in webkit [255829] by
-
- 10 edits in trunk/Source/bmalloc
[bmalloc] Add declspec support for export macros
https://bugs.webkit.org/show_bug.cgi?id=207158
Reviewed by Yusuke Suzuki.
Add a check for has_declspec_attribute which is a Clang extension for Microsoft
style declspec attributes in BCompiler.h. Then use that check within BPlatform.h
to determine if declspec or visibility("default") should be used for the export
macros.
The BExport.h file was then expanded to properly implement declspec definitions
for export and import. Libraries that could be compiled statically in WebKit have
a STATICALLY_LINKED_WITH_${library} definition for when they're compiled statically
and later exposed through a different shared library. In practice though this is
really only needed when declspec is used since this is the only case where the
import and export declarations differ.
The BEXPORT on StaticPerProcess resulted in undefined symbol errors when WebCore
was linked. Specifically IsoSharedHeap::getFastCase and IsoSharedHeap::getSlowCase
which is a subclass. It appears that Storage was the only one required to be
exported. This only appeared due to how declspec requires exports and imports
to be defined differently.
Also added support for export macros on PlayStation in the BPlatform.h file and
fixed any exports for that platform when building.
- CMakeLists.txt:
- bmalloc/Allocator.h:
- bmalloc/AvailableMemory.h:
- bmalloc/BCompiler.h:
- bmalloc/BExport.h:
- bmalloc/BPlatform.h:
- bmalloc/Cache.h:
- bmalloc/IsoTLS.h:
- bmalloc/StaticPerProcess.h:
- 10:24 AM Changeset in webkit [255828] by
-
- 2 edits in trunk/LayoutTests
[ iPadOS wk2 Debug ] compositing/shared-backing/sharing-child-contributes-to-overlap.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207274
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/ipad/TestExpectations:
- 10:22 AM Changeset in webkit [255827] by
-
- 2 edits in trunk/Source/WebKit
[macCatalyst] IBeam cursor doesn't show up when hovering over text form controls prior to editing
https://bugs.webkit.org/show_bug.cgi?id=207268
<rdar://problem/59188152>
Reviewed by Tim Horton.
On macCatalyst, when hovering over textareas and input fields that have not been edited yet, the cursor fails to
change to an IBeam and instead falls back to the default style. Even thoughEventHandler::selectCursor()
returnsIBeam, we end up not actually using an IBeam because the position information'slineCaretExtentis
an empty rect, which means the caret height is 0 and, more importantly, the line rect will not contain the
request point.
The line rect is empty in text fields that have not been edited yet because the form control's inner plaintext
contenteditable div (embedded in the shadow root) does not contain any child renderers with a non-zero height.
Even if it did, however, the element may still be much taller than the combined height of the inner div's
children, so the line rect may still not contain the position information request point (this is most easily
noticeable when focusing a textarea, typing a few letters, and then moving the cursor to near the bottom of the
textarea element).
To fix this, add a fallback path for the scenario where we want to show an IBeam, but fail to find line rects
that contain the request point. Instead, we still show an IBeam, but simply fake the lineCaretExtent to be an
element-wide rect that is the height of the caret, and is also vertically centered about the request point.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::populateCaretContext):
- 10:12 AM WebKitGTK/2.26.x edited by
- (diff)
- 10:08 AM Changeset in webkit [255826] by
-
- 2 edits in trunk/Tools
REGRESSION(r255595): page not closed after beforeunload handler returns true
https://bugs.webkit.org/show_bug.cgi?id=207189
<rdar://problem/59149593>
Reviewed by Youenn Fablet.
Add API test coverage for fix landed in r255677.
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
(-[SlowBeforeUnloadPromptUIDelegate _webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- 10:08 AM Changeset in webkit [255825] by
-
- 4 edits in trunk/LayoutTests
REGRESSION: [ iOS wk2 ] fast/scrolling/ios/scroll-events-back-forward.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207194
<rdar://problem/59148073>
Reviewed by Wenson Hsieh.
Test was flaky because it relied on a 10ms timer.
- fast/scrolling/ios/scroll-events-back-forward-expected.txt:
- fast/scrolling/ios/scroll-events-back-forward.html:
- platform/ios-wk2/TestExpectations:
- 10:06 AM Changeset in webkit [255824] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Cannot perform most local loads with sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=202071
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-05
Reviewed by Carlos Garcia Campos.
SecurityOrigin::canDisplay is improperly checking whether the target file URL points to a
file on the same "volume" (mount point) as the source file. That can't happen here because
this code is running in the web process, but only the network process has access to the
unsandboxed filesystem. This code can only check whether the target file exists within the
sandbox's mount namespace, but that's not what we want to do because we're not going to load
that file, we're going to ask the network process to load the file with the same path
outside the mount namespace.
We can probably live without this check. But if bringing it back is desired, it has to be
done someplace totally different, in network process code rather than web process code.
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay const):
- 9:48 AM Changeset in webkit [255823] by
-
- 4 edits in branches/safari-609-branch/Source/WebKit
Correct sandboxes. rdar://problem/59098315
- 9:47 AM Changeset in webkit [255822] by
-
- 2 edits in trunk/LayoutTests
[iOS wk2 Debug] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207077
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/ios-wk2/TestExpectations:
- 9:29 AM Changeset in webkit [255821] by
-
- 110 edits2 copies1 move32 adds5 deletes in trunk/LayoutTests
[Web Animations] Update snapshot of Web Animations, CSS Animations and CSS Transitions WPT tests
https://bugs.webkit.org/show_bug.cgi?id=207263
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-animations/AnimationEffect-getComputedTiming.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-canceling.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-compositeOrder.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/CSSAnimation-compositeOrder.tentative.html: Added.
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-finished.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-getCurrentTime.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-id.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-playState.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-ready.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-startTime.tentative.html:
- web-platform-tests/css/css-animations/CSSPseudoElement-getAnimations.tentative-expected.txt: Removed.
- web-platform-tests/css/css-animations/CSSPseudoElement-getAnimations.tentative.html: Removed.
- web-platform-tests/css/css-animations/Document-getAnimations.tentative-expected.txt:
- web-platform-tests/css/css-animations/Document-getAnimations.tentative.html:
- web-platform-tests/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html:
- web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
- web-platform-tests/css/css-animations/Element-getAnimations.tentative.html:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
- web-platform-tests/css/css-animations/KeyframeEffect-target.tentative.html:
- web-platform-tests/css/css-animations/animation-before-initial-box-construction-001-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-before-initial-box-construction-001.html: Added.
- web-platform-tests/css/css-animations/animationevent-interface.js:
(test):
- web-platform-tests/css/css-animations/keyframes-remove-documentElement-crash.html:
- web-platform-tests/css/css-animations/support/empty-sheet.css: Added.
- web-platform-tests/css/css-animations/support/w3c-import.log:
- web-platform-tests/css/css-animations/w3c-import.log:
- web-platform-tests/css/css-backgrounds/animations/border-bottom-left-radius-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-bottom-right-radius-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-bottom-width-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-width-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-left-width-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-right-width-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-top-left-radius-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-top-right-radius-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-top-width-composition-expected.txt:
- web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt:
- web-platform-tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html:
- web-platform-tests/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt: Removed.
- web-platform-tests/css/css-transitions/CSSPseudoElement-getAnimations.tentative.html: Removed.
- web-platform-tests/css/css-transitions/CSSTransition-canceling.tentative.html:
- web-platform-tests/css/css-transitions/CSSTransition-currentTime.tentative.html:
- web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html:
- web-platform-tests/css/css-transitions/CSSTransition-finished.tentative.html:
- web-platform-tests/css/css-transitions/CSSTransition-ready.tentative.html:
- web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html:
- web-platform-tests/css/css-transitions/Document-getAnimations.tentative-expected.txt:
- web-platform-tests/css/css-transitions/Document-getAnimations.tentative.html:
- web-platform-tests/css/css-transitions/Element-getAnimations.tentative.html:
- web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html:
- web-platform-tests/css/css-transitions/KeyframeEffect-target.tentative.html:
- web-platform-tests/css/css-transitions/README.md:
- web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/text-shadow-composition.html: Added.
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation.html: Added.
- web-platform-tests/css/css-transitions/animations/vertical-align-composition-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/vertical-align-composition.html: Added.
- web-platform-tests/css/css-transitions/animations/vertical-align-interpolation-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/vertical-align-interpolation.html: Added.
- web-platform-tests/css/css-transitions/animations/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/combining-effects/w3c-import.log.
- web-platform-tests/css/css-transitions/animations/z-index-interpolation-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/z-index-interpolation.html: Added.
- web-platform-tests/css/css-transitions/before-load-001.html:
- web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed.html:
- web-platform-tests/css/css-transitions/properties-value-001.html:
- web-platform-tests/css/css-transitions/properties-value-002.html:
- web-platform-tests/css/css-transitions/properties-value-003.html:
- web-platform-tests/css/css-transitions/properties-value-auto-001.html:
- web-platform-tests/css/css-transitions/properties-value-implicit-001.html:
- web-platform-tests/css/css-transitions/properties-value-inherit-001.html:
- web-platform-tests/css/css-transitions/properties-value-inherit-002.html:
- web-platform-tests/css/css-transitions/properties-value-inherit-003.html:
- web-platform-tests/css/css-transitions/pseudo-elements-001.html:
- web-platform-tests/css/css-transitions/transition-001.html:
- web-platform-tests/css/css-transitions/transition-delay-001.html:
- web-platform-tests/css/css-transitions/transition-duration-001.html:
- web-platform-tests/css/css-transitions/transition-property-001.html:
- web-platform-tests/css/css-transitions/transition-property-002.html:
- web-platform-tests/css/css-transitions/transitionevent-interface.html:
- web-platform-tests/css/css-transitions/w3c-import.log:
- web-platform-tests/css/support/interpolation-testcommon.js:
(cssAnimationsInterpolation.isSupported):
(cssTransitionsInterpolation.isSupported):
(cssTransitionAllInterpolation.isSupported):
(webAnimationsInterpolation.isSupported):
(webAnimationsInterpolation.interpolateComposite):
(createInterpolationTestTargets):
(create_tests):
(test_interpolation):
- web-platform-tests/web-animations/README.md:
- web-platform-tests/web-animations/animation-model/animation-types/property-list.js:
(testAnimationSamplesWithAnyOrder):
- web-platform-tests/web-animations/animation-model/combining-effects/applying-interpolated-transform-expected.txt: Added.
- web-platform-tests/web-animations/animation-model/combining-effects/applying-interpolated-transform.html: Added.
- web-platform-tests/web-animations/animation-model/combining-effects/w3c-import.log:
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animatable/animate.html:
- web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/commitStyles.html:
- web-platform-tests/web-animations/interfaces/Animation/onremove-expected.txt: Added.
- web-platform-tests/web-animations/interfaces/Animation/onremove.html: Added.
- web-platform-tests/web-animations/interfaces/Animation/pause.html:
- web-platform-tests/web-animations/interfaces/Animation/play.html:
- web-platform-tests/web-animations/interfaces/Animation/w3c-import.log:
- web-platform-tests/web-animations/interfaces/AnimationEffect/updateTiming.html:
- web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/w3c-import.log:
- web-platform-tests/web-animations/interfaces/Document/getAnimations-expected.txt: Removed.
- web-platform-tests/web-animations/interfaces/Document/w3c-import.log:
- web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt: Added.
- web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Document/getAnimations.html.
- web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
- web-platform-tests/web-animations/interfaces/DocumentTimeline/w3c-import.log:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes.html:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events.html:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/w3c-import.log:
- web-platform-tests/web-animations/testcommon.js:
(cubicBezier): Deleted.
- web-platform-tests/web-animations/timing-model/animations/finishing-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html:
- 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:
- web-platform-tests/web-animations/timing-model/animations/playing-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-expected.html: Added.
- web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html: Added.
- web-platform-tests/web-animations/timing-model/animations/reversing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/sync-start-times-expected.html: Added.
- web-platform-tests/web-animations/timing-model/animations/sync-start-times.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast-expected.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow-expected.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero-expected.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero.html: Added.
- web-platform-tests/web-animations/timing-model/animations/w3c-import.log:
- web-platform-tests/web-animations/w3c-import.log:
LayoutTests:
- TestExpectations:
- tests-options.json:
- 9:22 AM Changeset in webkit [255820] by
-
- 2 edits in trunk/LayoutTests
Regression (r252014?) [ Mac wk2 ] http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207271
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 9:15 AM Changeset in webkit [255819] by
-
- 30 edits8 deletes in trunk
Unreviewed, rolling out r255818.
https://bugs.webkit.org/show_bug.cgi?id=207270
It is breaking some Mac builds (Requested by youenn on
#webkit).
Reverted changeset:
"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/255818
- 8:53 AM Changeset in webkit [255818] by
-
- 30 edits1 copy7 adds in trunk
[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=206582
Source/WebCore:
<rdar://problem/58985368>
Reviewed by Eric Carlson.
AVAssetWriterDelegate allows to grab recorded data whenever wanted.
This delegate requires passing compressed samples to AVAssetWriter.
Implement video encoding and audio encoding in dedicated classes and use these classes before adding buffers to AVAssetWriter.
These classes are AudioSampleBufferCompressor and VideoSampleBufferCompressor.
They support AAC and H264 so far and should be further improved to support more encoding options.
Instantiate real writer only for platforms supporting AVAssetWriterDelegate, since it is not supported everywhere.
The writer, doing the pacakging, is receiving compressed buffer from the audio/video compressors.
It then sends data when being request to flush to its delegate, which will send data to the MediaRecorderPrivateWriter.
The MediaRecorderPrivateWriter stores the data in a SharedBuffer until MediaRecorder asks for data.
Note that, whenever we request data, we flush the writer and insert an end of video sample to make sure video data gets flushed.
Therefore data should not be requested too fast to get adequate video compression.
Covered by existing tests.
- Modules/mediarecorder/MediaRecorderProvider.cpp:
(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
- WebCore.xcodeproj/project.pbxproj:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::create):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h: Added.
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm: Added.
(WebCore::AudioSampleBufferCompressor::create):
(WebCore::AudioSampleBufferCompressor::AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initialize):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::computeBufferSizeForAudioFormat):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::audioConverterComplexInputDataProc):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
(WebCore::AudioSampleBufferCompressor::processSampleBuffer):
(WebCore::AudioSampleBufferCompressor::addSampleBuffer):
(WebCore::AudioSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::AudioSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(-[WebAVAssetWriterDelegate initWithWriter:]):
(-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedHeaderData:]):
(-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedMediaData:fragmentedMediaDataReport:]):
(-[WebAVAssetWriterDelegate close]):
(WebCore::MediaRecorderPrivateWriter::create):
(WebCore::MediaRecorderPrivateWriter::compressedVideoOutputBufferCallback):
(WebCore::MediaRecorderPrivateWriter::compressedAudioOutputBufferCallback):
(WebCore::MediaRecorderPrivateWriter::MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::~MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::initialize):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::startAssetWriter):
(WebCore::MediaRecorderPrivateWriter::appendCompressedAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendCompressedVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendCompressedSampleBuffers):
(WebCore::appendEndsPreviousSampleDurationMarker):
(WebCore::MediaRecorderPrivateWriter::appendEndOfVideoSampleDurationIfNeeded):
(WebCore::MediaRecorderPrivateWriter::flushCompressedSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::clear):
(WebCore::copySampleBufferWithCurrentTimeStamp):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::appendData):
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h: Copied from Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h.
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm: Added.
(WebCore::VideoSampleBufferCompressor::create):
(WebCore::VideoSampleBufferCompressor::VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::initialize):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::videoCompressionCallback):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):
(WebCore::VideoSampleBufferCompressor::processSampleBuffer):
(WebCore::VideoSampleBufferCompressor::addSampleBuffer):
(WebCore::VideoSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::VideoSampleBufferCompressor::takeOutputSampleBuffer):
Source/WebCore/PAL:
<rdar://problem/58985368>
Reviewed by Eric Carlson.
Add soft link macros for VideoToolbox and AudioToolbox.
- PAL.xcodeproj/project.pbxproj:
- pal/cf/AudioToolboxSoftLink.cpp: Added.
- pal/cf/AudioToolboxSoftLink.h: Added.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/cf/VideoToolboxSoftLink.cpp: Added.
- pal/cf/VideoToolboxSoftLink.h: Added.
Source/WebKit:
<rdar://problem/58985368>
Reviewed by Eric Carlson.
Enable RemoteMediaRecorder only for systems supporting AVAssetWriterDelegate.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- GPUProcess/webrtc/RemoteMediaRecorderManager.cpp:
- GPUProcess/webrtc/RemoteMediaRecorderManager.h:
- GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/GPU/webrtc/MediaRecorderProvider.cpp:
(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):
Source/WTF:
Reviewed by Eric Carlson.
- wtf/PlatformHave.h:
LayoutTests:
Reviewed by Eric Carlson.
Disable tests on all platforms except the ones supporting AVAssetWriterDelegate.
- TestExpectations:
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
which should be fixed as follow-up specific patches.
- platform/mac/TestExpectations:
- 8:51 AM Changeset in webkit [255817] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed iOS build fix.
- rendering/RenderThemeIOS.h:
- 8:49 AM Changeset in webkit [255816] by
-
- 2 edits in trunk/LayoutTests
Regression: [ Mac Debug wk2 ] http/tests/websocket/tests/hybi/server-close.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207269
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 8:39 AM Changeset in webkit [255815] by
-
- 7 edits in trunk/Source/WebKit
Unreviewed, rolling out r255706.
Caused assertions in API tests
Reverted changeset:
"Partial revert of r248734 to fix leak of StorageAreaMaps"
https://bugs.webkit.org/show_bug.cgi?id=207073
https://trac.webkit.org/changeset/255706
- 8:27 AM Changeset in webkit [255814] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- 8:23 AM Changeset in webkit [255813] by
-
- 2 edits in trunk/Tools
results.webkit.org should disable auto-capitalize over the search field
https://bugs.webkit.org/show_bug.cgi?id=207240
<rdar://problem/59053042>
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/view/static/js/search.js:
- 7:59 AM Changeset in webkit [255812] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/hr-time/basic.any.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206908
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-05
- platform/mac/TestExpectations:
- 7:54 AM Changeset in webkit [255811] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/ensure-proper-variable-lifetime.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207267
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-05
- platform/mac-wk2/TestExpectations:
- 3:51 AM Changeset in webkit [255810] by
-
- 3 edits2 adds in trunk
[Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
https://bugs.webkit.org/show_bug.cgi?id=207253
<rdar://problem/59143624>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-canceled-before-commit.html
Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
in other situations where the playback state changes for a potentially in-flight animation.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::animationDidSeek):
(WebCore::KeyframeEffect::animationWasCanceled):
(WebCore::KeyframeEffect::willChangeRenderer):
(WebCore::KeyframeEffect::animationSuspensionStateDidChange):
LayoutTests:
Add a new test that checks that an accelerated animation that has been enqueued to start but has
not yet been committed is correctly canceled when the cancel() method is called. This test fails
prior to this source change.
- webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- webanimations/accelerated-animation-canceled-before-commit.html: Added.
- 2:55 AM Changeset in webkit [255809] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore
Merge r255788 - [JSC] Structure::setMaxOffset and setTransitionOffset are racy
https://bugs.webkit.org/show_bug.cgi?id=207249
Reviewed by Mark Lam.
We hit crash in JSTests/stress/array-slice-osr-exit-2.js. The situation is following.
- The mutator thread (A) is working.
- The concurrent collector (B) is working.
- A attempts to set m_maxOffset in StructureRareData by allocating it. First, A sets Structure::m_maxOffset to useRareDataFlag.
- B is in JSObject::visitButterflyImpl, and executing Structure::maxOffset().
- B detects that m_maxOffset is useRareDataFlag.
- B attempts to load rareData, but this is not a StructureRareData since A is just now setting up StructureRareData.
- B crashes.
Set useRareDataFlag after StructureRareData is set. Ensuring this store-order by using storeStoreFence.
- runtime/Structure.h:
- 2:55 AM Changeset in webkit [255808] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/LayoutTests
Merge r255787 - [GTK] Garden some wpt tests failing with harness timeout
https://bugs.webkit.org/show_bug.cgi?id=207247
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 2:55 AM Changeset in webkit [255807] by
-
- 33 edits2 deletes in releases/WebKitGTK/webkit-2.28
Merge r255785 - Replace RGBA32 typedef with a class to improve type safety
https://bugs.webkit.org/show_bug.cgi?id=206862
Reviewed by Sam Weinig.
Source/WebCore:
- Headers.cmake: Remove RGBColor.h.
- Sources.txt: Remove RBGColor.cpp.
- WebCore.xcodeproj/project.pbxproj: Remove RGBColor.h and RGBColor.cpp.
- css/CSSPrimitiveValue.cpp: Removed include of RGBColor.h.
(WebCore::CSSPrimitiveValue::getCounterValue const): Deleted.
(WebCore::CSSPrimitiveValue::getRectValue const): Deleted.
(WebCore::CSSPrimitiveValue::getRGBColorValue const): Deleted.
- css/CSSPrimitiveValue.h: Updated for the above.
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::getCounterValue const): Use
CSSPrimitiveValue::counterValue.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRectValue const): Use
CSSPrimitiveValue::rectValue.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRGBColorValue const): USe
CSSPrimitiveValue::isRGBColor and CSSPrimitiveValue::color.
- css/DeprecatedCSSOMRGBColor.h: Store a Color instead of an RGBA32.
Take a Color argument instead of a RGBColor argument. Refactored to
use a createWrapper template function member to tighten the code.
- css/RGBColor.cpp: Removed.
- css/RGBColor.h: Removed.
- css/StyleColor.cpp:
(WebCore::StyleColor::colorFromKeyword): Explicitly convert to SimpleColor
rather than relying on initializing a Color from an integer ARGB value.
- editing/cocoa/HTMLConverter.mm: Removed include of RGBColor.h.
- inspector/InspectorOverlay.cpp:
(WebCore::drawOutlinedQuadWithClip): Use the Color constructor instead of
Color::createUnchecked.
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo): Use
explicit SimpleColor rather than relying on initializing a Color from an
integer ARGB value.
- platform/graphics/Color.cpp: Use constexpr for constant colors.
(WebCore::makeRGB): Implement by calling makeRGBA.
(WebCore::makeRGBA): Use an explicit argument list to call the
SimpleColor constructor.
(WebCore::makeRGBA32FromFloats): Implement by calling makeRGBA.
(WebCore::colorWithOverrideAlpha): Use an explicit argument list to call
the SimpleColor constructor.
(WebCore::parseHexColorInternal): Ditto.
(WebCore::Color::Color): Removed unneeded code to set the color
to invalid, since that's already the default for a new Color object.
Also tweak the logic a bit and add explicit argument list for the
SimpleColor constructor.
(WebCore::SimpleColor::serializationForHTML const): Added. Factored out of
the Color::serialized function.
(WebCore::Color::serialized const): Changed to call serializationForHTML.
(WebCore::fractionDigitsForFractionalAlphaValue): Renamed slightly shorter.
(WebCore::SimpleColor::serializationForCSS const): Added. Factored out of
the Color::cssText function.
(WebCore::Color::cssText const): Changed to call serializationForCSS.
(WebCore::RGBA32::serializationForRenderTreeAsText const): Added.
Factored out of nameForRenderTreeAsText.
(WebCore::Color::nameForRenderTreeAsText const): Changed to call
serializationForRenderTreeAsText.
(WebCore::colorFromPremultipliedARGB): Updated to use the SimpleColor
member functions instead of the red/green/blue/alphaChannel functions.
(WebCore::blend): Use Color::transparent for blending where the old
code used 0 and relied on how that is converted to a Color.
- platform/graphics/Color.h: Replaced the RGBA32 typedef and the
RGBA class with a new class named SimpleColor. Deleted the four
red/green/blue/alphaChannel functions, the Color constructor that
takes and RGBA, and the Color::createUnchecked function. Changed
the color constants to all be constexpr. Moved the inline function
definitions until after everything is delcared.
- platform/graphics/ImageBackingStore.h:
(WebCore::ImageBackingStore::setSize): Use uint32_t instead of RGBA32.
(WebCore::ImageBackingStore::clear): Ditto.
(WebCore::ImageBackingStore::clearRect): Ditto.
(WebCore::ImageBackingStore::fillRect): Ditto.
(WebCore::ImageBackingStore::repeatFirstRow): Ditto.
(WebCore::ImageBackingStore::pixelAt const): Ditto.
(WebCore::ImageBackingStore::setPixel): Ditto.
(WebCore::ImageBackingStore::blendPixel): Ditto. Convert to and from
SimpleColor so we can use various functions that operate on that type.
Use the isVisible and red/green/blue/alphaComponent member functions.
(WebCore::ImageBackingStore::ImageBackingStore): Ditto.
(WebCore::ImageBackingStore::pixelValue const): Use Color::transparent
instead of returning a 0 and relying on how that is converted to a Color.
- platform/graphics/ImageFrame.h: Removed include of ImageBackingStore.h.
- platform/graphics/ImageSource.h: Added forward delaration of SharedBuffer.
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::platformTransformColorSpace): Call value() to
convert RGBA32, which is now a class, to an 32-bit ARGB integer.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::cachedCGColor): Use constexpr SimpleColor::value function to
switch on a SimpleColor.
- platform/graphics/mac/ColorMac.mm:
(WebCore::oldAquaFocusRingColor): Use an explicit SimpleColor to turn a
hex integer into a Color without relying on implicit conversion.
- platform/graphics/win/ColorDirect2D.cpp:
(WebCore::Color::operator D2D1_COLOR_F const): Use value() to get the color
integer, just to keep this working. Probably needs a better implementation
at some point.
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable): Don't use makeRGB any more,
write the expression out here instead. More efficient anyway since these
are already single bytes.
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices): Use an explicit SimpleColor to turn a
hex integer into a Color without relying on implicit conversion.
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::drawBoxes): Ditto. Also use a modern
for loop instead of indexing.
- platform/mock/ScrollbarThemeMock.cpp:
(WebCore::ScrollbarThemeMock::paintTrackBackground): Ditto.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::calculateBorderStyleColor): Ditto.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::systemColor const): Ditto. Also used named colors.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::systemColor const): Ditto.
- rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject): Added checks against
Color::transparent instead of converting to an integer and checking
against 0. Removed unneeded isValid checks, since invalid color's ARGB
value is Color::transparent.
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Color>::encode): Use uint32_t explicitly to convert
the color value into a SimpleColor.
(IPC::ArgumentCoder<Color>::decode): Same thing, only the other direction.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:
(TestWebKitAPI::TEST): Use the Color constructor instead of Color::createUnchecked.
- 2:55 AM Changeset in webkit [255806] by
-
- 723 edits2 copies5 moves71 adds36 deletes in releases/WebKitGTK/webkit-2.28/Source/ThirdParty/ANGLE
Merge r255782 - Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=206318
Several important changes to fix layout test failures and timeouts in this update.
- Made expensive validation non-default in debug mode to reduce timeouts.
- Optimize disabling ARB_texture_rectangle to make shader compilation much faster.
- Flush before texture deletion to work around Mac Intel driver bug.
Patch by James Darpinian <James Darpinian> on 2020-02-04
Reviewed by Dean Jackson.
- ANGLE.plist: update commit hash
- ANGLE.xcodeproj/project.pbxproj: Add/remove files
- Compiler.cmake: Translated from compiler.gni
- GLESv2.cmake: Translated from libGLESv2.gni
- changes.diff: Now lists all changes from upstream.
- update-angle.sh: Diff command was wrong.
- Plus a whole lot of changes from upstream.
- 2:51 AM Changeset in webkit [255805] by
-
- 8 edits in releases/WebKitGTK/webkit-2.28/Source
Merge r255711 - Non-unified build fixes early February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207227
Reviewed by Don Olmstead.
Source/JavaScriptCore:
- bytecode/PolyProtoAccessChain.h: Add missing inclusions of StructureIDTable.h and VM.h
Source/WebCore:
No new tests needed.
- accessibility/atk/AccessibilityObjectAtk.cpp: Add missing inclusion of WebKitAccessible.h
- inspector/agents/InspectorAnimationAgent.cpp: Add issing inclusions of JSExecState.h and
JavaScriptCore/InjectedScriptManager.h
- style/MatchedDeclarationsCache.cpp: Add missing inclusion of FontCascade.h
Source/WTF:
- wtf/SingleRootGraph.h: Add missing inclusion of wtf/StringPrintStream.h
- 2:51 AM Changeset in webkit [255804] by
-
- 7 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r255706 - Partial revert of r248734 to fix leak of StorageAreaMaps
https://bugs.webkit.org/show_bug.cgi?id=207073
Reviewed by Alex Christensen.
Do a partial revert of r248734 so that the StorageNamespaceImpl no longer holds a strong
reference to its StorageAreaMap objects. The code for removing entries from
StorageNamespaceImpl::m_storageAreaMaps (StorageNamespaceImpl::didDestroyStorageAreaMap())
was dead code after r248734 and thus StorageAreaMap were never destroyed.
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::length):
(WebKit::StorageAreaImpl::key):
(WebKit::StorageAreaImpl::item):
(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::contains):
(WebKit::StorageAreaImpl::storageType const):
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::create):
(WebKit::StorageAreaMap::~StorageAreaMap):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
- WebProcess/WebStorage/StorageNamespaceImpl.h:
- 2:50 AM Changeset in webkit [255803] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r255705 - Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- 2:50 AM Changeset in webkit [255802] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore
Merge r255703 - [JSC] Use PackedRefPtr in UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=207229
Reviewed by Mark Lam.
Use PackedRefPtr in UnlinkedCodeBlock to compact it from 168 to 160, which saves 16 bytes (10%) per UnlinkedCodeBlock since
we have 16 bytes alignment for GC cells.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::sourceURLDirective const):
(JSC::UnlinkedCodeBlock::sourceMappingURLDirective const):
(JSC::UnlinkedCodeBlock::setSourceURLDirective):
(JSC::UnlinkedCodeBlock::setSourceMappingURLDirective):
- runtime/CachedTypes.cpp:
(JSC::CachedCodeBlock::sourceURLDirective const):
(JSC::CachedCodeBlock::sourceMappingURLDirective const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
- 2:50 AM Changeset in webkit [255801] by
-
- 11 edits in releases/WebKitGTK/webkit-2.28
Merge r255693 - Tighten up stylesheet loading
https://bugs.webkit.org/show_bug.cgi?id=189913
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-04
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Update improved test results.
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-quirks-expected.txt:
Source/WebCore:
Content-Type metadata for link stylesheet is determined using MIME
sniffing[1]. This can result in no Content-Type metadata.
If there is no Content-Type metadata, but the external resource link
type has a default type defined, then the user agent must assume that
the resource is of that type [2]. For link stylesheet the default is
text/css. This means invalid MIME type will default to text/css and
load and valid MIME types other than text/css will result in load error.
[1] https://mimesniff.spec.whatwg.org/
[2] https://html.spec.whatwg.org/multipage/semantics.html#fetch-and-process-the-linked-resource
Tests: imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
- css/StyleSheetContents.h:
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):
- loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::canUseSheet const):
- 2:50 AM Changeset in webkit [255800] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Merge r255689 - Quantifiers after lookahead assertions should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=206988
Reviewed by Darin Adler and Ross Kirsling.
JSTests:
- test262/expectations.yaml: Mark 10 test cases as passing.
Source/JavaScriptCore:
This change adds SyntaxError for quantifiable assertions in Unicode patterns,
aligning JSC with V8 and SpiderMonkey.
Grammar: https://tc39.es/ecma262/#prod-annexB-Term
(/u flag precludes the use of QuantifiableAssertion)
Return value of parseParenthesesEnd() now matches with parseEscape() and
parseAtomEscape().
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parseParenthesesEnd):
(JSC::Yarr::Parser::parseTokens):
- 2:50 AM Changeset in webkit [255799] by
-
- 24 edits2 adds in releases/WebKitGTK/webkit-2.28/Source
Merge r255687 - [JSC] Introduce UnlinkedCodeBlockGenerator and reduce sizeof(UnlinkedCodeBlock)
https://bugs.webkit.org/show_bug.cgi?id=207087
Reviewed by Tadeu Zagallo.
Source/JavaScriptCore:
While UnlinkedCodeBlock is immutable once it is created from BytecodeGenerator, it has many mutable Vectors.
This is because we are using UnlinkedCodeBlock as a builder of UnlinkedCodeBlock itself too in BytecodeGenerator.
Since Vector takes 16 bytes to allow efficient expansions, it is nice if we can use RefCountedArray instead when
we know this Vector is immutable.
In this patch, we introduce UnlinkedCodeBlockGenerator wrapper. BytecodeGenerator, BytecodeRewriter, BytecodeDumper,
and BytecodeGeneratorification interact with UnlinkedCodeBlockGenerator instead of UnlinkedCodeBlock. And UnlinkedCodeBlockGenerator
will generate the finalized UnlinkedCodeBlock. This design allows us to use RefCountedArray for data in UnlinkedCodeBlock,
which is (1) smaller and (2) doing shrinkToFit operation when creating it from Vector.
This patch reduces sizeof(UnlinkedCodeBlock) from 256 to 168, 88 bytes reduction.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/BytecodeBasicBlock.cpp:
(JSC::BytecodeBasicBlock::compute):
- bytecode/BytecodeBasicBlock.h:
- bytecode/BytecodeDumper.cpp:
- bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
(JSC::GeneratorLivenessAnalysis::run):
(JSC::BytecodeGeneratorification::run):
(JSC::performGeneratorification):
- bytecode/BytecodeGeneratorification.h:
- bytecode/BytecodeRewriter.h:
(JSC::BytecodeRewriter::BytecodeRewriter):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantIdentifierSetRegisters):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::handlerForIndex):
(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::numberOfSwitchJumpTables const):
(JSC::CodeBlock::numberOfStringSwitchJumpTables const):
(JSC::CodeBlock::addSwitchJumpTable): Deleted.
(JSC::CodeBlock::addStringSwitchJumpTable): Deleted.
- bytecode/HandlerInfo.h:
(JSC::HandlerInfoBase::handlerForIndex):
- bytecode/JumpTable.h:
(JSC::SimpleJumpTable::add): Deleted.
- bytecode/PreciseJumpTargets.cpp:
(JSC::computePreciseJumpTargets):
(JSC::recomputePreciseJumpTargets):
(JSC::findJumpTargetsForInstruction):
- bytecode/PreciseJumpTargets.h:
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedCodeBlock::visitChildren):
(JSC::UnlinkedCodeBlock::dumpExpressionRangeInfo):
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeIndex const):
(JSC::UnlinkedCodeBlock::handlerForIndex):
(JSC::UnlinkedCodeBlock::addExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::addTypeProfilerExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::setInstructions): Deleted.
(JSC::UnlinkedCodeBlock::applyModification): Deleted.
(JSC::UnlinkedCodeBlock::shrinkToFit): Deleted.
(JSC::UnlinkedCodeBlock::addOutOfLineJumpTarget): Deleted.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::expressionInfo):
(JSC::UnlinkedCodeBlock::setNumParameters):
(JSC::UnlinkedCodeBlock::numberOfIdentifiers const):
(JSC::UnlinkedCodeBlock::identifiers const):
(JSC::UnlinkedCodeBlock::bitVector):
(JSC::UnlinkedCodeBlock::constantRegisters):
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation):
(JSC::UnlinkedCodeBlock::constantIdentifierSets):
(JSC::UnlinkedCodeBlock::numberOfJumpTargets const):
(JSC::UnlinkedCodeBlock::numberOfSwitchJumpTables const):
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables const):
(JSC::UnlinkedCodeBlock::numberOfFunctionDecls):
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers const):
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets const):
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary):
(JSC::UnlinkedCodeBlock::addParameter): Deleted.
(JSC::UnlinkedCodeBlock::addIdentifier): Deleted.
(JSC::UnlinkedCodeBlock::addBitVector): Deleted.
(JSC::UnlinkedCodeBlock::addSetConstant): Deleted.
(JSC::UnlinkedCodeBlock::addConstant): Deleted.
(JSC::UnlinkedCodeBlock::addJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::addSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionDecl): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionExpr): Deleted.
(JSC::UnlinkedCodeBlock::addExceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::replaceOutOfLineJumpTargets): Deleted.
- bytecode/UnlinkedCodeBlockGenerator.cpp: Added.
(JSC::UnlinkedCodeBlockGenerator::getLineAndColumn const):
(JSC::UnlinkedCodeBlockGenerator::addExpressionInfo):
(JSC::UnlinkedCodeBlockGenerator::addTypeProfilerExpressionInfo):
(JSC::UnlinkedCodeBlockGenerator::finalize):
(JSC::UnlinkedCodeBlockGenerator::handlerForBytecodeIndex):
(JSC::UnlinkedCodeBlockGenerator::handlerForIndex):
(JSC::UnlinkedCodeBlockGenerator::applyModification):
(JSC::UnlinkedCodeBlockGenerator::addOutOfLineJumpTarget):
(JSC::UnlinkedCodeBlockGenerator::outOfLineJumpOffset):
(JSC::UnlinkedCodeBlockGenerator::dump const):
- bytecode/UnlinkedCodeBlockGenerator.h: Added.
(JSC::UnlinkedCodeBlockGenerator::UnlinkedCodeBlockGenerator):
(JSC::UnlinkedCodeBlockGenerator::vm):
(JSC::UnlinkedCodeBlockGenerator::isConstructor const):
(JSC::UnlinkedCodeBlockGenerator::constructorKind const):
(JSC::UnlinkedCodeBlockGenerator::superBinding const):
(JSC::UnlinkedCodeBlockGenerator::scriptMode const):
(JSC::UnlinkedCodeBlockGenerator::needsClassFieldInitializer const):
(JSC::UnlinkedCodeBlockGenerator::isStrictMode const):
(JSC::UnlinkedCodeBlockGenerator::usesEval const):
(JSC::UnlinkedCodeBlockGenerator::parseMode const):
(JSC::UnlinkedCodeBlockGenerator::isArrowFunction):
(JSC::UnlinkedCodeBlockGenerator::derivedContextType const):
(JSC::UnlinkedCodeBlockGenerator::evalContextType const):
(JSC::UnlinkedCodeBlockGenerator::isArrowFunctionContext const):
(JSC::UnlinkedCodeBlockGenerator::isClassContext const):
(JSC::UnlinkedCodeBlockGenerator::numCalleeLocals const):
(JSC::UnlinkedCodeBlockGenerator::numVars const):
(JSC::UnlinkedCodeBlockGenerator::numParameters const):
(JSC::UnlinkedCodeBlockGenerator::thisRegister const):
(JSC::UnlinkedCodeBlockGenerator::scopeRegister const):
(JSC::UnlinkedCodeBlockGenerator::wasCompiledWithDebuggingOpcodes const):
(JSC::UnlinkedCodeBlockGenerator::hasCheckpoints const):
(JSC::UnlinkedCodeBlockGenerator::hasTailCalls const):
(JSC::UnlinkedCodeBlockGenerator::setHasCheckpoints):
(JSC::UnlinkedCodeBlockGenerator::setHasTailCalls):
(JSC::UnlinkedCodeBlockGenerator::setNumCalleeLocals):
(JSC::UnlinkedCodeBlockGenerator::setNumVars):
(JSC::UnlinkedCodeBlockGenerator::setThisRegister):
(JSC::UnlinkedCodeBlockGenerator::setScopeRegister):
(JSC::UnlinkedCodeBlockGenerator::setNumParameters):
(JSC::UnlinkedCodeBlockGenerator::metadata):
(JSC::UnlinkedCodeBlockGenerator::addOpProfileControlFlowBytecodeOffset):
(JSC::UnlinkedCodeBlockGenerator::numberOfJumpTargets const):
(JSC::UnlinkedCodeBlockGenerator::addJumpTarget):
(JSC::UnlinkedCodeBlockGenerator::jumpTarget const):
(JSC::UnlinkedCodeBlockGenerator::lastJumpTarget const):
(JSC::UnlinkedCodeBlockGenerator::numberOfSwitchJumpTables const):
(JSC::UnlinkedCodeBlockGenerator::addSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::switchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::numberOfStringSwitchJumpTables const):
(JSC::UnlinkedCodeBlockGenerator::addStringSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::stringSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::numberOfExceptionHandlers const):
(JSC::UnlinkedCodeBlockGenerator::exceptionHandler):
(JSC::UnlinkedCodeBlockGenerator::addExceptionHandler):
(JSC::UnlinkedCodeBlockGenerator::bitVector):
(JSC::UnlinkedCodeBlockGenerator::addBitVector):
(JSC::UnlinkedCodeBlockGenerator::numberOfConstantIdentifierSets const):
(JSC::UnlinkedCodeBlockGenerator::constantIdentifierSets):
(JSC::UnlinkedCodeBlockGenerator::addSetConstant):
(JSC::UnlinkedCodeBlockGenerator::constantRegister const):
(JSC::UnlinkedCodeBlockGenerator::constantRegisters):
(JSC::UnlinkedCodeBlockGenerator::getConstant const):
(JSC::UnlinkedCodeBlockGenerator::constantsSourceCodeRepresentation):
(JSC::UnlinkedCodeBlockGenerator::addConstant):
(JSC::UnlinkedCodeBlockGenerator::addFunctionDecl):
(JSC::UnlinkedCodeBlockGenerator::addFunctionExpr):
(JSC::UnlinkedCodeBlockGenerator::numberOfIdentifiers const):
(JSC::UnlinkedCodeBlockGenerator::identifier const):
(JSC::UnlinkedCodeBlockGenerator::addIdentifier):
(JSC::UnlinkedCodeBlockGenerator::outOfLineJumpOffset):
(JSC::UnlinkedCodeBlockGenerator::replaceOutOfLineJumpTargets):
(JSC::UnlinkedCodeBlockGenerator::metadataSizeInBytes):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeNextParameter):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::prepareJumpTableForSwitch):
(JSC::ForInContext::finalize):
(JSC::StructureForInContext::finalize):
(JSC::IndexedForInContext::finalize):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/BytecodeGeneratorBaseInlines.h:
(JSC::BytecodeGeneratorBase<Traits>::newRegister):
(JSC::BytecodeGeneratorBase<Traits>::addVar):
- runtime/CachedTypes.cpp:
(JSC::CachedVector::encode):
(JSC::CachedVector::decode const):
- wasm/WasmFunctionCodeBlock.h:
(JSC::Wasm::FunctionCodeBlock::setNumVars):
(JSC::Wasm::FunctionCodeBlock::setNumCalleeLocals):
Source/WTF:
Add more useful methods for RefCountedArray.
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::operator=):
(WTF::RefCountedArray::isEmpty const):
(WTF::RefCountedArray::front):
(WTF::RefCountedArray::front const):
(WTF::RefCountedArray::last):
(WTF::RefCountedArray::last const):
- 2:50 AM Changeset in webkit [255798] by
-
- 21 edits in releases/WebKitGTK/webkit-2.28/Source
Merge r255681 - NetworkProcess should be notified by UIProcess when its service worker process connection should be on
https://bugs.webkit.org/show_bug.cgi?id=207122
<rdar://problem/59089780>
Reviewed by Chris Dumez.
Source/WebCore:
Add a completion handler to the create context connection callback.
This is called when the context connection should have been created.
In case there is a context connection, completion handler does nothing.
Otherwise, SWServer will retry creating a context connection if needed.
The pending connection map entry is now removed in the completion handler instead of addContextConnection.
This ensures that only one connection request is sent by network process at a time.
Add extra logging to monitor creation of a context connection.
- workers/service/context/SWContextManager.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::addContextConnection):
(WebCore::SWServer::removeContextConnection):
(WebCore::SWServer::createContextConnectionFinished):
- workers/service/server/SWServer.h:
Source/WebKit:
Add completion handlers to the messaging from NetworkProcess -> UIProcess -> WebProcess -> NetworkProcess
used to create a service worker context connection.
This allows NetworkProcess to ask again for a connection if the connection is still needed but NetworkProcess did not find the context connection.
This is difficult to test since we would need for the process selected to host service workers to exit between the
time it is selected and the time it sends the message to Networking process.
To ensure that the context connection is created by WebProcess, WebProcessProxy takes a background assertion until WebProcess finishes
creating the context connection to Network process.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::swServerForSession):
- NetworkProcess/NetworkProcess.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::establishServiceWorkerContext):
- UIProcess/WebProcessProxy.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::establishConnection):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 2:50 AM Changeset in webkit [255797] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Merge r255680 - Check for callback being null in Notification.requestPermission
https://bugs.webkit.org/show_bug.cgi?id=207192
<rdar://problem/59130804>
Reviewed by Chris Dumez.
Source/WebCore:
Covered by updated test.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::requestPermission):
Callback can be null if no function is given to requestPermission.
Check this before calling the callback.
LayoutTests:
- http/tests/notifications/notification-in-non-secure-context.html:
- 2:50 AM Changeset in webkit [255796] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r255679 - Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- 2:50 AM Changeset in webkit [255795] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r255677 - REGRESSION(r255595): page not closed after beforeunload handler returns true
https://bugs.webkit.org/show_bug.cgi?id=207189
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-02-04
Reviewed by Chris Dumez.
We are assuming the try close did timeout in that case, because the timer is stopped before running the
beforeunload dialog.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): Start the try close timer again when the beforeunload
dialog replies.
- 2:50 AM Changeset in webkit [255794] by
-
- 5 edits in releases/WebKitGTK/webkit-2.28
Merge r255675 - Web Inspector: REGRESSION(r248287): Console: function objects saved to a $n will be invoked instead of just referenced when evaluating in the Console
https://bugs.webkit.org/show_bug.cgi?id=207180
<rdar://problem/58860268>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/InjectedScriptSource.js:
(CommandLineAPI):
Instead of deciding whether to wrap the value given for a$ngetter based on if the value
is already a function, always wrap getter values in a function so that if the value being
stored in the getter is already a function, it isn't used as the callback for the getter and
therefore invoked when the getter is referenced.
LayoutTests:
- inspector/runtime/saveResult.html:
- inspector/runtime/saveResult-expected.txt:
- 2:49 AM Changeset in webkit [255793] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r255673 - Build error with -DENABLE_VIDEO=OFF after r253923
https://bugs.webkit.org/show_bug.cgi?id=207101
Reviewed by Youenn Fablet.
No new tests, only build error fix up
- page/Page.cpp:
(WebCore::Page::forEachMediaElement):
- 2:49 AM Changeset in webkit [255792] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.28
Merge r255671 - CSS Rules with the same selector from several large stylesheets are applied in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=204687
<rdar://problem/57522566>
Reviewed by Zalan Bujtas.
Source/WebCore:
Original test by Anton Khlynovskiy.
Test: fast/css/many-rules.html
- style/RuleData.h:
We overflow the 18 bit m_position field with > 256k CSS rules, confusing the rule order.
Since we have unused bits it costs nothing to increase the field size to 22 bits.
4M rules should be enough for anybody.
LayoutTests:
- TestExpectations:
- fast/css/many-rules-expected.html: Added.
- fast/css/many-rules.html: Added.
- 2:49 AM Changeset in webkit [255791] by
-
- 26 edits2 adds in releases/WebKitGTK/webkit-2.28
Merge r255668 - MediaDevices should handle changes of iframe allow attribute value
https://bugs.webkit.org/show_bug.cgi?id=207112
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
- web-platform-tests/mediacapture-streams/MediaStream-feature-policy-none.https-expected.txt:
Source/WebCore:
MediaDevices was computing whether it could access camera or microphone at creation time.
Since the iframe allow attribute can be modified, we cannot do that.
Instead, we get the feature policy everytime this is needed.
Refactor code to use the newly added routine to check for feature policy.
Update logging to give origin and allow attribute value of the frame that fail the feature policy check.
Test: http/tests/webrtc/enumerateDevicesInFrames.html
- Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::MediaDevices):
(WebCore::MediaDevices::refreshDevices):
(WebCore::MediaDevices::enumerateDevices):
(WebCore::MediaDevices::listenForDeviceChanges):
- Modules/mediastream/MediaDevices.h:
- Modules/mediastream/UserMediaController.cpp:
(WebCore::UserMediaController::logGetUserMediaDenial):
(WebCore::UserMediaController::logGetDisplayMediaDenial):
(WebCore::UserMediaController::logEnumerateDevicesDenial):
- Modules/mediastream/UserMediaController.h:
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
- html/FeaturePolicy.cpp:
(WebCore::policyTypeName):
(WebCore::isFeaturePolicyAllowedByDocumentAndAllOwners):
- html/FeaturePolicy.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::printErrorMessage const):
- page/DOMWindow.h:
LayoutTests:
- TestExpectations:
- fullscreen/full-screen-enabled-expected.txt:
- fullscreen/full-screen-enabled-prefixed-expected.txt:
- fullscreen/full-screen-iframe-not-allowed-expected.txt:
- fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent-expected.txt:
- fullscreen/full-screen-restrictions-expected.txt:
- http/tests/fullscreen/fullscreen-feature-policy-expected.txt:
- http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute-expected.txt:
- http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
- http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
- http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
- http/tests/webrtc/enumerateDevicesInFrames-expected.txt: Added.
- http/tests/webrtc/enumerateDevicesInFrames.html: Added.
- 2:02 AM WebKitGTK/2.28.x edited by
- (diff)
- 1:59 AM Changeset in webkit [255790] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Client-side video rendering doesn't fallback to internal compositing
https://bugs.webkit.org/show_bug.cgi?id=207208
Patch by Philippe Normand <philn@igalia.com> on 2020-02-05
Reviewed by Xabier Rodriguez-Calvar and Žan Doberšek.
Refactor the default video composition code into a self-contained
closure and invoke it if the video frame holder failed to export
the EGLImage to a valid DMABuf.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::hasDMABuf const):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
- 1:14 AM Changeset in webkit [255789] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Add support for rendering menu list buttons
https://bugs.webkit.org/show_bug.cgi?id=207196
Reviewed by Žan Doberšek.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::supportsFocusRing const):
(WebCore::RenderThemeWPE::adjustTextFieldStyle const):
(WebCore::RenderThemeWPE::paintTextField):
(WebCore::RenderThemeWPE::paintTextArea):
(WebCore::RenderThemeWPE::adjustSearchFieldStyle const):
(WebCore::RenderThemeWPE::paintSearchField):
(WebCore::paintFocus):
(WebCore::paintArrow):
(WebCore::RenderThemeWPE::popupInternalPaddingBox const):
- platform/wpe/RenderThemeWPE.h:
Feb 4, 2020:
- 11:12 PM Changeset in webkit [255788] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Structure::setMaxOffset and setTransitionOffset are racy
https://bugs.webkit.org/show_bug.cgi?id=207249
Reviewed by Mark Lam.
We hit crash in JSTests/stress/array-slice-osr-exit-2.js. The situation is following.
- The mutator thread (A) is working.
- The concurrent collector (B) is working.
- A attempts to set m_maxOffset in StructureRareData by allocating it. First, A sets Structure::m_maxOffset to useRareDataFlag.
- B is in JSObject::visitButterflyImpl, and executing Structure::maxOffset().
- B detects that m_maxOffset is useRareDataFlag.
- B attempts to load rareData, but this is not a StructureRareData since A is just now setting up StructureRareData.
- B crashes.
Set useRareDataFlag after StructureRareData is set. Ensuring this store-order by using storeStoreFence.
- runtime/Structure.h:
- 8:48 PM Changeset in webkit [255787] by
-
- 2 edits in trunk/LayoutTests
[GTK] Garden some wpt tests failing with harness timeout
https://bugs.webkit.org/show_bug.cgi?id=207247
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 8:32 PM Changeset in webkit [255786] by
-
- 4 edits2 adds in trunk
REGRESSION (r251320): Can't double tap to select word in Notes on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=207239
<rdar://problem/58686015>
Reviewed by Tim Horton.
Source/WebKit:
Following r251320, all synthetic mouse events on iOS additionally dispatched corresponding pointer events. This
led to duplicate "pointerdown"/"pointerup" events dispatched with every tap. r253878 fixed this by avoiding
pointer event dispatch for synthetically generated mouse events (and made this determination by consulting
syntheticClickType()).
However, in the case where we're synthesizing a mouse event for a "dblclick" event handler (after a double-
tap), we currently passNoTapas the synthetic click event type when creating the mouse event. This causes
additional pointer events to be synthesized and dispatched during a double tap, which creates three pairs of
"pointerdown"/"pointerup" events upon double-tap. This subsequently confuses iCloud Notes' web app when double
tapping to select a word.
Fix this by passing in
OneFingerTapas the synthetic click type instead (since two-finger double taps should
already be handled by the two-finger double-tap magnification gesture).
Test: pointerevents/ios/pointer-events-for-double-tap.html
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint):
LayoutTests:
Add a test to verify that performing a double tap on an element with a dblclick handler results in the following
sequence of events:[ "pointerdown", "pointerup", "pointerdown", "pointerup", "dblclick" ].
- pointerevents/ios/pointer-events-for-double-tap-expected.txt: Added.
- pointerevents/ios/pointer-events-for-double-tap.html: Added.
- pointerevents/utils.js:
(const.ui.new.UIController.prototype.doubleTap):
Add a helper method to simulate a double-tap gesture.
- 7:47 PM Changeset in webkit [255785] by
-
- 33 edits2 deletes in trunk
Replace RGBA32 typedef with a class to improve type safety
https://bugs.webkit.org/show_bug.cgi?id=206862
Reviewed by Sam Weinig.
Source/WebCore:
- Headers.cmake: Remove RGBColor.h.
- Sources.txt: Remove RBGColor.cpp.
- WebCore.xcodeproj/project.pbxproj: Remove RGBColor.h and RGBColor.cpp.
- css/CSSPrimitiveValue.cpp: Removed include of RGBColor.h.
(WebCore::CSSPrimitiveValue::getCounterValue const): Deleted.
(WebCore::CSSPrimitiveValue::getRectValue const): Deleted.
(WebCore::CSSPrimitiveValue::getRGBColorValue const): Deleted.
- css/CSSPrimitiveValue.h: Updated for the above.
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::getCounterValue const): Use
CSSPrimitiveValue::counterValue.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRectValue const): Use
CSSPrimitiveValue::rectValue.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRGBColorValue const): USe
CSSPrimitiveValue::isRGBColor and CSSPrimitiveValue::color.
- css/DeprecatedCSSOMRGBColor.h: Store a Color instead of an RGBA32.
Take a Color argument instead of a RGBColor argument. Refactored to
use a createWrapper template function member to tighten the code.
- css/RGBColor.cpp: Removed.
- css/RGBColor.h: Removed.
- css/StyleColor.cpp:
(WebCore::StyleColor::colorFromKeyword): Explicitly convert to SimpleColor
rather than relying on initializing a Color from an integer ARGB value.
- editing/cocoa/HTMLConverter.mm: Removed include of RGBColor.h.
- inspector/InspectorOverlay.cpp:
(WebCore::drawOutlinedQuadWithClip): Use the Color constructor instead of
Color::createUnchecked.
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo): Use
explicit SimpleColor rather than relying on initializing a Color from an
integer ARGB value.
- platform/graphics/Color.cpp: Use constexpr for constant colors.
(WebCore::makeRGB): Implement by calling makeRGBA.
(WebCore::makeRGBA): Use an explicit argument list to call the
SimpleColor constructor.
(WebCore::makeRGBA32FromFloats): Implement by calling makeRGBA.
(WebCore::colorWithOverrideAlpha): Use an explicit argument list to call
the SimpleColor constructor.
(WebCore::parseHexColorInternal): Ditto.
(WebCore::Color::Color): Removed unneeded code to set the color
to invalid, since that's already the default for a new Color object.
Also tweak the logic a bit and add explicit argument list for the
SimpleColor constructor.
(WebCore::SimpleColor::serializationForHTML const): Added. Factored out of
the Color::serialized function.
(WebCore::Color::serialized const): Changed to call serializationForHTML.
(WebCore::fractionDigitsForFractionalAlphaValue): Renamed slightly shorter.
(WebCore::SimpleColor::serializationForCSS const): Added. Factored out of
the Color::cssText function.
(WebCore::Color::cssText const): Changed to call serializationForCSS.
(WebCore::RGBA32::serializationForRenderTreeAsText const): Added.
Factored out of nameForRenderTreeAsText.
(WebCore::Color::nameForRenderTreeAsText const): Changed to call
serializationForRenderTreeAsText.
(WebCore::colorFromPremultipliedARGB): Updated to use the SimpleColor
member functions instead of the red/green/blue/alphaChannel functions.
(WebCore::blend): Use Color::transparent for blending where the old
code used 0 and relied on how that is converted to a Color.
- platform/graphics/Color.h: Replaced the RGBA32 typedef and the
RGBA class with a new class named SimpleColor. Deleted the four
red/green/blue/alphaChannel functions, the Color constructor that
takes and RGBA, and the Color::createUnchecked function. Changed
the color constants to all be constexpr. Moved the inline function
definitions until after everything is delcared.
- platform/graphics/ImageBackingStore.h:
(WebCore::ImageBackingStore::setSize): Use uint32_t instead of RGBA32.
(WebCore::ImageBackingStore::clear): Ditto.
(WebCore::ImageBackingStore::clearRect): Ditto.
(WebCore::ImageBackingStore::fillRect): Ditto.
(WebCore::ImageBackingStore::repeatFirstRow): Ditto.
(WebCore::ImageBackingStore::pixelAt const): Ditto.
(WebCore::ImageBackingStore::setPixel): Ditto.
(WebCore::ImageBackingStore::blendPixel): Ditto. Convert to and from
SimpleColor so we can use various functions that operate on that type.
Use the isVisible and red/green/blue/alphaComponent member functions.
(WebCore::ImageBackingStore::ImageBackingStore): Ditto.
(WebCore::ImageBackingStore::pixelValue const): Use Color::transparent
instead of returning a 0 and relying on how that is converted to a Color.
- platform/graphics/ImageFrame.h: Removed include of ImageBackingStore.h.
- platform/graphics/ImageSource.h: Added forward delaration of SharedBuffer.
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::platformTransformColorSpace): Call value() to
convert RGBA32, which is now a class, to an 32-bit ARGB integer.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::cachedCGColor): Use constexpr SimpleColor::value function to
switch on a SimpleColor.
- platform/graphics/mac/ColorMac.mm:
(WebCore::oldAquaFocusRingColor): Use an explicit SimpleColor to turn a
hex integer into a Color without relying on implicit conversion.
- platform/graphics/win/ColorDirect2D.cpp:
(WebCore::Color::operator D2D1_COLOR_F const): Use value() to get the color
integer, just to keep this working. Probably needs a better implementation
at some point.
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable): Don't use makeRGB any more,
write the expression out here instead. More efficient anyway since these
are already single bytes.
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices): Use an explicit SimpleColor to turn a
hex integer into a Color without relying on implicit conversion.
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::drawBoxes): Ditto. Also use a modern
for loop instead of indexing.
- platform/mock/ScrollbarThemeMock.cpp:
(WebCore::ScrollbarThemeMock::paintTrackBackground): Ditto.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::calculateBorderStyleColor): Ditto.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::systemColor const): Ditto. Also used named colors.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::systemColor const): Ditto.
- rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject): Added checks against
Color::transparent instead of converting to an integer and checking
against 0. Removed unneeded isValid checks, since invalid color's ARGB
value is Color::transparent.
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Color>::encode): Use uint32_t explicitly to convert
the color value into a SimpleColor.
(IPC::ArgumentCoder<Color>::decode): Same thing, only the other direction.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:
(TestWebKitAPI::TEST): Use the Color constructor instead of Color::createUnchecked.
- 7:45 PM Changeset in webkit [255784] by
-
- 30 edits1 delete in trunk
Remove NSKeyedArchiverSPI.h now that WebKit only uses API
https://bugs.webkit.org/show_bug.cgi?id=207203
Reviewed by Anders Carlsson.
Source/WebCore:
- editing/cocoa/EditorCocoa.mm:
(WebCore::archivedDataForAttributedString): Removed NSKeyedArchiverSPI.h header and use
NSKeyedArchiver methods directly instead of through WebKit functions.
- loader/archive/cf/LegacyWebArchiveMac.mm:
(WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Ditto.
(WebCore::LegacyWebArchive::createPropertyListRepresentation): Ditto.
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write): Ditto.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto. Also added
a missing type check when unarchiving a dictionary.
(WebCore::createItemProviderRegistrationList): Ditto. Also added a missing null check.
- testing/cocoa/WebArchiveDumpSupport.mm:
(WebCoreTestSupport::createCFURLResponseFromResponseData): Ditto.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj: Remove NSKeyedArchiverSPI.h.
- pal/PlatformMac.cmake: Ditto.
- pal/spi/cocoa/NSKeyedArchiverSPI.h: Removed.
Source/WebKit:
- Platform/ios/AccessibilityIOS.mm:
(WebKit::newAccessibilityRemoteToken): Removed include of NSKeyedArchiverSPI.h;
use NSKeyedArchiver methods directly.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::encodeSecureCodingInternal): Ditto.
(IPC::decodeSecureCodingInternal): Ditto.
- Shared/Cocoa/DataDetectionResult.mm: Removed include of NSKeyedArchiverSPI.h.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: Ditto.
- Shared/ios/InteractionInformationAtPosition.mm: Ditto.
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<WebCore::ContentFilterUnblockHandler>::encode): Removed
include of NSKeyedArchiverSPI.h; use NSKeyedArchiver methods directly.
(IPC::ArgumentCoder<WebCore::ContentFilterUnblockHandler>::decode): Ditto.
- Shared/mac/WebHitTestResultData.mm: Removed include of NSKeyedArchiverSPI.h.
- UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
(API::Attachment::createSerializedRepresentation const): Removed
include of NSKeyedArchiverSPI.h; use NSKeyedArchiver methods directly. Also
refactored so the !CAN_SECURELY_ARCHIVE_FILE_WRAPPER path shares more code
with the modern code path. I think we can remove it entirely once we bump
the minimum version of macOS a bit more.
(API::Attachment::updateFromSerializedRepresentation): Ditto.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setObject:forBundleParameter:]): Ditto.
(-[WKProcessPool _setObjectsForBundleParametersWithDictionary:]): Ditto.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithCoder:]): Ditto.
(-[WKWebView _setInputDelegate:]): Ditto.
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration initWithCoder:]): Ditto.
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifest initWithCoder:]): Ditto.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::elementDidFocus): Ditto.
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Ditto.
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: Removed include of NSKeyedArchiverSPI.h
(WebKit::createUnarchiver): Added helper function to make the code below less repetitive.
(WebKit::InjectedBundle::initialize): Use the createUnarchiver function above and the
NSKeyedArchiver methods directly.
(WebKit::InjectedBundle::classesForCoder): Ditto.
(WebKit::InjectedBundle::setBundleParameter): Ditto.
(WebKit::InjectedBundle::setBundleParameters): Ditto.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm: Removed
include of NSKeyedArchiverSPI.h and call methods of NSKeyedArchiver directly.
- TestWebKitAPI/Tests/WebKitCocoa/Coding.mm: Ditto.
- TestWebKitAPI/Tests/ios/WKWebViewOpaque.mm: Ditto.
- TestWebKitAPI/Tests/mac/EarlyKVOCrash.mm: Ditto.
- 6:04 PM Changeset in webkit [255783] by
-
- 3 edits in trunk/LayoutTests
REGRESSION [ Mac wk2 ] Tests are jetsamming: Unable to shrink memory footprint of process below the kill thresold [sic]
https://bugs.webkit.org/show_bug.cgi?id=206627
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Disable websql tests.
- platform/mac-wk2/TestExpectations: Ditto.
- 6:02 PM Changeset in webkit [255782] by
-
- 723 edits2 copies5 moves71 adds36 deletes in trunk/Source/ThirdParty/ANGLE
Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=206318
Several important changes to fix layout test failures and timeouts in this update.
- Made expensive validation non-default in debug mode to reduce timeouts.
- Optimize disabling ARB_texture_rectangle to make shader compilation much faster.
- Flush before texture deletion to work around Mac Intel driver bug.
Patch by James Darpinian <James Darpinian> on 2020-02-04
Reviewed by Dean Jackson.
- ANGLE.plist: update commit hash
- ANGLE.xcodeproj/project.pbxproj: Add/remove files
- Compiler.cmake: Translated from compiler.gni
- GLESv2.cmake: Translated from libGLESv2.gni
- changes.diff: Now lists all changes from upstream.
- update-angle.sh: Diff command was wrong.
- Plus a whole lot of changes from upstream.
- 5:47 PM Changeset in webkit [255781] by
-
- 3 edits in trunk/Tools
results.webkit.org: Support Internal in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=204095
Rubber-stamped by Aakash Jain.
- Scripts/VCSUtils.pm:
(gitBisectStartBranchForDirectory): Renamed from gitBisectStartBranch.
(gitBranchForDirectory): Compute branch for directory.
(gitBranch): Compute branch for the current git directory.
(commitForDirectory): Add git support.
(gitBisectStartBranch): Renamed to gitBisectStartBranchForDirectory.
- Scripts/run-javascriptcore-tests:
(uploadResults): Check for Internal repository.
- 5:46 PM Changeset in webkit [255780] by
-
- 3 edits in trunk/Tools
REGRESSION: (r255611) [ Mac ] 3 lldb tests failing related to HashMap
https://bugs.webkit.org/show_bug.cgi?id=207204
Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-04
Reviewed by Simon Fraser.
Remove support for HashSet and HashMap until we are able to do the equivalent of reinterpret_cast<unsigned*>(pointer)[-1]
in LLDB's python API.
- lldb/lldb_webkit_unittest.py:
(TestSummaryProviders.serial_test_WTFHashMap_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFHashMap_of_vectors_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):
- 5:30 PM Changeset in webkit [255779] by
-
- 2 edits in trunk/Source/WebCore
Fix internal build after r255709
https://bugs.webkit.org/show_bug.cgi?id=207231
- platform/ios/WebItemProviderPasteboard.h:
Revert part of the original change.
- 5:13 PM Changeset in webkit [255778] by
-
- 3 edits in trunk/Tools
[EWS] Stop GTK/WPE build if jhbuild fails.
https://bugs.webkit.org/show_bug.cgi?id=207220
Reviewed by Adrian Perez de Castro.
- BuildSlaveSupport/ews-build/steps.py:
(InstallGtkDependencies): Halt on failure
(InstallWpeDependencies): Ditto
- 5:04 PM Changeset in webkit [255777] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebCore
Cherry-pick r254887. rdar://problem/58858225
Build fix.
- rendering/updating/RenderTreeBuilderInline.cpp: Add missing include.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254887 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [255776] by
-
- 14 edits5 deletes in branches/safari-609-branch
Cherry-pick r255189. rdar://problem/58943054
Unreviewed, revert r253984 as it appears to be causing assertion leaks.
https://bugs.webkit.org/show_bug.cgi?id=205687
Source/WebKit:
- Configurations/WebKit.xcconfig:
- Platform/spi/ios/RunningBoardServicesSPI.h: Removed.
- Scripts/process-entitlements.sh:
- Shared/DependencyProcessAssertion.cpp: Removed.
- Shared/DependencyProcessAssertion.h: Removed.
- Shared/NativeWebTouchEvent.h:
- Shared/ios/DependencyProcessAssertionIOS.mm: Removed.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::processWasResumed):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeConnection):
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::processTaskStateDidChange): (WebKit::WebProcess::releaseProcessWasResumedAssertions):
WebKitLibraries:
- WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:39 PM Changeset in webkit [255775] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ macOS wk1 ] ASSERTION FAILED: http/tests/notifications/event-listener-crash.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207237
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/mac-wk1/TestExpectations:
- 4:34 PM Changeset in webkit [255774] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255428. rdar://problem/59097797
[iOS] Remove report rule for 'com.apple.runningboard' from the Network and GPU process sandboxes
https://bugs.webkit.org/show_bug.cgi?id=206980
<rdar://problem/58900030>
Reviewed by Maciej Stachowiak.
Remove the logging now that we have useful backtraces.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255428 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:34 PM Changeset in webkit [255773] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb
Apply patch. rdar://problem/59098315
- 4:33 PM Changeset in webkit [255772] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254873. rdar://problem/59161343
Revert suppressesConnectionTerminationOnSystemChange part of r254081
https://bugs.webkit.org/show_bug.cgi?id=205751
<rdar://problem/58725096>
There was an API client that still hadn't migrated to the replacement SPI.
- NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):
- NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255771] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb
Apply patch. rdar://problem/59098315
- 4:33 PM Changeset in webkit [255770] by
-
- 10 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r248517. rdar://problem/58942734
Factor complex line layout path out from RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=200612
Reviewed by Zalan Bujtas.
This patch factors the line layout code that is currently part of the RenderBlockFlow and lives in RenderBlockLineLayout.cpp
into a new ComplexLineLayout class. ComplexLineLayout is a member of RenderBlockFlow.
In the future we can stop constructing ComplexLineLayout at all when using other line layout paths.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/ComplexLineLayout.cpp: Copied from Source/WebCore/rendering/RenderBlockLineLayout.cpp. (WebCore::ComplexLineLayout::ComplexLineLayout): (WebCore::ComplexLineLayout::appendRunsForObject): (WebCore::ComplexLineLayout::createRootInlineBox): (WebCore::ComplexLineLayout::createAndAppendRootInlineBox): (WebCore::ComplexLineLayout::createInlineBoxForRenderer): (WebCore::ComplexLineLayout::createLineBoxes): (WebCore::ComplexLineLayout::constructLine): (WebCore::ComplexLineLayout::textAlignmentForLine const): (WebCore::ComplexLineLayout::setMarginsForRubyRun): (WebCore::ComplexLineLayout::updateRubyForJustifiedText): (WebCore::ComplexLineLayout::computeExpansionForJustifiedText): (WebCore::ComplexLineLayout::updateLogicalWidthForAlignment): (WebCore::ComplexLineLayout::computeInlineDirectionPositionsForLine): (WebCore::ComplexLineLayout::computeInlineDirectionPositionsForSegment): (WebCore::ComplexLineLayout::removeInlineBox const): (WebCore::ComplexLineLayout::computeBlockDirectionPositionsForLine): (WebCore::ComplexLineLayout::handleTrailingSpaces): (WebCore::ComplexLineLayout::appendFloatingObjectToLastLine): (WebCore::ComplexLineLayout::createLineBoxesFromBidiRuns): (WebCore::ComplexLineLayout::layoutRunsAndFloats): (WebCore::ComplexLineLayout::restartLayoutRunsAndFloatsInRange): (WebCore::ComplexLineLayout::layoutRunsAndFloatsInRange): (WebCore::ComplexLineLayout::reattachCleanLineFloats): (WebCore::ComplexLineLayout::linkToEndLineIfNeeded): (WebCore::ComplexLineLayout::layoutLineBoxes): (WebCore::ComplexLineLayout::checkFloatInCleanLine): (WebCore::ComplexLineLayout::determineStartPosition): (WebCore::ComplexLineLayout::determineEndPosition): (WebCore::ComplexLineLayout::checkPaginationAndFloatsAtEndLine): (WebCore::ComplexLineLayout::lineWidthForPaginatedLineChanged const): (WebCore::ComplexLineLayout::matchedEndLine): (WebCore::ComplexLineLayout::addOverflowFromInlineChildren): (WebCore::ComplexLineLayout::deleteEllipsisLineBoxes): (WebCore::ComplexLineLayout::checkLinesForTextOverflow): (WebCore::ComplexLineLayout::positionNewFloatOnLine): (WebCore::ComplexLineLayout::startAlignedOffsetForLine): (WebCore::ComplexLineLayout::updateFragmentForLine const): (WebCore::ComplexLineLayout::style const): (WebCore::ComplexLineLayout::layoutContext const): (WebCore::RenderBlockFlow::appendRunsForObject): Deleted. (WebCore::RenderBlockFlow::createRootInlineBox): Deleted. (WebCore::RenderBlockFlow::createAndAppendRootInlineBox): Deleted. (WebCore::createInlineBoxForRenderer): Deleted. (WebCore::RenderBlockFlow::createLineBoxes): Deleted. (WebCore::RenderBlockFlow::constructLine): Deleted. (WebCore::RenderBlockFlow::textAlignmentForLine const): Deleted. (WebCore::RenderBlockFlow::setMarginsForRubyRun): Deleted. (WebCore::RenderBlockFlow::updateRubyForJustifiedText): Deleted. (WebCore::RenderBlockFlow::computeExpansionForJustifiedText): Deleted. (WebCore::RenderBlockFlow::updateLogicalWidthForAlignment): Deleted. (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine): Deleted. (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment): Deleted. (WebCore::RenderBlockFlow::removeInlineBox const): Deleted. (WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine): Deleted. (WebCore::RenderBlockFlow::handleTrailingSpaces): Deleted. (WebCore::RenderBlockFlow::appendFloatingObjectToLastLine): Deleted. (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): Deleted. (WebCore::RenderBlockFlow::layoutRunsAndFloats): Deleted. (WebCore::RenderBlockFlow::restartLayoutRunsAndFloatsInRange): Deleted. (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): Deleted. (WebCore::RenderBlockFlow::reattachCleanLineFloats): Deleted. (WebCore::RenderBlockFlow::linkToEndLineIfNeeded): Deleted. (WebCore::RenderBlockFlow::layoutLineBoxes): Deleted. (WebCore::RenderBlockFlow::checkFloatInCleanLine): Deleted. (WebCore::RenderBlockFlow::determineStartPosition): Deleted. (WebCore::RenderBlockFlow::determineEndPosition): Deleted. (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine): Deleted. (WebCore::RenderBlockFlow::lineWidthForPaginatedLineChanged const): Deleted. (WebCore::RenderBlockFlow::matchedEndLine): Deleted. (WebCore::RenderBlock::generatesLineBoxesForInlineChild): Deleted. (WebCore::RenderBlockFlow::addOverflowFromInlineChildren): Deleted. (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes): Deleted. (WebCore::RenderBlockFlow::checkLinesForTextOverflow): Deleted. (WebCore::RenderBlockFlow::positionNewFloatOnLine): Deleted. (WebCore::RenderBlockFlow::startAlignedOffsetForLine): Deleted. (WebCore::RenderBlockFlow::updateFragmentForLine const): Deleted.
- rendering/ComplexLineLayout.h: Added. (WebCore::ComplexLineLayout::lineBoxes): (WebCore::ComplexLineLayout::lineBoxes const): (WebCore::ComplexLineLayout::firstRootBox const): (WebCore::ComplexLineLayout::lastRootBox const):
- rendering/InlineIterator.h: (WebCore::IsolateTracker::addFakeRunIfNecessary): (WebCore::InlineBidiResolver::appendRunInternal):
- rendering/RenderBlock.h:
- rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::RenderBlockFlow): (WebCore::RenderBlockFlow::willBeDestroyed): (WebCore::RenderBlockFlow::layoutInlineChildren): (WebCore::RenderBlockFlow::updateStaticInlinePositionForChild): (WebCore::RenderBlockFlow::deleteLines): (WebCore::RenderBlockFlow::hitTestInlineChildren): (WebCore::RenderBlockFlow::addOverflowFromInlineChildren): (WebCore::RenderBlockFlow::paintInlineChildren): (WebCore::RenderBlockFlow::layoutSimpleLines): (WebCore::RenderBlockFlow::ensureLineBoxes):
- rendering/RenderBlockFlow.h: (WebCore::RenderBlockFlow::lineBoxes): (WebCore::RenderBlockFlow::lineBoxes const): (WebCore::RenderBlockFlow::firstRootBox const): (WebCore::RenderBlockFlow::lastRootBox const): (WebCore::RenderBlockFlow::floatingObjects): (WebCore::RenderBlockFlow::complexLineLayout): (WebCore::RenderBlockFlow::overrideTextAlignmentForLine const): (WebCore::RenderBlockFlow::adjustInlineDirectionLineBounds const):
- rendering/RenderBlockLineLayout.cpp: Removed.
- rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::overrideTextAlignmentForLine const): (WebCore::RenderRubyBase::textAlignmentForLine const): Deleted.
- rendering/RenderRubyBase.h:
- rendering/RenderRubyText.cpp: (WebCore::RenderRubyText::overrideTextAlignmentForLine const): (WebCore::RenderRubyText::textAlignmentForLine const): Deleted.
- rendering/RenderRubyText.h:
- rendering/SimpleLineLayoutFunctions.cpp: (WebCore::SimpleLineLayout::generateLineBoxTree):
- rendering/line/LineBreaker.cpp: (WebCore::LineBreaker::skipLeadingWhitespace):
- rendering/line/LineBreaker.h: (WebCore::LineBreaker::positionNewFloatOnLine):
- rendering/line/LineInlineHeaders.h: (WebCore::setStaticPositions):
- rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::createRootInlineBox): Deleted.
- rendering/svg/RenderSVGText.h:
- rendering/updating/RenderTreeBuilderList.cpp: (WebCore::generatesLineBoxesForInlineChild): (WebCore::getParentOfFirstLineBox):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255769] by
-
- 39 edits in branches/safari-609-branch
Cherry-pick r255461. rdar://problem/59153618
Add WKNavigationDelegate SPI to disable TLS 1.0 and 1.1
https://bugs.webkit.org/show_bug.cgi?id=206979
Reviewed by Brady Eidson.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveChallenge):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/NetworkSessionCreationParameters.cpp: (WebKit::NetworkSessionCreationParameters::encode const): (WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::didReceiveChallenge):
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::didReceiveChallenge): (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
- NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (processServerTrustEvaluation): (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
- Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/APINavigationClient.h: (API::NavigationClient::shouldAllowLegacyTLS):
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::setNavigationDelegate): (WebKit::systemAllowsLegacyTLSFor): (WebKit::NavigationState::NavigationClient::shouldAllowLegacyTLS):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
Source/WebKitLegacy/mac:
- WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):
Tools:
- MiniBrowser/mac/SettingsController.m:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (-[TLSNavigationDelegate waitForDidFinishNavigation]): (-[TLSNavigationDelegate waitForDidFailProvisionalNavigation]): (-[TLSNavigationDelegate receivedShouldAllowLegacyTLS]): (-[TLSNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]): (-[TLSNavigationDelegate webView:didFinishNavigation:]): (-[TLSNavigationDelegate webView:didFailProvisionalNavigation:withError:]): (-[TLSNavigationDelegate _webView:authenticationChallenge:shouldAllowLegacyTLS:]): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255461 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255768] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r255533. rdar://problem/59098565
REGRESSION(r252185): NetworkSessionCocoa cancels downloads that receive authentication challenges
https://bugs.webkit.org/show_bug.cgi?id=206984
rdar://problem/58999654
Reviewed by Brady Eidson.
Source/WebKit:
r252185 changed the early return in WKNetworkSessionDelegate's -...task:didReceiveChallenge:... method
from "cancel the task and return early if self has no _session" to "cancel the task and return early
if we can't determine the network session for the given data task". When this method is called for
an NSURLSessionDownloadTask, this early return is hit because there is no NetworkDataTaskCocoa
for an active download. As a result, the download is canceled when it might have otherwise been able
to proceed.
Fix this by adding a code path to fetch the NetworkSession associated with the Download when an
NSURLSessionDownloadTask receives an authentication challenge. This ensures we can actually handle
the challenge appropriately and not just cancel the task.
- NetworkProcess/Downloads/Download.h: (WebKit::Download::sessionID const):
Expose the session ID so we can use it to look up the NetworkSession for a Download.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
Remove an unnecessary redeclaration of networkDataTask, and also an unneeded assertion that
networkDataTask != nullptr. Even if this is the case, the code that eventually handles this
task will null check it and handle the challenge as a websocket task or download task
based on the taskIdentifier.
Tools:
Add an API test for a resumed download that receives an authentication challenge. The download
delegate should be asked to handle the challenge, and the download should be able to finish.
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[DownloadCancelingDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]): (-[DownloadCancelingDelegate _download:didReceiveData:]): (-[DownloadCancelingDelegate _downloadDidCancel:]): (-[AuthenticationChallengeHandlingDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]): (-[AuthenticationChallengeHandlingDelegate _downloadDidFinish:]): (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255767] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r255507. rdar://problem/59098088
REGRESSION: [ iPadOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html always fails
<https://webkit.org/b/206759>
<rdar://problem/58872607>
Reviewed by Brent Fulgham.
Source/WebKit:
Test: imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html
- Platform/spi/ios/UIKitSPI.h: (-[UIViewController isPerformingModalTransition]): Add SPI declaration.
Tools:
- WebKitTestRunner/ios/UIScriptControllerIOS.h: (WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
- Add declaration.
- WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
- Implement by waiting for -[UIViewController isPerformingModalTransition] to return NO while spinning the runloop. (WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
- Call waitForModalTransitionToFinish() to fix the test.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255766] by
-
- 6 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255490. rdar://problem/59097775
Regression(r255359): imported/mozilla/svg/svg-integration/clipPath-html-06.xhtml is failing consistently on windows
https://bugs.webkit.org/show_bug.cgi?id=206991
<rdar://problem/59030252>
Reviewed by Antoine Quint.
The previous approach may have still allowed RenderStyles computed with non-current FontCascade in
matched properties caches (because some non-font properties were resolved based on obsolete font information).
This patch takes a more robust approach by simply preventing caching of styles with non-current font.
- dom/Document.h: (WebCore::Document::fontSelector const):
- platform/graphics/FontCascade.cpp: (WebCore::FontCascade::isCurrent const):
- platform/graphics/FontCascade.h:
- style/MatchedDeclarationsCache.cpp: (WebCore::Style::MatchedDeclarationsCache::isCacheable):
- style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::updateFont):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255765] by
-
- 8 edits2 adds in branches/safari-609-branch
Cherry-pick r255422. rdar://problem/59097789
[Web Animations] Changing the delay of an accelerated animation doesn't seek the animation
https://bugs.webkit.org/show_bug.cgi?id=206990
<rdar://problem/58675608>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/seeking-by-changing-delay-accelerated.html
In order to seek an accelerated animation, we need to update the animation on the target element's backing GraphicsLayer. We do this by enqueuing an
AcceleratedAction:Seek command which is done by calling KeyframeEffect::animationDidSeek(), which we would only call from WebAnimation::setCurrentTime().
However, seeking can be performed by modifying the animation's effect's timing.
We now call WebAnimation::effectTimingDidChange() with an optional ComputedEffectTiming for call sites that want to provide timing data prior to
modifying timing properties. This allows WebAnimation::effectTimingDidChange() to compare the previous progress with the new progress to determine if the
animation was seeked, so KeyframeEffect::animationDidSeek() may be called.
There are two places where we now call WebAnimation::effectTimingDidChange() with the previous timing data. First, when updateTiming() is called
through the JavaScript API (AnimationEffect::updateTiming) and when a CSS Animation's timing has been modified by changing some of the animation CSS
properties (CSSAnimation::syncPropertiesWithBackingAnimation).
- animation/AnimationEffect.cpp: (WebCore::AnimationEffect::updateTiming): Compute the previous timing data and provide it to WebAnimation::effectTimingDidChange().
- animation/CSSAnimation.cpp: (WebCore::CSSAnimation::syncPropertiesWithBackingAnimation): Compute the previous timing data and provide it to WebAnimation::effectTimingDidChange().
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeAcceleratedPropertiesState): Drive-by fix for faulty logic introduced in a recent patch (r255383). (WebCore::KeyframeEffect::applyPendingAcceleratedActions): We need to reset the m_isRunningAccelerated flag when an animation was supposed to be stopped but couldn't be because the target's layer backing was removed prior to the accelerated action being committed.
- animation/WebAnimation.cpp: (WebCore::WebAnimation::effectTimingDidChange): If previous timing data was provided, check whether its progress differs from the current timing data and call KeyframeEffect::animationDidSeek().
- animation/WebAnimation.h:
LayoutTests:
Add a new test which would fail prior to this patch where we pause an animation after it has started playing accelerated and
change its delay to check that it correctly seeks the animation.
- webanimations/seeking-by-changing-delay-accelerated-expected.html: Added.
- webanimations/seeking-by-changing-delay-accelerated.html: Added.
- platform/win/TestExpectations: Mark the new test as failing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255764] by
-
- 7 edits in branches/safari-609-branch/Source
Cherry-pick r255415. rdar://problem/59098091
REGRESSION (r255322): macCatalyst: Tapping in an input field doesn't change the selection location
https://bugs.webkit.org/show_bug.cgi?id=206978
Reviewed by Wenson Hsieh.
Source/WebCore:
- page/ChromeClient.h: (WebCore::ChromeClient::shouldUseMouseEventForSelection): (WebCore::ChromeClient::shouldUseMouseEventsForSelection): Deleted.
- page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect): (WebCore::EventHandler::handleMousePressEvent):
- page/EventHandler.h: Plumb the event through to the ChromeClient so it can use it to make decisions.
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: (WebKit::WebChromeClient::shouldUseMouseEventForSelection): (WebKit::WebChromeClient::shouldUseMouseEventsForSelection): Deleted. Allow single-click events to change the selection; this is required in order to allow WebCore to set the selection in the case that the UITextInteraction gestures haven't yet been installed. Continue to not allow multi-click events to change the selection, because these are the ones that conflict with UIKit's behaviors.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255763] by
-
- 26 edits in branches/safari-609-branch
Cherry-pick r255322. rdar://problem/59097817
macCatalyst: Triple clicking to select a sentence results in an empty selection
https://bugs.webkit.org/show_bug.cgi?id=206863
<rdar://problem/58776993>
Reviewed by Wenson Hsieh.
Source/WebCore:
- editing/EditingBehavior.h: (WebCore::EditingBehavior::shouldSelectOnContextualMenuClick const):
- page/ChromeClient.h: (WebCore::ChromeClient::shouldUseMouseEventsForSelection):
- page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect): (WebCore::canMouseDownStartSelect): Deleted.
- page/EventHandler.h: Disable WebCore's mouse-event-driven selection mechanisms on macCatalyst, where we use a UITextInteraction-driven selection instead. Otherwise, they conflict with each other in a chaotic fashion.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm: (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
- UIProcess/API/mac/WKWebViewPrivateForTestingMac.h:
- UIProcess/API/mac/WKWebViewTestingMac.mm: (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): Deleted.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::handleProcessSwapOrExit): (WebKit::WebViewImpl::doAfterProcessingAllPendingMouseEvents): Deleted. (WebKit::WebViewImpl::didFinishProcessingAllPendingMouseEvents): Deleted. (WebKit::WebViewImpl::flushPendingMouseEventCallbacks): Deleted.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::doAfterProcessingAllPendingMouseEvents): (WebKit::WebPageProxy::didFinishProcessingAllPendingMouseEvents): (WebKit::WebPageProxy::flushPendingMouseEventCallbacks):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::didFinishProcessingAllPendingMouseEvents): Deleted. Move "doAfterProcessingAllPendingMouseEvents" to WebPage instead of WebViewImpl, so it can be used on all platforms. Expose it via WKWebView.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: (WebKit::WebChromeClient::shouldUseMouseEventsForSelection):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/MacCatalystMouseSupport.mm: Added. (-[WKTestingEvent locationInView:]): (-[WKTestingEvent _setButtonMask:]): (-[WKTestingEvent _buttonMask]): (-[WKTestingTouch locationInView:]): (-[WKTestingTouch setTapCount:]): (-[WKTestingTouch tapCount]): (mouseGesture): (TEST): Add a test ensuring that simply plumbing mouse events to WebCore does not result in a selection change in macCatalyst (because UIKit will handle the selection change itself, instead).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255322 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255762] by
-
- 4 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255260. rdar://problem/59098323
[Web Animations] Separate setting a timeline's current time from updating its animations
https://bugs.webkit.org/show_bug.cgi?id=206880
Reviewed by Dean Jackson.
While we must always update the current time of all timelines if a new animation frame has been requested,
regardless of the reason (rAF callback, animation servicing, etc.), we should only update timelines' animations
if at least one timeline has requested an update. We used to decide this at the DocumentTimeline level, but
this needs to be coordinated at the Document level to consider all timelines at once.
This is required for an upcoming patch where we make changes to the way we schedule animations to correctly
support mixed accelerated and non-accelerated properties.
No new tests since this shouldn't yield any visible behavior change.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::updateCurrentTime): (WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
- animation/DocumentTimeline.h:
- dom/Document.cpp: (WebCore::Document::updateAnimationsAndSendEvents):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255761] by
-
- 20 edits in branches/safari-609-branch
Cherry-pick r255234. rdar://problem/59098321
[Web Animations] Make Animation.timeline read-write only if a runtime flag is enabled
https://bugs.webkit.org/show_bug.cgi?id=206173
<rdar://problem/58527432>
Reviewed by Dean Jackson.
Source/WebCore:
Make the timeline property of Animation read-write only if the new WebAnimationsMutableTimelines runtime flag is enabled.
- animation/WebAnimation.idl: Make the "timeline" property conditionally read-write if WebAnimationsMutableTimelines is enabled.
- bindings/js/WebCoreBuiltinNames.h: With the new RuntimeConditionallyReadWrite property used in WebAnimation.idl, it is necessary to declare the name of the affected property, in this case "timeline", in WebCoreBuiltinNames.
- page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setWebAnimationsMutableTimelinesEnabled): (WebCore::RuntimeEnabledFeatures::webAnimationsMutableTimelinesEnabled const):
Source/WebKit:
Add a new WebAnimationsMutableTimelines runtime flag.
- Shared/WebPreferences.yaml:
Source/WebKitLegacy/mac:
Add a new WebAnimationsMutableTimelines runtime flag.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm: (-[WebPreferences webAnimationsMutableTimelinesEnabled]): (-[WebPreferences setWebAnimationsMutableTimelinesEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm: (-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
Add a new WebAnimationsMutableTimelines runtime flag.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): (WebPreferences::setWebAnimationsMutableTimelinesEnabled): (WebPreferences::webAnimationsMutableTimelinesEnabled):
- WebPreferences.h:
- WebView.cpp: (WebView::notifyPreferencesChanged):
Tools:
Manually enable the new WebAnimationsMutableTimelines runtime flag in DumpRenderTree.
- DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures):
- DumpRenderTree/win/DumpRenderTree.cpp: (enableExperimentalFeatures):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255234 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [255760] by
-
- 3 edits1 delete in branches/safari-609-branch
Cherry-pick r254082. rdar://problem/59098088
REGRESSION: [ iOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205458
<rdar://problem/58081704>
Patch by Antoine Quint <Antoine Quint> on 2020-01-06
Reviewed by Wenson Hsieh.
Tools:
The last sub-test in imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html checks on the
ability to activate various form controls after disabling and re-enabling them. Two of those form controls, <select>
and <textarea>, would trigger animations of the web view's UIScrollView causing touches to be consumed by UIKit and
never seen by the WKContentView, and as such the expected "click" events would not be received. It would have been
possible to modify the test to wait on any potential page scroll to complete before dispatching taps, but since this
is a WPT test, we cannot modify it. Instead, we make a change to the function called by uiScriptController.singleTapAtPoint()
to interrupt any pending UIScrollView animation when a tap is being triggered on the web view. Credit to Wenson Hsieh
for suggesting this simple and effective approach.
- WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
LayoutTests:
Remove the platform-specific expectation since this test now passes reliably on iOS as well.
- platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254082 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255759] by
-
- 2 edits in branches/safari-609-branch/Source/WebKitLegacy/mac
Cherry-pick r255494. rdar://problem/59097756
[WK1] hiddenPageCSSAnimationSuspensionEnabled should be enabled by default for Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=207042
<rdar://problem/58934778>
Reviewed by Zalan Bujtas.
While HiddenPageCSSAnimationSuspensionEnabled is specified in WebPreferences.yaml to default to DEFAULT_HIDDEN_PAGE_CSS_ANIMATION_SUSPENSION_ENABLED,
which is defined to be true on Cocoa platforms in WebPreferencesDefaultValues.h, it is hard-coded to @NO in WK1 although clearly the intent is for
this preference to be enabled. So we switch that default value in WK1 as well.
- WebView/WebPreferences.mm: (+[WebPreferences initialize]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255758] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255489. rdar://problem/59097788
[Web Animations] DocumentTimeline shouldn't suspend itself if hiddenPageCSSAnimationSuspensionEnabled is disabled
https://bugs.webkit.org/show_bug.cgi?id=207014
<rdar://problem/58815952>
Reviewed by Antti Koivisto.
We suspend a timeline upon consutrction if we know that the page is not visible because, unlike CSSAnimationController, the DocumentTimeline is not guaranteed
to be created by the time the Page sets the initial visibility state. This is because DocumentTimeline is created as needed when there are CSS Animations or CSS
Transitions created for the page, or if the content uses any of the Web Animations APIs.
However, the Page::setIsVisibleInternal() function that would call DocumentTimeline::resumeAnimations() at a later time checks whether the hiddenPageCSSAnimationSuspensionEnabled
setting is enabled. So we must respect that setting also when suspending animations in the first place or we risk ending up in a state where we suspend animations
because the page is not visible upon timeline creation, but never resuming animations later due to the hiddenPageCSSAnimationSuspensionEnabled setting being false.
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::DocumentTimeline):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255757] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255431. rdar://problem/59097765
REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
https://bugs.webkit.org/show_bug.cgi?id=206291
<rdar://problem/58606666>
Unreviewed, partial rollout of r252064 which seems to have introduced the regression.
No new tests, covered by existing test
- Modules/webdatabase/SQLTransaction.cpp: (WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255756] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255375. rdar://problem/59097770
Crash under com.apple.WebKit.Networking at WebKit: WebKit::WebIDBServer::suspend
https://bugs.webkit.org/show_bug.cgi?id=206904
<rdar://problem/58791603>
Reviewed by Maciej Stachowiak.
Wait until m_server is set in constructor of WebIDBServer to make sure m_server can be accessed in
WebIDBServer::suspend.
- NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::WebIDBServer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255755] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r255329. rdar://problem/59097765
REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
https://bugs.webkit.org/show_bug.cgi?id=206291
<rdar://problem/58606666>
Reviewed by Maciej Stachowiak.
Source/WebCore:
I found that extending the lifetime of the SQLTransaction by capturing protectedThis in the event loop
task was the source of the flaky timeouts & crashes. Queueing this event loop task in
notifyDatabaseThreadIsShuttingDown() is actually not necessary because calling callErrorCallbackDueToInterruption()
directly would schedule the event loop task for us. Also, in callErrorCallbackDueToInterruption(),
the event loop task only keeps the error callback alive, not just the SQLTransaction object.
No new tests, unskipped existing test.
- Modules/webdatabase/SQLTransaction.cpp: (WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
LayoutTests:
Unskip test that is no longer flaky.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255754] by
-
- 4 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255154. rdar://problem/58942702
REGRESSION: [ Mac Debug WK1 ] inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206362
<rdar://problem/58649476>
Reviewed by Brian Burg.
Tentative fix. Modifying the
iceCandidateFilteringEnabledWebCore setting causes any
existing/pending ICE candidates to immediately fireicecandidateevents. Wait to change
the setting usingPage.overrideSettinguntil after the JavaScript has set up the various
connections so that it's guaranteed to not miss anyicecandidateevents. Additionally
remove the default 10s timeout in case the debug build is too slow.
- inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
- inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt:
- platform/mac-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255154 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255753] by
-
- 10 edits in branches/safari-609-branch
Cherry-pick r255054. rdar://problem/58942727
[iOS] Support setting minimum effective device width during dynamic viewport size updates
https://bugs.webkit.org/show_bug.cgi?id=206709
<rdar://problem/58713872>
Reviewed by Tim Horton.
Source/WebKit:
Changes to minimum effective device width are currently always propagated to the web process via out-of-band
updates to the web process. During animated resize, Safari currently changes the minimum effective device width
prior to updating the view size; this causes the viewport configuration to temporarily be in a state where the
new value for minimum effective device width is used, but the old viewport width and height are still used.
This subsequently breaks existing logic in WebPage::dynamicViewportSizeUpdate that attempts to keep the portion
of the unobscured content width that is visible consistent before and after rotation (see
visibleHorizontalFraction), since that code will be mislead into believing that the wrong fraction of content
width is visible.
To fix this, we roll minimum effective device width changes along with view size (and other attributes) in
dynamic viewport size updates.
Test: WebKit.ChangeFrameAndMinimumEffectiveDeviceWidthDuringAnimatedResize
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setViewScale:]): (-[WKWebView _setMinimumEffectiveDeviceWidth:]):
During animated resize, just set m_minimumEffectiveDeviceWidth without notifying the web process; if the value
changed during the update block, we send the new minimum effective device width to the web page as a part of
the dynamic viewport size update.
Also, make a drive-by adjustment to use
_page->viewLayoutSize()instead of recomputing the active layout
bounds when we know that only the minimum effective device width is changing. We also apply the same adjustment
above, in -_setViewScale:.
- UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _beginAnimatedResizeWithUpdates:]):
- UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::viewLayoutSize const): (WebKit::WebPageProxy::setMinimumEffectiveDeviceWidthWithoutViewportConfigurationUpdate):
Add a helper method to update the minimum effective device width without updating the viewport configuration in
the web process. This is only used when the minimum effective device width is specified in the middle of a
dynamic viewport size update (i.e. animated resize).
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
Plumb the new minimum effective device width over to the web process as a part of the dynamic viewport size
update, and update both the new view size and minimum effective device width on the viewport configuration at
the same time.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::dynamicViewportSizeUpdate):
Tools:
Adds a new API test that changes both the effective minimum device width and view size during animated resize.
- TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255752] by
-
- 2 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r253647. rdar://problem/59098087
REGRSSION: [ High Sierra Catalina ] (r253310) compositing/video/video-border-radius-clipping.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205226
Unreviewed test gardening. Mark the test as an image failure on WK1.
The test fails with a few different pixels in the video frames.
- platform/mac-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255751] by
-
- 33 edits3 adds in branches/safari-609-branch
Cherry-pick r255532. rdar://problem/59098561
Add support for specifying background colors when setting marked text
https://bugs.webkit.org/show_bug.cgi?id=207065
<rdar://problem/57876140>
Reviewed by Tim Horton.
Source/WebCore:
Add support for rendering custom highlights (background colors) behind marked text in WebCore. To do this, we
plumb a Vector of CompositionHighlights alongside the Vector of CompositionUnderlines to Editor. At paint time,
we then consult this highlight data to determine which ranges of text in the composition should paint using
custom background colors.
Note that in the future, we should consider refactoring both composition underlines and highlights to use the
MarkedText mechanism for decorating ranges of text instead.
Test: editing/input/composition-highlights.html
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- editing/CompositionHighlight.h: Added. (WebCore::CompositionHighlight::CompositionHighlight): (WebCore::CompositionHighlight::encode const): (WebCore::CompositionHighlight::decode):
Add CompositionHighlight, which represents a range in the composition that should be highlighted with a given
background color.
- editing/Editor.cpp: (WebCore::Editor::clear): (WebCore::Editor::setComposition):
Add logic for clearing and updating m_customCompositionHighlights.
- editing/Editor.h: (WebCore::Editor::compositionUsesCustomHighlights const): (WebCore::Editor::customCompositionHighlights const):
- rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintCompositionBackground):
If custom composition highlights are given, use those when painting the composition background; otherwise,
default to painting the entire composition range usingColor::compositionFill.
Source/WebCore/PAL:
Add an SPI soft-linking declaration for NSMarkedClauseSegmentAttributeName.
- pal/spi/cocoa/NSAttributedStringSPI.h:
Source/WebKit:
Implement -setAttributedMarkedText:selectedRange: on WKContentView, and have it extract highlight color
information from the given attributed string. Plumb this through to the web process by serializing and
deserializingWebCore::CompositionHighlights.
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setMarkedText):
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):
For each marked text clause, grab the specified background color (defaulting to Color::compositionFill) and use
it to create a list of CompositionHighlights.
(-[WKContentView setAttributedMarkedText:selectedRange:]):
(-[WKContentView setMarkedText:selectedRange:]):
(-[WKContentView _setMarkedText:highlights:selectedRange:]):
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageSetComposition):
Add testing support for specifying highlight ranges when setting marked text.
- WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
- WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp: (WebKit::WebEditorClient::didDispatchInputMethodKeydown):
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setCompositionForTesting): (WebKit::WebPage::setCompositionAsync):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
Adjust some call sites of Editor::setComposition().
- WebView/WebFrame.mm: (-[WebFrame setMarkedText:selectedRange:]): (-[WebFrame setMarkedText:forCandidates:]):
- WebView/WebHTMLView.mm: (-[WebHTMLView setMarkedText:selectedRange:]):
Source/WebKitLegacy/win:
Adjust some call sites of Editor::setComposition().
- WebView.cpp: (WebView::onIMEComposition): (WebView::setCompositionForTesting):
Tools:
Add support in WebKitTestRunner for specifying a list of highlight ranges when setting marked text. This comes
in the form of an additional argument to TextInputController::setMarkedText, which contains an array of objects,
each describing one range (in the composition) to highlight.
- DumpRenderTree/ios/TextInputControllerIOS.m: (+[TextInputController isSelectorExcludedFromWebScript:]): (+[TextInputController webScriptNameForSelector:]): (-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:highlights:]): (-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:]): Deleted.
- DumpRenderTree/mac/TextInputControllerMac.m: (+[TextInputController isSelectorExcludedFromWebScript:]): (+[TextInputController webScriptNameForSelector:]): (-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:highlights:]): (-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:]): Deleted.
- WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl:
- WebKitTestRunner/InjectedBundle/TextInputController.cpp: (WTR::arrayLength): (WTR::createCompositionHighlightData):
Add logic to convert a given JSObject containing the composition highlight information into a WKArrayRef, which
is then passed into WebKit via WKBundlePageSetComposition.
(WTR::TextInputController::setMarkedText):
- WebKitTestRunner/InjectedBundle/TextInputController.h:
LayoutTests:
Add a test to check that highlighting different parts of a composition range results in the same behavior as
applying background colors using CSS. This test is currently only supported in WebKit2.
- TestExpectations:
- editing/input/composition-highlights-expected.html: Added.
- editing/input/composition-highlights.html: Added.
- platform/wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255532 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255750] by
-
- 2 edits in branches/safari-609-branch/JSTests
Cherry-pick r255529. rdar://problem/59098310
Unreviewed. Don't dump disassembly in test.
- stress/get-getter-setter-by-offset-not-always-safe-to-execute.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255749] by
-
- 3 edits1 add in branches/safari-609-branch
Cherry-pick r255528. rdar://problem/59098310
GetGetterSetterByOffset and GetGetter/GetSetter are not always safe to execute
https://bugs.webkit.org/show_bug.cgi?id=206805
<rdar://problem/58898161>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/get-getter-setter-by-offset-not-always-safe-to-execute.js: Added.
Source/JavaScriptCore:
This patch fixes two bugs. The first is GetGetterSetterByOffset. Previously,
we were just checking that we could load the value safely. However, because
GetGetterSetterByOffset returns a GetterSetter object, we can only safely
move this node into a context where it's guaranteed that the offset loaded
will return a GetterSetter.
The second fix is GetGetter/GetSetter were both always marked as safe to execute.
However, they're only safe to execute when the incoming value to load from
is a GetterSetter object.
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255748] by
-
- 3 edits2 adds in branches/safari-609-branch
Cherry-pick r255504. rdar://problem/59097771
[Web Animations] [WK1] REGRESSION: opacity doesn't animate
https://bugs.webkit.org/show_bug.cgi?id=207044
<rdar://problem/59061225>
Reviewed by Simon Fraser.
Source/WebCore:
Test: webanimations/opacity-animation.html
We failed to animate opacity in WK1 because we made the assumption that just because an animation targets only accelerated properties it would be accelerated
and wouldn't need to be updated as it runs in WebAnimation::timeToNextTick(). This is incorrect, an animation may fail to start or may fail to get a composited
layer, the latter being the case on WK1 because usesCompositing() is false in RenderLayerCompositor::requiresCompositingForAnimation().
We now check that an animation is both only animating accelerated properties and running accelerated to determine that an animation won't need to be updated
until it completes.
- animation/WebAnimation.cpp: (WebCore::WebAnimation::timeToNextTick const):
LayoutTests:
- webanimations/opacity-animation-expected.html: Added.
- webanimations/opacity-animation.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255747] by
-
- 3 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255503. rdar://problem/59097793
REGRESSION (r251511): [iOS] HDR Playback broken
https://bugs.webkit.org/show_bug.cgi?id=207052
<rdar://problem/58975614>
Reviewed by Maciej Stachowiak.
I missed an XPC service in Bug 203318 when I stopped importing the 'common.sb' sandbox. This broke some
aspects of HDR playback for certain clients.
This patch returns the XPC service, and unblocks access to a network preference file that AVFoundation
needs to read to support some media playback features.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255503 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255746] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255487. rdar://problem/59097796
REGRESSION: [iOS release] http/tests/security/window-named-proto.html is a flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=206672
<rdar://problem/58838583>
Reviewed by Chris Dumez.
This is a speculative fix to increase the priority of the DataURLDecoder's WorkQueue such that
it is less likely to be preempted.
Covered by existing tests.
- platform/network/DataURLDecoder.cpp: (WebCore::DataURLDecoder::decodeQueue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255487 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255745] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r255466. rdar://problem/59097777
Unreviewed, another speculative test fix after r255041
Source/WebKit:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: (WebKit::MockLocalConnection::getAttestation const): Adds kSecAttrAccessible: kSecAttrAccessibleAfterFirstUnlock to secItem to bypass potential error due to screen locks.
Tools:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::addTestKeyToKeychain): Adds kSecAttrAccessible: kSecAttrAccessibleAfterFirstUnlock to secItem to bypass potential error due to screen locks.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255744] by
-
- 4 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255458. rdar://problem/59097790
Can still get stuck after swipe backwards with a slow server, even after r254552
https://bugs.webkit.org/show_bug.cgi?id=207017
<rdar://problem/59016256>
Reviewed by Chris Dumez.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::unfreezeLayerTreeDueToSwipeAnimation):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp: There's a second case where you can get stuck with the "swipe gesture" layer tree freeze reason in the web process: when doing a cross-origin navigation where the load takes more than 3 seconds (the swipe snapshot timeout) to commit, the provisional page will have mirrored the original page's frozen state upon creation, but will not ever receive the unfreeze, because it is sent while still provisional.
To fix this, just forward the unfreeze message to the provisional page.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255743] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255417. rdar://problem/59097780
Do not notify other applications when deactivating the audio session
https://bugs.webkit.org/show_bug.cgi?id=206963
Reviewed by Jer Noble.
Tested manually because this change is iOS-only and only reproduces on hardware.
- platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSession::tryToSetActiveInternal): Don't pass the AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation flag to -[AVAudioSession setActive:error].
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [255742] by
-
- 3 edits2 copies in branches/safari-609-branch/JSTests
Cherry-pick r255390. rdar://problem/59097795
Unreviewed, update tests
https://bugs.webkit.org/show_bug.cgi?id=206846
- stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-debug.js: Copied from JSTests/stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js. (shouldBe): (putter): (not_string.toString):
- stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:
- stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten-debug.js: Copied from JSTests/stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js. (shouldBe): (dictionary): (putter): (not_string.toString):
- stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255741] by
-
- 4 edits2 adds in branches/safari-609-branch
Cherry-pick r255385. rdar://problem/59097758
[iPadOS] Select popovers on amazon.com sometimes dismiss immediately after appearing
https://bugs.webkit.org/show_bug.cgi?id=206948
<rdar://problem/58954516>
Reviewed by Tim Horton.
Source/WebKit:
Amazon adds active touchstart event listeners to their select elements, where they call preventDefault() and
programmatically focus the select element. Doing so prevents clicks from being dispatched by allowing the web
touch event gesture to recognize instead of the synthetic click gesture, which (inside -_singleTapRecognized:)
would otherwise dismiss any currently presented popover.
After making touchstart events dispatch asynchronously, preventing touchstart no longer causes other native
gestures (such as the synthetic click gesture) to fail in the case where there is a sync touchmove or touchend
event listener, and the touch gesture has ended before the touchstart handler has finished executing and told
the UI process whether or not the touch was handled. This is because the touchend or touchmove is dispatched
synchronously while the touchstart is still being processed; while the web page sees the correct order of
events, the UI process will end up learning that the synchronous touch was handled before the response to the
asynchronously dispatched touchstart event has arrived.
Our current logic in the sync touch event dispatch case then unconditionally ends gesture deferral by calling
doneDeferringNativeGestureswithhandledequal to whether or not the touch event (a "touchend", in this
case) had been handled. However, in the case where touchstart event is prevented but the touchend event is not,
this will cause us to prematurely stop deferring gestures even though the page calledpreventDefault()in the
touchstart event handler, and allow the synthetic click gesture to recognize when it shouldn't.
To fix this, keep deferring native gestures after handling a sync touch in the case where a touchstart event is
still being handled; instead, remember whether the touch event was handled using a new member variable
(m_handledSynchronousTouchEventWhileDispatchingPreventableTouchStart), and consult this when the response to
the touchstart has been received in the UI process to determine whether platform gestures should be allowed to
recognize. This variable is reset once we're done handling the touchstart.
Test: fast/events/touch/ios/prevent-default-with-slow-touchstart-handler.html
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handlePreventableTouchEvent):
- UIProcess/WebPageProxy.h:
LayoutTests:
Adds a new layout test to verify that preventing default on elements with slow, active touchstart event handlers
actually prevents click events from being dispatched.
- fast/events/touch/ios/prevent-default-with-slow-touchstart-handler-expected.txt: Added.
- fast/events/touch/ios/prevent-default-with-slow-touchstart-handler.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255740] by
-
- 15 edits1 copy3 moves7 adds1 delete in branches/safari-609-branch
Cherry-pick r255383. rdar://problem/59098319
[Web Animations] Animations should run accelerated even if other animations targeting the same element are not accelerated
https://bugs.webkit.org/show_bug.cgi?id=206890
<rdar://problem/58961750>
Reviewed by Simon Fraser.
Source/WebCore:
Test: webanimations/width-and-opacity-separate-animation-yields-compositing.html
In the Web Animations implementation, when an element has some animated properties that can be accelerated and some that cannot be, we would never
run accelerated animations at all. However, in the "legacy" animation engine, we would animate properties that can be acclerated if possible.
We now attempt to run accelerated animations provided at least one animation is accelerated.
To do that, we now keep track of whether none, some or all of the animated properties of a given KeyframeEffect are accelerated using the new
m_acceleratedPropertiesState instance variable. We compute this property when creating the blending keyframes for the effect.
Then, as time progresses and the effect is resolved, updateAcceleratedActions() is called and we simply use the effect's phase to determine
whether we need to enqueue actions to start, pause, seek or end accelerated animations. This is an improvement over how this method used to work
since we would run accelerated animations while in their delay phase, which did not match the "legacy" animation engine's behavior.
We've also removed the single method that provided the accelerated characteristics of a KeyframeEffect, isAccelerated(), with a few more methods:
- isRunningAccelerated(): the effect is currently running accelerated animations.
- isAboutToRunAccelerated(): the effect has pending accelerated actions that should make it run accelerated animations when accelerated actions are updated next.
- isCompletelyAccelerated(): the effect animates only accelerated properties.
- isCurrentlyAffectingProperty(property, accelerated): the effect is currently animating the given property, with the option to specify whether that animation is accelerated.
We use this information in a few new places. If an effect returns true for either isRunningAccelerated() or isAboutToRunAccelerated() when
Element::applyKeyframeEffects() is called, we set the AnimationImpact::RequiresRecomposite flag. In RenderLayerCompositor::requiresCompositingForAnimation(),
if an effect returns true for isCurrentlyAffectingProperty() with the accelerated flag set to true, the method returns true, matching the logic
used by the "legacy" animation engine.
All in all, this better aligns the behavior of the "legacy" and Web Animations engines to run accelerated animations in the same circumstances.
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty): Use KeyframeEfffect::isRunningAccelerated() instead of KeyframeEffect::isAccelerated().
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::isRunningAcceleratedAnimationOnRenderer const): Use KeyframeEffect::isCurrentlyAffectingProperty() instead of checking both isRunningAccelerated() and manually looking at the effect's animated properties.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::setBlendingKeyframes): Call computeAcceleratedPropertiesState() instead of the now-defunct computeShouldRunAccelerated(). (WebCore::KeyframeEffect::apply): Keep track of the newly computed phase so that we may use it in the new isCurrentlyAffectingProperty() without having to recompute it on each call. (WebCore::KeyframeEffect::isCurrentlyAffectingProperty const): Indicates whether a given property is currently animated (active phase) with the option to specify whether that animation is accelerated. (WebCore::KeyframeEffect::computeAcceleratedPropertiesState): Compute whether none, some or all of the animated properties of the given effect can be accelerated. (WebCore::KeyframeEffect::updateAcceleratedActions): Use the phase to determine which accelerated actions to enqueue. (WebCore::KeyframeEffect::animationDidSeek): Use the new m_isRunningAccelerated state to determine whether the animation is presently running accelerated. (WebCore::KeyframeEffect::animationWasCanceled): Use the new m_isRunningAccelerated state to determine whether the animation is presently running accelerated. (WebCore::KeyframeEffect::animationSuspensionStateDidChange): Use the new m_isRunningAccelerated state to determine whether the animation is presently running accelerated. (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
- animation/KeyframeEffect.h: (WebCore::KeyframeEffect::isRunningAccelerated const): (WebCore::KeyframeEffect::isAboutToRunAccelerated const): (WebCore::KeyframeEffect::isCompletelyAccelerated const):
- animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const): Indicates whether any of the effects in the stack animates a given property, with the option to specify whether the animation should be accelerated.
- animation/KeyframeEffectStack.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::effectTargetDidChange): Ensure we schedule an animation update if an effect is no longer animating a given element or newly animating an element, to ensure that replaced animations may be removed. (WebCore::WebAnimation::isCompletelyAccelerated const): Convenience function to call isCompletelyAccelerated() on the animation's effect. (WebCore::WebAnimation::computeRelevance): Check the replaced state when computing relevance. (WebCore::WebAnimation::timeToNextTick const): Schedule an immediate update if a given animation is not _completely_ accelerated.
- animation/WebAnimation.h:
- dom/Element.cpp: (WebCore::Element::keyframeEffectStack const): (WebCore::Element::applyKeyframeEffects): Set the AnimationImpact::RequiresRecomposite flag when the animation is either currently running accelerated or expected to be in the next accelerated animation update.
- dom/Element.h:
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingForAnimation const): Use the same logic as for the "legacy" animation engine to determine whether an animation requires compositing using the new KeyframeEffect::isCurrentlyAffectingProperty() method. (WebCore::RenderLayerCompositor::isRunningTransformAnimation const): Refactor some code to use the new KeyframeEffect::isCurrentlyAffectingProperty() method.
LayoutTests:
Update some tests that assumed a mix of accelerated and non-accelerated properties would not yield accelerated animations.
We also make some WK1-specific expectation due to compositing being disabled when opacity is the only potentially-accelerated
property to be animated.
- platform/mac-wk1/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Added.
- platform/mac-wk1/webanimations/opacity-animation-yields-compositing-expected.txt: Added.
- platform/mac-wk1/webanimations/opacity-animation-yields-compositing-span-expected.txt: Added.
- platform/mac-wk1/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.
- platform/mac-wk1/webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
- webanimations/left-and-opacity-animation-yields-no-compositing-expected.txt: Removed.
- webanimations/partly-accelerated-transition-by-removing-property-expected.txt:
- webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
- webanimations/width-and-opacity-separate-animation-yields-compositing.html: Renamed from LayoutTests/webanimations/left-and-opacity-animation-yields-no-compositing.html.
- webanimations/width-and-opacity-separate-animation-yields-no-compositing-expected.txt: Removed.
- webanimations/width-and-opacity-separate-animation-yields-no-compositing.html: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255739] by
-
- 5 edits in branches/safari-609-branch/Source
Cherry-pick r255378. rdar://problem/59097763
[iOS] Make sure unused service worker processes exit promptly on low memory warning
https://bugs.webkit.org/show_bug.cgi?id=206939
<rdar://problem/58972717>
Reviewed by Alex Christensen.
Make sure unused service worker processes exit promptly on low memory warning. They normally take 10 seconds to exit
for performance reasons. However, in case of memory pressure, keeping those processes around that long is not the
right thing to do.
Source/WebCore:
- workers/service/server/SWServer.cpp: (WebCore::SWServer::handleLowMemoryWarning):
- workers/service/server/SWServer.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::lowMemoryHandler):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255738] by
-
- 4 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255376. rdar://problem/59097754
Unreviewed, fix Catalyst build after r255366
- Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultDisallowSyncXHRDuringPageDismissalEnabled):
- Shared/WebPreferencesDefaultValues.h:
- Shared/ios/WebPreferencesDefaultValuesIOS.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255737] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255371. rdar://problem/59098314
[Web Animations]
DeclarativeAnimationfor CSS Animation is not always destroyed when class that appliesanimation-nameis removed
https://bugs.webkit.org/show_bug.cgi?id=206899
Patch by Antoine Quint <Antoine Quint> on 2020-01-29
Reviewed by Devin Rousso.
In case after processing the new animation styles we don't have any CSSAnimation objects anymore, we should make sure we remove the entry
for this element from m_elementToCSSAnimationsCreatedByMarkupMap so as to release ownership of any prior animation.
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSAnimationsForElement):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255736] by
-
- 4 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255366. rdar://problem/59097754
[iOS] Add managed preference to allow legacy sync XHRs during page dismissal
https://bugs.webkit.org/show_bug.cgi?id=206944
<rdar://problem/58440111>
Reviewed by Alex Christensen.
Add managed preference for iOS to allow enterprise customers to keep using legacy sync XHRs
during page dismissal.
- Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultDisallowSyncXHRDuringPageDismissalEnabled):
- Shared/WebPreferencesDefaultValues.h:
- Shared/ios/WebPreferencesDefaultValuesIOS.mm: (WebKit::allowsDeprecatedSynchronousXMLHttpRequestDuringUnload):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255735] by
-
- 27 edits7 adds in branches/safari-609-branch
Cherry-pick r255365. rdar://problem/59097795
[JSC] Give up IC when unknown structure transition happens
https://bugs.webkit.org/show_bug.cgi?id=206846
Reviewed by Mark Lam.
JSTests:
- stress/ensure-crash.js: Added.
- stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition-debug.js: Added. (shouldBe): (putter): (not_string.toString):
- stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition.js: Added. (shouldBe): (putter): (not_string.toString):
- stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js: Added. (shouldBe): (putter): (not_string.toString):
- stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js: Added. (shouldBe): (dictionary): (putter): (not_string.toString):
Source/JavaScriptCore:
When we are creating Put IC for a new property, we grab the old Structure before performing
the put. For a custom ::put, our convention is that the implemented ::put should mark the PutPropertySlot
as non-cachable. The IC code relies on this in order to work correctly. If we didn't mark it as non-cacheable,
a semantic failure can happen. This patch hardens the code against this semantic failure case by giving up trying
to cache the IC when the newStructure calculated from oldStructure does not match against
the actual structure after the put operation.
- jit/Repatch.cpp: (JSC::tryCachePutByID): (JSC::repatchPutByID):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/Structure.cpp: (JSC::Structure::flattenDictionaryStructure):
- tools/JSDollarVM.cpp: (JSC::functionCreateObjectDoingSideEffectPutWithoutCorrectSlotStatus): (JSC::JSDollarVM::finishCreation): (JSC::JSDollarVM::visitChildren):
- tools/JSDollarVM.h:
Source/WebCore:
IDL Code Generator should taint PutPropertySlot or taint implemented object to avoid Put IC caching
when it implements custom ::put operation which has side-effect regardless of Structure. Otherwise, IC can be setup
and IC can do fast path without consulting the custom ::put operation.
Test: js/dom/put-override-should-not-use-ic.html
- bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestPluginInterface.h:
Tools:
Add
crash!annotation, which allows us to write a crashing JS test.
- Scripts/run-jsc-stress-tests:
- Scripts/webkitruby/jsc-stress-test-writer-default.rb:
- Scripts/webkitruby/jsc-stress-test-writer-playstation.rb:
- Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:
LayoutTests:
- js/dom/put-override-should-not-use-ic-expected.txt: Added.
- js/dom/put-override-should-not-use-ic.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255734] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255335. rdar://problem/59097776
Add logging to detect cause of rare crash at RenderLayer::calculateLayerBounds const
https://bugs.webkit.org/show_bug.cgi?id=206915
rdar://problem/55699292
Reviewed by Tim Horton.
We have reports of a rare crash under RenderLayer::calculateLayerBounds() under RenderLayer::updateLayerPositions(),
where a RenderLayerBacking's m_owningLayer is null (which should never happen). This appears to reproduce
by clicking links to CNN or FoxNews articles from Google News on macOS.
Add a bear trap in that offset in the class, and also null-check the m_owningLayer reference
in release assertions to better understand what's happening.
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::~RenderLayerBacking): (WebCore::RenderLayerBacking::willBeDestroyed): (WebCore::RenderLayerBacking::updateCompositedBounds): (WebCore::RenderLayerBacking::updateAfterLayout): (WebCore::RenderLayerBacking::updateConfiguration): (WebCore::RenderLayerBacking::updateAfterDescendants): (WebCore::RenderLayerBacking::paintIntoLayer):
- rendering/RenderLayerBacking.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255335 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255733] by
-
- 3 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255331. rdar://problem/59098086
REGRESSION: [ Mac ] fast/hidpi/image-srcset-relative-svg-canvas-2x.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206254
<rdar://problem/58580461>
Reviewed by Simon Fraser.
The drawImage() and the HTML document layout are racy here and when we
don't manage to squeeze in a layout before the JS drawImage(), the
SVG image gets laid out and rendered using the inline replaced box default size
value of 300x150. This patch only fixes the flakiness issue and
does not address the underlying bug (see webkit.org/b/206914).
- fast/hidpi/image-srcset-relative-svg-canvas-2x-expected.html:
- fast/hidpi/image-srcset-relative-svg-canvas-2x.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255732] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255227. rdar://problem/58942731
Correct VTT Cue Style handling to match the specification
https://bugs.webkit.org/show_bug.cgi?id=201086
Unreviewed followup based on a review comment.
- html/track/WebVTTParser.cpp: (WebCore::WebVTTParser::checkAndStoreStyleSheet):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255731] by
-
- 5 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255224. rdar://problem/59098322
Need a way to mark a DOM attribute as runtime conditionally read-write
https://bugs.webkit.org/show_bug.cgi?id=206836
Patch by Sam Weinig <weinig@apple.com> on 2020-01-27
Reviewed by Chris Dumez.
Adds a new IDL extended attribute, RuntimeConditionallyReadWrite, that works
like EnableAtRuntime, but instead allows the associated attribute to be
converted from read-only to read-write based on the value of a RuntimeEnabledFeature.
- bindings/scripts/CodeGeneratorJS.pm: (GeneratePropertiesHashTable): Add check that both runtime enabling and runtime conditional read-write aren't both specified. For now, that is not supported.
(GenerateRuntimeEnableConditionalString):
Add support for generating the conditional string for RuntimeConditionallyReadWrite.
(GenerateImplementation):
Implement the feature by piggy-backing off the existing runtime enabling, which
deletes the property if the feature is not enabled. For this, if the feature isn't
enabled, we delete the property, and then add it back readonly. In the future, we
should move off of this add-then-delete model, but that is tracked via http://webkit.org/b/206837.
- bindings/scripts/IDLAttributes.json: Add new extended attribute.
- bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjPrototype::finishCreation): (WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeGetter): (WebCore::jsTestObjRuntimeConditionallyReadWriteAttribute): (WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeSetter): (WebCore::setJSTestObjRuntimeConditionallyReadWriteAttribute):
- bindings/scripts/test/TestObj.idl: Add new test with result.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255730] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255222. rdar://problem/59097766
Support observing a different set of view service state notifications in ApplicationStateTracker
https://bugs.webkit.org/show_bug.cgi?id=201737
rdar://problem/54786414
Reviewed by Chris Dumez.
- UIProcess/ApplicationStateTracker.mm: Make ApplicationStateTracker conditionally (based on a flag to be defined in WebKitAdditions) use a different pair of notifications when it is in a view service or extension. These notifications report state changes of the individual scene that hosts the web view, rather than the state of the overall host application. This allows for more accurate state tracking for web views in extensions or view services hosted by apps with multiple open scenes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255222 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255729] by
-
- 4 edits1 add in branches/safari-609-branch/LayoutTests
Cherry-pick r255215. rdar://problem/59098087
REGRSSION: [ High Sierra Catalina ] (r253310) compositing/video/video-border-radius-clipping.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205226
Reviewed by Simon Fraser.
Add a special video with only one frame so that the video element in a test page will always render the exact same pixels.
- compositing/video/video-border-radius-clipping-expected.html:
- compositing/video/video-border-radius-clipping.html:
- media/content/pure-color-green.mp4: Added.
- platform/mac-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255728] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255188. rdar://problem/59097777
Unreviewed, a build fix after r255111
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: Adding some missing headers.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255727] by
-
- 2 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r255171. rdar://problem/59098090
REGRESSION (r250009): testair crashes in (anonymous namespace)::matchAll
<https://webkit.org/b/206797>
<rdar://problem/58893221>
Reviewed by Yusuke Suzuki.
- b3/air/testair.cpp:
((anonymous namespace)::matchAll): Don't replace
strin the body of the for loop sincematchreferences it.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255171 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255726] by
-
- 4 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255161. rdar://problem/58942716
Crash in WebCore::HTMLMediaElement::detachMediaSource()
https://bugs.webkit.org/show_bug.cgi?id=206766
Reviewed by Jer Noble.
Use WeakPtr<HTMLMediaElement> in MediaSource instead of a raw pointer.
In addition, we need to detach a MediaSource from an HTMLMediaElement before the HTMLMediaElement forgets the reference to the MediaSource.
- Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::attachToElement):
- Modules/mediasource/MediaSource.h:
- html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::loadResource):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255161 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [255725] by
-
- 7 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255151. rdar://problem/58942731
Correct VTT Cue Style handling to match the specification
https://bugs.webkit.org/show_bug.cgi?id=201086
<rdar://problem/54658121>
Reviewed by Brent Fulgham.
The VTT specification requires that only data-URLs are permitted in STYLE blocks.
- css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText const):
Fix selectorText for function version of ::cue().
- css/parser/CSSParserContext.cpp: (WebCore::CSSParserContext::completeURL const):
Don't allow non-data URLs in WebVTT parser mode.
- css/parser/CSSParserContext.h: (WebCore::CSSParserContext::completeURL const): Deleted.
- css/parser/CSSParserMode.h: (WebCore::isStrictParserMode):
- html/track/WebVTTParser.cpp: (WebCore::WebVTTParser::collectStyleSheet): (WebCore::WebVTTParser::checkAndStoreStyleSheet):
Instead of simply validating the original stylesheet, build a new sanitized stylesheet text
from the stylesheet parsed in WebVTT mode. This sanitized stylesheet is then used as the
input for the style system.
- html/track/WebVTTParser.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255151 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255724] by
-
- 14 edits2 copies in branches/safari-609-branch
Cherry-pick r255149. rdar://problem/58942712
[Web Animations] Add support for the options parameter to getAnimations()
https://bugs.webkit.org/show_bug.cgi?id=202191
<rdar://problem/55697751>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark some WPT progressions. In the CSS Animations case, we are returning the expected animations but not quite sorted as expected.
- web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
- web-platform-tests/web-animations/interfaces/Animatable/getAnimations-expected.txt:
Source/WebCore:
Add support for the GetAnimationsOptions dictionary as a parameter to Animatable.getAnimations(). When it is provided
and has its sole "subtree" property set to "true", we call Document.getAnimations() and filter out animations that are
not targeting elements that are either this element, one of its descendants, one of its pseudo-elements or one of its
descendants' pseudo-elements.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/Animatable.idl:
- animation/GetAnimationsOptions.h: Added.
- animation/GetAnimationsOptions.idl: Added.
- dom/Element.cpp: (WebCore::Element::getAnimations):
- dom/Element.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255723] by
-
- 15 edits in branches/safari-609-branch/Source
Cherry-pick r255120. rdar://problem/58942705
Move singleton Intl string locales out of JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=206791
<rdar://problem/58889037>
Source/JavaScriptCore:
Reviewed by Yusuke Suzuki and Andy Wagoner.
We were creating an instance of these for each JSGlobalObject when they can be a
global singleton since they are always initialized with the same intl data
(barring a mid-flight change in intl settings, which we don't support even in the
existing code).
It turns out that intlPluralRulesAvailableLocales() wasn't called anywhere.
IntlPluralRules code currently just uses intlNumberFormatAvailableLocales().
To document that this is intentional, we do the following:
- have IntlPluralRules code call intlPluralRulesAvailableLocales(), and
- have intlPluralRulesAvailableLocales() call intlNumberFormatAvailableLocales() for its implementation. See https://bugs.webkit.org/show_bug.cgi?id=206791#c7 and https://bugs.webkit.org/show_bug.cgi?id=206791#c8.
In addMissingScriptLocales(), I'm deliberately naming the string with underscores
because it's much easier to read pa_PK_String and see that it refers to "pa-PK"
as opposed to paPKString. Ditto for zh_CN_String, zh_HK_String, zh_SG_String,
and zh_TW_String.
- runtime/IntlCollator.cpp: (JSC::IntlCollator::initializeCollator):
- runtime/IntlCollatorConstructor.cpp: (JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
- runtime/IntlDateTimeFormat.cpp: (JSC::IntlDateTimeFormat::initializeDateTimeFormat):
- runtime/IntlDateTimeFormatConstructor.cpp: (JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
- runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::initializeNumberFormat):
- runtime/IntlNumberFormatConstructor.cpp: (JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
- runtime/IntlObject.cpp: (JSC::convertICULocaleToBCP47LanguageTag): (JSC::addMissingScriptLocales): (JSC::intlCollatorAvailableLocales): (JSC::intlDateTimeFormatAvailableLocales): (JSC::intlNumberFormatAvailableLocales): (JSC::defaultLocale):
- runtime/IntlObject.h:
- runtime/IntlPluralRules.cpp: (JSC::IntlPluralRules::initializePluralRules):
- runtime/IntlPluralRulesConstructor.cpp: (JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):
- runtime/JSGlobalObject.cpp: (JSC::addMissingScriptLocales): Deleted. (JSC::JSGlobalObject::intlCollatorAvailableLocales): Deleted. (JSC::JSGlobalObject::intlDateTimeFormatAvailableLocales): Deleted. (JSC::JSGlobalObject::intlNumberFormatAvailableLocales): Deleted. (JSC::JSGlobalObject::intlPluralRulesAvailableLocales): Deleted.
- runtime/JSGlobalObject.h:
Source/WTF:
Reviewed by Yusuke Suzuki.
Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
when I introduced it. StaticStringImpls require that its hash code be set ahead
of time, and cannot be mutated at runtime. See the comment in the definition of
StaticStringImpl in StringImpl.h.
- wtf/text/StringImpl.cpp: (WTF::StringImpl::createStaticStringImpl):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255722] by
-
- 12 edits in branches/safari-609-branch
Cherry-pick r255116. rdar://problem/58942720
HTMLMediaElement should not remove the media session at DOM suspension time
https://bugs.webkit.org/show_bug.cgi?id=206661
<rdar://problem/58800787>
Source/WebCore:
Reviewed by Eric Carlson.
https://trac.webkit.org/changeset/233560 made it so that, on HTMLMediaElement suspension,
its media session is stopped.
This was done to ensure updateNowPlayingInfo is not called synchronously but asynchronously.
The issue is that, once the media session is stopped, it is removed from the media session vector.
On updating the ready state after suspension, and playing, we try to look into the media session vector and do not find the session.
This triggers the ASSERT.
Partially revert the behavior by calling the same code as clientWillPausePlayback
but make sure updateNowPlayingInfo is calling asynchronously when suspending the media element.
Introduce clientWillBeDOMSuspended for that purpose.
Update mediaPlayerReadyStateChanged to enqueue a task to do the update if the media element is suspended.
Covered by test no longer crashing in debug.
- html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged): (WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
- platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::processClientWillPausePlayback): (WebCore::PlatformMediaSession::clientWillPausePlayback): (WebCore::PlatformMediaSession::clientWillBeDOMSuspended):
- platform/audio/PlatformMediaSession.h:
- platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::sessionWillEndPlayback):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (MediaSessionManagerCocoa::sessionWillEndPlayback):
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::sessionWillEndPlayback):
Tools:
Reviewed by Eric Carlson.
- TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm: (TestWebKitAPI::TEST): Suspend/resume Active DOM Objects from time to time as would do scrolling. This allows pending tasks to be executed asynchronously when not scrolling.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255116 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255721] by
-
- 6 edits1 add in branches/safari-609-branch
Cherry-pick r255112. rdar://problem/58942707
IntlObject's cached strings should be immortal and safe for concurrent access.
https://bugs.webkit.org/show_bug.cgi?id=206779
<rdar://problem/58831763>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js: Added.
Source/JavaScriptCore:
In IntlObject's numberingSystemsForLocale(), we have a never destroyed
cachedNumberingSystems which is a singleton vector of Strings which are shared
multiple VMs. Hence, the strings in this vector should be a StaticStringImpl
so that it will be immortal, and can be access concurrently from multiple VMs
on different threads without any ref/deref'ing race issues.
- runtime/IntlObject.cpp: (JSC::numberingSystemsForLocale):
Source/WTF:
Add a factory for creating a dynamically allocated StaticStringImpl.
Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
The only difference is that s_refCountFlagIsStaticString is set on the refCount
for StaticStringImpl. Since the client will use the StaticStringImpl as a
StringImpl, we implement the factory by using StringImpl::createInternal() for
simplicity, and set the s_refCountFlagIsStaticString flag thereafter.
- wtf/text/StringImpl.cpp: (WTF::StringImpl::createStaticStringImpl):
- wtf/text/StringImpl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255112 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255720] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255111. rdar://problem/59097777
Unreviewed, a speculative test fix after r255041
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: (WebKit::MockLocalConnection::getAttestation const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255719] by
-
- 13 edits in branches/safari-609-branch
Cherry-pick r255058. rdar://problem/59097764
Make sure fetch tasks go to network if service worker never gets to activated
https://bugs.webkit.org/show_bug.cgi?id=206648
Reviewed by Chris Dumez.
Source/WebCore:
In case worker context process crashes, the SWServerWorker gets set to NotRunning.
If the SWServerWorker has pending activating completion handlers, they will never be called until the worker is destroyed.
But the worker may never be destroyed until its registration is destroyed.
This may trigger service worker fetch task hangs.
To fix this, make sure to call activating completion handlers whenever the SWServerWorker state is changed to either Terminating or NotRunning.
Covered by updated test.
- workers/service/server/SWServerWorker.cpp: (WebCore::SWServerWorker::~SWServerWorker): (WebCore::SWServerWorker::whenActivated): (WebCore::SWServerWorker::setState):
- workers/service/server/SWServerWorker.h:
Source/WebKit:
In case activating completion handlers are not called, the fetch task timeout should kick in and make the load go to network process.
The issue is that our code was using the context connection to do so.
If the fetch task is waiting for the worker activation, the context connection might not be set and the timeout will be a no-op.
To fix this, the fetch task will do as if its context is closed when the timeout fires.
The fetck task now has a weak pointer to the WebSWServerConnection and will use to terminate the service worker as done previously.
We no longer handle all ongoing fetch tasks of the ongoing service worker.
Each individual fetch task timeout provides the same level of protection.
The service worker will anyway get terminated which will race to finalize the service worker fetch tasks with each of their timeout.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): (WebKit::ServiceWorkerFetchTask::timeoutTimerFired):
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::createFetchTask): (WebKit::WebSWServerConnection::fetchTaskTimedOut):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: (WebKit::WebSWServerToContextConnection::fetchTaskTimedOut):
LayoutTests:
- http/wpt/service-workers/service-worker-spinning-activate.https-expected.txt:
- http/wpt/service-workers/service-worker-spinning-activate.https.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255718] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r255041. rdar://problem/59097777
WebKitTestRunner: use ad hoc signing for internal Production builds
https://bugs.webkit.org/show_bug.cgi?id=206607
<rdar://problem/56087327>
Reviewed by Jonathan Bedard.
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255717] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r254976. rdar://problem/58942734
fast/css/first-letter-and-float-crash.html asserts under ComplexLineLayout::createLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=206651
<rdar://problem/54889982>
Reviewed by Anders Carlsson.
Source/WebCore:
Take care that the first-letter style has the correct styleType set even when getCachedPseudoStyle failed.
This is used for checking if there is an existing first letter renderer.
- rendering/updating/RenderTreeBuilderFirstLetter.cpp: (WebCore::styleForFirstLetter):
LayoutTests:
- fast/css/first-letter-and-float-crash.html:
Force an additional layout in the test to make the issue easily reproducible.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254976 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255716] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r254963. rdar://problem/59097777
Unreviewed, rolling out r254955.
Broke internal builds
Reverted changeset:
"WebKitTestRunner: move code sign configurations from
WebKitTestRunner.xcconfig to DebugRelease.xcconfig"
https://bugs.webkit.org/show_bug.cgi?id=206607
https://trac.webkit.org/changeset/254955
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255715] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r254955. rdar://problem/59097777
WebKitTestRunner: move code sign configurations from WebKitTestRunner.xcconfig to DebugRelease.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=206607
<rdar://problem/56087327>
Reviewed by Alexey Proskuryakov.
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255714] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254381. rdar://problem/59097774
[iOS] Remove reporting for some well-understood sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=206111
Reviewed by Per Arne Vollan.
Remove sandbox rules designed to generate reporting about resource use for some well-understood
items that are frequently hit in WebKit use.
No new tests. No change in behavior.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255713] by
-
- 3 edits in branches/safari-609-branch
Cherry-pick r254408. rdar://problem/58606270
[WebCore] Fix crash in module loader due to change in fragment reservation
https://bugs.webkit.org/show_bug.cgi?id=206125
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url-expected.txt:
Source/WebCore:
At some point, CachedResource::url() starts returning URL without fragment.
However, this was invariant in ScriptModuleLoader, so one of WPT test is crashing.
We save source URL so that we preserve fragment information.
Still we need to have fragment information after the redirect to fix a bug filed in [1].
- bindings/js/CachedModuleScriptLoader.cpp: (WebCore::CachedModuleScriptLoader::load):
- bindings/js/CachedModuleScriptLoader.h:
- bindings/js/ScriptModuleLoader.cpp: (WebCore::ScriptModuleLoader::notifyFinished):
LayoutTests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [255712] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/ChangeLog
Cherry-pick r254267. rdar://problem/58606290
Reformat FrameView logging
https://bugs.webkit.org/show_bug.cgi?id=205984
<rdar://problem/58431722>
Reviewed by Brent Fulgham.
Update the format used by FrameView in its RELEASE_LOG logging. Use
the format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:
<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>
So, for example:
0x4a1cf8010 - FrameView::fireLayoutRelatedMilestonesIfNeeded() - firing first visually non-empty layout milestone on the main frame
becomes:
0x561be8010 - [frame=0x55d47e000, main=1] FrameView::fireLayoutRelatedMilestonesIfNeeded: Firing first visually non-empty layout milestone on the main frame
No new tests -- no new or changed functionality.
- page/FrameView.cpp: (WebCore::FrameView::paintContents): (WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254267 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:09 PM Changeset in webkit [255711] by
-
- 8 edits in trunk/Source
Non-unified build fixes early February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207227
Reviewed by Don Olmstead.
Source/JavaScriptCore:
- bytecode/PolyProtoAccessChain.h: Add missing inclusions of StructureIDTable.h and VM.h
Source/WebCore:
No new tests needed.
- accessibility/atk/AccessibilityObjectAtk.cpp: Add missing inclusion of WebKitAccessible.h
- inspector/agents/InspectorAnimationAgent.cpp: Add issing inclusions of JSExecState.h and
JavaScriptCore/InjectedScriptManager.h
- style/MatchedDeclarationsCache.cpp: Add missing inclusion of FontCascade.h
Source/WTF:
- wtf/SingleRootGraph.h: Add missing inclusion of wtf/StringPrintStream.h
- 3:43 PM Changeset in webkit [255710] by
-
- 2 edits in trunk/Source/WebKit
macCatalyst: Shouldn't get text cursor on checkboxes
https://bugs.webkit.org/show_bug.cgi?id=207234
<rdar://problem/59155917>
Reviewed by Wenson Hsieh.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::canForceCaretForPosition):
(WebKit::populateCaretContext):
(WebKit::lineCaretExtent): Deleted.
The I-beam forcing code was a bit too aggressive; it should consider
the style of the node that it ends up finding after searching, not just
assume it wants an I-beam because it's "texty".
- 3:36 PM Changeset in webkit [255709] by
-
- 15 edits in trunk
Fix Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=207231
Source/JavaScriptCore:
- PlatformMac.cmake:
Source/WebCore:
- PlatformMac.cmake:
- platform/ios/WebItemProviderPasteboard.h:
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- PlatformMac.cmake:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::updateVisibleContentRects):
Tools:
- DumpRenderTree/PlatformMac.cmake:
- MiniBrowser/mac/CMakeLists.txt:
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]):
- WebKitTestRunner/PlatformMac.cmake:
- 3:33 PM Changeset in webkit [255708] by
-
- 5 edits3 adds in trunk
[PlayStation] Enable TestWebKit
https://bugs.webkit.org/show_bug.cgi?id=207211
Reviewed by Ross Kirsling.
.:
Turn back on API tests.
- Source/cmake/OptionsPlayStation.cmake:
Tools:
Stub out PlayStation implementation of TestWebKit so it builds.
- TestWebKitAPI/PlatformPlayStation.cmake:
- TestWebKitAPI/PlatformWebView.h: Simplify platform define
- TestWebKitAPI/playstation/PlatformUtilitiesPlayStation.cpp: Added.
(TestWebKitAPI::Util::createInjectedBundlePath):
(TestWebKitAPI::Util::createURLForResource):
(TestWebKitAPI::Util::URLForNonExistentResource):
(TestWebKitAPI::Util::isKeyDown):
- TestWebKitAPI/playstation/PlatformWebViewPlayStation.cpp: Added.
(TestWebKitAPI::PlatformWebView::PlatformWebView):
(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::initialize):
(TestWebKitAPI::PlatformWebView::page const):
(TestWebKitAPI::PlatformWebView::resizeTo):
(TestWebKitAPI::PlatformWebView::focus):
(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):
(TestWebKitAPI::PlatformWebView::simulateRightClick):
- 3:25 PM Changeset in webkit [255707] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] legacy-animation-engine/fast/animation/request-animation-frame-iframe.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207235
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/mac/TestExpectations:
- 3:22 PM Changeset in webkit [255706] by
-
- 7 edits in trunk/Source/WebKit
Partial revert of r248734 to fix leak of StorageAreaMaps
https://bugs.webkit.org/show_bug.cgi?id=207073
Reviewed by Alex Christensen.
Do a partial revert of r248734 so that the StorageNamespaceImpl no longer holds a strong
reference to its StorageAreaMap objects. The code for removing entries from
StorageNamespaceImpl::m_storageAreaMaps (StorageNamespaceImpl::didDestroyStorageAreaMap())
was dead code after r248734 and thus StorageAreaMap were never destroyed.
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::length):
(WebKit::StorageAreaImpl::key):
(WebKit::StorageAreaImpl::item):
(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::contains):
(WebKit::StorageAreaImpl::storageType const):
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::create):
(WebKit::StorageAreaMap::~StorageAreaMap):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
- WebProcess/WebStorage/StorageNamespaceImpl.h:
- 3:09 PM Changeset in webkit [255705] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- 3:02 PM Changeset in webkit [255704] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS ] imported/w3c/web-platform-tests/fetch/stale-while-revalidate/fetch.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207230
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 2:54 PM Changeset in webkit [255703] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Use PackedRefPtr in UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=207229
Reviewed by Mark Lam.
Use PackedRefPtr in UnlinkedCodeBlock to compact it from 168 to 160, which saves 16 bytes (10%) per UnlinkedCodeBlock since
we have 16 bytes alignment for GC cells.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::sourceURLDirective const):
(JSC::UnlinkedCodeBlock::sourceMappingURLDirective const):
(JSC::UnlinkedCodeBlock::setSourceURLDirective):
(JSC::UnlinkedCodeBlock::setSourceMappingURLDirective):
- runtime/CachedTypes.cpp:
(JSC::CachedCodeBlock::sourceURLDirective const):
(JSC::CachedCodeBlock::sourceMappingURLDirective const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
- 2:49 PM Changeset in webkit [255702] by
-
- 5 edits in branches/safari-610.1.1-branch
Cherry-pick r255533. rdar://problem/58999654
REGRESSION(r252185): NetworkSessionCocoa cancels downloads that receive authentication challenges
https://bugs.webkit.org/show_bug.cgi?id=206984
rdar://problem/58999654
Reviewed by Brady Eidson.
Source/WebKit:
r252185 changed the early return in WKNetworkSessionDelegate's -...task:didReceiveChallenge:... method
from "cancel the task and return early if self has no _session" to "cancel the task and return early
if we can't determine the network session for the given data task". When this method is called for
an NSURLSessionDownloadTask, this early return is hit because there is no NetworkDataTaskCocoa
for an active download. As a result, the download is canceled when it might have otherwise been able
to proceed.
Fix this by adding a code path to fetch the NetworkSession associated with the Download when an
NSURLSessionDownloadTask receives an authentication challenge. This ensures we can actually handle
the challenge appropriately and not just cancel the task.
- NetworkProcess/Downloads/Download.h: (WebKit::Download::sessionID const):
Expose the session ID so we can use it to look up the NetworkSession for a Download.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
Remove an unnecessary redeclaration of networkDataTask, and also an unneeded assertion that
networkDataTask != nullptr. Even if this is the case, the code that eventually handles this
task will null check it and handle the challenge as a websocket task or download task
based on the taskIdentifier.
Tools:
Add an API test for a resumed download that receives an authentication challenge. The download
delegate should be asked to handle the challenge, and the download should be able to finish.
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[DownloadCancelingDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]): (-[DownloadCancelingDelegate _download:didReceiveData:]): (-[DownloadCancelingDelegate _downloadDidCancel:]): (-[AuthenticationChallengeHandlingDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]): (-[AuthenticationChallengeHandlingDelegate _downloadDidFinish:]): (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:49 PM Changeset in webkit [255701] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKitLegacy/mac
Cherry-pick r255494. rdar://problem/58934778
[WK1] hiddenPageCSSAnimationSuspensionEnabled should be enabled by default for Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=207042
<rdar://problem/58934778>
Reviewed by Zalan Bujtas.
While HiddenPageCSSAnimationSuspensionEnabled is specified in WebPreferences.yaml to default to DEFAULT_HIDDEN_PAGE_CSS_ANIMATION_SUSPENSION_ENABLED,
which is defined to be true on Cocoa platforms in WebPreferencesDefaultValues.h, it is hard-coded to @NO in WK1 although clearly the intent is for
this preference to be enabled. So we switch that default value in WK1 as well.
- WebView/WebPreferences.mm: (+[WebPreferences initialize]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:49 PM Changeset in webkit [255700] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] http/tests/misc/image-blocked-src-change.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207226
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/mac/TestExpectations:
- 2:49 PM Changeset in webkit [255699] by
-
- 8 edits2 adds in branches/safari-610.1.1-branch
Cherry-pick r255422. rdar://problem/58675608
[Web Animations] Changing the delay of an accelerated animation doesn't seek the animation
https://bugs.webkit.org/show_bug.cgi?id=206990
<rdar://problem/58675608>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/seeking-by-changing-delay-accelerated.html
In order to seek an accelerated animation, we need to update the animation on the target element's backing GraphicsLayer. We do this by enqueuing an
AcceleratedAction:Seek command which is done by calling KeyframeEffect::animationDidSeek(), which we would only call from WebAnimation::setCurrentTime().
However, seeking can be performed by modifying the animation's effect's timing.
We now call WebAnimation::effectTimingDidChange() with an optional ComputedEffectTiming for call sites that want to provide timing data prior to
modifying timing properties. This allows WebAnimation::effectTimingDidChange() to compare the previous progress with the new progress to determine if the
animation was seeked, so KeyframeEffect::animationDidSeek() may be called.
There are two places where we now call WebAnimation::effectTimingDidChange() with the previous timing data. First, when updateTiming() is called
through the JavaScript API (AnimationEffect::updateTiming) and when a CSS Animation's timing has been modified by changing some of the animation CSS
properties (CSSAnimation::syncPropertiesWithBackingAnimation).
- animation/AnimationEffect.cpp: (WebCore::AnimationEffect::updateTiming): Compute the previous timing data and provide it to WebAnimation::effectTimingDidChange().
- animation/CSSAnimation.cpp: (WebCore::CSSAnimation::syncPropertiesWithBackingAnimation): Compute the previous timing data and provide it to WebAnimation::effectTimingDidChange().
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeAcceleratedPropertiesState): Drive-by fix for faulty logic introduced in a recent patch (r255383). (WebCore::KeyframeEffect::applyPendingAcceleratedActions): We need to reset the m_isRunningAccelerated flag when an animation was supposed to be stopped but couldn't be because the target's layer backing was removed prior to the accelerated action being committed.
- animation/WebAnimation.cpp: (WebCore::WebAnimation::effectTimingDidChange): If previous timing data was provided, check whether its progress differs from the current timing data and call KeyframeEffect::animationDidSeek().
- animation/WebAnimation.h:
LayoutTests:
Add a new test which would fail prior to this patch where we pause an animation after it has started playing accelerated and
change its delay to check that it correctly seeks the animation.
- webanimations/seeking-by-changing-delay-accelerated-expected.html: Added.
- webanimations/seeking-by-changing-delay-accelerated.html: Added.
- platform/win/TestExpectations: Mark the new test as failing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:17 PM Changeset in webkit [255698] by
-
- 3 edits in trunk/Tools
results.webkit.org: Support branches in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=204094
Rubber-stamped by Aakash Jain.
- Scripts/run-javascriptcore-tests:
(uploadResults): Use webkitdirs function to generate commit information.
- Scripts/VCSUtils.pm:
(commitForDirectory): Generate commit information for SVN repository, including
branch name.
- 2:14 PM Changeset in webkit [255697] by
-
- 2 edits in trunk/Tools
Replace bot677 due to hardware failure
https://bugs.webkit.org/show_bug.cgi?id=207224
Reviewed by Aakash Jain.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- 2:12 PM Changeset in webkit [255696] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207225
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 2:05 PM Changeset in webkit [255695] by
-
- 2 edits in trunk/Tools
TestWebKitAPI: Handle case where test result does not contain path
https://bugs.webkit.org/show_bug.cgi?id=207216
Reviewed by Tim Horton.
- TestWebKitAPI/TestsController.cpp:
(TestWebKitAPI::Printer::OnTestPartResult): It's possible that the TestPartResult
will not contain a file name. We should handle this case.
- 2:02 PM Changeset in webkit [255694] by
-
- 2 edits in trunk/Tools
results.webkit.org: Better order upload callbacks
https://bugs.webkit.org/show_bug.cgi?id=207219
Reviewed by Aakash Jain.
Order upload callbacks more deliberately so that the quickest callbacks
that are least likely to link to information from unfinished callbacks are
executed first.
- resultsdbpy/resultsdbpy/model/model.py:
(Model.init): Generate buildbot links first, then generate a failure
list, then generate the collective suite results and finally, individual
test results.
- 1:42 PM Changeset in webkit [255693] by
-
- 11 edits in trunk
Tighten up stylesheet loading
https://bugs.webkit.org/show_bug.cgi?id=189913
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-04
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Update improved test results.
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-quirks-expected.txt:
Source/WebCore:
Content-Type metadata for link stylesheet is determined using MIME
sniffing[1]. This can result in no Content-Type metadata.
If there is no Content-Type metadata, but the external resource link
type has a default type defined, then the user agent must assume that
the resource is of that type [2]. For link stylesheet the default is
text/css. This means invalid MIME type will default to text/css and
load and valid MIME types other than text/css will result in load error.
[1] https://mimesniff.spec.whatwg.org/
[2] https://html.spec.whatwg.org/multipage/semantics.html#fetch-and-process-the-linked-resource
Tests: imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html
imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
- css/StyleSheetContents.h:
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):
- loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::canUseSheet const):
- 1:39 PM Changeset in webkit [255692] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/zero-initialize-values-2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207222
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/mac-wk2/TestExpectations:
- 1:35 PM Changeset in webkit [255691] by
-
- 2 edits in trunk/Source/WebKit
[macCatalyst] Missing custom cursors in subframes that are offset from the origin of the root view
https://bugs.webkit.org/show_bug.cgi?id=207215
<rdar://problem/59157625>
Reviewed by Tim Horton.
<https://trac.webkit.org/r255046> added support for custom cursor styles when hovering over subframes. However,
we currently try to hit-test content in the subframe using the interaction information request's point, which is
in root view coordinates; as such, we only get the correct custom cursor styles when hovering over elements in a
subframe, if the subframe is also at the origin of the root view.
To fix this, simply convert from root view coordinates to frame coordinates when performing the hit-test.
Unfortunately, this change is currently untestable; see <rdar://problem/59158410>.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::lineCaretExtent):
- 12:01 PM Changeset in webkit [255690] by
-
- 2 edits in trunk/LayoutTests
Regression: (252273) [ Mac wk2 ] inspector/heap/getPreview.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207209
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/mac-wk2/TestExpectations:
- 11:45 AM Changeset in webkit [255689] by
-
- 4 edits in trunk
Quantifiers after lookahead assertions should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=206988
Reviewed by Darin Adler and Ross Kirsling.
JSTests:
- test262/expectations.yaml: Mark 10 test cases as passing.
Source/JavaScriptCore:
This change adds SyntaxError for quantifiable assertions in Unicode patterns,
aligning JSC with V8 and SpiderMonkey.
Grammar: https://tc39.es/ecma262/#prod-annexB-Term
(/u flag precludes the use of QuantifiableAssertion)
Return value of parseParenthesesEnd() now matches with parseEscape() and
parseAtomEscape().
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parseParenthesesEnd):
(JSC::Yarr::Parser::parseTokens):
- 11:06 AM Changeset in webkit [255688] by
-
- 2 edits in trunk/Source/WebKit
Fixed Deprecated API
https://bugs.webkit.org/show_bug.cgi?id=207179
Reviewed by Tim Horton.
Fixing deprecated API for MacCatalyst.
No new tests - build fix.
- Shared/UserInterfaceIdiom.mm:
(WebKit::userInterfaceIdiomIsPad):
- 11:05 AM Changeset in webkit [255687] by
-
- 24 edits2 adds in trunk/Source
[JSC] Introduce UnlinkedCodeBlockGenerator and reduce sizeof(UnlinkedCodeBlock)
https://bugs.webkit.org/show_bug.cgi?id=207087
Reviewed by Tadeu Zagallo.
Source/JavaScriptCore:
While UnlinkedCodeBlock is immutable once it is created from BytecodeGenerator, it has many mutable Vectors.
This is because we are using UnlinkedCodeBlock as a builder of UnlinkedCodeBlock itself too in BytecodeGenerator.
Since Vector takes 16 bytes to allow efficient expansions, it is nice if we can use RefCountedArray instead when
we know this Vector is immutable.
In this patch, we introduce UnlinkedCodeBlockGenerator wrapper. BytecodeGenerator, BytecodeRewriter, BytecodeDumper,
and BytecodeGeneratorification interact with UnlinkedCodeBlockGenerator instead of UnlinkedCodeBlock. And UnlinkedCodeBlockGenerator
will generate the finalized UnlinkedCodeBlock. This design allows us to use RefCountedArray for data in UnlinkedCodeBlock,
which is (1) smaller and (2) doing shrinkToFit operation when creating it from Vector.
This patch reduces sizeof(UnlinkedCodeBlock) from 256 to 168, 88 bytes reduction.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/BytecodeBasicBlock.cpp:
(JSC::BytecodeBasicBlock::compute):
- bytecode/BytecodeBasicBlock.h:
- bytecode/BytecodeDumper.cpp:
- bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
(JSC::GeneratorLivenessAnalysis::run):
(JSC::BytecodeGeneratorification::run):
(JSC::performGeneratorification):
- bytecode/BytecodeGeneratorification.h:
- bytecode/BytecodeRewriter.h:
(JSC::BytecodeRewriter::BytecodeRewriter):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantIdentifierSetRegisters):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::handlerForIndex):
(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::numberOfSwitchJumpTables const):
(JSC::CodeBlock::numberOfStringSwitchJumpTables const):
(JSC::CodeBlock::addSwitchJumpTable): Deleted.
(JSC::CodeBlock::addStringSwitchJumpTable): Deleted.
- bytecode/HandlerInfo.h:
(JSC::HandlerInfoBase::handlerForIndex):
- bytecode/JumpTable.h:
(JSC::SimpleJumpTable::add): Deleted.
- bytecode/PreciseJumpTargets.cpp:
(JSC::computePreciseJumpTargets):
(JSC::recomputePreciseJumpTargets):
(JSC::findJumpTargetsForInstruction):
- bytecode/PreciseJumpTargets.h:
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedCodeBlock::visitChildren):
(JSC::UnlinkedCodeBlock::dumpExpressionRangeInfo):
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeIndex const):
(JSC::UnlinkedCodeBlock::handlerForIndex):
(JSC::UnlinkedCodeBlock::addExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::addTypeProfilerExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::setInstructions): Deleted.
(JSC::UnlinkedCodeBlock::applyModification): Deleted.
(JSC::UnlinkedCodeBlock::shrinkToFit): Deleted.
(JSC::UnlinkedCodeBlock::addOutOfLineJumpTarget): Deleted.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::expressionInfo):
(JSC::UnlinkedCodeBlock::setNumParameters):
(JSC::UnlinkedCodeBlock::numberOfIdentifiers const):
(JSC::UnlinkedCodeBlock::identifiers const):
(JSC::UnlinkedCodeBlock::bitVector):
(JSC::UnlinkedCodeBlock::constantRegisters):
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation):
(JSC::UnlinkedCodeBlock::constantIdentifierSets):
(JSC::UnlinkedCodeBlock::numberOfJumpTargets const):
(JSC::UnlinkedCodeBlock::numberOfSwitchJumpTables const):
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables const):
(JSC::UnlinkedCodeBlock::numberOfFunctionDecls):
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers const):
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets const):
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary):
(JSC::UnlinkedCodeBlock::addParameter): Deleted.
(JSC::UnlinkedCodeBlock::addIdentifier): Deleted.
(JSC::UnlinkedCodeBlock::addBitVector): Deleted.
(JSC::UnlinkedCodeBlock::addSetConstant): Deleted.
(JSC::UnlinkedCodeBlock::addConstant): Deleted.
(JSC::UnlinkedCodeBlock::addJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::addSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionDecl): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionExpr): Deleted.
(JSC::UnlinkedCodeBlock::addExceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::replaceOutOfLineJumpTargets): Deleted.
- bytecode/UnlinkedCodeBlockGenerator.cpp: Added.
(JSC::UnlinkedCodeBlockGenerator::getLineAndColumn const):
(JSC::UnlinkedCodeBlockGenerator::addExpressionInfo):
(JSC::UnlinkedCodeBlockGenerator::addTypeProfilerExpressionInfo):
(JSC::UnlinkedCodeBlockGenerator::finalize):
(JSC::UnlinkedCodeBlockGenerator::handlerForBytecodeIndex):
(JSC::UnlinkedCodeBlockGenerator::handlerForIndex):
(JSC::UnlinkedCodeBlockGenerator::applyModification):
(JSC::UnlinkedCodeBlockGenerator::addOutOfLineJumpTarget):
(JSC::UnlinkedCodeBlockGenerator::outOfLineJumpOffset):
(JSC::UnlinkedCodeBlockGenerator::dump const):
- bytecode/UnlinkedCodeBlockGenerator.h: Added.
(JSC::UnlinkedCodeBlockGenerator::UnlinkedCodeBlockGenerator):
(JSC::UnlinkedCodeBlockGenerator::vm):
(JSC::UnlinkedCodeBlockGenerator::isConstructor const):
(JSC::UnlinkedCodeBlockGenerator::constructorKind const):
(JSC::UnlinkedCodeBlockGenerator::superBinding const):
(JSC::UnlinkedCodeBlockGenerator::scriptMode const):
(JSC::UnlinkedCodeBlockGenerator::needsClassFieldInitializer const):
(JSC::UnlinkedCodeBlockGenerator::isStrictMode const):
(JSC::UnlinkedCodeBlockGenerator::usesEval const):
(JSC::UnlinkedCodeBlockGenerator::parseMode const):
(JSC::UnlinkedCodeBlockGenerator::isArrowFunction):
(JSC::UnlinkedCodeBlockGenerator::derivedContextType const):
(JSC::UnlinkedCodeBlockGenerator::evalContextType const):
(JSC::UnlinkedCodeBlockGenerator::isArrowFunctionContext const):
(JSC::UnlinkedCodeBlockGenerator::isClassContext const):
(JSC::UnlinkedCodeBlockGenerator::numCalleeLocals const):
(JSC::UnlinkedCodeBlockGenerator::numVars const):
(JSC::UnlinkedCodeBlockGenerator::numParameters const):
(JSC::UnlinkedCodeBlockGenerator::thisRegister const):
(JSC::UnlinkedCodeBlockGenerator::scopeRegister const):
(JSC::UnlinkedCodeBlockGenerator::wasCompiledWithDebuggingOpcodes const):
(JSC::UnlinkedCodeBlockGenerator::hasCheckpoints const):
(JSC::UnlinkedCodeBlockGenerator::hasTailCalls const):
(JSC::UnlinkedCodeBlockGenerator::setHasCheckpoints):
(JSC::UnlinkedCodeBlockGenerator::setHasTailCalls):
(JSC::UnlinkedCodeBlockGenerator::setNumCalleeLocals):
(JSC::UnlinkedCodeBlockGenerator::setNumVars):
(JSC::UnlinkedCodeBlockGenerator::setThisRegister):
(JSC::UnlinkedCodeBlockGenerator::setScopeRegister):
(JSC::UnlinkedCodeBlockGenerator::setNumParameters):
(JSC::UnlinkedCodeBlockGenerator::metadata):
(JSC::UnlinkedCodeBlockGenerator::addOpProfileControlFlowBytecodeOffset):
(JSC::UnlinkedCodeBlockGenerator::numberOfJumpTargets const):
(JSC::UnlinkedCodeBlockGenerator::addJumpTarget):
(JSC::UnlinkedCodeBlockGenerator::jumpTarget const):
(JSC::UnlinkedCodeBlockGenerator::lastJumpTarget const):
(JSC::UnlinkedCodeBlockGenerator::numberOfSwitchJumpTables const):
(JSC::UnlinkedCodeBlockGenerator::addSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::switchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::numberOfStringSwitchJumpTables const):
(JSC::UnlinkedCodeBlockGenerator::addStringSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::stringSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::numberOfExceptionHandlers const):
(JSC::UnlinkedCodeBlockGenerator::exceptionHandler):
(JSC::UnlinkedCodeBlockGenerator::addExceptionHandler):
(JSC::UnlinkedCodeBlockGenerator::bitVector):
(JSC::UnlinkedCodeBlockGenerator::addBitVector):
(JSC::UnlinkedCodeBlockGenerator::numberOfConstantIdentifierSets const):
(JSC::UnlinkedCodeBlockGenerator::constantIdentifierSets):
(JSC::UnlinkedCodeBlockGenerator::addSetConstant):
(JSC::UnlinkedCodeBlockGenerator::constantRegister const):
(JSC::UnlinkedCodeBlockGenerator::constantRegisters):
(JSC::UnlinkedCodeBlockGenerator::getConstant const):
(JSC::UnlinkedCodeBlockGenerator::constantsSourceCodeRepresentation):
(JSC::UnlinkedCodeBlockGenerator::addConstant):
(JSC::UnlinkedCodeBlockGenerator::addFunctionDecl):
(JSC::UnlinkedCodeBlockGenerator::addFunctionExpr):
(JSC::UnlinkedCodeBlockGenerator::numberOfIdentifiers const):
(JSC::UnlinkedCodeBlockGenerator::identifier const):
(JSC::UnlinkedCodeBlockGenerator::addIdentifier):
(JSC::UnlinkedCodeBlockGenerator::outOfLineJumpOffset):
(JSC::UnlinkedCodeBlockGenerator::replaceOutOfLineJumpTargets):
(JSC::UnlinkedCodeBlockGenerator::metadataSizeInBytes):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeNextParameter):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::prepareJumpTableForSwitch):
(JSC::ForInContext::finalize):
(JSC::StructureForInContext::finalize):
(JSC::IndexedForInContext::finalize):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/BytecodeGeneratorBaseInlines.h:
(JSC::BytecodeGeneratorBase<Traits>::newRegister):
(JSC::BytecodeGeneratorBase<Traits>::addVar):
- runtime/CachedTypes.cpp:
(JSC::CachedVector::encode):
(JSC::CachedVector::decode const):
- wasm/WasmFunctionCodeBlock.h:
(JSC::Wasm::FunctionCodeBlock::setNumVars):
(JSC::Wasm::FunctionCodeBlock::setNumCalleeLocals):
Source/WTF:
Add more useful methods for RefCountedArray.
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::operator=):
(WTF::RefCountedArray::isEmpty const):
(WTF::RefCountedArray::front):
(WTF::RefCountedArray::front const):
(WTF::RefCountedArray::last):
(WTF::RefCountedArray::last const):
- 11:01 AM Changeset in webkit [255686] by
-
- 2 edits in trunk/Tools
[EWS] Do not remove TestWebKitAPI prefix from api test failures
https://bugs.webkit.org/show_bug.cgi?id=207210
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(AnalyzeAPITestsResults.analyzeResults):
- 10:43 AM Changeset in webkit [255685] by
-
- 5 edits5 adds in trunk/Source/WebKit
[PlayStation] Add WebKit API files
https://bugs.webkit.org/show_bug.cgi?id=207168
Reviewed by Darin Adler.
Add PlayStation WebKit API files and expose them in the root header. Fix up the
build to copy them over. Also make sure that the playstation directory is listed
as a platform in the forwarding headers script.
- PlatformPlayStation.cmake:
- Scripts/generate-forwarding-headers.pl:
- Shared/API/c/WKBase.h:
- Shared/API/c/playstation/WKBasePlayStation.h: Added.
- UIProcess/API/C/WKAPICast.h:
- UIProcess/API/C/playstation/WKAPICastPlayStation.h: Added.
- UIProcess/API/C/playstation/WKView.h: Added.
- 10:21 AM Changeset in webkit [255684] by
-
- 3 edits in trunk/Tools
[EWS] Do not remove webkitpy prefix from test failures
https://bugs.webkit.org/show_bug.cgi?id=207206
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(WebKitPyTest.getResultSummary): Do not remove 'webkitpy' from test name. Also handled the
case when json output doesn't have failures/errors key.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- 9:47 AM Changeset in webkit [255683] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] inspector/canvas/shaderProgram-add-remove-webgl2.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=206718
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/mac-wk2/TestExpectations:
- 9:02 AM Changeset in webkit [255682] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/textures-sample-grad.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207202
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/mac-wk2/TestExpectations:
- 9:02 AM Changeset in webkit [255681] by
-
- 21 edits in trunk/Source
NetworkProcess should be notified by UIProcess when its service worker process connection should be on
https://bugs.webkit.org/show_bug.cgi?id=207122
<rdar://problem/59089780>
Reviewed by Chris Dumez.
Source/WebCore:
Add a completion handler to the create context connection callback.
This is called when the context connection should have been created.
In case there is a context connection, completion handler does nothing.
Otherwise, SWServer will retry creating a context connection if needed.
The pending connection map entry is now removed in the completion handler instead of addContextConnection.
This ensures that only one connection request is sent by network process at a time.
Add extra logging to monitor creation of a context connection.
- workers/service/context/SWContextManager.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::addContextConnection):
(WebCore::SWServer::removeContextConnection):
(WebCore::SWServer::createContextConnectionFinished):
- workers/service/server/SWServer.h:
Source/WebKit:
Add completion handlers to the messaging from NetworkProcess -> UIProcess -> WebProcess -> NetworkProcess
used to create a service worker context connection.
This allows NetworkProcess to ask again for a connection if the connection is still needed but NetworkProcess did not find the context connection.
This is difficult to test since we would need for the process selected to host service workers to exit between the
time it is selected and the time it sends the message to Networking process.
To ensure that the context connection is created by WebProcess, WebProcessProxy takes a background assertion until WebProcess finishes
creating the context connection to Network process.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::swServerForSession):
- NetworkProcess/NetworkProcess.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::establishServiceWorkerContext):
- UIProcess/WebProcessProxy.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::establishConnection):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 8:55 AM Changeset in webkit [255680] by
-
- 4 edits in trunk
Check for callback being null in Notification.requestPermission
https://bugs.webkit.org/show_bug.cgi?id=207192
<rdar://problem/59130804>
Reviewed by Chris Dumez.
Source/WebCore:
Covered by updated test.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::requestPermission):
Callback can be null if no function is given to requestPermission.
Check this before calling the callback.
LayoutTests:
- http/tests/notifications/notification-in-non-secure-context.html:
- 8:29 AM Changeset in webkit [255679] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- 8:26 AM Changeset in webkit [255678] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/while-loop-continue.html flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207200
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/mac-wk2/TestExpectations:
- 8:17 AM Changeset in webkit [255677] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r255595): page not closed after beforeunload handler returns true
https://bugs.webkit.org/show_bug.cgi?id=207189
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-02-04
Reviewed by Chris Dumez.
We are assuming the try close did timeout in that case, because the timer is stopped before running the
beforeunload dialog.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): Start the try close timer again when the beforeunload
dialog replies.
- 8:09 AM Changeset in webkit [255676] by
-
- 2 edits in trunk/LayoutTests
Regression: (252334?) [ iOS wk2 ] http/tests/resourceLoadStatistics/cookie-deletion.html is flaky failing and crashing.
https://bugs.webkit.org/show_bug.cgi?id=207197
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/ios-wk2/TestExpectations:
- 7:59 AM Changeset in webkit [255675] by
-
- 5 edits in trunk
Web Inspector: REGRESSION(r248287): Console: function objects saved to a $n will be invoked instead of just referenced when evaluating in the Console
https://bugs.webkit.org/show_bug.cgi?id=207180
<rdar://problem/58860268>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/InjectedScriptSource.js:
(CommandLineAPI):
Instead of deciding whether to wrap the value given for a$ngetter based on if the value
is already a function, always wrap getter values in a function so that if the value being
stored in the getter is already a function, it isn't used as the callback for the getter and
therefore invoked when the getter is referenced.
LayoutTests:
- inspector/runtime/saveResult.html:
- inspector/runtime/saveResult-expected.txt:
- 7:56 AM Changeset in webkit [255674] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/loops.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207199
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-02-04
- platform/mac-wk2/TestExpectations:
- 7:48 AM Changeset in webkit [255673] by
-
- 2 edits in trunk/Source/WebCore
Build error with -DENABLE_VIDEO=OFF after r253923
https://bugs.webkit.org/show_bug.cgi?id=207101
Reviewed by Youenn Fablet.
No new tests, only build error fix up
- page/Page.cpp:
(WebCore::Page::forEachMediaElement):
- 7:42 AM Changeset in webkit [255672] by
-
- 2 edits in trunk/LayoutTests
Regression: (252234?) [ iOS wk2 ] fast/scrolling/ios/scroll-events-back-forward.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207194
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/ios-wk2/TestExpectations:
- 7:30 AM Changeset in webkit [255671] by
-
- 4 edits2 adds in trunk
CSS Rules with the same selector from several large stylesheets are applied in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=204687
<rdar://problem/57522566>
Reviewed by Zalan Bujtas.
Source/WebCore:
Original test by Anton Khlynovskiy.
Test: fast/css/many-rules.html
- style/RuleData.h:
We overflow the 18 bit m_position field with > 256k CSS rules, confusing the rule order.
Since we have unused bits it costs nothing to increase the field size to 22 bits.
4M rules should be enough for anybody.
LayoutTests:
- TestExpectations:
- fast/css/many-rules-expected.html: Added.
- fast/css/many-rules.html: Added.
- 6:17 AM WebKitGTK/StableRelease edited by
- (diff)
- 5:52 AM Changeset in webkit [255670] by
-
- 22 edits in trunk
[CMake] Add Cairo::Cairo target
https://bugs.webkit.org/show_bug.cgi?id=207159
Reviewed by Konstantin Tokarev.
.:
- Source/cmake/FindCairo.cmake:
- Source/cmake/OptionsPlayStation.cmake:
Source/WebCore:
- PlatformWinCairo.cmake:
- platform/Cairo.cmake:
Source/WebKit:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
Source/WebKitLegacy:
- PlatformWin.cmake:
Tools:
- DumpRenderTree/PlatformWin.cmake:
- ImageDiff/Cairo.cmake:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/PlatformWin.cmake:
- TestWebKitAPI/glib/CMakeLists.txt:
- WebKitTestRunner/PlatformGTK.cmake:
- WebKitTestRunner/PlatformWPE.cmake:
- WebKitTestRunner/PlatformWin.cmake:
- wpe/backends/CMakeLists.txt:
- 4:18 AM WebKitGTK/2.28.x created by
- 4:12 AM Changeset in webkit [255669] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Unreviewed. [GTK] Add an env var to force single process model
WEBKIT_USE_SINGLE_WEB_PROCESS=1 can be used to force the single process model when PSON is disabled. This is a
temporary solution for applications still depending on the single process mode behavior. It will be only
available in 2.28 series.
- UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed):
- 2:57 AM Changeset in webkit [255668] by
-
- 26 edits2 adds in trunk
MediaDevices should handle changes of iframe allow attribute value
https://bugs.webkit.org/show_bug.cgi?id=207112
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
- web-platform-tests/mediacapture-streams/MediaStream-feature-policy-none.https-expected.txt:
Source/WebCore:
MediaDevices was computing whether it could access camera or microphone at creation time.
Since the iframe allow attribute can be modified, we cannot do that.
Instead, we get the feature policy everytime this is needed.
Refactor code to use the newly added routine to check for feature policy.
Update logging to give origin and allow attribute value of the frame that fail the feature policy check.
Test: http/tests/webrtc/enumerateDevicesInFrames.html
- Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::MediaDevices):
(WebCore::MediaDevices::refreshDevices):
(WebCore::MediaDevices::enumerateDevices):
(WebCore::MediaDevices::listenForDeviceChanges):
- Modules/mediastream/MediaDevices.h:
- Modules/mediastream/UserMediaController.cpp:
(WebCore::UserMediaController::logGetUserMediaDenial):
(WebCore::UserMediaController::logGetDisplayMediaDenial):
(WebCore::UserMediaController::logEnumerateDevicesDenial):
- Modules/mediastream/UserMediaController.h:
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
- html/FeaturePolicy.cpp:
(WebCore::policyTypeName):
(WebCore::isFeaturePolicyAllowedByDocumentAndAllOwners):
- html/FeaturePolicy.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::printErrorMessage const):
- page/DOMWindow.h:
LayoutTests:
- TestExpectations:
- fullscreen/full-screen-enabled-expected.txt:
- fullscreen/full-screen-enabled-prefixed-expected.txt:
- fullscreen/full-screen-iframe-not-allowed-expected.txt:
- fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent-expected.txt:
- fullscreen/full-screen-restrictions-expected.txt:
- http/tests/fullscreen/fullscreen-feature-policy-expected.txt:
- http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute-expected.txt:
- http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
- http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
- http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
- http/tests/webrtc/enumerateDevicesInFrames-expected.txt: Added.
- http/tests/webrtc/enumerateDevicesInFrames.html: Added.
- 2:00 AM Changeset in webkit [255667] by
-
- 1 copy in releases/WebKitGTK/webkit-2.28
Branch WebKitGTK for 2.28
- 12:28 AM Changeset in webkit [255666] by
-
- 3 edits in trunk/Source/WebKit
[Win][Clang] WebProcessMain.h(28,14): error: token is not a valid binary operator in a preprocessor subexpression
https://bugs.webkit.org/show_bug.cgi?id=207188
Unreviewed build fix for WinCairo port.
- NetworkProcess/EntryPoint/win/NetworkProcessMain.cpp:
- WebProcess/EntryPoint/win/WebProcessMain.cpp:
Added #include "config.h".
- 12:04 AM Changeset in webkit [255665] by
-
- 3 edits in trunk/Source/WebCore
[WinCairo][curl][Clang] error: member access into incomplete type 'WebCore::SynchronousLoaderMessageQueue' in ~CurlRequest
https://bugs.webkit.org/show_bug.cgi?id=207187
Unreviewed build fix for clang-cl builds of WinCairo port.
SynchronousLoaderMessageQueue couldn't be destructed in inlined
~CurlRequest because it's a incomplete type. Moved the dtor from
CurlRequest.h to CurlRequest.cpp.
- platform/network/curl/CurlRequest.cpp:
- platform/network/curl/CurlRequest.h: