Timeline
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):
May 31, 2019:
- 11:19 PM Changeset in webkit [246013] by
-
- 2 edits in trunk/Source/WebKit
Ensure keyboard editing is up to date
https://bugs.webkit.org/show_bug.cgi?id=198444
<rdar://problem/36311563>
Reviewed by Ryosuke Niwa.
In order for the keyboard cut/copy/undo/redo/etc buttons to be up to date
based on the state of the selection, we need to let the input delegate know when the
selection has changed.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionChanged]):
- 9:33 PM Changeset in webkit [246012] by
-
- 3 edits in trunk/Tools
TestWebKitAPI.WKWebView.LocalStorageProcessSuspends is flaky
https://bugs.webkit.org/show_bug.cgi?id=198450
Reviewed by Ryosuke Niwa.
In local-storage-process-suspends-2.html, we periodically checked local storage item and sent a message when the
item value was changed or times of check reached limit. We expected the message to be sent after network process
resumed from suspension, because that's when the item value should get updated. However, the limit we set seemed
to be not high enough, so that the message could be sent eariler than expected, when limit of check number was
reached.
We can solve this in different ways. To make the test robust, we can send the message on a storage event, which
notifies about changes in local storage.
- TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/local-storage-process-suspends-2.html:
- 9:16 PM Changeset in webkit [246011] by
-
- 2 edits in trunk/Source/WebKit
Remove outdated FIXME in StorageManager
https://bugs.webkit.org/show_bug.cgi?id=198049
Reviewed by Geoffrey Garen.
Previously StorageManager messages were dispatched and handled in the same thread, so we could perform a message
check. Now they are on different thread, and we would not be able to verify those parameters when dispatching
the message.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
- 8:20 PM Changeset in webkit [246010] by
-
- 2 edits in trunk/Tools
DragAndDropTests.DragImageLocationForLinkInSubframe fails on some iPad
https://bugs.webkit.org/show_bug.cgi?id=198447
Reviewed by Wenson Hsieh.
Give the elements an explicit 400px width to make the test always work.
- TestWebKitAPI/Tests/WebKitCocoa/link-in-iframe-and-input.html:
- 6:09 PM Changeset in webkit [246009] by
-
- 1 copy in tags/Safari-608.1.27
Tag Safari-608.1.27.
- 6:03 PM Changeset in webkit [246008] by
-
- 3 edits in trunk/Source/WebKit
Teach AuxiliaryProcess about LoadOptimizer
https://bugs.webkit.org/show_bug.cgi?id=198443
<rdar://problem/51319120>
Reviewed by Brent Fulgham.
- Shared/ios/AuxiliaryProcessIOS.mm:
(WebKit::AuxiliaryProcess::platformInitialize):
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::AuxiliaryProcess::platformInitialize):
- 6:02 PM Changeset in webkit [246007] by
-
- 7 edits in branches/safari-608.1.27-branch/Source
Versioning.
- 5:59 PM Changeset in webkit [246006] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, fix setEntryAddressCommon register usage in LLInt ASM Windows 64
https://bugs.webkit.org/show_bug.cgi?id=197979
- llint/LowLevelInterpreter.asm:
- offlineasm/x86.rb:
- 5:57 PM Changeset in webkit [246005] by
-
- 1 copy in tags/Safari-607.3.3
Tag Safari-607.3.3.
- 5:43 PM Changeset in webkit [246004] by
-
- 9 edits in trunk
Make tests that use UIHelper more robust under certain configurations
https://bugs.webkit.org/show_bug.cgi?id=198442
<rdar://problem/51301737>
Reviewed by Megan Gardner.
Tools:
For a certain device class, many tests that attempt to use UIHelper.isIOS are currently failing. We can fix this
by making theisIOScheck more robust; this patch also renamesisIOStoisIOSFamily, which is more
accurate (and consistent with the corresponding PLATFORM macro name).
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::isIOSFamily const):
LayoutTests:
Replace usages of
UIHelper.isIOSwithUIHelper.isIOSFamily.
- fast/dom/iframe-inner-size-scaling.html:
- fast/forms/datalist/datalist-show-hide.html:
- fast/forms/datalist/datalist-textinput-suggestions-order.html:
- fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad.html:
Also remove a workaround here that forces
isIOSto returntrue.
- resources/ui-helper.js:
(window.UIHelper.isIOSFamily):
(window.UIHelper.isWebKit2):
(window.UIHelper.humanSpeedDoubleTapAt):
(window.UIHelper.humanSpeedZoomByDoubleTappingAt):
(window.UIHelper.zoomByDoubleTappingAt):
(window.UIHelper.async.doubleActivateAt):
(window.UIHelper.async.doubleActivateAtSelectionStart):
(window.UIHelper.async.selectWordByDoubleTapOrClick):
(window.UIHelper.keyDown):
(window.UIHelper.deactivateFormControl):
(window.UIHelper.typeCharacter):
(window.UIHelper.inputViewBounds):
(window.UIHelper.contentOffset):
(window.UIHelper.isIOS): Deleted.
- 5:00 PM Changeset in webkit [246003] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
[PlayStation] Support internal test runner for JSC tests
https://bugs.webkit.org/show_bug.cgi?id=198386
Reviewed by Alex Christensen.
Support using our test runner with our wrapper library
to run multiple tests sequentially in one execution. With
default arguments, will run as normal, but with special
arguments will shift into this mode.
- runtime/Options.h:
Export the default values of the JSC options similar
to the values for resetting the values between tests.
- shell/PlatformPlayStation.cmake:
- shell/playstation/TestShell.cpp: Added.
(setupTestRun): Function to set up the system before starting the tests
(preTest): Function for setting up individual test
(runTest): Function to run a test execution
(postTest): Function for shutdown of individual test
(shutdownTestRun): Function for shutting down the system after test run completes.
- 4:49 PM Changeset in webkit [246002] by
-
- 23 edits1 copy2 adds in trunk
Add an option to mute audio capture automatically when page is not visible
https://bugs.webkit.org/show_bug.cgi?id=198307
Reviewed by Eric Carlson.
Source/WebCore:
Reuse video capture mechanism for audio capture.
In case document gets in the background, interrupt the audio track if the audio factory requires it.
CoreAudioCaptureSourceIOS requires the audio source be interrupted if the app has not the right background mode.
It also allows interrupting the audio capture based on a runtime flag.
Add a runtime flag to control this.
Internals API is used to set it for test purposes, off by default.
For regular cases, the runtime flag is set through web preferences.
Test: platform/ios/mediastream/audio-muted-in-background-tab.html
- dom/Document.cpp:
(WebCore::Document::notifyMediaCaptureOfVisibilityChanged):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::interruptAudioOnPageVisibilityChangeEnabled const):
(WebCore::RuntimeEnabledFeatures::setInterruptAudioOnPageVisibilityChangeEnabled):
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
(WebCore::RealtimeMediaSourceCenter::initializeShouldInterruptAudioOnPageVisibilityChange):
(WebCore::RealtimeMediaSourceCenter::setCapturePageState):
(WebCore::RealtimeMediaSourceCenter::visibilityDidChange):
- platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):
- platform/mediastream/RealtimeMediaSourceFactory.h:
(WebCore::AudioCaptureFactory::setAudioCapturePageState):
(WebCore::VideoCaptureFactory::setVideoCapturePageState):
- platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
- platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
(WebCore::CoreAudioCaptureSourceFactory::setAudioCapturePageState):
(WebCore::CoreAudioCaptureSourceFactoryIOS::shouldInterruptAudioOnPageVisibilityChange):
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenter::initializeShouldInterruptAudioOnPageVisibilityChange):
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setShouldInterruptAudioOnPageVisibilityChange):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Add API to set the new runtime flag.
Make source proxy factories implement this automatic muting.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _interruptAudioOnPageVisibilityChangeEnabled]):
(-[WKPreferences _setInterruptAudioOnPageVisibilityChangeEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::setAudioCapturePageState):
(WebKit::UserMediaCaptureManager::setVideoCapturePageState):
- WebProcess/cocoa/UserMediaCaptureManager.h:
LayoutTests:
- platform/ios/mediastream/audio-muted-in-background-tab-expected.txt: Added.
- platform/ios/mediastream/audio-muted-in-background-tab.html: Added.
- 4:49 PM Changeset in webkit [246001] by
-
- 3 edits in branches/safari-607-branch/Source/WebCore
Apply patch. rdar://problem/50871594
- 4:43 PM Changeset in webkit [246000] by
-
- 1 copy in tags/Safari-607.3.1.2.2
Tag Safari-607.3.1.2.2.
- 4:37 PM Changeset in webkit [245999] by
-
- 2 edits in trunk/LayoutTests
Updating expectations for failing tests
<rdar://problem/47088939>
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:36 PM Changeset in webkit [245998] by
-
- 15 edits1 copy1 move1 add in trunk
[iOS] Autocorrection menu font is Times New Roman when using font-family: UICTFontTextStyle*
https://bugs.webkit.org/show_bug.cgi?id=198427
<rdar://problem/50031825>
Reviewed by Tim Horton.
Source/WebKit:
When UICTFontTextStyle* is specified as the font-family in an editable element, text in autocorrection bubbles
always uses Times New Roman font. This is because we send a font family name, font size, and font attributes to
the UI process when computing autocorrection data for UIKit, and then assemble this information into a UIFont
object via +[UIFont fontWithFamilyName:traits:size:]. However, in the case where UICTFontTextStyle* is specified
as the font-family in CSS, the font family that we send to the UI process ends up being ".AppleSystemUIFont",
which +fontWithFamilyName:traits:size: fails to map to the system font as intended.
To fix this, we propagate font information to the UI process by encoding the UIFont itself via IPC, which
serializes the font descriptor, and then deserializes into a UIFont in the UI process. This allows the system
font to be returned in -fontForCaretSelection, which is invoked by UIKit when determining the font for the
autocorrection bubble. See below for more details.
Test: AutocorrectionTests.FontAtCaretWhenUsingUICTFontTextStyle
- Shared/ios/WebAutocorrectionData.h: Copied from Source/WebKit/UIProcess/AutoCorrectionCallback.h.
- Shared/ios/WebAutocorrectionData.mm: Renamed from Source/WebKit/UIProcess/AutoCorrectionCallback.h.
(WebKit::WebAutocorrectionData::encode const):
(WebKit::WebAutocorrectionData::decode):
Introduce WebAutocorrectionData, a struct containing information used to show autocorrection UI on iOS (i.e.
highlights and the bubble). This consists of a list of rects, along with a UIFont.
- SourcesCocoa.txt:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
Refactor requestAutocorrectionData to request a WebAutocorrectionData instead, and also use the new async IPC
reply mechanism.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView fontForCaretSelection]):
Grab the UIFont directly from the WebAutocorrectionData. Also, address a FIXME by scaling the font size by the
content scale.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::requestAutocorrectionData):
(WebKit::WebPageProxy::autocorrectionDataCallback): Deleted.
(WebKit::WebPageProxy::autocorrectionContextCallback): Deleted.
Remove some IPC callbacks that are now unused.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestAutocorrectionData):
Tools:
Add a new API test to verify that -fontForCaretSelection returns the system font when using UICTFontTextStyle
in an editable web view.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm: Added.
(-[TestWKWebView autocorrectionRectsForString:]):
(checkCGRectIsEqualToCGRectWithLogging):
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/ios/UIKitSPI.h:
- 4:25 PM Changeset in webkit [245997] by
-
- 9 edits in branches/safari-608.1.27-branch
Revert r245943. rdar://problem/51244662
- 4:24 PM Changeset in webkit [245996] by
-
- 2 edits in branches/safari-608.1.27-branch/Source/WebKit
Revert r245899. rdar://problem/51316898
- 4:22 PM Changeset in webkit [245995] by
-
- 2 edits in trunk/LayoutTests
Detab.
- scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html:
- 4:20 PM Changeset in webkit [245994] by
-
- 2 edits in trunk/LayoutTests
[Mac WK2 Debug] Layout Test scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=197425
Unreviewed test gardening.
Speculative fix for flakey test; trigger layout inside the subframe.
- scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html:
- 4:13 PM Changeset in webkit [245993] by
-
- 3 edits2 adds in trunk
[iOS] Reveal the focused element when it's immediately above software keyboard
https://bugs.webkit.org/show_bug.cgi?id=198412
Reviewed by Wenson Hsieh.
Source/WebKit:
When _zoomToRevealFocusedElement is called with forceScroll set to NO (happens when input type is none or drawing
or when the platform is iPad), we don't force scrolling to reveal the focused element when it's entirely visible.
This can be misleading in cases where there is more content right beneath it relevant for editing operations.
Zoom & scroll to reveal the focused element when the said element is within 50px of the software keyboard.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
LayoutTests:
Added a regression test. Note that this test always passes on non-iPad platforms either
before or after this patch as _zoomToRevealFocusedElement forces scrolling in that case.
- fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad-expected.txt: Added.
- fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad.html: Added.
- 4:10 PM Changeset in webkit [245992] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r245899.
Seems to be causing crashes on iosmac
Reverted changeset:
"[iOS] UIProcess' background task expiration handler may get
called after the app is foreground again"
https://bugs.webkit.org/show_bug.cgi?id=198380
https://trac.webkit.org/changeset/245899
- 3:53 PM Changeset in webkit [245991] by
-
- 11 edits in trunk
Web Inspector: CSS Changes: modifications aren't shared for rules that match multiple elements
https://bugs.webkit.org/show_bug.cgi?id=195264
<rdar://problem/48550023>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
This patch fixes several cases when the diff was incorrect.
- Perform diff based on CSSProperty content (name, value, and enabled property) instead of strict equality of CSSProperty instances.
- Copy all initial CSSProperty instances of CSSStyleDeclaration on 1st edit.
This removes the need to update
propertieson every single edit.
- Do full diff to display modified property markers (green background) in Rules panel. This fixes a few cases when the markers were inaccurate. E.g. a newly added property matches removed property - no need to show the green background.
- UserInterface/Base/Utilities.js:
(Array.diffArrays):
Allow repeating items in the arrays.
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype.getModifiedStyle):
(WI.CSSManager.prototype.removeModifiedStyle):
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty):
(WI.CSSProperty.prototype.get modified):
(WI.CSSProperty.prototype.set modified):
(WI.CSSProperty.prototype.equals):
(WI.CSSProperty.prototype.clone):
(WI.CSSProperty.prototype._updateOwnerStyleText):
(WI.CSSProperty.prototype._markModified):
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.markModified):
(WI.CSSStyleDeclaration.prototype.updatePropertiesModifiedState):
- UserInterface/Views/ChangesDetailsSidebarPanel.js:
(WI.ChangesDetailsSidebarPanel.prototype._createRuleElement):
- UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
- UserInterface/Views/SpreadsheetStyleProperty.js:
LayoutTests:
Test arrays with repeating items for Array.diffArrays.
- inspector/unit-tests/array-utilities-expected.txt:
- inspector/unit-tests/array-utilities.html:
- 3:30 PM Changeset in webkit [245990] by
-
- 3 edits in trunk/LayoutTests
tile-coverage-iframe-to-zero-coverage.html flakey after r245974
https://bugs.webkit.org/show_bug.cgi?id=198438
Unreviewed test gardening.
layerTreeAsText() doesn't force layouts on subframes (webkit.org/b/198439) so
have the test force an update on the subframe via a dummy layerTreeAsText() call.
- tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:
- tiled-drawing/tile-coverage-iframe-to-zero-coverage.html:
- 3:12 PM Changeset in webkit [245989] by
-
- 3 edits6 adds in trunk
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.
- 3:02 PM Changeset in webkit [245988] by
-
- 3 edits in trunk/Tools
REGRESSION: WebKit.InteractionDeadlockAfterCrash and SynchronousTimeoutTests.UnresponsivePageDoesNotCausePositionInformationToHangUI API tests are failing
https://bugs.webkit.org/show_bug.cgi?id=198432
<rdar://problem/51266033>
Reviewed by Wenson Hsieh.
- TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm:
(TEST):
(recursiveFindHighlightLongPressRecognizer): Deleted.
- TestWebKitAPI/Tests/ios/SynchronousTimeoutTests.mm:
(TestWebKitAPI::TEST):
(TestWebKitAPI::recursiveFindHighlightLongPressRecognizer): Deleted.
- 2:56 PM Changeset in webkit [245987] by
-
- 6 edits in trunk/Source
Some WeakPtr typedef cleanup
https://bugs.webkit.org/show_bug.cgi?id=198431
Reviewed by Chris Dumez.
Use "using" instead of "typedef", since using is preferred in C++ for
better compatibility with templates.
Source/WebCore:
- Modules/indexeddb/shared/InProcessIDBServer.h:
- html/HTMLMediaElement.h:
- platform/ScrollView.h:
Source/WebKit:
- UIProcess/WebAuthentication/AuthenticatorManager.h:
- 2:32 PM Changeset in webkit [245986] by
-
- 2 edits in branches/safari-607-branch/Tools
Fix i386 build on safari-607-branch
<rdar://problem/50625279>
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
We need to check WK_API_ENABLED on the branch.
- 2:31 PM Changeset in webkit [245985] by
-
- 3 edits6 deletes in branches/safari-608.1.27-branch
Revert r245953. rdar://problem/51314019
- 2:11 PM Changeset in webkit [245984] by
-
- 3 edits6 deletes in trunk
Unreviewed, rolling out r245953.
https://bugs.webkit.org/show_bug.cgi?id=198436
Broke quip (Requested by rniwa on #webkit).
Reverted changeset:
"iOS: Main frame should be scrollable when pinch zoomed or
software keyboard is up"
https://bugs.webkit.org/show_bug.cgi?id=198244
https://trac.webkit.org/changeset/245953
- 1:56 PM Changeset in webkit [245983] by
-
- 4 edits in trunk
URLParser::parseIPv6Host should properly parse 0's around compression
https://bugs.webkit.org/show_bug.cgi?id=198424
Reviewed by Tim Horton.
Source/WTF:
- wtf/URLParser.cpp:
(WTF::URLParser::parseIPv6Host):
Tools:
- TestWebKitAPI/Tests/WTF/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- 1:55 PM Changeset in webkit [245982] by
-
- 4 edits in trunk
URLParser::parseHostAndPort should not allow non-port characters after an ipv6 host
https://bugs.webkit.org/show_bug.cgi?id=198428
<rdar://problem/51209196>
Reviewed by Tim Horton.
Source/WTF:
This matches Chrome and Firefox.
- wtf/URLParser.cpp:
(WTF::URLParser::parseHostAndPort):
Tools:
- TestWebKitAPI/Tests/WTF/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- 1:52 PM Changeset in webkit [245981] by
-
- 2 edits in trunk/Tools
run-benchmark should report an error if the argument to --build-directory is bogus
https://bugs.webkit.org/show_bug.cgi?id=198316
Reviewed by Ryosuke Niwa.
'run-benchmark' should not fallback to system safari when browser or browser build path is
specified but not valid.
Add a run-time check to ensure at least one of the resource from build directory is opened by
Safari when build directory is specified.
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.launch_url): Raise an exception when browser or browser build path is
specified but not valid.
- 1:23 PM Changeset in webkit [245980] by
-
- 2 edits in trunk/Source/WebCore
Inserting a newline in contenteditable causes two characters to be added instead of one
https://bugs.webkit.org/show_bug.cgi?id=197894
<rdar://problems/49700998>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-05-31
Reviewed by Chris Fleizach.
No new test is necessary since this is a comment change.
Removed radar reference from code.
- editing/Editing.cpp:
(WebCore::visiblePositionForIndexUsingCharacterIterator):
- 1:00 PM Changeset in webkit [245979] by
-
- 43 edits4 adds in trunk
Optionally respect device management restrictions when loading from the network
https://bugs.webkit.org/show_bug.cgi?id=198318
<rdar://problem/44263806>
Reviewed by Alex Christensen.
Source/WebCore:
- en.lproj/Localizable.strings:
Source/WebKit:
- Configurations/Network-iOS.entitlements:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
Add some entitlements and sandbox holes required to talk to DeviceManagement.
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::wasBlockedByRestrictions):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::wasBlockedByRestrictions):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::wasBlockedByRestrictions):
- NetworkProcess/PingLoad.h:
- Shared/WebErrors.cpp:
(WebKit::wasBlockedByRestrictionsError):
- Shared/WebErrors.h:
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::create):
(WebKit::NetworkDataTask::failureTimerFired):
- NetworkProcess/NetworkDataTask.h:
- Shared/API/APIError.h:
- Shared/API/c/WKErrorRef.cpp:
(WKErrorGetErrorCode):
- Shared/API/c/WKErrorRef.h:
Plumb a new error for loads that are blocked by device management restrictions.
- NetworkProcess/NetworkLoadParameters.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
Plumb a new bit that indicates whether a load is for the main resource of a frame.
We will only apply device management restrictions to main resources.
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
Plumb a new bit indicating whether a network session should respect device mangement
restrictions.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::resume):
Defer resuming the load until we have a reply from DeviceManagement framework
about whether the URL should be blocked. If it is blocked, instead fail the load.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::deviceManagementPolicyMonitor):
Cache a single DMFWebsitePolicyMonitor instance per NetworkSession.
- UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
The default data store is persistent; its configuration should reflect that.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setAllowsAnySSLCertificateForServiceWorker:]): Style.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _initWithConfiguration:]):
Make it possible to create a non-persistent WKWebsiteDataStore from a
configuration, and ensure that it does not have any persistent storage directories set.
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration init]):
(-[_WKWebsiteDataStoreConfiguration initWithNonPersistentConfiguration]):
(-[_WKWebsiteDataStoreConfiguration isPersistent]):
(-[_WKWebsiteDataStoreConfiguration _setWebStorageDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _setIndexedDBDatabaseDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _setWebSQLDatabaseDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _setCookieStorageFile:]):
(-[_WKWebsiteDataStoreConfiguration _setResourceLoadStatisticsDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _setCacheStorageDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _setServiceWorkerRegistrationDirectory:]):
(-[_WKWebsiteDataStoreConfiguration deviceManagementRestrictionsEnabled]):
(-[_WKWebsiteDataStoreConfiguration setDeviceManagementRestrictionsEnabled:]):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::isPersistent const):
(WebKit::WebsiteDataStoreConfiguration::setPersistent):
(WebKit::WebsiteDataStoreConfiguration::perOriginStorageQuota const):
(WebKit::WebsiteDataStoreConfiguration::deviceManagementRestrictionsEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setDeviceManagementRestrictionsEnabled):
(WebKit::WebsiteDataStoreConfiguration::perOriginStorageQuota): Deleted.
Make it possible to create a _WKWebsiteDataStoreConfiguration that will create a non-persistent
data store. Add a bit to _WKWebsiteDataStoreConfiguration that controls whether the network
session will respect device management restrictions.
- WebKit.xcodeproj/project.pbxproj:
- WebKit/NetworkProcess/cocoa/DeviceManagementSoftLink.h:
- WebKit/NetworkProcess/cocoa/DeviceManagementSoftLink.mm:
- WebKit/Platform/spi/Cocoa/DeviceManagementSPI.h:
Add some soft-linking and SPI headers.
Source/WTF:
- wtf/Platform.h:
Add a HAVE flag for DeviceManagement.framework.
It does exist in the simulator, but does not function; pretend it doesn't exist.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/DeviceManagementRestrictions.mm: Added.
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
Clone a test that tests non-persistent data stores and ensure
that it works if the data store is created via a configuration as well.
Add a test that ensures that you can't create a data store configuration
with an invalid set of options.
Add a test that device management restrictions (when mocked) correctly
fail the load with a new, appropriate error.
- 12:49 PM Changeset in webkit [245978] by
-
- 9 edits in trunk
Unreviewed, rolling out r245943.
Caused API test WKWebView.LocalStorageProcessSuspends to fail
on release bots.
Reverted changeset:
"WKWebsiteDataStore API fails to fetch web storage data for
non-persistent data store"
https://bugs.webkit.org/show_bug.cgi?id=198317
https://trac.webkit.org/changeset/245943
- 12:07 PM Changeset in webkit [245977] by
-
- 6 edits4 adds in trunk
Move code that sets compositing paint phases into a single function
https://bugs.webkit.org/show_bug.cgi?id=198420
Reviewed by Zalan Bujtas.
Source/WebCore:
To compute the correct paint phases for the various GraphicsLayers in a RenderLayerBacking,
we have to know which set of layers we've created (m_scrollContainerLayer, m_foregroundLayer etc).
So move the code that sets phases into a single function which is called when that
set of layers changes.
The test dumps paint phases for a stacking-context-composited scroller with a negative z-index child.
Also have GraphicsLayer::setPaintingPhase() trigger the necessary repaint when the paint phase changes.
Test: compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setPaintingPhase):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setPaintingPhase): Deleted.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateForegroundLayer):
(WebCore::RenderLayerBacking::updateBackgroundLayer):
(WebCore::RenderLayerBacking::updateMaskingLayer):
(WebCore::RenderLayerBacking::updateScrollingLayers):
(WebCore::RenderLayerBacking::updatePaintingPhases):
(WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer const): Deleted.
- rendering/RenderLayerBacking.h:
LayoutTests:
- compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt: Added.
- compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html: Added.
- platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt: Added.
- platform/mac-wk1/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt: Added.
- 12:05 PM Changeset in webkit [245976] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Timelines: CPU: gray (?) and (x) should be white
https://bugs.webkit.org/show_bug.cgi?id=198394
Reviewed by Joseph Pecoraro.
- UserInterface/Views/Variables.css:
(@media (prefers-color-scheme: dark)):
Remove the dark mode override for--gray-foreground-color, as the defaultwhiteis a
better contrast.
- 11:56 AM Changeset in webkit [245975] by
-
- 2 edits in trunk/Tools
WebKitTestRunner sometimes freezes under -[NSWindow release]
https://bugs.webkit.org/show_bug.cgi?id=198422
Reviewed by Tim Horton.
The window remains key until it's out of the allWindows vector, and AppKit is not
happy about deallocating key windows. Fixed by updating allWindows in -close
instead of -release.
Added isMainFrame assertions in code that manipulates allWindows for a good measure.
- WebKitTestRunner/mac/WebKitTestRunnerWindow.mm:
(+[WebKitTestRunnerWindow _WTR_keyWindow]):
(-[WebKitTestRunnerWindow initWithContentRect:styleMask:backing:defer:]):
(-[WebKitTestRunnerWindow close]):
(-[WebKitTestRunnerWindow dealloc]):
- 11:55 AM Changeset in webkit [245974] by
-
- 8 edits in trunk
[Async overflow scrolling] Flashes of missing layer backing store when scrolling an overflow
https://bugs.webkit.org/show_bug.cgi?id=198363
Reviewed by Tim Horton.
Source/WebCore:
When the contents of an overflow:scroll did not use a tiled backing layer, GraphicsLayerCA::adjustCoverageRect()
would do no coverage rect expansion for scrolling, which meant that backing store attachment for
descendant layers would just use the visible rect from their scrolling ancestor which made it easy
to scroll into view a layer whose backing store was not yet attached.
Since this only affects non-tiled layers, re-use the generic TileController::adjustTileCoverageRect()
code by moving it down to GraphicsLayer, and call it for a scrolled contents layer which does not
have tiled backing.
Tested by fast/scrolling/ios/reconcile-layer-position-recursive.html
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::adjustCoverageRectForMovement):
- platform/graphics/GraphicsLayer.h:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::adjustCoverageRect const):
- platform/graphics/ca/TileController.cpp:
(WebCore::TileController::adjustTileCoverageRect):
LayoutTests:
Reset results.
- fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
- tiled-drawing/tiled-backing-in-window-expected.txt:
- 11:16 AM Changeset in webkit [245973] by
-
- 3 edits2 adds in trunk
[WHLSL] Make sure we properly emit code for "&*x"
https://bugs.webkit.org/show_bug.cgi?id=198198
Reviewed by Myles C. Maxfield.
Source/WebCore:
I ran into this when trying to test zero-filling code, so let's just fix it.
The issue is that the property resolver ends up emitting code that looks like
"&*x". The semantics of this are such that it should result in just x.
However, we emitted Metal code in such a way where we'd end up with a pointer
to a temporary value. To fix this, DereferenceExpression will emit code that results
in a reference type. Then, MakePointerExpression will correctly return the
pointer backing that reference type.
Because of this, we also no longer need to pattern match the lhs of assignment
expressions since we will now be assigning to a reference type.
Test: webgpu/whlsl-store-to-property-updates-properly.html
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
LayoutTests:
- webgpu/whlsl-store-to-property-updates-properly-expected.html: Added.
- webgpu/whlsl-store-to-property-updates-properly.html: Added.
- 10:11 AM Changeset in webkit [245972] by
-
- 8 edits in trunk
Some WeakPtr cleanup
https://bugs.webkit.org/show_bug.cgi?id=198390
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::storageQuotaManagerGetter): Dereference the weak pointer
directly instead of using a weak pointer to guard a raw pointer. It's
safer and more idiomatic to use weak pointers directly.
- Modules/indexeddb/shared/InProcessIDBServer.h: Use our base clase
weakPtrFactory() definition instead of writing our own. Declare
WeakValueType so we can dereference the weak pointer we create (above).
Source/WTF:
- wtf/WeakHashSet.h:
(WTF::HashTraits<Ref<WeakPtrImpl>>::isReleasedWeakValue):
(WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
Updated for rename to WeakPtrImpl.
(WTF::WeakHashSet::WeakHashSetConstIterator::get const): Updated for new
get() interface. Also, switched to iterator operator* to help clarify
the double dereference here.
(WTF::WeakHashSet::add):
(WTF::WeakHashSet::remove):
(WTF::WeakHashSet::contains const):
(WTF::WeakHashSet::computeSize const):
(WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Deleted.
Updated for rename to WeakPtrImpl.
- wtf/WeakPtr.h:
(WTF::WeakPtrImpl::create):
(WTF::WeakPtrImpl::~WeakPtrImpl): Renamed WeakReference to WeakPtrImpl.
Now we don't need a comment explaining that this class is the backing
implementation of WeakPtr.
(WTF::WeakPtrImpl::get): Return the pointer type we stored, rather than
the pointer type requested by our client. It's a little too surprising
for a field to store one pointer type and load another.
(WTF::WeakPtrImpl::WeakPtrImpl): Fixed a theoretical type safety bug.
Make sure to store T::WeakValueType* instead of T*, since they might
not be the same pointer value. (In practice, T and T::WeakValueType*
are always the same type in this constructor because WeakPtrFactory
makes them so, but it's best not to depend on implementation details
across classes.)
(WTF::WeakPtr::get const): Updated for new get() interface.
(WTF::WeakPtr::operator bool const):
(WTF::WeakPtr::operator=):
(WTF::WeakPtr::clear):
(WTF::WeakPtr::WeakPtr): Updated for WeakPtrImpl rename.
(WTF::WeakPtrFactory::~WeakPtrFactory): Updated for WeakPtrImpl rename.
(WTF::WeakPtrFactory::createWeakPtr const): ASSERT that the passed-in
pointer is equal to the stored pointer. As a space optimization, we
require our client to remind us what we point to each time a weak
pointer is created -- but nothing guarantees that our client will do
this correctly.
(WTF::WeakPtrFactory::revokeAll): Updated for WeakPtrImpl rename.
(WTF::CanMakeWeakPtr::weakPtrFactory const):
(WTF::CanMakeWeakPtr::weakPtrFactory): Use idiomatic accessor naming.
(WTF::weak_ptr_impl_cast): Fixed a theoretical type safety bug.
Previously, if Base and Derived both inherited CanMakeWeakPtr, and
you casted WeakPtr<Base> to WeakPtr<Derived> (or vice versa), and
casting Base <-> Derived required pointer fixup, the previous
compile-time check would accept the cast, even though the stored pointer
would be wrong.
(WTF::WeakPtr<T>::WeakPtr):
(WTF::=):
(WTF::makeWeakPtr):
(WTF::WeakReference::create): Deleted.
(WTF::WeakReference::~WeakReference): Deleted.
(WTF::WeakReference::get const): Deleted.
(WTF::WeakReference::operator bool const): Deleted.
(WTF::WeakReference::clear): Deleted.
(WTF::WeakReference::WeakReference): Deleted.
(WTF::weak_reference_cast): Deleted. Updated for rename to WeakPtrImpl.
Don't export WeakPtrImpl because it's an implmenetation detail and
it shouldn't be easy to use outside WTF.
Tools:
- TestWebKitAPI/Tests/WTF/WeakPtr.cpp: Updated for rename.
- 10:09 AM Changeset in webkit [245971] by
-
- 23 edits3 deletes in branches/safari-608.1.27-branch
Revert r245946. rdar://problem/47390407
- 10:05 AM Changeset in webkit [245970] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingContext::LineLayout::processInlineItemsForLine should create and destroy Line.
https://bugs.webkit.org/show_bug.cgi?id=198419
<rdar://problem/51300837>
Reviewed by Antti Koivisto.
This is in preparation for using "createInlineRunsForLine" logic when computing preferred width.
- Line object is now constructed and destroyed in processInlineItemsForLine (caller does not need to know about Line).
- processInlineItemsForLine returns a Line::Content instance.
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput):
(WebCore::Layout::constructLine):
(WebCore::Layout::InlineFormattingContext::LineLayout::processInlineItemsForLine const):
(WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createLine const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::createInlineRunsForLine const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::processInlineRuns const): Deleted.
- 9:58 AM Changeset in webkit [245969] by
-
- 1 copy in branches/safari-608.1.27-branch
New branch.
- 9:56 AM Changeset in webkit [245968] by
-
- 23 edits in trunk
[CMake] Add WebKit::WTF target
https://bugs.webkit.org/show_bug.cgi?id=198400
Reviewed by Konstantin Tokarev.
Source/JavaScriptCore:
Use the WebKit::WTF target.
- CMakeLists.txt:
- shell/CMakeLists.txt:
Source/WebCore:
Use the WebKit::WTF target.
- PlatformWin.cmake:
Source/WebDriver:
Use the WebKit::WTF target.
- CMakeLists.txt:
Source/WebKitLegacy:
Use the WebKit::WTF target.
- PlatformWin.cmake:
Source/WebKitLegacy/win:
Use the WebKit::WTF target.
- WebKitQuartzCoreAdditions/CMakeLists.txt:
Source/WTF:
Create the WebKit::WTF target and use that to propagate headers. Use
WEBKIT_COPY_FILES instead of WEBKIT_MAKE_FORWARDING_HEADERS.
- wtf/CMakeLists.txt:
Tools:
Use the WebKit::WTF target.
- DumpRenderTree/CMakeLists.txt:
- DumpRenderTree/PlatformWin.cmake:
- MiniBrowser/win/CMakeLists.txt:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/PlatformWin.cmake:
- WebKitTestRunner/PlatformGTK.cmake:
- WebKitTestRunner/PlatformWin.cmake:
- 9:48 AM Changeset in webkit [245967] by
-
- 7 edits in trunk/Source
Versioning.
- 9:37 AM Changeset in webkit [245966] by
-
- 3 edits3 adds in trunk
Always min-width should win over max-width.
https://bugs.webkit.org/show_bug.cgi?id=198032
Reviewed by Darin Adler.
In the spec, https://www.w3.org/TR/CSS21/visudet.html#min-max-widths,
the following algorithm describes how the two properties influence
the used value of the 'width' property.
- The tentative used width is calculated (without 'min-width' and 'max-width')
following the rules under "Calculating widths and margins" above.
- If the tentative used width is greater than 'max-width',
the rules above are applied again, but this time using the computed value of 'max-width'
as the computed value for 'width'.
- If the resulting width is smaller than 'min-width', the rules above are applied again,
but this time using the value of 'min-width' as the computed value for 'width'.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-sizing/min-width-max-width-precedence-expected.txt: Added.
- web-platform-tests/css/css-sizing/min-width-max-width-precedence.html: Added.
Source/WebCore:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths):
- 9:19 AM Changeset in webkit [245965] by
-
- 2 edits in trunk/Tools
REGRESSION (Safari 12): SafariForWebkitDevelopment won't load any pages on Mojave, nightly builds broken
https://bugs.webkit.org/show_bug.cgi?id=194808
<rdar://problem/48278497>
Reviewed by Darin Adler.
I verified that a daily build downloaded an run on Mojave does not work without this and works with this.
- WebKitArchiveSupport/run-webkit-archive:
(set_dyld_framework_path):
Also set XPC variants of needed environment variables.
- 8:20 AM Changeset in webkit [245964] by
-
- 23 edits3 deletes in trunk
Unreviewed, rolling out r245946.
Breaks the watchOS build.
Reverted changeset:
"Add an option to mute audio capture automatically when page
is not visible"
https://bugs.webkit.org/show_bug.cgi?id=198307
https://trac.webkit.org/changeset/245946
- 7:42 AM Changeset in webkit [245963] by
-
- 2 edits in trunk/LayoutTests
[Win10] Some tests are failing only on specific machines
https://bugs.webkit.org/show_bug.cgi?id=197509
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:43 AM Changeset in webkit [245962] by
-
- 5 edits in trunk/Source/WebCore
[LFC[IFC] Do not reuse the same Line object.
https://bugs.webkit.org/show_bug.cgi?id=198366
<rdar://problem/51250279>
Reviewed by Antti Koivisto.
This is in preparation for constructing Line inside createInlineRunsForLine and return Line::Content.
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::LineLayout::createLine const):
(WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::LineLayout::processInlineRuns const):
(WebCore::Layout::InlineFormattingContext::LineLayout::initializeLine const): Deleted.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Line):
(WebCore::Layout::m_lineLogicalWidth):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::moveLogicalLeft):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):
(WebCore::Layout::Line::reset): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::hasContent const):
- 5:58 AM Changeset in webkit [245961] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Move final runs to a dedicated class (Line::Content)
https://bugs.webkit.org/show_bug.cgi?id=198360
<rdar://problem/51247717>
Reviewed by Antti Koivisto.
It decouples the line and the final line content. So when we process the runs after closing the line,
LineContent should be able to answer all the content and geometry related questions.
This is also in preparation for
transfering the ownership of the line content when calling Line::close().
- WebCore.xcodeproj/project.pbxproj:
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::LineLayout::processInlineRuns const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Content::isVisuallyEmpty const):
(WebCore::Layout::Line::Content::Run::Run):
(WebCore::Layout::Line::reset):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::moveLogicalLeft):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):
(WebCore::Layout::Line::LineItem::LineItem): Deleted.
(WebCore::Layout::Line::hasContent const): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Content::runs const):
(WebCore::Layout::Line::Content::isEmpty const):
(WebCore::Layout::Line::Content::logicalTop const):
(WebCore::Layout::Line::Content::logicalLeft const):
(WebCore::Layout::Line::Content::logicalRight const):
(WebCore::Layout::Line::Content::logicalBottom const):
(WebCore::Layout::Line::Content::logicalWidth const):
(WebCore::Layout::Line::Content::logicalHeight const):
(WebCore::Layout::Line::Content::setLogicalRect):
(WebCore::Layout::Line::Content::runs):
(WebCore::Layout::Line::hasContent const):
(WebCore::Layout::Line::availableWidth const):
(WebCore::Layout::Line::contentLogicalRight const):
(WebCore::Layout::Line::logicalTop const):
(WebCore::Layout::Line::logicalBottom const):
(WebCore::Layout::Line::logicalLeft const):
(WebCore::Layout::Line::logicalRight const):
(WebCore::Layout::Line::logicalWidth const):
(WebCore::Layout::Line::logicalHeight const):
(WebCore::Layout::Line::contentLogicalWidth const):
- page/FrameViewLayoutContext.cpp:
(WebCore::layoutUsingFormattingContext):
- 5:29 AM Changeset in webkit [245960] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed. Fix typo of |ComputedStyleExtractor::valueForPropertyInStyle|
to follow camel case function naming style.
No behavioral changes.
Patch by Joonghun Park <jh718.park@samsung.com> on 2019-05-31
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle): Deleted.
- css/CSSComputedStyleDeclaration.h:
- rendering/style/RenderStyle.cpp:
(WebCore::changedCustomPaintWatchedProperty):
- 4:39 AM Changeset in webkit [245959] by
-
- 2 edits in trunk/Tools
[WPE] Build at-spi2-core without x11 support in jhbuild
https://bugs.webkit.org/show_bug.cgi?id=198411
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-05-31
Reviewed by Philippe Normand.
- wpe/jhbuild.modules:
- 4:03 AM Changeset in webkit [245958] by
-
- 4 edits in trunk/Source/WebCore
REGRESSION (r245396): Page load time performance regression
https://bugs.webkit.org/show_bug.cgi?id=198382
Reviewed by Simon Fraser.
Delay the scheduling of a rendering update by 500ms when a new
IntersectionObserver target is added during page load. This addresses
a page load time regression from r245396, which immediately scheduled a
rendering update when a target is added. Note that even with this change,
if anything else triggers a rendering update before the 500ms delay expires,
intersection observations will be updated during that rendering update.
Covered by intersection-observer/initial-observation.html
- dom/Document.cpp:
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::scheduleInitialIntersectionObservationUpdate):
- dom/Document.h:
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::observe):
- 1:17 AM Changeset in webkit [245957] by
-
- 3 edits in trunk/Source/WebKit
[GTK] WPERenderer: ensure we complete the last frame when leaving AC mode
https://bugs.webkit.org/show_bug.cgi?id=198372
Reviewed by Michael Catanzaro.
It can happen that we leave AC mode after a new image is received from the web process but before it's
committed. It can also happen that we receive a new image from the web process right after we have left AC
mode. In both cases we need to complete the frame to ensure we don't leave the wayland compositor waiting
forever for a frame to be completed.
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::update): Complete any pending image when a new surface is used.
(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Complete the given image and return early if we already
left AC mode.
- UIProcess/gtk/AcceleratedBackingStoreWayland.h:
- 1:15 AM Changeset in webkit [245956] by
-
- 3 edits in trunk/Source/WebKit
[CoordinatedGraphics] WPERenderer: do not release the host file descritor when initializing the render target
https://bugs.webkit.org/show_bug.cgi?id=198371
Reviewed by Michael Catanzaro.
We are assuming that there will always be only one target for a web page. In the GTK port we destroy the render
target when leaving AC mode, and a new one is created when re-entering AC mode. Since the file descriptor is
released on the first target and adopted by libwpe, the second target passes -1 as host fd to libwpe, and the
new surface created by the target is not properly registered in the wayland compositor. That means that frame
requests for the new target are simply ignored by the wayland compositor, it returns early on surfacxe frame
when the surface doesn't have a view backend client.
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::hostFileDescriptor const): Rename it and make it const.
- WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.cpp:
(WebKit::AcceleratedSurfaceLibWPE::initialize): Pass a duplicated file descriptor to
wpe_renderer_backend_egl_target_create().
- 1:13 AM Changeset in webkit [245955] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Fix memory leak introduced in r245807
https://bugs.webkit.org/show_bug.cgi?id=198369
Reviewed by Michael Catanzaro.
We should destroy the wpe_view_backend_exportable_fdo created in AcceleratedBackingStoreWayland.
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland):
- 1:12 AM Changeset in webkit [245954] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r244182): [GTK] Web view no longer updated after re-entering AC mode
https://bugs.webkit.org/show_bug.cgi?id=198367
Reviewed by Sergio Villar Senin.
This happens because we leave accelerated compositing mode when a rendering update is scheduled in
RenderingUpdateScheduler. The ThreadedDisplayRefreshMonitor is destroyed without completing the
frame, so that the RenderingUpdateScheduler is left scheduled forever, ignoring any new schedule request. We
need to ensure we complete the frame request before destroying the display refresh monitor to leave the
RenderingUpdateScheduler in a consistent state.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::invalidate):
- 12:25 AM Changeset in webkit [245953] by
-
- 3 edits6 adds in trunk
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.