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

Side by Side Diff: chrome/browser/ui/content_settings/content_setting_bubble_model.cc

Issue 10546083: Convert ProtocolHandlerRegistry to be a ProfileKeyedService. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Minor docu-changes. Created 8 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
OLDNEW
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 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" 5 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/content_settings/content_settings_utils.h" 8 #include "chrome/browser/content_settings/content_settings_utils.h"
9 #include "chrome/browser/content_settings/cookie_settings.h" 9 #include "chrome/browser/content_settings/cookie_settings.h"
10 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 10 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
11 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" 11 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
12 #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h"
12 #include "chrome/browser/favicon/favicon_tab_helper.h" 13 #include "chrome/browser/favicon/favicon_tab_helper.h"
13 #include "chrome/browser/infobars/infobar_tab_helper.h" 14 #include "chrome/browser/infobars/infobar_tab_helper.h"
14 #include "chrome/browser/prefs/pref_service.h" 15 #include "chrome/browser/prefs/pref_service.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" 17 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h"
17 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper_delegate. h" 18 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper_delegate. h"
18 #include "chrome/browser/ui/collected_cookies_infobar_delegate.h" 19 #include "chrome/browser/ui/collected_cookies_infobar_delegate.h"
19 #include "chrome/browser/ui/content_settings/content_setting_bubble_model_delega te.h" 20 #include "chrome/browser/ui/content_settings/content_setting_bubble_model_delega te.h"
20 #include "chrome/browser/ui/tab_contents/tab_contents.h" 21 #include "chrome/browser/ui/tab_contents/tab_contents.h"
21 #include "chrome/common/chrome_notification_types.h" 22 #include "chrome/common/chrome_notification_types.h"
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 content::RenderViewHost* host = 600 content::RenderViewHost* host =
600 tab_contents()->web_contents()->GetRenderViewHost(); 601 tab_contents()->web_contents()->GetRenderViewHost();
601 host->Send(new ChromeViewMsg_SetAllowRunningInsecureContent( 602 host->Send(new ChromeViewMsg_SetAllowRunningInsecureContent(
602 host->GetRoutingID(), true)); 603 host->GetRoutingID(), true));
603 } 604 }
604 605
605 ContentSettingRPHBubbleModel::ContentSettingRPHBubbleModel( 606 ContentSettingRPHBubbleModel::ContentSettingRPHBubbleModel(
606 Delegate* delegate, 607 Delegate* delegate,
607 TabContents* tab_contents, 608 TabContents* tab_contents,
608 Profile* profile, 609 Profile* profile,
610 ProtocolHandlerRegistry* registry,
609 ContentSettingsType content_type) 611 ContentSettingsType content_type)
610 : ContentSettingTitleAndLinkModel( 612 : ContentSettingTitleAndLinkModel(
611 delegate, tab_contents, profile, content_type), 613 delegate, tab_contents, profile, content_type),
612 selected_item_(0), 614 selected_item_(0),
615 registry_(registry),
613 pending_handler_(ProtocolHandler::EmptyProtocolHandler()), 616 pending_handler_(ProtocolHandler::EmptyProtocolHandler()),
614 previous_handler_(ProtocolHandler::EmptyProtocolHandler()) { 617 previous_handler_(ProtocolHandler::EmptyProtocolHandler()) {
618
615 DCHECK_EQ(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, content_type); 619 DCHECK_EQ(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, content_type);
616 620
617 TabSpecificContentSettings* content_settings = 621 TabSpecificContentSettings* content_settings =
618 tab_contents->content_settings(); 622 tab_contents->content_settings();
619 pending_handler_ = content_settings->pending_protocol_handler(); 623 pending_handler_ = content_settings->pending_protocol_handler();
620 previous_handler_ = content_settings->previous_protocol_handler(); 624 previous_handler_ = content_settings->previous_protocol_handler();
621 625
622 string16 protocol; 626 string16 protocol;
623 if (pending_handler_.protocol() == "mailto") { 627 if (pending_handler_.protocol() == "mailto") {
624 protocol = l10n_util::GetStringUTF16( 628 protocol = l10n_util::GetStringUTF16(
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 UnregisterProtocolHandler(); 687 UnregisterProtocolHandler();
684 else if (radio_index == RPH_IGNORE) 688 else if (radio_index == RPH_IGNORE)
685 IgnoreProtocolHandler(); 689 IgnoreProtocolHandler();
686 else 690 else
687 NOTREACHED(); 691 NOTREACHED();
688 } 692 }
689 693
690 void ContentSettingRPHBubbleModel::RegisterProtocolHandler() { 694 void ContentSettingRPHBubbleModel::RegisterProtocolHandler() {
691 // A no-op if the handler hasn't been ignored, but needed in case the user 695 // A no-op if the handler hasn't been ignored, but needed in case the user
692 // selects sequences like register/ignore/register. 696 // selects sequences like register/ignore/register.
693 profile()->GetProtocolHandlerRegistry()->RemoveIgnoredHandler( 697 registry_->RemoveIgnoredHandler(pending_handler_);
694 pending_handler_);
695 698
696 profile()->GetProtocolHandlerRegistry()->OnAcceptRegisterProtocolHandler( 699 registry_->OnAcceptRegisterProtocolHandler(pending_handler_);
697 pending_handler_);
698 tab_contents()->content_settings()->set_pending_protocol_handler_setting( 700 tab_contents()->content_settings()->set_pending_protocol_handler_setting(
699 CONTENT_SETTING_ALLOW); 701 CONTENT_SETTING_ALLOW);
700 } 702 }
701 703
702 void ContentSettingRPHBubbleModel::UnregisterProtocolHandler() { 704 void ContentSettingRPHBubbleModel::UnregisterProtocolHandler() {
703 profile()->GetProtocolHandlerRegistry()->OnDenyRegisterProtocolHandler( 705 registry_->OnDenyRegisterProtocolHandler(pending_handler_);
704 pending_handler_);
705 tab_contents()->content_settings()->set_pending_protocol_handler_setting( 706 tab_contents()->content_settings()->set_pending_protocol_handler_setting(
706 CONTENT_SETTING_BLOCK); 707 CONTENT_SETTING_BLOCK);
707 ClearOrSetPreviousHandler(); 708 ClearOrSetPreviousHandler();
708 } 709 }
709 710
710 void ContentSettingRPHBubbleModel::IgnoreProtocolHandler() { 711 void ContentSettingRPHBubbleModel::IgnoreProtocolHandler() {
711 profile()->GetProtocolHandlerRegistry()->OnIgnoreRegisterProtocolHandler( 712 registry_->OnIgnoreRegisterProtocolHandler(pending_handler_);
712 pending_handler_);
713 tab_contents()->content_settings()->set_pending_protocol_handler_setting( 713 tab_contents()->content_settings()->set_pending_protocol_handler_setting(
714 CONTENT_SETTING_DEFAULT); 714 CONTENT_SETTING_DEFAULT);
715 ClearOrSetPreviousHandler(); 715 ClearOrSetPreviousHandler();
716 } 716 }
717 717
718 void ContentSettingRPHBubbleModel::ClearOrSetPreviousHandler() { 718 void ContentSettingRPHBubbleModel::ClearOrSetPreviousHandler() {
719 if (previous_handler_.IsEmpty()) { 719 if (previous_handler_.IsEmpty()) {
720 profile()->GetProtocolHandlerRegistry()->ClearDefault( 720 registry_->ClearDefault(pending_handler_.protocol());
721 pending_handler_.protocol());
722 } else { 721 } else {
723 profile()->GetProtocolHandlerRegistry()->OnAcceptRegisterProtocolHandler( 722 registry_->OnAcceptRegisterProtocolHandler(previous_handler_);
724 previous_handler_);
725 } 723 }
726 } 724 }
727 725
728 // static 726 // static
729 ContentSettingBubbleModel* 727 ContentSettingBubbleModel*
730 ContentSettingBubbleModel::CreateContentSettingBubbleModel( 728 ContentSettingBubbleModel::CreateContentSettingBubbleModel(
731 Delegate* delegate, 729 Delegate* delegate,
732 TabContents* tab_contents, 730 TabContents* tab_contents,
733 Profile* profile, 731 Profile* profile,
734 ContentSettingsType content_type) { 732 ContentSettingsType content_type) {
(...skipping 11 matching lines...) Expand all
746 } 744 }
747 if (content_type == CONTENT_SETTINGS_TYPE_PLUGINS) { 745 if (content_type == CONTENT_SETTINGS_TYPE_PLUGINS) {
748 return new ContentSettingPluginBubbleModel(delegate, tab_contents, profile, 746 return new ContentSettingPluginBubbleModel(delegate, tab_contents, profile,
749 content_type); 747 content_type);
750 } 748 }
751 if (content_type == CONTENT_SETTINGS_TYPE_MIXEDSCRIPT) { 749 if (content_type == CONTENT_SETTINGS_TYPE_MIXEDSCRIPT) {
752 return new ContentSettingMixedScriptBubbleModel(delegate, tab_contents, 750 return new ContentSettingMixedScriptBubbleModel(delegate, tab_contents,
753 profile, content_type); 751 profile, content_type);
754 } 752 }
755 if (content_type == CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS) { 753 if (content_type == CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS) {
754 ProtocolHandlerRegistry* registry =
755 ProtocolHandlerRegistryFactory::GetForProfile(profile);
756 return new ContentSettingRPHBubbleModel(delegate, tab_contents, profile, 756 return new ContentSettingRPHBubbleModel(delegate, tab_contents, profile,
757 content_type); 757 registry, content_type);
758 } 758 }
759 return new ContentSettingSingleRadioGroup(delegate, tab_contents, profile, 759 return new ContentSettingSingleRadioGroup(delegate, tab_contents, profile,
760 content_type); 760 content_type);
761 } 761 }
762 762
763 ContentSettingBubbleModel::ContentSettingBubbleModel( 763 ContentSettingBubbleModel::ContentSettingBubbleModel(
764 TabContents* tab_contents, 764 TabContents* tab_contents,
765 Profile* profile, 765 Profile* profile,
766 ContentSettingsType content_type) 766 ContentSettingsType content_type)
767 : tab_contents_(tab_contents), 767 : tab_contents_(tab_contents),
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 const content::NotificationDetails& details) { 803 const content::NotificationDetails& details) {
804 if (type == chrome::NOTIFICATION_TAB_CONTENTS_DESTROYED) { 804 if (type == chrome::NOTIFICATION_TAB_CONTENTS_DESTROYED) {
805 DCHECK_EQ(tab_contents_, content::Source<TabContents>(source).ptr()); 805 DCHECK_EQ(tab_contents_, content::Source<TabContents>(source).ptr());
806 tab_contents_ = NULL; 806 tab_contents_ = NULL;
807 } else { 807 } else {
808 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type); 808 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type);
809 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr()); 809 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr());
810 profile_ = NULL; 810 profile_ = NULL;
811 } 811 }
812 } 812 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698