[webkit-changes] [245319] branches/safari-608.1.24-branch/Source/WebKit

2019-05-14 Thread kocsen_chung
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

2019-05-14 Thread wenson_hsieh
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;
+}
+
+
+
+
+
+ +
+
+ +

+

+ +