[webkit-changes] [245319] branches/safari-608.1.24-branch/Source/WebKit
Title: [245319] branches/safari-608.1.24-branch/Source/WebKit Revision 245319 Author kocsen_ch...@apple.com Date 2019-05-14 22:24:03 -0700 (Tue, 14 May 2019) Log Message Cherry-pick r245255. rdar://problem/50141840 Take out MediaPlayback UI assertion when any WebProcess is playing audible media https://bugs.webkit.org/show_bug.cgi?id=197798 Reviewed by Chris Dumez. To keep the system from suspending the UIProcess (and all the other constellation of processes that are necessary to play media), take a UIProcess assertion with the MediaPlayback reason whenever there is a WebContent process that is playing audible media. * Platform/spi/ios/AssertionServicesSPI.h: * UIProcess/ProcessAssertion.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updatePlayingMediaDidChange): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia): (WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia): * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::webPageMediaStateDidChange): * UIProcess/WebProcessProxy.h: * UIProcess/ios/ProcessAssertionIOS.mm: (WebKit::toBKSProcessAssertionReason): (WebKit::ProcessAssertion::ProcessAssertion): * WebProcess/WebProcess.h: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245255 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-608.1.24-branch/Source/WebKit/ChangeLog branches/safari-608.1.24-branch/Source/WebKit/Platform/spi/ios/AssertionServicesSPI.h branches/safari-608.1.24-branch/Source/WebKit/UIProcess/ProcessAssertion.h branches/safari-608.1.24-branch/Source/WebKit/UIProcess/WebPageProxy.cpp branches/safari-608.1.24-branch/Source/WebKit/UIProcess/WebProcessPool.cpp branches/safari-608.1.24-branch/Source/WebKit/UIProcess/WebProcessPool.h branches/safari-608.1.24-branch/Source/WebKit/UIProcess/WebProcessProxy.cpp branches/safari-608.1.24-branch/Source/WebKit/UIProcess/WebProcessProxy.h branches/safari-608.1.24-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm Diff Modified: branches/safari-608.1.24-branch/Source/WebKit/ChangeLog (245318 => 245319) --- branches/safari-608.1.24-branch/Source/WebKit/ChangeLog 2019-05-15 05:23:57 UTC (rev 245318) +++ branches/safari-608.1.24-branch/Source/WebKit/ChangeLog 2019-05-15 05:24:03 UTC (rev 245319) @@ -1,3 +1,62 @@ +2019-05-14 Kocsen Chung + +Cherry-pick r245255. rdar://problem/50141840 + +Take out MediaPlayback UI assertion when any WebProcess is playing audible media +https://bugs.webkit.org/show_bug.cgi?id=197798 + +Reviewed by Chris Dumez. + +To keep the system from suspending the UIProcess (and all the other constellation of processes that +are necessary to play media), take a UIProcess assertion with the MediaPlayback reason whenever there +is a WebContent process that is playing audible media. + +* Platform/spi/ios/AssertionServicesSPI.h: +* UIProcess/ProcessAssertion.h: +* UIProcess/WebPageProxy.cpp: +(WebKit::WebPageProxy::updatePlayingMediaDidChange): +* UIProcess/WebProcessPool.cpp: +(WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia): +(WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia): +* UIProcess/WebProcessPool.h: +* UIProcess/WebProcessProxy.cpp: +(WebKit::WebProcessProxy::webPageMediaStateDidChange): +* UIProcess/WebProcessProxy.h: +* UIProcess/ios/ProcessAssertionIOS.mm: +(WebKit::toBKSProcessAssertionReason): +(WebKit::ProcessAssertion::ProcessAssertion): +* WebProcess/WebProcess.h: + + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245255 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2019-05-13 Jer Noble + +Take out MediaPlayback UI assertion when any WebProcess is playing audible media +https://bugs.webkit.org/show_bug.cgi?id=197798 + +Reviewed by Chris Dumez. + +To keep the system from suspending the UIProcess (and all the other constellation of processes that +are necessary to play media), take a UIProcess assertion with the MediaPlayback reason whenever there +is a WebContent process that is playing audible media. + +* Platform/spi/ios/AssertionServicesSPI.h: +* UIProcess/ProcessAssertion.h: +* UIProcess/WebPageProxy.cpp: +(WebKit::WebPageProxy::updatePlayingMediaDidChange): +* UIProcess/WebProcessPool.cpp: +(WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia): +(WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia): +* UIProcess/WebProcessPool.h: +* UIProcess/WebProcessProxy.cpp: +(WebKit::WebProcessProxy::webPageMediaStateDidChange): +* UIProcess/WebProcessProxy.h: +* UIProcess/ios/ProcessAssertionIOS.mm: +
[webkit-changes] [245317] trunk
Title: [245317] trunk Revision 245317 Author wenson_hs...@apple.com Date 2019-05-14 21:57:56 -0700 (Tue, 14 May 2019) Log Message Missing cursor/caret showing in search field on google.com https://bugs.webkit.org/show_bug.cgi?id=197862 Reviewed by Simon Fraser. Source/WebCore: In this bug, the search field is inside of a fixed position container, which is inside of an empty "overflow: hidden" form element (the new layout test demonstrates a simple version of this). The layer of the fixed position container's renderer has an overflow clipping layer of itself, and its clipping rect is non-empty, so the heuristic initially identifies the layer as not fully clipped. However, as the heuristic ascends the RenderLayer tree, it then finds the layer for the "overflow: hidden" form element's renderer; this layer is completely clipped, which causes the heuristic to incorrectly believe that the editable element is completely clipped. To fix the bug, this patch reworks the clipping portion of the heuristic, such that we no longer need to ascend the layer tree. Instead of computing the clip rect relative to the nearest ancestor that has an overflow clip and then walking up the layer tree repeating this process, simply compute the clip rect relative to RenderView's layer, and then walk up to the parent frame and repeat if necessary. Test: editing/selection/ios/do-not-hide-selection-in-visible-field.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::isTransparentOrFullyClippedRespectingParentFrames const): LayoutTests: Add a new layout test that represents a reduced test case version of google.com's search field. * editing/selection/ios/do-not-hide-selection-in-visible-field.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/rendering/RenderLayer.cpp Added Paths trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field-expected.txt trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field.html Diff Modified: trunk/LayoutTests/ChangeLog (245316 => 245317) --- trunk/LayoutTests/ChangeLog 2019-05-15 04:00:05 UTC (rev 245316) +++ trunk/LayoutTests/ChangeLog 2019-05-15 04:57:56 UTC (rev 245317) @@ -1,3 +1,15 @@ +2019-05-14 Wenson Hsieh + +Missing cursor/caret showing in search field on google.com +https://bugs.webkit.org/show_bug.cgi?id=197862 + + +Reviewed by Simon Fraser. + +Add a new layout test that represents a reduced test case version of google.com's search field. + +* editing/selection/ios/do-not-hide-selection-in-visible-field.html: Added. + 2019-05-14 Megan Gardner Fix flakey test fast/events/autoscroll-when-input-is-offscreen.html Added: trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field-expected.txt (0 => 245317) --- trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field-expected.txt (rev 0) +++ trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field-expected.txt 2019-05-15 04:57:56 UTC (rev 245317) @@ -0,0 +1,15 @@ + +Click me +This test verifies platform selection UI is not incorrectly suppressed when the editable element is visible. To manually run the test, tap the button to focus the search field, and confirm that the caret view appears in the field. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS caretRect.top is 7 +PASS caretRect.left is 11 +PASS caretRect.width is 2 +PASS caretRect.height is 25 +PASS successfullyParsed is true + +TEST COMPLETE + Added: trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field.html (0 => 245317) --- trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field.html (rev 0) +++ trunk/LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-field.html 2019-05-15 04:57:56 UTC (rev 245317) @@ -0,0 +1,74 @@ + + + + + +html, body { +width: 100%; +height: 100%; +margin: 0; +padding: 0; +} + +form { +overflow: hidden; +} + +input, p { +font-size: 20px; +width: 300px; +} + +.fixed { +position: fixed; +width: 100%; +height: 100%; +top: 0; +left: 0; +overflow: auto; +} + +button { +position: absolute; +top: 40px; +} + + + ++ + + + +