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

Unified Diff: extensions/browser/guest_view/extension_options/extension_options_guest.cc

Issue 556563003: Move ExtensionOptionsGuest code from chrome to extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix gn Created 6 years, 3 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: extensions/browser/guest_view/extension_options/extension_options_guest.cc
diff --git a/chrome/browser/guest_view/extension_options/extension_options_guest.cc b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
similarity index 81%
rename from chrome/browser/guest_view/extension_options/extension_options_guest.cc
rename to extensions/browser/guest_view/extension_options/extension_options_guest.cc
index 4df1bcc4d534ba907d6a6824f203a0730c20c84a..a9fc706dd1765c17dd38c20c6622bf959eaec202 100644
--- a/chrome/browser/guest_view/extension_options/extension_options_guest.cc
+++ b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
@@ -2,27 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/guest_view/extension_options/extension_options_guest.h"
+#include "extensions/browser/guest_view/extension_options/extension_options_guest.h"
#include "base/values.h"
-#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
-#include "chrome/browser/extensions/extension_tab_util.h"
-#include "chrome/browser/guest_view/extension_options/extension_options_constants.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/common/extensions/api/extension_options_internal.h"
#include "components/crx_file/id_util.h"
-#include "components/renderer_context_menu/context_menu_delegate.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
+#include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/extension_function_dispatcher.h"
#include "extensions/browser/extension_registry.h"
+#include "extensions/browser/extension_web_contents_observer.h"
+#include "extensions/browser/guest_view/extension_options/extension_options_constants.h"
+#include "extensions/browser/guest_view/extension_options/extension_options_guest_delegate.h"
#include "extensions/browser/guest_view/guest_view_manager.h"
+#include "extensions/common/api/extension_options_internal.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_messages.h"
@@ -33,7 +27,7 @@
#include "ipc/ipc_message_macros.h"
using content::WebContents;
-using namespace extensions::api;
+using namespace extensions::core_api;
// static
const char ExtensionOptionsGuest::Type[] = "extensionoptions";
@@ -41,7 +35,10 @@ const char ExtensionOptionsGuest::Type[] = "extensionoptions";
ExtensionOptionsGuest::ExtensionOptionsGuest(
content::BrowserContext* browser_context,
int guest_instance_id)
- : GuestView<ExtensionOptionsGuest>(browser_context, guest_instance_id) {
+ : GuestView<ExtensionOptionsGuest>(browser_context, guest_instance_id),
+ extension_options_guest_delegate_(
+ extensions::ExtensionsAPIClient::Get()
+ ->CreateExtensionOptionsGuestDelegate()) {
}
ExtensionOptionsGuest::~ExtensionOptionsGuest() {
@@ -117,15 +114,16 @@ void ExtensionOptionsGuest::DidAttachToEmbedder() {
void ExtensionOptionsGuest::DidInitialize() {
extension_function_dispatcher_.reset(
new extensions::ExtensionFunctionDispatcher(browser_context(), this));
- extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
- web_contents());
+ if (extension_options_guest_delegate_) {
+ extension_options_guest_delegate_->CreateChromeExtensionWebContentsObserver(
+ web_contents());
+ }
}
void ExtensionOptionsGuest::DidStopLoading() {
scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
DispatchEventToEmbedder(new extensions::GuestViewBase::Event(
- extensions::api::extension_options_internal::OnLoad::kEventName,
- args.Pass()));
+ extension_options_internal::OnLoad::kEventName, args.Pass()));
}
const char* ExtensionOptionsGuest::GetAPINamespace() const {
@@ -159,15 +157,16 @@ content::WebContents* ExtensionOptionsGuest::GetAssociatedWebContents() const {
content::WebContents* ExtensionOptionsGuest::OpenURLFromTab(
content::WebContents* source,
const content::OpenURLParams& params) {
- Browser* browser =
- chrome::FindBrowserWithWebContents(embedder_web_contents());
+ if (!extension_options_guest_delegate_)
+ return NULL;
// Don't allow external URLs with the CURRENT_TAB disposition be opened in
// this guest view, change the disposition to NEW_FOREGROUND_TAB.
if ((!params.url.SchemeIs(extensions::kExtensionScheme) ||
params.url.host() != options_page_.host()) &&
params.disposition == CURRENT_TAB) {
- return browser->OpenURL(
+ return extension_options_guest_delegate_->OpenURLInNewTab(
+ embedder_web_contents(),
content::OpenURLParams(params.url,
params.referrer,
params.frame_tree_node_id,
@@ -175,7 +174,8 @@ content::WebContents* ExtensionOptionsGuest::OpenURLFromTab(
params.transition,
params.is_renderer_initiated));
}
- return browser->OpenURL(params);
+ return extension_options_guest_delegate_->OpenURLInNewTab(
+ embedder_web_contents(), params);
}
void ExtensionOptionsGuest::CloseContents(content::WebContents* source) {
@@ -186,14 +186,11 @@ void ExtensionOptionsGuest::CloseContents(content::WebContents* source) {
bool ExtensionOptionsGuest::HandleContextMenu(
const content::ContextMenuParams& params) {
- ContextMenuDelegate* menu_delegate =
- ContextMenuDelegate::FromWebContents(web_contents());
- DCHECK(menu_delegate);
+ if (!extension_options_guest_delegate_)
+ return false;
- scoped_ptr<RenderViewContextMenu> menu =
- menu_delegate->BuildMenu(web_contents(), params);
- menu_delegate->ShowMenu(menu.Pass());
- return true;
+ return extension_options_guest_delegate_->HandleContextMenu(web_contents(),
+ params);
}
bool ExtensionOptionsGuest::ShouldCreateWebContents(
@@ -209,16 +206,17 @@ bool ExtensionOptionsGuest::ShouldCreateWebContents(
// external links to be opened in a new tab, not in a new guest view.
// Therefore we just open the URL in a new tab, and since we aren't handling
// the new web contents, we return false.
- Browser* browser =
- chrome::FindBrowserWithWebContents(embedder_web_contents());
- content::OpenURLParams params(target_url,
- content::Referrer(),
- NEW_FOREGROUND_TAB,
- content::PAGE_TRANSITION_LINK,
- false);
- browser->OpenURL(params);
// TODO(ericzeng): Open the tab in the background if the click was a
// ctrl-click or middle mouse button click
+ if (extension_options_guest_delegate_) {
+ extension_options_guest_delegate_->OpenURLInNewTab(
+ embedder_web_contents(),
+ content::OpenURLParams(target_url,
+ content::Referrer(),
+ NEW_FOREGROUND_TAB,
+ content::PAGE_TRANSITION_LINK,
+ false));
+ }
return false;
}
@@ -233,8 +231,8 @@ bool ExtensionOptionsGuest::OnMessageReceived(const IPC::Message& message) {
void ExtensionOptionsGuest::OnRequest(
const ExtensionHostMsg_Request_Params& params) {
- extension_function_dispatcher_->Dispatch(
- params, web_contents()->GetRenderViewHost());
+ extension_function_dispatcher_->Dispatch(params,
+ web_contents()->GetRenderViewHost());
}
void ExtensionOptionsGuest::SetUpAutoSize() {

Powered by Google App Engine
This is Rietveld 408576698