| Index: chrome/renderer/principals_extension_bindings.cc
|
| diff --git a/chrome/renderer/principals_extension_bindings.cc b/chrome/renderer/principals_extension_bindings.cc
|
| deleted file mode 100644
|
| index 9118c8d63dec44f60409fca235bbe61c1cd45a3b..0000000000000000000000000000000000000000
|
| --- a/chrome/renderer/principals_extension_bindings.cc
|
| +++ /dev/null
|
| @@ -1,128 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/renderer/principals_extension_bindings.h"
|
| -
|
| -#include "chrome/common/render_messages.h"
|
| -#include "content/public/renderer/render_view.h"
|
| -#include "third_party/WebKit/public/web/WebDocument.h"
|
| -#include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| -#include "third_party/WebKit/public/web/WebView.h"
|
| -#include "v8/include/v8.h"
|
| -
|
| -using blink::WebLocalFrame;
|
| -using blink::WebView;
|
| -using content::RenderView;
|
| -
|
| -namespace {
|
| -
|
| -class PrincipalsExtensionWrapper : public v8::Extension {
|
| - public:
|
| - PrincipalsExtensionWrapper();
|
| -
|
| - private:
|
| - // v8::Extension overrides.
|
| - v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate(
|
| - v8::Isolate* isolate,
|
| - v8::Handle<v8::String> name) override;
|
| -
|
| - static RenderView* GetRenderView();
|
| -
|
| - static void GetManagedAccounts(
|
| - const v8::FunctionCallbackInfo<v8::Value>& args);
|
| - static void ShowBrowserAccountManagementUI(
|
| - const v8::FunctionCallbackInfo<v8::Value>& args);
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PrincipalsExtensionWrapper);
|
| -};
|
| -
|
| -const char kPrincipalsExtensionName[] = "v8/Principals";
|
| -const char kPrincipalsExtensionCode[] =
|
| - "var chrome;"
|
| - "if (!chrome)"
|
| - " chrome = {};"
|
| - "if (!chrome.principals)"
|
| - " chrome.principals = {};"
|
| - "chrome.principals.getManagedAccounts = function() {"
|
| - " native function NativeGetManagedAccounts();"
|
| - " return NativeGetManagedAccounts();"
|
| - "};"
|
| - "chrome.principals.showBrowserAccountManagementUI = function() {"
|
| - " native function ShowBrowserAccountManagementUI();"
|
| - " ShowBrowserAccountManagementUI();"
|
| - "};";
|
| -
|
| -PrincipalsExtensionWrapper::PrincipalsExtensionWrapper() : v8::Extension(
|
| - kPrincipalsExtensionName, kPrincipalsExtensionCode) {}
|
| -
|
| -v8::Handle<v8::FunctionTemplate>
|
| - PrincipalsExtensionWrapper::GetNativeFunctionTemplate(
|
| - v8::Isolate* isolate, v8::Handle<v8::String> name) {
|
| - if (name->Equals(v8::String::NewFromUtf8(
|
| - isolate, "NativeGetManagedAccounts"))) {
|
| - return v8::FunctionTemplate::New(isolate, GetManagedAccounts);
|
| - } else if (name->Equals(v8::String::NewFromUtf8(
|
| - isolate, "ShowBrowserAccountManagementUI"))) {
|
| - return v8::FunctionTemplate::New(isolate, ShowBrowserAccountManagementUI);
|
| - }
|
| - return v8::Handle<v8::FunctionTemplate>();
|
| -}
|
| -
|
| -void PrincipalsExtensionWrapper::GetManagedAccounts(
|
| - const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| - RenderView* render_view = GetRenderView();
|
| - if (!render_view) {
|
| - args.GetReturnValue().SetNull();
|
| - return;
|
| - }
|
| -
|
| - std::vector<std::string> accounts;
|
| - render_view->Send(new ChromeViewHostMsg_GetManagedAccounts(
|
| - WebLocalFrame::frameForCurrentContext()->document().url(),
|
| - &accounts));
|
| -
|
| - v8::Isolate* isolate = args.GetIsolate();
|
| - v8::Local<v8::Array> v8_result = v8::Array::New(isolate);
|
| - int v8_index = 0;
|
| - for (std::vector<std::string>::const_iterator it = accounts.begin();
|
| - it != accounts.end(); ++it) {
|
| - v8_result->Set(v8::Integer::New(isolate, v8_index++),
|
| - v8::String::NewFromUtf8(isolate, it->c_str(),
|
| - v8::String::kNormalString, it->length()));
|
| - }
|
| - args.GetReturnValue().Set(v8_result);
|
| -}
|
| -
|
| -void PrincipalsExtensionWrapper::ShowBrowserAccountManagementUI(
|
| - const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| - // TODO(guohui): need to figure out how to prevent abuse.
|
| - RenderView* render_view = GetRenderView();
|
| - if (!render_view) return;
|
| -
|
| - render_view->Send(new ChromeViewHostMsg_ShowBrowserAccountManagementUI());
|
| -}
|
| -
|
| -RenderView* PrincipalsExtensionWrapper::GetRenderView() {
|
| - WebLocalFrame* webframe = WebLocalFrame::frameForCurrentContext();
|
| - DCHECK(webframe) << "There should be an active frame since we just got "
|
| - "a native function called.";
|
| - if (!webframe)
|
| - return NULL;
|
| -
|
| - WebView* webview = webframe->view();
|
| - if (!webview) // can happen during closing
|
| - return NULL;
|
| -
|
| - return RenderView::FromWebView(webview);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace extensions_v8 {
|
| -
|
| -v8::Extension* PrincipalsExtension::Get() {
|
| - return new PrincipalsExtensionWrapper();
|
| -}
|
| -
|
| -} // namespace extensions_v8
|
|
|