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