Give names to all utility processes.
[chromium-blink-merge.git] / chrome / browser / guest_view / web_view / chrome_web_view_guest_delegate.h
blob9cd1722d71c0e31ee1e2d72968c0d5fc7d79fe7c
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.
5 #ifndef CHROME_BROWSER_GUEST_VIEW_WEB_VIEW_CHROME_WEB_VIEW_GUEST_DELEGATE_H_
6 #define CHROME_BROWSER_GUEST_VIEW_WEB_VIEW_CHROME_WEB_VIEW_GUEST_DELEGATE_H_
8 #include "chrome/browser/extensions/api/web_view/chrome_web_view_internal_api.h"
9 #include "extensions/browser/guest_view/web_view/web_view_guest.h"
10 #include "extensions/browser/guest_view/web_view/web_view_guest_delegate.h"
12 #if defined(OS_CHROMEOS)
13 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
14 #endif
16 class RenderViewContextMenuBase;
18 namespace ui {
19 class SimpleMenuModel;
20 } // namespace ui
22 namespace extensions {
24 class ChromeWebViewGuestDelegate : public WebViewGuestDelegate {
25 public :
26 explicit ChromeWebViewGuestDelegate(WebViewGuest* web_view_guest);
27 ~ChromeWebViewGuestDelegate() override;
29 // WebViewGuestDelegate implementation.
30 void ClearCache(base::Time remove_since,
31 const base::Closure& done_callback) override;
32 bool HandleContextMenu(const content::ContextMenuParams& params) override;
33 void OnAttachWebViewHelpers(content::WebContents* contents) override;
34 void OnDidCommitProvisionalLoadForFrame(bool is_main_frame) override;
35 void OnDidInitialize() override;
36 void OnDocumentLoadedInFrame(
37 content::RenderFrameHost* render_frame_host) override;
38 void OnGuestDestroyed() override;
39 void OnShowContextMenu(int request_id, const MenuItemVector* items) override;
41 WebViewGuest* web_view_guest() const { return web_view_guest_; }
43 private:
44 content::WebContents* guest_web_contents() const {
45 return web_view_guest()->web_contents();
48 // Returns the top level items (ignoring submenus) as Value.
49 static scoped_ptr<base::ListValue> MenuModelToValue(
50 const ui::SimpleMenuModel& menu_model);
52 void InjectChromeVoxIfNeeded(content::RenderViewHost* render_view_host);
54 #if defined(OS_CHROMEOS)
55 // Notification of a change in the state of an accessibility setting.
56 void OnAccessibilityStatusChanged(
57 const chromeos::AccessibilityStatusEventDetails& details);
58 #endif
60 // A counter to generate a unique request id for a context menu request.
61 // We only need the ids to be unique for a given WebViewGuest.
62 int pending_context_menu_request_id_;
64 // Set to |true| if ChromeVox was already injected in main frame.
65 bool chromevox_injected_;
67 // Holds the RenderViewContextMenuBase that has been built but yet to be
68 // shown. This is .reset() after ShowContextMenu().
69 scoped_ptr<RenderViewContextMenuBase> pending_menu_;
71 #if defined(OS_CHROMEOS)
72 // Subscription to receive notifications on changes to a11y settings.
73 scoped_ptr<chromeos::AccessibilityStatusSubscription>
74 accessibility_subscription_;
75 #endif
77 WebViewGuest* const web_view_guest_;
79 // This is used to ensure pending tasks will not fire after this object is
80 // destroyed.
81 base::WeakPtrFactory<ChromeWebViewGuestDelegate> weak_ptr_factory_;
83 DISALLOW_COPY_AND_ASSIGN(ChromeWebViewGuestDelegate);
86 } // namespace extensions
88 #endif // CHROME_BROWSER_GUEST_VIEW_WEB_VIEW_CHROME_WEB_VIEW_GUEST_DELEGATE_H_