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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/persistence/Persistence.js

Issue 2533483002: [DevTools] Typed events and event listeners. (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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /** 4 /**
5 * @unrestricted 5 * @unrestricted
6 */ 6 */
7 Persistence.Persistence = class extends Common.Object { 7 Persistence.Persistence = class extends Common.ObjectBase {
8 /** 8 /**
9 * @param {!Workspace.Workspace} workspace 9 * @param {!Workspace.Workspace} workspace
10 * @param {!Bindings.BreakpointManager} breakpointManager 10 * @param {!Bindings.BreakpointManager} breakpointManager
11 * @param {!Workspace.FileSystemMapping} fileSystemMapping 11 * @param {!Workspace.FileSystemMapping} fileSystemMapping
12 */ 12 */
13 constructor(workspace, breakpointManager, fileSystemMapping) { 13 constructor(workspace, breakpointManager, fileSystemMapping) {
14 super(); 14 super();
15 this._workspace = workspace; 15 this._workspace = workspace;
16 this._breakpointManager = breakpointManager; 16 this._breakpointManager = breakpointManager;
17 /** @type {!Map<string, number>} */ 17 /** @type {!Map<string, number>} */
(...skipping 28 matching lines...) Expand all
46 binding.fileSystem.forceLoadOnCheckContent(); 46 binding.fileSystem.forceLoadOnCheckContent();
47 47
48 binding.network.addEventListener( 48 binding.network.addEventListener(
49 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this); 49 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this);
50 binding.fileSystem.addEventListener( 50 binding.fileSystem.addEventListener(
51 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this); 51 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this);
52 52
53 this._addFilePathBindingPrefixes(binding.fileSystem.url()); 53 this._addFilePathBindingPrefixes(binding.fileSystem.url());
54 54
55 this._moveBreakpoints(binding.fileSystem, binding.network); 55 this._moveBreakpoints(binding.fileSystem, binding.network);
56 this.dispatchEventToListeners(Persistence.Persistence.Events.BindingCreated, binding); 56 this.dispatchEventToListeners(
57 new Persistence.Persistence.BindingChangedEvent(binding, true /* created */, false /* removed */));
57 } 58 }
58 59
59 /** 60 /**
60 * @param {!Persistence.PersistenceBinding} binding 61 * @param {!Persistence.PersistenceBinding} binding
61 */ 62 */
62 _onBindingRemoved(binding) { 63 _onBindingRemoved(binding) {
63 if (binding.network.isDirty()) 64 if (binding.network.isDirty())
64 binding.fileSystem.setWorkingCopy(binding.network.workingCopy()); 65 binding.fileSystem.setWorkingCopy(binding.network.workingCopy());
65 66
66 binding.network[Persistence.Persistence._binding] = null; 67 binding.network[Persistence.Persistence._binding] = null;
67 binding.fileSystem[Persistence.Persistence._binding] = null; 68 binding.fileSystem[Persistence.Persistence._binding] = null;
68 69
69 binding.network.removeEventListener( 70 binding.network.removeEventListener(
70 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this); 71 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this);
71 binding.fileSystem.removeEventListener( 72 binding.fileSystem.removeEventListener(
72 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this); 73 Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyC ommitted, this);
73 74
74 this._removeFilePathBindingPrefixes(binding.fileSystem.url()); 75 this._removeFilePathBindingPrefixes(binding.fileSystem.url());
75 76
76 this._breakpointManager.copyBreakpoints(binding.network.url(), binding.fileS ystem); 77 this._breakpointManager.copyBreakpoints(binding.network.url(), binding.fileS ystem);
77 this.dispatchEventToListeners(Persistence.Persistence.Events.BindingRemoved, binding); 78 this.dispatchEventToListeners(
79 new Persistence.Persistence.BindingChangedEvent(binding, false /* create d */, true /* removed */));
78 } 80 }
79 81
80 /** 82 /**
81 * @param {!Common.Event} event 83 * @param {!Common.Event} event
82 */ 84 */
83 _onWorkingCopyCommitted(event) { 85 _onWorkingCopyCommitted(event) {
84 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (event.target); 86 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (event.target);
85 var binding = uiSourceCode[Persistence.Persistence._binding]; 87 var binding = uiSourceCode[Persistence.Persistence._binding];
86 if (!binding || binding[Persistence.Persistence._muteCommit]) 88 if (!binding || binding[Persistence.Persistence._muteCommit])
87 return; 89 return;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 220 }
219 }; 221 };
220 222
221 Persistence.Persistence._binding = Symbol('Persistence.Binding'); 223 Persistence.Persistence._binding = Symbol('Persistence.Binding');
222 Persistence.Persistence._muteCommit = Symbol('Persistence.MuteCommit'); 224 Persistence.Persistence._muteCommit = Symbol('Persistence.MuteCommit');
223 225
224 Persistence.Persistence._NodePrefix = '(function (exports, require, module, __fi lename, __dirname) { '; 226 Persistence.Persistence._NodePrefix = '(function (exports, require, module, __fi lename, __dirname) { ';
225 Persistence.Persistence._NodeSuffix = '\n});'; 227 Persistence.Persistence._NodeSuffix = '\n});';
226 Persistence.Persistence._NodeShebang = '#!/usr/bin/env node\n'; 228 Persistence.Persistence._NodeShebang = '#!/usr/bin/env node\n';
227 229
228 Persistence.Persistence.Events = { 230 Persistence.Persistence.BindingChangedEvent = class {
pfeldman 2016/11/28 19:30:38 "FooEvent" should inherit from "Event" and have pr
229 BindingCreated: Symbol('BindingCreated'), 231 /**
230 BindingRemoved: Symbol('BindingRemoved') 232 * @param {!Persistence.PersistenceBinding} binding
233 * @param {boolean} created
234 * @param {boolean} removed
235 */
236 constructor(binding, created, removed) {
237 this.binding = binding;
238 this.created = created;
239 this.removed = removed;
240 }
231 }; 241 };
232 242
233 /** 243 /**
234 * @unrestricted 244 * @unrestricted
235 */ 245 */
236 Persistence.PersistenceBinding = class { 246 Persistence.PersistenceBinding = class {
237 /** 247 /**
238 * @param {!Workspace.UISourceCode} network 248 * @param {!Workspace.UISourceCode} network
239 * @param {!Workspace.UISourceCode} fileSystem 249 * @param {!Workspace.UISourceCode} fileSystem
240 * @param {boolean} exactMatch 250 * @param {boolean} exactMatch
241 */ 251 */
242 constructor(network, fileSystem, exactMatch) { 252 constructor(network, fileSystem, exactMatch) {
243 this.network = network; 253 this.network = network;
244 this.fileSystem = fileSystem; 254 this.fileSystem = fileSystem;
245 this.exactMatch = exactMatch; 255 this.exactMatch = exactMatch;
246 } 256 }
247 }; 257 };
248 258
249 /** @type {!Persistence.Persistence} */ 259 /** @type {!Persistence.Persistence} */
250 Persistence.persistence; 260 Persistence.persistence;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698