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

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

Issue 2859233003: [Extensions] Improve app custom bindings (Closed)
Patch Set: Created 3 years, 7 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/app_bindings.cc
diff --git a/chrome/renderer/extensions/app_bindings.cc b/chrome/renderer/extensions/app_bindings.cc
index 2904e0ae68e216a3d674afe9915db0fde9ad8aa0..3e27e394a6a655da9e7bfc1e2ae726c26c55f09c 100644
--- a/chrome/renderer/extensions/app_bindings.cc
+++ b/chrome/renderer/extensions/app_bindings.cc
@@ -6,13 +6,7 @@
#include <memory>
-#include "base/command_line.h"
-#include "base/macros.h"
-#include "base/strings/string16.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
-#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension_constants.h"
#include "content/public/child/v8_value_converter.h"
#include "content/public/renderer/render_frame.h"
@@ -20,9 +14,7 @@
#include "extensions/common/extension_messages.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/manifest.h"
-#include "extensions/renderer/console.h"
#include "extensions/renderer/dispatcher.h"
-#include "extensions/renderer/extension_helper.h"
#include "extensions/renderer/renderer_extension_registry.h"
#include "extensions/renderer/script_context.h"
#include "third_party/WebKit/public/web/WebDocument.h"
@@ -34,12 +26,6 @@ using content::V8ValueConverter;
namespace extensions {
-namespace {
-
-const char kInvalidCallbackIdError[] = "Invalid callbackId";
-
-} // namespace
-
AppBindings::AppBindings(Dispatcher* dispatcher, ScriptContext* context)
: ObjectBackedNativeHandler(context),
dispatcher_(dispatcher) {
@@ -77,7 +63,7 @@ void AppBindings::GetDetails(
}
v8::Local<v8::Value> AppBindings::GetDetailsImpl(blink::WebLocalFrame* frame) {
- v8::Isolate* isolate = frame->MainWorldScriptContext()->GetIsolate();
Devlin 2017/05/04 18:58:50 Even though this is the same isolate in practice,
+ v8::Isolate* isolate = context()->isolate();
if (frame->GetDocument().GetSecurityOrigin().IsUnique())
return v8::Null(isolate);
@@ -92,22 +78,15 @@ v8::Local<v8::Value> AppBindings::GetDetailsImpl(blink::WebLocalFrame* frame) {
extension->manifest()->value()->DeepCopy());
manifest_copy->SetString("id", extension->id());
std::unique_ptr<V8ValueConverter> converter(V8ValueConverter::create());
- return converter->ToV8Value(manifest_copy.get(),
- frame->MainWorldScriptContext());
Devlin 2017/05/04 18:58:50 This seemed *very* wrong, since it's not the conte
jbroman 2017/05/08 14:25:24 If it can be called in a content script (it seems
Devlin 2017/05/11 14:30:37 Yep, it could be called from any context, which is
+ return converter->ToV8Value(manifest_copy.get(), context()->v8_context());
}
void AppBindings::GetInstallState(
const v8::FunctionCallbackInfo<v8::Value>& args) {
// Get the callbackId.
- int callback_id = 0;
Devlin 2017/05/04 18:58:50 We should only get valid calls to this function, s
- if (args.Length() == 1) {
- if (!args[0]->IsInt32()) {
- context()->isolate()->ThrowException(v8::String::NewFromUtf8(
- context()->isolate(), kInvalidCallbackIdError));
- return;
- }
- callback_id = args[0]->Int32Value();
- }
+ CHECK_EQ(1, args.Length());
+ CHECK(args[0]->IsInt32());
+ int callback_id = args[0]->Int32Value();
content::RenderFrame* render_frame = context()->GetRenderFrame();
CHECK(render_frame);
@@ -121,14 +100,12 @@ void AppBindings::GetRunningState(
const v8::FunctionCallbackInfo<v8::Value>& args) {
// To distinguish between ready_to_run and cannot_run states, we need the app
// from the top frame.
- blink::WebSecurityOrigin top_frame_security_origin =
- context()->web_frame()->Top()->GetSecurityOrigin();
const RendererExtensionRegistry* extensions =
RendererExtensionRegistry::Get();
// The app associated with the top level frame.
const Extension* top_app = extensions->GetHostedAppByURL(
- GURL(top_frame_security_origin.ToString().Utf8()));
+ context()->web_frame()->Top()->GetDocument().Url());
// The app associated with this frame.
const Extension* this_app = extensions->GetHostedAppByURL(

Powered by Google App Engine
This is Rietveld 408576698