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

Unified Diff: chrome/browser/tab_contents/tab_contents.cc

Issue 2370001: Store blocked cookies in the tab contents. (Closed)
Patch Set: updates Created 10 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents/tab_contents.cc
diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
index 332e32046c2a7b70f0d5b7c4caf1a9ceca13d0c7..d5248408acab8d55b725e5d04a8b223271aca783 100644
--- a/chrome/browser/tab_contents/tab_contents.cc
+++ b/chrome/browser/tab_contents/tab_contents.cc
@@ -294,12 +294,13 @@ TabContents::TabContents(Profile* profile,
renderer_preferences_(),
opener_dom_ui_type_(DOMUIFactory::kNoDOMUI),
language_state_(&controller_),
- geolocation_settings_state_(profile),
closed_by_user_gesture_(false) {
- ClearBlockedContentSettings();
renderer_preferences_util::UpdateFromSystemSettings(
&renderer_preferences_, profile);
+ content_settings_delegate_.reset(
+ new TabSpecificContentSettings(this, profile));
+
#if defined(OS_CHROMEOS)
// Make sure the thumbnailer is started before starting the render manager.
// The thumbnailer will want to listen for RVH creations, one of which will
@@ -649,26 +650,6 @@ bool TabContents::ShouldDisplayFavIcon() {
return true;
}
-bool TabContents::IsContentBlocked(ContentSettingsType content_type) const {
- DCHECK(content_type != CONTENT_SETTINGS_TYPE_GEOLOCATION)
- << "Geolocation settings handled by ContentSettingGeolocationImageModel";
- DCHECK(content_type != CONTENT_SETTINGS_TYPE_NOTIFICATIONS)
- << "Notifications settings handled by "
- << "ContentSettingsNotificationsImageModel";
-
- if (content_type == CONTENT_SETTINGS_TYPE_POPUPS)
- return blocked_popups_ != NULL;
-
- if (content_type == CONTENT_SETTINGS_TYPE_IMAGES ||
- content_type == CONTENT_SETTINGS_TYPE_JAVASCRIPT ||
- content_type == CONTENT_SETTINGS_TYPE_PLUGINS ||
- content_type == CONTENT_SETTINGS_TYPE_COOKIES)
- return content_blocked_[content_type];
-
- NOTREACHED();
- return false;
-}
-
std::wstring TabContents::GetStatusText() const {
if (!is_loading() || load_state_ == net::LOAD_STATE_IDLE)
return std::wstring();
@@ -957,10 +938,9 @@ bool TabContents::ExecuteCode(int request_id, const std::string& extension_id,
void TabContents::PopupNotificationVisibilityChanged(bool visible) {
if (is_being_destroyed_)
return;
+ content_settings_delegate_->SetPopupsBlocked(visible);
if (!dont_notify_render_view_)
render_view_host()->AllowScriptToClose(!visible);
- if (delegate_)
- delegate_->OnContentSettingsChange(this);
}
gfx::NativeView TabContents::GetContentNativeView() const {
@@ -1394,12 +1374,6 @@ TabContents* TabContents::CloneAndMakePhantom() {
return new_contents;
}
-// Resets the |content_blocked_| array.
-void TabContents::ClearBlockedContentSettings() {
- for (size_t i = 0; i < arraysize(content_blocked_); ++i)
- content_blocked_[i] = false;
-}
-
// Notifies the RenderWidgetHost instance about the fact that the page is
// loading, or done loading and calls the base implementation.
void TabContents::SetIsLoading(bool is_loading,
@@ -1453,6 +1427,7 @@ void TabContents::AddPopup(TabContents* new_contents,
if (!blocked_popups_)
blocked_popups_ = new BlockedPopupContainer(this);
blocked_popups_->AddTabContents(new_contents, initial_pos);
+ content_settings_delegate_->OnContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS);
}
}
@@ -1595,10 +1570,8 @@ void TabContents::DidNavigateMainFramePostCommit(
}
// Clear "blocked" flags.
- ClearBlockedContentSettings();
- geolocation_settings_state_.DidNavigate(details);
- if (delegate_)
- delegate_->OnContentSettingsChange(this);
+ content_settings_delegate_->ClearBlockedContentSettings();
+ content_settings_delegate_->GeolocationDidNavigate(details);
// Once the main frame is navigated, we're no longer considered to have
// displayed insecure content.
@@ -2138,18 +2111,7 @@ void TabContents::DocumentLoadedInFrame() {
controller_.DocumentLoadedInFrame();
}
-void TabContents::OnContentBlocked(ContentSettingsType type) {
- DCHECK(type != CONTENT_SETTINGS_TYPE_GEOLOCATION)
- << "Geolocation settings handled by OnGeolocationPermissionSet";
- content_blocked_[type] = true;
- if (delegate_)
- delegate_->OnContentSettingsChange(this);
-}
-
-void TabContents::OnGeolocationPermissionSet(const GURL& requesting_origin,
- bool allowed) {
- geolocation_settings_state_.OnGeolocationPermissionSet(requesting_origin,
- allowed);
+void TabContents::OnContentSettingsChange() {
if (delegate_)
delegate_->OnContentSettingsChange(this);
}
@@ -2174,7 +2136,7 @@ RenderViewHostDelegate::Resource* TabContents::GetResourceDelegate() {
RenderViewHostDelegate::ContentSettings*
TabContents::GetContentSettingsDelegate() {
- return this;
+ return content_settings_delegate_.get();
}
RenderViewHostDelegate::Save* TabContents::GetSaveDelegate() {
@@ -2213,6 +2175,10 @@ void TabContents::SetBookmarkDragDelegate(
bookmark_drag_ = bookmark_drag;
}
+TabSpecificContentSettings* TabContents::GetTabSpecificContentSettings() const {
+ return content_settings_delegate_.get();
+}
+
RendererPreferences TabContents::GetRendererPrefs(Profile* profile) const {
return renderer_preferences_;
}

Powered by Google App Engine
This is Rietveld 408576698