Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_UTILS_H_ | 5 #ifndef CHROME_FRAME_UTILS_H_ |
| 6 #define CHROME_FRAME_UTILS_H_ | 6 #define CHROME_FRAME_UTILS_H_ |
| 7 | 7 |
| 8 #include <OAidl.h> | 8 #include <OAidl.h> |
| 9 #include <objidl.h> | 9 #include <objidl.h> |
| 10 #include <windows.h> | 10 #include <windows.h> |
| 11 #include <wininet.h> | 11 #include <wininet.h> |
| 12 #include <string> | 12 #include <string> |
| 13 #include <vector> | 13 #include <vector> |
| 14 | 14 |
| 15 #include "base/basictypes.h" | 15 #include "base/basictypes.h" |
| 16 #include "base/logging.h" | 16 #include "base/logging.h" |
| 17 #include "base/metrics/histogram.h" | 17 #include "base/metrics/histogram.h" |
| 18 #include "base/string16.h" | |
| 18 #include "base/threading/thread.h" | 19 #include "base/threading/thread.h" |
| 19 #include "base/win/scoped_comptr.h" | 20 #include "base/win/scoped_comptr.h" |
| 20 #include "googleurl/src/gurl.h" | 21 #include "googleurl/src/gurl.h" |
| 21 #include "ui/gfx/rect.h" | 22 #include "ui/gfx/rect.h" |
| 22 | 23 |
| 23 class FilePath; | 24 class FilePath; |
| 24 interface IBrowserService; | 25 interface IBrowserService; |
| 25 interface IWebBrowser2; | 26 interface IWebBrowser2; |
| 26 struct ContextMenuModel; | 27 struct ContextMenuModel; |
| 27 | 28 |
| 28 // utils.h : Various utility functions and classes | 29 // utils.h : Various utility functions and classes |
| 30 extern const char kGCFProtocol[]; | |
| 29 | 31 |
| 32 extern const wchar_t kAllowUnsafeURLs[]; | |
| 30 extern const wchar_t kChromeContentPrefix[]; | 33 extern const wchar_t kChromeContentPrefix[]; |
| 31 extern const char kGCFProtocol[]; | |
| 32 extern const wchar_t kChromeProtocolPrefix[]; | |
| 33 extern const wchar_t kChromeFrameHeadlessMode[]; | |
| 34 extern const wchar_t kChromeFrameAccessibleMode[]; | 34 extern const wchar_t kChromeFrameAccessibleMode[]; |
| 35 extern const wchar_t kChromeFrameUnpinnedMode[]; | |
| 36 extern const wchar_t kAllowUnsafeURLs[]; | |
| 37 extern const wchar_t kEnableBuggyBhoIntercept[]; | |
| 38 extern const wchar_t kChromeMimeType[]; | |
| 39 extern const wchar_t kChromeFrameAttachTabPattern[]; | 35 extern const wchar_t kChromeFrameAttachTabPattern[]; |
| 40 extern const wchar_t kChromeFrameConfigKey[]; | 36 extern const wchar_t kChromeFrameConfigKey[]; |
| 37 extern const wchar_t kChromeFrameHeadlessMode[]; | |
| 38 extern const wchar_t kChromeFrameUnpinnedMode[]; | |
| 39 extern const wchar_t kChromeMimeType[]; | |
| 40 extern const wchar_t kChromeProtocolPrefix[]; | |
| 41 extern const wchar_t kEnableBuggyBhoIntercept[]; | |
| 42 extern const wchar_t kEnableGCFRendererByDefault[]; | |
| 43 extern const wchar_t kExcludeUAFromDomainList[]; | |
| 44 extern const wchar_t kIexploreProfileName[]; | |
| 41 extern const wchar_t kRenderInGCFUrlList[]; | 45 extern const wchar_t kRenderInGCFUrlList[]; |
| 42 extern const wchar_t kRenderInHostUrlList[]; | 46 extern const wchar_t kRenderInHostUrlList[]; |
| 43 extern const wchar_t kEnableGCFRendererByDefault[]; | |
| 44 extern const wchar_t kIexploreProfileName[]; | |
| 45 extern const wchar_t kRundllProfileName[]; | 47 extern const wchar_t kRundllProfileName[]; |
| 46 extern const wchar_t kUseBackgroundThreadForSubResources[]; | 48 extern const wchar_t kUseBackgroundThreadForSubResources[]; |
| 47 | 49 |
| 48 // This function is very similar to the AtlRegisterTypeLib function except | 50 // This function is very similar to the AtlRegisterTypeLib function except |
| 49 // that it takes a parameter that specifies whether to register the typelib | 51 // that it takes a parameter that specifies whether to register the typelib |
| 50 // for the current user only or on a machine-wide basis | 52 // for the current user only or on a machine-wide basis |
| 51 // Refer to the MSDN documentation for AtlRegisterTypeLib for a description of | 53 // Refer to the MSDN documentation for AtlRegisterTypeLib for a description of |
| 52 // the arguments | 54 // the arguments |
| 53 HRESULT UtilRegisterTypeLib(HINSTANCE tlb_instance, | 55 HRESULT UtilRegisterTypeLib(HINSTANCE tlb_instance, |
| 54 LPCOLESTR index, | 56 LPCOLESTR index, |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 177 RENDERER_TYPE_CHROME_HTTP_EQUIV, | 179 RENDERER_TYPE_CHROME_HTTP_EQUIV, |
| 178 RENDERER_TYPE_CHROME_RESPONSE_HEADER, | 180 RENDERER_TYPE_CHROME_RESPONSE_HEADER, |
| 179 RENDERER_TYPE_CHROME_DEFAULT_RENDERER, | 181 RENDERER_TYPE_CHROME_DEFAULT_RENDERER, |
| 180 RENDERER_TYPE_CHROME_OPT_IN_URL, | 182 RENDERER_TYPE_CHROME_OPT_IN_URL, |
| 181 RENDERER_TYPE_CHROME_WIDGET, | 183 RENDERER_TYPE_CHROME_WIDGET, |
| 182 // NOTE: all _CHOME_ values must go above here (adjust MIN/MAX as needed). | 184 // NOTE: all _CHOME_ values must go above here (adjust MIN/MAX as needed). |
| 183 RENDERER_TYPE_CHROME_MAX = RENDERER_TYPE_CHROME_WIDGET, | 185 RENDERER_TYPE_CHROME_MAX = RENDERER_TYPE_CHROME_WIDGET, |
| 184 RENDERER_TYPE_OTHER, | 186 RENDERER_TYPE_OTHER, |
| 185 }; | 187 }; |
| 186 | 188 |
| 189 enum UserAgentAction { | |
| 190 USER_AGENT_DEFAULT, | |
| 191 USER_AGENT_REMOVE | |
| 192 }; | |
| 193 | |
| 187 // Returns true if the given RendererType represents Chrome. | 194 // Returns true if the given RendererType represents Chrome. |
| 188 bool IsChrome(RendererType renderer_type); | 195 bool IsChrome(RendererType renderer_type); |
| 189 | 196 |
| 190 // Convenience macro for logging a sample for the launch type metric. | 197 // Convenience macro for logging a sample for the launch type metric. |
| 191 #define UMA_LAUNCH_TYPE_COUNT(sample) \ | 198 #define UMA_LAUNCH_TYPE_COUNT(sample) \ |
| 192 UMA_HISTOGRAM_CUSTOM_COUNTS("ChromeFrame.LaunchType", sample, \ | 199 UMA_HISTOGRAM_CUSTOM_COUNTS("ChromeFrame.LaunchType", sample, \ |
| 193 RENDERER_TYPE_CHROME_MIN, RENDERER_TYPE_CHROME_MAX, \ | 200 RENDERER_TYPE_CHROME_MIN, RENDERER_TYPE_CHROME_MAX, \ |
| 194 RENDERER_TYPE_CHROME_MAX + 1 - RENDERER_TYPE_CHROME_MIN) | 201 RENDERER_TYPE_CHROME_MAX + 1 - RENDERER_TYPE_CHROME_MIN) |
| 195 | 202 |
| 196 // To get the IE version when Chrome Frame is hosted in IE. Make sure that | 203 // To get the IE version when Chrome Frame is hosted in IE. Make sure that |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 // Returns true if all HTML pages should be rendered in GCF by default. | 272 // Returns true if all HTML pages should be rendered in GCF by default. |
| 266 bool IsGcfDefaultRenderer(); | 273 bool IsGcfDefaultRenderer(); |
| 267 | 274 |
| 268 // Check if this url is opting into Chrome Frame based on static settings. | 275 // Check if this url is opting into Chrome Frame based on static settings. |
| 269 // Returns one of: | 276 // Returns one of: |
| 270 // - RENDERER_TYPE_UNDETERMINED if not opt-in or if explicit opt-out | 277 // - RENDERER_TYPE_UNDETERMINED if not opt-in or if explicit opt-out |
| 271 // - RENDERER_TYPE_CHROME_DEFAULT_RENDERER | 278 // - RENDERER_TYPE_CHROME_DEFAULT_RENDERER |
| 272 // - RENDERER_TYPE_CHROME_OPT_IN_URL | 279 // - RENDERER_TYPE_CHROME_OPT_IN_URL |
| 273 RendererType RendererTypeForUrl(const std::wstring& url); | 280 RendererType RendererTypeForUrl(const std::wstring& url); |
| 274 | 281 |
| 282 // Check if we should try to remove the CF user agent based on registry | |
| 283 // settings. | |
| 284 UserAgentAction ShouldRemoveUAForUrl(const string16& url); | |
|
grt (UTC plus 2)
2012/03/20 17:27:45
since there are only two options and the function
robertshield
2012/03/26 02:43:33
Done.
| |
| 285 | |
| 275 // A shortcut for QueryService | 286 // A shortcut for QueryService |
| 276 template <typename T> | 287 template <typename T> |
| 277 HRESULT DoQueryService(const IID& service_id, IUnknown* unk, T** service) { | 288 HRESULT DoQueryService(const IID& service_id, IUnknown* unk, T** service) { |
| 278 DCHECK(service); | 289 DCHECK(service); |
| 279 if (!unk) | 290 if (!unk) |
| 280 return E_INVALIDARG; | 291 return E_INVALIDARG; |
| 281 | 292 |
| 282 base::win::ScopedComPtr<IServiceProvider> service_provider; | 293 base::win::ScopedComPtr<IServiceProvider> service_provider; |
| 283 HRESULT hr = service_provider.QueryFrom(unk); | 294 HRESULT hr = service_provider.QueryFrom(unk); |
| 284 if (service_provider) | 295 if (service_provider) |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 600 bool IsChromeFrameDocument(IWebBrowser2* web_browser); | 611 bool IsChromeFrameDocument(IWebBrowser2* web_browser); |
| 601 | 612 |
| 602 // Increases the wininet connection limit for HTTP 1.0/1.1 connections to the | 613 // Increases the wininet connection limit for HTTP 1.0/1.1 connections to the |
| 603 // value passed in. This is only done if the existing connection limit is | 614 // value passed in. This is only done if the existing connection limit is |
| 604 // lesser than the connection limit passed in. This function attempts to | 615 // lesser than the connection limit passed in. This function attempts to |
| 605 // increase the connection count once per process. | 616 // increase the connection count once per process. |
| 606 // Returns true on success. | 617 // Returns true on success. |
| 607 bool IncreaseWinInetConnections(DWORD connections); | 618 bool IncreaseWinInetConnections(DWORD connections); |
| 608 | 619 |
| 609 #endif // CHROME_FRAME_UTILS_H_ | 620 #endif // CHROME_FRAME_UTILS_H_ |
| OLD | NEW |