OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "chrome_frame/turndown_prompt/turndown_prompt.h" | 5 #include "chrome_frame/turndown_prompt/turndown_prompt.h" |
6 | 6 |
7 #include <atlbase.h> | 7 #include <atlbase.h> |
8 #include <shlguid.h> | 8 #include <shlguid.h> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 void OnUninstallClicked(UrlLauncher* url_launcher); | 36 void OnUninstallClicked(UrlLauncher* url_launcher); |
37 | 37 |
38 // Manages the Turndown UI in response to browsing ChromeFrame-rendered | 38 // Manages the Turndown UI in response to browsing ChromeFrame-rendered |
39 // pages. | 39 // pages. |
40 class BrowserObserver : public ReadyModeWebBrowserAdapter::Observer { | 40 class BrowserObserver : public ReadyModeWebBrowserAdapter::Observer { |
41 public: | 41 public: |
42 BrowserObserver(IWebBrowser2* web_browser, | 42 BrowserObserver(IWebBrowser2* web_browser, |
43 ReadyModeWebBrowserAdapter* adapter); | 43 ReadyModeWebBrowserAdapter* adapter); |
44 | 44 |
45 // ReadyModeWebBrowserAdapter::Observer implementation | 45 // ReadyModeWebBrowserAdapter::Observer implementation |
46 virtual void OnNavigateTo(const string16& url); | 46 virtual void OnNavigateTo(const base::string16& url); |
47 virtual void OnRenderInChromeFrame(const string16& url); | 47 virtual void OnRenderInChromeFrame(const base::string16& url); |
48 virtual void OnRenderInHost(const string16& url); | 48 virtual void OnRenderInHost(const base::string16& url); |
49 | 49 |
50 private: | 50 private: |
51 // Shows the turndown prompt. | 51 // Shows the turndown prompt. |
52 void ShowPrompt(); | 52 void ShowPrompt(); |
53 void Hide(); | 53 void Hide(); |
54 // Returns a self-managed pointer that is not guaranteed to survive handling | 54 // Returns a self-managed pointer that is not guaranteed to survive handling |
55 // of Windows events. For safety's sake, retrieve this pointer for each use | 55 // of Windows events. For safety's sake, retrieve this pointer for each use |
56 // and do not store it for use outside of scope. | 56 // and do not store it for use outside of scope. |
57 InfobarManager* GetInfobarManager(); | 57 InfobarManager* GetInfobarManager(); |
58 | 58 |
59 GURL rendered_url_; | 59 GURL rendered_url_; |
60 base::win::ScopedComPtr<IWebBrowser2> web_browser_; | 60 base::win::ScopedComPtr<IWebBrowser2> web_browser_; |
61 ReadyModeWebBrowserAdapter* adapter_; | 61 ReadyModeWebBrowserAdapter* adapter_; |
62 | 62 |
63 DISALLOW_COPY_AND_ASSIGN(BrowserObserver); | 63 DISALLOW_COPY_AND_ASSIGN(BrowserObserver); |
64 }; | 64 }; |
65 | 65 |
66 // Implements launching of a URL in an instance of IWebBrowser2. | 66 // Implements launching of a URL in an instance of IWebBrowser2. |
67 class UrlLauncherImpl : public UrlLauncher { | 67 class UrlLauncherImpl : public UrlLauncher { |
68 public: | 68 public: |
69 explicit UrlLauncherImpl(IWebBrowser2* web_browser); | 69 explicit UrlLauncherImpl(IWebBrowser2* web_browser); |
70 | 70 |
71 // UrlLauncher implementation | 71 // UrlLauncher implementation |
72 void LaunchUrl(const string16& url); | 72 void LaunchUrl(const base::string16& url); |
73 | 73 |
74 private: | 74 private: |
75 base::win::ScopedComPtr<IWebBrowser2> web_browser_; | 75 base::win::ScopedComPtr<IWebBrowser2> web_browser_; |
76 }; | 76 }; |
77 | 77 |
78 UrlLauncherImpl::UrlLauncherImpl(IWebBrowser2* web_browser) { | 78 UrlLauncherImpl::UrlLauncherImpl(IWebBrowser2* web_browser) { |
79 DCHECK(web_browser); | 79 DCHECK(web_browser); |
80 web_browser_ = web_browser; | 80 web_browser_ = web_browser; |
81 } | 81 } |
82 | 82 |
83 void UrlLauncherImpl::LaunchUrl(const string16& url) { | 83 void UrlLauncherImpl::LaunchUrl(const base::string16& url) { |
84 VARIANT flags = { VT_I4 }; | 84 VARIANT flags = { VT_I4 }; |
85 V_I4(&flags) = navOpenInNewWindow; | 85 V_I4(&flags) = navOpenInNewWindow; |
86 base::win::ScopedBstr location(url.c_str()); | 86 base::win::ScopedBstr location(url.c_str()); |
87 | 87 |
88 HRESULT hr = web_browser_->Navigate(location, &flags, NULL, NULL, NULL); | 88 HRESULT hr = web_browser_->Navigate(location, &flags, NULL, NULL, NULL); |
89 DLOG_IF(ERROR, FAILED(hr)) << "Failed to invoke Navigate on IWebBrowser2. " | 89 DLOG_IF(ERROR, FAILED(hr)) << "Failed to invoke Navigate on IWebBrowser2. " |
90 << "Error: " << hr; | 90 << "Error: " << hr; |
91 } | 91 } |
92 | 92 |
93 BrowserObserver::BrowserObserver(IWebBrowser2* web_browser, | 93 BrowserObserver::BrowserObserver(IWebBrowser2* web_browser, |
94 ReadyModeWebBrowserAdapter* adapter) | 94 ReadyModeWebBrowserAdapter* adapter) |
95 : web_browser_(web_browser), | 95 : web_browser_(web_browser), |
96 adapter_(adapter) { | 96 adapter_(adapter) { |
97 } | 97 } |
98 | 98 |
99 void BrowserObserver::OnNavigateTo(const string16& url) { | 99 void BrowserObserver::OnNavigateTo(const base::string16& url) { |
100 if (!net::registry_controlled_domains::SameDomainOrHost( | 100 if (!net::registry_controlled_domains::SameDomainOrHost( |
101 GURL(url), | 101 GURL(url), |
102 rendered_url_, | 102 rendered_url_, |
103 net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES)) { | 103 net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES)) { |
104 rendered_url_ = GURL(); | 104 rendered_url_ = GURL(); |
105 Hide(); | 105 Hide(); |
106 } | 106 } |
107 } | 107 } |
108 | 108 |
109 void BrowserObserver::OnRenderInChromeFrame(const string16& url) { | 109 void BrowserObserver::OnRenderInChromeFrame(const base::string16& url) { |
110 ShowPrompt(); | 110 ShowPrompt(); |
111 rendered_url_ = GURL(url); | 111 rendered_url_ = GURL(url); |
112 } | 112 } |
113 | 113 |
114 void BrowserObserver::OnRenderInHost(const string16& url) { | 114 void BrowserObserver::OnRenderInHost(const base::string16& url) { |
115 Hide(); | 115 Hide(); |
116 rendered_url_ = GURL(url); | 116 rendered_url_ = GURL(url); |
117 } | 117 } |
118 | 118 |
119 void BrowserObserver::ShowPrompt() { | 119 void BrowserObserver::ShowPrompt() { |
120 // This pointer is self-managed and not guaranteed to survive handling of | 120 // This pointer is self-managed and not guaranteed to survive handling of |
121 // Windows events. For safety's sake, retrieve this pointer for each use and | 121 // Windows events. For safety's sake, retrieve this pointer for each use and |
122 // do not store it for use outside of scope. | 122 // do not store it for use outside of scope. |
123 InfobarManager* infobar_manager = GetInfobarManager(); | 123 InfobarManager* infobar_manager = GetInfobarManager(); |
124 | 124 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 // See if the prompt is explicitly suppressed via GP. | 278 // See if the prompt is explicitly suppressed via GP. |
279 return PolicySettings::GetInstance()->suppress_turndown_prompt(); | 279 return PolicySettings::GetInstance()->suppress_turndown_prompt(); |
280 } | 280 } |
281 | 281 |
282 void Configure(IWebBrowser2* web_browser) { | 282 void Configure(IWebBrowser2* web_browser) { |
283 if (!IsPromptSuppressed()) | 283 if (!IsPromptSuppressed()) |
284 InstallPrompts(web_browser); | 284 InstallPrompts(web_browser); |
285 } | 285 } |
286 | 286 |
287 } // namespace turndown_prompt | 287 } // namespace turndown_prompt |
OLD | NEW |