OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ | 5 #ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ |
6 #define CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ | 6 #define CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 | 10 |
| 11 #include "chrome/common/view_types.h" |
11 #include "content/renderer/render_view.h" | 12 #include "content/renderer/render_view.h" |
12 #include "content/renderer/render_view_observer.h" | 13 #include "content/renderer/render_view_observer.h" |
13 #include "content/renderer/render_view_observer_tracker.h" | 14 #include "content/renderer/render_view_observer_tracker.h" |
14 | 15 |
15 class ExtensionDispatcher; | 16 class ExtensionDispatcher; |
16 class GURL; | 17 class GURL; |
17 class ListValue; | 18 class ListValue; |
18 struct ExtensionMsg_ExecuteCode_Params; | 19 struct ExtensionMsg_ExecuteCode_Params; |
19 struct WebApplicationInfo; | 20 struct WebApplicationInfo; |
20 | 21 |
21 namespace webkit_glue { | 22 namespace webkit_glue { |
22 class ResourceFetcher; | 23 class ResourceFetcher; |
23 } | 24 } |
24 | 25 |
25 // Filters extension related messages sent to RenderViews. | 26 // Filters extension related messages sent to RenderViews. |
26 class ExtensionHelper : public RenderViewObserver, | 27 class ExtensionHelper : public RenderViewObserver, |
27 public RenderViewObserverTracker<ExtensionHelper> { | 28 public RenderViewObserverTracker<ExtensionHelper> { |
28 public: | 29 public: |
29 ExtensionHelper(RenderView* render_view, | 30 ExtensionHelper(RenderView* render_view, |
30 ExtensionDispatcher* extension_dispatcher); | 31 ExtensionDispatcher* extension_dispatcher); |
31 virtual ~ExtensionHelper(); | 32 virtual ~ExtensionHelper(); |
32 | 33 |
33 // Starts installation of the page in the specified frame as a web app. The | 34 // Starts installation of the page in the specified frame as a web app. The |
34 // page must link to an external 'definition file'. This is different from | 35 // page must link to an external 'definition file'. This is different from |
35 // the 'application shortcuts' feature where we pull the application | 36 // the 'application shortcuts' feature where we pull the application |
36 // definition out of optional meta tags in the page. | 37 // definition out of optional meta tags in the page. |
37 bool InstallWebApplicationUsingDefinitionFile(WebKit::WebFrame* frame, | 38 bool InstallWebApplicationUsingDefinitionFile(WebKit::WebFrame* frame, |
38 string16* error); | 39 string16* error); |
39 | 40 |
| 41 int browser_window_id() const { return browser_window_id_; } |
| 42 ViewType::Type view_type() const { return view_type_; } |
| 43 |
40 private: | 44 private: |
41 // RenderViewObserver implementation. | 45 // RenderViewObserver implementation. |
42 virtual bool OnMessageReceived(const IPC::Message& message); | 46 virtual bool OnMessageReceived(const IPC::Message& message); |
43 virtual void DidFinishDocumentLoad(WebKit::WebFrame* frame); | 47 virtual void DidFinishDocumentLoad(WebKit::WebFrame* frame); |
44 virtual void DidFinishLoad(WebKit::WebFrame* frame); | 48 virtual void DidFinishLoad(WebKit::WebFrame* frame); |
45 virtual void DidCreateDocumentElement(WebKit::WebFrame* frame); | 49 virtual void DidCreateDocumentElement(WebKit::WebFrame* frame); |
46 virtual void DidStartProvisionalLoad(WebKit::WebFrame* frame); | 50 virtual void DidStartProvisionalLoad(WebKit::WebFrame* frame); |
47 virtual void FrameDetached(WebKit::WebFrame* frame); | 51 virtual void FrameDetached(WebKit::WebFrame* frame); |
48 virtual void DidCreateDataSource(WebKit::WebFrame* frame, | 52 virtual void DidCreateDataSource(WebKit::WebFrame* frame, |
49 WebKit::WebDataSource* ds); | 53 WebKit::WebDataSource* ds); |
50 | 54 |
51 void OnExtensionResponse(int request_id, bool success, | 55 void OnExtensionResponse(int request_id, bool success, |
52 const std::string& response, | 56 const std::string& response, |
53 const std::string& error); | 57 const std::string& error); |
54 void OnExtensionMessageInvoke(const std::string& extension_id, | 58 void OnExtensionMessageInvoke(const std::string& extension_id, |
55 const std::string& function_name, | 59 const std::string& function_name, |
56 const ListValue& args, | 60 const ListValue& args, |
57 const GURL& event_url); | 61 const GURL& event_url); |
58 void OnExecuteCode(const ExtensionMsg_ExecuteCode_Params& params); | 62 void OnExecuteCode(const ExtensionMsg_ExecuteCode_Params& params); |
59 void OnGetApplicationInfo(int page_id); | 63 void OnGetApplicationInfo(int page_id); |
| 64 void OnNotifyRendererViewType(ViewType::Type view_type); |
| 65 void OnUpdateBrowserWindowId(int window_id); |
60 | 66 |
61 // Callback triggered when we finish downloading the application definition | 67 // Callback triggered when we finish downloading the application definition |
62 // file. | 68 // file. |
63 void DidDownloadApplicationDefinition(const WebKit::WebURLResponse& response, | 69 void DidDownloadApplicationDefinition(const WebKit::WebURLResponse& response, |
64 const std::string& data); | 70 const std::string& data); |
65 | 71 |
66 // Callback triggered after each icon referenced by the application definition | 72 // Callback triggered after each icon referenced by the application definition |
67 // is downloaded. | 73 // is downloaded. |
68 void DidDownloadApplicationIcon(webkit_glue::ImageResourceFetcher* fetcher, | 74 void DidDownloadApplicationIcon(webkit_glue::ImageResourceFetcher* fetcher, |
69 const SkBitmap& image); | 75 const SkBitmap& image); |
(...skipping 11 matching lines...) Expand all Loading... |
81 // Used to download the application definition file. | 87 // Used to download the application definition file. |
82 scoped_ptr<webkit_glue::ResourceFetcher> app_definition_fetcher_; | 88 scoped_ptr<webkit_glue::ResourceFetcher> app_definition_fetcher_; |
83 | 89 |
84 // Used to download the icons for an application. | 90 // Used to download the icons for an application. |
85 RenderView::ImageResourceFetcherList app_icon_fetchers_; | 91 RenderView::ImageResourceFetcherList app_icon_fetchers_; |
86 | 92 |
87 // The number of app icon requests outstanding. When this reaches zero, we're | 93 // The number of app icon requests outstanding. When this reaches zero, we're |
88 // done processing an app definition file. | 94 // done processing an app definition file. |
89 int pending_app_icon_requests_; | 95 int pending_app_icon_requests_; |
90 | 96 |
| 97 // Type of view attached with RenderView. |
| 98 ViewType::Type view_type_; |
| 99 |
| 100 // Id number of browser window which RenderView is attached to. |
| 101 int browser_window_id_; |
| 102 |
91 DISALLOW_COPY_AND_ASSIGN(ExtensionHelper); | 103 DISALLOW_COPY_AND_ASSIGN(ExtensionHelper); |
92 }; | 104 }; |
93 | 105 |
94 #endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ | 106 #endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ |
OLD | NEW |