| Index: third_party/WebKit/Source/core/events/Event.cpp
|
| diff --git a/third_party/WebKit/Source/core/events/Event.cpp b/third_party/WebKit/Source/core/events/Event.cpp
|
| index 8a14c86fd97599b8936608165cd11c2ce9b365aa..b80610009abb892fdc36f57be38c3785c4acc10d 100644
|
| --- a/third_party/WebKit/Source/core/events/Event.cpp
|
| +++ b/third_party/WebKit/Source/core/events/Event.cpp
|
| @@ -34,8 +34,11 @@
|
|
|
| namespace blink {
|
|
|
| -static bool defaultScopedFromEventType(const AtomicString& eventType)
|
| +static bool isScoped(const AtomicString& eventType)
|
| {
|
| + // WebKit never allowed selectstart event to cross the the shadow DOM boundary.
|
| + // Changing this breaks existing sites.
|
| + // See https://bugs.webkit.org/show_bug.cgi?id=52195 for details.
|
| return (eventType == EventTypeNames::abort
|
| || eventType == EventTypeNames::change
|
| || eventType == EventTypeNames::error
|
| @@ -55,35 +58,35 @@ Event::Event()
|
| }
|
|
|
| Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg)
|
| - : Event(eventType, canBubbleArg, cancelableArg, defaultScopedFromEventType(eventType), false, monotonicallyIncreasingTime())
|
| + : Event(eventType, canBubbleArg, cancelableArg, !isScoped(eventType), false, monotonicallyIncreasingTime())
|
| {
|
| }
|
|
|
| Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget)
|
| - : Event(eventType, canBubbleArg, cancelableArg, defaultScopedFromEventType(eventType), relatedTarget ? true : false, monotonicallyIncreasingTime())
|
| + : Event(eventType, canBubbleArg, cancelableArg, !isScoped(eventType), relatedTarget ? true : false, monotonicallyIncreasingTime())
|
| {
|
| }
|
|
|
| Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, double platformTimeStamp)
|
| - : Event(eventType, canBubbleArg, cancelableArg, defaultScopedFromEventType(eventType), false, platformTimeStamp)
|
| + : Event(eventType, canBubbleArg, cancelableArg, !isScoped(eventType), false, platformTimeStamp)
|
| {
|
| }
|
|
|
| Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, double platformTimeStamp)
|
| - : Event(eventType, canBubbleArg, cancelableArg, defaultScopedFromEventType(eventType), relatedTarget ? true : false, platformTimeStamp)
|
| + : Event(eventType, canBubbleArg, cancelableArg, !isScoped(eventType), relatedTarget ? true : false, platformTimeStamp)
|
| {
|
| }
|
|
|
| -Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, bool scoped)
|
| - : Event(eventType, canBubbleArg, cancelableArg, scoped, false, monotonicallyIncreasingTime())
|
| +Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, bool composed)
|
| + : Event(eventType, canBubbleArg, cancelableArg, composed, false, monotonicallyIncreasingTime())
|
| {
|
| }
|
|
|
| -Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, bool scoped, bool relatedTargetScoped, double platformTimeStamp)
|
| +Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, bool composed, bool relatedTargetScoped, double platformTimeStamp)
|
| : m_type(eventType)
|
| , m_canBubble(canBubbleArg)
|
| , m_cancelable(cancelableArg)
|
| - , m_scoped(scoped)
|
| + , m_composed(composed)
|
| , m_relatedTargetScoped(relatedTargetScoped)
|
| , m_propagationStopped(false)
|
| , m_immediatePropagationStopped(false)
|
| @@ -101,7 +104,7 @@ Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableAr
|
| }
|
|
|
| Event::Event(const AtomicString& eventType, const EventInit& initializer)
|
| - : Event(eventType, initializer.bubbles(), initializer.cancelable(), initializer.scoped(), initializer.relatedTargetScoped(), monotonicallyIncreasingTime())
|
| + : Event(eventType, initializer.bubbles(), initializer.cancelable(), initializer.composed(), initializer.relatedTargetScoped(), monotonicallyIncreasingTime())
|
| {
|
| }
|
|
|
| @@ -109,6 +112,11 @@ Event::~Event()
|
| {
|
| }
|
|
|
| +bool Event::isScopedInV0() const
|
| +{
|
| + return isTrusted() && isScoped(m_type);
|
| +}
|
| +
|
| void Event::initEvent(const AtomicString& eventTypeArg, bool canBubbleArg, bool cancelableArg)
|
| {
|
| initEvent(eventTypeArg, canBubbleArg, cancelableArg, nullptr);
|
|
|