| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 #include "wtf/Vector.h" | 55 #include "wtf/Vector.h" |
| 56 #include "wtf/text/StringBuffer.h" | 56 #include "wtf/text/StringBuffer.h" |
| 57 #include "wtf/text/StringHash.h" | 57 #include "wtf/text/StringHash.h" |
| 58 #include <memory> | 58 #include <memory> |
| 59 | 59 |
| 60 namespace blink { | 60 namespace blink { |
| 61 | 61 |
| 62 PassRefPtr<SerializedScriptValue> SerializedScriptValue::serialize( | 62 PassRefPtr<SerializedScriptValue> SerializedScriptValue::serialize( |
| 63 v8::Isolate* isolate, | 63 v8::Isolate* isolate, |
| 64 v8::Local<v8::Value> value, | 64 v8::Local<v8::Value> value, |
| 65 Transferables* transferables, | 65 const SerializeOptions& options, |
| 66 WebBlobInfoArray* blobInfo, | |
| 67 ExceptionState& exception) { | 66 ExceptionState& exception) { |
| 68 return SerializedScriptValueFactory::instance().create( | 67 return SerializedScriptValueFactory::instance().create(isolate, value, |
| 69 isolate, value, transferables, blobInfo, exception); | 68 options, exception); |
| 70 } | 69 } |
| 71 | 70 |
| 72 PassRefPtr<SerializedScriptValue> | 71 PassRefPtr<SerializedScriptValue> |
| 73 SerializedScriptValue::serializeAndSwallowExceptions( | 72 SerializedScriptValue::serializeAndSwallowExceptions( |
| 74 v8::Isolate* isolate, | 73 v8::Isolate* isolate, |
| 75 v8::Local<v8::Value> value) { | 74 v8::Local<v8::Value> value) { |
| 76 DummyExceptionStateForTesting exceptionState; | 75 DummyExceptionStateForTesting exceptionState; |
| 77 RefPtr<SerializedScriptValue> serialized = | 76 RefPtr<SerializedScriptValue> serialized = |
| 78 serialize(isolate, value, nullptr, nullptr, exceptionState); | 77 serialize(isolate, value, SerializeOptions(), exceptionState); |
| 79 if (exceptionState.hadException()) | 78 if (exceptionState.hadException()) |
| 80 return nullValue(); | 79 return nullValue(); |
| 81 return serialized.release(); | 80 return serialized.release(); |
| 82 } | 81 } |
| 83 | 82 |
| 84 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create() { | 83 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create() { |
| 85 return adoptRef(new SerializedScriptValue); | 84 return adoptRef(new SerializedScriptValue); |
| 86 } | 85 } |
| 87 | 86 |
| 88 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create( | 87 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create( |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 void SerializedScriptValue::transferArrayBuffers( | 252 void SerializedScriptValue::transferArrayBuffers( |
| 254 v8::Isolate* isolate, | 253 v8::Isolate* isolate, |
| 255 const ArrayBufferArray& arrayBuffers, | 254 const ArrayBufferArray& arrayBuffers, |
| 256 ExceptionState& exceptionState) { | 255 ExceptionState& exceptionState) { |
| 257 m_arrayBufferContentsArray = | 256 m_arrayBufferContentsArray = |
| 258 transferArrayBufferContents(isolate, arrayBuffers, exceptionState); | 257 transferArrayBufferContents(isolate, arrayBuffers, exceptionState); |
| 259 } | 258 } |
| 260 | 259 |
| 261 v8::Local<v8::Value> SerializedScriptValue::deserialize( | 260 v8::Local<v8::Value> SerializedScriptValue::deserialize( |
| 262 v8::Isolate* isolate, | 261 v8::Isolate* isolate, |
| 263 MessagePortArray* messagePorts, | 262 const DeserializeOptions& options) { |
| 264 const WebBlobInfoArray* blobInfo) { | 263 return SerializedScriptValueFactory::instance().deserialize(this, isolate, |
| 265 return SerializedScriptValueFactory::instance().deserialize( | 264 options); |
| 266 this, isolate, messagePorts, blobInfo); | |
| 267 } | 265 } |
| 268 | 266 |
| 269 bool SerializedScriptValue::extractTransferables( | 267 bool SerializedScriptValue::extractTransferables( |
| 270 v8::Isolate* isolate, | 268 v8::Isolate* isolate, |
| 271 v8::Local<v8::Value> value, | 269 v8::Local<v8::Value> value, |
| 272 int argumentIndex, | 270 int argumentIndex, |
| 273 Transferables& transferables, | 271 Transferables& transferables, |
| 274 ExceptionState& exceptionState) { | 272 ExceptionState& exceptionState) { |
| 275 if (value.IsEmpty() || value->IsUndefined()) | 273 if (value.IsEmpty() || value->IsUndefined()) |
| 276 return true; | 274 return true; |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 // Only (re)register allocation cost for transferables if this | 461 // Only (re)register allocation cost for transferables if this |
| 464 // SerializedScriptValue has explicitly unregistered them before. | 462 // SerializedScriptValue has explicitly unregistered them before. |
| 465 if (m_arrayBufferContentsArray && | 463 if (m_arrayBufferContentsArray && |
| 466 m_transferablesNeedExternalAllocationRegistration) { | 464 m_transferablesNeedExternalAllocationRegistration) { |
| 467 for (auto& buffer : *m_arrayBufferContentsArray) | 465 for (auto& buffer : *m_arrayBufferContentsArray) |
| 468 buffer.registerExternalAllocationWithCurrentContext(); | 466 buffer.registerExternalAllocationWithCurrentContext(); |
| 469 } | 467 } |
| 470 } | 468 } |
| 471 | 469 |
| 472 } // namespace blink | 470 } // namespace blink |
| OLD | NEW |