1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef EXTENSIONS_BROWSER_GUEST_VIEW_EXTENSION_OPTIONS_EXTENSION_OPTIONS_GUEST_DELEGATE_H_ 6#define EXTENSIONS_BROWSER_GUEST_VIEW_EXTENSION_OPTIONS_EXTENSION_OPTIONS_GUEST_DELEGATE_H_ 7 8#include "base/macros.h" 9 10namespace content { 11struct ContextMenuParams; 12struct OpenURLParams; 13class WebContents; 14} 15 16namespace extensions { 17 18class ExtensionOptionsGuest; 19 20// Interface to handle communication between ExtensionOptionsGuest (in 21// extensions) with the browser. 22class ExtensionOptionsGuestDelegate { 23 public: 24 explicit ExtensionOptionsGuestDelegate(ExtensionOptionsGuest* guest); 25 virtual ~ExtensionOptionsGuestDelegate(); 26 27 // Called from ExtensionOptionsGuest::DidInitialize(). 28 virtual void DidInitialize() = 0; 29 30 // Shows the context menu for the guest. 31 // Returns true if the context menu was handled. 32 virtual bool HandleContextMenu(const content::ContextMenuParams& params) = 0; 33 34 virtual content::WebContents* OpenURLInNewTab( 35 const content::OpenURLParams& params) = 0; 36 37 ExtensionOptionsGuest* extension_options_guest() const { return guest_; } 38 39 private: 40 ExtensionOptionsGuest* const guest_; 41 42 DISALLOW_COPY_AND_ASSIGN(ExtensionOptionsGuestDelegate); 43}; 44 45} // namespace extensions 46 47#endif // EXTENSIONS_BROWSER_GUEST_VIEW_EXTENSION_OPTIONS_EXTENSION_OPTIONS_GUEST_DELEGATE_H_ 48