Commit d4a819a3 authored by Vladimir Levin's avatar Vladimir Levin Committed by Commit Bot

RenderSubtree: rename beforeactivate signal to rendersubtreeactivation.

This patch renames the signal to rendersubtreeactivation, to stop
erroneously implying that it always happens before activation.

on-render-subtree-activation can fire before and after the activation,
depending on the way an element is activated.

R=chrishtr@chromium.org, rakina@chromium.org

Bug: https://github.com/WICG/display-locking/issues/98
Change-Id: Id3ba4e5ac93eb9b551c2419fb2e5d8c762d2f761
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1927023
Commit-Queue: vmpstr <vmpstr@chromium.org>
Reviewed-by: default avatarChris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#717721}
parent 61670ee6
......@@ -340,7 +340,7 @@ generate_event_interfaces("core_event_interfaces") {
sources = [
"css/font_face_set_load_event.idl",
"css/media_query_list_event.idl",
"display_lock/before_activate_event.idl",
"display_lock/render_subtree_activation_event.idl",
"dom/events/custom_event.idl",
"dom/events/event.idl",
"editing/ime/text_format_update_event.idl",
......
......@@ -103,7 +103,7 @@ core_idl_files =
"css/cssom/css_variable_reference_value.idl",
"css/cssom/style_property_map.idl",
"css/cssom/style_property_map_read_only.idl",
"display_lock/before_activate_event.idl",
"display_lock/render_subtree_activation_event.idl",
"dom/abort_controller.idl",
"dom/abort_signal.idl",
"dom/attr.idl",
......
......@@ -7,14 +7,14 @@ import("//third_party/blink/renderer/core/core.gni")
blink_core_sources("display_lock") {
sources = [
"before_activate_event.cc",
"before_activate_event.h",
"display_lock_budget.cc",
"display_lock_budget.h",
"display_lock_context.cc",
"display_lock_context.h",
"display_lock_utilities.cc",
"display_lock_utilities.h",
"render_subtree_activation_event.cc",
"render_subtree_activation_event.h",
"strict_yielding_display_lock_budget.cc",
"strict_yielding_display_lock_budget.h",
"unyielding_display_lock_budget.cc",
......
......@@ -10,8 +10,8 @@
#include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
#include "third_party/blink/renderer/core/css/style_recalc.h"
#include "third_party/blink/renderer/core/display_lock/before_activate_event.h"
#include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
#include "third_party/blink/renderer/core/display_lock/render_subtree_activation_event.h"
#include "third_party/blink/renderer/core/display_lock/strict_yielding_display_lock_budget.h"
#include "third_party/blink/renderer/core/display_lock/unyielding_display_lock_budget.h"
#include "third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.h"
......@@ -397,7 +397,7 @@ bool DisplayLockContext::IsActivatable(
void DisplayLockContext::FireActivationEvent(Element* activated_element) {
element_->DispatchEvent(
*MakeGarbageCollected<BeforeActivateEvent>(*activated_element));
*MakeGarbageCollected<RenderSubtreeActivationEvent>(*activated_element));
}
void DisplayLockContext::CommitForActivationWithSignal(
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/display_lock/before_activate_event.h"
#include "third_party/blink/renderer/core/display_lock/render_subtree_activation_event.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/events/event_dispatcher.h"
......@@ -10,18 +10,19 @@
namespace blink {
const AtomicString& BeforeActivateEvent::InterfaceName() const {
return event_interface_names::kBeforeActivateEvent;
const AtomicString& RenderSubtreeActivationEvent::InterfaceName() const {
return event_interface_names::kRenderSubtreeActivationEvent;
}
BeforeActivateEvent::BeforeActivateEvent(Element& activated_element)
: Event(event_type_names::kBeforeactivate,
RenderSubtreeActivationEvent::RenderSubtreeActivationEvent(
Element& activated_element)
: Event(event_type_names::kRendersubtreeactivation,
Bubbles::kYes,
Cancelable::kYes,
ComposedMode::kScoped),
activated_element_(activated_element) {}
void BeforeActivateEvent::Trace(Visitor* visitor) {
void RenderSubtreeActivationEvent::Trace(Visitor* visitor) {
visitor->Trace(activated_element_);
Event::Trace(visitor);
}
......
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DISPLAY_LOCK_BEFORE_ACTIVATE_EVENT_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_DISPLAY_LOCK_BEFORE_ACTIVATE_EVENT_H_
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DISPLAY_LOCK_RENDER_SUBTREE_ACTIVATION_EVENT_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_DISPLAY_LOCK_RENDER_SUBTREE_ACTIVATION_EVENT_H_
#include "third_party/blink/renderer/core/dom/events/event.h"
......@@ -11,11 +11,11 @@ namespace blink {
class Element;
class BeforeActivateEvent : public Event {
class RenderSubtreeActivationEvent : public Event {
DEFINE_WRAPPERTYPEINFO();
public:
explicit BeforeActivateEvent(Element& activated_element);
explicit RenderSubtreeActivationEvent(Element& activated_element);
Element& activatedElement() const { return *activated_element_.Get(); }
......@@ -29,4 +29,4 @@ class BeforeActivateEvent : public Event {
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_DISPLAY_LOCK_BEFORE_ACTIVATE_EVENT_H_
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_DISPLAY_LOCK_RENDER_SUBTREE_ACTIVATION_EVENT_H_
......@@ -4,6 +4,6 @@
[
RuntimeEnabled=DisplayLocking
] interface BeforeActivateEvent : Event {
] interface RenderSubtreeActivationEvent : Event {
readonly attribute Element activatedElement;
};
......@@ -58,9 +58,9 @@
#include "third_party/blink/renderer/core/css/style_change_reason.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/css_value_keywords.h"
#include "third_party/blink/renderer/core/display_lock/before_activate_event.h"
#include "third_party/blink/renderer/core/display_lock/display_lock_context.h"
#include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
#include "third_party/blink/renderer/core/display_lock/render_subtree_activation_event.h"
#include "third_party/blink/renderer/core/dom/attr.h"
#include "third_party/blink/renderer/core/dom/dataset_dom_string_map.h"
#include "third_party/blink/renderer/core/dom/document.h"
......
......@@ -47,7 +47,6 @@ class GlobalEventHandlers {
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(activateinvisible, kActivateinvisible)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(auxclick, kAuxclick)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(blur, kBlur)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(beforeactivate, kBeforeactivate)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(cancel, kCancel)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(canplay, kCanplay)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(canplaythrough, kCanplaythrough)
......@@ -105,6 +104,8 @@ class GlobalEventHandlers {
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(pointerup, kPointerup)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(progress, kProgress)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(ratechange, kRatechange)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(rendersubtreeactivation,
kRendersubtreeactivation)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(reset, kReset)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(resize, kResize)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(scroll, kScroll)
......
......@@ -34,7 +34,6 @@
] interface mixin GlobalEventHandlers {
attribute EventHandler onabort;
[RuntimeEnabled=InvisibleDOM] attribute EventHandler onactivateinvisible;
[RuntimeEnabled=DisplayLocking] attribute EventHandler onbeforeactivate;
attribute EventHandler onblur;
attribute EventHandler oncancel;
attribute EventHandler oncanplay;
......@@ -83,6 +82,7 @@
attribute EventHandler onplaying;
attribute EventHandler onprogress;
attribute EventHandler onratechange;
[RuntimeEnabled=DisplayLocking] attribute EventHandler onrendersubtreeactivation;
attribute EventHandler onreset;
attribute EventHandler onresize;
attribute EventHandler onscroll;
......
......@@ -44,7 +44,6 @@
"backgroundfetchclick",
"backgroundfetchfail",
"backgroundfetchsuccess",
"beforeactivate",
"beforecopy",
"beforecut",
"beforeinput",
......@@ -233,6 +232,7 @@
"removesourcebuffer",
"removestream",
"removetrack",
"rendersubtreeactivation",
"repeatEvent",
"reset",
"resetpose",
......
......@@ -152,7 +152,6 @@
"onanimationiteration",
"onanimationend",
"onauxclick",
"onbeforeactivate",
"onbeforecopy",
"onbeforecut",
"onbeforepaste",
......@@ -231,6 +230,7 @@
"onportalactivate",
"onprogress",
"onratechange",
"onrendersubtreeactivation",
"onreset",
"onresize",
"onscroll",
......
......@@ -374,8 +374,6 @@ AttributeTriggers* HTMLElement::TriggersForAttributeName(
event_type_names::kAnimationstart, nullptr},
{html_names::kOnauxclickAttr, kNoWebFeature, event_type_names::kAuxclick,
nullptr},
{html_names::kOnbeforeactivateAttr, kNoWebFeature,
event_type_names::kBeforeactivate, nullptr},
{html_names::kOnbeforecopyAttr, kNoWebFeature,
event_type_names::kBeforecopy, nullptr},
{html_names::kOnbeforecutAttr, kNoWebFeature,
......@@ -505,6 +503,8 @@ AttributeTriggers* HTMLElement::TriggersForAttributeName(
nullptr},
{html_names::kOnratechangeAttr, kNoWebFeature,
event_type_names::kRatechange, nullptr},
{html_names::kOnrendersubtreeactivationAttr, kNoWebFeature,
event_type_names::kRendersubtreeactivation, nullptr},
{html_names::kOnresetAttr, kNoWebFeature, event_type_names::kReset,
nullptr},
{html_names::kOnresizeAttr, kNoWebFeature, event_type_names::kResize,
......
......@@ -80,7 +80,6 @@ PASS oldChildWindow.onanimationiteration is newChildWindow.onanimationiteration
PASS oldChildWindow.onanimationstart is newChildWindow.onanimationstart
PASS oldChildWindow.onappinstalled is newChildWindow.onappinstalled
PASS oldChildWindow.onauxclick is newChildWindow.onauxclick
PASS oldChildWindow.onbeforeactivate is newChildWindow.onbeforeactivate
PASS oldChildWindow.onbeforeinstallprompt is newChildWindow.onbeforeinstallprompt
PASS oldChildWindow.onbeforeprint is newChildWindow.onbeforeprint
PASS oldChildWindow.onbeforeunload is newChildWindow.onbeforeunload
......@@ -155,6 +154,7 @@ PASS oldChildWindow.onportalactivate is newChildWindow.onportalactivate
PASS oldChildWindow.onprogress is newChildWindow.onprogress
PASS oldChildWindow.onratechange is newChildWindow.onratechange
PASS oldChildWindow.onrejectionhandled is newChildWindow.onrejectionhandled
PASS oldChildWindow.onrendersubtreeactivation is newChildWindow.onrendersubtreeactivation
PASS oldChildWindow.onreset is newChildWindow.onreset
PASS oldChildWindow.onresize is newChildWindow.onresize
PASS oldChildWindow.onscroll is newChildWindow.onscroll
......
......@@ -42,7 +42,6 @@ PASS childWindow.onanimationiteration is null
PASS childWindow.onanimationstart is null
PASS childWindow.onappinstalled is null
PASS childWindow.onauxclick is null
PASS childWindow.onbeforeactivate is null
PASS childWindow.onbeforeinstallprompt is null
PASS childWindow.onbeforeprint is null
PASS childWindow.onbeforeunload is null
......@@ -117,6 +116,7 @@ PASS childWindow.onportalactivate is null
PASS childWindow.onprogress is null
PASS childWindow.onratechange is null
PASS childWindow.onrejectionhandled is null
PASS childWindow.onrendersubtreeactivation is null
PASS childWindow.onreset is null
PASS childWindow.onresize is null
PASS childWindow.onscroll is null
......
......@@ -42,7 +42,6 @@ PASS childWindow.onanimationiteration is null
PASS childWindow.onanimationstart is null
PASS childWindow.onappinstalled is null
PASS childWindow.onauxclick is null
PASS childWindow.onbeforeactivate is null
PASS childWindow.onbeforeinstallprompt is null
PASS childWindow.onbeforeprint is null
PASS childWindow.onbeforeunload is null
......@@ -117,6 +116,7 @@ PASS childWindow.onportalactivate is null
PASS childWindow.onprogress is null
PASS childWindow.onratechange is null
PASS childWindow.onrejectionhandled is null
PASS childWindow.onrendersubtreeactivation is null
PASS childWindow.onreset is null
PASS childWindow.onresize is null
PASS childWindow.onscroll is null
......
......@@ -172,7 +172,6 @@ namespace http://www.w3.org/1999/xhtml
property onanimationiteration
property onanimationstart
property onauxclick
property onbeforeactivate
property onbeforecopy
property onbeforecut
property onbeforepaste
......@@ -238,6 +237,7 @@ namespace http://www.w3.org/1999/xhtml
property onpointerup
property onprogress
property onratechange
property onrendersubtreeactivation
property onreset
property onresize
property onscroll
......@@ -1351,7 +1351,6 @@ namespace http://www.w3.org/2000/svg
property onanimationiteration
property onanimationstart
property onauxclick
property onbeforeactivate
property onbeforecopy
property onbeforecut
property onbeforepaste
......@@ -1417,6 +1416,7 @@ namespace http://www.w3.org/2000/svg
property onpointerup
property onprogress
property onratechange
property onrendersubtreeactivation
property onreset
property onresize
property onscroll
......
......@@ -503,10 +503,6 @@ interface BatteryManager : EventTarget
setter onchargingtimechange
setter ondischargingtimechange
setter onlevelchange
interface BeforeActivateEvent : Event
attribute @@toStringTag
getter activatedElement
method constructor
interface BeforeInstallPromptEvent : Event
attribute @@toStringTag
getter platforms
......@@ -1613,7 +1609,6 @@ interface Document : Node
getter onanimationiteration
getter onanimationstart
getter onauxclick
getter onbeforeactivate
getter onbeforecopy
getter onbeforecut
getter onbeforepaste
......@@ -1683,6 +1678,7 @@ interface Document : Node
getter onprogress
getter onratechange
getter onreadystatechange
getter onrendersubtreeactivation
getter onreset
getter onresize
getter onresume
......@@ -1810,7 +1806,6 @@ interface Document : Node
setter onanimationiteration
setter onanimationstart
setter onauxclick
setter onbeforeactivate
setter onbeforecopy
setter onbeforecut
setter onbeforepaste
......@@ -1880,6 +1875,7 @@ interface Document : Node
setter onprogress
setter onratechange
setter onreadystatechange
setter onrendersubtreeactivation
setter onreset
setter onresize
setter onresume
......@@ -2944,7 +2940,6 @@ interface HTMLElement : Element
getter onanimationiteration
getter onanimationstart
getter onauxclick
getter onbeforeactivate
getter onblur
getter oncancel
getter oncanplay
......@@ -3005,6 +3000,7 @@ interface HTMLElement : Element
getter onpointerup
getter onprogress
getter onratechange
getter onrendersubtreeactivation
getter onreset
getter onresize
getter onscroll
......@@ -3057,7 +3053,6 @@ interface HTMLElement : Element
setter onanimationiteration
setter onanimationstart
setter onauxclick
setter onbeforeactivate
setter onblur
setter oncancel
setter oncanplay
......@@ -3118,6 +3113,7 @@ interface HTMLElement : Element
setter onpointerup
setter onprogress
setter onratechange
setter onrendersubtreeactivation
setter onreset
setter onresize
setter onscroll
......@@ -4710,7 +4706,6 @@ interface MathMLElement : Element
getter onanimationiteration
getter onanimationstart
getter onauxclick
getter onbeforeactivate
getter onblur
getter oncancel
getter oncanplay
......@@ -4771,6 +4766,7 @@ interface MathMLElement : Element
getter onpointerup
getter onprogress
getter onratechange
getter onrendersubtreeactivation
getter onreset
getter onresize
getter onscroll
......@@ -4806,7 +4802,6 @@ interface MathMLElement : Element
setter onanimationiteration
setter onanimationstart
setter onauxclick
setter onbeforeactivate
setter onblur
setter oncancel
setter oncanplay
......@@ -4867,6 +4862,7 @@ interface MathMLElement : Element
setter onpointerup
setter onprogress
setter onratechange
setter onrendersubtreeactivation
setter onreset
setter onresize
setter onscroll
......@@ -6522,6 +6518,10 @@ interface RemotePlayback : EventTarget
setter onconnect
setter onconnecting
setter ondisconnect
interface RenderSubtreeActivationEvent : Event
attribute @@toStringTag
getter activatedElement
method constructor
interface ReportingObserver
attribute @@toStringTag
method constructor
......@@ -6753,7 +6753,6 @@ interface SVGElement : Element
getter onanimationiteration
getter onanimationstart
getter onauxclick
getter onbeforeactivate
getter onblur
getter oncancel
getter oncanplay
......@@ -6814,6 +6813,7 @@ interface SVGElement : Element
getter onpointerup
getter onprogress
getter onratechange
getter onrendersubtreeactivation
getter onreset
getter onresize
getter onscroll
......@@ -6851,7 +6851,6 @@ interface SVGElement : Element
setter onanimationiteration
setter onanimationstart
setter onauxclick
setter onbeforeactivate
setter onblur
setter oncancel
setter oncanplay
......@@ -6912,6 +6911,7 @@ interface SVGElement : Element
setter onpointerup
setter onprogress
setter onratechange
setter onrendersubtreeactivation
setter onreset
setter onresize
setter onscroll
......@@ -11448,7 +11448,6 @@ interface webkitURL
getter onanimationstart
getter onappinstalled
getter onauxclick
getter onbeforeactivate
getter onbeforeinstallprompt
getter onbeforeprint
getter onbeforeunload
......@@ -11523,6 +11522,7 @@ interface webkitURL
getter onprogress
getter onratechange
getter onrejectionhandled
getter onrendersubtreeactivation
getter onreset
getter onresize
getter onscroll
......@@ -11647,7 +11647,6 @@ interface webkitURL
setter onanimationstart
setter onappinstalled
setter onauxclick
setter onbeforeactivate
setter onbeforeinstallprompt
setter onbeforeprint
setter onbeforeunload
......@@ -11722,6 +11721,7 @@ interface webkitURL
setter onprogress
setter onratechange
setter onrejectionhandled
setter onrendersubtreeactivation
setter onreset
setter onresize
setter onscroll
......
......@@ -40,14 +40,14 @@ promise_test(() => {
assert_equals(innermost.renderSubtree, "");
let innerPromise = new Promise((resolve, reject) => {
inner.onbeforeactivate = (e) => {
inner.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, innermost);
resolve();
}
});
let outerPromise = new Promise((resolve, reject) => {
outer.onbeforeactivate = (e) => {
outer.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, innermost);
// Resolve if this is directly targeted to #outer,
// instead of bubbling here.
......@@ -57,7 +57,7 @@ promise_test(() => {
});
let outermostPromise = new Promise((resolve, reject) => {
outermost.onbeforeactivate = (e) => {
outermost.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, innermost);
assert_not_equals(e.target, outermost);
// Resolve if this is targeted to #outer, which is
......@@ -67,13 +67,13 @@ promise_test(() => {
}
});
innermost.onbeforeactivate = reject;
// Navigating to element in locked subtree should fire beforeactivate
innermost.onrendersubtreeactivation = reject;
// Navigating to element in locked subtree should fire rendersubtreeactivation
// on locked ancestors, but not itself.
innermostLink.click();
Promise.all([innerPromise, outerPromise, outermostPromise]).then(resolve);
});
});
}, "Activation through anchor link fires beforeactivate on locked ancestor");
}, "Activation through anchor link fires rendersubtreeactivation on locked ancestor");
</script>
</html>
......@@ -22,7 +22,7 @@
<script>
'use strict';
function prepareTest() {
innermost.onbeforeactivate = inner.onbeforeactivate = outer.onbeforeactivate = null;
innermost.onrendersubtreeactivation = inner.onrendersubtreeactivation = outer.onrendersubtreeactivation = null;
return Promise.all([
setInvisibleActivatable(outer),
setInvisibleActivatable(inner)]);
......@@ -32,13 +32,13 @@ promise_test(() => {
return new Promise((resolve, reject) => {
prepareTest().then(() => {
assert_equals(inner.renderSubtree, INVISIBLE_ACTIVATABLE);
inner.onbeforeactivate = (e) => {
inner.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, inner);
resolve();
}
innerLink.click();
});
});
}, "Activation through anchor link fires beforeactivate on locked element");
}, "Activation through anchor link fires rendersubtreeactivation on locked element");
</script>
</html>
<!doctype HTML>
<html>
<meta charset="utf8">
<title>Display Locking: commit in beforeactivate</title>
<title>Display Locking: commit in rendersubtreeactivation</title>
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<link rel="help" href="https://github.com/WICG/display-locking">
......@@ -26,10 +26,10 @@ async_test((t) => {
await setInvisibleActivatable(target);
t.step(() => assert_equals(target.renderSubtree, INVISIBLE_ACTIVATABLE));
target.addEventListener("beforeactivate", () => commit(target));
target.addEventListener("rendersubtreeactivation", () => commit(target));
target.scrollIntoView();
}
window.onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest));
}, "Commit in beforeactivate");
}, "Commit in rendersubtreeactivation");
</script>
......@@ -24,7 +24,7 @@ promise_test((t) => {
focusable.tabIndex = 0;
const eventPromise = new Promise((resolve, reject) => {
container.onbeforeactivate = (e) => {
container.onrendersubtreeactivation = (e) => {
t.step(() => assert_equals(e.target, container));
t.step(() => assert_equals(e.activatedElement, focusable));
resolve();
......@@ -40,6 +40,6 @@ promise_test((t) => {
});
});
});
}, "Activating locked element through tabindex navigation fires beforeactivate, focuses element");
}, "Activating locked element through tabindex navigation fires rendersubtreeactivation, focuses element");
</script>
</html>
......@@ -25,14 +25,14 @@ promise_test((t) => {
return new Promise((resolve, reject) => {
const eventPromise = new Promise((resolve, reject) => {
container.onbeforeactivate = (e) => {
container.onrendersubtreeactivation = (e) => {
t.step(() => assert_equals(e.target, container));
t.step(() => assert_equals(e.activatedElement, slotted));
resolve();
};
});
host.onbeforeactivate = reject;
slotted.onbeforeactivate = reject;
host.onrendersubtreeactivation = reject;
slotted.onrendersubtreeactivation = reject;
t.step(() => assert_not_equals(document.activeElement, slotted));
acquirePromise.then(() => {
......@@ -44,6 +44,6 @@ promise_test((t) => {
});
});
});
}, "Activating locked element through focus() fires beforeactivate, doesn't go through shadow boundary");
}, "Activating locked element through focus() fires rendersubtreeactivation, doesn't go through shadow boundary");
</script>
</html>
......@@ -26,7 +26,7 @@ promise_test((t) => {
const acquirePromise = setInvisibleActivatable(container);
return new Promise((resolve, reject) => {
acquirePromise.then(() => {
container.onbeforeactivate = reject;
container.onrendersubtreeactivation = reject;
displayNoneParent.style.display = "none";
focusable.focus();
t.step(() => assert_not_equals(document.activeElement, focusable));
......
......@@ -24,7 +24,7 @@ promise_test((t) => {
const acquirePromise = setInvisibleActivatable(container);
return new Promise((resolve, reject) => {
acquirePromise.then(() => {
container.onbeforeactivate = reject;
container.onrendersubtreeactivation = reject;
focusable.style = "display: none";
focusable.focus();
t.step(() => assert_not_equals(document.activeElement, focusable));
......
......@@ -21,7 +21,7 @@ promise_test(() => {
const acquirePromise = setInvisibleActivatable(container);
return new Promise((resolve, reject) => {
const eventPromise = new Promise((resolve, reject) => {
container.onbeforeactivate = (e) => {
container.onrendersubtreeactivation = (e) => {
assert_equals(e.target, container);
assert_equals(e.activatedElement, focusable);
resolve();
......@@ -36,6 +36,6 @@ promise_test(() => {
});
});
});
}, "Activating locked element through tabindex navigation fires beforeactivate, focuses element");
}, "Activating locked element through tabindex navigation fires rendersubtreeactivation, focuses element");
</script>
</html>
......@@ -39,14 +39,14 @@ promise_test(() => {
assert_equals(innermost.renderSubtree, "");
let innerPromise = new Promise((resolve, reject) => {
inner.onbeforeactivate = (e) => {
inner.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, innermost);
resolve();
}
});
let outerPromise = new Promise((resolve, reject) => {
outer.onbeforeactivate = (e) => {
outer.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, innermost);
// Resolve if this is directly targeted to #outer,
// instead of bubbling here.
......@@ -56,7 +56,7 @@ promise_test(() => {
});
let outermostPromise = new Promise((resolve, reject) => {
outermost.onbeforeactivate = (e) => {
outermost.onrendersubtreeactivation = (e) => {
assert_equals(e.activatedElement, innermost);
assert_not_equals(e.target, outermost);
// Resolve if this is targeted to #outer, which is
......@@ -66,13 +66,13 @@ promise_test(() => {
}
});
innermost.onbeforeactivate = reject;
// Navigating to element in locked subtree should fire beforeactivate
innermost.onrendersubtreeactivation = reject;
// Navigating to element in locked subtree should fire rendersubtreeactivation
// on locked ancestors, but not itself.
innermost.scrollIntoView();
Promise.all([innerPromise, outerPromise, outermostPromise]).then(resolve);
});
});
}, "Activation through scrollIntoView fires beforeactivate on locked ancestor");
}, "Activation through scrollIntoView fires rendersubtreeactivation on locked ancestor");
</script>
</html>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment