Chromium Code Reviews| Index: extensions/renderer/resources/data_receiver.js |
| diff --git a/extensions/renderer/resources/data_receiver.js b/extensions/renderer/resources/data_receiver.js |
| index 9224e967bc92293f8c60e8cb1374c7ceeba5dd0f..91fb4012dff4a6f01151b4ce1008568393a13f5c 100644 |
| --- a/extensions/renderer/resources/data_receiver.js |
| +++ b/extensions/renderer/resources/data_receiver.js |
| @@ -192,6 +192,46 @@ define('data_receiver', [ |
| } |
| }; |
| + DataReceiver.prototype.serialize = function() { |
|
raymes
2014/09/17 02:05:04
Please add comments to these :)
Sam McNally
2014/09/17 08:07:14
Done.
|
| + this.waiter_.stop(); |
| + if (this.receive_) { |
| + this.receive_.dispatchFatalError(this.fatalErrorValue_); |
| + this.receive_ = null; |
| + } |
| + var serialized = { |
| + source: this.router_.connector_.handle_, |
| + data_pipe: this.receivePipe_, |
| + fatal_error_value: this.fatalErrorValue_, |
| + bytes_received: this.bytesReceived_, |
| + paused: this.paused_, |
| + shut_down: this.shutDown_, |
| + }; |
| + this.router_.connector_.handle_ = null; |
| + this.router_.close(); |
| + this.shutDown_ = true; |
| + return Promise.resolve(serialized); |
| + }; |
| + |
| + DataReceiver.deserialize = function(serialized) { |
| + var receiver = $Object.create(DataReceiver.prototype); |
| + receiver.deserialize_(serialized); |
| + return receiver; |
| + }; |
| + |
| + DataReceiver.prototype.deserialize_ = function(serialized) { |
| + this.receivePipe_ = serialized.data_pipe; |
| + this.fatalErrorValue_ = serialized.fatal_error_value; |
| + this.bytesReceived_ = serialized.bytes_received; |
| + this.paused_ = serialized.paused; |
| + this.shutDown_ = serialized.shut_down; |
| + this.router_ = new router.Router(serialized.source); |
| + this.router_.setIncomingReceiver(this); |
| + this.source_ = new dataStream.DataSourceProxy(this.router_); |
| + this.waiter_ = new asyncWaiter.AsyncWaiter(this.receivePipe_, |
| + core.HANDLE_SIGNAL_READABLE, |
| + this.onHandleReady_.bind(this)); |
| + }; |
| + |
| /** |
| * Receive data from the DataSource. |
| * @return {Promise.<ArrayBuffer>} A promise to the received data. If an error |