| 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) {},
|
| };
|
|
|