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

Side by Side Diff: extensions/renderer/messaging_bindings.cc

Issue 1543053002: Switch to standard integer types in extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@int-extensions-browser
Patch Set: Created 5 years 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
« no previous file with comments | « extensions/renderer/injection_host.h ('k') | extensions/renderer/module_system.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/renderer/messaging_bindings.h" 5 #include "extensions/renderer/messaging_bindings.h"
6 6
7 #include <stdint.h>
8
7 #include <map> 9 #include <map>
8 #include <string> 10 #include <string>
9 11
10 #include "base/basictypes.h"
11 #include "base/bind.h" 12 #include "base/bind.h"
12 #include "base/bind_helpers.h" 13 #include "base/bind_helpers.h"
13 #include "base/callback.h" 14 #include "base/callback.h"
14 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
16 #include "base/macros.h"
15 #include "base/memory/weak_ptr.h" 17 #include "base/memory/weak_ptr.h"
16 #include "base/message_loop/message_loop.h" 18 #include "base/message_loop/message_loop.h"
17 #include "base/values.h" 19 #include "base/values.h"
18 #include "components/guest_view/common/guest_view_constants.h" 20 #include "components/guest_view/common/guest_view_constants.h"
19 #include "content/public/child/v8_value_converter.h" 21 #include "content/public/child/v8_value_converter.h"
20 #include "content/public/common/child_process_host.h" 22 #include "content/public/common/child_process_host.h"
21 #include "content/public/renderer/render_frame.h" 23 #include "content/public/renderer/render_frame.h"
22 #include "content/public/renderer/render_thread.h" 24 #include "content/public/renderer/render_thread.h"
23 #include "extensions/common/api/messaging/message.h" 25 #include "extensions/common/api/messaging/message.h"
24 #include "extensions/common/extension_messages.h" 26 #include "extensions/common/extension_messages.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 g_port_tracker.Get().DeletePort(port_id); 172 g_port_tracker.Get().DeletePort(port_id);
171 dispatcher_->ClearPortData(port_id); 173 dispatcher_->ClearPortData(port_id);
172 } 174 }
173 175
174 // Sends a message along the given channel. 176 // Sends a message along the given channel.
175 void PostMessage(const v8::FunctionCallbackInfo<v8::Value>& args) { 177 void PostMessage(const v8::FunctionCallbackInfo<v8::Value>& args) {
176 content::RenderFrame* renderframe = context()->GetRenderFrame(); 178 content::RenderFrame* renderframe = context()->GetRenderFrame();
177 if (!renderframe) 179 if (!renderframe)
178 return; 180 return;
179 181
180 // Arguments are (int32 port_id, string message). 182 // Arguments are (int32_t port_id, string message).
181 CHECK(args.Length() == 2 && args[0]->IsInt32() && args[1]->IsString()); 183 CHECK(args.Length() == 2 && args[0]->IsInt32() && args[1]->IsString());
182 184
183 int port_id = args[0].As<v8::Int32>()->Value(); 185 int port_id = args[0].As<v8::Int32>()->Value();
184 if (!g_port_tracker.Get().HasPort(port_id)) { 186 if (!g_port_tracker.Get().HasPort(port_id)) {
185 v8::Local<v8::String> error_message = 187 v8::Local<v8::String> error_message =
186 ToV8StringUnsafe(args.GetIsolate(), kPortClosedError); 188 ToV8StringUnsafe(args.GetIsolate(), kPortClosedError);
187 args.GetIsolate()->ThrowException(v8::Exception::Error(error_message)); 189 args.GetIsolate()->ThrowException(v8::Exception::Error(error_message));
188 return; 190 return;
189 } 191 }
190 192
191 renderframe->Send(new ExtensionHostMsg_PostMessage( 193 renderframe->Send(new ExtensionHostMsg_PostMessage(
192 renderframe->GetRoutingID(), port_id, 194 renderframe->GetRoutingID(), port_id,
193 Message(*v8::String::Utf8Value(args[1]), 195 Message(*v8::String::Utf8Value(args[1]),
194 blink::WebUserGestureIndicator::isProcessingUserGesture()))); 196 blink::WebUserGestureIndicator::isProcessingUserGesture())));
195 } 197 }
196 198
197 // Forcefully disconnects a port. 199 // Forcefully disconnects a port.
198 void CloseChannel(const v8::FunctionCallbackInfo<v8::Value>& args) { 200 void CloseChannel(const v8::FunctionCallbackInfo<v8::Value>& args) {
199 // Arguments are (int32 port_id, boolean notify_browser). 201 // Arguments are (int32_t port_id, boolean notify_browser).
200 CHECK_EQ(2, args.Length()); 202 CHECK_EQ(2, args.Length());
201 CHECK(args[0]->IsInt32()); 203 CHECK(args[0]->IsInt32());
202 CHECK(args[1]->IsBoolean()); 204 CHECK(args[1]->IsBoolean());
203 205
204 int port_id = args[0].As<v8::Int32>()->Value(); 206 int port_id = args[0].As<v8::Int32>()->Value();
205 if (!g_port_tracker.Get().HasPort(port_id)) 207 if (!g_port_tracker.Get().HasPort(port_id))
206 return; 208 return;
207 209
208 // Send via the RenderThread because the RenderFrame might be closing. 210 // Send via the RenderThread because the RenderFrame might be closing.
209 bool notify_browser = args[1].As<v8::Boolean>()->Value(); 211 bool notify_browser = args[1].As<v8::Boolean>()->Value();
210 if (notify_browser) { 212 if (notify_browser) {
211 content::RenderThread::Get()->Send( 213 content::RenderThread::Get()->Send(
212 new ExtensionHostMsg_CloseChannel(port_id, std::string())); 214 new ExtensionHostMsg_CloseChannel(port_id, std::string()));
213 } 215 }
214 216
215 ClearPortDataAndNotifyDispatcher(port_id); 217 ClearPortDataAndNotifyDispatcher(port_id);
216 } 218 }
217 219
218 // A new port has been created for a context. This occurs both when script 220 // A new port has been created for a context. This occurs both when script
219 // opens a connection, and when a connection is opened to this script. 221 // opens a connection, and when a connection is opened to this script.
220 void PortAddRef(const v8::FunctionCallbackInfo<v8::Value>& args) { 222 void PortAddRef(const v8::FunctionCallbackInfo<v8::Value>& args) {
221 // Arguments are (int32 port_id). 223 // Arguments are (int32_t port_id).
222 CHECK_EQ(1, args.Length()); 224 CHECK_EQ(1, args.Length());
223 CHECK(args[0]->IsInt32()); 225 CHECK(args[0]->IsInt32());
224 226
225 int port_id = args[0].As<v8::Int32>()->Value(); 227 int port_id = args[0].As<v8::Int32>()->Value();
226 g_port_tracker.Get().AddReference(context(), port_id); 228 g_port_tracker.Get().AddReference(context(), port_id);
227 } 229 }
228 230
229 // The frame a port lived in has been destroyed. When there are no more 231 // The frame a port lived in has been destroyed. When there are no more
230 // frames with a reference to a given port, we will disconnect it and notify 232 // frames with a reference to a given port, we will disconnect it and notify
231 // the other end of the channel. 233 // the other end of the channel.
232 void PortRelease(const v8::FunctionCallbackInfo<v8::Value>& args) { 234 void PortRelease(const v8::FunctionCallbackInfo<v8::Value>& args) {
233 // Arguments are (int32 port_id). 235 // Arguments are (int32_t port_id).
234 CHECK(args.Length() == 1 && args[0]->IsInt32()); 236 CHECK(args.Length() == 1 && args[0]->IsInt32());
235 ReleasePort(args[0].As<v8::Int32>()->Value()); 237 ReleasePort(args[0].As<v8::Int32>()->Value());
236 } 238 }
237 239
238 // Releases the reference to |port_id| for this context, and clears all port 240 // Releases the reference to |port_id| for this context, and clears all port
239 // data if there are no more references. 241 // data if there are no more references.
240 void ReleasePort(int port_id) { 242 void ReleasePort(int port_id) {
241 if (g_port_tracker.Get().RemoveReference(context(), port_id) && 243 if (g_port_tracker.Get().RemoveReference(context(), port_id) &&
242 !g_port_tracker.Get().HasPort(port_id)) { 244 !g_port_tracker.Get().HasPort(port_id)) {
243 // Send via the RenderThread because the RenderFrame might be closing. 245 // Send via the RenderThread because the RenderFrame might be closing.
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 const ScriptContextSet& context_set, 496 const ScriptContextSet& context_set,
495 int port_id, 497 int port_id,
496 const std::string& error_message, 498 const std::string& error_message,
497 content::RenderFrame* restrict_to_render_frame) { 499 content::RenderFrame* restrict_to_render_frame) {
498 context_set.ForEach( 500 context_set.ForEach(
499 restrict_to_render_frame, 501 restrict_to_render_frame,
500 base::Bind(&DispatchOnDisconnectToScriptContext, port_id, error_message)); 502 base::Bind(&DispatchOnDisconnectToScriptContext, port_id, error_message));
501 } 503 }
502 504
503 } // namespace extensions 505 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/injection_host.h ('k') | extensions/renderer/module_system.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698