Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Unified Diff: third_party/WebKit/Source/devtools/front_end/common/Object.js

Issue 2573323002: Revert of [DevTools] Remove methods on Common.Event. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/common/Object.js
diff --git a/third_party/WebKit/Source/devtools/front_end/common/Object.js b/third_party/WebKit/Source/devtools/front_end/common/Object.js
index fe01dd3e28e19a899a215803050bc76d43d93c54..8a308d907cd8188887c5a98b04364598dec39bf0 100644
--- a/third_party/WebKit/Source/devtools/front_end/common/Object.js
+++ b/third_party/WebKit/Source/devtools/front_end/common/Object.js
@@ -87,15 +87,21 @@
* @override
* @param {symbol} eventType
* @param {*=} eventData
+ * @return {boolean}
*/
dispatchEventToListeners(eventType, eventData) {
if (!this._listeners || !this._listeners.has(eventType))
- return;
-
- var event = new Common.Event(this, eventData);
+ return false;
+
+ var event = new Common.Event(this, eventType, eventData);
var listeners = this._listeners.get(eventType).slice(0);
- for (var i = 0; i < listeners.length; ++i)
+ for (var i = 0; i < listeners.length; ++i) {
listeners[i].listener.call(listeners[i].thisObject, event);
+ if (event._stoppedPropagation)
+ break;
+ }
+
+ return event.defaultPrevented;
}
};
@@ -105,11 +111,32 @@
Common.Event = class {
/**
* @param {!Common.EventTarget} target
+ * @param {symbol} type
* @param {*=} data
*/
- constructor(target, data) {
+ constructor(target, type, data) {
this.target = target;
+ this.type = type;
this.data = data;
+ this.defaultPrevented = false;
+ this._stoppedPropagation = false;
+ }
+
+ stopPropagation() {
+ this._stoppedPropagation = true;
+ }
+
+ preventDefault() {
+ this.defaultPrevented = true;
+ }
+
+ /**
+ * @param {boolean=} preventDefault
+ */
+ consume(preventDefault) {
+ this.stopPropagation();
+ if (preventDefault)
+ this.preventDefault();
}
};
@@ -157,6 +184,7 @@
/**
* @param {symbol} eventType
* @param {*=} eventData
+ * @return {boolean}
*/
dispatchEventToListeners(eventType, eventData) {},
};

Powered by Google App Engine
This is Rietveld 408576698