Commit d5e30cde authored by vabr's avatar vabr Committed by Commit bot

LocalSharedObjectsContainer: Separate object counting in an interface

This CL separates the part of LocalSharedObjectsContainer which is to be componentised into an interface, and keeps the LSOC itself an implementation detail of TabSpecificContentSettings (to be moved to the embedding client at a later point).

More design details here: https://docs.google.com/a/google.com/document/d/1rQ9PMCPL6wHh-QjaZWOBcaYXQgbCka7unSsciQ52qOs/edit#heading=h.hid3xtn12izy

BUG=384873

Review URL: https://codereview.chromium.org/588583002

Cr-Commit-Position: refs/heads/master@{#297802}
parent e65a8cbe
...@@ -52,18 +52,6 @@ LocalSharedObjectsContainer::LocalSharedObjectsContainer(Profile* profile) ...@@ -52,18 +52,6 @@ LocalSharedObjectsContainer::LocalSharedObjectsContainer(Profile* profile)
LocalSharedObjectsContainer::~LocalSharedObjectsContainer() { LocalSharedObjectsContainer::~LocalSharedObjectsContainer() {
} }
void LocalSharedObjectsContainer::Reset() {
appcaches_->Reset();
channel_ids_->Reset();
cookies_->Reset();
databases_->Reset();
file_systems_->Reset();
indexed_dbs_->Reset();
local_storages_->Reset();
service_workers_->Reset();
session_storages_->Reset();
}
size_t LocalSharedObjectsContainer::GetObjectCount() const { size_t LocalSharedObjectsContainer::GetObjectCount() const {
size_t count = 0; size_t count = 0;
count += appcaches()->GetAppCacheCount(); count += appcaches()->GetAppCacheCount();
...@@ -200,6 +188,18 @@ size_t LocalSharedObjectsContainer::GetObjectCountForDomain( ...@@ -200,6 +188,18 @@ size_t LocalSharedObjectsContainer::GetObjectCountForDomain(
return count; return count;
} }
void LocalSharedObjectsContainer::Reset() {
appcaches_->Reset();
channel_ids_->Reset();
cookies_->Reset();
databases_->Reset();
file_systems_->Reset();
indexed_dbs_->Reset();
local_storages_->Reset();
service_workers_->Reset();
session_storages_->Reset();
}
scoped_ptr<CookiesTreeModel> scoped_ptr<CookiesTreeModel>
LocalSharedObjectsContainer::CreateCookiesTreeModel() const { LocalSharedObjectsContainer::CreateCookiesTreeModel() const {
LocalDataContainer* container = new LocalDataContainer( LocalDataContainer* container = new LocalDataContainer(
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "chrome/browser/content_settings/local_shared_objects_counter.h"
class CannedBrowsingDataAppCacheHelper; class CannedBrowsingDataAppCacheHelper;
class CannedBrowsingDataChannelIDHelper; class CannedBrowsingDataChannelIDHelper;
...@@ -17,23 +18,20 @@ class CannedBrowsingDataIndexedDBHelper; ...@@ -17,23 +18,20 @@ class CannedBrowsingDataIndexedDBHelper;
class CannedBrowsingDataLocalStorageHelper; class CannedBrowsingDataLocalStorageHelper;
class CannedBrowsingDataServiceWorkerHelper; class CannedBrowsingDataServiceWorkerHelper;
class CookiesTreeModel; class CookiesTreeModel;
class GURL;
class Profile; class Profile;
class LocalSharedObjectsContainer { class LocalSharedObjectsContainer : public LocalSharedObjectsCounter {
public: public:
explicit LocalSharedObjectsContainer(Profile* profile); explicit LocalSharedObjectsContainer(Profile* profile);
~LocalSharedObjectsContainer(); virtual ~LocalSharedObjectsContainer();
// LocalSharedObjectsCounter:
virtual size_t GetObjectCount() const OVERRIDE;
virtual size_t GetObjectCountForDomain(const GURL& url) const OVERRIDE;
// Empties the container. // Empties the container.
void Reset(); void Reset();
// Returns the number of objects stored in the container.
size_t GetObjectCount() const;
// Returns the number of objects for the given |origin|.
size_t GetObjectCountForDomain(const GURL& url) const;
// Creates a new CookiesTreeModel for all objects in the container, // Creates a new CookiesTreeModel for all objects in the container,
// copying each of them. // copying each of them.
scoped_ptr<CookiesTreeModel> CreateCookiesTreeModel() const; scoped_ptr<CookiesTreeModel> CreateCookiesTreeModel() const;
......
// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CONTENT_SETTINGS_LOCAL_SHARED_OBJECTS_COUNTER_H_
#define CHROME_BROWSER_CONTENT_SETTINGS_LOCAL_SHARED_OBJECTS_COUNTER_H_
class GURL;
// An interface to retrieve counts of browser data objects.
class LocalSharedObjectsCounter {
public:
LocalSharedObjectsCounter() {}
virtual ~LocalSharedObjectsCounter() {}
virtual size_t GetObjectCount() const = 0;
virtual size_t GetObjectCountForDomain(const GURL& url) const = 0;
private:
DISALLOW_COPY_AND_ASSIGN(LocalSharedObjectsCounter);
};
#endif // CHROME_BROWSER_CONTENT_SETTINGS_LOCAL_SHARED_OBJECTS_COUNTER_H_
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/observer_list.h" #include "base/observer_list.h"
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "chrome/browser/browsing_data/cookies_tree_model.h"
#include "chrome/browser/content_settings/content_settings_usages_state.h" #include "chrome/browser/content_settings/content_settings_usages_state.h"
#include "chrome/browser/content_settings/local_shared_objects_container.h" #include "chrome/browser/content_settings/local_shared_objects_container.h"
#include "chrome/browser/media/media_stream_devices_controller.h" #include "chrome/browser/media/media_stream_devices_controller.h"
...@@ -24,7 +25,6 @@ ...@@ -24,7 +25,6 @@
#include "content/public/common/media_stream_request.h" #include "content/public/common/media_stream_request.h"
#include "net/cookies/canonical_cookie.h" #include "net/cookies/canonical_cookie.h"
class CookiesTreeModel;
class HostContentSettingsMap; class HostContentSettingsMap;
class Profile; class Profile;
...@@ -271,19 +271,27 @@ class TabSpecificContentSettings ...@@ -271,19 +271,27 @@ class TabSpecificContentSettings
return pending_protocol_handler_setting_; return pending_protocol_handler_setting_;
} }
// Returns the |LocalSharedObjectsCounter| instances corresponding to all
// Returns a pointer to the |LocalSharedObjectsContainer| that contains all // allowed, and blocked, respectively, local shared objects like cookies,
// allowed local shared objects like cookies, local storage, ... . // local storage, ... .
const LocalSharedObjectsContainer& allowed_local_shared_objects() const { const LocalSharedObjectsCounter& allowed_local_shared_objects() const {
return allowed_local_shared_objects_; return allowed_local_shared_objects_;
} }
// Returns a pointer to the |LocalSharedObjectsContainer| that contains all const LocalSharedObjectsCounter& blocked_local_shared_objects() const {
// blocked local shared objects like cookies, local storage, ... .
const LocalSharedObjectsContainer& blocked_local_shared_objects() const {
return blocked_local_shared_objects_; return blocked_local_shared_objects_;
} }
// Creates a new copy of a CookiesTreeModel for all allowed, and blocked,
// respectively, local shared objects.
scoped_ptr<CookiesTreeModel> CreateAllowedCookiesTreeModel() const {
return allowed_local_shared_objects_.CreateCookiesTreeModel();
}
scoped_ptr<CookiesTreeModel> CreateBlockedCookiesTreeModel() const {
return blocked_local_shared_objects_.CreateCookiesTreeModel();
}
bool load_plugins_link_enabled() { return load_plugins_link_enabled_; } bool load_plugins_link_enabled() { return load_plugins_link_enabled_; }
void set_load_plugins_link_enabled(bool enabled) { void set_load_plugins_link_enabled(bool enabled) {
load_plugins_link_enabled_ = enabled; load_plugins_link_enabled_ = enabled;
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/strings/sys_string_conversions.h" #include "base/strings/sys_string_conversions.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/content_settings/cookie_settings.h" #include "chrome/browser/content_settings/cookie_settings.h"
#include "chrome/browser/content_settings/local_shared_objects_container.h"
#include "chrome/browser/content_settings/tab_specific_content_settings.h" #include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
...@@ -358,13 +357,8 @@ void CollectedCookiesMac::OnConstrainedWindowClosed( ...@@ -358,13 +357,8 @@ void CollectedCookiesMac::OnConstrainedWindowClosed(
TabSpecificContentSettings* content_settings = TabSpecificContentSettings* content_settings =
TabSpecificContentSettings::FromWebContents(webContents_); TabSpecificContentSettings::FromWebContents(webContents_);
const LocalSharedObjectsContainer& allowed_data = allowedTreeModel_ = content_settings->CreateAllowedCookiesTreeModel();
content_settings->allowed_local_shared_objects(); blockedTreeModel_ = content_settings->CreateBlockedCookiesTreeModel();
allowedTreeModel_ = allowed_data.CreateCookiesTreeModel();
const LocalSharedObjectsContainer& blocked_data =
content_settings->blocked_local_shared_objects();
blockedTreeModel_ = blocked_data.CreateCookiesTreeModel();
// Convert the model's icons from Skia to Cocoa. // Convert the model's icons from Skia to Cocoa.
std::vector<gfx::ImageSkia> skiaIcons; std::vector<gfx::ImageSkia> skiaIcons;
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include "chrome/browser/browsing_data/cookies_tree_model.h" #include "chrome/browser/browsing_data/cookies_tree_model.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/content_settings/cookie_settings.h" #include "chrome/browser/content_settings/cookie_settings.h"
#include "chrome/browser/content_settings/local_shared_objects_container.h"
#include "chrome/browser/content_settings/tab_specific_content_settings.h" #include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
...@@ -332,9 +331,8 @@ views::View* CollectedCookiesViews::CreateAllowedPane() { ...@@ -332,9 +331,8 @@ views::View* CollectedCookiesViews::CreateAllowedPane() {
allowed_label_ = new views::Label(l10n_util::GetStringUTF16( allowed_label_ = new views::Label(l10n_util::GetStringUTF16(
IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL)); IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL));
const LocalSharedObjectsContainer& allowed_data = allowed_cookies_tree_model_ =
content_settings->allowed_local_shared_objects(); content_settings->CreateAllowedCookiesTreeModel();
allowed_cookies_tree_model_ = allowed_data.CreateCookiesTreeModel();
allowed_cookies_tree_ = new views::TreeView(); allowed_cookies_tree_ = new views::TreeView();
allowed_cookies_tree_->SetModel(allowed_cookies_tree_model_.get()); allowed_cookies_tree_->SetModel(allowed_cookies_tree_model_.get());
allowed_cookies_tree_->SetRootShown(false); allowed_cookies_tree_->SetRootShown(false);
...@@ -406,9 +404,8 @@ views::View* CollectedCookiesViews::CreateBlockedPane() { ...@@ -406,9 +404,8 @@ views::View* CollectedCookiesViews::CreateBlockedPane() {
IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL)); IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL));
blocked_label_->SetMultiLine(true); blocked_label_->SetMultiLine(true);
blocked_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); blocked_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
const LocalSharedObjectsContainer& blocked_data = blocked_cookies_tree_model_ =
content_settings->blocked_local_shared_objects(); content_settings->CreateBlockedCookiesTreeModel();
blocked_cookies_tree_model_ = blocked_data.CreateCookiesTreeModel();
blocked_cookies_tree_ = new views::TreeView(); blocked_cookies_tree_ = new views::TreeView();
blocked_cookies_tree_->SetModel(blocked_cookies_tree_model_.get()); blocked_cookies_tree_->SetModel(blocked_cookies_tree_model_.get());
blocked_cookies_tree_->SetRootShown(false); blocked_cookies_tree_->SetRootShown(false);
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h" #include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h"
#include "chrome/browser/content_settings/content_settings_utils.h" #include "chrome/browser/content_settings/content_settings_utils.h"
#include "chrome/browser/content_settings/host_content_settings_map.h" #include "chrome/browser/content_settings/host_content_settings_map.h"
#include "chrome/browser/content_settings/local_shared_objects_container.h" #include "chrome/browser/content_settings/local_shared_objects_counter.h"
#include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ssl/chrome_ssl_host_state_delegate.h" #include "chrome/browser/ssl/chrome_ssl_host_state_delegate.h"
...@@ -694,9 +694,9 @@ void WebsiteSettings::PresentSitePermissions() { ...@@ -694,9 +694,9 @@ void WebsiteSettings::PresentSitePermissions() {
void WebsiteSettings::PresentSiteData() { void WebsiteSettings::PresentSiteData() {
CookieInfoList cookie_info_list; CookieInfoList cookie_info_list;
const LocalSharedObjectsContainer& allowed_objects = const LocalSharedObjectsCounter& allowed_objects =
tab_specific_content_settings()->allowed_local_shared_objects(); tab_specific_content_settings()->allowed_local_shared_objects();
const LocalSharedObjectsContainer& blocked_objects = const LocalSharedObjectsCounter& blocked_objects =
tab_specific_content_settings()->blocked_local_shared_objects(); tab_specific_content_settings()->blocked_local_shared_objects();
// Add first party cookie and site data counts. // Add first party cookie and site data counts.
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h" #include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h"
#include "chrome/browser/content_settings/host_content_settings_map.h" #include "chrome/browser/content_settings/host_content_settings_map.h"
#include "chrome/browser/content_settings/local_shared_objects_container.h"
#include "chrome/browser/ui/webui/options/options_ui.h" #include "chrome/browser/ui/webui/options/options_ui.h"
#include "components/content_settings/core/browser/content_settings_observer.h" #include "components/content_settings/core/browser/content_settings_observer.h"
#include "components/power/origin_power_map.h" #include "components/power/origin_power_map.h"
......
...@@ -299,6 +299,7 @@ ...@@ -299,6 +299,7 @@
'browser/content_settings/host_content_settings_map.h', 'browser/content_settings/host_content_settings_map.h',
'browser/content_settings/local_shared_objects_container.cc', 'browser/content_settings/local_shared_objects_container.cc',
'browser/content_settings/local_shared_objects_container.h', 'browser/content_settings/local_shared_objects_container.h',
'browser/content_settings/local_shared_objects_counter.h',
'browser/content_settings/permission_bubble_request_impl.cc', 'browser/content_settings/permission_bubble_request_impl.cc',
'browser/content_settings/permission_bubble_request_impl.h', 'browser/content_settings/permission_bubble_request_impl.h',
'browser/content_settings/permission_context_base.cc', 'browser/content_settings/permission_context_base.cc',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment