OLD | NEW |
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_FRAME_EXTERNAL_TAB_H_ | 5 #ifndef CHROME_FRAME_EXTERNAL_TAB_H_ |
6 #define CHROME_FRAME_EXTERNAL_TAB_H_ | 6 #define CHROME_FRAME_EXTERNAL_TAB_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <windows.h> | 9 #include <windows.h> |
10 #include <atlbase.h> | 10 #include <atlbase.h> |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 }; | 56 }; |
57 | 57 |
58 struct CreateTabParams { | 58 struct CreateTabParams { |
59 struct ProxyParams proxy_params; | 59 struct ProxyParams proxy_params; |
60 bool is_incognito; | 60 bool is_incognito; |
61 bool is_widget_mode; | 61 bool is_widget_mode; |
62 GURL url; | 62 GURL url; |
63 GURL referrer; | 63 GURL referrer; |
64 }; | 64 }; |
65 | 65 |
| 66 class NavigationConstraints; |
| 67 |
66 ///////////////////////////////////////////////////////////////////////// | 68 ///////////////////////////////////////////////////////////////////////// |
67 // ExternalTabProxy is a mediator between ChromeProxy (which runs mostly in | 69 // ExternalTabProxy is a mediator between ChromeProxy (which runs mostly in |
68 // background IPC-channel thread and the UI object (ActiveX, NPAPI, | 70 // background IPC-channel thread and the UI object (ActiveX, NPAPI, |
69 // ActiveDocument). | 71 // ActiveDocument). |
70 // The lifetime of ExternalTabProxy is determined by the UI object. | 72 // The lifetime of ExternalTabProxy is determined by the UI object. |
71 // | 73 // |
72 // When ExternalTabProxy dies: | 74 // When ExternalTabProxy dies: |
73 // 1. Remove itself as a ChromeProxyDelegate. This blocks until _Disconnected() | 75 // 1. Remove itself as a ChromeProxyDelegate. This blocks until _Disconnected() |
74 // is received. | 76 // is received. |
75 // 2. Kills all posted tasks to the UI thread. | 77 // 2. Kills all posted tasks to the UI thread. |
76 // 3. Stop all network requests | 78 // 3. Stop all network requests |
77 // => It does not have to (and should not) be a refcount-ed object. | 79 // => It does not have to (and should not) be a refcount-ed object. |
78 | 80 |
79 // Non-public inheritance is not allowed by the style-guide. | 81 // Non-public inheritance is not allowed by the style-guide. |
80 class ExternalTabProxy : public CWindowImpl<ExternalTabProxy>, | 82 class ExternalTabProxy : public CWindowImpl<ExternalTabProxy>, |
81 public ChromeProxyDelegate { | 83 public ChromeProxyDelegate { |
82 public: | 84 public: |
83 ExternalTabProxy(); | 85 ExternalTabProxy(); |
84 ~ExternalTabProxy(); | 86 ~ExternalTabProxy(); |
85 | 87 |
86 #ifdef UNIT_TEST | 88 #ifdef UNIT_TEST |
87 void set_proxy_factory(ChromeProxyFactory* factory) { | 89 void set_proxy_factory(ChromeProxyFactory* factory) { |
88 proxy_factory_ = factory; | 90 proxy_factory_ = factory; |
89 } | 91 } |
90 #endif | 92 #endif |
91 // | 93 // |
92 virtual void CreateTab(const CreateTabParams& create_params, | 94 virtual void CreateTab(const CreateTabParams& create_params, |
93 UIDelegate* delegate); | 95 UIDelegate* delegate); |
94 virtual void Navigate(const std::string& url, const std::string& referrer, | 96 virtual void Navigate(const std::string& url, const std::string& referrer, |
95 bool is_privileged); | 97 NavigationConstraints* navigation_constraints); |
96 virtual void NavigateToIndex(int index); | 98 virtual void NavigateToIndex(int index); |
97 virtual void ForwardMessageFromExternalHost(const std::string& message, | 99 virtual void ForwardMessageFromExternalHost(const std::string& message, |
98 const std::string& origin, const std::string& target); | 100 const std::string& origin, const std::string& target); |
99 virtual void ChromeFrameHostMoved(); | 101 virtual void ChromeFrameHostMoved(); |
100 | 102 |
101 virtual void SetEnableExtensionAutomation( | 103 virtual void SetEnableExtensionAutomation( |
102 const std::vector<std::string>& functions_enabled); | 104 const std::vector<std::string>& functions_enabled); |
103 virtual void InstallExtension(const FilePath& crx_path, void* user_data); | 105 virtual void InstallExtension(const FilePath& crx_path, void* user_data); |
104 virtual void LoadExpandedExtension(const FilePath& path, void* user_data); | 106 virtual void LoadExpandedExtension(const FilePath& path, void* user_data); |
105 virtual void GetEnabledExtensions(void* user_data); | 107 virtual void GetEnabledExtensions(void* user_data); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 | 213 |
212 CreateTabParams tab_params_; | 214 CreateTabParams tab_params_; |
213 struct PendingNavigation { | 215 struct PendingNavigation { |
214 GURL url; | 216 GURL url; |
215 GURL referrer; | 217 GURL referrer; |
216 void Set(const GURL& gurl, const GURL& ref) { | 218 void Set(const GURL& gurl, const GURL& ref) { |
217 url = gurl; | 219 url = gurl; |
218 referrer = ref; | 220 referrer = ref; |
219 } | 221 } |
220 } pending_navigation_; | 222 } pending_navigation_; |
221 | |
222 ScopedComPtr<IInternetSecurityManager> security_manager_; | |
223 }; | 223 }; |
224 | 224 |
225 #endif // CHROME_FRAME_EXTERNAL_TAB_H_ | 225 #endif // CHROME_FRAME_EXTERNAL_TAB_H_ |
OLD | NEW |