diff options
author | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-18 18:49:47 +0000 |
---|---|---|
committer | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-18 18:49:47 +0000 |
commit | d10d2cf2d284daa024deb9a512868c55608dfd1c (patch) | |
tree | 533d4748d1bf2eb98b12fdfc1b367f7904a05983 /ppapi/proxy/serialized_var.cc | |
parent | 5b1840636a2ba72b9de48735ec05125a61759b07 (diff) | |
download | chromium_src-d10d2cf2d284daa024deb9a512868c55608dfd1c.zip chromium_src-d10d2cf2d284daa024deb9a512868c55608dfd1c.tar.gz chromium_src-d10d2cf2d284daa024deb9a512868c55608dfd1c.tar.bz2 |
Revert 207040 "Don't send PP_Vars/V8 values with cycles across P..."
> Don't send PP_Vars/V8 values with cycles across PostMessage
>
> This prevents PP_Vars/V8 values with cycles being transmitted across PostMessage. An undefined value will be sent instead and an error will be logged to the console.
>
> BUG=236958
>
> Review URL: https://chromiumcodereview.appspot.com/16140011
TBR=raymes@chromium.org
Review URL: https://codereview.chromium.org/17239007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207043 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/serialized_var.cc')
-rw-r--r-- | ppapi/proxy/serialized_var.cc | 39 |
1 files changed, 4 insertions, 35 deletions
diff --git a/ppapi/proxy/serialized_var.cc b/ppapi/proxy/serialized_var.cc index 72e7cc8..1217a83 100644 --- a/ppapi/proxy/serialized_var.cc +++ b/ppapi/proxy/serialized_var.cc @@ -18,20 +18,13 @@ namespace ppapi { namespace proxy { -namespace { -void DefaultHandleWriter(IPC::Message* m, const SerializedHandle& handle) { - IPC::ParamTraits<SerializedHandle>::Write(m, handle); -} -} // namespace - // SerializedVar::Inner -------------------------------------------------------- SerializedVar::Inner::Inner() : serialization_rules_(NULL), var_(PP_MakeUndefined()), instance_(0), - cleanup_mode_(CLEANUP_NONE), - is_valid_var_(true) { + cleanup_mode_(CLEANUP_NONE) { #ifndef NDEBUG has_been_serialized_ = false; has_been_deserialized_ = false; @@ -114,24 +107,7 @@ void SerializedVar::Inner::WriteToMessage(IPC::Message* m) const { DCHECK(!has_been_serialized_); has_been_serialized_ = true; #endif - scoped_ptr<RawVarDataGraph> data = RawVarDataGraph::Create(var_, instance_); - if (data) { - m->WriteBool(true); // Success. - data->Write(m, base::Bind(&DefaultHandleWriter)); - } else { - m->WriteBool(false); // Failure. - } -} - -void SerializedVar::Inner::WriteDataToMessage( - IPC::Message* m, - const HandleWriter& handle_writer) const { - if (raw_var_data_) { - m->WriteBool(true); // Success. - raw_var_data_->Write(m, handle_writer); - } else { - m->WriteBool(false); // Failure. - } + RawVarDataGraph::Create(var_, instance_)->Write(m); } bool SerializedVar::Inner::ReadFromMessage(const IPC::Message* m, @@ -149,15 +125,8 @@ bool SerializedVar::Inner::ReadFromMessage(const IPC::Message* m, #endif // When reading, the dispatcher should be set when we get a Deserialize // call (which will supply a dispatcher). - if (!m->ReadBool(iter, &is_valid_var_)) - return false; - if (is_valid_var_) { - raw_var_data_ = RawVarDataGraph::Read(m, iter); - if (!raw_var_data_) - return false; - } - - return true; + raw_var_data_ = RawVarDataGraph::Read(m, iter); + return raw_var_data_.get() != NULL; } void SerializedVar::Inner::SetCleanupModeToEndSendPassRef() { |