Timeline
Feb 22, 2019:
- 9:30 PM Changeset in webkit [241988] by
-
- 20 edits in trunk/Source/WebKit
Give DrawingAreas their own identifiers
https://bugs.webkit.org/show_bug.cgi?id=194969
<rdar://problem/48154508>
Reviewed by Geoffrey Garen.
Give DrawingAreas their own identifiers instead of using the pageID. It will make the IPC more robust now that a
WebPageProxy can have several drawing areas with PSON.
- Shared/DrawingAreaInfo.h:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/AcceleratedDrawingAreaProxy.cpp:
(WebKit::AcceleratedDrawingAreaProxy::sendUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::setNativeSurfaceHandleForCompositing):
(WebKit::AcceleratedDrawingAreaProxy::destroyNativeSurfaceHandleForCompositing):
- UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::~DrawingAreaProxy):
(WebKit::DrawingAreaProxy::messageSenderConnection const):
(WebKit::DrawingAreaProxy::sendMessage):
(WebKit::DrawingAreaProxy::viewExposedRectChangedTimerFired):
- UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::identifier const):
(WebKit::DrawingAreaProxy::process const):
- UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::update):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::initializeWebPage):
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry):
(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidEnd):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState):
(WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::creationParameters):
- UIProcess/WebPageProxy.h:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::colorSpaceDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState):
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingAreaProxy::commitTransientZoom):
(WebKit::TiledCoreAnimationDrawingAreaProxy::dispatchAfterEnsuringDrawing):
- WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea):
(WebKit::AcceleratedDrawingArea::layerHostDidFlushLayers):
(WebKit::AcceleratedDrawingArea::sendDidUpdateBackingStoreState):
- WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::DrawingArea):
(WebKit::DrawingArea::removeMessageReceiverIfNeeded):
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::identifier const):
(WebKit::DrawingArea::send):
- WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
(WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaImpl::display):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::sendEnterAcceleratedCompositingModeIfNeeded):
(WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::setLayerHostingMode):
- 9:14 PM Changeset in webkit [241987] by
-
- 2 edits in trunk/LayoutTests
Fix a legacy animation test. The <!-- webkit-test-runner --> was inside the <style>.
- legacy-animation-engine/animations/additive-transform-animations.html:
- 9:05 PM Changeset in webkit [241986] by
-
- 2 edits in trunk/Source/WebCore
Crash in SWServerJobQueue::runNextJobSynchronously
https://bugs.webkit.org/show_bug.cgi?id=194974
Reviewed by Geoffrey Garen.
We suspect the crash is happening due to m_jobQueue being empty in runNextJobSynchronously
or there is a timer heap corruption again :(
Exit early when m_jobQueue is empty. Also add a debug assert that this should never happen
but convert an existing release assert to a debug assert since this appears to be hitting
too frequently in wild.
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::runNextJobSynchronously):
- 8:50 PM Changeset in webkit [241985] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Do not suppress deprecation warnings when calling sandbox_extension_issue_file
https://bugs.webkit.org/show_bug.cgi?id=194971
<rdar://problem/35786264>
Reviewed by Tim Horton.
sandbox_extension_issue_file is not actually deprecated.
- Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
- 8:40 PM Changeset in webkit [241984] by
-
- 16 edits in trunk/Source/WebCore
Clean up the setScrollPosition/setScrollPositionWithoutContentEdgeConstraints confusion in the scrolling tree nodes
https://bugs.webkit.org/show_bug.cgi?id=194968
Reviewed by Antti Koivisto.
Having both setScrollPosition() and setScrollPositionWithoutContentEdgeConstraints() is confusing because
you can't tell which is the bottleneck. So add a 'clamp' parameter to setScrollPosition() and merge them.
ScrollingTreeFrameScrollingNodeMac::setScrollPosition() replicates a bit of code but future cleanups will
reduce that.
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition): Deleted. This was the same as the base class method.
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::setScrollPosition):
(WebCore::ScrollingTreeScrollingNode::clampScrollPosition const):
(WebCore::ScrollingTreeScrollingNode::scrollBy):
(WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints): Deleted.
(WebCore::ScrollingTreeScrollingNode::scrollByWithoutContentEdgeConstraints): Deleted.
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
- page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints): Deleted. Did nothing.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints): Deleted.
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints): Deleted.
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
- platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::delta const):
- platform/ScrollTypes.h:
- 8:31 PM Changeset in webkit [241983] by
-
- 3 edits2 adds in trunk
AX: Treat AXChildrenInNavigationOrder as AXChildren before adding support for aria-flowto
https://bugs.webkit.org/show_bug.cgi?id=194923
Patch by Eric Liang <ericliang@apple.com> on 2019-02-22
Reviewed by Chris Fleizach.
Source/WebCore:
Added AXChildrenInNavigationOrder attribute that returns the same array as from AXChildren. It prevents AppKit from reordering elements from the fallback AXChildren attribute.
Test: accessibility/mac/children-in-navigation-order-returns-children.html
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
Added test to check AXChildrenInNavigationOrder returns non-empty array from AXChildren.
- accessibility/mac/children-in-navigation-order-returns-children-expected.txt: Added.
- accessibility/mac/children-in-navigation-order-returns-children.html: Added.
- 8:17 PM Changeset in webkit [241982] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Timelines: add UI for preventing auto-stop
https://bugs.webkit.org/show_bug.cgi?id=194956
Reviewed by Joseph Pecoraro.
Add a checkbox to the navigation area of the Timelines tab that controls whether recordings
automatically stop (e.g. after "load" or a period of inactivity).
- UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype.get navigationItems):
(WI.TimelineRecordingContentView.prototype._handleAutoStopCheckboxCheckedDidChange): Added.
(WI.TimelineRecordingContentView.prototype._handleTimelinesAutoStopSettingChanged): Added.
- UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager):
(WI.TimelineManager.prototype.capturingStopped):
(WI.TimelineManager.prototype._stopAutoRecordingSoon):
(WI.TimelineManager.prototype._resetAutoRecordingMaxTimeTimeout):
(WI.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
(WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged):
- UserInterface/Base/Setting.js:
- Localizations/en.lproj/localizedStrings.js:
- 8:10 PM Changeset in webkit [241981] by
-
- 3 edits in trunk/Source/WebInspectorUI
REGRESSION(r?): Web Inspector: Popovers have inset shadows
https://bugs.webkit.org/show_bug.cgi?id=192963
<rdar://problem/46888679>
Reviewed by Brian Burg.
- UserInterface/Views/Popover.js:
(WI.Popover.prototype._drawBackground):
(WI.Popover.prototype._drawBackground.isolate): Added.
- UserInterface/Views/Popover.css:
(.popover):
- 8:07 PM Changeset in webkit [241980] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles Redesign: clicking CSS property or selector should always select its text
https://bugs.webkit.org/show_bug.cgi?id=180791
<rdar://problem/36038366>
Reviewed by Brian Burg.
- UserInterface/Views/SpreadsheetSelectorField.js:
(WI.SpreadsheetSelectorField):
(WI.SpreadsheetSelectorField.prototype.startEditing):
(WI.SpreadsheetSelectorField.prototype.stopEditing):
(WI.SpreadsheetSelectorField.prototype._handleMouseDown): Added.
(WI.SpreadsheetSelectorField.prototype._handleMouseUp): Added.
(WI.SpreadsheetSelectorField.prototype._handleFocus): Deleted.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration .selector.editing:focus, .spreadsheet-css-declaration .selector > .matched): Added.
(.spreadsheet-css-declaration .selector.spreadsheet-selector-field):
(.spreadsheet-css-declaration .selector:focus, .spreadsheet-css-declaration .selector > .matched): Deleted.
- 8:05 PM Changeset in webkit [241979] by
-
- 4 edits2 adds in trunk
[WinCairo] Enable wk1/wk2 suffix for platform search path.
https://bugs.webkit.org/show_bug.cgi?id=194846
Reviewed by Don Olmstead.
Tools:
Added _search_paths() and _port_specific_expectations_files() for
WinCairoPort.
- Scripts/webkitpy/port/win.py:
(WinCairoPort.default_baseline_search_path):
(WinCairoPort):
(WinCairoPort._port_specific_expectations_files):
(WinCairoPort._search_paths):
LayoutTests:
Added WebKitLegacy specific TestExpectations.
- platform/wincairo-wk1/TestExpectations: Added.
- platform/wincairo/TestExpectations:
- 6:38 PM Changeset in webkit [241978] by
-
- 7 edits in trunk
ProcessSwap.PageOverlayLayerPersistence fails on iOS and in debug builds
https://bugs.webkit.org/show_bug.cgi?id=194963
Reviewed by Dean Jackson.
Source/WebCore:
Tested by existing failing API test.
- page/Page.cpp:
(WebCore::Page::installedPageOverlaysChanged): Deleted.
- page/Page.h:
(WebCore::Page::pageOverlayController):
- page/PageOverlayController.cpp:
(WebCore::PageOverlayController::installedPageOverlaysChanged):
(WebCore::PageOverlayController::detachViewOverlayLayers):
(WebCore::PageOverlayController::installPageOverlay):
(WebCore::PageOverlayController::uninstallPageOverlay):
(WebCore::PageOverlayController::willDetachRootLayer): Deleted.
- page/PageOverlayController.h:
As intended by r240940, move installedPageOverlaysChanged to PageOverlayController.
Also, make it ignore isInWindow state; otherwise, if you install a overlay
and then come into window, nothing installs the root layer. There is no
need for this code to follow in-window state manually anymore since
the DrawingArea and RenderLayerCompositor just hook the layers up when needed.
Make some methods private, and make detachViewOverlayLayers only touch
*view* overlays, so that we don't detach the document-relative root
layer when you drop to having no view overlays. This maintains
existing behavior because nothing was calling PageOverlayController::detachViewOverlayLayers.
Now there are no callers of willDetachRootLayer, so remove it.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
Do a
containscheck instead ofequals, because in debug builds we
put the GraphicsLayer pointer in a prefix.
- 6:10 PM Changeset in webkit [241977] by
-
- 1 edit1 add in trunk/LayoutTests
Rotation animations sometimes use the wrong origin (affects apple.com)
https://bugs.webkit.org/show_bug.cgi?id=194878
<rdar://problem/43908047>
Reviewed by Simon Fraser.
Forgot another expected results file.
- legacy-animation-engine/animations/additive-transform-animations-expected.html: Added.
- 6:06 PM Changeset in webkit [241976] by
-
- 1 edit in branches/safari-607-branch/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig
Apply patch. rdar://problem/47289624
- 5:51 PM Changeset in webkit [241975] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dark Mode: DOM Content Loaded blue marker is too dark
https://bugs.webkit.org/show_bug.cgi?id=194970
<rdar://problem/48330126>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/TimelineRuler.css:
(@media (prefers-color-scheme: dark)):
(.timeline-ruler > .markers > .marker.dom-content-event):
Make the marker lighter for the dark mode.
- 5:50 PM Changeset in webkit [241974] by
-
- 6 edits in branches/safari-607-branch/Source
Apply patch. rdar://problem/47289624
- 5:03 PM Changeset in webkit [241973] by
-
- 2 edits in trunk/LayoutTests
Skip the test added in r241932 on iOS for now.
- platform/ios/TestExpectations:
- 4:54 PM Changeset in webkit [241972] by
-
- 1 edit in branches/safari-607-branch/Source/WebCore/page/mac/DragControllerMac.mm
Unreviwed build fix. rdar://problem/47289624
- 4:48 PM Changeset in webkit [241971] by
-
- 17 edits2 adds in trunk
[iOS] Callout menu overlaps in-page controls when editing a comment in github.com's issue tracker
https://bugs.webkit.org/show_bug.cgi?id=194873
<rdar://problem/46701974>
Reviewed by Tim Horton.
Source/WebKit:
On the topic of supporting web-based rich text editors on iOS, one problematic area has always been handling
conflicts between platform UI (i.e., the system callout menu) and in-page text editing controls. This issue
comes up in websites that don't use the "hidden contenteditable" approach to rich text editing, but also show
additional controls in a toolbar or contextual menu above the selection. In these cases, what often happens is
that system controls overlap controls in the page.
Luckily, the iOS callout menu (i.e. the private UICalloutBar) is capable of presenting with a list of "evasion
rects" to avoid; if the callout bar would normally intersect with one of these rects, then a different
orientation that does not intersect with one of these rects is chosen instead. Currently, the only rect added
here by UIKit when presenting the callout menu is the bounding rect of the on-screen keyboard, but after
<rdar://problem/48128337>, we now have a generalized mechanism for offering additional evasion rects before
UIKit presents the callout menu.
This patch adopts the mechanism introduced in <rdar://problem/48128337>, and introduces a heuristic for
determining the approximate location of controls in the page which might overlap the callout menu. This
heuristic works by hit-testing for clickable (but non-editable) nodes above the bounds of the selection, which
are additionally not hit-tested by advancing outwards from any of the other edges of the selection bounds.
Additionally, any hit-tested nodes whose bounding rects are very large (relative to the content view size) are
ignored (this deals with scenarios where the body or a large container element has a click handler). We then add
the bounding rects of each of the nodes that fit this criteria to the list of rects for UIKit to avoid when
presenting the system callout menu.
The result is that WebKit will, by default, avoid overlapping anything that looks like controls in the page when
showing a callout menu in editable content. In practice, this fixes overlapping controls on most websites that
roll their own context menu or toolbar in their rich text editor.
Test: editing/selection/ios/avoid-showing-callout-menu-over-controls.html
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView requestRectsToEvadeForSelectionCommandsWithCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
Drive-by: handle null completion handler arguments more gracefully, by raising an NSException and bailing before
attempting to invoke a nil block.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::requestEvasionRectsAboveSelection):
See above for more detail.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestEvasionRectsAboveSelection):
Tools:
Add a couple of UIScriptController methods to make callout menu testing on iOS easier (see below).
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::menuRect const):
(WTR::UIScriptController::isShowingMenu const):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::menuRect const):
Add a function to query the bounds of the callout menu in content coordinates.
(WTR::UIScriptController::isShowingMenu const):
Add a function to query whether the callout menu is shown (i.e., has finished its appearance animation).
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::rectForMenuAction const):
(WTR::UIScriptController::menuRect const):
(WTR::UIScriptController::isShowingMenu const):
(WTR::findViewInHierarchyOfType): Deleted.
LayoutTests:
Add a test to ensure that the we dodge clickable elements when showing the callout bar.
- editing/selection/ios/avoid-showing-callout-menu-over-controls-expected.txt: Added.
- editing/selection/ios/avoid-showing-callout-menu-over-controls.html: Added.
- resources/ui-helper.js:
(window.UIHelper.waitForMenuToShow.return.new.Promise):
(window.UIHelper.waitForMenuToShow):
(window.UIHelper.menuRect):
(window.UIHelper):
- 4:41 PM Changeset in webkit [241970] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Break a reference cycle between PreviewLoader and ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=194964
<rdar://problem/48279441>
Reviewed by Alex Christensen.
When a document's QuickLook preview is loaded, a reference cycle is created between
PreviewLoader and ResourceLoader. Break the cycle by clearing m_previewLoader in
ResourceLoader::releaseResources().
Fixes leaks detected by
run-webkit-tests --leaks LayoutTests/quicklook.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
- 4:32 PM WebKitGTK/2.24.x edited by
- (diff)
- 4:13 PM Changeset in webkit [241969] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix: need a WebCore:: namespace on ScrollingEventResult.
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- 4:05 PM Changeset in webkit [241968] by
-
- 3 edits1 add in trunk
DFGBytecodeParser should not declare that a node won't clobberExit if DFGFixupPhase can later declare it does clobberExit
https://bugs.webkit.org/show_bug.cgi?id=194953
<rdar://problem/47595253>
Reviewed by Saam Barati.
JSTests:
I could not make this work without the infinite loop, so I am using a watchdog to be able to use it as a regression test.
- stress/has-indexed-property-with-worsening-array-mode.js: Added.
Source/JavaScriptCore:
For each node that
(a) may or may not clobberExit depending on their arrayMode
(b) and get their arrayMode from profiling information in DFGBytecodeParser
(c) and can have their arrayMode refined by DFGFixupPhase,
We must make sure to be conservative in the DFGBytecodeParser and treat it as if it unconditionnally clobbered the exit.
Otherwise we will hit a validation failure after fixup if the next node was marked ExitValid and exits to the same semantic origin.
The list of nodes that fit (a) is:
- StringCharAt
- HasIndexProperty
- GetByVal
- PutByValDirect
- PutByVal
- PutByValAlias
- GetIndexedPropertyStorage
Out of these, the following also fit (b) and (c):
- HasIndexedProperty
- GetByVal
- PutByValDirect
- PutByVal
GetByVal already had "m_exitOK = false; GetByVal must be treated as if it clobbers exit state, since FixupPhase may make it generic."
So we just have to fix the other three the same way.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- 3:41 PM Changeset in webkit [241967] by
-
- 5 edits in trunk/Source/WebCore
Crash under IDBServer::IDBConnectionToClient::identifier() const
https://bugs.webkit.org/show_bug.cgi?id=194843
<rdar://problem/48203102>
Reviewed by Geoffrey Garen.
UniqueIDBDatabase should ignore requests from connections that are already closed.
Tests are hard to create without some tricks on UniqueIDBDatabase so this fix is verified manually.
One test is created by adding delay to UniqueIDBDatabase::openBackingStore on the background thread to make sure
disconnection of web process happens before UniqueIDBDatabase::didOpenBackingStore, because didOpenBackingStore
may start a version change transaction and ask for identifier from the connection that is already gone.
- Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::connectionToClientClosed):
- Modules/indexeddb/server/IDBConnectionToClient.h:
(WebCore::IDBServer::IDBConnectionToClient::isClosed):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::clearStalePendingOpenDBRequests):
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- 2:59 PM Changeset in webkit [241966] by
-
- 1 edit in branches/safari-608.1.5.1-branch/Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h
Unreviewed build fix.
- 2:59 PM Changeset in webkit [241965] by
-
- 1 edit in branches/safari-608.1.5.1-branch/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h
Unreviewed build fix. rdar://problem/46793397
- 2:54 PM Changeset in webkit [241964] by
-
- 3 edits in trunk/Source/JavaScriptCore
B3ReduceStrength: missing peephole optimizations for binary operations
https://bugs.webkit.org/show_bug.cgi?id=194252
Reviewed by Saam Barati.
Adds several sets of optimizations for BitAnd, BitOr and BitXor.
Using BitAnd distributivity over BitOr and BitXor:
Turn any of these (for Op == BitOr Op == BitXor): Op(BitAnd(x1, x2), BitAnd(x1, x3))
Op(BitAnd(x2, x1), BitAnd(x1, x3))
Op(BitAnd(x1, x2), BitAnd(x3, x1))
Op(BitAnd(x2, x1), BitAnd(x3, x1))
Into this: BitAnd(Op(x2, x3), x1)
And any of these:
Op(BitAnd(x1, x2), x1)
Op(BitAnd(x2, x1), x1)
Op(x1, BitAnd(x1, x2))
Op(x1, BitAnd(x2, x1))
Into this: BitAnd(Op(x2, x1), x1)
This second set is equivalent to doing x1 => BitAnd(x1, x1), and then applying the first set.
Using de Morgan laws (we represent not as BitXor with allOnes):
BitAnd(BitXor(x1, allOnes), BitXor(x2, allOnes)) => BitXor(BitOr(x1, x2), allOnes)
BitOr(BitXor(x1, allOnes), BitXor(x2, allOnes) => BitXor(BitAnd(x1, x2), allOnes)
BitOr(BitXor(x, allOnes), c) => BitXor(BitAnd(x, ~c), allOnes)
BitAnd(BitXor(x, allOnes), c) => BitXor(BitOr(x, ~c), allOnes)
The latter two are equivalent to doing c => BitXor(~c, allOnes), and then applying the former two.
All of these transformations either reduce the number of operations (which we always do when possible), or bring the expression closer to having:
- BitXor with all ones at the outermost
- then BitAnd
- then other BitXor
- then BitOr at the innermost.
These transformations that don't directly reduce the number of operations are still useful for normalization (helping things like CSE), and also can enable
more optimizations (for example BitXor with all ones can easily cancel each other once they are all at the outermost level).
- b3/B3ReduceStrength.cpp:
- b3/testb3.cpp:
(JSC::B3::testBitAndNotNot):
(JSC::B3::testBitAndNotImm):
(JSC::B3::testBitOrAndAndArgs):
(JSC::B3::testBitOrAndSameArgs):
(JSC::B3::testBitOrNotNot):
(JSC::B3::testBitOrNotImm):
(JSC::B3::testBitXorAndAndArgs):
(JSC::B3::testBitXorAndSameArgs):
(JSC::B3::run):
- 1:17 PM Changeset in webkit [241963] by
-
- 7 edits in trunk
Regression(PSON) Unable to preview password-protected documents on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=194954
<rdar://problem/48127957>
Reviewed by Alex Christensen.
Source/WebKit:
Make sure the ProvisionalPageProxy forwards to the WebPageProxy the QuickLook-related
IPC on iOS.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame):
(WebKit::ProvisionalPageProxy::didReceiveMessage):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame):
(WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrameShared):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[PSONNavigationDelegate _webViewDidRequestPasswordForQuickLookDocument:]):
(-[PSONNavigationDelegate _webView:didStartLoadForQuickLookDocumentInMainFrameWithFileName:uti:]):
(-[PSONNavigationDelegate _webView:didFinishLoadForQuickLookDocumentInMainFrame:]):
- 12:44 PM Changeset in webkit [241962] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Sandbox should allow mach lookups related to media capturing
https://bugs.webkit.org/show_bug.cgi?id=194951
<rdar://problem/48013875>
Reviewed by Brent Fulgham.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 12:31 PM Changeset in webkit [241961] by
-
- 4 edits in branches/safari-608.1.5.1-branch
Revert r241606. rdar://problem/47884404
- 12:31 PM Changeset in webkit [241960] by
-
- 2 edits in branches/safari-608.1.5.1-branch/Source/WebKit
Revert r241631. rdar://problem/48126255
- 12:31 PM Changeset in webkit [241959] by
-
- 12 edits in branches/safari-608.1.5.1-branch/Source
Revert r241721. rdar://problem/47677951
- 12:31 PM Changeset in webkit [241958] by
-
- 9 edits in branches/safari-608.1.5.1-branch
Revert r241752. rdar://problem/48055151
- 12:31 PM Changeset in webkit [241957] by
-
- 3 edits in branches/safari-608.1.5.1-branch/Source/WebKit
Cherry-pick r241584. rdar://problem/46793397
Unreviewed. Fix GTK+ build after r241556
I guess this is due to unified builds after a new file being added in r241556.
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-02-15
- UIProcess/API/C/WKAuthenticationDecisionListener.cpp:
- UIProcess/API/C/WKPage.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:20 PM Changeset in webkit [241956] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] putNonEnumerable in JSWrapperMap is too costly
https://bugs.webkit.org/show_bug.cgi?id=194935
Reviewed by Mark Lam.
When we convert Objective-C blocks to JS objects, we need to set up a corresponding function object correctly.
During this allocation, we call [JSValue defineProperty:descriptor] to connect a "prototype" object and "constructor" object.
The problem is that this API has a particularly costly implementation:
This wraps each JS objects appear in this code with Objective-C wrapper. And we convert a NSDictionary to JSObject, which
has "writable", "enumerable", "configurable", "value" fields, and call the "defineProperty" JS function through Objective-C wrapper.
This allocates many Objective-C wrappers and JS objects for descriptors. Since JSC has a direct C++ API "defineOwnProperty", we should
bypass these Objective-C APIs and call JSC's code directly.
This patch changes
putNonEnumerableimplementation, from calling [JSValue defineProperty:descriptor] to calling JSC C++ code directly.
We do not change [JSValue defineProperty:descriptor] implementation for now because of two reasons. (1) This is not used in our benchmarks
except for this (converting an Objective-C block to a JS object) one path. And (2) even if we were to re-write [JSValue defineProperty:descriptor]
to be more optimized, we would still want to call the JSC C++ version of defineProperty directly here to avoid NSDictionary allocation for a descriptor.
- API/APIUtils.h:
(setException):
- API/JSWrapperMap.mm:
(putNonEnumerable):
(copyMethodsToObject):
(-[JSObjCClassInfo allocateConstructorAndPrototypeInContext:]):
(-[JSObjCClassInfo wrapperForObject:inContext:]):
- 11:15 AM Changeset in webkit [241955] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix after r241954
https://bugs.webkit.org/show_bug.cgi?id=194939
Renaming setCanAccessHeap was incomplete.
- runtime/SmallStrings.cpp:
(JSC::SmallStrings::initializeCommonStrings):
- runtime/VM.cpp:
(JSC::VM::~VM):
- 11:04 AM Changeset in webkit [241954] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] SmallStringsStorage is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=194939
Reviewed by Mark Lam.
SmallStrings hold common small JSStrings. Their underlying StringImpl is also held by SmallStringsStorage.
But it is duplicate since we can get StringImpl from small JSStrings. This patch removes SmallStringsStorage,
and get StringImpls from JSStrings if necessary.
We also add m_canAccessHeap flag to SmallStrings. At the time of VM destruction, JSStrings are destroyed when
VM's Heap is finalized. We must not touch JSStrings before VM's heap (and JSStrings in SmallStrings) is initialized,
and after VM's Heap is destroyed. We add this m_canAccessHeap flag to allow users to get StringImpl during the
this sensitive period. If m_canAccessHeap is false, we get StringImpl from AtomicStringImpl::add.
- runtime/SmallStrings.cpp:
(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::singleCharacterStringRep):
(JSC::SmallStringsStorage::rep): Deleted.
(JSC::SmallStringsStorage::SmallStringsStorage): Deleted.
(JSC::SmallStrings::createSingleCharacterString): Deleted.
- runtime/SmallStrings.h:
(JSC::SmallStrings::setCanAccessHeap):
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
- 11:01 AM WebKitGTK/2.24.x edited by
- (diff)
- 10:46 AM Changeset in webkit [241953] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove unused Timeline record selection code path
https://bugs.webkit.org/show_bug.cgi?id=194931
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-02-22
Reviewed by Devin Rousso.
- UserInterface/Views/TimelineOverview.js:
(WI.TimelineOverview):
(WI.TimelineOverview.prototype.userSelectedRecord): Deleted.
- UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype.timelineOverviewUserSelectedRecord): Deleted.
- UserInterface/Views/TimelineView.js:
(WI.TimelineView.prototype.userSelectedRecordFromOverview): Deleted.
- 10:46 AM Changeset in webkit [241952] by
-
- 3 edits in trunk/Source/WebKit
[GTK] Navigation gesture improvements
https://bugs.webkit.org/show_bug.cgi?id=194943
Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-02-22
Reviewed by Michael Catanzaro.
Cancel the gesture if progress is less than 0.5 and velocity is not high enough.
Allow to continue the gesture during animation. Introduce finished state to be used
when showing snapshot after the animation ends.
Fix duration calculation, also slow it down so that the initial velocity matches
what it was during the gesture.
- UIProcess/ViewGestureController.h: Add shouldCancel() and State::Finishing to SwipeProgressTracker.
- UIProcess/gtk/ViewGestureControllerGtk.cpp:
(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):
Fix velocity calculation, allow scrolling during State::Animating.
(WebKit::ViewGestureController::SwipeProgressTracker::shouldCancel): Added.
(WebKit::ViewGestureController::SwipeProgressTracker::startAnimation): Use shouldCancel() and fix duration calculation.
(WebKit::ViewGestureController::SwipeProgressTracker::endAnimation): Set state to State::Finishing when the animation ends.
- 10:42 AM Changeset in webkit [241951] by
-
- 1 edit in branches/safari-607-branch/Source/WebCore/page/ios/EventHandlerIOS.mm
Unreviewed build fix. rdar://problem/47289624
- 10:24 AM Changeset in webkit [241950] by
-
- 6 edits in trunk
REGRESSION(PSON) Scroll position is sometimes not restored on history navigation
https://bugs.webkit.org/show_bug.cgi?id=194924
<rdar://problem/48216125>
Reviewed by Geoffrey Garen.
Source/WebKit:
When process-swapping, we would create a new WebPage in the new process, which would
call restoreSessionInternal() to restore the HistoryItems based on the UIProcess's
backforward list. The issue is that this session restoring would send HistoryItem
updates back to the UIProcess. Without PSON, this would be unnecessary but harmless.
With PSON though, this may end up overwriting values set by the previous process,
such as the scroll position.
Address the issue by temporarily disabling the HistoryItem update notifications to
the UIProcess while restoring a session.
- UIProcess/API/Cocoa/WKBackForwardListItem.mm:
(-[WKBackForwardListItem _scrollPosition]):
- UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::restoreSessionInternal):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 9:09 AM Changeset in webkit [241949] by
-
- 11 edits1 move3 adds1 delete in trunk
Input type "formatSetInlineTextDirection" is dispatched when changing paragraph-level text direction
https://bugs.webkit.org/show_bug.cgi?id=194703
<rdar://problem/48111775>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Currently, when changing text direction, WebKit always sends input events of type formatSetInlineTextDirection,
even when changing paragraph text direction. Instead, we should be emitting formatSetBlockTextDirection in this
scenario. This is problematic when using the context menus on macOS to change writing direction, since changing
"Selection Direction" is currently indistinguishable from changing "Paragraph Direction".
To fix this, we split EditAction::SetWritingDirection into EditAction::SetInlineWritingDirection and
EditAction::SetBlockWritingDirection, which emit inline and block text direction input events, respectively.
Tests: fast/events/before-input-events-prevent-block-text-direction.html
fast/events/before-input-events-prevent-inline-text-direction.html
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::apply):
- editing/EditAction.cpp:
(WebCore::undoRedoLabel):
- editing/EditAction.h:
- editing/EditCommand.cpp:
(WebCore::inputTypeNameForEditingAction):
- editing/Editor.cpp:
(WebCore::inputEventDataForEditingStyleAndAction):
(WebCore::Editor::setBaseWritingDirection):
- editing/EditorCommand.cpp:
(WebCore::executeMakeTextWritingDirectionLeftToRight):
(WebCore::executeMakeTextWritingDirectionNatural):
(WebCore::executeMakeTextWritingDirectionRightToLeft):
Source/WebKitLegacy/win:
- WebCoreSupport/WebEditorClient.cpp:
(undoNameForEditAction):
LayoutTests:
Rebaseline some existing tests to expect input events of type "formatSetBlockTextDirection" instead of
"formatSetInlineTextDirection" when changing paragraph text direction; additionally, add a new layout test that
changes the inline text direction in some Bidi text, and verify that "formatSetInlineTextDirection" is emitted
in this scenario, and that callingpreventDefault()in the beforeinput event handler causes no change to be
made.
- editing/input/ios/rtl-keyboard-input-on-focus-expected.txt:
- fast/events/before-input-events-prevent-block-text-direction-expected.txt: Added.
- fast/events/before-input-events-prevent-block-text-direction.html: Renamed from LayoutTests/fast/events/before-input-events-prevent-text-direction.html.
- fast/events/before-input-events-prevent-inline-text-direction-expected.txt: Added.
- fast/events/before-input-events-prevent-inline-text-direction.html: Added.
- fast/events/before-input-events-prevent-text-direction-expected.txt: Removed.
- 8:48 AM Changeset in webkit [241948] by
-
- 2 edits in trunk/Tools
Unreviewed, disable API test added in r241928 on iOS.
The cache is not enabled on devices with less than 3GB of RAM.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 8:31 AM Changeset in webkit [241947] by
-
- 5 edits in trunk/Source/WebCore
Remove stripLeadingAndTrailingWhitespace from MathMLElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=160172
Patch by Rob Buis <rbuis@igalia.com> on 2019-02-22
Reviewed by Frédéric Wang.
Remove stripLeadingAndTrailingWhitespace and use stripLeadingAndTrailingHTTPSpaces
from HTTPParsers instead.
No new tests, already covered by MathML tests.
- mathml/MathMLElement.cpp:
(WebCore::MathMLElement::stripLeadingAndTrailingWhitespace): Deleted.
- mathml/MathMLElement.h:
- mathml/MathMLPresentationElement.cpp:
(WebCore::MathMLPresentationElement::parseMathMLLength):
- mathml/MathMLTokenElement.cpp:
(WebCore::MathMLTokenElement::convertToSingleCodePoint):
- 6:28 AM WebKitGTK/2.22.x edited by
- (diff)
- 6:28 AM Changeset in webkit [241946] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merged r241402 - [FreeType] Unable to render some Hebrew characters
https://bugs.webkit.org/show_bug.cgi?id=194498
Reviewed by Michael Catanzaro.
We are failing to find a font for some of the combining character sequences because normalization is failing due
to overflow error. In case of overflow, normalize returns the required length for the normalized characters, so
we should handle that case to resize the output buffer and try again.
- platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const):
- 5:52 AM Changeset in webkit [241945] by
-
- 6 edits in trunk/Source/WebCore
Update some media logging
https://bugs.webkit.org/show_bug.cgi?id=194915
Reviewed by Jer Noble.
No new tests, no functional change.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::evictCodedFrames):
(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::trySignalAllSamplesInTrackEnqueued):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::checkPlaybackTargetCompatablity):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay const):
(WebCore::HTMLMediaElement::seekTask):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::setLoop):
(WebCore::HTMLMediaElement::setControls):
(WebCore::HTMLMediaElement::sourceWasRemoved):
- html/MediaElementSession.cpp:
(WebCore::convertEnumerationToString):
- html/MediaElementSession.h:
(WTF::LogArgument<WebCore::MediaPlaybackDenialReason>::toString):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
- 5:43 AM WebKitGTK/2.22.x edited by
- (diff)
- 5:43 AM Changeset in webkit [241944] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore
Merged r241753 - Fix DFG doesGC() for CompareEq/Less/LessEq/Greater/GreaterEq and CompareStrictEq nodes.
https://bugs.webkit.org/show_bug.cgi?id=194800
<rdar://problem/48183773>
Reviewed by Yusuke Suzuki.
Fix doesGC() for the following nodes:
CompareEq:
CompareLess:
CompareLessEq:
CompareGreater:
CompareGreaterEq:
CompareStrictEq:
Only return false (i.e. does not GC) for child node use kinds that have
been vetted to not do anything that can GC. For all other use kinds
(including StringUse and BigIntUse), we return true (i.e. does GC).
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- 5:42 AM WebKitGTK/2.22.x edited by
- (diff)
- 5:35 AM Changeset in webkit [241943] by
-
- 1 edit in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore/ChangeLog
Merged r241753 - Fix DFG doesGC() for CompareEq/Less/LessEq/Greater/GreaterEq and CompareStrictEq nodes.
https://bugs.webkit.org/show_bug.cgi?id=194800
<rdar://problem/48183773>
Reviewed by Yusuke Suzuki.
Fix doesGC() for the following nodes:
CompareEq:
CompareLess:
CompareLessEq:
CompareGreater:
CompareGreaterEq:
CompareStrictEq:
Only return false (i.e. does not GC) for child node use kinds that have
been vetted to not do anything that can GC. For all other use kinds
(including StringUse and BigIntUse), we return true (i.e. does GC).
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- 2:42 AM Changeset in webkit [241942] by
-
- 4 edits in trunk
Fix unitless usage of mathsize
https://bugs.webkit.org/show_bug.cgi?id=194940
Patch by Rob Buis <rbuis@igalia.com> on 2019-02-22
Reviewed by Frédéric Wang.
Source/WebCore:
Convert unitless lengths to percentage values to correct the computed
font size.
- mathml/MathMLElement.cpp:
(WebCore::convertToPercentageIfNeeded):
(WebCore::MathMLElement::collectStyleForPresentationAttribute):
LayoutTests:
Tests lengths-1.html and length-3.html now pass.
- 1:43 AM Changeset in webkit [241941] by
-
- 4 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit
Merged r241936 - [WPE][GTK] No API documentation generated for WebKitUserContentFilterStore
https://bugs.webkit.org/show_bug.cgi?id=194908
Reviewed by Carlos Garcia Campos.
- UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add entry for webkit_user_content_filter_store_get_type().
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add entry for WebKitUserContentFilterStore.
- UIProcess/API/wpe/docs/wpe-docs.sgml: Ditto.
- 1:43 AM Changeset in webkit [241940] by
-
- 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit
Merged r241935 - wpewebkit-2.23.90 Failing to build on Fedora
https://bugs.webkit.org/show_bug.cgi?id=194922
Unreviewed. Fix path to WebKitUserContentFilterStore.h in WPE_API_INSTALLED_HEADERS.
- PlatformWPE.cmake:
- 1:18 AM Changeset in webkit [241939] by
-
- 2 edits in trunk
Unreviewed. Bump version numbers
- Source/cmake/OptionsWPE.cmake:
- 1:08 AM Changeset in webkit [241938] by
-
- 5 edits in trunk/Source/JavaScriptCore
Cache CompactVariableMap::Handle instead of VariableEnvironment for UnlinkedFunctionExecutable
https://bugs.webkit.org/show_bug.cgi?id=194706
Reviewed by Saam Barati.
In https://bugs.webkit.org/show_bug.cgi?id=194583 we started using a
CompactVariableMap::Handle instead of VariableEnvironment for
UnlinkedFunctionExecutables, but we were creating the full environment
to encode the executable in the bytecode cache. This patch changes it so
that we cache the handle instead of the environment. This avoids duplicating
the VariableEnvironment whenever we have to cache two handles that point
to the environment.
- bytecode/UnlinkedFunctionExecutable.h:
- parser/VariableEnvironment.cpp:
(JSC::CompactVariableMap::get):
- parser/VariableEnvironment.h:
- runtime/CachedTypes.cpp:
(JSC::CachedCompactVariableEnvironment::encode):
(JSC::CachedCompactVariableEnvironment::decode const):
(JSC::CachedCompactVariableMapHandle::encode):
(JSC::CachedCompactVariableMapHandle::decode const):
(JSC::CachedFunctionExecutable::encode):
(JSC::CachedFunctionExecutable::decode const):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
Feb 21, 2019:
- 11:32 PM Changeset in webkit [241937] by
-
- 2 edits in trunk
Unreviewed. Bump version numbers
- Source/cmake/OptionsGTK.cmake:
- 11:19 PM Changeset in webkit [241936] by
-
- 4 edits in trunk/Source/WebKit
[WPE][GTK] No API documentation generated for WebKitUserContentFilterStore
https://bugs.webkit.org/show_bug.cgi?id=194908
Reviewed by Carlos Garcia Campos.
- UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add entry for webkit_user_content_filter_store_get_type().
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add entry for WebKitUserContentFilterStore.
- UIProcess/API/wpe/docs/wpe-docs.sgml: Ditto.
- 11:06 PM Changeset in webkit [241935] by
-
- 2 edits in trunk/Source/WebKit
wpewebkit-2.23.90 Failing to build on Fedora
https://bugs.webkit.org/show_bug.cgi?id=194922
Unreviewed. Fix path to WebKitUserContentFilterStore.h in WPE_API_INSTALLED_HEADERS.
- PlatformWPE.cmake:
- 11:04 PM Changeset in webkit [241934] by
-
- 120 edits in trunk
Hardcode Visual Viewports on everywhere except iOS WK1
https://bugs.webkit.org/show_bug.cgi?id=194928
Reviewed by Zalan Bujtas.
Source/WebCore:
Remove the WK1 and WK2 preferences and MiniBrowser menu item for "visual viewports",
change the default value of the Setting to 'true', and hardcode WebView on iOS to
set it to false. The setting has shipped for several years and there's no need to turn
it off now.
Similarly, disable the "Visual Viewport API" on iOS WK1, since it makes no sense if
Visual Viewports are not enabled.
Remove the "visualViewportEnabled" flag and unused code paths from scrolling tree code
that only runs in WK2
- page/Settings.yaml:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::visualViewportEnabled const): Deleted.
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setVisualViewportEnabled): Deleted.
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::visualViewportEnabled const): Deleted.
(WebCore::ScrollingTree::setVisualViewportEnabled): Deleted.
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
Source/WebKit:
Remove the WK1 and WK2 preferences and MiniBrowser menu item for "visual viewports",
change the default value of the Setting to 'true', and hardcode WebView on iOS to
set it to false. The setting has shipped for several years and there's no need to turn
it off now.
Similarly, disable the "Visual Viewport API" on iOS WK1, since it makes no sense if
Visual Viewports are not enabled.
Remove the "visualViewportEnabled" flag and unused code paths from scrolling tree code
that only runs in WK2
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _visualViewportEnabled]): Deleted.
(-[WKPreferences _setVisualViewportEnabled:]): Deleted.
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
(WebKit::RemoteScrollingCoordinatorProxy::visualViewportEnabled const): Deleted.
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect const):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computeCustomFixedPositionRect const):
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::computeElementLayout):
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getFocusedElementInformation):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::updateVisibleContentRects):
Source/WebKitLegacy/mac:
Remove the WK1 and WK2 preferences and MiniBrowser menu item for "visual viewports",
change the default value of the Setting to 'true', and hardcode WebView on iOS to
set it to false. The setting has shipped for several years and there's no need to turn
it off now.
Similarly, disable the "Visual Viewport API" on iOS WK1, since it makes no sense if
Visual Viewports are not enabled.
Remove the "visualViewportEnabled" flag and unused code paths from scrolling tree code
that only runs in WK2
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences visualViewportEnabled]): Deleted.
(-[WebPreferences setVisualViewportEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Tools:
Remove the WK1 and WK2 preferences and MiniBrowser menu item for "visual viewports",
change the default value of the Setting to 'true', and hardcode WebView on iOS to
set it to false. The setting has shipped for several years and there's no need to turn
it off now.
Similarly, disable the "Visual Viewport API" on iOS WK1, since it makes no sense if
Visual Viewports are not enabled.
Remove the "visualViewportEnabled" flag and unused code paths from scrolling tree code
that only runs in WK2
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController init]):
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController visualViewportEnabled]): Deleted.
(-[SettingsController toggleVisualViewportEnabled:]): Deleted.
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController didChangeSettings]):
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
LayoutTests:
Remove "(visual viewport enabled 1)" from scrolling tree dumps. Remove calls
to "internals.settings.setVisualViewportEnabled(true)"
- fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html:
- fast/events/ios/rotation/resources/rotation-utils.js:
- fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html:
- fast/visual-viewport/client-rects-relative-to-layout-viewport-zoomed.html:
- fast/visual-viewport/client-rects-relative-to-layout-viewport.html:
- fast/visual-viewport/nonzoomed-rects.html:
- fast/visual-viewport/resize-event-fired-window-resized.html:
- fast/visual-viewport/resize-event-fired.html:
- fast/visual-viewport/rtl-nonzoomed-rects.html:
- fast/visual-viewport/rtl-zoomed-rects.html:
- fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html:
- fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html:
- fast/visual-viewport/rubberbanding-viewport-rects.html:
- fast/visual-viewport/scroll-event-fired.html:
- fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
- fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
- fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up.html:
- fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down.html:
- fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
- fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html:
- fast/visual-viewport/viewport-dimensions-exclude-custom-scrollbars.html:
- fast/visual-viewport/viewport-dimensions-exclude-scrollbars.html:
- fast/visual-viewport/viewport-dimensions-iframe.html:
- fast/visual-viewport/viewport-dimensions-under-page-zoom.html:
- fast/visual-viewport/viewport-dimensions.html:
- fast/visual-viewport/visual-viewport-same-object.html:
- fast/visual-viewport/zoomed-fixed-header-and-footer.html:
- fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html:
- fast/visual-viewport/zoomed-fixed.html:
- fast/visual-viewport/zoomed-rects.html:
- fast/visual-viewport/zoomed-scroll-into-view-fixed.html:
- fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
- scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
- scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
- scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
- scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
- scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
- scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
- scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
- scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
- scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
- scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
- scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
- scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
- scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
- scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
- scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
- scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling.html: Don't insert the first scrolling tree
dump until the end, to avoid it affecting main frame height before we get the second layer tree.
- tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
- tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
- tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
- tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
- tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
- tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
- tiled-drawing/scrolling/fixed/four-bars-expected.txt:
- tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
- tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
- tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
- tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
- tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
- tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
- tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
- tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
- tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
- tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
- tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
- tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
- 11:02 PM Changeset in webkit [241933] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Epiphany searching for plugins even if plugins are disabled
https://bugs.webkit.org/show_bug.cgi?id=194352
Reviewed by Michael Catanzaro.
Check pluginsEnabled setting before trying to get plugins from UI process.
- WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::populatePluginCache):
- 10:46 PM Changeset in webkit [241932] by
-
- 33 edits2 adds in trunk
Some refinements for Node and Document
https://bugs.webkit.org/show_bug.cgi?id=194764
Reviewed by Ryosuke Niwa.
Source/WebCore:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::press): Use shadowHost instead of
deprecatedShadowAncestorNode.
(WebCore::AccessibilityObject::axObjectCache const): Tweak coding style.
(WebCore::AccessibilityObject::focusedUIElement const): Use existing page
function to streamline.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessKey const): Use
attributeWithoutSynchronization for efficiency and consistency with other
code working with the accesskey attribute.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::childrenChanged): Added call to
invalidateAccessKeyCache, replacing old scheme tied to style recalculation.
- dom/DecodedDataDocumentParser.cpp:
(WebCore::DecodedDataDocumentParser::appendBytes): Update for name and return
type change of createDecoderIfNeeded to decoder.
(WebCore::DecodedDataDocumentParser::flush): Ditto.
- dom/Document.cpp:
(WebCore::Document::elementForAccessKey): Renamed from getElementForAccessKey
to match WebKit coding style. Changed to use unique_ptr instead of separate
boolean to keep track of map validity status.
(WebCore::Document::buildAccessKeyCache): Renamed from buildAccessKeyMap to
clarify that this is a cache. Changed to use composedTreeDescendants rather
than explicit calls to shadowRoot. Use add instead of set so that first element
in document order wins, instead of last element in document order. Updated
to make a new map in a new unique_ptr instead of populating a map.
(WebCore::Document::invalidateAccessKeyCacheSlowCase): Renamed from
invalidateAccessKeyMap, and left an inline part in the header so the fast case
of quickly checking for a null pointer can be inlined.
(WebCore::Document::doctype const): Use downcast instead of static_cast.
(WebCore::Document::scheduleStyleRecalc): Moved call to invalidateAccessKeyMap
from here to childrenChanged and accesskey attribute change handling.
(WebCore::Document::processFormatDetection): Set m_isTelephoneNumberParsingAllowed
directly since this is the only place that does it and we don't need to factor
that one line of code into a function.
(WebCore::Document::getOverrideStyle): Moved to header since it's just a stub
that always returns nullptr and can be inlined.
(WebCore::Document::setIsTelephoneNumberParsingAllowed): Deleted.
(WebCore::Document::ensureTemplateDocument): Removed nullptr frame argument to
the create function, since Document::create now always involves no frame.
(WebCore::Document::didAssociateFormControl): Changed argument type to a reference
and simplified the logic with a local variable.
(WebCore::Document::didAssociateFormControlsTimerFired): Simplified the null
checks and rearranged things so that m_associatedFormControls will always
get cleared even if the document is no longer associated with a page.
- dom/Document.h: Removed unnnecessary explicit values for enumerations (first
value is always zero, etc.) and formatted simple enumerations in a single line
for easier reading. Moved Document::create fucntion bodies out of line, removed
the frame argument from the simple "create with URL" overload and made the frame
argument for createNonRenderedPlaceholder be a reference rather than a pointer.
Renamed getElementByAccessKey to elementForAccessKey, invalidateAccessKeyMap to
invalidateAccessKeyCache, buildAccessKeyMap to buildAccessKeCache,
m_elementsByAccessKey to m_accessKeyCache and changed its type.
Removed bogus "DOM methods" comment, unused setParserFeature friend declaration,
setIsTelephoneNumberParsingAllowed function, and m_accessKeyMapValid flag.
- dom/Document.idl: Added comment highlighting that getOverrideStyle is just a
placeholder returning null.
- dom/Element.cpp:
(WebCore::Element::attributeChanged): Call invalidateAccessKeyCache when the
value of the accesskey attribute is changed. Also moved the class attribute code
so the attributes here are in alphabetical order (only class and id were out of
alphabetical order).
- dom/Node.cpp:
(WebCore::Node::isDescendantOrShadowDescendantOf const): Rewrote to no longer
use deprecatedShadowAncestorNode and used boolean operators to make it a
single line and easier to understand. Also added a FIXME since the
containsIncludingShadowDOM function is so similar, yet differently written.
(WebCore::Node::contains const): Rewrote as a single line to make this easier
to read and to *slightly* improve the speed in the "this == node" case.
(WebCore::Node::containsIncludingHostElements const): Use downcast.
(WebCore::Node::deprecatedShadowAncestorNode const): Deleted.
- dom/Node.h: Deleted now-unused deprecatedShadowAncestorNode.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment): Rewrote to use shadowHost
instead of deprecatedShadowAncestorNode.
- html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::resetFormOwner): Pass reference to
didAssociateFormControl.
(WebCore::FormAssociatedElement::formAttributeChanged): Ditto.
- html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::parseAttribute): Removed special case for accesskey
attribute, because we want to call the base class parseAttribute in that case.
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::insertedIntoAncestor): Pass reference to
didAssociateFormControl.
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute): Removed special case for accesskey
attribute with mysterious FIXME, because we want to call the base class
parseAttribute in that case. The old code had no effect before; the access key
logic would still find the attribute; if the goal is to ignore the attribute
for these elements we will need a different solution.
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseAttribute): Ditto.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader): Removed code that was always passing
nullptr as the frame for the newly created DocumentWriter. It used m_frame, but
m_frame was always null.
(WebCore::DocumentLoader::attachToFrame): Pass reference to DocumentWriter::setFrame.
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::DocumentWriter): Deleted. The old version set m_frame to
the passed in frame, which was always nullptr, and initialized some booleans and an
enumeration, which are now initialized in the class definition.
(WebCore::DocumentWriter::createDocument): Pass a reference for the frame.
(WebCore::DocumentWriter::begin): Updated now that State is an enum class.
(WebCore::DocumentWriter::decoder): Renamed from createDecoderIfNeeded and changed
to return a reference.
(WebCore::DocumentWriter::addData): Use RELEASE_ASSERT instead of if/CRASH and
updated now that State is an enum class.
(WebCore::DocumentWriter::insertDataSynchronously): Updated now that State is an
enum class.
(WebCore::DocumentWriter::end): Ditto.
- loader/DocumentWriter.h: Removed unneeded include and forward declaration.
Removed the frame pointer argument to the constructor, caller was always passing a
nullptr. Changed argument to setFrame to be a reference. Renamed createDecoderIfNeeded
to decoder and changed it to return a reference. Initialized m_frame,
m_hasReceivedSomeData, m_encodingWasChosenByUser, and m_state here so we don't need
to initialize them in a constructor. Renamed the enum from WriterState to State since
it's a member of DocumentWriter already, and made it an enum class rather than ending
each enumeration value with WritingState.
- page/DragController.cpp:
(WebCore::isEnabledColorInput): Removed boolean argument setToShadowAncestor. The
one caller that formerly passed true now calls the new hasEnabledColorInputAsShadowHost
function instead.
(WebCore::hasEnabledColorInputAsShadowHost): Added.
(WebCore::elementUnderMouse): Use shadowHost instead of deprecatedShadowAncestorNode.
Also added FIXME since it seems this should instead be using parentElementInComposedTree.
(WebCore::DragController::concludeEditDrag): Removed "false" argument to isEnabledColorInput.
(WebCore::DragController::canProcessDrag): Removed "true" argument to isEnabledColorInput
and added call to hasEnabledColorInputAsShadowHost. Also put the value of the node to drag
into a local variable to simplify code.
(WebCore::DragController::draggableElement const): Removed "false" argument to isEnabledColorInput.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleAccessKey): Update name of elementForAccessKey.
- page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded): Use shadowHost instead of deprecatedShadowAncestorNode.
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::createPageForServiceWorker): Pass reference instead of pointer for frame to
Document::createNonRenderedPlaceholder.
Source/WebInspectorUI:
- UserInterface/Models/NativeFunctionParameters.js: Removed getOverrideStyle
because this deprecated non-working function is no longer something web authors
should be thinking about or typing.
Source/WebKit:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:
(webkit_dom_document_get_override_style): Changed to return nullptr directly instead of
calling a bunch of WebCore code first. No real value in checking arguments or doing any work.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::shouldAlwaysUsePluginDocument const): Deleted.
No need to override the function inherited from the base class, nor to keep track of the
unnecessary task of implementing this some day.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h: Updated for the above.
Source/WebKitLegacy/mac:
- DOM/DOMDocument.mm:
(-[DOMDocument getOverrideStyle:pseudoElement:]): Return nil without calling
through to WebCore or even looking at the arguments.
(-[DOMDocument getOverrideStyle::]): Ditto.
LayoutTests:
fast/forms/access-key-shadow-and-ordering-expected.txt: Added.
fast/forms/access-key-shadow-and-ordering.html: Added.
- 10:46 PM Changeset in webkit [241931] by
-
- 3 edits in trunk/LayoutTests
Fix the test failure following r241918
(https://bugs.webkit.org/show_bug.cgi?id=194906)
For some reason strict cookies are sent via HTTP in WK1 and not in WK2. Will investigate in <https://bugs.webkit.org/show_bug.cgi?id=194933>.
This sub-test failure occurs with and without the patch. As the primary purpose of this test
was to ensure correctness for Same Site lax cookies, I've amended the test and test result
for now.
- http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt:
- http/tests/cookies/same-site/user-load-cross-site-redirect.php:
- 8:29 PM Changeset in webkit [241930] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
Removed a duplicate ChangeLog entry.
- 8:21 PM Changeset in webkit [241929] by
-
- 16 edits2 copies in trunk/Source/JavaScriptCore
Update JSScript SPI based on feedback
https://bugs.webkit.org/show_bug.cgi?id=194517
Reviewed by Keith Miller.
This patch updates the JSScript SPI in the following ways:
- JSScript can now represent both modules and programs. This is a property
of the script determined during creation.
- JSScript now takes a sourceURL during construction. For modules, this acts
as the module identifier.
- JSScript now has SPI for writing the cache out to disk. We don't do this
automatically.
- JSScript will load the bytecode cache on creation if it exists.
- We retrofit these new requirements on the prior JSScript SPI that
we're going to remove as soon as we can: https://bugs.webkit.org/show_bug.cgi?id=194909.
Previous SPI assumes all JSScripts are modules. Previous SPI also assigns
a sourceURL to the JSScript based on what the module loader decided the
identifier should be. We'll remove this once we remove the old SPI.
This patch also adds SPI to JSContext to evaluate a JSScript. For modules,
this is like returning the result of doing dynamic import. For programs,
this does normal program evaluation.
This patch also fixes a bug in generateBytecode/generateModuleBytecode where
we would try to cache the bytecode even if recursivelyGenerateUnlinkedCodeBlock
returned null. E.g, if the script had a syntax error.
When writing tests, I also discovered that someone previously broke
testapi. This patch also fixes those failures. They were broken when
we switched to using a testapiScripts directory to hold our test .js
scripts.
- API/JSAPIGlobalObject.h:
- API/JSAPIGlobalObject.mm:
(JSC::JSAPIGlobalObject::moduleLoaderResolve):
(JSC::JSAPIGlobalObject::moduleLoaderFetch):
(JSC::JSAPIGlobalObject::loadAndEvaluateJSScriptModule):
- API/JSBase.cpp:
(JSEvaluateScriptInternal):
(JSEvaluateScript):
- API/JSBaseInternal.h: Added.
- API/JSContext.mm:
(-[JSContext evaluateScript:withSourceURL:]):
(-[JSContext evaluateJSScript:]):
- API/JSContextPrivate.h:
- API/JSScript.h:
- API/JSScript.mm:
(+[JSScript scriptWithSource:inVirtualMachine:]):
(+[JSScript scriptFromASCIIFile:inVirtualMachine:withCodeSigning:andBytecodeCache:]):
(createError):
(+[JSScript scriptOfType:inVirtualMachine:withSourceURL:andSource:andBytecodeCache:error:]):
(+[JSScript scriptOfType:inVirtualMachine:memoryMappedFromASCIIFile:withSourceURL:andBytecodeCache:error:]):
(-[JSScript cacheBytecodeWithError:]):
(-[JSScript sourceURL]):
(-[JSScript type]):
(-[JSScript jsSourceCode]):
(-[JSScript writeCache:]):
(-[JSScript setSourceURL:]):
(-[JSScript forceRecreateJSSourceCode]):
(-[JSScript writeCache]): Deleted.
(-[JSScript jsSourceCode:]): Deleted.
- API/JSScriptInternal.h:
- API/tests/FunctionOverridesTest.cpp:
(testFunctionOverrides):
- API/tests/testapi.c:
(main):
- API/tests/testapi.mm:
(tempFile):
(testModuleBytecodeCache):
(testProgramBytecodeCache):
(testBytecodeCacheWithSyntaxError):
(testProgramJSScriptException):
(testLoadBasicFileLegacySPI):
(+[JSContextMemoryMappedLoaderDelegate newContext]):
(-[JSContextMemoryMappedLoaderDelegate context:fetchModuleForIdentifier:withResolveHandler:andRejectHandler:]):
(testLoadBasicFile):
(+[JSContextAugmentedLoaderDelegate newContext]):
(-[JSContextAugmentedLoaderDelegate context:fetchModuleForIdentifier:withResolveHandler:andRejectHandler:]):
(testJSScriptURL):
(testObjectiveCAPI):
(testBytecodeCache): Deleted.
- API/tests/testapiScripts/foo.js: Added.
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/Completion.cpp:
(JSC::generateBytecode):
(JSC::generateModuleBytecode):
- 6:58 PM Changeset in webkit [241928] by
-
- 10 edits in trunk
Discard cached processes when clearing website data store
https://bugs.webkit.org/show_bug.cgi?id=194894
Reviewed by Chris Dumez.
Source/WebKit:
Clear the process cache when clearing the website data store so that there is no way to infer
which site the user had visited by observing for which sites WebContent processes had been cached.
There is one sublty in WebsiteDataStore::removeData that we have to delay the clearing of
the web process cache until the next run loop because SuspendedPageProxy::~SuspendedPageProxy
invokes WebProcessProxy::maybeShutDown in the next run loop. We also have to disable the process
cache during this time as it would otherwise trigger the responsiveness check of WebContent process
can take arbitrarily long time.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _processCacheCapacity]): Added for testing.
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::addProcess): Avoid adding web processes to the cache while the suspended
pages are being cleared.
- UIProcess/WebProcessCache.h:
(WebKit::WebProcessCache::disabled const): Added.
(WebKit::WebProcessCache::setDisabled): Added.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::handleMemoryPressureWarning):
(WebKit::WebProcessPool::clearSuspendedPages): Added.
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
Tools:
Added a test case.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(TestWebKitAPI.ProcessSwap.NumberOfCachedProcesses): Added.
- 6:02 PM Changeset in webkit [241927] by
-
- 15 edits in trunk/Source/JavaScriptCore
Add more doesGC() assertions.
https://bugs.webkit.org/show_bug.cgi?id=194911
<rdar://problem/48285723>
Reviewed by Saam Barati and Yusuke Suzuki.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileOSRExit):
- Set expectDoesGC here because we no longer have to worry about missing store barriers in optimized code after this point. This will prevent false positive assertion failures arising from functions called beneath compileOSRExit().
(JSC::DFG::OSRExit::compileExit):
- Add a comment to explain why the generated ramp needs to set expectDoesGC even though compileOSRExit() also sets it. Reason: compileOSRExit() is only called for the first OSR from this code origin, the generated ramp is called for many subsequents OSR exits from this code origin.
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- Added a comment for the equivalent reason to the one above.
(JSC::FTL::compileFTLOSRExit):
- Set expectDoesGC here because we no longer have to worry about missing store barriers in optimized code after this point. This will prevent false positive assertion failures arising from functions called beneath compileFTLOSRExit().
- heap/CompleteSubspace.cpp:
(JSC::CompleteSubspace::tryAllocateSlow):
- heap/CompleteSubspaceInlines.h:
(JSC::CompleteSubspace::allocateNonVirtual):
- assert expectDoesGC.
- heap/DeferGC.h:
(JSC::DeferGC::~DeferGC):
- assert expectDoesGC.
- Also added WTF_FORBID_HEAP_ALLOCATION to DeferGC, DeferGCForAWhile, and DisallowGC because all 3 should be stack allocated RAII objects.
- heap/GCDeferralContext.h:
- heap/GCDeferralContextInlines.h:
(JSC::GCDeferralContext::~GCDeferralContext):
- Added WTF_FORBID_HEAP_ALLOCATION.
- assert expectDoesGC.
- heap/Heap.cpp:
(JSC::Heap::collectNow):
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::stopIfNecessarySlow):
(JSC::Heap::collectIfNecessaryOrDefer):
- heap/HeapInlines.h:
(JSC::Heap::acquireAccess):
(JSC::Heap::stopIfNecessary):
- heap/LargeAllocation.cpp:
(JSC::LargeAllocation::tryCreate):
- heap/LocalAllocatorInlines.h:
(JSC::LocalAllocator::allocate):
- conservatively assert expectDoesGC on these functions that may trigger a GC though they don't always do.
- runtime/DisallowScope.h:
- DisallowScope should be stack allocated because it's an RAII object.
- runtime/JSCellInlines.h:
(JSC::tryAllocateCellHelper):
- Remove the expectDoesGC assertion because it is now covered by assertions in CompleteSubspace, LargeAllocation, and LocalAllocator.
- runtime/RegExpMatchesArray.h:
(JSC::createRegExpMatchesArray):
- assert expectDoesGC.
- 5:58 PM Changeset in webkit [241926] by
-
- 8 edits in trunk
Clicking "Go Back" on a safe browsing warning before a WKWebView has loaded any page should request to close the WKWebView
https://bugs.webkit.org/show_bug.cgi?id=194914
<rdar://problem/47586889>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-02-21
Reviewed by Geoffrey Garen.
Source/WebKit:
- UIProcess/API/APIUIClient.h:
(API::UIClient::didShowSafeBrowsingWarning):
(API::UIClient::didClickGoBackFromSafeBrowsingWarning): Deleted.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didClickGoBackFromSafeBrowsingWarning): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(-[SafeBrowsingNavigationDelegate webViewDidClose:]):
(TEST):
(-[SafeBrowsingNavigationDelegate _webViewDidClickGoBackFromSafeBrowsingWarning:]): Deleted.
- 5:51 PM Changeset in webkit [241925] by
-
- 2 edits in trunk/Source/WebKit
Turn a high-value UI-side-compositing assertion into a release assert
https://bugs.webkit.org/show_bug.cgi?id=194887
Reviewed by Simon Fraser.
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
There is absolutely no situation in which this assert should fire
if WebKit is behaving correctly, and it will basically always result
in a UI process crash (or at least confusion), so make it a release assert.
This would have saved us a lot of stress in bug 194845.
- 5:05 PM Changeset in webkit [241924] by
-
- 3 edits in trunk/Source/WebKit
[MSVC] Fix compilation errors with lambdas in ResourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=194913
Reviewed by Brent Fulgham.
MSVC has problems with the scoping of
thiswithin a nested lambda. To work around the
behavior the enclosing lambda's wrapping ofthisis used within the nested lambda.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessGranted):
- 5:04 PM Changeset in webkit [241923] by
-
- 12 edits in trunk/Source/JavaScriptCore
[JSC] Use Fast Malloc as much as possible
https://bugs.webkit.org/show_bug.cgi?id=194316
Reviewed by Mark Lam.
We should use Fast Malloc as much as possible to offer the whole memory view to bmalloc.
- inspector/scripts/codegen/cpp_generator_templates.py:
- inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
- inspector/scripts/tests/generic/expected/enum-values.json-result:
- inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
- inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
- inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
- jit/ExecutableAllocator.h:
- jsc.cpp:
- runtime/JSRunLoopTimer.h:
- tools/VMInspector.h:
- wasm/WasmThunks.h:
- 4:14 PM Changeset in webkit [241922] by
-
- 2 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241919. rdar://problem/48267027
Fix API test crashes after r241855.
Reviewed by Ryosuke Niwa.
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::addProcessIfPossible):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:14 PM Changeset in webkit [241921] by
-
- 2 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241868. rdar://problem/48267027
Unreviewed API test fix after r241855.
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::~WebProcessProxy):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241868 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:03 PM Changeset in webkit [241920] by
-
- 2 edits in trunk/Tools
Leak of CFErrorRef objects (1.92 Kbytes) in com.apple.WebKit.WebContent.Development running WebKit layout tests on iOS Simulator
<https://webkit.org/b/194761>
Reviewed by Myles Maxfield.
- WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:
(WTR::activateSystemCoreWebFonts): Log
errorto console if
CTFontManagerRegisterFontsForURL() fails (macOS only). Update
to use ARC-compliant cast.
(WTR::activateFonts): Change0tonullptr. Update to use
ARC-compliant cast.
(WTR::installFakeHelvetica): Logerrorto console if
CTFontManagerRegisterFontsForURL() fails, but only on supported
platforms (macOS Mojave/iOS 12 and newer, not iOS Simulator).
Call CFRelease() onerrorto fix the leak. Update to use
ARC-compliant cast.
(WTR::uninstallFakeHelvetica): Update to use ARC-compliant
cast.
- 3:59 PM Changeset in webkit [241919] by
-
- 2 edits in trunk/Source/WebKit
Fix API test crashes after r241855.
Reviewed by Ryosuke Niwa.
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::addProcessIfPossible):
- 3:54 PM Changeset in webkit [241918] by
-
- 4 edits2 adds in trunk
Same Site Lax cookies are not sent with cross-site redirect from client-initiated load
https://bugs.webkit.org/show_bug.cgi?id=194906
<rdar://problem/44305947>
Reviewed by Brent Fulgham.
Source/WebCore:
Ensure that a request for a top-level navigation is annotated as such regardless of whether
the request has a computed Same Site policy.
"New loads" initiated by a the client (Safari) either by API or a human either explicitly
typing a URL in the address bar or Command + clicking a hyperlink to open it in a new window/tab
are always considered Same Site. This is by definition from the spec. [1] as we aren't navigating
from an existing page. (Command + click should be thought of as a convenience to the user from
having to copy the hyperlink's URL, create a new window, and paste the URL into the address bar).
Currently the frame loader marks a request as a top-level navigation if and only if the request
does not have a pre-computed Same Site policy. However, "New loads" have a pre-computed Same Site
policy. So, these loads would never be marked as a top-level navigation by the frame loading code.
Therefore, if the "new load" turned out to be a cross-site redirect then WebKit would incorrectly
tell the networking stack that the load was a cross-site, non-top-level navigation, and per the
Same Site spec [2], the networking stack would not send Same Site Lax cookies. Instead,
WebKit should unconditionally ensure that requests are marked as a top-level navigation, if applicable.
[1] See Note for (1) in <https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-02#section-5.2>
[2] <https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-02#section-5.3.7.1>
Test: http/tests/cookies/same-site/user-load-cross-site-redirect.php
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToRequest): Unconditionally update the request's top-
level navigation bit.
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setAsIsolatedCopy): Unconditionally copy a request's top-
level navigation bit.
LayoutTests:
Add a test that is representative of a user loading a cross-site page that redirects
to a page that expects Same Site Lax cookies.
- http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt: Added.
- http/tests/cookies/same-site/user-load-cross-site-redirect.php: Added.
- 3:53 PM Changeset in webkit [241917] by
-
- 2 edits in trunk/Tools
Flaky API Test: TestWebKitAPI.ProcessSwap.SuspendedPageLimit
https://bugs.webkit.org/show_bug.cgi?id=194481
Reviewed by Alex Christensen.
Give the processes a chance to shutdown and wait until we reached the expected number
of processes.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 3:16 PM Changeset in webkit [241916] by
-
- 2 edits in trunk/Tools
Fix the macOS build
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 3:12 PM Changeset in webkit [241915] by
-
- 7 edits in trunk
Layout Test fast/text/international/khmer-selection.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=191368
Reviewed by Brent Fulgham.
Source/WebCore:
GlyphBuffer's offset array wasn't getting filled by UniscribeController.
Our underlining code requires this array.
Uniscribe gives us a character -> glyph mapping, so we just have to compute
the inverse and give it to the GlyphBuffer.
This patch is written by Myles C. Maxfield.
Test: fast/text/international/khmer-selection.html.
- platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::add):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const):
- platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::advance):
(WebCore::UniscribeController::itemizeShapeAndPlace):
(WebCore::UniscribeController::shapeAndPlaceItem):
- platform/graphics/win/UniscribeController.h:
LayoutTests:
- platform/win/TestExpectations:
- 3:11 PM Changeset in webkit [241914] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
contentfiltering tests leak documents
https://bugs.webkit.org/show_bug.cgi?id=189434
<rdar://44239943>
Reviewed by Simon Fraser.
Changed ContentFilter to capture the blocked Frame as a WeakPtr to break a reference cycle.
This fixes world leaks in several tests in LayoutTests/contentfiltering/.
- bindings/js/ScriptController.h:
- loader/ContentFilter.cpp:
(WebCore::ContentFilter::didDecide):
- 3:06 PM Changeset in webkit [241913] by
-
- 2 edits in trunk/Source/WebCore
IndexedDB: leak UniqueIDBDatabase in layout tests
https://bugs.webkit.org/show_bug.cgi?id=194870
<rdar://problem/48163812>
Reviewed by Geoffrey Garen.
UniqueIDBDatabase owns a pointer to itself after it is hard closed. It should release the pointer when it
receives confirmation from clients and all pending tasks are done. UniqueIDBDatabase already checks whether the
pointer should be released when a database task finishes, but it didn't perform a check when a confirm message
is received.
No new test as the order of task completion and confirmation arrival is uncertain.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::confirmDidCloseFromServer):
- 2:55 PM Changeset in webkit [241912] by
-
- 2 edits in branches/safari-607-branch/Tools
Cherry-pick r241736. rdar://problem/48243264
Fix API test after r241728
- TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm: (TEST): The test should check the default preference value, not make sure the preference is NO after setting it to YES :/
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:55 PM Changeset in webkit [241911] by
-
- 10 edits in branches/safari-607-branch
Cherry-pick r241728. rdar://problem/48243264
Disable safe browsing in WKWebView and remove its WKPreferences API
https://bugs.webkit.org/show_bug.cgi?id=194723
<rdar://problem/48122993>
Reviewed by Geoffrey Garen.
Source/WebKit:
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKPreferences.h:
- UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences setSafeBrowsingEnabled:]): Deleted. (-[WKPreferences isSafeBrowsingEnabled]): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm: (TEST): (safeBrowsingView): Make tests use SPI instead of API.
LayoutTests:
- platform/mac-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: This test has results that depend on timing, and I need to update its results when I disable safe browsing. I've done this several times before. See r237876 for an example.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:55 PM Changeset in webkit [241910] by
-
- 3 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241618. rdar://problem/48243264
Add SPI version of WKPreferences.safeBrowsingEnabled
https://bugs.webkit.org/show_bug.cgi?id=194718
<rdar://problem/48122993>
Rubber-stamped by Brady Eidson.
- UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _isSafeBrowsingEnabled]): (-[WKPreferences _setSafeBrowsingEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241618 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:55 PM Changeset in webkit [241909] by
-
- 5 edits2 adds in branches/safari-607-branch
Apply patch. rdar://problem/48229545
- 2:55 PM Changeset in webkit [241908] by
-
- 2 edits in trunk/Tools
Fix ProcessSwap.PageOverlayLayerPersistence on macOS
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
I am a backwards.
- 2:55 PM Changeset in webkit [241907] by
-
- 7 edits in branches/safari-607-branch/Source
Apply patch. rdar://problem/47289624
- 2:51 PM Changeset in webkit [241906] by
-
- 3 edits in trunk/Source/WebCore
contentfiltering tests leak documents
https://bugs.webkit.org/show_bug.cgi?id=189434
<rdar://44239943>
Reviewed by Simon Fraser.
Changed ContentFilter to capture the blocked Frame as a WeakPtr to break a reference cycle.
This fixes world leaks in several tests in LayoutTests/contentfiltering/.
- bindings/js/ScriptController.h:
- loader/ContentFilter.cpp:
(WebCore::ContentFilter::didDecide):
- 2:50 PM Changeset in webkit [241905] by
-
- 2 edits in trunk/Tools
Fix ProcessSwap.PageOverlayLayerPersistence on macOS
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
We can't find the UI-side layer on macOS because we don't use UI-side compositing.
We could force on UI-side compositing, but I feel like the test might be more
valuable exercising the normal path on each platform (though the original
bug was also UI-side specific). Though we can't validate that the overlay
layer was installed successfully, there are layout tests that do that.
- 2:36 PM Changeset in webkit [241904] by
-
- 1 edit1 add in trunk/LayoutTests
Rotation animations sometimes use the wrong origin (affects apple.com)
https://bugs.webkit.org/show_bug.cgi?id=194878
<rdar://problem/43908047>
Reviewed by Simon Fraser.
Forgot the expected results file.
- animations/additive-transform-animations-expected.html: Added.
- 2:34 PM Changeset in webkit [241903] by
-
- 10 edits in trunk/Source/WebKit
API::HTTPCookieStore should expose setCookies()
https://bugs.webkit.org/show_bug.cgi?id=194861
Reviewed by Brent Fulgham.
Pass a Vector<Cookie> instead of just one cookie at a time.
This will add the ability to set multiple cookies without an IPC roundtrip per cookie.
- NetworkProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::setCookie):
- NetworkProcess/Cookies/WebCookieManager.h:
- NetworkProcess/Cookies/WebCookieManager.messages.in:
- UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::setCookies):
(API::HTTPCookieStore::setCookie): Deleted.
- UIProcess/API/APIHTTPCookieStore.h:
- UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
(-[WKHTTPCookieStore setCookie:completionHandler:]):
- UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::setCookies):
(WebKit::WebCookieManagerProxy::setCookie): Deleted.
- UIProcess/WebCookieManagerProxy.h:
- 2:02 PM Changeset in webkit [241902] by
-
- 7 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241855. rdar://problem/48267027
[PSON] Make sure hung processes are not kept alive by suspended pages or process caching
https://bugs.webkit.org/show_bug.cgi?id=194881
<rdar://problem/48249014>
Reviewed by Geoffrey Garen.
After we construct a SuspendedPageProxy and before we send the IPC to the WebProcess to
ask it to suspend, start a 10 seconds timer. If the process does not answer the request
to suspend before the timer fires, we destroy the SuspendedPageProxy so that we do not
keep a hung process around.
For the WebProcessCache, we now call WebProcessProxy::isResponsive() on the process
before adding it to the cache. Internally, this relies on an IPC handshake with the
WebProcess. If the process is not responsive, we do not add it to the cache and we
shut it down. If it is responsive then we proceed normally with adding it to the
cache.
- UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): (WebKit::SuspendedPageProxy::suspensionTimedOut):
- UIProcess/SuspendedPageProxy.h:
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::addProcessIfPossible): (WebKit::WebProcessCache::addProcess):
- UIProcess/WebProcessCache.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): (WebKit::WebProcessProxy::maybeShutDown): (WebKit::WebProcessProxy::isResponsive):
- UIProcess/WebProcessProxy.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:02 PM Changeset in webkit [241901] by
-
- 5 edits in branches/safari-607-branch
Cherry-pick r241845. rdar://problem/48267029
Regression(PSON) "Reload without content extensions" does not work when the main resource is blocked
https://bugs.webkit.org/show_bug.cgi?id=194872
<rdar://problem/47924500>
Reviewed by Alex Christensen.
Source/WebKit:
[WKWebView _reloadWithoutContentBlockers] relies on a ReloadOption flag that is passed to WebCore
instead of using WebsitePolicies.contentBlockersEnabled flag. If the reload causes a process swap
due to PSON, then the new process does not know about this ReloadOption and fails to honor it.
Since the modern way to do this is WebsitePolicies, and since WebsitePolicies are properly
propagated cross-process in case of process swap, this patch updates _reloadWithoutContentBlockers
to set a flag on the Navigation which we use to later set the WebsitePolicies.contentBlockersEnabled
flag in WebPageProxy::receivedNavigationPolicyDecision().
- UIProcess/API/APINavigation.h: (API::Navigation::setUserContentExtensionsEnabled): (API::Navigation::userContentExtensionsEnabled const):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::receivedNavigationPolicyDecision):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:43 PM Changeset in webkit [241900] by
-
- 4 edits in trunk/Source
Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
https://bugs.webkit.org/show_bug.cgi?id=194531
<rdar://problem/47714562>
Patch by Antoine Quint <Antoine Quint> on 2019-02-21
Reviewed by Tim Horton.
Follow-up commit to ensure this SPI is only called on newer versions of iOS.
Source/WebKit:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cancelPointersForGestureRecognizer:]):
Source/WTF:
- wtf/Platform.h:
- 1:34 PM Changeset in webkit [241899] by
-
- 17 edits1 add in trunk
Crash under RemoteLayerTreePropertyApplier::applyProperties when reattaching to old process
https://bugs.webkit.org/show_bug.cgi?id=194845
<rdar://problem/47944579>
Reviewed by Antti Koivisto.
Source/WebKit:
New test: ProcessSwap.PageOverlayLayerPersistence
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
Keep track of all properties that have ever changed on a layer, so we
can re-send them if a layer moves between contexts.
- WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::~DrawingArea):
(WebKit::DrawingArea::removeMessageReceiverIfNeeded):
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::layerHostDidFlushLayers):
Make it possible to tear down DrawingArea's MessageReceiver before it is destroyed,
so that we can keep two DrawingAreas alive in a single process for a short time.
(WebKit::DrawingArea::adoptLayersFromDrawingArea):
Add adoptLayersFromDrawingArea; see below for its only useful implementation.
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp:
(WebKit::GraphicsLayerCARemote::GraphicsLayerCARemote):
(WebKit::GraphicsLayerCARemote::~GraphicsLayerCARemote):
(WebKit::GraphicsLayerCARemote::createPlatformCALayer):
(WebKit::GraphicsLayerCARemote::createPlatformCALayerForEmbeddedView):
(WebKit::GraphicsLayerCARemote::moveToContext):
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h:
Make it possible to move a GraphicsLayerCARemote between RemoteLayerTreeContexts.
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::create):
(WebKit::PlatformCALayerRemote::createForEmbeddedView):
(WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::moveToContext):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::create):
(WebKit::PlatformCALayerRemoteCustom::clone const):
Make it possible to move a PlatformCALayerRemote between RemoteLayerTreeContexts.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::~RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::adoptLayersFromContext):
(WebKit::RemoteLayerTreeContext::layerDidEnterContext):
(WebKit::RemoteLayerTreeContext::layerWillLeaveContext):
(WebKit::RemoteLayerTreeContext::graphicsLayerDidEnterContext):
(WebKit::RemoteLayerTreeContext::graphicsLayerWillLeaveContext):
(WebKit::RemoteLayerTreeContext::layerWasCreated): Deleted.
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed): Deleted.
Keep track of all GraphicsLayerCARemote instances in the context, like we
do for PlatformCALayerRemote, so that we can update their context backpointers if needed.
Also make it possible to move all outstanding layers to a new context.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::adoptLayersFromDrawingArea):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):
When doing a DrawingArea swap, transition all layers from the old context
to the new one. In order to do this, we temporarily keep both DrawingAreas
alive, but make use of the new mechanism to remove the old one's MessageReceiver
before installing the new one, so that destroying the old one later doesn't
remove it (avoiding re-introducing bug 189481).
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 1:27 PM Changeset in webkit [241898] by
-
- 1 edit in branches/safari-607-branch/Source/WebKit/UIProcess/ProvisionalPageProxy.h
Unreviewed build fix. rdar://problem/48248223
- 1:27 PM Changeset in webkit [241897] by
-
- 2 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241853. rdar://problem/48248223
Unreviewed build fix after r241823.
- UIProcess/SuspendedPageProxy.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241896] by
-
- 7 edits in branches/safari-607-branch
Cherry-pick r241823. rdar://problem/48248223
Regression(PSON) Crash under WebKit::WebPageProxy::decidePolicyForNavigationActionSync
https://bugs.webkit.org/show_bug.cgi?id=194857
<rdar://problem/47759323>
Reviewed by Alex Christensen.
Source/WebKit:
The ProvisionalPageProxy was blindly forwarding the DecidePolicyForNavigationActionSync
synchronous IPC to the WebPageProxy, without passing it the process the IPC came from.
As a result, WebPageProxy::decidePolicyForNavigationActionSync() would try to look up
a WebFrameProxy using the provided frameID from the wrong process and we would end up
hitting a RELEASE_ASSERT().
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync): (WebKit::ProvisionalPageProxy::didReceiveSyncMessage):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): (WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
- UIProcess/WebPageProxy.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241895] by
-
- 9 edits in branches/safari-607-branch
Apply patch. rdar://problem/48243214
REGRESSION (PSON): Can't access optumbank.com from myuhc.com https://bugs.webkit.org/show_bug.cgi?id=194797 <rdar://problem/48055151>
Reviewed by Geoffrey Garen.
Source/WebKit:
The issue was caused by us mistakenly process-swapping for a same-site server side redirect.
The reason we were getting it wrong is because the logic in
WebProcessPool::processForNavigationInternal() was expecting page.process() to be the source
process and page.pageLoadState().url() to be the source URL. Those assumptions are incorrect
when a server-side redirect occurs in a provisional process. In such case, the source process
is the ProvisionalPageProxy's process and the source URL is the provisional URL, not the
committed one.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didPerformServerRedirect): (WebKit::ProvisionalPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): (WebKit::ProvisionalPageProxy::didReceiveMessage):
- UIProcess/ProvisionalPageProxy.h: Make sure the provisional page forwards IPC related to server-side redirects to the page so that the client gets informed.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedNavigationPolicyDecision): (WebKit::WebPageProxy::didPerformServerRedirect): (WebKit::WebPageProxy::didPerformServerRedirectShared):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processForNavigation): (WebKit::WebProcessPool::processForNavigationInternal):
- UIProcess/WebProcessPool.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@241752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
(cherry picked from commit 53ac6d765e577c36c5c5e02659ee3ca21f25599f)
- 1:27 PM Changeset in webkit [241894] by
-
- 3 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241848. rdar://problem/48257838
Crash in DOMWindowExtension::suspendForPageCache
https://bugs.webkit.org/show_bug.cgi?id=194871
Reviewed by Chris Dumez.
This is a speculative fix for a crash in DOMWindowExtension::suspendForPageCache.
We think it's possible for DOMWindowExtension::suspendForPageCache notifying the clients via
dispatchWillDisconnectDOMWindowExtensionFromGlobalObject to remove other DOMWindowExtension's.
Check that each DOMWindowProperty is still in m_properties before invoking suspendForPageCache
to avoid the crash.
- page/DOMWindow.cpp: (WebCore::DOMWindow::willDestroyCachedFrame): (WebCore::DOMWindow::willDestroyDocumentInFrame): (WebCore::DOMWindow::willDetachDocumentFromFrame): (WebCore::DOMWindow::suspendForPageCache): (WebCore::DOMWindow::resumeFromPageCache):
- page/DOMWindowExtension.cpp: (WebCore::DOMWindowExtension::suspendForPageCache):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241848 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241893] by
-
- 11 edits4 adds in branches/safari-607-branch
Cherry-pick r241788. rdar://problem/48248202
REGRESSION (r238090): Toggling visibility on the <html> element can result in a blank web view
https://bugs.webkit.org/show_bug.cgi?id=194827
rdar://problem/47620594
Reviewed by Antti Koivisto.
Source/WebCore:
Incremental compositing updates, added in rr238090, use repaints as a trigger for re-evaluating
layer configurations, since a repaint implies that a layer gains painted content. This is done
via the call to setNeedsCompositingConfigurationUpdate() in RenderLayerBacking::setContentsNeedDisplay{InRect}.
The RenderView's layer is opted out of this to avoid doing lots of redundant layer config recomputation
for the root. The configuration state that matters here is whether the layer contains painted content,
and therefore needs backing store; this is computed by RenderLayerBacking::isSimpleContainerCompositingLayer(),
and feeds into GraphicsLayer::drawsContent().
However, if <html> starts as "visibility:hidden" or "opacity:0", as some sites do to hide incremental loading,
then we'll fail to recompute 'drawsContent' for the root and leave the root with drawsContent=false, which
causes RenderLayerBacking::setContentsNeedDisplay{InRect} to short-circuit, and then we paint nothing.
Ironically, 'drawsContent' doesn't actually save any backing store for the root, since it has no affect on
the root tile caches; we always make tiles. So the simple fix here is to change RenderLayerBacking::isSimpleContainerCompositingLayer()
to always return false for the RenderView's layer (the root).
Testing this was tricky; ref testing doesn't work because we force repaint, and we normally skip
properties of the root in layer tree dumps to hide WK1/WK2 differences. Therefore I had to add
LAYER_TREE_INCLUDES_ROOT_LAYER_PROPERTIES and fix RenderLayerBacking::shouldDumpPropertyForLayer to
respect it.
Test: compositing/visibility/root-visibility-toggle.html
- page/Frame.h:
- platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::dumpProperties const):
- platform/graphics/GraphicsLayerClient.h: (WebCore::GraphicsLayerClient::shouldDumpPropertyForLayer const):
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer const): (WebCore::RenderLayerBacking::shouldDumpPropertyForLayer const):
- rendering/RenderLayerBacking.h:
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::layerTreeAsText):
- testing/Internals.cpp: (WebCore::toLayerTreeFlags):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Test dumps layer tree with RenderLayerBacking::shouldDumpPropertyForLayer to show that the root has (drawsContent 1)
- compositing/visibility/root-visibility-toggle-expected.txt: Added.
- compositing/visibility/root-visibility-toggle.html: Added.
- platform/mac-wk1/compositing/visibility/root-visibility-toggle-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241892] by
-
- 2 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241777. rdar://problem/48248215
Remove assertion introduced in r229683
https://bugs.webkit.org/show_bug.cgi?id=194825
<rdar://problem/47628258>
Reviewed by Geoffrey Garen.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): If we reach this code and the form's original Document's Frame has been destroyed, we have already been told to submit the form so do so, just like we do if the WebPage has been destroyed. This is a rare edge case having to do with the timing of Frame destruction and decidePolicyForNavigationAction response, which unfortunately does not reproduce with a test case unless the timing of IPC is just right.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241891] by
-
- 2 edits in branches/safari-607-branch/Source/JavaScriptCore
Cherry-pick r241772. rdar://problem/48248228
Fix DFG doesGC() for TryGetById and ProfileType nodes.
https://bugs.webkit.org/show_bug.cgi?id=194821
<rdar://problem/48206690>
Reviewed by Saam Barati.
Fix doesGC() for the following nodes:
ProfileType:
calls operationProcessTypeProfilerLogDFG(), which can calculatedClassName(),
which can call JSString::tryGetValue(), which can resolve a rope.
TryGetById:
calls operationTryGetByIdOptimize(), which can startWatchingPropertyForReplacements()
on a structure, which can allocate StructureRareData.
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241772 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241890] by
-
- 2 edits in branches/safari-607-branch/Source/JavaScriptCore
Cherry-pick r241753. rdar://problem/48243425
Fix DFG doesGC() for CompareEq/Less/LessEq/Greater/GreaterEq and CompareStrictEq nodes.
https://bugs.webkit.org/show_bug.cgi?id=194800
<rdar://problem/48183773>
Reviewed by Yusuke Suzuki.
Fix doesGC() for the following nodes:
CompareEq:
CompareLess:
CompareLessEq:
CompareGreater:
CompareGreaterEq:
CompareStrictEq:
Only return false (i.e. does not GC) for child node use kinds that have
been vetted to not do anything that can GC. For all other use kinds
(including StringUse and BigIntUse), we return true (i.e. does GC).
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241753 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241889] by
-
- 2 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241738. rdar://problem/48243338
Uncaught Exception crash in MediaPlayerPrivateAVFoundationObjC::setShouldObserveTimeControlStatus()
https://bugs.webkit.org/show_bug.cgi?id=194786
Reviewed by Eric Carlson.
Convert a runtime crash to a debug assert by wrapping the call to -[AVPlayer removeObserver:forKeyPath:]
in an exception handler.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldObserveTimeControlStatus):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241738 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241888] by
-
- 12 edits in branches/safari-607-branch/Source
Cherry-pick r241721. rdar://problem/48243376
AX: PSON: Going back from apple.com to search results, cannot interact with HTML content. Disabling Swap Processes on Cross-Site Navigation resolves the issue.
https://bugs.webkit.org/show_bug.cgi?id=194742
Reviewed by Chris Dumez.
Source/WebCore:
With the new process model, WebProcess hits a case where it tries to send the "page loaded" notification before VoiceOver
had a chance to register for any notifications. This leads to those notifications being dropped (and thus this bug).
This change instead asks the UIProcess to send the notification, which we know VoiceOver has registered for, and can reliably
receive notifications.
It also sends the notification for "load failures," which to the VO users' perspective amounts to the same thing as a successful
page load.
- accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
Source/WebKit:
Re-initialize the accessibility web process tokens when swapping processes.
Send page load notifications from the UIProcess instead of the WebProcess to improve reliability.
- UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::didFinishLoadForMainFrame): (WebKit::PageClientImpl::didFailLoadForMainFrame):
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::reinitializeWebPage):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::platformReinitialize): (WebKit::WebPage::platformDetach): Deleted. (WebKit::WebPage::platformEditorState const): Deleted. (WebKit::WebPage::updateAccessibilityTree): Deleted. (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Deleted. (WebKit::WebPage::platformCanHandleRequest): Deleted. (WebKit::WebPage::platformUserAgent const): Deleted. (WebKit::WebPage::getCenterForZoomGesture): Deleted. (WebKit::WebPage::setInputMethodState): Deleted. (WebKit::WebPage::collapseSelectionInFrame): Deleted.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformReinitialize):
- WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformReinitialize):
- WebProcess/WebPage/win/WebPageWin.cpp: (WebKit::WebPage::platformReinitialize):
- WebProcess/WebPage/wpe/WebPageWPE.cpp: (WebKit::WebPage::platformReinitialize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241721 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241887] by
-
- 4 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241658. rdar://problem/48243434
https://device.login.microsoftonline.com is hanging on STP75
https://bugs.webkit.org/show_bug.cgi?id=194734
<rdar://problem/47573830>
Reviewed by Jiewen Tan.
Make sure to only go the XPC route if SecKeyProxyStore has credentials.
Tested manually by going to the above website with and without the patch.
Load hangs without the patch and completes with the patch.
- UIProcess/Authentication/AuthenticationChallengeProxy.cpp: (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
- UIProcess/Authentication/cocoa/SecKeyProxyStore.h:
- UIProcess/Authentication/cocoa/SecKeyProxyStore.mm: (WebKit::SecKeyProxyStore::initialize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241886] by
-
- 14 edits3 deletes in branches/safari-607-branch
Cherry-pick r241652. rdar://problem/48243343
Web Inspector: Frontend performance is very slow reloading theverge.com - 50% of time in TreeOutline _indexOfTreeElement
https://bugs.webkit.org/show_bug.cgi?id=193605
<rdar://problem/47403986>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
SelectionController should track an unordered Set of represented objects
instead of an ordered set of indexes. This eliminates the costly and
error-prone updates needed to keep the selected indexes in sync as items
are added and removed from TreeOutline (and Table, to a far lesser extent).
The SelectionController interface is largely the same. Class and delegate
methods have been renamed to reflect the change from indexes to objects.
SelectionController tracks selected items in selection order. For the
operations that rely on objects being in insertion order, the controller
uses a comparator function provided at construction time.
- UserInterface/Base/IndexSet.js: Removed. No longer used. SelectionController now uses a plain Set.
- UserInterface/Base/Utilities.js: (value): (get return): Add utilities previously supplied by IndexSet and used by SelectionController.
- UserInterface/Controllers/SelectionController.js: (WI.SelectionController): (WI.SelectionController.prototype.get lastSelectedItem): (WI.SelectionController.prototype.get selectedItems): (WI.SelectionController.prototype.set allowsMultipleSelection): (WI.SelectionController.prototype.hasSelectedItem): (WI.SelectionController.prototype.selectItem): (WI.SelectionController.prototype.deselectItem): (WI.SelectionController.prototype.selectAll): (WI.SelectionController.prototype.deselectAll): (WI.SelectionController.prototype.removeSelectedItems): (WI.SelectionController.prototype.reset): (WI.SelectionController.prototype.didRemoveItems): (WI.SelectionController.prototype.handleKeyDown): (WI.SelectionController.prototype.handleItemMouseDown): (WI.SelectionController.prototype._deselectAllAndSelect): (WI.SelectionController.prototype._selectItemsFromArrowKey): (WI.SelectionController.prototype._firstSelectableItem): (WI.SelectionController.prototype._lastSelectableItem): (WI.SelectionController.prototype._previousSelectableItem): (WI.SelectionController.prototype._nextSelectableItem): (WI.SelectionController.prototype._updateSelectedItems): (WI.SelectionController.prototype._addRange): (WI.SelectionController.prototype._deleteRange): (WI.SelectionController.prototype.get numberOfItems): Deleted. (WI.SelectionController.prototype.didInsertItem): Deleted. (WI.SelectionController.prototype.handleItemMouseDown.normalizeRange): Deleted. (WI.SelectionController.prototype._nextSelectableIndex): Deleted. (WI.SelectionController.prototype._previousSelectableIndex): Deleted.
- UserInterface/Main.html:
- UserInterface/Test.html: Remove IndexSet.
- UserInterface/Views/CookieStorageContentView.js: (WI.CookieStorageContentView.prototype.tableIndexForRepresentedObject): (WI.CookieStorageContentView.prototype.tableRepresentedObjectForIndex):
- UserInterface/Views/DOMTreeOutline.js: (WI.DOMTreeOutline.prototype.objectForSelection):
- UserInterface/Views/NetworkTableContentView.js: (WI.NetworkTableContentView.prototype.tableIndexForRepresentedObject): (WI.NetworkTableContentView.prototype.tableRepresentedObjectForIndex):
- UserInterface/Views/Table.js: (WI.Table): (WI.Table.prototype.get selectedRow): (WI.Table.prototype.get selectedRows): (WI.Table.prototype.isRowSelected): (WI.Table.prototype.selectRow): (WI.Table.prototype.deselectRow): (WI.Table.prototype.removeRow): (WI.Table.prototype.removeSelectedRows): (WI.Table.prototype.selectionControllerSelectionDidChange): (WI.Table.prototype.selectionControllerFirstSelectableItem): (WI.Table.prototype.selectionControllerLastSelectableItem): (WI.Table.prototype.selectionControllerPreviousSelectableItem): (WI.Table.prototype.selectionControllerNextSelectableItem): (WI.Table.prototype._handleMouseDown): (WI.Table.prototype._removeRows): (WI.Table.prototype._indexForRepresentedObject): (WI.Table.prototype._representedObjectForIndex): (WI.Table.prototype.selectionControllerNumberOfItems): Deleted. (WI.Table.prototype.selectionControllerNextSelectableIndex): Deleted. (WI.Table.prototype.selectionControllerPreviousSelectableIndex): Deleted. (WI.Table.prototype._toggleSelectedRowStyle): Deleted.
- UserInterface/Views/TreeOutline.js: (WI.TreeOutline.compareSiblings): (WI.TreeOutline): (WI.TreeOutline.prototype.get selectedTreeElement): (WI.TreeOutline.prototype.set selectedTreeElement): (WI.TreeOutline.prototype.get selectedTreeElements): (WI.TreeOutline.prototype.removeChildAtIndex): (WI.TreeOutline.prototype.removeChildren): (WI.TreeOutline.prototype._rememberTreeElement): (WI.TreeOutline.prototype.getCachedTreeElement): (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): (WI.TreeOutline.prototype.selectionControllerFirstSelectableItem): (WI.TreeOutline.prototype.selectionControllerLastSelectableItem): (WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem): (WI.TreeOutline.prototype.selectionControllerNextSelectableItem): (WI.TreeOutline.prototype.objectForSelection): (WI.TreeOutline._generateStyleRulesIfNeeded): (WI.TreeOutline.prototype.selectionControllerNextSelectableIndex): Deleted. (WI.TreeOutline.prototype.selectionControllerPreviousSelectableIndex): Deleted. (WI.TreeOutline._generateStyleRulesIfNeeded._indexesForSubtree.numberOfElementsInSubtree): Deleted.
LayoutTests:
- inspector/table/resources/table-utilities.js: (TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.tableIndexForRepresentedObject): (TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.tableRepresentedObjectForIndex): (TestPage.registerInitializer.InspectorTest.TableDataSource): New Table data source methods.
- inspector/unit-tests/index-set-expected.txt: Removed.
- inspector/unit-tests/index-set.html: Removed.
- inspector/unit-tests/set-utilities-expected.txt:
- inspector/unit-tests/set-utilities.html:
Remove IndexSet tests and update tests for Set utilities to include new
helper methods
equalsanddifference, andfirstValue.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241885] by
-
- 3 edits1 add in branches/safari-607-branch
Cherry-pick r241634. rdar://problem/48243442
RELEASE_ASSERT at com.apple.JavaScriptCore: JSC::jsSubstringOfResolved
https://bugs.webkit.org/show_bug.cgi?id=194558
Reviewed by Saam Barati.
JSTests:
New regression test.
- stress/regexp-unicode-within-string.js: Added.
Source/JavaScriptCore:
Added an in bounds check before the read of the next character for Unicode regular expressions
for pattern generation that didn't already have such checks.
- yarr/YarrJIT.cpp: (JSC::Yarr::YarrGenerator::generatePatternCharacterOnce): (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed): (JSC::Yarr::YarrGenerator::generateCharacterClassOnce): (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [241884] by
-
- 4 edits2 adds in branches/safari-607-branch
Cherry-pick r241626. rdar://problem/48243415
Crash in the hit testing code via HTMLPlugInElement::isReplacementObscured()
https://bugs.webkit.org/show_bug.cgi?id=194691
Reviewed by Simon Fraser.
Source/WebCore:
The crash was caused by HTMLPlugInElement::isReplacementObscured updating the document
without updating the layout of ancestor documents (i.e. documents in which frame owner
elements appear) even though it hit-tests against the top-level document's RenderView.
Fixed the bug by updating the layout of the top-level document as needed.
Test: plugins/unsupported-plugin-with-replacement-in-iframe-crash.html
- html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::isReplacementObscured):
LayoutTests:
Added a regression test. It hits the newly added debug assertion without the fix.
- platform/mac-wk1/TestExpectations: Skip the test since DumpRenderTree doesn't support testRunner.setPluginSupportedMode.
- plugins/unsupported-plugin-with-replacement-in-iframe-crash-expected.txt: Added.
- plugins/unsupported-plugin-with-replacement-in-iframe-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241883] by
-
- 5 edits1 add in branches/safari-607-branch
Cherry-pick r241613. rdar://problem/48243234
[JSC] CodeBlock::jettison should clear related watchpoints
https://bugs.webkit.org/show_bug.cgi?id=194544
Reviewed by Mark Lam.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::jettison):
- dfg/DFGCommonData.h: (JSC::DFG::CommonData::clearWatchpoints): Added.
- dfg/CommonData.cpp: (JSC::DFG::CommonData::clearWatchpoints): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241882] by
-
- 4 edits in branches/safari-607-branch
Cherry-pick r241606. rdar://problem/48243273
Regression(PSON) Navigating quickly back and forth can lead to getting 'about:blank' in the backforward list
https://bugs.webkit.org/show_bug.cgi?id=194717
<rdar://problem/47884404>
Reviewed by Brady Eidson.
Source/WebKit:
When the client does a history navigation, the UIProcess sends a WebPage::GoToBackForwardItem IPC to the
WebProcess and the WebProcess sends a WebPageProxy::BackForwardGoToItem IPC back to the UIProcess to
update the current item in the BackForwardList. This means that there is a slight delay between the
point a client requests a history navigation and the point where the BackForwardList's current item gets
update. This delay is pre-existing behavior and not new to PSON.
However, with PSON enabled, if we decide to process-swap for the history navigation, we'll tell the
previous (committed) process to ignore the load and we ask a new (provisional) process to do the history
navigation. When the previous process receives the request to ignore the history navigation, it restores
the History's current item to the one previous the navigation, which sends a WebPageProxy::GoToBackForwardItem
IPC to the UIProcess to update the BackForwardList as well. In parallel, the new process starts the
history navigation and also sends a WebPageProxy::GoToBackForwardItem to update the BackForwardList's
current item as well. We end up with a race between the 2 GoToBackForwardItem IPC messages coming from
the old and new process. If the old process's message loses the race, we end up with the wrong current
history item getting set in the UIProcess. Later, when we commit the provisional load and try to suspend
the previous page, we would save the SuspendedPage on the *wrong* BackForwardList item. If one tries to
load this BackForwardList item later, we'll use its SuspendedPage and try to unsuspend it. However,
because the PageCache entry is saved on another HistoryItem than the one getting loaded in the WebProcess
side, we attempt to do a regular load instead of a PageCache restore. We end up failing the load because
pages cannot trigger new loads while in page cache. Because the load fails, we end up loading the
initial empty document and this is how we end up with 'about:blank' in the back forward list.
To address the issue, update WebPageProxy::backForwardGoToItem() to ignore messages from the old/committed
WebProcess when there is a pending provisional load. If the committed processes starts a legit new
load, it would clear any existing pending provisional load before attempting the call backForwardGoToItem().
As a result, ignoring such messages from the old processes when there is a pending provisional load is
safe.
In the future, we should probably move more of the history / backForwardList management to the UIProcess
to avoid this sort of issues. This would be a much larger refactoring though so I am going with this
simpler fix that is easily cherry-pickable for now.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::suspendCurrentPageIfPossible): (WebKit::WebPageProxy::continueNavigationInNewProcess): (WebKit::WebPageProxy::backForwardGoToItem):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241606 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241881] by
-
- 2 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241567. rdar://problem/48243396
Web Inspector: Occasional crash under WebCore::CSSStyleSheet::item called from Inspector
https://bugs.webkit.org/show_bug.cgi?id=194671
<rdar://problem/47628191>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-02-14
Reviewed by Devin Rousso.
- css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::item): A crash may happen if the m_childRuleCSSOMWrappers Vector gets out of sync with the m_contents list of rules. In particular if the wrappers vector is shorter than the rule list. We tried exercising code paths that modify these lists but were not able to reproduce the crash. To avoid a crash we can make this access safer and avoid the original overflow. At the same time we will keep and promote the assertion that would catch the lists getting out of sync in debug builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241567 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241880] by
-
- 4 edits in branches/safari-607-branch
Cherry-pick r241549. rdar://problem/48243406
AX: ARIA Reflection was disabled in error
https://bugs.webkit.org/show_bug.cgi?id=194647
<rdar://problem/48068336>
Reviewed by Ryosuke Niwa.
Source/WebKit:
- Shared/WebPreferences.yaml:
Tools:
Remove test override now that this feature should be enabled by default.
- WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241549 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241879] by
-
- 5 edits in branches/safari-607-branch/Source
Cherry-pick r241547. rdar://problem/48220627
Web Inspector: don't include accessibility role in DOM.Node object payloads
https://bugs.webkit.org/show_bug.cgi?id=194623
<rdar://problem/36384037>
Reviewed by Devin Rousso.
Source/JavaScriptCore:
Remove property of DOM.Node that is no longer being sent.
- inspector/protocol/DOM.json:
Source/WebCore:
Accessibility properties are complicated to fetch at all the points where we want to build and push nodes immediately.
Turning on AX often indirectly causes style recalc and layout. This is bad because we are often building nodes in the
first place due to a DOM node tree update (i.e., NodeInserted).
It turns out that DOM.getAccessibilityPropertiesForNode is called every time we display
the computed role in the Elements Tab > Nodes Sidebar > Accessibility Section. So it is not
necessary to collect this information in a problematic way when initially pushing the node, as
it will be updated anyway.
No new tests, no change in behavior.
- inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::buildObjectForNode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241547 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241878] by
-
- 2 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241492. rdar://problem/48243254
[Mac] PiP window can get "stuck" if PiP is closed while Safari window is minimized.
https://bugs.webkit.org/show_bug.cgi?id=194621
<rdar://problem/48002560>
Reviewed by Eric Carlson.
When Safari is minimized, no rAF() requests are executed. Don't gate responding to presentation
change events in the media-controller.js on rAF().
- Modules/modern-media-controls/media/media-controller.js: (MediaController.prototype._returnMediaLayerToInlineIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [241877] by
-
- 3 edits4 deletes in branches/safari-607-branch
Revert r237978. rdar://problem/48244945
- 1:06 PM Changeset in webkit [241876] by
-
- 4 edits in trunk/Source/WebCore
[CMake][Win] Fix !USE(CF) build of WebCore
https://bugs.webkit.org/show_bug.cgi?id=194879
Reviewed by Konstantin Tokarev.
- PlatformAppleWin.cmake:
- PlatformWin.cmake:
- PlatformWinCairo.cmake:
- 11:59 AM Changeset in webkit [241875] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Canvas: recordings with a single frame sometimes missing TreeElement
https://bugs.webkit.org/show_bug.cgi?id=194687
Reviewed by Joseph Pecoraro.
- UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel):
Wait until the entireRecordinghas been processed before setting the selected action.
- UserInterface/Views/CanvasSidebarPanel.css:
(.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):
Drive-by: ensure that the recordingTreeOutlinecontainer element has the full height to
take advantage of for virtualization.
- UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
(WI.RecordingStateDetailsSidebarPanel.prototype.set recording):
Drive-by: clear theDataGridlist when changing recordings since we removed all subviews.
- 10:56 AM Changeset in webkit [241874] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: DOM Debugger: node-specific event breakpoints aren't cleared/recalculated on navigation
https://bugs.webkit.org/show_bug.cgi?id=194874
<rdar://problem/48253415>
Reviewed by Joseph Pecoraro.
- UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype._setDocument):
(WI.DOMManager.prototype.removeBreakpointForEventListener):
- 10:14 AM Changeset in webkit [241873] by
-
- 2 edits in trunk/Source/WTF
Rotation animations sometimes use the wrong origin (affects apple.com)
https://bugs.webkit.org/show_bug.cgi?id=194878
<rdar://problem/43908047>
Follow-up commit to ensure this change only affects newer versions
of iOS.
- wtf/Platform.h: Add a version check.
- 10:09 AM Changeset in webkit [241872] by
-
- 1 copy in releases/WPE WebKit/webkit-2.23.90
WPE WebKit 2.23.90
- 10:08 AM Changeset in webkit [241871] by
-
- 4 edits in releases/WebKitGTK/webkit-2.24
Unreviewed. Update OptionsWPE.cmake and NEWS for 2.23.90 release
build-wpe-releng/..:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
build-wpe-releng/../Source/WebKit:
- wpe/NEWS: Add release notes for 2.23.90
- 10:00 AM Changeset in webkit [241870] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: macOS user agent option should be available in device settings menu
https://bugs.webkit.org/show_bug.cgi?id=194885
<rdar://problem/48259253>
Reviewed by Joseph Pecoraro.
- UserInterface/Base/Main.js:
(WI._handleDeviceSettingsToolbarButtonClicked):
- 9:58 AM Changeset in webkit [241869] by
-
- 7 edits2 adds in trunk
[LFC][Floats] Add support for placing formatting roots in-between floats.
https://bugs.webkit.org/show_bug.cgi?id=194902
Reviewed by Antti Koivisto.
Source/WebCore:
This patch add support for placing a formatting root box in-between existing floats.
The initial vertical position of a formatting root is its static position which can make the box
placed above exsiting floats (whereas we can never place a regular float above existing floats.)
Test: fast/block/block-only/floats-and-block-formatting-roots.html
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatPair::LeftRightIndex::isEmpty const):
(WebCore::Layout::FloatPair::isEmpty const):
(WebCore::Layout::FloatPair::operator* const):
(WebCore::Layout::Iterator::operator* const):
(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForFormattingContextRoot const):
(WebCore::Layout::findAvailablePosition):
(WebCore::Layout::FloatingContext::findPositionForFloatBox const):
(WebCore::Layout::FloatingContext::findPositionForFormattingContextRoot const):
(WebCore::Layout::FloatPair::FloatPair):
(WebCore::Layout::FloatPair::left const):
(WebCore::Layout::FloatPair::right const):
(WebCore::Layout::FloatPair::intersects const):
(WebCore::Layout::FloatPair::operator == const):
(WebCore::Layout::FloatPair::horizontalConstraints const):
(WebCore::Layout::FloatPair::bottom const):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::FloatingPair::isEmpty const): Deleted.
(WebCore::Layout::FloatingPair::verticalConstraint const): Deleted.
(WebCore::Layout::FloatingContext::positionForFloatAvoiding const): Deleted.
(WebCore::Layout::FloatingContext::floatingPosition const): Deleted.
(WebCore::Layout::FloatingPair::FloatingPair): Deleted.
(WebCore::Layout::FloatingPair::left const): Deleted.
(WebCore::Layout::FloatingPair::right const): Deleted.
(WebCore::Layout::FloatingPair::intersects const): Deleted.
(WebCore::Layout::FloatingPair::operator == const): Deleted.
(WebCore::Layout::FloatingPair::horizontalConstraints const): Deleted.
(WebCore::Layout::FloatingPair::bottom const): Deleted.
- layout/floats/FloatingContext.h:
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
- fast/block/block-only/floats-and-block-formatting-roots-expected.html: Added.
- fast/block/block-only/floats-and-block-formatting-roots.html: Added.
- 9:24 AM Changeset in webkit [241868] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed API test fix after r241855.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
- 9:15 AM Changeset in webkit [241867] by
-
- 4 edits in releases/WebKitGTK/webkit-2.24
Merged r241866 - [WPE] Do not hardcode WPEBackend-fdo library name for linking tests
https://bugs.webkit.org/show_bug.cgi?id=194901
Unreviewed build fix.
.:
- Source/cmake/FindWPEBackend-fdo.cmake: Use WPEBACKEND_FDO as prefix
for the output variables instead of WPEBackend-fdo, for consistency
with other usages of of find_package_handle_standard_args().
Tools:
- TestWebKitAPI/PlatformWPE.cmake: Set TestWebKitAPIBase to be linked
against the detected ${WPEBACKEND_FDO_LIBRARIES} instead of hardcoding
WPEBackend-fdo-0.1 as library name.
- 9:08 AM Changeset in webkit [241866] by
-
- 4 edits in trunk
[WPE] Do not hardcode WPEBackend-fdo library name for linking tests
https://bugs.webkit.org/show_bug.cgi?id=194901
Unreviewed build fix.
.:
- Source/cmake/FindWPEBackend-fdo.cmake: Use WPEBACKEND_FDO as prefix
for the output variables instead of WPEBackend-fdo, for consistency
with other usages of of find_package_handle_standard_args().
Tools:
- TestWebKitAPI/PlatformWPE.cmake: Set TestWebKitAPIBase to be linked
against the detected ${WPEBACKEND_FDO_LIBRARIES} instead of hardcoding
WPEBackend-fdo-0.1 as library name.
- 5:55 AM Changeset in webkit [241865] by
-
- 3 edits in trunk/Source/WebKit
Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
https://bugs.webkit.org/show_bug.cgi?id=194531
<rdar://problem/47714562>
Reviewed by Dean Jackson.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cancelPointersForGestureRecognizer:]): We update the referenced Radar since we need to keep the call
to respondsToSelector until the SPI has shipped for OpenSource builds to work.
- 4:29 AM Changeset in webkit [241864] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening for unexpected passes
https://bugs.webkit.org/show_bug.cgi?id=194854
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 12:39 AM Changeset in webkit [241863] by
-
- 7 edits in trunk
Update MIME type parser
https://bugs.webkit.org/show_bug.cgi?id=180526
Patch by Rob Buis <rbuis@igalia.com> on 2019-02-21
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update improved test expectations.
- web-platform-tests/xhr/overridemimetype-blob-expected.txt:
Source/WebCore:
Further testing showed the MIME parser needs these fixes:
- stripWhitespace is wrong for removing HTTP whitespace, use stripLeadingAndTrailingHTTPSpaces instead.
- HTTP Token code points checking for Rfc2045 and Mimesniff were mixed up, use the dedicated isValidHTTPToken for Mimesniff mode.
- Quoted Strings were not unescaped/escaped, this seems ok for serializing but is wrong when gettings individual parameter values. Implement [1] and [2] Step 2.4 to properly unescape and escape.
This change also tries to avoid hard to read uses of find.
Test: ParsedContentType.Serialize
[1] https://fetch.spec.whatwg.org/#collect-an-http-quoted-string
[2] https://mimesniff.spec.whatwg.org/#serializing-a-mime-type
- platform/network/ParsedContentType.cpp:
(WebCore::skipSpaces):
(WebCore::parseToken):
(WebCore::isNotQuoteOrBackslash):
(WebCore::collectHTTPQuotedString):
(WebCore::containsNonTokenCharacters):
(WebCore::parseQuotedString):
(WebCore::ParsedContentType::parseContentType):
(WebCore::ParsedContentType::create):
(WebCore::ParsedContentType::setContentType):
(WebCore::containsNonQuoteStringTokenCharacters):
(WebCore::ParsedContentType::setContentTypeParameter):
(WebCore::ParsedContentType::serialize const):
(WebCore::substringForRange): Deleted.
(WebCore::isNonTokenCharacter): Deleted.
(WebCore::isNonQuotedStringTokenCharacter): Deleted.
- platform/network/ParsedContentType.h:
Tools:
Add tests involving leading and trailing whitespace, non-token
characters and quoted strings.
- TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:
(TestWebKitAPI::TEST):