| Index: third_party/WebKit/Source/devtools/front_end/bindings/FileUtils.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/FileUtils.js b/third_party/WebKit/Source/devtools/front_end/bindings/FileUtils.js
|
| index 0fc473edc9a5be4998884f6cd223208022dc94c8..444c6e07cd1d73d5028cb49333208f8bd2cd3491 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/bindings/FileUtils.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/bindings/FileUtils.js
|
| @@ -27,66 +27,63 @@
|
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
| -
|
| /**
|
| * @interface
|
| */
|
| -WebInspector.OutputStreamDelegate = function()
|
| -{
|
| -};
|
| +WebInspector.OutputStreamDelegate = function() {};
|
|
|
| WebInspector.OutputStreamDelegate.prototype = {
|
| - onTransferStarted: function() { },
|
| + onTransferStarted: function() {},
|
|
|
| - onTransferFinished: function() { },
|
| + onTransferFinished: function() {},
|
|
|
| - /**
|
| - * @param {!WebInspector.ChunkedReader} reader
|
| - */
|
| - onChunkTransferred: function(reader) { },
|
| + /**
|
| + * @param {!WebInspector.ChunkedReader} reader
|
| + */
|
| + onChunkTransferred: function(reader) {},
|
|
|
| - /**
|
| - * @param {!WebInspector.ChunkedReader} reader
|
| - * @param {!Event} event
|
| - */
|
| - onError: function(reader, event) { },
|
| + /**
|
| + * @param {!WebInspector.ChunkedReader} reader
|
| + * @param {!Event} event
|
| + */
|
| + onError: function(reader, event) {},
|
| };
|
|
|
| /**
|
| * @interface
|
| */
|
| -WebInspector.ChunkedReader = function()
|
| -{
|
| -};
|
| +WebInspector.ChunkedReader = function() {};
|
|
|
| WebInspector.ChunkedReader.prototype = {
|
| - /**
|
| - * @return {number}
|
| - */
|
| - fileSize: function() { },
|
| + /**
|
| + * @return {number}
|
| + */
|
| + fileSize: function() {},
|
|
|
| - /**
|
| - * @return {number}
|
| - */
|
| - loadedSize: function() { },
|
| + /**
|
| + * @return {number}
|
| + */
|
| + loadedSize: function() {},
|
|
|
| - /**
|
| - * @return {string}
|
| - */
|
| - fileName: function() { },
|
| + /**
|
| + * @return {string}
|
| + */
|
| + fileName: function() {},
|
|
|
| - cancel: function() { }
|
| + cancel: function() {}
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ChunkedReader}
|
| - * @param {!File} file
|
| - * @param {number} chunkSize
|
| - * @param {!WebInspector.OutputStreamDelegate} delegate
|
| + * @unrestricted
|
| */
|
| -WebInspector.ChunkedFileReader = function(file, chunkSize, delegate)
|
| -{
|
| +WebInspector.ChunkedFileReader = class {
|
| + /**
|
| + * @param {!File} file
|
| + * @param {number} chunkSize
|
| + * @param {!WebInspector.OutputStreamDelegate} delegate
|
| + */
|
| + constructor(file, chunkSize, delegate) {
|
| this._file = file;
|
| this._fileSize = file.size;
|
| this._loadedSize = 0;
|
| @@ -94,186 +91,170 @@ WebInspector.ChunkedFileReader = function(file, chunkSize, delegate)
|
| this._delegate = delegate;
|
| this._decoder = new TextDecoder();
|
| this._isCanceled = false;
|
| -};
|
| + }
|
|
|
| -WebInspector.ChunkedFileReader.prototype = {
|
| - /**
|
| - * @param {!WebInspector.OutputStream} output
|
| - */
|
| - start: function(output)
|
| - {
|
| - this._output = output;
|
| + /**
|
| + * @param {!WebInspector.OutputStream} output
|
| + */
|
| + start(output) {
|
| + this._output = output;
|
|
|
| - this._reader = new FileReader();
|
| - this._reader.onload = this._onChunkLoaded.bind(this);
|
| - this._reader.onerror = this._delegate.onError.bind(this._delegate, this);
|
| - this._delegate.onTransferStarted();
|
| - this._loadChunk();
|
| - },
|
| + this._reader = new FileReader();
|
| + this._reader.onload = this._onChunkLoaded.bind(this);
|
| + this._reader.onerror = this._delegate.onError.bind(this._delegate, this);
|
| + this._delegate.onTransferStarted();
|
| + this._loadChunk();
|
| + }
|
|
|
| - /**
|
| - * @override
|
| - */
|
| - cancel: function()
|
| - {
|
| - this._isCanceled = true;
|
| - },
|
| + /**
|
| + * @override
|
| + */
|
| + cancel() {
|
| + this._isCanceled = true;
|
| + }
|
|
|
| - /**
|
| - * @override
|
| - * @return {number}
|
| - */
|
| - loadedSize: function()
|
| - {
|
| - return this._loadedSize;
|
| - },
|
| + /**
|
| + * @override
|
| + * @return {number}
|
| + */
|
| + loadedSize() {
|
| + return this._loadedSize;
|
| + }
|
|
|
| - /**
|
| - * @override
|
| - * @return {number}
|
| - */
|
| - fileSize: function()
|
| - {
|
| - return this._fileSize;
|
| - },
|
| + /**
|
| + * @override
|
| + * @return {number}
|
| + */
|
| + fileSize() {
|
| + return this._fileSize;
|
| + }
|
|
|
| - /**
|
| - * @override
|
| - * @return {string}
|
| - */
|
| - fileName: function()
|
| - {
|
| - return this._file.name;
|
| - },
|
| + /**
|
| + * @override
|
| + * @return {string}
|
| + */
|
| + fileName() {
|
| + return this._file.name;
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _onChunkLoaded: function(event)
|
| - {
|
| - if (this._isCanceled)
|
| - return;
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _onChunkLoaded(event) {
|
| + if (this._isCanceled)
|
| + return;
|
|
|
| - if (event.target.readyState !== FileReader.DONE)
|
| - return;
|
| + if (event.target.readyState !== FileReader.DONE)
|
| + return;
|
|
|
| - var buffer = event.target.result;
|
| - this._loadedSize += buffer.byteLength;
|
| - var endOfFile = this._loadedSize === this._fileSize;
|
| - var decodedString = this._decoder.decode(buffer, {stream: !endOfFile});
|
| - this._output.write(decodedString);
|
| - if (this._isCanceled)
|
| - return;
|
| - this._delegate.onChunkTransferred(this);
|
| + var buffer = event.target.result;
|
| + this._loadedSize += buffer.byteLength;
|
| + var endOfFile = this._loadedSize === this._fileSize;
|
| + var decodedString = this._decoder.decode(buffer, {stream: !endOfFile});
|
| + this._output.write(decodedString);
|
| + if (this._isCanceled)
|
| + return;
|
| + this._delegate.onChunkTransferred(this);
|
|
|
| - if (endOfFile) {
|
| - this._file = null;
|
| - this._reader = null;
|
| - this._output.close();
|
| - this._delegate.onTransferFinished();
|
| - return;
|
| - }
|
| + if (endOfFile) {
|
| + this._file = null;
|
| + this._reader = null;
|
| + this._output.close();
|
| + this._delegate.onTransferFinished();
|
| + return;
|
| + }
|
|
|
| - this._loadChunk();
|
| - },
|
| + this._loadChunk();
|
| + }
|
|
|
| - _loadChunk: function()
|
| - {
|
| - var chunkStart = this._loadedSize;
|
| - var chunkEnd = Math.min(this._fileSize, chunkStart + this._chunkSize);
|
| - var nextPart = this._file.slice(chunkStart, chunkEnd);
|
| - this._reader.readAsArrayBuffer(nextPart);
|
| - }
|
| + _loadChunk() {
|
| + var chunkStart = this._loadedSize;
|
| + var chunkEnd = Math.min(this._fileSize, chunkStart + this._chunkSize);
|
| + var nextPart = this._file.slice(chunkStart, chunkEnd);
|
| + this._reader.readAsArrayBuffer(nextPart);
|
| + }
|
| };
|
|
|
| /**
|
| * @param {function(!File)} callback
|
| * @return {!Node}
|
| */
|
| -WebInspector.createFileSelectorElement = function(callback)
|
| -{
|
| - var fileSelectorElement = createElement("input");
|
| - fileSelectorElement.type = "file";
|
| - fileSelectorElement.style.display = "none";
|
| - fileSelectorElement.setAttribute("tabindex", -1);
|
| - fileSelectorElement.onchange = onChange;
|
| - function onChange(event)
|
| - {
|
| - callback(fileSelectorElement.files[0]);
|
| - }
|
| - return fileSelectorElement;
|
| +WebInspector.createFileSelectorElement = function(callback) {
|
| + var fileSelectorElement = createElement('input');
|
| + fileSelectorElement.type = 'file';
|
| + fileSelectorElement.style.display = 'none';
|
| + fileSelectorElement.setAttribute('tabindex', -1);
|
| + fileSelectorElement.onchange = onChange;
|
| + function onChange(event) {
|
| + callback(fileSelectorElement.files[0]);
|
| + }
|
| + return fileSelectorElement;
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.OutputStream}
|
| + * @unrestricted
|
| */
|
| -WebInspector.FileOutputStream = function()
|
| -{
|
| -};
|
| +WebInspector.FileOutputStream = class {
|
| + /**
|
| + * @param {string} fileName
|
| + * @param {function(boolean)} callback
|
| + */
|
| + open(fileName, callback) {
|
| + this._closed = false;
|
| + this._writeCallbacks = [];
|
| + this._fileName = fileName;
|
|
|
| -WebInspector.FileOutputStream.prototype = {
|
| /**
|
| - * @param {string} fileName
|
| - * @param {function(boolean)} callback
|
| + * @param {boolean} accepted
|
| + * @this {WebInspector.FileOutputStream}
|
| */
|
| - open: function(fileName, callback)
|
| - {
|
| - this._closed = false;
|
| - this._writeCallbacks = [];
|
| - this._fileName = fileName;
|
| + function callbackWrapper(accepted) {
|
| + if (accepted)
|
| + WebInspector.fileManager.addEventListener(
|
| + WebInspector.FileManager.Events.AppendedToURL, this._onAppendDone, this);
|
| + callback(accepted);
|
| + }
|
| + WebInspector.fileManager.save(this._fileName, '', true, callbackWrapper.bind(this));
|
| + }
|
|
|
| - /**
|
| - * @param {boolean} accepted
|
| - * @this {WebInspector.FileOutputStream}
|
| - */
|
| - function callbackWrapper(accepted)
|
| - {
|
| - if (accepted)
|
| - WebInspector.fileManager.addEventListener(WebInspector.FileManager.Events.AppendedToURL, this._onAppendDone, this);
|
| - callback(accepted);
|
| - }
|
| - WebInspector.fileManager.save(this._fileName, "", true, callbackWrapper.bind(this));
|
| - },
|
| + /**
|
| + * @override
|
| + * @param {string} data
|
| + * @param {function(!WebInspector.OutputStream)=} callback
|
| + */
|
| + write(data, callback) {
|
| + this._writeCallbacks.push(callback);
|
| + WebInspector.fileManager.append(this._fileName, data);
|
| + }
|
|
|
| - /**
|
| - * @override
|
| - * @param {string} data
|
| - * @param {function(!WebInspector.OutputStream)=} callback
|
| - */
|
| - write: function(data, callback)
|
| - {
|
| - this._writeCallbacks.push(callback);
|
| - WebInspector.fileManager.append(this._fileName, data);
|
| - },
|
| + /**
|
| + * @override
|
| + */
|
| + close() {
|
| + this._closed = true;
|
| + if (this._writeCallbacks.length)
|
| + return;
|
| + WebInspector.fileManager.removeEventListener(
|
| + WebInspector.FileManager.Events.AppendedToURL, this._onAppendDone, this);
|
| + WebInspector.fileManager.close(this._fileName);
|
| + }
|
|
|
| - /**
|
| - * @override
|
| - */
|
| - close: function()
|
| - {
|
| - this._closed = true;
|
| - if (this._writeCallbacks.length)
|
| - return;
|
| - WebInspector.fileManager.removeEventListener(WebInspector.FileManager.Events.AppendedToURL, this._onAppendDone, this);
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _onAppendDone(event) {
|
| + if (event.data !== this._fileName)
|
| + return;
|
| + var callback = this._writeCallbacks.shift();
|
| + if (callback)
|
| + callback(this);
|
| + if (!this._writeCallbacks.length) {
|
| + if (this._closed) {
|
| + WebInspector.fileManager.removeEventListener(
|
| + WebInspector.FileManager.Events.AppendedToURL, this._onAppendDone, this);
|
| WebInspector.fileManager.close(this._fileName);
|
| - },
|
| -
|
| - /**
|
| - * @param {!WebInspector.Event} event
|
| - */
|
| - _onAppendDone: function(event)
|
| - {
|
| - if (event.data !== this._fileName)
|
| - return;
|
| - var callback = this._writeCallbacks.shift();
|
| - if (callback)
|
| - callback(this);
|
| - if (!this._writeCallbacks.length) {
|
| - if (this._closed) {
|
| - WebInspector.fileManager.removeEventListener(WebInspector.FileManager.Events.AppendedToURL, this._onAppendDone, this);
|
| - WebInspector.fileManager.close(this._fileName);
|
| - }
|
| - }
|
| + }
|
| }
|
| + }
|
| };
|
|
|