OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 callback(this); | 100 callback(this); |
101 } | 101 } |
102 } | 102 } |
103 | 103 |
104 function errorHandler(e) | 104 function errorHandler(e) |
105 { | 105 { |
106 WebInspector.log("Failed to create temp file " + e.code + " : " + e.mess
age, | 106 WebInspector.log("Failed to create temp file " + e.code + " : " + e.mess
age, |
107 WebInspector.ConsoleMessage.MessageLevel.Error); | 107 WebInspector.ConsoleMessage.MessageLevel.Error); |
108 callback(null); | 108 callback(null); |
109 } | 109 } |
| 110 |
110 var boundErrorHandler = errorHandler.bind(this) | 111 var boundErrorHandler = errorHandler.bind(this) |
111 window.requestFileSystem(window.TEMPORARY, 10, didInitFs.bind(this), errorHa
ndler.bind(this)); | 112 /** |
| 113 * @this {WebInspector.TempFile} |
| 114 */ |
| 115 function didClearTempStorage() |
| 116 { |
| 117 window.requestFileSystem(window.TEMPORARY, 10, didInitFs.bind(this), bou
ndErrorHandler); |
| 118 } |
| 119 WebInspector.TempFile._ensureTempStorageCleared(didClearTempStorage.bind(thi
s)); |
112 } | 120 } |
113 | 121 |
114 WebInspector.TempFile.prototype = { | 122 WebInspector.TempFile.prototype = { |
115 /** | 123 /** |
116 * @param {!string} data | 124 * @param {!string} data |
117 * @param {!function(boolean)} callback | 125 * @param {!function(boolean)} callback |
118 */ | 126 */ |
119 write: function(data, callback) | 127 write: function(data, callback) |
120 { | 128 { |
121 var blob = new Blob([data], {type: 'text/plain'}); | 129 var blob = new Blob([data], {type: 'text/plain'}); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 */ | 186 */ |
179 getFile: function(callback) | 187 getFile: function(callback) |
180 { | 188 { |
181 function didFailToGetFile(error) | 189 function didFailToGetFile(error) |
182 { | 190 { |
183 WebInspector.log("Failed to load temp file: " + error.message, | 191 WebInspector.log("Failed to load temp file: " + error.message, |
184 WebInspector.ConsoleMessage.MessageLevel.Error); | 192 WebInspector.ConsoleMessage.MessageLevel.Error); |
185 callback(null); | 193 callback(null); |
186 } | 194 } |
187 this._fileEntry.file(callback, didFailToGetFile.bind(this)); | 195 this._fileEntry.file(callback, didFailToGetFile.bind(this)); |
| 196 }, |
| 197 |
| 198 remove: function() |
| 199 { |
| 200 if (this._fileEntry) |
| 201 this._fileEntry.remove(function() {}); |
188 } | 202 } |
189 } | 203 } |
190 | 204 |
191 /** | 205 /** |
192 * @constructor | 206 * @constructor |
193 * @param {!string} dirPath | 207 * @param {!string} dirPath |
194 * @param {!string} name | 208 * @param {!string} name |
195 */ | 209 */ |
196 WebInspector.BufferedTempFileWriter = function(dirPath, name) | 210 WebInspector.BufferedTempFileWriter = function(dirPath, name) |
197 { | 211 { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 | 286 |
273 _notifyFinished: function() | 287 _notifyFinished: function() |
274 { | 288 { |
275 this._isFinished = true; | 289 this._isFinished = true; |
276 if (this._tempFile) | 290 if (this._tempFile) |
277 this._tempFile.finishWriting(); | 291 this._tempFile.finishWriting(); |
278 if (this._finishCallback) | 292 if (this._finishCallback) |
279 this._finishCallback(this._tempFile); | 293 this._finishCallback(this._tempFile); |
280 } | 294 } |
281 } | 295 } |
| 296 |
| 297 /** |
| 298 * @constructor |
| 299 */ |
| 300 WebInspector.TempStorageCleaner = function() |
| 301 { |
| 302 this._worker = new SharedWorker("TempStorageSharedWorker.js", "TempStorage")
; |
| 303 this._callbacks = []; |
| 304 this._worker.port.onmessage = this._handleMessage.bind(this); |
| 305 this._worker.port.onerror = this._handleError.bind(this); |
| 306 } |
| 307 |
| 308 WebInspector.TempStorageCleaner.prototype = { |
| 309 /** |
| 310 * @param {!function()} callback |
| 311 */ |
| 312 ensureStorageCleared: function(callback) |
| 313 { |
| 314 if (this._callbacks) |
| 315 this._callbacks.push(callback); |
| 316 else |
| 317 callback(); |
| 318 }, |
| 319 |
| 320 _handleMessage: function(event) |
| 321 { |
| 322 if (event.data.type === "tempStorageCleared") { |
| 323 if (event.data.error) |
| 324 WebInspector.log(event.data.error, WebInspector.ConsoleMessage.M
essageLevel.Error); |
| 325 this._notifyCallbacks(); |
| 326 } |
| 327 }, |
| 328 |
| 329 _handleError: function(event) |
| 330 { |
| 331 WebInspector.log(WebInspector.UIString("Failed to clear temp storage: %s
", event.data), |
| 332 WebInspector.ConsoleMessage.MessageLevel.Error); |
| 333 this._notifyCallbacks(); |
| 334 }, |
| 335 |
| 336 _notifyCallbacks: function() |
| 337 { |
| 338 var callbacks = this._callbacks; |
| 339 this._callbacks = null; |
| 340 for (var i = 0; i < callbacks.length; i++) |
| 341 callbacks[i](); |
| 342 } |
| 343 } |
| 344 |
| 345 /** |
| 346 * @param {!function()} callback |
| 347 */ |
| 348 WebInspector.TempFile._ensureTempStorageCleared = function(callback) |
| 349 { |
| 350 if (!WebInspector.TempFile._storageCleaner) |
| 351 WebInspector.TempFile._storageCleaner = new WebInspector.TempStorageClea
ner(); |
| 352 WebInspector.TempFile._storageCleaner.ensureStorageCleared(callback); |
| 353 } |
OLD | NEW |