Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: chrome/browser/extensions/extension_host.h

Issue 1001002: Initial support for inspecting extension popups. (Closed)
Patch Set: pre submit Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_HOST_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_HOST_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_HOST_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_HOST_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/perftimer.h" 10 #include "base/perftimer.h"
11 #include "base/scoped_ptr.h" 11 #include "base/scoped_ptr.h"
12 #include "chrome/browser/extensions/extension_function_dispatcher.h" 12 #include "chrome/browser/extensions/extension_function_dispatcher.h"
13 #include "chrome/browser/extensions/extension_popup_host.h"
14 #include "chrome/browser/jsmessage_box_client.h" 13 #include "chrome/browser/jsmessage_box_client.h"
15 #include "chrome/browser/renderer_host/render_view_host_delegate.h" 14 #include "chrome/browser/renderer_host/render_view_host_delegate.h"
16 #include "chrome/browser/tab_contents/render_view_host_delegate_helper.h" 15 #include "chrome/browser/tab_contents/render_view_host_delegate_helper.h"
17 #if defined(TOOLKIT_VIEWS) 16 #if defined(TOOLKIT_VIEWS)
18 #include "chrome/browser/views/extensions/extension_view.h" 17 #include "chrome/browser/views/extensions/extension_view.h"
19 #elif defined(OS_MACOSX) 18 #elif defined(OS_MACOSX)
20 #include "chrome/browser/cocoa/extension_view_mac.h" 19 #include "chrome/browser/cocoa/extension_view_mac.h"
21 #elif defined(TOOLKIT_GTK) 20 #elif defined(TOOLKIT_GTK)
22 #include "chrome/browser/gtk/extension_view_gtk.h" 21 #include "chrome/browser/gtk/extension_view_gtk.h"
23 #endif 22 #endif
24 #include "chrome/common/notification_registrar.h" 23 #include "chrome/common/notification_registrar.h"
25 24
26 25
27 class Browser; 26 class Browser;
28 class Extension; 27 class Extension;
29 class ExtensionProcessManager; 28 class ExtensionProcessManager;
30 class RenderProcessHost; 29 class RenderProcessHost;
31 class RenderWidgetHost; 30 class RenderWidgetHost;
32 class RenderWidgetHostView; 31 class RenderWidgetHostView;
33 class TabContents; 32 class TabContents;
34 struct WebPreferences; 33 struct WebPreferences;
35 34
36 // This class is the browser component of an extension component's RenderView. 35 // This class is the browser component of an extension component's RenderView.
37 // It handles setting up the renderer process, if needed, with special 36 // It handles setting up the renderer process, if needed, with special
38 // privileges available to extensions. It may have a view to be shown in the 37 // privileges available to extensions. It may have a view to be shown in the
39 // in the browser UI, or it may be hidden. 38 // in the browser UI, or it may be hidden.
40 class ExtensionHost : public ExtensionPopupHost::PopupDelegate, 39 class ExtensionHost : public RenderViewHostDelegate,
41 public RenderViewHostDelegate,
42 public RenderViewHostDelegate::View, 40 public RenderViewHostDelegate::View,
43 public ExtensionFunctionDispatcher::Delegate, 41 public ExtensionFunctionDispatcher::Delegate,
44 public NotificationObserver, 42 public NotificationObserver,
45 public JavaScriptMessageBoxClient { 43 public JavaScriptMessageBoxClient {
46 public: 44 public:
47 class ProcessCreationQueue; 45 class ProcessCreationQueue;
48 46
49 // Enable DOM automation in created render view hosts. 47 // Enable DOM automation in created render view hosts.
50 static void EnableDOMAutomation() { enable_dom_automation_ = true; } 48 static void EnableDOMAutomation() { enable_dom_automation_ = true; }
51 49
(...skipping 20 matching lines...) Expand all
72 void CreateView(Browser* browser); 70 void CreateView(Browser* browser);
73 71
74 Extension* extension() { return extension_; } 72 Extension* extension() { return extension_; }
75 RenderViewHost* render_view_host() const { return render_view_host_; } 73 RenderViewHost* render_view_host() const { return render_view_host_; }
76 RenderProcessHost* render_process_host() const; 74 RenderProcessHost* render_process_host() const;
77 SiteInstance* site_instance() const; 75 SiteInstance* site_instance() const;
78 bool did_stop_loading() const { return did_stop_loading_; } 76 bool did_stop_loading() const { return did_stop_loading_; }
79 bool document_element_available() const { 77 bool document_element_available() const {
80 return document_element_available_; 78 return document_element_available_;
81 } 79 }
80 gfx::NativeView GetNativeViewOfHost() {
81 return view() ? view()->native_view() : NULL;
82 }
83
82 Profile* profile() const { return profile_; } 84 Profile* profile() const { return profile_; }
83 85
84 ViewType::Type extension_host_type() const { return extension_host_type_; } 86 ViewType::Type extension_host_type() const { return extension_host_type_; }
85 87
86 // Sets the the ViewType of this host (e.g. mole, toolstrip). 88 // Sets the the ViewType of this host (e.g. mole, toolstrip).
87 void SetRenderViewType(ViewType::Type type); 89 void SetRenderViewType(ViewType::Type type);
88 90
89 // Returns true if the render view is initialized and didn't crash. 91 // Returns true if the render view is initialized and didn't crash.
90 bool IsRenderViewLive() const; 92 bool IsRenderViewLive() const;
91 93
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 // Actually create the RenderView for this host. See CreateRenderViewSoon. 199 // Actually create the RenderView for this host. See CreateRenderViewSoon.
198 void CreateRenderViewNow(); 200 void CreateRenderViewNow();
199 201
200 // ExtensionFunctionDispatcher::Delegate 202 // ExtensionFunctionDispatcher::Delegate
201 // If this ExtensionHost has a view, this returns the Browser that view is a 203 // If this ExtensionHost has a view, this returns the Browser that view is a
202 // part of. If this is a global background page, we use the active Browser 204 // part of. If this is a global background page, we use the active Browser
203 // instead. 205 // instead.
204 virtual Browser* GetBrowser(bool include_incognito) const; 206 virtual Browser* GetBrowser(bool include_incognito) const;
205 virtual ExtensionHost* GetExtensionHost() { return this; } 207 virtual ExtensionHost* GetExtensionHost() { return this; }
206 208
207 // ExtensionPopupHost::Delegate
208 virtual Browser* GetBrowser() const { return GetBrowser(true); } 209 virtual Browser* GetBrowser() const { return GetBrowser(true); }
209 virtual RenderViewHost* GetRenderViewHost() { return render_view_host(); } 210 virtual RenderViewHost* GetRenderViewHost() { return render_view_host(); }
210 virtual gfx::NativeView GetNativeViewOfHost() {
211 return view() ? view()->native_view() : NULL;
212 }
213 211
214 // Handles keyboard events that were not handled by HandleKeyboardEvent(). 212 // Handles keyboard events that were not handled by HandleKeyboardEvent().
215 // Platform specific implementation may override this method to handle the 213 // Platform specific implementation may override this method to handle the
216 // event in platform specific way. 214 // event in platform specific way.
217 virtual void UnhandledKeyboardEvent(const NativeWebKeyboardEvent& event) {} 215 virtual void UnhandledKeyboardEvent(const NativeWebKeyboardEvent& event) {}
218 216
219 // Returns true if we're hosting a background page. 217 // Returns true if we're hosting a background page.
220 // This isn't valid until CreateRenderView is called. 218 // This isn't valid until CreateRenderView is called.
221 bool is_background_page() const { return !view(); } 219 bool is_background_page() const { return !view(); }
222 220
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 // are used here, others are not hosted by ExtensionHost. 256 // are used here, others are not hosted by ExtensionHost.
259 ViewType::Type extension_host_type_; 257 ViewType::Type extension_host_type_;
260 258
261 // Used to measure how long it's been since the host was created. 259 // Used to measure how long it's been since the host was created.
262 PerfTimer since_created_; 260 PerfTimer since_created_;
263 261
264 DISALLOW_COPY_AND_ASSIGN(ExtensionHost); 262 DISALLOW_COPY_AND_ASSIGN(ExtensionHost);
265 }; 263 };
266 264
267 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_HOST_H_ 265 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_HOST_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_function_dispatcher.cc ('k') | chrome/browser/extensions/extension_popup_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698