|
|
Chromium Code Reviews|
Created:
4 years, 11 months ago by chrishtr Modified:
4 years, 11 months ago Reviewers:
leviw_travelin_and_unemployed CC:
blink-reviews, blink-reviews-api_chromium.org, chromium-reviews, dglazkov+blink Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionUpdate lifecycle phases when a WebView is resized.
Previously, the lifecycle update was deferred, and the WebWidgetClient was
notified that a lifecycle update is necessary. This is bad because:
a) It appears unnecessary; why not just advance the lifecycle now?
b) It may cause a bug: the WebView may belong to a parent WebView (e.g. in the case
of a webview plugin), which can be resized during updating of widgets of the parent
webview. This then results in a lifecycle violation for the parent, because layout
cannot be dirtied after layout is clean when processing the lifecycle.
BUG=545039
Committed: https://crrev.com/0327d2cadba88be176486ebc56f4eefbc62dc773
Cr-Commit-Position: refs/heads/master@{#369678}
Patch Set 1 #Patch Set 2 : #
Total comments: 1
Messages
Total messages: 23 (11 generated)
Description was changed from ========== none BUG= ========== to ========== Update lifecycle phases when a WebView is resized. BUG=545039 ==========
chrishtr@chromium.org changed reviewers: + leviw@chromium.org
Can you add to the description about what we think is going on here and why this will fix it? LGTM.
Description was changed from ========== Update lifecycle phases when a WebView is resized. BUG=545039 ========== to ========== Update lifecycle phases when a WebView is resized. Previously, the lifecycle update was deferred, and the WebWidgetClient was notified that a lifecycle update is necessary. This is bad because: a) It appears unnecessary; why not just advance the lifecycle now? b) It may cause a bug: the WebView may belong to a parent WebView (e.g. in the case of a webview plugin), which can be resized during updating of widgets of the parent webview. This then results in a lifecycle violation for the parent, because layout cannot be dirtied after layout is clean when processing the lifecycle. BUG=545039 ==========
On 2016/01/13 at 22:11:15, leviw wrote: > Can you add to the description about what we think is going on here and why this will fix it? > > LGTM. Done.
The CQ bit was checked by chrishtr@chromium.org
Description was changed from ========== Update lifecycle phases when a WebView is resized. Previously, the lifecycle update was deferred, and the WebWidgetClient was notified that a lifecycle update is necessary. This is bad because: a) It appears unnecessary; why not just advance the lifecycle now? b) It may cause a bug: the WebView may belong to a parent WebView (e.g. in the case of a webview plugin), which can be resized during updating of widgets of the parent webview. This then results in a lifecycle violation for the parent, because layout cannot be dirtied after layout is clean when processing the lifecycle. BUG=545039 ========== to ========== Update lifecycle phases when a WebView is resized. Previously, the lifecycle update was deferred, and the WebWidgetClient was notified that a lifecycle update is necessary. This is bad because: a) It appears unnecessary; why not just advance the lifecycle now? b) It may cause a bug: the WebView may belong to a parent WebView (e.g. in the case of a webview plugin), which can be resized during updating of widgets of the parent webview. This then results in a lifecycle violation for the parent, because layout cannot be dirtied after layout is clean when processing the lifecycle. BUG=545039 ==========
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585793002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585793002/1
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: ios_rel_device_ninja on tryserver.chromium.mac (JOB_TIMED_OUT, no build URL) mac_chromium_gn_rel on tryserver.chromium.mac (JOB_TIMED_OUT, no build URL)
The CQ bit was checked by leviw@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585793002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585793002/1
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Updated to move the lifecycle update one level in the call chain, in resizeViewWhileAnchored. Previously it updated layout but not all phases. Also reverted the removal of didUpdateLayoutSize, since updateMainFrameLayoutSize can happen in a number of ways. In general, there is extra subtlety and complexity because sometimes layout() is called without updating other lifecycle phases. We should look into addressing that.
https://codereview.chromium.org/1585793002/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/web/tests/WebFrameTest.cpp (left): https://codereview.chromium.org/1585793002/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/web/tests/WebFrameTest.cpp:4716: EXPECT_FALSE(fakeSelectionLayerTreeView.getAndResetSelectionCleared()); This change is because we are now pumping the whole frame, including updating selection.
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from leviw@chromium.org Link to the patchset: https://codereview.chromium.org/1585793002/#ps20001 (title: " ")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585793002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585793002/20001
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Update lifecycle phases when a WebView is resized. Previously, the lifecycle update was deferred, and the WebWidgetClient was notified that a lifecycle update is necessary. This is bad because: a) It appears unnecessary; why not just advance the lifecycle now? b) It may cause a bug: the WebView may belong to a parent WebView (e.g. in the case of a webview plugin), which can be resized during updating of widgets of the parent webview. This then results in a lifecycle violation for the parent, because layout cannot be dirtied after layout is clean when processing the lifecycle. BUG=545039 ========== to ========== Update lifecycle phases when a WebView is resized. Previously, the lifecycle update was deferred, and the WebWidgetClient was notified that a lifecycle update is necessary. This is bad because: a) It appears unnecessary; why not just advance the lifecycle now? b) It may cause a bug: the WebView may belong to a parent WebView (e.g. in the case of a webview plugin), which can be resized during updating of widgets of the parent webview. This then results in a lifecycle violation for the parent, because layout cannot be dirtied after layout is clean when processing the lifecycle. BUG=545039 Committed: https://crrev.com/0327d2cadba88be176486ebc56f4eefbc62dc773 Cr-Commit-Position: refs/heads/master@{#369678} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/0327d2cadba88be176486ebc56f4eefbc62dc773 Cr-Commit-Position: refs/heads/master@{#369678} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
