| Index: chrome/renderer/extensions/chrome_v8_context_set.cc
|
| diff --git a/chrome/renderer/extensions/chrome_v8_context_set.cc b/chrome/renderer/extensions/chrome_v8_context_set.cc
|
| index 03ffdd4f711cdc02b12f0fc3d07a74b7be3f069f..c79cd5cd990916ce551a89d40bf85ee33867d8a1 100644
|
| --- a/chrome/renderer/extensions/chrome_v8_context_set.cc
|
| +++ b/chrome/renderer/extensions/chrome_v8_context_set.cc
|
| @@ -13,7 +13,6 @@
|
| #include "chrome/renderer/extensions/chrome_v8_context.h"
|
| #include "content/public/renderer/render_thread.h"
|
| #include "content/public/renderer/render_view.h"
|
| -#include "content/public/renderer/v8_value_converter.h"
|
| #include "extensions/common/constants.h"
|
| #include "third_party/WebKit/public/platform/WebURL.h"
|
| #include "third_party/WebKit/public/platform/WebURLRequest.h"
|
| @@ -23,7 +22,6 @@
|
| #include "v8/include/v8.h"
|
|
|
| using content::RenderThread;
|
| -using content::V8ValueConverter;
|
|
|
| namespace extensions {
|
|
|
| @@ -79,23 +77,16 @@ ChromeV8Context* ChromeV8ContextSet::GetByV8Context(
|
| return NULL;
|
| }
|
|
|
| -void ChromeV8ContextSet::DispatchChromeHiddenMethod(
|
| +void ChromeV8ContextSet::ForEach(
|
| const std::string& extension_id,
|
| - const std::string& method_name,
|
| - const base::ListValue& arguments,
|
| - content::RenderView* render_view) const {
|
| - v8::HandleScope handle_scope;
|
| -
|
| + content::RenderView* render_view,
|
| + const base::Callback<void(ChromeV8Context*)>& callback) const {
|
| // We copy the context list, because calling into javascript may modify it
|
| // out from under us.
|
| ContextSet contexts = GetAll();
|
|
|
| - scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
|
| for (ContextSet::iterator it = contexts.begin(); it != contexts.end();
|
| ++it) {
|
| - if ((*it)->v8_context().IsEmpty())
|
| - continue;
|
| -
|
| if (!extension_id.empty()) {
|
| const Extension* extension = (*it)->extension();
|
| if (!extension || (extension_id != extension->id()))
|
| @@ -109,17 +100,7 @@ void ChromeV8ContextSet::DispatchChromeHiddenMethod(
|
| if (render_view && render_view != context_render_view)
|
| continue;
|
|
|
| - v8::Local<v8::Context> context(*((*it)->v8_context()));
|
| - std::vector<v8::Handle<v8::Value> > v8_arguments;
|
| - for (size_t i = 0; i < arguments.GetSize(); ++i) {
|
| - const base::Value* item = NULL;
|
| - CHECK(arguments.Get(i, &item));
|
| - v8_arguments.push_back(converter->ToV8Value(item, context));
|
| - }
|
| -
|
| - v8::Handle<v8::Value> retval;
|
| - (*it)->CallChromeHiddenMethod(
|
| - method_name, v8_arguments.size(), &v8_arguments[0], &retval);
|
| + callback.Run(*it);
|
| }
|
| }
|
|
|
|
|