diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-06 03:34:56 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-06 03:34:56 +0000 |
commit | 27131e7a0e842dd949279ebb53e6fae57dd41149 (patch) | |
tree | 0653569338524e5deb5530ea3b81bd7dce779606 | |
parent | e0b85a56b9e482b844729747d008e5de4f516dde (diff) | |
download | chromium_src-27131e7a0e842dd949279ebb53e6fae57dd41149.zip chromium_src-27131e7a0e842dd949279ebb53e6fae57dd41149.tar.gz chromium_src-27131e7a0e842dd949279ebb53e6fae57dd41149.tar.bz2 |
I realized that ExtensionBindingsContext is really just the
Chrome-side wrapper for v8::Context, so renamed to that.
Review URL: http://codereview.chromium.org/8110005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104238 0039d316-1c4b-4281-b951-d872f2087c98
18 files changed, 129 insertions, 136 deletions
diff --git a/chrome/browser/extensions/extension_messages_browsertest.cc b/chrome/browser/extensions/extension_messages_browsertest.cc index 56a0261b..aed3de3 100644 --- a/chrome/browser/extensions/extension_messages_browsertest.cc +++ b/chrome/browser/extensions/extension_messages_browsertest.cc @@ -7,7 +7,7 @@ #include "chrome/browser/extensions/extension_message_service.h" #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/render_messages.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" #include "chrome/test/base/render_view_test.h" @@ -18,7 +18,7 @@ namespace { static const char kTestingExtensionId[] = "oooooooooooooooooooooooooooooooo"; -void DispatchOnConnect(const ExtensionBindingsContextSet& bindings_context_set, +void DispatchOnConnect(const ChromeV8ContextSet& v8_context_set, int source_port_id, const std::string& name, const std::string& tab_json) { ListValue args; @@ -27,16 +27,15 @@ void DispatchOnConnect(const ExtensionBindingsContextSet& bindings_context_set, args.Set(2, Value::CreateStringValue(tab_json)); args.Set(3, Value::CreateStringValue(kTestingExtensionId)); args.Set(4, Value::CreateStringValue(kTestingExtensionId)); - bindings_context_set.DispatchChromeHiddenMethod( + v8_context_set.DispatchChromeHiddenMethod( "", ExtensionMessageService::kDispatchOnConnect, args, NULL, GURL()); } -void DispatchOnDisconnect( - const ExtensionBindingsContextSet& bindings_context_set, - int source_port_id) { +void DispatchOnDisconnect(const ChromeV8ContextSet& v8_context_set, + int source_port_id) { ListValue args; args.Set(0, Value::CreateIntegerValue(source_port_id)); - bindings_context_set.DispatchChromeHiddenMethod( + v8_context_set.DispatchChromeHiddenMethod( "", ExtensionMessageService::kDispatchOnDisconnect, args, NULL, GURL()); } @@ -82,7 +81,7 @@ TEST_F(RenderViewTest, ExtensionMessagesOpenChannel) { render_thread_.sink().ClearMessages(); const int kPortId = 0; RendererExtensionBindings::DeliverMessage( - extension_dispatcher_->bindings_context_set().GetAll(), + extension_dispatcher_->v8_context_set().GetAll(), kPortId, "{\"val\": 42}", NULL); // Verify that we got it. @@ -121,7 +120,7 @@ TEST_F(RenderViewTest, ExtensionMessagesOnConnect) { // Simulate a new connection being opened. const int kPortId = 0; const std::string kPortName = "testName"; - DispatchOnConnect(extension_dispatcher_->bindings_context_set(), + DispatchOnConnect(extension_dispatcher_->v8_context_set(), kPortId, kPortName, "{\"url\":\"foo://bar\"}"); // Verify that we handled the new connection by posting a message. @@ -138,7 +137,7 @@ TEST_F(RenderViewTest, ExtensionMessagesOnConnect) { // Now simulate getting a message back from the channel opener. render_thread_.sink().ClearMessages(); RendererExtensionBindings::DeliverMessage( - extension_dispatcher_->bindings_context_set().GetAll(), + extension_dispatcher_->v8_context_set().GetAll(), kPortId, "{\"val\": 42}", NULL); // Verify that we got it. @@ -153,7 +152,7 @@ TEST_F(RenderViewTest, ExtensionMessagesOnConnect) { // Now simulate the channel closing. render_thread_.sink().ClearMessages(); - DispatchOnDisconnect(extension_dispatcher_->bindings_context_set(), kPortId); + DispatchOnDisconnect(extension_dispatcher_->v8_context_set(), kPortId); // Verify that we got it. alert_msg = diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi index c395c1c..7fdf621 100644 --- a/chrome/chrome_renderer.gypi +++ b/chrome/chrome_renderer.gypi @@ -59,16 +59,16 @@ 'renderer/benchmarking_extension.h', 'renderer/extensions/chrome_app_bindings.cc', 'renderer/extensions/chrome_app_bindings.h', + 'renderer/extensions/chrome_v8_context.cc', + 'renderer/extensions/chrome_v8_context.h', + 'renderer/extensions/chrome_v8_context_set.cc', + 'renderer/extensions/chrome_v8_context_set.h', 'renderer/extensions/chrome_v8_extension.cc', 'renderer/extensions/chrome_v8_extension.h', 'renderer/extensions/chrome_webstore_bindings.cc', 'renderer/extensions/chrome_webstore_bindings.h', 'renderer/extensions/event_bindings.cc', 'renderer/extensions/event_bindings.h', - 'renderer/extensions/extension_bindings_context.cc', - 'renderer/extensions/extension_bindings_context.h', - 'renderer/extensions/extension_bindings_context_set.cc', - 'renderer/extensions/extension_bindings_context_set.h', 'renderer/extensions/extension_dispatcher.cc', 'renderer/extensions/extension_dispatcher.h', 'renderer/extensions/extension_groups.h', diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 1d1611d..9aea641 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -1837,8 +1837,8 @@ 'common/web_apps_unittest.cc', 'common/worker_thread_ticker_unittest.cc', 'common/zip_unittest.cc', + 'renderer/extensions/chrome_v8_context_set_unittest.cc', 'renderer/extensions/extension_api_json_validity_unittest.cc', - 'renderer/extensions/extension_bindings_context_set_unittest.cc', 'renderer/extensions/json_schema_unittest.cc', 'renderer/net/predictor_queue_unittest.cc', 'renderer/net/renderer_predictor_unittest.cc', diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index c249da3..06033bf 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc @@ -32,8 +32,8 @@ #include "chrome/renderer/chrome_render_process_observer.h" #include "chrome/renderer/chrome_render_view_observer.h" #include "chrome/renderer/content_settings_observer.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" #include "chrome/renderer/extensions/chrome_v8_extension.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_helper.h" #include "chrome/renderer/extensions/extension_process_bindings.h" @@ -594,7 +594,7 @@ bool ChromeContentRendererClient::AllowPopup(const GURL& creator) { // Extensions and apps always allowed to create unrequested popups. The second // check is necessary to include content scripts. return extension_dispatcher_->extensions()->GetByURL(creator) || - extension_dispatcher_->bindings_context_set().GetCurrent(); + extension_dispatcher_->v8_context_set().GetCurrent(); } bool ChromeContentRendererClient::ShouldFork(WebFrame* frame, diff --git a/chrome/renderer/extensions/extension_bindings_context.cc b/chrome/renderer/extensions/chrome_v8_context.cc index e20ba13..c4c4e5a 100644 --- a/chrome/renderer/extensions/extension_bindings_context.cc +++ b/chrome/renderer/extensions/chrome_v8_context.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/renderer/extensions/extension_bindings_context.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" #include "base/logging.h" #include "base/string_split.h" @@ -14,9 +14,8 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" #include "v8/include/v8.h" -void ExtensionBindingsContext::FireOnLoadEvent( - bool is_extension_process, - bool is_incognito_process) const { +void ChromeV8Context::FireOnLoadEvent(bool is_extension_process, + bool is_incognito_process) const { v8::HandleScope handle_scope; v8::Handle<v8::Value> argv[3]; argv[0] = v8::String::New(extension_id_.c_str()); @@ -25,10 +24,9 @@ void ExtensionBindingsContext::FireOnLoadEvent( CallChromeHiddenMethod("dispatchOnLoad", arraysize(argv), argv); } -ExtensionBindingsContext::ExtensionBindingsContext( - v8::Handle<v8::Context> v8_context, - WebKit::WebFrame* web_frame, - const std::string& extension_id) +ChromeV8Context::ChromeV8Context(v8::Handle<v8::Context> v8_context, + WebKit::WebFrame* web_frame, + const std::string& extension_id) : v8_context_(v8::Persistent<v8::Context>::New(v8_context)), web_frame_(web_frame), extension_id_(extension_id) { @@ -37,7 +35,7 @@ ExtensionBindingsContext::ExtensionBindingsContext( << " frame: " << web_frame_; } -ExtensionBindingsContext::~ExtensionBindingsContext() { +ChromeV8Context::~ChromeV8Context() { VLOG(1) << "Destroyed context for extension\n" << " id: " << extension_id_; v8::HandleScope handle_scope; @@ -45,14 +43,14 @@ ExtensionBindingsContext::~ExtensionBindingsContext() { v8_context_.Dispose(); } -RenderView* ExtensionBindingsContext::GetRenderView() const { +RenderView* ChromeV8Context::GetRenderView() const { if (web_frame_ && web_frame_->view()) return RenderView::FromWebView(web_frame_->view()); else return NULL; } -v8::Handle<v8::Value> ExtensionBindingsContext::CallChromeHiddenMethod( +v8::Handle<v8::Value> ChromeV8Context::CallChromeHiddenMethod( const std::string& function_name, int argc, v8::Handle<v8::Value>* argv) const { diff --git a/chrome/renderer/extensions/extension_bindings_context.h b/chrome/renderer/extensions/chrome_v8_context.h index 640c7f7..b75c74e 100644 --- a/chrome/renderer/extensions/extension_bindings_context.h +++ b/chrome/renderer/extensions/chrome_v8_context.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_BINDINGS_CONTEXT_H_ -#define CHROME_RENDERER_EXTENSIONS_EXTENSION_BINDINGS_CONTEXT_H_ +#ifndef CHROME_RENDERER_EXTENSIONS_CHROME_V8_CONTEXT_H_ +#define CHROME_RENDERER_EXTENSIONS_CHROME_V8_CONTEXT_H_ #pragma once #include <string> @@ -21,17 +21,13 @@ class WebFrame; class RenderView; -// A v8 context that contains extension bindings. -// -// TODO(aa): Remove the extension-specific bits from this, rename -// BindingsContext, and move to renderer/bindings with DEPS rules to prevent -// dependencies on extensions. -class ExtensionBindingsContext { +// Chrome's wrapper for a v8 context. +class ChromeV8Context { public: - ExtensionBindingsContext(v8::Handle<v8::Context> context, - WebKit::WebFrame* frame, - const std::string& extension_id); - ~ExtensionBindingsContext(); + ChromeV8Context(v8::Handle<v8::Context> context, + WebKit::WebFrame* frame, + const std::string& extension_id); + ~ChromeV8Context(); v8::Handle<v8::Context> v8_context() const { return v8_context_; @@ -66,8 +62,6 @@ class ExtensionBindingsContext { v8::Handle<v8::Value>* argv) const; private: - DISALLOW_COPY_AND_ASSIGN(ExtensionBindingsContext); - // The v8 context the bindings are accessible to. We keep a strong reference // to it for simplicity. In the case of content scripts, this is necessary // because we want all scripts from the same extension for the same frame to @@ -82,7 +76,10 @@ class ExtensionBindingsContext { WebKit::WebFrame* web_frame_; // The extension ID this context is associated with. + // TODO(aa): Could we get away with removing this? std::string extension_id_; + + DISALLOW_COPY_AND_ASSIGN(ChromeV8Context); }; -#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_BINDINGS_CONTEXT_H_ +#endif // CHROME_RENDERER_EXTENSIONS_CHROME_V8_CONTEXT_H_ diff --git a/chrome/renderer/extensions/extension_bindings_context_set.cc b/chrome/renderer/extensions/chrome_v8_context_set.cc index 48f4a04..e518b21 100644 --- a/chrome/renderer/extensions/extension_bindings_context_set.cc +++ b/chrome/renderer/extensions/chrome_v8_context_set.cc @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/renderer/extensions/extension_bindings_context_set.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "base/logging.h" #include "base/message_loop.h" #include "base/tracked_objects.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" #include "content/common/url_constants.h" #include "content/public/renderer/v8_value_converter.h" #include "content/renderer/render_thread.h" @@ -44,29 +44,29 @@ bool HasSufficientPermissions(RenderView* render_view, const GURL& event_url) { } // static -MessageLoop* ExtensionBindingsContextSet::delete_loop_ = NULL; +MessageLoop* ChromeV8ContextSet::delete_loop_ = NULL; // static -void ExtensionBindingsContextSet::SetDeleteLoop(MessageLoop* delete_loop) { +void ChromeV8ContextSet::SetDeleteLoop(MessageLoop* delete_loop) { delete_loop_ = delete_loop; } -ExtensionBindingsContextSet::ExtensionBindingsContextSet() { +ChromeV8ContextSet::ChromeV8ContextSet() { } -ExtensionBindingsContextSet::~ExtensionBindingsContextSet() { +ChromeV8ContextSet::~ChromeV8ContextSet() { } -int ExtensionBindingsContextSet::size() const { +int ChromeV8ContextSet::size() const { return static_cast<int>(contexts_.size()); } -void ExtensionBindingsContextSet::Add(ExtensionBindingsContext* context) { +void ChromeV8ContextSet::Add(ChromeV8Context* context) { #ifndef NDEBUG // It's OK to insert the same context twice, but we should only ever have one - // ExtensionBindingsContext per v8::Context. + // ChromeV8Context per v8::Context. for (ContextSet::iterator iter = contexts_.begin(); iter != contexts_.end(); ++iter) { - ExtensionBindingsContext* candidate = *iter; + ChromeV8Context* candidate = *iter; if (candidate != context) DCHECK(candidate->v8_context() != context->v8_context()); } @@ -74,7 +74,7 @@ void ExtensionBindingsContextSet::Add(ExtensionBindingsContext* context) { contexts_.insert(context); } -void ExtensionBindingsContextSet::Remove(ExtensionBindingsContext* context) { +void ChromeV8ContextSet::Remove(ChromeV8Context* context) { if (contexts_.erase(context)) { context->clear_web_frame(); MessageLoop* loop = delete_loop_ ? @@ -84,26 +84,26 @@ void ExtensionBindingsContextSet::Remove(ExtensionBindingsContext* context) { } } -void ExtensionBindingsContextSet::RemoveByV8Context( +void ChromeV8ContextSet::RemoveByV8Context( v8::Handle<v8::Context> v8_context) { - ExtensionBindingsContext* context = GetByV8Context(v8_context); + ChromeV8Context* context = GetByV8Context(v8_context); if (context) Remove(context); } -ExtensionBindingsContextSet::ContextSet ExtensionBindingsContextSet::GetAll() +ChromeV8ContextSet::ContextSet ChromeV8ContextSet::GetAll() const { return contexts_; } -ExtensionBindingsContext* ExtensionBindingsContextSet::GetCurrent() const { +ChromeV8Context* ChromeV8ContextSet::GetCurrent() const { if (!v8::Context::InContext()) return NULL; else return GetByV8Context(v8::Context::GetCurrent()); } -ExtensionBindingsContext* ExtensionBindingsContextSet::GetByV8Context( +ChromeV8Context* ChromeV8ContextSet::GetByV8Context( v8::Handle<v8::Context> v8_context) const { for (ContextSet::const_iterator iter = contexts_.begin(); iter != contexts_.end(); ++iter) { @@ -114,7 +114,7 @@ ExtensionBindingsContext* ExtensionBindingsContextSet::GetByV8Context( return NULL; } -void ExtensionBindingsContextSet::DispatchChromeHiddenMethod( +void ChromeV8ContextSet::DispatchChromeHiddenMethod( const std::string& extension_id, const std::string& method_name, const base::ListValue& arguments, diff --git a/chrome/renderer/extensions/extension_bindings_context_set.h b/chrome/renderer/extensions/chrome_v8_context_set.h index b5cf22e..6b4a05b4 100644 --- a/chrome/renderer/extensions/extension_bindings_context_set.h +++ b/chrome/renderer/extensions/chrome_v8_context_set.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_BINDINGS_CONTEXT_SET_H_ -#define CHROME_RENDERER_EXTENSIONS_EXTENSION_BINDINGS_CONTEXT_SET_H_ +#ifndef CHROME_RENDERER_EXTENSIONS_CHROME_V8_CONTEXT_SET_H_ +#define CHROME_RENDERER_EXTENSIONS_CHROME_V8_CONTEXT_SET_H_ #pragma once #include <set> @@ -12,7 +12,7 @@ #include "base/basictypes.h" #include "v8/include/v8.h" -class ExtensionBindingsContext; +class ChromeV8Context; class GURL; class MessageLoop; class RenderView; @@ -32,36 +32,36 @@ class Context; // TODO(aa): Remove extension-specific bits, rename to BindingsContextSet, and // move into renderer/bindings with DEPS to protect against dependencies on // extensions. -class ExtensionBindingsContextSet { +class ChromeV8ContextSet { public: // For testing. static void SetDeleteLoop(MessageLoop* message_loop); - ExtensionBindingsContextSet(); - ~ExtensionBindingsContextSet(); + ChromeV8ContextSet(); + ~ChromeV8ContextSet(); int size() const; // Takes ownership of |context|. - void Add(ExtensionBindingsContext* context); + void Add(ChromeV8Context* context); // If the specified context is contained in this set, remove it, then delete // it asynchronously. After this call returns the context object will still // be valid, but its frame() pointer will be cleared. - void Remove(ExtensionBindingsContext* context); + void Remove(ChromeV8Context* context); void RemoveByV8Context(v8::Handle<v8::Context> context); // Returns a copy to protect against changes. - typedef std::set<ExtensionBindingsContext*> ContextSet; + typedef std::set<ChromeV8Context*> ContextSet; ContextSet GetAll() const; - // Gets the ExtensionBindingsContext corresponding to the v8::Context that is + // Gets the ChromeV8Context corresponding to the v8::Context that is // on the top of the stack, or NULL if no such context exists. - ExtensionBindingsContext* GetCurrent() const; + ChromeV8Context* GetCurrent() const; - // Gets the ExtensionBindingsContext corresponding to the specified + // Gets the ChromeV8Context corresponding to the specified // v8::Context or NULL if no such context exists. - ExtensionBindingsContext* GetByV8Context( + ChromeV8Context* GetByV8Context( v8::Handle<v8::Context> context) const; // Calls chromeHidden.<methodName> in each context for <extension_id>. If @@ -75,13 +75,13 @@ class ExtensionBindingsContextSet { const GURL& event_url) const; private: - DISALLOW_COPY_AND_ASSIGN(ExtensionBindingsContextSet); - - // The loop we will delete ExtensionBindingsContext on. If NULL, we use + // The loop we will delete ChromeV8Context on. If NULL, we use // RenderThread's loop instead. static MessageLoop* delete_loop_; ContextSet contexts_; + + DISALLOW_COPY_AND_ASSIGN(ChromeV8ContextSet); }; -#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_BINDINGS_CONTEXT_SET_H_ +#endif // CHROME_RENDERER_EXTENSIONS_CHROME_V8_CONTEXT_SET_H_ diff --git a/chrome/renderer/extensions/extension_bindings_context_set_unittest.cc b/chrome/renderer/extensions/chrome_v8_context_set_unittest.cc index 5da47d9..786a6af 100644 --- a/chrome/renderer/extensions/extension_bindings_context_set_unittest.cc +++ b/chrome/renderer/extensions/chrome_v8_context_set_unittest.cc @@ -3,17 +3,17 @@ // found in the LICENSE file. #include "base/message_loop.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" -#include "chrome/renderer/extensions/extension_bindings_context_set.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" #include "v8/include/v8.h" -TEST(ExtensionBindingsContextSet, Lifecycle) { +TEST(ChromeV8ContextSet, Lifecycle) { MessageLoop loop; - ExtensionBindingsContextSet::SetDeleteLoop(&loop); + ChromeV8ContextSet::SetDeleteLoop(&loop); - ExtensionBindingsContextSet context_set; + ChromeV8ContextSet context_set; v8::HandleScope handle_scope; v8::Handle<v8::Context> v8_context(v8::Context::New()); @@ -22,8 +22,8 @@ TEST(ExtensionBindingsContextSet, Lifecycle) { // creating a whole webview. WebKit::WebFrame* frame = reinterpret_cast<WebKit::WebFrame*>(1); std::string extension_id = "00000000000000000000000000000000"; - ExtensionBindingsContext* context = - new ExtensionBindingsContext(v8_context, frame, extension_id); + ChromeV8Context* context = + new ChromeV8Context(v8_context, frame, extension_id); context_set.Add(context); EXPECT_EQ(1u, context_set.GetAll().count(context)); @@ -34,7 +34,7 @@ TEST(ExtensionBindingsContextSet, Lifecycle) { EXPECT_EQ(1u, context_set.GetAll().count(context)); // GetAll() returns a copy so removing from one should not remove from others. - ExtensionBindingsContextSet::ContextSet set_copy = context_set.GetAll(); + ChromeV8ContextSet::ContextSet set_copy = context_set.GetAll(); EXPECT_EQ(1u, set_copy.count(context)); context_set.Remove(context); @@ -46,19 +46,19 @@ TEST(ExtensionBindingsContextSet, Lifecycle) { EXPECT_FALSE(context->web_frame()); } -TEST(ExtensionBindingsContextSet, RemoveByV8Context) { +TEST(ChromeV8ContextSet, RemoveByV8Context) { MessageLoop loop; - ExtensionBindingsContextSet::SetDeleteLoop(&loop); + ChromeV8ContextSet::SetDeleteLoop(&loop); - ExtensionBindingsContextSet context_set; + ChromeV8ContextSet context_set; v8::HandleScope handle_scope; v8::Handle<v8::Context> v8_context(v8::Context::New()); WebKit::WebFrame* frame = reinterpret_cast<WebKit::WebFrame*>(1); std::string extension_id = "00000000000000000000000000000000"; - ExtensionBindingsContext* context = - new ExtensionBindingsContext(v8_context, frame, extension_id); + ChromeV8Context* context = + new ChromeV8Context(v8_context, frame, extension_id); context_set.Add(context); EXPECT_EQ(1, context_set.size()); diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc index c3b47cf3..988c6fd 100644 --- a/chrome/renderer/extensions/event_bindings.cc +++ b/chrome/renderer/extensions/event_bindings.cc @@ -12,10 +12,10 @@ #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/extensions/extension_set.h" #include "chrome/common/url_constants.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "chrome/renderer/extensions/chrome_v8_extension.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" -#include "chrome/renderer/extensions/extension_bindings_context_set.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_process_bindings.h" #include "chrome/renderer/extensions/user_script_slave.h" @@ -85,9 +85,9 @@ class ExtensionImpl : public ChromeV8Extension { if (args[0]->IsString()) { ExtensionImpl* v8_extension = GetFromArguments<ExtensionImpl>(args); - const ExtensionBindingsContextSet& context_set = - v8_extension->extension_dispatcher()->bindings_context_set(); - ExtensionBindingsContext* context = context_set.GetCurrent(); + const ChromeV8ContextSet& context_set = + v8_extension->extension_dispatcher()->v8_context_set(); + ChromeV8Context* context = context_set.GetCurrent(); CHECK(context); EventListenerCounts& listener_counts = GetListenerCounts(context->extension_id()); @@ -113,9 +113,9 @@ class ExtensionImpl : public ChromeV8Extension { if (args[0]->IsString()) { ExtensionImpl* v8_extension = GetFromArguments<ExtensionImpl>(args); - const ExtensionBindingsContextSet& context_set = - v8_extension->extension_dispatcher()->bindings_context_set(); - ExtensionBindingsContext* context = context_set.GetCurrent(); + const ChromeV8ContextSet& context_set = + v8_extension->extension_dispatcher()->v8_context_set(); + ChromeV8Context* context = context_set.GetCurrent(); if (!context) return v8::Undefined(); diff --git a/chrome/renderer/extensions/extension_dispatcher.cc b/chrome/renderer/extensions/extension_dispatcher.cc index fc65c6a..3adcd77 100644 --- a/chrome/renderer/extensions/extension_dispatcher.cc +++ b/chrome/renderer/extensions/extension_dispatcher.cc @@ -13,10 +13,10 @@ #include "chrome/common/url_constants.h" #include "chrome/renderer/chrome_render_process_observer.h" #include "chrome/renderer/extensions/chrome_app_bindings.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" #include "chrome/renderer/extensions/chrome_v8_extension.h" #include "chrome/renderer/extensions/chrome_webstore_bindings.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" #include "chrome/renderer/extensions/extension_groups.h" #include "chrome/renderer/extensions/extension_process_bindings.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" @@ -137,7 +137,7 @@ void ExtensionDispatcher::OnMessageInvoke(const std::string& extension_id, const std::string& function_name, const ListValue& args, const GURL& event_url) { - bindings_context_set_.DispatchChromeHiddenMethod( + v8_context_set_.DispatchChromeHiddenMethod( extension_id, function_name, args, NULL, event_url); // Reset the idle handler each time there's any activity like event or message @@ -151,7 +151,7 @@ void ExtensionDispatcher::OnMessageInvoke(const std::string& extension_id, void ExtensionDispatcher::OnDeliverMessage(int target_port_id, const std::string& message) { RendererExtensionBindings::DeliverMessage( - bindings_context_set_.GetAll(), + v8_context_set_.GetAll(), target_port_id, message, NULL); // All render views. @@ -227,7 +227,7 @@ void ExtensionDispatcher::DidCreateScriptContext( // TODO(aa): Create a BindingsPolicy object that encapsulates all the rules // about when to allow each type of bindings. This just becomes looking to see // if any bindings are allowed for this v8_context and creating an - // ExtensionBindingsContext if so. + // ChromeV8Context if so. std::string extension_id; if (!test_extension_id_.empty()) { extension_id = test_extension_id_; @@ -242,18 +242,18 @@ void ExtensionDispatcher::DidCreateScriptContext( } } - ExtensionBindingsContext* context = - new ExtensionBindingsContext(v8_context, frame, extension_id); - bindings_context_set_.Add(context); + ChromeV8Context* context = + new ChromeV8Context(v8_context, frame, extension_id); + v8_context_set_.Add(context); context->FireOnLoadEvent(is_extension_process_, ChromeRenderProcessObserver::is_incognito_process()); - VLOG(1) << "Num tracked contexts: " << bindings_context_set_.size(); + VLOG(1) << "Num tracked contexts: " << v8_context_set_.size(); } void ExtensionDispatcher::WillReleaseScriptContext( WebFrame* frame, v8::Handle<v8::Context> v8_context, int world_id) { - bindings_context_set_.RemoveByV8Context(v8_context); - VLOG(1) << "Num tracked contexts: " << bindings_context_set_.size(); + v8_context_set_.RemoveByV8Context(v8_context); + VLOG(1) << "Num tracked contexts: " << v8_context_set_.size(); } void ExtensionDispatcher::SetTestExtensionId(const std::string& id) { diff --git a/chrome/renderer/extensions/extension_dispatcher.h b/chrome/renderer/extensions/extension_dispatcher.h index 95140e3..b76c8ad 100644 --- a/chrome/renderer/extensions/extension_dispatcher.h +++ b/chrome/renderer/extensions/extension_dispatcher.h @@ -14,7 +14,7 @@ #include "base/timer.h" #include "content/public/renderer/render_process_observer.h" #include "chrome/common/extensions/extension_set.h" -#include "chrome/renderer/extensions/extension_bindings_context_set.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "v8/include/v8.h" class GURL; @@ -45,8 +45,8 @@ class ExtensionDispatcher : public content::RenderProcessObserver { bool is_extension_process() const { return is_extension_process_; } const ExtensionSet* extensions() const { return &extensions_; } - const ExtensionBindingsContextSet& bindings_context_set() const { - return bindings_context_set_; + const ChromeV8ContextSet& v8_context_set() const { + return v8_context_set_; } UserScriptSlave* user_script_slave() { return user_script_slave_.get(); } @@ -119,7 +119,7 @@ class ExtensionDispatcher : public content::RenderProcessObserver { // All the bindings contexts that are currently loaded for this renderer. // There is zero or one for each v8 context. - ExtensionBindingsContextSet bindings_context_set_; + ChromeV8ContextSet v8_context_set_; scoped_ptr<UserScriptSlave> user_script_slave_; diff --git a/chrome/renderer/extensions/extension_helper.cc b/chrome/renderer/extensions/extension_helper.cc index abd503c..3a6cf87 100644 --- a/chrome/renderer/extensions/extension_helper.cc +++ b/chrome/renderer/extensions/extension_helper.cc @@ -12,9 +12,9 @@ #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" #include "chrome/renderer/extensions/chrome_webstore_bindings.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_process_bindings.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" @@ -196,7 +196,7 @@ void ExtensionHelper::OnExtensionResponse(int request_id, const std::string& response, const std::string& error) { ExtensionProcessBindings::HandleResponse( - extension_dispatcher_->bindings_context_set(), request_id, success, + extension_dispatcher_->v8_context_set(), request_id, success, response, error); } @@ -204,14 +204,14 @@ void ExtensionHelper::OnExtensionMessageInvoke(const std::string& extension_id, const std::string& function_name, const ListValue& args, const GURL& event_url) { - extension_dispatcher_->bindings_context_set().DispatchChromeHiddenMethod( + extension_dispatcher_->v8_context_set().DispatchChromeHiddenMethod( extension_id, function_name, args, render_view(), event_url); } void ExtensionHelper::OnExtensionDeliverMessage(int target_id, const std::string& message) { RendererExtensionBindings::DeliverMessage( - extension_dispatcher_->bindings_context_set().GetAll(), + extension_dispatcher_->v8_context_set().GetAll(), target_id, message, render_view()); diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc index c91659e3..ce45386 100644 --- a/chrome/renderer/extensions/extension_process_bindings.cc +++ b/chrome/renderer/extensions/extension_process_bindings.cc @@ -27,10 +27,10 @@ #include "chrome/common/url_constants.h" #include "content/public/renderer/render_view_visitor.h" #include "chrome/renderer/chrome_render_process_observer.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "chrome/renderer/extensions/chrome_v8_extension.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" -#include "chrome/renderer/extensions/extension_bindings_context_set.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_helper.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" @@ -591,7 +591,7 @@ v8::Extension* ExtensionProcessBindings::Get( // static void ExtensionProcessBindings::HandleResponse( - const ExtensionBindingsContextSet& contexts, + const ChromeV8ContextSet& contexts, int request_id, bool success, const std::string& response, @@ -605,9 +605,9 @@ void ExtensionProcessBindings::HandleResponse( return; } - ExtensionBindingsContext* bindings_context = + ChromeV8Context* v8_context = contexts.GetByV8Context(request->second->context); - if (!bindings_context) + if (!v8_context) return; // The frame went away. v8::HandleScope handle_scope; @@ -619,9 +619,9 @@ void ExtensionProcessBindings::HandleResponse( argv[4] = v8::String::New(error.c_str()); v8::Handle<v8::Value> retval = - bindings_context->CallChromeHiddenMethod("handleResponse", - arraysize(argv), - argv); + v8_context->CallChromeHiddenMethod("handleResponse", + arraysize(argv), + argv); // In debug, the js will validate the callback parameters and return a // string if a validation error has occured. #ifndef NDEBUG diff --git a/chrome/renderer/extensions/extension_process_bindings.h b/chrome/renderer/extensions/extension_process_bindings.h index 21ecb38..df9165f 100644 --- a/chrome/renderer/extensions/extension_process_bindings.h +++ b/chrome/renderer/extensions/extension_process_bindings.h @@ -11,7 +11,7 @@ #include <string> class ExtensionDispatcher; -class ExtensionBindingsContextSet; +class ChromeV8ContextSet; class GURL; class URLPattern; @@ -28,7 +28,7 @@ class ExtensionProcessBindings { static v8::Extension* Get(ExtensionDispatcher* extension_dispatcher); // Handles a response to an API request. - static void HandleResponse(const ExtensionBindingsContextSet& contexts, + static void HandleResponse(const ChromeV8ContextSet& contexts, int request_id, bool success, const std::string& response, diff --git a/chrome/renderer/extensions/renderer_extension_bindings.cc b/chrome/renderer/extensions/renderer_extension_bindings.cc index ee05287..33b8fa6 100644 --- a/chrome/renderer/extensions/renderer_extension_bindings.cc +++ b/chrome/renderer/extensions/renderer_extension_bindings.cc @@ -12,10 +12,10 @@ #include "chrome/common/extensions/extension_message_bundle.h" #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/url_constants.h" +#include "chrome/renderer/extensions/chrome_v8_context.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "chrome/renderer/extensions/chrome_v8_extension.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_bindings_context.h" -#include "chrome/renderer/extensions/extension_bindings_context_set.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "content/renderer/render_thread.h" #include "content/renderer/render_view.h" @@ -254,14 +254,13 @@ v8::Extension* RendererExtensionBindings::Get(ExtensionDispatcher* dispatcher) { } void RendererExtensionBindings::DeliverMessage( - const ExtensionBindingsContextSet::ContextSet& contexts, + const ChromeV8ContextSet::ContextSet& contexts, int target_port_id, const std::string& message, RenderView* restrict_to_render_view) { v8::HandleScope handle_scope; - for (ExtensionBindingsContextSet::ContextSet::const_iterator it = - contexts.begin(); + for (ChromeV8ContextSet::ContextSet::const_iterator it = contexts.begin(); it != contexts.end(); ++it) { if (restrict_to_render_view && diff --git a/chrome/renderer/extensions/renderer_extension_bindings.h b/chrome/renderer/extensions/renderer_extension_bindings.h index dfde331..0be2cb3 100644 --- a/chrome/renderer/extensions/renderer_extension_bindings.h +++ b/chrome/renderer/extensions/renderer_extension_bindings.h @@ -8,7 +8,7 @@ #include <string> -#include "chrome/renderer/extensions/extension_bindings_context_set.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" class ExtensionDispatcher; class RenderView; @@ -28,7 +28,7 @@ class RendererExtensionBindings { // contexts in |bindings_context_set|. If |restrict_to_render_view| is // specified, only contexts in that render view will receive the message. static void DeliverMessage( - const ExtensionBindingsContextSet::ContextSet& context_set, + const ChromeV8ContextSet::ContextSet& context_set, int target_port_id, const std::string& message, RenderView* restrict_to_render_view); diff --git a/chrome/test/base/render_view_test.cc b/chrome/test/base/render_view_test.cc index c5a6647..f19511f 100644 --- a/chrome/test/base/render_view_test.cc +++ b/chrome/test/base/render_view_test.cc @@ -9,9 +9,9 @@ #include "chrome/common/print_messages.h" #include "chrome/common/render_messages.h" #include "chrome/renderer/autofill/password_autofill_manager.h" +#include "chrome/renderer/extensions/chrome_v8_context_set.h" #include "chrome/renderer/extensions/chrome_v8_extension.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_bindings_context_set.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_process_bindings.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" @@ -123,7 +123,7 @@ void RenderViewTest::SetUp() { "extensions/apitest.js", IDR_EXTENSION_APITEST_JS, NULL)); EventBindings::SetRenderThread(&render_thread_); - ExtensionBindingsContextSet::SetDeleteLoop(&msg_loop_); + ChromeV8ContextSet::SetDeleteLoop(&msg_loop_); mock_process_.reset(new MockRenderProcess); |