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 #include "chrome_frame/utils.h" | 5 #include "chrome_frame/utils.h" |
6 | 6 |
7 #include <htiframe.h> | 7 #include <htiframe.h> |
8 #include <mshtml.h> | 8 #include <mshtml.h> |
9 #include <shlobj.h> | 9 #include <shlobj.h> |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... |
34 #include "chrome_frame/policy_settings.h" | 34 #include "chrome_frame/policy_settings.h" |
35 #include "chrome_frame/simple_resource_loader.h" | 35 #include "chrome_frame/simple_resource_loader.h" |
36 #include "googleurl/src/gurl.h" | 36 #include "googleurl/src/gurl.h" |
37 #include "googleurl/src/url_canon.h" | 37 #include "googleurl/src/url_canon.h" |
38 #include "grit/chromium_strings.h" | 38 #include "grit/chromium_strings.h" |
39 #include "net/base/escape.h" | 39 #include "net/base/escape.h" |
40 #include "net/http/http_util.h" | 40 #include "net/http/http_util.h" |
41 | 41 |
42 using base::win::RegKey; | 42 using base::win::RegKey; |
43 using base::win::ScopedComPtr; | 43 using base::win::ScopedComPtr; |
44 using base::win::ScopedVariant; | |
45 | 44 |
46 // Note that these values are all lower case and are compared to | 45 // Note that these values are all lower case and are compared to |
47 // lower-case-transformed values. | 46 // lower-case-transformed values. |
48 const wchar_t kMetaTag[] = L"meta"; | 47 const wchar_t kMetaTag[] = L"meta"; |
49 const wchar_t kHttpEquivAttribName[] = L"http-equiv"; | 48 const wchar_t kHttpEquivAttribName[] = L"http-equiv"; |
50 const wchar_t kContentAttribName[] = L"content"; | 49 const wchar_t kContentAttribName[] = L"content"; |
51 const wchar_t kXUACompatValue[] = L"x-ua-compatible"; | 50 const wchar_t kXUACompatValue[] = L"x-ua-compatible"; |
52 const wchar_t kBodyTag[] = L"body"; | 51 const wchar_t kBodyTag[] = L"body"; |
53 const wchar_t kChromeContentPrefix[] = L"chrome="; | 52 const wchar_t kChromeContentPrefix[] = L"chrome="; |
54 const char kGCFProtocol[] = "gcf"; | 53 const char kGCFProtocol[] = "gcf"; |
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
818 | 817 |
819 // TODO(tommi): See if we can get HlinkSimpleNavigateToMoniker to work | 818 // TODO(tommi): See if we can get HlinkSimpleNavigateToMoniker to work |
820 // instead. Looks like we'll need to support IHTMLDocument2 (get_URL in | 819 // instead. Looks like we'll need to support IHTMLDocument2 (get_URL in |
821 // particular), access to IWebBrowser2 etc. | 820 // particular), access to IWebBrowser2 etc. |
822 // HlinkSimpleNavigateToMoniker(moniker, url, NULL, host, bind_context, | 821 // HlinkSimpleNavigateToMoniker(moniker, url, NULL, host, bind_context, |
823 // NULL, 0, 0); | 822 // NULL, 0, 0); |
824 | 823 |
825 ScopedComPtr<IUriContainer> uri_container; | 824 ScopedComPtr<IUriContainer> uri_container; |
826 hr = uri_container.QueryFrom(moniker); | 825 hr = uri_container.QueryFrom(moniker); |
827 | 826 |
828 ScopedVariant headers_var; | 827 base::win::ScopedVariant headers_var; |
829 if (headers && headers[0]) | 828 if (headers && headers[0]) |
830 headers_var.Set(headers); | 829 headers_var.Set(headers); |
831 | 830 |
832 if (uri_container) { | 831 if (uri_container) { |
833 // IE7 and IE8. | 832 // IE7 and IE8. |
834 const IID* interface_ids[] = { | 833 const IID* interface_ids[] = { |
835 &IID_IWebBrowserPriv2IE7, | 834 &IID_IWebBrowserPriv2IE7, |
836 &IID_IWebBrowserPriv2IE8, | 835 &IID_IWebBrowserPriv2IE8, |
837 &IID_IWebBrowserPriv2IE8XP, | 836 &IID_IWebBrowserPriv2IE8XP, |
838 &IID_IWebBrowserPriv2IE8XPBeta, | 837 &IID_IWebBrowserPriv2IE8XPBeta, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 // manager and use it. | 872 // manager and use it. |
874 if (target_url.has_ref()) { | 873 if (target_url.has_ref()) { |
875 url_parse::Component comp; | 874 url_parse::Component comp; |
876 GURL::Replacements replacements; | 875 GURL::Replacements replacements; |
877 replacements.SetRef("", comp); | 876 replacements.SetRef("", comp); |
878 | 877 |
879 target_url = target_url.ReplaceComponents(replacements); | 878 target_url = target_url.ReplaceComponents(replacements); |
880 fragment = NULL; | 879 fragment = NULL; |
881 } | 880 } |
882 | 881 |
883 ScopedVariant var_url(UTF8ToWide(target_url.spec()).c_str()); | 882 base::win::ScopedVariant var_url(UTF8ToWide(target_url.spec()).c_str()); |
884 hr = browser_priv->NavigateWithBindCtx(var_url.AsInput(), NULL, NULL, | 883 hr = browser_priv->NavigateWithBindCtx(var_url.AsInput(), NULL, NULL, |
885 NULL, headers_var.AsInput(), | 884 NULL, headers_var.AsInput(), |
886 bind_ctx, | 885 bind_ctx, |
887 const_cast<wchar_t*>(fragment)); | 886 const_cast<wchar_t*>(fragment)); |
888 DLOG_IF(WARNING, FAILED(hr)) | 887 DLOG_IF(WARNING, FAILED(hr)) |
889 << base::StringPrintf(L"NavigateWithBindCtx 0x%08X", hr); | 888 << base::StringPrintf(L"NavigateWithBindCtx 0x%08X", hr); |
890 } else { | 889 } else { |
891 NOTREACHED(); | 890 NOTREACHED(); |
892 } | 891 } |
893 ::CoTaskMemFree(url); | 892 ::CoTaskMemFree(url); |
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1575 | 1574 |
1576 void EnumerateKeyValues(HKEY parent_key, const wchar_t* sub_key_name, | 1575 void EnumerateKeyValues(HKEY parent_key, const wchar_t* sub_key_name, |
1577 std::vector<std::wstring>* values) { | 1576 std::vector<std::wstring>* values) { |
1578 DCHECK(values); | 1577 DCHECK(values); |
1579 base::win::RegistryValueIterator url_list(parent_key, sub_key_name); | 1578 base::win::RegistryValueIterator url_list(parent_key, sub_key_name); |
1580 while (url_list.Valid()) { | 1579 while (url_list.Valid()) { |
1581 values->push_back(url_list.Value()); | 1580 values->push_back(url_list.Value()); |
1582 ++url_list; | 1581 ++url_list; |
1583 } | 1582 } |
1584 } | 1583 } |
OLD | NEW |