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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 function didTruncate(e) | 81 function didTruncate(e) |
82 { | 82 { |
83 this._writer = writer; | 83 this._writer = writer; |
84 writer.onwrite = null; | 84 writer.onwrite = null; |
85 writer.onerror = null; | 85 writer.onerror = null; |
86 callback(this); | 86 callback(this); |
87 } | 87 } |
88 | 88 |
89 function onTruncateError(e) | 89 function onTruncateError(e) |
90 { | 90 { |
91 WebInspector.console.log("Failed to truncate temp file " + e.code +
" : " + e.message, | 91 WebInspector.messageSink.addErrorMessage("Failed to truncate temp fi
le " + e.code + " : " + e.message); |
92 WebInspector.ConsoleMessage.MessageLevel.Error); | |
93 callback(null); | 92 callback(null); |
94 } | 93 } |
95 | 94 |
96 if (writer.length) { | 95 if (writer.length) { |
97 writer.onwrite = didTruncate.bind(this); | 96 writer.onwrite = didTruncate.bind(this); |
98 writer.onerror = onTruncateError; | 97 writer.onerror = onTruncateError; |
99 writer.truncate(0); | 98 writer.truncate(0); |
100 } else { | 99 } else { |
101 this._writer = writer; | 100 this._writer = writer; |
102 callback(this); | 101 callback(this); |
103 } | 102 } |
104 } | 103 } |
105 | 104 |
106 function errorHandler(e) | 105 function errorHandler(e) |
107 { | 106 { |
108 WebInspector.console.log("Failed to create temp file " + e.code + " : "
+ e.message, | 107 WebInspector.messageSink.addErrorMessage("Failed to create temp file " +
e.code + " : " + e.message); |
109 WebInspector.ConsoleMessage.MessageLevel.Error); | |
110 callback(null); | 108 callback(null); |
111 } | 109 } |
112 | 110 |
113 /** | 111 /** |
114 * @this {WebInspector.TempFile} | 112 * @this {WebInspector.TempFile} |
115 */ | 113 */ |
116 function didClearTempStorage() | 114 function didClearTempStorage() |
117 { | 115 { |
118 window.requestFileSystem(window.TEMPORARY, 10, didInitFs.bind(this), err
orHandler); | 116 window.requestFileSystem(window.TEMPORARY, 10, didInitFs.bind(this), err
orHandler); |
119 } | 117 } |
120 WebInspector.TempFile._ensureTempStorageCleared(didClearTempStorage.bind(thi
s)); | 118 WebInspector.TempFile._ensureTempStorageCleared(didClearTempStorage.bind(thi
s)); |
121 } | 119 } |
122 | 120 |
123 WebInspector.TempFile.prototype = { | 121 WebInspector.TempFile.prototype = { |
124 /** | 122 /** |
125 * @param {!string} data | 123 * @param {!string} data |
126 * @param {!function(boolean)} callback | 124 * @param {!function(boolean)} callback |
127 */ | 125 */ |
128 write: function(data, callback) | 126 write: function(data, callback) |
129 { | 127 { |
130 var blob = new Blob([data], {type: 'text/plain'}); | 128 var blob = new Blob([data], {type: 'text/plain'}); |
131 this._writer.onerror = function(e) | 129 this._writer.onerror = function(e) |
132 { | 130 { |
133 WebInspector.console.log("Failed to write into a temp file: " + e.me
ssage, | 131 WebInspector.messageSink.addErrorMessage("Failed to write into a tem
p file: " + e.message); |
134 WebInspector.ConsoleMessage.MessageLevel.Error); | |
135 callback(false); | 132 callback(false); |
136 } | 133 } |
137 this._writer.onwrite = function(e) | 134 this._writer.onwrite = function(e) |
138 { | 135 { |
139 callback(true); | 136 callback(true); |
140 } | 137 } |
141 this._writer.write(blob); | 138 this._writer.write(blob); |
142 }, | 139 }, |
143 | 140 |
144 finishWriting: function() | 141 finishWriting: function() |
(...skipping 15 matching lines...) Expand all Loading... |
160 | 157 |
161 /** | 158 /** |
162 * @this {FileReader} | 159 * @this {FileReader} |
163 */ | 160 */ |
164 reader.onloadend = function(e) | 161 reader.onloadend = function(e) |
165 { | 162 { |
166 callback(/** @type {?string} */ (this.result)); | 163 callback(/** @type {?string} */ (this.result)); |
167 } | 164 } |
168 reader.onerror = function(error) | 165 reader.onerror = function(error) |
169 { | 166 { |
170 WebInspector.console.log("Failed to read from temp file: " + err
or.message, | 167 WebInspector.messageSink.addErrorMessage("Failed to read from te
mp file: " + error.message); |
171 WebInspector.ConsoleMessage.MessageLevel.Error)
; | |
172 } | 168 } |
173 reader.readAsText(file); | 169 reader.readAsText(file); |
174 } | 170 } |
175 function didFailToGetFile(error) | 171 function didFailToGetFile(error) |
176 { | 172 { |
177 WebInspector.console.log("Failed to load temp file: " + error.messag
e, | 173 WebInspector.messageSink.addErrorMessage("Failed to load temp file:
" + error.message); |
178 WebInspector.ConsoleMessage.MessageLevel.Error); | |
179 callback(null); | 174 callback(null); |
180 } | 175 } |
181 this._fileEntry.file(didGetFile, didFailToGetFile); | 176 this._fileEntry.file(didGetFile, didFailToGetFile); |
182 }, | 177 }, |
183 | 178 |
184 /** | 179 /** |
185 * @param {!WebInspector.OutputStream} outputStream | 180 * @param {!WebInspector.OutputStream} outputStream |
186 * @param {!WebInspector.OutputStreamDelegate} delegate | 181 * @param {!WebInspector.OutputStreamDelegate} delegate |
187 */ | 182 */ |
188 writeToOutputSteam: function(outputStream, delegate) | 183 writeToOutputSteam: function(outputStream, delegate) |
189 { | 184 { |
190 /** | 185 /** |
191 * @param {!File} file | 186 * @param {!File} file |
192 */ | 187 */ |
193 function didGetFile(file) | 188 function didGetFile(file) |
194 { | 189 { |
195 var reader = new WebInspector.ChunkedFileReader(file, 10*1000*1000,
delegate); | 190 var reader = new WebInspector.ChunkedFileReader(file, 10*1000*1000,
delegate); |
196 reader.start(outputStream); | 191 reader.start(outputStream); |
197 } | 192 } |
198 | 193 |
199 function didFailToGetFile(error) | 194 function didFailToGetFile(error) |
200 { | 195 { |
201 WebInspector.console.log("Failed to load temp file: " + error.messag
e, | 196 WebInspector.messageSink.addErrorMessage("Failed to load temp file:
" + error.message); |
202 WebInspector.ConsoleMessage.MessageLevel.Error); | |
203 outputStream.close(); | 197 outputStream.close(); |
204 } | 198 } |
205 | 199 |
206 this._fileEntry.file(didGetFile, didFailToGetFile); | 200 this._fileEntry.file(didGetFile, didFailToGetFile); |
207 }, | 201 }, |
208 | 202 |
209 remove: function() | 203 remove: function() |
210 { | 204 { |
211 if (this._fileEntry) | 205 if (this._fileEntry) |
212 this._fileEntry.remove(function() {}); | 206 this._fileEntry.remove(function() {}); |
(...skipping 17 matching lines...) Expand all Loading... |
230 | 224 |
231 WebInspector.BufferedTempFileWriter.prototype = { | 225 WebInspector.BufferedTempFileWriter.prototype = { |
232 /** | 226 /** |
233 * @param {!string} data | 227 * @param {!string} data |
234 */ | 228 */ |
235 write: function(data) | 229 write: function(data) |
236 { | 230 { |
237 if (!this._chunks) | 231 if (!this._chunks) |
238 return; | 232 return; |
239 if (this._finishCallback) | 233 if (this._finishCallback) |
240 throw new Error("Now writes are allowed after close."); | 234 throw new Error("No writes are allowed after close."); |
241 this._chunks.push(data); | 235 this._chunks.push(data); |
242 if (this._tempFile && !this._isWriting) | 236 if (this._tempFile && !this._isWriting) |
243 this._writeNextChunk(); | 237 this._writeNextChunk(); |
244 }, | 238 }, |
245 | 239 |
246 /** | 240 /** |
247 * @param {!function(?WebInspector.TempFile)} callback | 241 * @param {!function(?WebInspector.TempFile)} callback |
248 */ | 242 */ |
249 close: function(callback) | 243 close: function(callback) |
250 { | 244 { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 if (this._callbacks) | 321 if (this._callbacks) |
328 this._callbacks.push(callback); | 322 this._callbacks.push(callback); |
329 else | 323 else |
330 callback(); | 324 callback(); |
331 }, | 325 }, |
332 | 326 |
333 _handleMessage: function(event) | 327 _handleMessage: function(event) |
334 { | 328 { |
335 if (event.data.type === "tempStorageCleared") { | 329 if (event.data.type === "tempStorageCleared") { |
336 if (event.data.error) | 330 if (event.data.error) |
337 WebInspector.console.log(event.data.error, WebInspector.ConsoleM
essage.MessageLevel.Error); | 331 WebInspector.messageSink.addErrorMessage(event.data.error); |
338 this._notifyCallbacks(); | 332 this._notifyCallbacks(); |
339 } | 333 } |
340 }, | 334 }, |
341 | 335 |
342 _handleError: function(event) | 336 _handleError: function(event) |
343 { | 337 { |
344 WebInspector.console.log(WebInspector.UIString("Failed to clear temp sto
rage: %s", event.data), | 338 WebInspector.messageSink.addErrorMessage(WebInspector.UIString("Failed t
o clear temp storage: %s", event.data)); |
345 WebInspector.ConsoleMessage.MessageLevel.Error); | |
346 this._notifyCallbacks(); | 339 this._notifyCallbacks(); |
347 }, | 340 }, |
348 | 341 |
349 _notifyCallbacks: function() | 342 _notifyCallbacks: function() |
350 { | 343 { |
351 var callbacks = this._callbacks; | 344 var callbacks = this._callbacks; |
352 this._callbacks = null; | 345 this._callbacks = null; |
353 for (var i = 0; i < callbacks.length; i++) | 346 for (var i = 0; i < callbacks.length; i++) |
354 callbacks[i](); | 347 callbacks[i](); |
355 } | 348 } |
356 } | 349 } |
357 | 350 |
358 /** | 351 /** |
359 * @param {!function()} callback | 352 * @param {!function()} callback |
360 */ | 353 */ |
361 WebInspector.TempFile._ensureTempStorageCleared = function(callback) | 354 WebInspector.TempFile._ensureTempStorageCleared = function(callback) |
362 { | 355 { |
363 if (!WebInspector.TempFile._storageCleaner) | 356 if (!WebInspector.TempFile._storageCleaner) |
364 WebInspector.TempFile._storageCleaner = new WebInspector.TempStorageClea
ner(); | 357 WebInspector.TempFile._storageCleaner = new WebInspector.TempStorageClea
ner(); |
365 WebInspector.TempFile._storageCleaner.ensureStorageCleared(callback); | 358 WebInspector.TempFile._storageCleaner.ensureStorageCleared(callback); |
366 } | 359 } |
OLD | NEW |