Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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; |
| OLD | NEW |