Index: chrome/browser/ui/website_settings/website_settings.cc |
diff --git a/chrome/browser/ui/website_settings/website_settings.cc b/chrome/browser/ui/website_settings/website_settings.cc |
index b6a4b9944249522cc4d193879a8004a154561dfb..4a78c08d19c0f5f6d470b3ad3a9bf56e419e53b6 100644 |
--- a/chrome/browser/ui/website_settings/website_settings.cc |
+++ b/chrome/browser/ui/website_settings/website_settings.cc |
@@ -22,9 +22,11 @@ |
#include "chrome/browser/content_settings/content_settings_utils.h" |
#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/content_settings/local_shared_objects_container.h" |
+#include "chrome/browser/infobars/infobar_tab_helper.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/history/history_service_factory.h" |
#include "chrome/browser/ssl/ssl_error_info.h" |
+#include "chrome/browser/ui/website_settings/website_settings_infobar_delegate.h" |
#include "chrome/browser/ui/website_settings/website_settings_ui.h" |
#include "chrome/common/content_settings_pattern.h" |
#include "content/public/browser/browser_thread.h" |
@@ -64,12 +66,15 @@ WebsiteSettings::WebsiteSettings( |
WebsiteSettingsUI* ui, |
Profile* profile, |
TabSpecificContentSettings* tab_specific_content_settings, |
+ InfoBarTabHelper* infobar_tab_helper, |
const GURL& url, |
const content::SSLStatus& ssl, |
content::CertStore* cert_store) |
: TabSpecificContentSettings::SiteDataObserver( |
tab_specific_content_settings), |
ui_(ui), |
+ infobar_helper_(infobar_tab_helper), |
+ show_info_bar_(false), |
site_url_(url), |
site_identity_status_(SITE_IDENTITY_STATUS_UNKNOWN), |
cert_id_(0), |
@@ -157,6 +162,7 @@ void WebsiteSettings::OnSitePermissionChanged(ContentSettingsType type, |
value = Value::CreateIntegerValue(setting); |
content_settings_->SetWebsiteSetting( |
primary_pattern, secondary_pattern, type, "", value); |
+ show_info_bar_ = true; |
} |
void WebsiteSettings::OnGotVisitCountToHost(HistoryService::Handle handle, |
@@ -177,6 +183,13 @@ void WebsiteSettings::OnSiteDataAccessed() { |
PresentSiteData(); |
} |
+void WebsiteSettings::OnUIClosing() { |
+ if (show_info_bar_) { |
+ infobar_helper_->AddInfoBar( |
+ new WebsiteSettingsInfobarDelegate(infobar_helper_)); |
+ } |
+} |
+ |
void WebsiteSettings::Init(Profile* profile, |
const GURL& url, |
const content::SSLStatus& ssl) { |