Timeline
Jun 2, 2019:
- 10:29 PM Changeset in webkit [246029] by
-
- 3 edits6 adds in branches/safari-608.1.27-branch
Cherry-pick r245989. rdar://problem/51283532
iOS: Main frame should be scrollable when pinch zoomed or software keyboard is up
https://bugs.webkit.org/show_bug.cgi?id=198244
Reviewed by Simon Fraser.
Source/WebKit:
This is a follow up to r245006. Even when overflow: hidden is specified on the document body,
we still need to make it scrollable when the page is pinch zoomed or there is a content inset
e.g. for software keyboard. Otherwise, the user won't be able to get to the content that is
outside the visual viewport when pinch zoomed or the parts of the page that is not outside
the visual viewport due to the scrolling caused by the software keyboard being brought up.
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]):
LayoutTests:
Added regression tests.
- fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard-expected.txt: Added.
- fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html: Added.
- fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1-expected.txt: Added.
- fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1.html: Added.
- fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2-expected.txt: Added.
- fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:28 PM Changeset in webkit [246028] by
-
- 2 edits in trunk/Tools
[WinCairo][MiniBrowser] WKViewSetIsInWindow should be called
https://bugs.webkit.org/show_bug.cgi?id=198474
Reviewed by Darin Adler.
WinCairo WK2 MiniBrowser can't play back videos because
Page::canStartMedia() always returns false. WKViewSetIsInWindow
should be called.
The original MiniBrowser did it in Bug 55364.
- MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::WebKitBrowserWindow): Call WKViewSetIsInWindow.
- 7:12 PM Changeset in webkit [246027] by
-
- 2 edits in trunk/LayoutTests
Flaky Test: inspector/canvas/recording.html
https://bugs.webkit.org/show_bug.cgi?id=198470
Reviewed by Matt Baker.
- inspector/canvas/recording.html:
Don't rely on
frameCountto automatically stop the recording, as that's dependent on when
the <canvas> paints and is less controllable/deterministic.
- 5:05 PM Changeset in webkit [246026] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Debugger: sidebar should always reveal active call frame when hitting a breakpoint
https://bugs.webkit.org/show_bug.cgi?id=198228
<rdar://problem/46719447>
Reviewed by Devin Rousso.
Reveal the active call frame TreeElement when call frames change. Refreshing
the current target's ThreadTreeElement children is insufficient, since
the sidebar panel content may have been scrolled.
This patch also introduces a workaround to prevent the DetailsSection header
element, which has sticky positioning, from covering a revealed TreeElement.
This can be the case when the TreeElement being revealed is at the topmost edge
of the scrolled content element.
- UserInterface/Base/Utilities.js:
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype.createContentTreeOutline):
(WI.DebuggerSidebarPanel.prototype._debuggerCallFramesDidChange):
- UserInterface/Views/DetailsSection.js:
(WI.DetailsSection.prototype.get element):
(WI.DetailsSection.prototype.get headerElement):
(WI.DetailsSection.prototype.get identifier):
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype.createContentTreeOutline):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerCallFramesDidChange):
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype.reveal):
- UserInterface/Views/TreeOutline.js:
- 4:34 PM Changeset in webkit [246025] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: propagate whether to show prototype information to subobject views
https://bugs.webkit.org/show_bug.cgi?id=194929
Reviewed by Matt Baker.
Add a way to mark the
ObjectTreeViewas holding a JSON value, which extends
showOnlyPropertiesto also hide the prototype of all held values (e.g. children).
- UserInterface/Views/ObjectTreeView.js:
(WI.ObjectTreeView.prototype.showOnlyJSON): Added.
- UserInterface/Views/ObjectTreeView.css:
(.object-tree.properties-only.json-only .object-tree-property .prototype-property): Added.
- UserInterface/Views/AuditTestCaseContentView.js:
(WI.AuditTestCaseContentView.prototype.layout):
- UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshAssociatedData):
- UserInterface/Views/JSONResourceContentView.css:
(.content-view.resource.json .object-tree .prototype-property): Deleted.
- UserInterface/Views/JSONResourceContentView.js:
(WI.JSONResourceContentView.prototype.contentAvailable):
- 3:18 PM Changeset in webkit [246024] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Crash explicitly if StructureIDs are exhausted
https://bugs.webkit.org/show_bug.cgi?id=198467
Reviewed by Sam Weinig.
When StructureIDTable::m_size reaches to s_maximumNumberOfStructures, newCapacity in resize function is also capped with s_maximumNumberOfStructures.
So m_size == newCapacity. In that case, the following code in resize function,makeFreeListFromRange(m_size, m_capacity - 1);starts executing the
wrong code.
Currently, this is safe. We immediately execute the wrong code in makeFreeListFromRange, and crash with zero division. But we should not rely on
this crash, and instead we should explicitly crash because we exhaust StructureIDs.
This patch inserts RELEASE_ASSERT for
m_size < newCapacitystatus to ensure that resize is always extending the table.
In practice, this crash does not happen in Safari because Safari has memory footprint limit. To exhaust StructureIDs, we need to allocate massive
amount of Structures, and it exceeds the memory footprint limit and the process will be killed.
- runtime/StructureIDTable.cpp:
(JSC::StructureIDTable::resize):
- 1:51 PM Changeset in webkit [246023] by
-
- 2 edits in trunk/Source/WebKit
Provide an action to save an image on a link sheet
https://bugs.webkit.org/show_bug.cgi?id=198464
Reviewed by Wenson Hsieh.
When providing the set of default actions for a link
sheet, if an URL to an image was provided then offer
the action to save that image to Photos.
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
- 1:02 PM Changeset in webkit [246022] by
-
- 9 edits in trunk/Source
Reenable Gigacage on ARM64.
https://bugs.webkit.org/show_bug.cgi?id=198453
Reviewed by Filip Pizlo.
Source/bmalloc:
- bmalloc/Gigacage.h:
Source/JavaScriptCore:
This patch adds back Gigacaging on Apple's ARM64 ports. Unlike the
old Gigacage however, arm64e uses both Gigacaging and PAC. Since
Gigacaging would otherwise strip a PAC failed authenticate bit we
force a load of the pointer into some garbage register.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::untagArrayPtr):
(JSC::FTL::DFG::LowerDFGToB3::caged):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::cageConditionally):
- llint/LowLevelInterpreter64.asm:
Source/WTF:
- wtf/CagedPtr.h:
(WTF::CagedPtr::authenticatingLoad):
(WTF::CagedPtr::get const):
(WTF::CagedPtr::getMayBeNull const):
- 5:25 AM Changeset in webkit [246021] by
-
- 4 edits in trunk/Source/JavaScriptCore
CachedMetadataTable::decode leaks empty tables
https://bugs.webkit.org/show_bug.cgi?id=198465
<rdar://problem/51307673>
Reviewed by Yusuke Suzuki.
CachedMetadataTable::decode creates the metadata and never calls finalize on it.
This leaks the underlying UnlinkedMetadataTable buffer when m_hasMetadata is false,
since the buffer would be freed in finalize instead of in the destructor.
- bytecode/UnlinkedMetadataTable.h:
(JSC::UnlinkedMetadataTable::empty):
- bytecode/UnlinkedMetadataTableInlines.h:
(JSC::UnlinkedMetadataTable::UnlinkedMetadataTable):
- runtime/CachedTypes.cpp:
(JSC::CachedMetadataTable::decode const):
Jun 1, 2019:
- 8:01 PM Changeset in webkit [246020] by
-
- 2 edits in trunk/Source/WebKit
Remove include directives unused since r245186
https://bugs.webkit.org/show_bug.cgi?id=198463
Reviewed by Don Olmstead.
- NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
- 8:01 PM Changeset in webkit [246019] by
-
- 5 edits in trunk
[Async overflow scroll] Flashing content when scrolling async overflow with a negative z-index child
https://bugs.webkit.org/show_bug.cgi?id=198458
Reviewed by Dean Jackson.
Source/WebCore:
Set the GraphicsLayerPaintOverflowContents phase on the foreground layer in a composited overflow scroller,
which prevents clipping to the visible region, fixing scrolling flashes.
Tested by compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updatePaintingPhases):
LayoutTests:
- compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
- platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
- 7:55 PM Changeset in webkit [246018] by
-
- 4 edits6 adds in trunk
Async overflow scroll on iOS paints slowly if it has a negative z-index child
https://bugs.webkit.org/show_bug.cgi?id=196508
rdar://problem/49532709
Reviewed by Dean Jackson.
Source/WebCore:
If a RenderLayerBacking had a foreground layer and a scrolled contents layer, every geometry
update would change the size and offsetFromRenderer of the foreground layer between two
states, triggering repaint.
Fix by updating the fore- and background-layers last (nothing elese has dependencies
on their geometry), and using GraphicsLayer::DontSetNeedsDisplay as we do for the
scrolled contents layer.
The test also revealed a bug where the shapeMaskLayer would get incorrect geometry when scrollbars
were visible, because it would be squished by setting the wrong bounds, so fix that.
Test: compositing/repaint/scroller-with-foreground-layer-repaints.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateClippingStrategy):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
LayoutTests:
- compositing/geometry/scroller-with-clipping-and-foreground-layers-expected.html: Added.
- compositing/geometry/scroller-with-clipping-and-foreground-layers.html: Added.
- compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt: Added.
- compositing/repaint/scroller-with-foreground-layer-repaints.html: Added.
- platform/ios-wk2/compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt: Added.
- platform/mac-wk1/compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt: Added.
- 2:40 PM Changeset in webkit [246017] by
-
- 12 edits2 adds in trunk
Non-composited negative z-order children should not trigger creation of a foreground layer
https://bugs.webkit.org/show_bug.cgi?id=198455
Reviewed by Sam Weinig.
Source/WebCore:
The existing code triggered creation of a foreground layer on RenderLayerBacking when
the negative z-order list was non-empty. This isn't necessary; we can paint the negative
z-order children just fine.
We only need a foreground layer when the negative z-order layers are composited or
have composited descendants.
This will reduce backing store memory use in some cases.
Test: compositing/layer-creation/composited-negative-z-subtree.html
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
(WebCore::RenderLayerCompositor::needsContentsCompositingLayer const):
LayoutTests:
Change existing tests that use negative z-order layers to trigger foreground layer
creation to use compositing on those negative z-order layers.
- compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
- compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html:
- compositing/geometry/bounds-ignores-hidden-expected.txt:
- compositing/geometry/bounds-ignores-hidden.html:
- compositing/layer-creation/composited-negative-z-subtree-expected.txt: Added.
- compositing/layer-creation/composited-negative-z-subtree.html: Added.
- compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
- compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html:
- platform/ios-wk2/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
- platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
- platform/mac-wk1/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
- 2:37 PM Changeset in webkit [246016] by
-
- 7 edits7 moves31 adds1 delete in trunk/LayoutTests
Web Inspector: Canvas: split recording tests into separate files so they don't timeout
https://bugs.webkit.org/show_bug.cgi?id=198459
<rdar://problem/51332026>
Reviewed by Joseph Pecoraro.
- inspector/canvas/recording.html:
- inspector/canvas/recording-expected.txt:
- inspector/canvas/recording-2d.html: Removed.
- inspector/canvas/recording-2d-expected.txt: Removed.
- inspector/canvas/console-record-2d.html: Added.
- inspector/canvas/console-record-2d-expected.txt: Added.
- inspector/canvas/recording-2d-frameCount.html: Added.
- inspector/canvas/recording-2d-frameCount-expected.txt: Added.
- inspector/canvas/recording-2d-full.html: Added.
- inspector/canvas/recording-2d-full-expected.txt: Added.
- inspector/canvas/recording-2d-memoryLimit.html: Added.
- inspector/canvas/recording-2d-memoryLimit-expected.txt: Added.
- inspector/canvas/recording-2d-saves.html: Added.
- inspector/canvas/recording-2d-saves-expected.txt: Added.
- inspector/canvas/resources/recording-2d.js: Added.
- inspector/canvas/recording-bitmaprenderer.html: Removed.
- inspector/canvas/recording-bitmaprenderer-expected.txt: Removed.
- inspector/canvas/console-record-bitmaprenderer.html: Added.
- inspector/canvas/console-record-bitmaprenderer-expected.txt: Added.
- inspector/canvas/recording-bitmaprenderer-frameCount.html: Added.
- inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt: Added.
- inspector/canvas/recording-bitmaprenderer-full.html: Added.
- inspector/canvas/recording-bitmaprenderer-full-expected.txt: Added.
- inspector/canvas/recording-bitmaprenderer-memoryLimit.html: Added.
- inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt: Added.
- inspector/canvas/resources/recording-bitmaprenderer.js: Added.
- inspector/canvas/recording-webgl.html: Removed.
- inspector/canvas/recording-webgl-expected.txt: Removed.
- inspector/canvas/console-record-webgl.html: Added.
- inspector/canvas/console-record-webgl-expected.txt: Added.
- inspector/canvas/recording-webgl-frameCount.html: Added.
- inspector/canvas/recording-webgl-frameCount-expected.txt: Added.
- inspector/canvas/recording-webgl-full.html: Added.
- inspector/canvas/recording-webgl-full-expected.txt: Added.
- inspector/canvas/recording-webgl-memoryLimit.html: Added.
- inspector/canvas/recording-webgl-memoryLimit-expected.txt: Added.
- inspector/canvas/resources/recording-webgl.js: Added.
- inspector/canvas/recording-webgl2.html: Removed.
- inspector/canvas/recording-webgl2-expected.txt: Removed.
- inspector/canvas/console-record-webgl2.html: Added.
- inspector/canvas/console-record-webgl2-expected.txt: Added.
- inspector/canvas/recording-webgl2-frameCount.html: Added.
- inspector/canvas/recording-webgl2-frameCount-expected.txt: Added.
- inspector/canvas/recording-webgl2-full.html: Added.
- inspector/canvas/recording-webgl2-full-expected.txt: Added.
- inspector/canvas/recording-webgl2-memoryLimit.html: Added.
- inspector/canvas/recording-webgl2-memoryLimit-expected.txt: Added.
- inspector/canvas/resources/recording-webgl2.js: Added.
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 1:19 PM Changeset in webkit [246015] by
-
- 4 edits in trunk/LayoutTests
Web Inspector: Canvas: in tests don't manually stop recording if a frame count is specified
https://bugs.webkit.org/show_bug.cgi?id=198457
<rdar://problem/48248697>
Reviewed by Joseph Pecoraro.
If a
frameCountis specified, the recording will stop by itself, so if we hit the
LastFrame, there's no need to manually stop the recording at that point. Otherwise,
stopping it early may cause the recording to think that the last frame is incomplete.
- inspector/canvas/resources/recording-utilities.js:
- inspector/canvas/recording-webgl-snapshots.html:
- inspector/canvas/recording-webgl2-snapshots.html:
- 9:19 AM Changeset in webkit [246014] by
-
- 6 edits in trunk/Source
[Apple Pay] Every PaymentCoordinator client should explicitly decide whether they support unrestricted Apple Pay
https://bugs.webkit.org/show_bug.cgi?id=198449
<rdar://problem/51038583>
Reviewed by Wenson Hsieh.
Source/WebCore:
Rather than having a default return value of true for
PaymentCoordinatorClient::supportsUnrestrictedApplePay, make it pure virtual to force each
subclass to implement an override and explicitly choose an appropriate return value.
The only two clients that did not explicitly override were the empty client and
WebKitLegacy's client, and Apple Pay was never enabled in those clients, so there is no
change in behavior.
- Modules/applepay/PaymentCoordinatorClient.h:
(WebCore::PaymentCoordinatorClient::isAlwaysOnLoggingAllowed const):
(WebCore::PaymentCoordinatorClient::supportsUnrestrictedApplePay const): Deleted.
- loader/EmptyClients.cpp:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebPaymentCoordinatorClient.h:
- WebCoreSupport/WebPaymentCoordinatorClient.mm:
(WebPaymentCoordinatorClient::supportsUnrestrictedApplePay const):