| 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 |