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

Side by Side Diff: chrome/browser/ui/tab_contents/tab_contents_wrapper.cc

Issue 7134017: Make safe browsing work in a multi-profile environment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: addressed sky's nit Created 9 years, 5 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/browser/ui/tab_contents/tab_contents_wrapper.h ('k') | chrome/common/render_messages.h » ('j') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/browser/ui/tab_contents/tab_contents_wrapper.h" 5 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "chrome/browser/autocomplete_history_manager.h" 9 #include "chrome/browser/autocomplete_history_manager.h"
10 #include "chrome/browser/autofill/autofill_manager.h" 10 #include "chrome/browser/autofill/autofill_manager.h"
11 #include "chrome/browser/automation/automation_tab_helper.h" 11 #include "chrome/browser/automation/automation_tab_helper.h"
12 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/browser_shutdown.h" 13 #include "chrome/browser/browser_shutdown.h"
13 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 14 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
14 #include "chrome/browser/custom_handlers/protocol_handler.h" 15 #include "chrome/browser/custom_handlers/protocol_handler.h"
15 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" 16 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
16 #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_deleg ate.h" 17 #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_deleg ate.h"
17 #include "chrome/browser/extensions/extension_tab_helper.h" 18 #include "chrome/browser/extensions/extension_tab_helper.h"
18 #include "chrome/browser/extensions/extension_webnavigation_api.h" 19 #include "chrome/browser/extensions/extension_webnavigation_api.h"
19 #include "chrome/browser/external_protocol/external_protocol_observer.h" 20 #include "chrome/browser/external_protocol/external_protocol_observer.h"
20 #include "chrome/browser/favicon/favicon_tab_helper.h" 21 #include "chrome/browser/favicon/favicon_tab_helper.h"
21 #include "chrome/browser/file_select_helper.h" 22 #include "chrome/browser/file_select_helper.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 69
69 static base::LazyInstance<PropertyAccessor<TabContentsWrapper*> > 70 static base::LazyInstance<PropertyAccessor<TabContentsWrapper*> >
70 g_tab_contents_wrapper_property_accessor(base::LINKER_INITIALIZED); 71 g_tab_contents_wrapper_property_accessor(base::LINKER_INITIALIZED);
71 72
72 // The list of prefs we want to observe. 73 // The list of prefs we want to observe.
73 const char* kPrefsToObserve[] = { 74 const char* kPrefsToObserve[] = {
74 prefs::kAlternateErrorPagesEnabled, 75 prefs::kAlternateErrorPagesEnabled,
75 prefs::kDefaultCharset, 76 prefs::kDefaultCharset,
76 prefs::kDefaultZoomLevel, 77 prefs::kDefaultZoomLevel,
77 prefs::kEnableReferrers, 78 prefs::kEnableReferrers,
79 #if defined (ENABLE_SAFE_BROWSING)
80 prefs::kSafeBrowsingEnabled,
81 #endif
78 prefs::kWebKitAllowDisplayingInsecureContent, 82 prefs::kWebKitAllowDisplayingInsecureContent,
79 prefs::kWebKitAllowRunningInsecureContent, 83 prefs::kWebKitAllowRunningInsecureContent,
80 prefs::kWebKitDefaultFixedFontSize, 84 prefs::kWebKitDefaultFixedFontSize,
81 prefs::kWebKitDefaultFontSize, 85 prefs::kWebKitDefaultFontSize,
82 prefs::kWebKitFixedFontFamily, 86 prefs::kWebKitFixedFontFamily,
83 prefs::kWebKitJavaEnabled, 87 prefs::kWebKitJavaEnabled,
84 prefs::kWebKitJavascriptEnabled, 88 prefs::kWebKitJavascriptEnabled,
85 prefs::kWebKitLoadsImagesAutomatically, 89 prefs::kWebKitLoadsImagesAutomatically,
86 prefs::kWebKitMinimumFontSize, 90 prefs::kWebKitMinimumFontSize,
87 prefs::kWebKitMinimumLogicalFontSize, 91 prefs::kWebKitMinimumLogicalFontSize,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 download_tab_helper_.reset(new DownloadTabHelper(this)); 125 download_tab_helper_.reset(new DownloadTabHelper(this));
122 extension_tab_helper_.reset(new ExtensionTabHelper(this)); 126 extension_tab_helper_.reset(new ExtensionTabHelper(this));
123 favicon_tab_helper_.reset(new FaviconTabHelper(contents)); 127 favicon_tab_helper_.reset(new FaviconTabHelper(contents));
124 find_tab_helper_.reset(new FindTabHelper(contents)); 128 find_tab_helper_.reset(new FindTabHelper(contents));
125 history_tab_helper_.reset(new HistoryTabHelper(contents)); 129 history_tab_helper_.reset(new HistoryTabHelper(contents));
126 restore_tab_helper_.reset(new RestoreTabHelper(this)); 130 restore_tab_helper_.reset(new RestoreTabHelper(this));
127 password_manager_delegate_.reset(new PasswordManagerDelegateImpl(this)); 131 password_manager_delegate_.reset(new PasswordManagerDelegateImpl(this));
128 password_manager_.reset( 132 password_manager_.reset(
129 new PasswordManager(contents, password_manager_delegate_.get())); 133 new PasswordManager(contents, password_manager_delegate_.get()));
130 #if defined(ENABLE_SAFE_BROWSING) 134 #if defined(ENABLE_SAFE_BROWSING)
131 safebrowsing_detection_host_.reset( 135 if (profile()->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled) &&
132 safe_browsing::ClientSideDetectionHost::Create(contents)); 136 g_browser_process->safe_browsing_detection_service()) {
137 safebrowsing_detection_host_.reset(
138 safe_browsing::ClientSideDetectionHost::Create(contents));
139 }
133 #endif 140 #endif
134 search_engine_tab_helper_.reset(new SearchEngineTabHelper(contents)); 141 search_engine_tab_helper_.reset(new SearchEngineTabHelper(contents));
135 ssl_helper_.reset(new TabContentsSSLHelper(this)); 142 ssl_helper_.reset(new TabContentsSSLHelper(this));
136 content_settings_.reset(new TabSpecificContentSettings(contents)); 143 content_settings_.reset(new TabSpecificContentSettings(contents));
137 translate_tab_helper_.reset(new TranslateTabHelper(contents)); 144 translate_tab_helper_.reset(new TranslateTabHelper(contents));
138 print_view_manager_.reset(new printing::PrintViewManager(this)); 145 print_view_manager_.reset(new printing::PrintViewManager(this));
139 146
140 // Create the per-tab observers. 147 // Create the per-tab observers.
141 external_protocol_observer_.reset(new ExternalProtocolObserver(contents)); 148 external_protocol_observer_.reset(new ExternalProtocolObserver(contents));
142 file_select_observer_.reset(new FileSelectObserver(contents)); 149 file_select_observer_.reset(new FileSelectObserver(contents));
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 if (*pref_name_in == prefs::kAlternateErrorPagesEnabled) { 458 if (*pref_name_in == prefs::kAlternateErrorPagesEnabled) {
452 UpdateAlternateErrorPageURL(render_view_host()); 459 UpdateAlternateErrorPageURL(render_view_host());
453 } else if ((*pref_name_in == prefs::kDefaultCharset) || 460 } else if ((*pref_name_in == prefs::kDefaultCharset) ||
454 StartsWithASCII(*pref_name_in, "webkit.webprefs.", true)) { 461 StartsWithASCII(*pref_name_in, "webkit.webprefs.", true)) {
455 UpdateWebPreferences(); 462 UpdateWebPreferences();
456 } else if (*pref_name_in == prefs::kDefaultZoomLevel) { 463 } else if (*pref_name_in == prefs::kDefaultZoomLevel) {
457 Send(new ViewMsg_SetZoomLevel( 464 Send(new ViewMsg_SetZoomLevel(
458 routing_id(), tab_contents()->GetZoomLevel())); 465 routing_id(), tab_contents()->GetZoomLevel()));
459 } else if (*pref_name_in == prefs::kEnableReferrers) { 466 } else if (*pref_name_in == prefs::kEnableReferrers) {
460 UpdateRendererPreferences(); 467 UpdateRendererPreferences();
468 } else if (*pref_name_in == prefs::kSafeBrowsingEnabled) {
469 UpdateSafebrowsingDetectionHost();
461 } else { 470 } else {
462 NOTREACHED() << "unexpected pref change notification" << *pref_name_in; 471 NOTREACHED() << "unexpected pref change notification" << *pref_name_in;
463 } 472 }
464 break; 473 break;
465 } 474 }
466 default: 475 default:
467 NOTREACHED(); 476 NOTREACHED();
468 } 477 }
469 } 478 }
470 479
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 RenderViewHostDelegate* rvhd = tab_contents(); 633 RenderViewHostDelegate* rvhd = tab_contents();
625 Send(new ViewMsg_UpdateWebPreferences(routing_id(), rvhd->GetWebkitPrefs())); 634 Send(new ViewMsg_UpdateWebPreferences(routing_id(), rvhd->GetWebkitPrefs()));
626 } 635 }
627 636
628 void TabContentsWrapper::UpdateRendererPreferences() { 637 void TabContentsWrapper::UpdateRendererPreferences() {
629 renderer_preferences_util::UpdateFromSystemSettings( 638 renderer_preferences_util::UpdateFromSystemSettings(
630 tab_contents()->GetMutableRendererPrefs(), profile()); 639 tab_contents()->GetMutableRendererPrefs(), profile());
631 render_view_host()->SyncRendererPrefs(); 640 render_view_host()->SyncRendererPrefs();
632 } 641 }
633 642
643 void TabContentsWrapper::UpdateSafebrowsingDetectionHost() {
644 PrefService* prefs = profile()->GetPrefs();
645 bool safe_browsing = prefs->GetBoolean(prefs::kSafeBrowsingEnabled);
646 if (safe_browsing &&
647 g_browser_process->safe_browsing_detection_service()) {
648 if (!safebrowsing_detection_host_.get()) {
649 safebrowsing_detection_host_.reset(
650 safe_browsing::ClientSideDetectionHost::Create(tab_contents()));
651 }
652 } else {
653 safebrowsing_detection_host_.reset();
654 }
655 render_view_host()->Send(
656 new ViewMsg_SetClientSidePhishingDetection(routing_id(), safe_browsing));
657 }
658
634 void TabContentsWrapper::RemoveInfoBarInternal(InfoBarDelegate* delegate, 659 void TabContentsWrapper::RemoveInfoBarInternal(InfoBarDelegate* delegate,
635 bool animate) { 660 bool animate) {
636 if (!infobars_enabled_) { 661 if (!infobars_enabled_) {
637 DCHECK(infobars_.empty()); 662 DCHECK(infobars_.empty());
638 return; 663 return;
639 } 664 }
640 665
641 size_t i; 666 size_t i;
642 for (i = 0; i < infobars_.size(); ++i) { 667 for (i = 0; i < infobars_.size(); ++i) {
643 if (GetInfoBarDelegateAt(i) == delegate) 668 if (GetInfoBarDelegateAt(i) == delegate)
(...skipping 13 matching lines...) Expand all
657 if (infobars_.empty()) { 682 if (infobars_.empty()) {
658 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, 683 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
659 Source<NavigationController>(&tab_contents_->controller())); 684 Source<NavigationController>(&tab_contents_->controller()));
660 } 685 }
661 } 686 }
662 687
663 void TabContentsWrapper::RemoveAllInfoBars(bool animate) { 688 void TabContentsWrapper::RemoveAllInfoBars(bool animate) {
664 while (!infobars_.empty()) 689 while (!infobars_.empty())
665 RemoveInfoBarInternal(GetInfoBarDelegateAt(infobar_count() - 1), animate); 690 RemoveInfoBarInternal(GetInfoBarDelegateAt(infobar_count() - 1), animate);
666 } 691 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/tab_contents/tab_contents_wrapper.h ('k') | chrome/common/render_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698