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

Unified Diff: chrome/renderer/extensions/chrome_v8_context.cc

Issue 12567028: Apps V2 in Pepper: Host side implementation of ExntensionsCommon - Part 1. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/extensions/chrome_v8_context.cc
diff --git a/chrome/renderer/extensions/chrome_v8_context.cc b/chrome/renderer/extensions/chrome_v8_context.cc
index fa1bcd6955e1a4eeaaf027a038cd1ddcdb6fa752..b4ae80e30ef264d50310a403db48c32eec0f7231 100644
--- a/chrome/renderer/extensions/chrome_v8_context.cc
+++ b/chrome/renderer/extensions/chrome_v8_context.cc
@@ -6,6 +6,7 @@
#include "base/debug/trace_event.h"
#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
#include "base/strings/string_split.h"
#include "base/values.h"
#include "chrome/common/extensions/api/extension_api.h"
@@ -15,10 +16,13 @@
#include "chrome/renderer/extensions/module_system.h"
#include "chrome/renderer/extensions/user_script_slave.h"
#include "content/public/renderer/render_view.h"
+#include "content/public/renderer/v8_value_converter.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
#include "v8/include/v8.h"
+using content::V8ValueConverter;
+
namespace extensions {
namespace {
@@ -186,4 +190,37 @@ std::string ChromeV8Context::GetContextTypeDescription() {
return "";
}
+ChromeV8Context* ChromeV8Context::GetContext() {
+ return this;
+}
+
+void ChromeV8Context::OnResponseReceived(const std::string& name,
+ int request_id,
+ bool success,
+ const base::ListValue& response,
+ const std::string& error) {
+ v8::HandleScope handle_scope;
+
+ scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
+ v8::Handle<v8::Value> argv[] = {
+ v8::Integer::New(request_id),
+ v8::String::New(name.c_str()),
+ v8::Boolean::New(success),
+ converter->ToV8Value(&response, v8_context_.get()),
+ v8::String::New(error.c_str())
+ };
+
+ v8::Handle<v8::Value> retval;
+ CHECK(CallChromeHiddenMethod("handleResponse", arraysize(argv), argv,
+ &retval));
+ // In debug, the js will validate the callback parameters and return a
+ // string if a validation error has occured.
+ if (DCHECK_IS_ON()) {
+ if (!retval.IsEmpty() && !retval->IsUndefined()) {
+ std::string error = *v8::String::AsciiValue(retval);
+ DCHECK(false) << error;
+ }
+ }
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698