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