WICG proposal: https://discourse.wicg.io/t/proposal-display-locking/2905 WhatWG thread: https://github.com/whatwg/html/issues/4010 Github: https://github.com/chrishtr/display-locking/ This bug tracks implementation progress.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d5f146f30d4fbd276c59e3985a2dc39971c55e15 commit d5f146f30d4fbd276c59e3985a2dc39971c55e15 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Oct 04 23:47:44 2018 Add DisplayLock idl with a sample layout test. This patch adds an idl for acquireDisplayLock and DisplayLockContext with a schedule function. Also adds a naive implementation that just runs the callback immediately, which makes the layout test pass. The test should keep passing whenever we actually start implementing the feature. See the bug for description of the feature. R=chrishtr@chromium.org Bug: 882663 Change-Id: Ia8770e2ca3e6387eec3946c770d0f47cf57d23b4 Reviewed-on: https://chromium-review.googlesource.com/c/1258247 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#596927} [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/WebKit/LayoutTests/VirtualTestSuites [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/WebKit/LayoutTests/display-lock/acquire-display-lock-expected.html [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/WebKit/LayoutTests/display-lock/acquire-display-lock.html [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/WebKit/LayoutTests/virtual/display-lock/display-lock/README.txt [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/bindings/core/v8/BUILD.gn [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/BUILD.gn [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/core_idl_files.gni [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/display_lock/BUILD.gn [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/display_lock/display_lock_context.cc [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/display_lock/display_lock_context.h [add] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/display_lock/display_lock_context.idl [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/dom/element.h [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/core/dom/element.idl [modify] https://crrev.com/d5f146f30d4fbd276c59e3985a2dc39971c55e15/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7c8fc7878f280dce712d052aac4821bc67b1dcc4 commit 7c8fc7878f280dce712d052aac4821bc67b1dcc4 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Oct 18 17:39:01 2018 [DL] Add a DisplayLocking callback queue. This patch adds a callback queue to display locking context in order to process scheduled tasks in the correct order. Currently the behavior is: - Put callbacks in a queue, and post a task to run them. - While running the task, process all callbacks in the existing queue - If any of the callbacks schedule a _new_ callback, then they go into a new queue, and a new task is scheduled to run them. R=chrishtr@chromium.org Bug: 882663 Change-Id: I41dfc756bb5585d33da85746054a42cc7f5072ef Reviewed-on: https://chromium-review.googlesource.com/c/1277696 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#600814} [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/blink/renderer/core/display_lock/display_lock_context.idl [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/blink/renderer/core/dom/element_rare_data.cc [modify] https://crrev.com/7c8fc7878f280dce712d052aac4821bc67b1dcc4/third_party/blink/renderer/core/dom/element_rare_data.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/69afc0963fca341b741ad17e1706921ddf0368f8 commit 69afc0963fca341b741ad17e1706921ddf0368f8 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Nov 15 19:22:08 2018 [DL] Implement all-or-nothing display locking. This patch adds ability to delay style until display lock is committed. However, once committed it will go through all the phases and display contents synchronously. It adds the ability for the DisplayLockContext to keep track of the current state, making it easier to reason about what should happen next. As well, it adds a lifecycle update state to keep track of which lifecycle stage should occur next. This is a stepping stone towards a correct solution. R=chrishtr@chromium.org Bug: 882663 Change-Id: I660e81d9cd30604883f8f4971920a1bb19dafe67 Reviewed-on: https://chromium-review.googlesource.com/c/1334656 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#608470} [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/WebKit/LayoutTests/display-lock/context-suspend-resume-empty.html [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/dom/element.h [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/dom/element_rare_data.h [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/inspector/inspector_trace_events.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/inspector/inspector_trace_events.h [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/layout/layout_block.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/layout/layout_block_flow.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/layout/layout_box.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/layout/layout_object.h [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/layout/subtree_layout_scope.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/paint/paint_layer_painter.cc [modify] https://crrev.com/69afc0963fca341b741ad17e1706921ddf0368f8/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0697b0c24186b5c5deff58d69439ee97bfe4f84c commit 0697b0c24186b5c5deff58d69439ee97bfe4f84c Author: Vladimir Levin <vmpstr@chromium.org> Date: Tue Nov 20 14:53:16 2018 [DL] Add style recalc as one of the needed lifecycle states. This patch adds style recalc and one of the stages that the display lock prevents. Note that in order to reach the element during commit, this also adds a "style needs recalc" to the element. I'll replace these with smaller hammers after updating the layout tests, and fixing any bugs that popup there. R=chrishtr@chromium.org Bug: 882663 Change-Id: Icf8ac9c285b5e340c38addca7483b419f34ebadc Reviewed-on: https://chromium-review.googlesource.com/c/1340570 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#609700} [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/dom/document.cc [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/dom/element.h [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/dom/node.cc [modify] https://crrev.com/0697b0c24186b5c5deff58d69439ee97bfe4f84c/third_party/blink/renderer/core/dom/node.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ddc12b7ef38ce5964982162f13b9a9276ca4c189 commit ddc12b7ef38ce5964982162f13b9a9276ca4c189 Author: Vladimir Levin <vmpstr@chromium.org> Date: Tue Nov 27 19:53:37 2018 [DL] Update layout tests to be mode 2 tests. This updates the layout test and some code changes to make those tests pass to be mode 2 tests (ie append after lock). R=chrishtr@chromium.org Bug: 882663 Change-Id: I44554d486c5af0db1c680d5be719d687fd2745d2 Reviewed-on: https://chromium-review.googlesource.com/c/1344263 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Morten Stenshorne <mstensho@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#611264} [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/renderer/core/layout/layout_object.h [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/renderer/core/style/computed_style.h [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/TestExpectations [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/display-lock/context-suspend-empty-expected.html [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/display-lock/context-suspend-expected.html [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/display-lock/context-suspend-no-schedules-expected.html [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/display-lock/context-suspend-resume-expected.html [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/display-lock/context-two-suspend-resume-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-expected.txt [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-removes-container-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-removes-container-expected.txt [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-removes-container.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-display-lock-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-display-lock.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-on-inline-fails-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-on-inline-fails.html [copy] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-on-no-containment-added-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-on-no-containment-added.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-on-no-containment-fails-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/acquire-on-no-containment-fails.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-empty-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-empty.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-no-schedules-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-no-schedules.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume-empty-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume-empty.html [copy] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend.html [copy] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-two-suspend-resume-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/context-two-suspend-resume.html [copy] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/element-retained-by-context-expected.html [add] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/element-retained-by-context.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules-recursive-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules-recursive.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-1-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-1.html [copy] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-2-expected.html [rename] https://crrev.com/ddc12b7ef38ce5964982162f13b9a9276ca4c189/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-2.html [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/display-lock/simple-schedule-2-expected.html [delete] https://crrev.com/d3efa8220b06059cfa1a2ebf15c543131122071f/third_party/blink/web_tests/virtual/display-lock/display-lock/acquire-callback-throws-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ad949985f1d715372f9280d46b134ad9ceb859a7 commit ad949985f1d715372f9280d46b134ad9ceb859a7 Author: Vladimir Levin <vmpstr@chromium.org> Date: Wed Nov 28 18:40:33 2018 [DL] Don't do full layout invalidation when committing a lock. This patch mimics the style code in that it tries not to propagate the invalidation up the container chain if the element is locked for display When the lock commits and the element needs layout, then it marks the ancestor chain so that the code can reach it in layout. R=chrishtr@chromium.org, mstensho@chromium.org Bug: 882663 Change-Id: I499e91e6a14f61e5dfbeae74d3c93ac8b321e944 Reviewed-on: https://chromium-review.googlesource.com/c/1344825 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#611792} [modify] https://crrev.com/ad949985f1d715372f9280d46b134ad9ceb859a7/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/ad949985f1d715372f9280d46b134ad9ceb859a7/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/ad949985f1d715372f9280d46b134ad9ceb859a7/third_party/blink/renderer/core/layout/layout_object.cc [modify] https://crrev.com/ad949985f1d715372f9280d46b134ad9ceb859a7/third_party/blink/renderer/core/layout/layout_object.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/def8247a37e4afa0b009436d1f9554f6f03b8157 commit def8247a37e4afa0b009436d1f9554f6f03b8157 Author: Vladimir Levin <vmpstr@chromium.org> Date: Wed Nov 28 20:41:11 2018 [DL] Reject the promise if it's acquired while connected. This patch ensures that we don't accidentally use display locking in mode 1, which isn't currently supported. R=chrishtr@chromium.org Bug: 882663 Change-Id: I2be26e2573ebe93a97bd6df4c8fcb7cd6221b28c Reviewed-on: https://chromium-review.googlesource.com/c/1347102 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#611859} [modify] https://crrev.com/def8247a37e4afa0b009436d1f9554f6f03b8157/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/def8247a37e4afa0b009436d1f9554f6f03b8157/third_party/blink/renderer/core/dom/element.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2f3e8883f2ed560cd9645dbb3ea4d6d14717b417 commit 2f3e8883f2ed560cd9645dbb3ea4d6d14717b417 Author: Vladimir Levin <vmpstr@chromium.org> Date: Wed Dec 05 15:25:15 2018 [DL]: Eliminate a leak caused by active script wrappable + element ref. This patch fixes a leak: - DisplayLockContext is an active script wrappable meaning it can keep itself alive. It does so as long as we're not resolved. - It also holds a strong reference to the locked element since it can be accessed via callbacks (via context.lockedElement). The reference prevents GC from cleaning it up. However, what can happen is that we get into the disconnected state, and script loses the element reference. In that case the context is alive because it's unresolved, and it's keeping the element alive as well. Instead, when we become disconnected, we only hold on to a weak reference to the element. R=chrishtr@chromium.org Bug: 882663 Change-Id: I1106b4862444578a1290e7188b5e24b3c61761dd Reviewed-on: https://chromium-review.googlesource.com/c/1361659 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#613972} [modify] https://crrev.com/2f3e8883f2ed560cd9645dbb3ea4d6d14717b417/third_party/blink/renderer/core/BUILD.gn [modify] https://crrev.com/2f3e8883f2ed560cd9645dbb3ea4d6d14717b417/third_party/blink/renderer/core/DEPS [modify] https://crrev.com/2f3e8883f2ed560cd9645dbb3ea4d6d14717b417/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/2f3e8883f2ed560cd9645dbb3ea4d6d14717b417/third_party/blink/renderer/core/display_lock/display_lock_context.h [add] https://crrev.com/2f3e8883f2ed560cd9645dbb3ea4d6d14717b417/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/43a377d1697ac74ec5e45f739ee90becbcf253df commit 43a377d1697ac74ec5e45f739ee90becbcf253df Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Dec 06 16:15:58 2018 [DL] Don't immediately update the locked element frame rect. This patch ensures that we do layout in a pending frame rect, which is only put in place for children of the locked element during layout. After the promise is resolved, we put the pending frame rect as the active one and ensure that we relayout the previously locked box itself. This means that if the promise resolution, for example, removed the element as is the case in https://docs.google.com/document/d/1VrcVA5JyBmYn0Yi4wjPt1l9ce5Mhf-zu6o63p_mt98w/edit Then we never commit what was a pending layout and never see a flash of laid out content. R=chrishtr@chromium.org, mstensho@chromium.org Bug: 907613 , 882663 Change-Id: I7d03ae73ea4cb96c17ce8bb4162718155c2072be Reviewed-on: https://chromium-review.googlesource.com/c/1358969 Reviewed-by: Morten Stenshorne <mstensho@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#614373} [modify] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/renderer/core/layout/layout_block.cc [modify] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/renderer/core/layout/layout_box.h [modify] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/renderer/core/layout/layout_object.h [add] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/web_tests/display-lock/lock-before-append/measure-and-remove-expected.html [add] https://crrev.com/43a377d1697ac74ec5e45f739ee90becbcf253df/third_party/blink/web_tests/display-lock/lock-before-append/measure-and-remove.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/26cbade5de8d3803d9bf83ee1686022056e2d295 commit 26cbade5de8d3803d9bf83ee1686022056e2d295 Author: Vladimir Levin <vmpstr@chromium.org> Date: Tue Dec 11 16:56:36 2018 [DL] Handle forced layouts. If the layout is forced, then we temporarily allow the processing of the subtree. The locked element's frame rect still remains to be the same as at the time the lock was acquired. R=chrishtr@chromium.org, mstensho@chromium.org, futhark@chromium.org Bug: 907613 , 882663 Change-Id: I9d1f63c287a73e7a8f3cbc9cb5acc2a009ddd024 Reviewed-on: https://chromium-review.googlesource.com/c/1363957 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Rune Lillesveen <futhark@chromium.org> Reviewed-by: Morten Stenshorne <mstensho@chromium.org> Cr-Commit-Position: refs/heads/master@{#615556} [modify] https://crrev.com/26cbade5de8d3803d9bf83ee1686022056e2d295/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/26cbade5de8d3803d9bf83ee1686022056e2d295/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/26cbade5de8d3803d9bf83ee1686022056e2d295/third_party/blink/renderer/core/dom/document.cc [add] https://crrev.com/26cbade5de8d3803d9bf83ee1686022056e2d295/third_party/blink/web_tests/display-lock/lock-before-append/measure-forced-layout.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bfa40879994ac2a1370653c0f1188cb8e775d25a commit bfa40879994ac2a1370653c0f1188cb8e775d25a Author: Vladimir Levin <vmpstr@chromium.org> Date: Fri Dec 14 15:49:51 2018 [DL]: Implement a budget interface in display locking. This patch does a few things: - Removes the debugging macro code since it's losing its value. - Add a DisplayLockBudget with two implementations: - Unyielding budget that never yields and finishes everything - Strict yielding budget that always yields between every lifecycle phase. - Pulls out the lifecycle state from the context to the budget - Adds tests for the budgets. The step after this would be to implement a yielding budget, which should be a combination of strictly yielding logic with some sort of a deadline. R=chrishtr@chromium.org, mstensho@chromium.org Bug: 907619 , 882663 Change-Id: Idc75abd2334ce7b5aa6b48714b5b720d3da81b42 Reviewed-on: https://chromium-review.googlesource.com/c/1372307 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#616687} [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/BUILD.gn [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/BUILD.gn [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/display_lock_budget.cc [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/display_lock_budget.h [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/strict_yielding_display_lock_budget.cc [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/strict_yielding_display_lock_budget.h [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/unyielding_display_lock_budget.cc [add] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/display_lock/unyielding_display_lock_budget.h [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/frame/local_frame_view.cc [modify] https://crrev.com/bfa40879994ac2a1370653c0f1188cb8e775d25a/third_party/blink/renderer/core/frame/local_frame_view.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/57a3d4408f85df4286704d379d59ba85eb959b2c commit 57a3d4408f85df4286704d379d59ba85eb959b2c Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Dec 20 18:58:35 2018 [DL]: Update display locking to use the revised API. This patch replaces acquireDisplayLock() and all associated context operations with getDisplayLock() and three ops: - acquire - update - commit. R=chrishtr@chromium.org Bug: 882663 Change-Id: I7e85a3d164538f826a411498e1cddcf58a4c70a1 Reviewed-on: https://chromium-review.googlesource.com/c/1378669 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#618283} [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/bindings/core/v8/BUILD.gn [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/BUILD.gn [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/DEPS [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/core_idl_files.gni [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/display_lock/BUILD.gn [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/display_lock/display_lock_context.idl [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/display_lock/display_lock_options.idl [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/renderer/core/display_lock/display_lock_suspended_handle.cc [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/renderer/core/display_lock/display_lock_suspended_handle.h [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/dom/element.cc [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/dom/element.h [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/dom/element.idl [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/dom/element_rare_data.h [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/layout/layout_object.h [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/renderer/core/paint/paint_layer.cc [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-expected.txt [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-removes-container-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-removes-container-expected.txt [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws-removes-container.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/acquire-callback-throws.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-commit-expected.html [add] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-commit.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/acquire-display-lock-expected.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-infinite-timeout-no-commit-expected.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-infinite-timeout-no-commit.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-timeout-expected.html [add] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-timeout.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-commit-expected.html [add] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-commit.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-measure-remove-expected.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-measure-remove.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-added-containment-expected.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-added-containment.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-inline-fails-expected.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-inline-fails.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-no-containment-fails-expected.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-no-containment-fails.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-without-acquire-fails-expected.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/commit-without-acquire-fails.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-empty-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-no-schedules-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-no-schedules.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume-empty-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume-empty.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend-resume.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-suspend.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-two-suspend-resume-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/context-two-suspend-resume.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/element-retained-by-context-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/element-retained-by-context.html [modify] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/measure-forced-layout.html [add] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/measure-updated-layout.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/multiple-acquires-all-succeed-expected.html [add] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/multiple-acquires-all-succeed.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules-recursive-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules-recursive.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/multiple-schedules.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-1-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-1.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-2-expected.html [delete] https://crrev.com/c81c4ea7dd504df864602f92929bbf1764455e4a/third_party/blink/web_tests/display-lock/lock-before-append/simple-schedule-2.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/update-together-with-commit-both-succeed-expected.html [add] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/update-together-with-commit-both-succeed.html [copy] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/update-without-acquire-fails-expected.html [rename] https://crrev.com/57a3d4408f85df4286704d379d59ba85eb959b2c/third_party/blink/web_tests/display-lock/lock-before-append/update-without-acquire-fails.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194 commit 61b12f24706aeb661de0d1cd1b6e48b2e2e3b194 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Dec 20 22:10:45 2018 [DL]: Make update() not do the paint phase. This patch changes the display locking update() function to not paint. The reason for this is that update cannot release the lock on its own and painted information is not needed for any information that script might want. Note that this updates the budget to actually check if any work is required since we cannot reliably wait for any lifecycle phase. Previously we waited for paint which was always guaranteed to happen. Note that this updates the budget API to have NeedsLifecycleUpdates instead of DidFinishLifecycleUpdates, which now checks the dirty bits for any phases that might need updating. It might be nice to implement co-operative painting that stashes the paint for later use, but at this point it is only doing extra work. R=chrishtr@chromium.org Bug: 882663 Change-Id: Ie426dc75ea036b6f2e16b1b592763267957685ce Reviewed-on: https://chromium-review.googlesource.com/c/1383324 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#618351} [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/display_lock_budget.cc [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/display_lock_budget.h [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/strict_yielding_display_lock_budget.cc [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/strict_yielding_display_lock_budget.h [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/unyielding_display_lock_budget.cc [modify] https://crrev.com/61b12f24706aeb661de0d1cd1b6e48b2e2e3b194/third_party/blink/renderer/core/display_lock/unyielding_display_lock_budget.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5f4ce97e16f4a7c1d57f5685ad230923285cf549 commit 5f4ce97e16f4a7c1d57f5685ad230923285cf549 Author: Vladimir Levin <vmpstr@chromium.org> Date: Sat Dec 22 02:09:42 2018 [DL]: Ensure to reject update/commit promises on disconnected elements. This patch ensures that we reject update/commit when it happens on a disconnected element. R=chrishtr@chromium.org Bug: 882663 Change-Id: Iaee923a4f41714b437c0a2b85bbb175359a2f32c Reviewed-on: https://chromium-review.googlesource.com/c/1387944 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#618713} [modify] https://crrev.com/5f4ce97e16f4a7c1d57f5685ad230923285cf549/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/5f4ce97e16f4a7c1d57f5685ad230923285cf549/third_party/blink/renderer/core/display_lock/display_lock_context.h [add] https://crrev.com/5f4ce97e16f4a7c1d57f5685ad230923285cf549/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected-expected.html [add] https://crrev.com/5f4ce97e16f4a7c1d57f5685ad230923285cf549/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected.html [add] https://crrev.com/5f4ce97e16f4a7c1d57f5685ad230923285cf549/third_party/blink/web_tests/display-lock/lock-before-append/update-while-disconnected-expected.html [add] https://crrev.com/5f4ce97e16f4a7c1d57f5685ad230923285cf549/third_party/blink/web_tests/display-lock/lock-before-append/update-while-disconnected.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a36e6e1d9422377bb173d2c1139e66276933c51c commit a36e6e1d9422377bb173d2c1139e66276933c51c Author: Avi Drissman <avi@chromium.org> Date: Mon Dec 24 23:55:04 2018 Revert "[DL]: Ensure to reject update/commit promises on disconnected elements." This reverts commit 5f4ce97e16f4a7c1d57f5685ad230923285cf549. Reason for revert: On https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20Tests%20%28dbg%29%281%29?limit=200, virtual/display-lock/display-lock/lock-before-append/acquire-update-measure-remove.html has been failing about 90% of the time since this landed. Original change's description: > [DL]: Ensure to reject update/commit promises on disconnected elements. > > This patch ensures that we reject update/commit when it happens on > a disconnected element. > > R=​chrishtr@chromium.org > > Bug: 882663 > Change-Id: Iaee923a4f41714b437c0a2b85bbb175359a2f32c > Reviewed-on: https://chromium-review.googlesource.com/c/1387944 > Reviewed-by: Chris Harrelson <chrishtr@chromium.org> > Commit-Queue: Chris Harrelson <chrishtr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#618713} TBR=vmpstr@chromium.org,chrishtr@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 882663 Change-Id: I491a3f7db511a69f2538e3158bc4666c6f9eaf85 Reviewed-on: https://chromium-review.googlesource.com/c/1390433 Reviewed-by: Avi Drissman <avi@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/master@{#618847} [modify] https://crrev.com/a36e6e1d9422377bb173d2c1139e66276933c51c/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/a36e6e1d9422377bb173d2c1139e66276933c51c/third_party/blink/renderer/core/display_lock/display_lock_context.h [delete] https://crrev.com/92d47cc92a00edfb6aa7c7878db0565bd17ca964/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected-expected.html [delete] https://crrev.com/92d47cc92a00edfb6aa7c7878db0565bd17ca964/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected.html [delete] https://crrev.com/92d47cc92a00edfb6aa7c7878db0565bd17ca964/third_party/blink/web_tests/display-lock/lock-before-append/update-while-disconnected-expected.html [delete] https://crrev.com/92d47cc92a00edfb6aa7c7878db0565bd17ca964/third_party/blink/web_tests/display-lock/lock-before-append/update-while-disconnected.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb commit 1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb Author: Vladimir Levin <vmpstr@chromium.org> Date: Wed Jan 02 19:17:31 2019 [DL]: Add a budget that yields between lifecycles if the deadline is passed. This patch adds a yielding budget which tries to do as much work as possible within the budget. If the budget expires, it yields between lifecycles. This patch also makes this the default budget, since it's the best behavior currently implemented. See YieldingDisplayLockBudget::GetCurrentBudgetMs() for the time budgets. These were picked arbitrarily, but I think they seem reasonable. R=chrishtr@chromium.org Bug: 907619 , 882663 Change-Id: If8b3680df6b52690c238f23a319591dd8e181add Reviewed-on: https://chromium-review.googlesource.com/c/1388159 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#619453} [modify] https://crrev.com/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb/third_party/blink/renderer/core/display_lock/BUILD.gn [modify] https://crrev.com/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc [modify] https://crrev.com/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb/third_party/blink/renderer/core/display_lock/display_lock_context.h [add] https://crrev.com/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.cc [add] https://crrev.com/1266d1fbfe7bc8ea757a5a3712917b8be61a4ffb/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/40b00c4bcb4ed2ac12dd977f07aff072cca356f8 commit 40b00c4bcb4ed2ac12dd977f07aff072cca356f8 Author: Vladimir Levin <vmpstr@chromium.org> Date: Wed Jan 02 21:04:12 2019 Reland "[DL]: Ensure to reject update/commit promises on disconnected elements." This reverts commit a36e6e1d9422377bb173d2c1139e66276933c51c, which reverted the initial patch. The original patch description is: """ This patch ensures that we reject update/commit when it happens on a disconnected element. """ The changes in this CL include: - Ensuring that we can commit a disconnected element, since it just unlocks the lock - Ensuring that a timeout triggered on a disconnected element does not DCHECK (this was the cause of the revert to begin with) - Updates the test to have an explicit infinite timeout if timeout is not being tested, since bots can be slow and timeout the lock thus making tests flaky. - Adds a test for timeout on disconnected element. R=chrishtr@chromium.org Bug: 917584 , 882663 Change-Id: I6a417fde2c6bd113959128c8bb33a865c97cac8b Reviewed-on: https://chromium-review.googlesource.com/c/1393346 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#619490} [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/acquire-commit.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/acquire-infinite-timeout-no-commit.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-measure-remove.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove-expected.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-added-containment.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-inline-fails.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-no-containment-fails.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected-expected.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/measure-forced-layout.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/measure-updated-layout.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/multiple-acquires-all-succeed.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/timeout-while-disconnected-expected.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/timeout-while-disconnected.html [modify] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/update-together-with-commit-both-succeed.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/update-while-disconnected-expected.html [add] https://crrev.com/40b00c4bcb4ed2ac12dd977f07aff072cca356f8/third_party/blink/web_tests/display-lock/lock-before-append/update-while-disconnected.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c105b0e24ec489854870f181393c6ed29e82a579 commit c105b0e24ec489854870f181393c6ed29e82a579 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Jan 03 17:22:55 2019 [DL]: Add an acquire-update-disconnect-commit test. This patch adds a test that does an acquire and update, then before the update finishes it removes the element from the DOM and does a commit. This fails the update promise. This test is meant to be paired with another one already checked in where we don't call a commit and also expect the update to fail. R=chrishtr@chromium.org Bug: 882663 Change-Id: Idbe58b5162d4189da05379ed2044a0e620ce5dd9 Reviewed-on: https://chromium-review.googlesource.com/c/1393451 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#619669} [add] https://crrev.com/c105b0e24ec489854870f181393c6ed29e82a579/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove-commit-expected.html [add] https://crrev.com/c105b0e24ec489854870f181393c6ed29e82a579/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove-commit.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0b68d81fea801ff52940d48ee14fa1994bb8d889 commit 0b68d81fea801ff52940d48ee14fa1994bb8d889 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Jan 10 16:41:47 2019 [DL]: Loosen the requirement for containment from content to style & layout This patch ensures that we don't need paint containment to use display locking. Updates all the tests to use the least needed containment (style & layout) R=chrishtr@chromium.org Bug: 882663 Change-Id: I4deedb9f298cf63dd69dd0828420451e291684f0 Reviewed-on: https://chromium-review.googlesource.com/c/1396310 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#621604} [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-commit-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-commit.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-infinite-timeout-no-commit.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-timeout-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-timeout.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-commit-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-commit.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-measure-remove.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove-commit-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove-commit.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/acquire-update-remove.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-added-containment-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-added-containment.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-on-inline-fails.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-while-disconnected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-without-acquire-fails-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/commit-without-acquire-fails.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/measure-forced-layout.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/measure-updated-layout.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/multiple-acquires-all-succeed-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/multiple-acquires-all-succeed.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/timeout-while-disconnected-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/timeout-while-disconnected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/update-together-with-commit-both-succeed-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/update-together-with-commit-both-succeed.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/update-without-acquire-fails-expected.html [modify] https://crrev.com/0b68d81fea801ff52940d48ee14fa1994bb8d889/third_party/blink/web_tests/display-lock/lock-before-append/update-without-acquire-fails.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4 commit c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4 Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Jan 10 19:20:28 2019 [DL]: Implement lock after append mode. This patch adds the lock after append mode which "clears" the painted output while retaining the size information for the locked element. Also adds a few tests to test the new functionality. R=chrishtr@chromium.org Bug: 882663 Change-Id: Id70d7af9d99e919d34691b032db26fec9199e02e Reviewed-on: https://chromium-review.googlesource.com/c/1401269 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#621693} [modify] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/renderer/core/display_lock/display_lock_context.h [modify] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-after-resize-expected.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-after-resize.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-commit-expected.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-commit.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-immediate-commit-expected.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-immediate-commit.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-on-added-containment-expected.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-on-added-containment.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-on-no-containment-expected.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/acquire-on-no-containment.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/delayed-acquire-removes-painted-output-expected.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/delayed-acquire-removes-painted-output.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/measure-forced-layout.html [add] https://crrev.com/c96acfdcb3eddfedd5348e6d81cbd8f1fef0cab4/third_party/blink/web_tests/display-lock/lock-after-append/measure-updated-layout.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/56c6845f7e8908e56d5cc3c9c960f6eae3c327ba commit 56c6845f7e8908e56d5cc3c9c960f6eae3c327ba Author: Vladimir Levin <vmpstr@chromium.org> Date: Thu Jan 10 21:46:39 2019 [DL]: Add locked-element-moved test for lock-after-append mode. This patch adds another test to ensure that the locked element can be moved by other elements during layout, and it also itself moves other elements. R=chrishtr@chromium.org Bug: 882663 Change-Id: I4378b3e6e52fd2781efcded7fe1da9f815cc527b Reviewed-on: https://chromium-review.googlesource.com/c/1403084 Commit-Queue: vmpstr <vmpstr@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#621746} [add] https://crrev.com/56c6845f7e8908e56d5cc3c9c960f6eae3c327ba/third_party/blink/web_tests/display-lock/lock-after-append/locked-element-shifted-down-expected.html [add] https://crrev.com/56c6845f7e8908e56d5cc3c9c960f6eae3c327ba/third_party/blink/web_tests/display-lock/lock-after-append/locked-element-shifted-down.html
Issue 230233 has been merged into this issue.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3e3ea49c7dac96988481345ade25e6eb5118333c commit 3e3ea49c7dac96988481345ade25e6eb5118333c Author: Vladimir Levin <vmpstr@chromium.org> Date: Mon Jan 14 19:54:46 2019 [DL]: Reject the acquire promise if we commit while acquiring. This patch ensures that we reject the acquire promise if we call commit before lock acquire finishes. Since we unlock the lock because of the commit, it makes sense that "acquire" rejects. R=chrishtr@chromium.org Bug: 882663 Change-Id: I89a079427c155ba227fcacff083ac0fdf2a38982 Reviewed-on: https://chromium-review.googlesource.com/c/1409608 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#622557} [modify] https://crrev.com/3e3ea49c7dac96988481345ade25e6eb5118333c/third_party/blink/renderer/core/display_lock/display_lock_context.cc [copy] https://crrev.com/3e3ea49c7dac96988481345ade25e6eb5118333c/third_party/blink/web_tests/display-lock/lock-after-append/acquire-immediate-commit-resolves-expected.html [rename] https://crrev.com/3e3ea49c7dac96988481345ade25e6eb5118333c/third_party/blink/web_tests/display-lock/lock-after-append/acquire-immediate-commit-resolves.html [rename] https://crrev.com/3e3ea49c7dac96988481345ade25e6eb5118333c/third_party/blink/web_tests/display-lock/lock-after-append/acquire-rejects-after-immediate-commit-expected.html [add] https://crrev.com/3e3ea49c7dac96988481345ade25e6eb5118333c/third_party/blink/web_tests/display-lock/lock-after-append/acquire-rejects-after-immediate-commit.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6daacb6388772e0b6d0d78e616bf9f0ba0111101 commit 6daacb6388772e0b6d0d78e616bf9f0ba0111101 Author: Vladimir Levin <vmpstr@chromium.org> Date: Tue Jan 15 23:58:11 2019 [DL]: Ensure find in page doesn't find locked not searchable elements. This patch ensures that find in page skips elements that are locked for display and for which the context IsSearchable returns false. IsSearchable is currently set to return false for any locked element. R=chrishtr@chromium.org, rakina@chromium.org Bug: 882663 Change-Id: I8e9ee9b20c7cece7f70c81b5d77da7070bb907a8 Reviewed-on: https://chromium-review.googlesource.com/c/1403914 Reviewed-by: Rakina Zata Amni <rakina@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#622884} [modify] https://crrev.com/6daacb6388772e0b6d0d78e616bf9f0ba0111101/third_party/blink/renderer/core/BUILD.gn [modify] https://crrev.com/6daacb6388772e0b6d0d78e616bf9f0ba0111101/third_party/blink/renderer/core/display_lock/display_lock_context.cc [modify] https://crrev.com/6daacb6388772e0b6d0d78e616bf9f0ba0111101/third_party/blink/renderer/core/display_lock/display_lock_context.h [add] https://crrev.com/6daacb6388772e0b6d0d78e616bf9f0ba0111101/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc [modify] https://crrev.com/6daacb6388772e0b6d0d78e616bf9f0ba0111101/third_party/blink/renderer/core/editing/finder/find_buffer.cc [modify] https://crrev.com/6daacb6388772e0b6d0d78e616bf9f0ba0111101/third_party/blink/renderer/core/editing/iterators/text_iterator.cc
Comment 1 by bugdroid1@chromium.org
, Oct 4