| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Nokia Inc. All rights reserved. | 2 * Copyright (C) 2008 Nokia Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 3 * Copyright (C) 2013 Samsung Electronics. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 */ | 28 */ |
| 29 | 29 |
| 30 /** | 30 /** |
| 31 * @unrestricted | 31 * @unrestricted |
| 32 */ | 32 */ |
| 33 WebInspector.DOMStorage = class extends WebInspector.Object { | 33 Resources.DOMStorage = class extends Common.Object { |
| 34 /** | 34 /** |
| 35 * @param {!WebInspector.DOMStorageModel} model | 35 * @param {!Resources.DOMStorageModel} model |
| 36 * @param {string} securityOrigin | 36 * @param {string} securityOrigin |
| 37 * @param {boolean} isLocalStorage | 37 * @param {boolean} isLocalStorage |
| 38 */ | 38 */ |
| 39 constructor(model, securityOrigin, isLocalStorage) { | 39 constructor(model, securityOrigin, isLocalStorage) { |
| 40 super(); | 40 super(); |
| 41 this._model = model; | 41 this._model = model; |
| 42 this._securityOrigin = securityOrigin; | 42 this._securityOrigin = securityOrigin; |
| 43 this._isLocalStorage = isLocalStorage; | 43 this._isLocalStorage = isLocalStorage; |
| 44 } | 44 } |
| 45 | 45 |
| 46 /** | 46 /** |
| 47 * @param {string} securityOrigin | 47 * @param {string} securityOrigin |
| 48 * @param {boolean} isLocalStorage | 48 * @param {boolean} isLocalStorage |
| 49 * @return {!Protocol.DOMStorage.StorageId} | 49 * @return {!Protocol.DOMStorage.StorageId} |
| 50 */ | 50 */ |
| 51 static storageId(securityOrigin, isLocalStorage) { | 51 static storageId(securityOrigin, isLocalStorage) { |
| 52 return {securityOrigin: securityOrigin, isLocalStorage: isLocalStorage}; | 52 return {securityOrigin: securityOrigin, isLocalStorage: isLocalStorage}; |
| 53 } | 53 } |
| 54 | 54 |
| 55 /** @return {!Protocol.DOMStorage.StorageId} */ | 55 /** @return {!Protocol.DOMStorage.StorageId} */ |
| 56 get id() { | 56 get id() { |
| 57 return WebInspector.DOMStorage.storageId(this._securityOrigin, this._isLocal
Storage); | 57 return Resources.DOMStorage.storageId(this._securityOrigin, this._isLocalSto
rage); |
| 58 } | 58 } |
| 59 | 59 |
| 60 /** @return {string} */ | 60 /** @return {string} */ |
| 61 get securityOrigin() { | 61 get securityOrigin() { |
| 62 return this._securityOrigin; | 62 return this._securityOrigin; |
| 63 } | 63 } |
| 64 | 64 |
| 65 /** @return {boolean} */ | 65 /** @return {boolean} */ |
| 66 get isLocalStorage() { | 66 get isLocalStorage() { |
| 67 return this._isLocalStorage; | 67 return this._isLocalStorage; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 85 /** | 85 /** |
| 86 * @param {string} key | 86 * @param {string} key |
| 87 */ | 87 */ |
| 88 removeItem(key) { | 88 removeItem(key) { |
| 89 this._model._agent.removeDOMStorageItem(this.id, key); | 89 this._model._agent.removeDOMStorageItem(this.id, key); |
| 90 } | 90 } |
| 91 }; | 91 }; |
| 92 | 92 |
| 93 | 93 |
| 94 /** @enum {symbol} */ | 94 /** @enum {symbol} */ |
| 95 WebInspector.DOMStorage.Events = { | 95 Resources.DOMStorage.Events = { |
| 96 DOMStorageItemsCleared: Symbol('DOMStorageItemsCleared'), | 96 DOMStorageItemsCleared: Symbol('DOMStorageItemsCleared'), |
| 97 DOMStorageItemRemoved: Symbol('DOMStorageItemRemoved'), | 97 DOMStorageItemRemoved: Symbol('DOMStorageItemRemoved'), |
| 98 DOMStorageItemAdded: Symbol('DOMStorageItemAdded'), | 98 DOMStorageItemAdded: Symbol('DOMStorageItemAdded'), |
| 99 DOMStorageItemUpdated: Symbol('DOMStorageItemUpdated') | 99 DOMStorageItemUpdated: Symbol('DOMStorageItemUpdated') |
| 100 }; | 100 }; |
| 101 | 101 |
| 102 /** | 102 /** |
| 103 * @unrestricted | 103 * @unrestricted |
| 104 */ | 104 */ |
| 105 WebInspector.DOMStorageModel = class extends WebInspector.SDKModel { | 105 Resources.DOMStorageModel = class extends SDK.SDKModel { |
| 106 /** | 106 /** |
| 107 * @param {!WebInspector.Target} target | 107 * @param {!SDK.Target} target |
| 108 * @param {!WebInspector.SecurityOriginManager} securityOriginManager | 108 * @param {!SDK.SecurityOriginManager} securityOriginManager |
| 109 */ | 109 */ |
| 110 constructor(target, securityOriginManager) { | 110 constructor(target, securityOriginManager) { |
| 111 super(WebInspector.DOMStorageModel, target); | 111 super(Resources.DOMStorageModel, target); |
| 112 | 112 |
| 113 this._securityOriginManager = securityOriginManager; | 113 this._securityOriginManager = securityOriginManager; |
| 114 /** @type {!Object.<string, !WebInspector.DOMStorage>} */ | 114 /** @type {!Object.<string, !Resources.DOMStorage>} */ |
| 115 this._storages = {}; | 115 this._storages = {}; |
| 116 this._agent = target.domstorageAgent(); | 116 this._agent = target.domstorageAgent(); |
| 117 } | 117 } |
| 118 | 118 |
| 119 /** | 119 /** |
| 120 * @param {!WebInspector.Target} target | 120 * @param {!SDK.Target} target |
| 121 * @return {!WebInspector.DOMStorageModel} | 121 * @return {!Resources.DOMStorageModel} |
| 122 */ | 122 */ |
| 123 static fromTarget(target) { | 123 static fromTarget(target) { |
| 124 var model = /** @type {?WebInspector.DOMStorageModel} */ (target.model(WebIn
spector.DOMStorageModel)); | 124 var model = /** @type {?Resources.DOMStorageModel} */ (target.model(Resource
s.DOMStorageModel)); |
| 125 if (!model) { | 125 if (!model) { |
| 126 model = new WebInspector.DOMStorageModel(target, WebInspector.SecurityOrig
inManager.fromTarget(target)); | 126 model = new Resources.DOMStorageModel(target, SDK.SecurityOriginManager.fr
omTarget(target)); |
| 127 } | 127 } |
| 128 return model; | 128 return model; |
| 129 } | 129 } |
| 130 | 130 |
| 131 enable() { | 131 enable() { |
| 132 if (this._enabled) | 132 if (this._enabled) |
| 133 return; | 133 return; |
| 134 | 134 |
| 135 this.target().registerDOMStorageDispatcher(new WebInspector.DOMStorageDispat
cher(this)); | 135 this.target().registerDOMStorageDispatcher(new Resources.DOMStorageDispatche
r(this)); |
| 136 this._securityOriginManager.addEventListener( | 136 this._securityOriginManager.addEventListener( |
| 137 WebInspector.SecurityOriginManager.Events.SecurityOriginAdded, this._sec
urityOriginAdded, this); | 137 SDK.SecurityOriginManager.Events.SecurityOriginAdded, this._securityOrig
inAdded, this); |
| 138 this._securityOriginManager.addEventListener( | 138 this._securityOriginManager.addEventListener( |
| 139 WebInspector.SecurityOriginManager.Events.SecurityOriginRemoved, this._s
ecurityOriginRemoved, this); | 139 SDK.SecurityOriginManager.Events.SecurityOriginRemoved, this._securityOr
iginRemoved, this); |
| 140 | 140 |
| 141 for (var securityOrigin of this._securityOriginManager.securityOrigins()) | 141 for (var securityOrigin of this._securityOriginManager.securityOrigins()) |
| 142 this._addOrigin(securityOrigin); | 142 this._addOrigin(securityOrigin); |
| 143 this._agent.enable(); | 143 this._agent.enable(); |
| 144 | 144 |
| 145 this._enabled = true; | 145 this._enabled = true; |
| 146 } | 146 } |
| 147 | 147 |
| 148 /** | 148 /** |
| 149 * @param {string} origin | 149 * @param {string} origin |
| 150 */ | 150 */ |
| 151 clearForOrigin(origin) { | 151 clearForOrigin(origin) { |
| 152 if (!this._enabled) | 152 if (!this._enabled) |
| 153 return; | 153 return; |
| 154 this._removeOrigin(origin); | 154 this._removeOrigin(origin); |
| 155 this._addOrigin(origin); | 155 this._addOrigin(origin); |
| 156 } | 156 } |
| 157 | 157 |
| 158 /** | 158 /** |
| 159 * @param {!WebInspector.Event} event | 159 * @param {!Common.Event} event |
| 160 */ | 160 */ |
| 161 _securityOriginAdded(event) { | 161 _securityOriginAdded(event) { |
| 162 this._addOrigin(/** @type {string} */ (event.data)); | 162 this._addOrigin(/** @type {string} */ (event.data)); |
| 163 } | 163 } |
| 164 | 164 |
| 165 /** | 165 /** |
| 166 * @param {string} securityOrigin | 166 * @param {string} securityOrigin |
| 167 */ | 167 */ |
| 168 _addOrigin(securityOrigin) { | 168 _addOrigin(securityOrigin) { |
| 169 var localStorageKey = this._storageKey(securityOrigin, true); | 169 var localStorageKey = this._storageKey(securityOrigin, true); |
| 170 console.assert(!this._storages[localStorageKey]); | 170 console.assert(!this._storages[localStorageKey]); |
| 171 var localStorage = new WebInspector.DOMStorage(this, securityOrigin, true); | 171 var localStorage = new Resources.DOMStorage(this, securityOrigin, true); |
| 172 this._storages[localStorageKey] = localStorage; | 172 this._storages[localStorageKey] = localStorage; |
| 173 this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorage
Added, localStorage); | 173 this.dispatchEventToListeners(Resources.DOMStorageModel.Events.DOMStorageAdd
ed, localStorage); |
| 174 | 174 |
| 175 var sessionStorageKey = this._storageKey(securityOrigin, false); | 175 var sessionStorageKey = this._storageKey(securityOrigin, false); |
| 176 console.assert(!this._storages[sessionStorageKey]); | 176 console.assert(!this._storages[sessionStorageKey]); |
| 177 var sessionStorage = new WebInspector.DOMStorage(this, securityOrigin, false
); | 177 var sessionStorage = new Resources.DOMStorage(this, securityOrigin, false); |
| 178 this._storages[sessionStorageKey] = sessionStorage; | 178 this._storages[sessionStorageKey] = sessionStorage; |
| 179 this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorage
Added, sessionStorage); | 179 this.dispatchEventToListeners(Resources.DOMStorageModel.Events.DOMStorageAdd
ed, sessionStorage); |
| 180 } | 180 } |
| 181 | 181 |
| 182 /** | 182 /** |
| 183 * @param {!WebInspector.Event} event | 183 * @param {!Common.Event} event |
| 184 */ | 184 */ |
| 185 _securityOriginRemoved(event) { | 185 _securityOriginRemoved(event) { |
| 186 this._removeOrigin(/** @type {string} */ (event.data)); | 186 this._removeOrigin(/** @type {string} */ (event.data)); |
| 187 } | 187 } |
| 188 | 188 |
| 189 /** | 189 /** |
| 190 * @param {string} securityOrigin | 190 * @param {string} securityOrigin |
| 191 */ | 191 */ |
| 192 _removeOrigin(securityOrigin) { | 192 _removeOrigin(securityOrigin) { |
| 193 var localStorageKey = this._storageKey(securityOrigin, true); | 193 var localStorageKey = this._storageKey(securityOrigin, true); |
| 194 var localStorage = this._storages[localStorageKey]; | 194 var localStorage = this._storages[localStorageKey]; |
| 195 console.assert(localStorage); | 195 console.assert(localStorage); |
| 196 delete this._storages[localStorageKey]; | 196 delete this._storages[localStorageKey]; |
| 197 this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorage
Removed, localStorage); | 197 this.dispatchEventToListeners(Resources.DOMStorageModel.Events.DOMStorageRem
oved, localStorage); |
| 198 | 198 |
| 199 var sessionStorageKey = this._storageKey(securityOrigin, false); | 199 var sessionStorageKey = this._storageKey(securityOrigin, false); |
| 200 var sessionStorage = this._storages[sessionStorageKey]; | 200 var sessionStorage = this._storages[sessionStorageKey]; |
| 201 console.assert(sessionStorage); | 201 console.assert(sessionStorage); |
| 202 delete this._storages[sessionStorageKey]; | 202 delete this._storages[sessionStorageKey]; |
| 203 this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorage
Removed, sessionStorage); | 203 this.dispatchEventToListeners(Resources.DOMStorageModel.Events.DOMStorageRem
oved, sessionStorage); |
| 204 } | 204 } |
| 205 | 205 |
| 206 /** | 206 /** |
| 207 * @param {string} securityOrigin | 207 * @param {string} securityOrigin |
| 208 * @param {boolean} isLocalStorage | 208 * @param {boolean} isLocalStorage |
| 209 * @return {string} | 209 * @return {string} |
| 210 */ | 210 */ |
| 211 _storageKey(securityOrigin, isLocalStorage) { | 211 _storageKey(securityOrigin, isLocalStorage) { |
| 212 return JSON.stringify(WebInspector.DOMStorage.storageId(securityOrigin, isLo
calStorage)); | 212 return JSON.stringify(Resources.DOMStorage.storageId(securityOrigin, isLocal
Storage)); |
| 213 } | 213 } |
| 214 | 214 |
| 215 /** | 215 /** |
| 216 * @param {!Protocol.DOMStorage.StorageId} storageId | 216 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 217 */ | 217 */ |
| 218 _domStorageItemsCleared(storageId) { | 218 _domStorageItemsCleared(storageId) { |
| 219 var domStorage = this.storageForId(storageId); | 219 var domStorage = this.storageForId(storageId); |
| 220 if (!domStorage) | 220 if (!domStorage) |
| 221 return; | 221 return; |
| 222 | 222 |
| 223 var eventData = {}; | 223 var eventData = {}; |
| 224 domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorag
eItemsCleared, eventData); | 224 domStorage.dispatchEventToListeners(Resources.DOMStorage.Events.DOMStorageIt
emsCleared, eventData); |
| 225 } | 225 } |
| 226 | 226 |
| 227 /** | 227 /** |
| 228 * @param {!Protocol.DOMStorage.StorageId} storageId | 228 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 229 * @param {string} key | 229 * @param {string} key |
| 230 */ | 230 */ |
| 231 _domStorageItemRemoved(storageId, key) { | 231 _domStorageItemRemoved(storageId, key) { |
| 232 var domStorage = this.storageForId(storageId); | 232 var domStorage = this.storageForId(storageId); |
| 233 if (!domStorage) | 233 if (!domStorage) |
| 234 return; | 234 return; |
| 235 | 235 |
| 236 var eventData = {key: key}; | 236 var eventData = {key: key}; |
| 237 domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorag
eItemRemoved, eventData); | 237 domStorage.dispatchEventToListeners(Resources.DOMStorage.Events.DOMStorageIt
emRemoved, eventData); |
| 238 } | 238 } |
| 239 | 239 |
| 240 /** | 240 /** |
| 241 * @param {!Protocol.DOMStorage.StorageId} storageId | 241 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 242 * @param {string} key | 242 * @param {string} key |
| 243 * @param {string} value | 243 * @param {string} value |
| 244 */ | 244 */ |
| 245 _domStorageItemAdded(storageId, key, value) { | 245 _domStorageItemAdded(storageId, key, value) { |
| 246 var domStorage = this.storageForId(storageId); | 246 var domStorage = this.storageForId(storageId); |
| 247 if (!domStorage) | 247 if (!domStorage) |
| 248 return; | 248 return; |
| 249 | 249 |
| 250 var eventData = {key: key, value: value}; | 250 var eventData = {key: key, value: value}; |
| 251 domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorag
eItemAdded, eventData); | 251 domStorage.dispatchEventToListeners(Resources.DOMStorage.Events.DOMStorageIt
emAdded, eventData); |
| 252 } | 252 } |
| 253 | 253 |
| 254 /** | 254 /** |
| 255 * @param {!Protocol.DOMStorage.StorageId} storageId | 255 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 256 * @param {string} key | 256 * @param {string} key |
| 257 * @param {string} oldValue | 257 * @param {string} oldValue |
| 258 * @param {string} value | 258 * @param {string} value |
| 259 */ | 259 */ |
| 260 _domStorageItemUpdated(storageId, key, oldValue, value) { | 260 _domStorageItemUpdated(storageId, key, oldValue, value) { |
| 261 var domStorage = this.storageForId(storageId); | 261 var domStorage = this.storageForId(storageId); |
| 262 if (!domStorage) | 262 if (!domStorage) |
| 263 return; | 263 return; |
| 264 | 264 |
| 265 var eventData = {key: key, oldValue: oldValue, value: value}; | 265 var eventData = {key: key, oldValue: oldValue, value: value}; |
| 266 domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorag
eItemUpdated, eventData); | 266 domStorage.dispatchEventToListeners(Resources.DOMStorage.Events.DOMStorageIt
emUpdated, eventData); |
| 267 } | 267 } |
| 268 | 268 |
| 269 /** | 269 /** |
| 270 * @param {!Protocol.DOMStorage.StorageId} storageId | 270 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 271 * @return {!WebInspector.DOMStorage} | 271 * @return {!Resources.DOMStorage} |
| 272 */ | 272 */ |
| 273 storageForId(storageId) { | 273 storageForId(storageId) { |
| 274 return this._storages[JSON.stringify(storageId)]; | 274 return this._storages[JSON.stringify(storageId)]; |
| 275 } | 275 } |
| 276 | 276 |
| 277 /** | 277 /** |
| 278 * @return {!Array.<!WebInspector.DOMStorage>} | 278 * @return {!Array.<!Resources.DOMStorage>} |
| 279 */ | 279 */ |
| 280 storages() { | 280 storages() { |
| 281 var result = []; | 281 var result = []; |
| 282 for (var id in this._storages) | 282 for (var id in this._storages) |
| 283 result.push(this._storages[id]); | 283 result.push(this._storages[id]); |
| 284 return result; | 284 return result; |
| 285 } | 285 } |
| 286 }; | 286 }; |
| 287 | 287 |
| 288 /** @enum {symbol} */ | 288 /** @enum {symbol} */ |
| 289 WebInspector.DOMStorageModel.Events = { | 289 Resources.DOMStorageModel.Events = { |
| 290 DOMStorageAdded: Symbol('DOMStorageAdded'), | 290 DOMStorageAdded: Symbol('DOMStorageAdded'), |
| 291 DOMStorageRemoved: Symbol('DOMStorageRemoved') | 291 DOMStorageRemoved: Symbol('DOMStorageRemoved') |
| 292 }; | 292 }; |
| 293 | 293 |
| 294 /** | 294 /** |
| 295 * @implements {Protocol.DOMStorageDispatcher} | 295 * @implements {Protocol.DOMStorageDispatcher} |
| 296 * @unrestricted | 296 * @unrestricted |
| 297 */ | 297 */ |
| 298 WebInspector.DOMStorageDispatcher = class { | 298 Resources.DOMStorageDispatcher = class { |
| 299 /** | 299 /** |
| 300 * @param {!WebInspector.DOMStorageModel} model | 300 * @param {!Resources.DOMStorageModel} model |
| 301 */ | 301 */ |
| 302 constructor(model) { | 302 constructor(model) { |
| 303 this._model = model; | 303 this._model = model; |
| 304 } | 304 } |
| 305 | 305 |
| 306 /** | 306 /** |
| 307 * @override | 307 * @override |
| 308 * @param {!Protocol.DOMStorage.StorageId} storageId | 308 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 309 */ | 309 */ |
| 310 domStorageItemsCleared(storageId) { | 310 domStorageItemsCleared(storageId) { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 335 * @param {!Protocol.DOMStorage.StorageId} storageId | 335 * @param {!Protocol.DOMStorage.StorageId} storageId |
| 336 * @param {string} key | 336 * @param {string} key |
| 337 * @param {string} oldValue | 337 * @param {string} oldValue |
| 338 * @param {string} value | 338 * @param {string} value |
| 339 */ | 339 */ |
| 340 domStorageItemUpdated(storageId, key, oldValue, value) { | 340 domStorageItemUpdated(storageId, key, oldValue, value) { |
| 341 this._model._domStorageItemUpdated(storageId, key, oldValue, value); | 341 this._model._domStorageItemUpdated(storageId, key, oldValue, value); |
| 342 } | 342 } |
| 343 }; | 343 }; |
| 344 | 344 |
| 345 WebInspector.DOMStorageModel._symbol = Symbol('DomStorage'); | 345 Resources.DOMStorageModel._symbol = Symbol('DomStorage'); |
| OLD | NEW |