Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Side by Side Diff: content/child/webmessageportchannel_impl.cc

Issue 1113783002: Use Local instead of Handle in src/content/* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/child/webmessageportchannel_impl.h" 5 #include "content/child/webmessageportchannel_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "content/child/child_process.h" 10 #include "content/child/child_process.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 main_thread_task_runner_->ReleaseSoon(FROM_HERE, this); 146 main_thread_task_runner_->ReleaseSoon(FROM_HERE, this);
147 } 147 }
148 148
149 void WebMessagePortChannelImpl::postMessage( 149 void WebMessagePortChannelImpl::postMessage(
150 const WebString& message_as_string, 150 const WebString& message_as_string,
151 WebMessagePortChannelArray* channels) { 151 WebMessagePortChannelArray* channels) {
152 MessagePortMessage message(message_as_string); 152 MessagePortMessage message(message_as_string);
153 if (send_messages_as_values_) { 153 if (send_messages_as_values_) {
154 blink::WebSerializedScriptValue serialized_value = 154 blink::WebSerializedScriptValue serialized_value =
155 blink::WebSerializedScriptValue::fromString(message_as_string); 155 blink::WebSerializedScriptValue::fromString(message_as_string);
156 v8::Handle<v8::Value> v8_value = serialized_value.deserialize(); 156 v8::Local<v8::Value> v8_value = serialized_value.deserialize();
157 scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create()); 157 scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
158 converter->SetDateAllowed(true); 158 converter->SetDateAllowed(true);
159 converter->SetRegExpAllowed(true); 159 converter->SetRegExpAllowed(true);
160 scoped_ptr<base::Value> message_as_value(converter->FromV8Value( 160 scoped_ptr<base::Value> message_as_value(converter->FromV8Value(
161 v8_value, v8::Isolate::GetCurrent()->GetCurrentContext())); 161 v8_value, v8::Isolate::GetCurrent()->GetCurrentContext()));
162 message = MessagePortMessage(message_as_value.Pass()); 162 message = MessagePortMessage(message_as_value.Pass());
163 } 163 }
164 if (!main_thread_task_runner_->BelongsToCurrentThread()) { 164 if (!main_thread_task_runner_->BelongsToCurrentThread()) {
165 main_thread_task_runner_->PostTask( 165 main_thread_task_runner_->PostTask(
166 FROM_HERE, base::Bind(&WebMessagePortChannelImpl::PostMessage, this, 166 FROM_HERE, base::Bind(&WebMessagePortChannelImpl::PostMessage, this,
(...skipping 20 matching lines...) Expand all
187 187
188 const MessagePortMessage& data = message_queue_.front().message; 188 const MessagePortMessage& data = message_queue_.front().message;
189 DCHECK(data.is_string() != data.is_value()); 189 DCHECK(data.is_string() != data.is_value());
190 if (data.is_value()) { 190 if (data.is_value()) {
191 v8::HandleScope handle_scope(client_->scriptIsolate()); 191 v8::HandleScope handle_scope(client_->scriptIsolate());
192 v8::Context::Scope context_scope( 192 v8::Context::Scope context_scope(
193 client_->scriptContextForMessageConversion()); 193 client_->scriptContextForMessageConversion());
194 scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create()); 194 scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
195 converter->SetDateAllowed(true); 195 converter->SetDateAllowed(true);
196 converter->SetRegExpAllowed(true); 196 converter->SetRegExpAllowed(true);
197 v8::Handle<v8::Value> v8_value = converter->ToV8Value( 197 v8::Local<v8::Value> v8_value = converter->ToV8Value(
198 data.as_value(), client_->scriptContextForMessageConversion()); 198 data.as_value(), client_->scriptContextForMessageConversion());
199 blink::WebSerializedScriptValue serialized_value = 199 blink::WebSerializedScriptValue serialized_value =
200 blink::WebSerializedScriptValue::serialize(v8_value); 200 blink::WebSerializedScriptValue::serialize(v8_value);
201 *message = serialized_value.toString(); 201 *message = serialized_value.toString();
202 } else { 202 } else {
203 *message = message_queue_.front().message.message_as_string; 203 *message = message_queue_.front().message.message_as_string;
204 } 204 }
205 channels = message_queue_.front().ports; 205 channels = message_queue_.front().ports;
206 message_queue_.pop(); 206 message_queue_.pop();
207 return true; 207 return true;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 320
321 Release(); 321 Release();
322 ChildProcess::current()->ReleaseProcess(); 322 ChildProcess::current()->ReleaseProcess();
323 } 323 }
324 324
325 WebMessagePortChannelImpl::Message::Message() {} 325 WebMessagePortChannelImpl::Message::Message() {}
326 326
327 WebMessagePortChannelImpl::Message::~Message() {} 327 WebMessagePortChannelImpl::Message::~Message() {}
328 328
329 } // namespace content 329 } // namespace content
OLDNEW
« no previous file with comments | « content/child/v8_value_converter_impl_unittest.cc ('k') | content/public/child/v8_value_converter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698