Skip to content

Commit b461901

Browse files
lpyCommit bot
authored and
Commit bot
committed
Remove setting cancelBubble to false.
According to spec https://dom.spec.whatwg.org/#dom-event-cancelbubble, setting cancelBubble to true is considered as an alias to stopPropagation(), setting cancelBubble to false is a no-op. Detail discussion is on whatwg/dom#211. BUG=675549 Review-Url: https://codereview.chromium.org/2641953006 Cr-Commit-Position: refs/heads/master@{#446118}
1 parent 76a10b1 commit b461901

File tree

10 files changed

+5
-78
lines changed

10 files changed

+5
-78
lines changed

third_party/WebKit/LayoutTests/external/wpt/dom/events/Event-cancelBubble-expected.txt

Lines changed: 0 additions & 11 deletions
This file was deleted.

third_party/WebKit/LayoutTests/external/wpt/dom/events/Event-dispatch-bubble-canceled-expected.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

third_party/WebKit/LayoutTests/external/wpt/dom/events/Event-dispatch-multiple-cancelBubble-expected.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

third_party/WebKit/LayoutTests/external/wpt/dom/events/Event-propagation-expected.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.

third_party/WebKit/Source/core/events/Event.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ Event::Event(const AtomicString& eventType,
8787
m_immediatePropagationStopped(false),
8888
m_defaultPrevented(false),
8989
m_defaultHandled(false),
90-
m_cancelBubble(false),
9190
m_wasInitialized(true),
9291
m_isTrusted(false),
9392
m_preventDefaultCalledOnUncancelableEvent(false),
@@ -337,11 +336,8 @@ double Event::timeStamp(ScriptState* scriptState) const {
337336
}
338337

339338
void Event::setCancelBubble(ExecutionContext* context, bool cancel) {
340-
if (!m_cancelBubble && cancel)
341-
UseCounter::count(context, UseCounter::EventCancelBubbleWasChangedToTrue);
342-
else if (m_cancelBubble && !cancel)
343-
UseCounter::count(context, UseCounter::EventCancelBubbleWasChangedToFalse);
344-
m_cancelBubble = cancel;
339+
if (cancel)
340+
m_propagationStopped = true;
345341
}
346342

347343
DEFINE_TRACE(Event) {

third_party/WebKit/Source/core/events/Event.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class CORE_EXPORT Event : public GarbageCollectedFinalized<Event>,
199199
void setDefaultHandled() { m_defaultHandled = true; }
200200

201201
bool cancelBubble(ExecutionContext* = nullptr) const {
202-
return m_cancelBubble;
202+
return propagationStopped();
203203
}
204204
void setCancelBubble(ExecutionContext*, bool);
205205

@@ -285,7 +285,6 @@ class CORE_EXPORT Event : public GarbageCollectedFinalized<Event>,
285285
unsigned m_immediatePropagationStopped : 1;
286286
unsigned m_defaultPrevented : 1;
287287
unsigned m_defaultHandled : 1;
288-
unsigned m_cancelBubble : 1;
289288
unsigned m_wasInitialized : 1;
290289
unsigned m_isTrusted : 1;
291290

third_party/WebKit/Source/core/events/EventDispatcher.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,6 @@ inline void EventDispatcher::dispatchEventAtBubbling() {
218218
} else if (m_event->bubbles() && !m_event->cancelBubble()) {
219219
m_event->setEventPhase(Event::kBubblingPhase);
220220
} else {
221-
if (m_event->bubbles() && m_event->cancelBubble() &&
222-
eventContext.node() &&
223-
eventContext.node()->hasEventListeners(m_event->type()))
224-
UseCounter::count(eventContext.node()->document(),
225-
UseCounter::EventCancelBubbleAffected);
226221
continue;
227222
}
228223
eventContext.handleLocalEvents(*m_event);
@@ -232,17 +227,6 @@ inline void EventDispatcher::dispatchEventAtBubbling() {
232227
if (m_event->bubbles() && !m_event->cancelBubble()) {
233228
m_event->setEventPhase(Event::kBubblingPhase);
234229
m_event->eventPath().windowEventContext().handleLocalEvents(*m_event);
235-
} else if (m_event->bubbles() &&
236-
m_event->eventPath().windowEventContext().window() &&
237-
m_event->eventPath()
238-
.windowEventContext()
239-
.window()
240-
->hasEventListeners(m_event->type())) {
241-
UseCounter::count(m_event->eventPath()
242-
.windowEventContext()
243-
.window()
244-
->getExecutionContext(),
245-
UseCounter::EventCancelBubbleAffected);
246230
}
247231
}
248232

third_party/WebKit/Source/core/frame/UseCounter.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,9 +1019,6 @@ class CORE_EXPORT UseCounter {
10191019
ProgressElementWithNoneAppearance = 1345,
10201020
ProgressElementWithProgressBarAppearance = 1346,
10211021
PointerEventAddListenerCount = 1347,
1022-
EventCancelBubbleAffected = 1348,
1023-
EventCancelBubbleWasChangedToTrue = 1349,
1024-
EventCancelBubbleWasChangedToFalse = 1350,
10251022
CSSValueAppearanceNone = 1351,
10261023
CSSValueAppearanceNotNone = 1352,
10271024
CSSValueAppearanceOthers = 1353,

third_party/WebKit/Source/modules/indexeddb/IDBEventDispatcher.cpp

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828

2929
#include "modules/indexeddb/IDBEventDispatcher.h"
3030

31-
#include "core/frame/UseCounter.h"
3231
#include "modules/EventModules.h"
3332
#include "modules/EventTargetModules.h"
3433

@@ -51,31 +50,15 @@ DispatchEventResult IDBEventDispatcher::dispatch(
5150
event->setEventPhase(Event::kAtTarget);
5251
event->setCurrentTarget(eventTargets[0].get());
5352
eventTargets[0]->fireEventListeners(event);
54-
if (event->propagationStopped() || !event->bubbles())
53+
if (event->propagationStopped() || !event->bubbles() || event->cancelBubble())
5554
goto doneDispatching;
56-
if (event->bubbles() && event->cancelBubble()) {
57-
for (size_t i = 1; i < size; ++i) { // Don't do the first element.
58-
if (eventTargets[i]->hasEventListeners(event->type()))
59-
UseCounter::count(eventTargets[i]->getExecutionContext(),
60-
UseCounter::EventCancelBubbleAffected);
61-
}
62-
goto doneDispatching;
63-
}
6455

6556
event->setEventPhase(Event::kBubblingPhase);
6657
for (size_t i = 1; i < size; ++i) { // Don't do the first element.
6758
event->setCurrentTarget(eventTargets[i].get());
6859
eventTargets[i]->fireEventListeners(event);
69-
if (event->propagationStopped())
70-
goto doneDispatching;
71-
if (event->cancelBubble()) {
72-
for (size_t j = i + 1; j < size; ++j) {
73-
if (eventTargets[j]->hasEventListeners(event->type()))
74-
UseCounter::count(eventTargets[j]->getExecutionContext(),
75-
UseCounter::EventCancelBubbleAffected);
76-
}
60+
if (event->propagationStopped() || event->cancelBubble())
7761
goto doneDispatching;
78-
}
7962
}
8063

8164
doneDispatching:

tools/metrics/histograms/histograms.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89635,9 +89635,6 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
8963589635
<int value="1345" label="ProgressElementWithNoneAppearance"/>
8963689636
<int value="1346" label="ProgressElementWithProgressBarAppearance"/>
8963789637
<int value="1347" label="PointerEventAddListenerCount"/>
89638-
<int value="1348" label="EventCancelBubbleAffected"/>
89639-
<int value="1349" label="EventCancelBubbleWasChangedToTrue"/>
89640-
<int value="1350" label="EventCancelBubbleWasChangedToFalse"/>
8964189638
<int value="1351" label="CSSValueAppearanceNone"/>
8964289639
<int value="1352" label="CSSValueAppearanceNotNone"/>
8964389640
<int value="1353" label="CSSValueAppearanceOthers"/>

0 commit comments

Comments
 (0)