OLD | NEW |
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 "chrome/renderer/extensions/event_bindings.h" | 5 #include "chrome/renderer/extensions/event_bindings.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
11 #include "base/message_loop.h" | 11 #include "base/message_loop.h" |
12 #include "chrome/common/extensions/extension_messages.h" | 12 #include "chrome/common/extensions/extension_messages.h" |
13 #include "chrome/common/extensions/extension_set.h" | 13 #include "chrome/common/extensions/extension_set.h" |
14 #include "chrome/common/url_constants.h" | 14 #include "chrome/common/url_constants.h" |
| 15 #include "chrome/renderer/chrome_render_process_observer.h" |
15 #include "chrome/renderer/extensions/bindings_utils.h" | 16 #include "chrome/renderer/extensions/bindings_utils.h" |
16 #include "chrome/renderer/extensions/event_bindings.h" | 17 #include "chrome/renderer/extensions/event_bindings.h" |
17 #include "chrome/renderer/extensions/extension_dispatcher.h" | 18 #include "chrome/renderer/extensions/extension_dispatcher.h" |
18 #include "chrome/renderer/extensions/extension_process_bindings.h" | 19 #include "chrome/renderer/extensions/extension_process_bindings.h" |
19 #include "chrome/renderer/extensions/js_only_v8_extensions.h" | 20 #include "chrome/renderer/extensions/js_only_v8_extensions.h" |
20 #include "chrome/renderer/extensions/user_script_slave.h" | 21 #include "chrome/renderer/extensions/user_script_slave.h" |
21 #include "content/renderer/render_thread.h" | 22 #include "content/renderer/render_thread.h" |
22 #include "content/renderer/render_view.h" | 23 #include "content/renderer/render_view.h" |
23 #include "content/renderer/v8_value_converter.h" | 24 #include "content/renderer/v8_value_converter.h" |
24 #include "googleurl/src/gurl.h" | 25 #include "googleurl/src/gurl.h" |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 // so we give a fake extension id; | 332 // so we give a fake extension id; |
332 extension_id = kTestingExtensionId; | 333 extension_id = kTestingExtensionId; |
333 } | 334 } |
334 | 335 |
335 persistent_context = v8::Persistent<v8::Context>::New(context); | 336 persistent_context = v8::Persistent<v8::Context>::New(context); |
336 } | 337 } |
337 | 338 |
338 contexts.push_back(linked_ptr<ContextInfo>( | 339 contexts.push_back(linked_ptr<ContextInfo>( |
339 new ContextInfo(persistent_context, main_world_context, extension_id))); | 340 new ContextInfo(persistent_context, main_world_context, extension_id))); |
340 | 341 |
341 // Content scripts get initialized in user_script_slave.cc. | 342 v8::HandleScope handle_scope; |
342 if (!content_script) { | 343 v8::Handle<v8::Value> argv[3]; |
343 v8::HandleScope handle_scope; | 344 argv[0] = v8::String::New(extension_id.c_str()); |
344 v8::Handle<v8::Value> argv[1]; | 345 argv[1] = v8::Boolean::New(extension_dispatcher->is_extension_process()); |
345 argv[0] = v8::String::New(extension_id.c_str()); | 346 argv[2] = v8::Boolean::New( |
346 CallFunctionInContext(context, "dispatchOnLoad", arraysize(argv), argv); | 347 ChromeRenderProcessObserver::is_incognito_process()); |
347 } | 348 CallFunctionInContext(context, "dispatchOnLoad", arraysize(argv), argv); |
348 } | 349 } |
349 | 350 |
350 // static | 351 // static |
351 void EventBindings::HandleContextDestroyed(WebFrame* frame) { | 352 void EventBindings::HandleContextDestroyed(WebFrame* frame) { |
352 if (!bindings_registered) | 353 if (!bindings_registered) |
353 return; | 354 return; |
354 | 355 |
355 v8::HandleScope handle_scope; | 356 v8::HandleScope handle_scope; |
356 v8::Local<v8::Context> context = frame->mainWorldScriptContext(); | 357 v8::Local<v8::Context> context = frame->mainWorldScriptContext(); |
357 | 358 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 // TODO(rafaelw): Consider only doing this check if function_name == | 433 // TODO(rafaelw): Consider only doing this check if function_name == |
433 // "Event.dispatchJSON". | 434 // "Event.dispatchJSON". |
434 #ifndef NDEBUG | 435 #ifndef NDEBUG |
435 if (!retval.IsEmpty() && !retval->IsUndefined()) { | 436 if (!retval.IsEmpty() && !retval->IsUndefined()) { |
436 std::string error = *v8::String::AsciiValue(retval); | 437 std::string error = *v8::String::AsciiValue(retval); |
437 DCHECK(false) << error; | 438 DCHECK(false) << error; |
438 } | 439 } |
439 #endif | 440 #endif |
440 } | 441 } |
441 } | 442 } |
OLD | NEW |