11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/ui/browser.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/ui/browser_finder.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/renderer_context_menu/context_menu_delegate.h"
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/guest_view/extension_options/extension_options_guest.h"
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace extensions {
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChromeExtensionOptionsGuestDelegate::ChromeExtensionOptionsGuestDelegate(
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    ExtensionOptionsGuest* guest)
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    : ExtensionOptionsGuestDelegate(guest) {
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChromeExtensionOptionsGuestDelegate::~ChromeExtensionOptionsGuestDelegate() {
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid ChromeExtensionOptionsGuestDelegate::DidInitialize() {
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      extension_options_guest()->web_contents());
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool ChromeExtensionOptionsGuestDelegate::HandleContextMenu(
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const content::ContextMenuParams& params) {
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ContextMenuDelegate* menu_delegate = ContextMenuDelegate::FromWebContents(
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      extension_options_guest()->web_contents());
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DCHECK(menu_delegate);
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  scoped_ptr<RenderViewContextMenu> menu = menu_delegate->BuildMenu(
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      extension_options_guest()->web_contents(), params);
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  menu_delegate->ShowMenu(menu.Pass());
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return true;
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicontent::WebContents* ChromeExtensionOptionsGuestDelegate::OpenURLInNewTab(
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const content::OpenURLParams& params) {
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  Browser* browser = chrome::FindBrowserWithWebContents(
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      extension_options_guest()->embedder_web_contents());
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return browser->OpenURL(params);
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace extensions
49