Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: chrome_frame/utils.cc

Issue 3443017: Committing http://codereview.chromium.org/3420004/show for grt@... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome_frame/utils.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <htiframe.h> 5 #include <htiframe.h>
6 #include <mshtml.h> 6 #include <mshtml.h>
7 #include <shlobj.h> 7 #include <shlobj.h>
8 #include <wininet.h> 8 #include <wininet.h>
9 9
10 #include <atlsecurity.h> 10 #include <atlsecurity.h>
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 // while the module's refcount is > 0. Only do this when we're being 351 // while the module's refcount is > 0. Only do this when we're being
352 // used as an NPAPI module. 352 // used as an NPAPI module.
353 _pAtlModule->Lock(); 353 _pAtlModule->Lock();
354 } 354 }
355 355
356 356
357 AddRefModule::~AddRefModule() { 357 AddRefModule::~AddRefModule() {
358 _pAtlModule->Unlock(); 358 _pAtlModule->Unlock();
359 } 359 }
360 360
361 bool IsChrome(RendererType renderer_type) {
362 DCHECK_GE(renderer_type, RENDERER_TYPE_UNDETERMINED);
363 DCHECK_LE(renderer_type, RENDERER_TYPE_OTHER);
364 return renderer_type >= RENDERER_TYPE_CHROME_MIN &&
365 renderer_type <= RENDERER_TYPE_CHROME_MAX;
366 }
367
361 namespace { 368 namespace {
362 const char kIEImageName[] = "iexplore.exe"; 369 const char kIEImageName[] = "iexplore.exe";
363 const char kFirefoxImageName[] = "firefox.exe"; 370 const char kFirefoxImageName[] = "firefox.exe";
364 const char kOperaImageName[] = "opera.exe"; 371 const char kOperaImageName[] = "opera.exe";
365 } // namespace 372 } // namespace
366 373
367 std::wstring GetHostProcessName(bool include_extension) { 374 std::wstring GetHostProcessName(bool include_extension) {
368 FilePath exe; 375 FilePath exe;
369 if (PathService::Get(base::FILE_EXE, &exe)) 376 if (PathService::Get(base::FILE_EXE, &exe))
370 exe = exe.BaseName(); 377 exe = exe.BaseName();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 uint32 high = 0; 420 uint32 high = 0;
414 uint32 low = 0; 421 uint32 low = 0;
415 if (GetModuleVersion(mod, &high, &low)) { 422 if (GetModuleVersion(mod, &high, &low)) {
416 switch (HIWORD(high)) { 423 switch (HIWORD(high)) {
417 case 6: 424 case 6:
418 ie_version = IE_6; 425 ie_version = IE_6;
419 break; 426 break;
420 case 7: 427 case 7:
421 ie_version = IE_7; 428 ie_version = IE_7;
422 break; 429 break;
430 case 8:
431 ie_version = IE_8;
432 break;
423 default: 433 default:
424 ie_version = HIWORD(high) >= 8 ? IE_8 : IE_UNSUPPORTED; 434 ie_version = HIWORD(high) >= 9 ? IE_9 : IE_UNSUPPORTED;
425 break; 435 break;
426 } 436 }
427 } else { 437 } else {
428 NOTREACHED() << "Can't get IE version"; 438 NOTREACHED() << "Can't get IE version";
429 } 439 }
430 } 440 }
431 } 441 }
432 442
433 return ie_version; 443 return ie_version;
434 } 444 }
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 // checked frequently. 713 // checked frequently.
704 RegKey config_key; 714 RegKey config_key;
705 if (config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_READ)) { 715 if (config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_READ)) {
706 config_key.ReadValueDW(kEnableGCFRendererByDefault, &is_default); 716 config_key.ReadValueDW(kEnableGCFRendererByDefault, &is_default);
707 } 717 }
708 } 718 }
709 719
710 return is_default != 0; 720 return is_default != 0;
711 } 721 }
712 722
713 bool IsOptInUrl(const wchar_t* url) { 723 RendererType RendererTypeForUrl(const std::wstring& url) {
714 // First check if the default renderer settings are specified by policy. 724 // First check if the default renderer settings are specified by policy.
715 // If so, then that overrides the user settings. 725 // If so, then that overrides the user settings.
716 Singleton<PolicySettings> policy; 726 Singleton<PolicySettings> policy;
717 PolicySettings::RendererForUrl renderer = policy->GetRendererForUrl(url); 727 PolicySettings::RendererForUrl renderer = policy->GetRendererForUrl(
728 url.c_str());
718 if (renderer != PolicySettings::RENDERER_NOT_SPECIFIED) { 729 if (renderer != PolicySettings::RENDERER_NOT_SPECIFIED) {
719 return (renderer == PolicySettings::RENDER_IN_CHROME_FRAME); 730 // We may know at this point that policy says do NOT render in Chrome Frame.
731 // To maintain consistency, we return RENDERER_TYPE_UNDETERMINED so that
732 // content sniffing, etc. still take place.
733 // TODO(tommi): Clarify the intent here.
734 return (renderer == PolicySettings::RENDER_IN_CHROME_FRAME) ?
735 RENDERER_TYPE_CHROME_OPT_IN_URL : RENDERER_TYPE_UNDETERMINED;
720 } 736 }
721 737
722 RegKey config_key; 738 RegKey config_key;
723 if (!config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_READ)) 739 if (!config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_READ))
724 return false; 740 return RENDERER_TYPE_UNDETERMINED;
725 741
726 bool load_in_chrome_frame = false; 742 RendererType renderer_type = RENDERER_TYPE_UNDETERMINED;
727 743
728 const wchar_t* url_list_name = NULL; 744 const wchar_t* url_list_name = NULL;
729 int render_in_cf_by_default = FALSE; 745 int render_in_cf_by_default = FALSE;
730 config_key.ReadValueDW(kEnableGCFRendererByDefault, 746 config_key.ReadValueDW(kEnableGCFRendererByDefault,
731 reinterpret_cast<DWORD*>(&render_in_cf_by_default)); 747 reinterpret_cast<DWORD*>(&render_in_cf_by_default));
732 if (render_in_cf_by_default) { 748 if (render_in_cf_by_default) {
733 url_list_name = kRenderInHostUrlList; 749 url_list_name = kRenderInHostUrlList;
734 load_in_chrome_frame = true; // change the default to true. 750 renderer_type = RENDERER_TYPE_CHROME_DEFAULT_RENDERER;
735 } else { 751 } else {
736 url_list_name = kRenderInGCFUrlList; 752 url_list_name = kRenderInGCFUrlList;
737 } 753 }
738 754
739 bool match_found = false; 755 bool match_found = false;
740 RegistryValueIterator url_list(config_key.Handle(), url_list_name); 756 RegistryValueIterator url_list(config_key.Handle(), url_list_name);
741 while (!match_found && url_list.Valid()) { 757 while (!match_found && url_list.Valid()) {
742 if (MatchPattern(url, url_list.Name())) { 758 if (MatchPattern(url, url_list.Name())) {
743 match_found = true; 759 match_found = true;
744 } else { 760 } else {
745 ++url_list; 761 ++url_list;
746 } 762 }
747 } 763 }
748 764
749 if (match_found) { 765 if (match_found) {
750 // The lists are there to opt out of whatever is the default. 766 renderer_type = render_in_cf_by_default ?
751 load_in_chrome_frame = !load_in_chrome_frame; 767 RENDERER_TYPE_UNDETERMINED :
768 RENDERER_TYPE_CHROME_OPT_IN_URL;
752 } 769 }
753 770
754 return load_in_chrome_frame; 771 return renderer_type;
755 } 772 }
756 773
757 HRESULT NavigateBrowserToMoniker(IUnknown* browser, IMoniker* moniker, 774 HRESULT NavigateBrowserToMoniker(IUnknown* browser, IMoniker* moniker,
758 const wchar_t* headers, IBindCtx* bind_ctx, 775 const wchar_t* headers, IBindCtx* bind_ctx,
759 const wchar_t* fragment) { 776 const wchar_t* fragment) {
760 DCHECK(browser); 777 DCHECK(browser);
761 DCHECK(moniker); 778 DCHECK(moniker);
762 DCHECK(bind_ctx); 779 DCHECK(bind_ctx);
763 780
764 ScopedComPtr<IWebBrowser2> web_browser2; 781 ScopedComPtr<IWebBrowser2> web_browser2;
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
1489 default: { 1506 default: {
1490 NOTREACHED() << "Unexpected return from MsgWaitForMultipleObjects :" 1507 NOTREACHED() << "Unexpected return from MsgWaitForMultipleObjects :"
1491 << wait; 1508 << wait;
1492 return; 1509 return;
1493 } 1510 }
1494 } 1511 }
1495 now = base::Time::Now(); 1512 now = base::Time::Now();
1496 } 1513 }
1497 } 1514 }
1498 1515
OLDNEW
« no previous file with comments | « chrome_frame/utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698