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

Unified Diff: chrome/browser/subresource_filter/subresource_filter_content_settings_manager.h

Issue 2795053002: [subresource_filter] Implement the "Smart" UI on Android (Closed)
Patch Set: rebase on #463637 Created 3 years, 8 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/subresource_filter/subresource_filter_content_settings_manager.h
diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.h b/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.h
index 530e4362e146403031a945e98caa2ca443281ede..075feef9cb4645d27945e48a6e6394a248a20dca 100644
--- a/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.h
+++ b/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.h
@@ -5,19 +5,27 @@
#ifndef CHROME_BROWSER_SUBRESOURCE_FILTER_SUBRESOURCE_FILTER_CONTENT_SETTINGS_MANAGER_H_
#define CHROME_BROWSER_SUBRESOURCE_FILTER_SUBRESOURCE_FILTER_CONTENT_SETTINGS_MANAGER_H_
+#include <memory>
engedy 2017/04/12 14:02:51 #include <utility> for std::move
Charlie Harrison 2017/04/12 17:53:45 Done.
#include <string>
#include "base/macros.h"
+#include "base/time/clock.h"
#include "components/content_settings/core/browser/content_settings_observer.h"
+#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/keyed_service/core/keyed_service.h"
class ContentSettingsPattern;
+class GURL;
class HostContentSettingsMap;
class Profile;
+namespace base {
+class DictionaryValue;
+} // namespace base
+
// This class observes subresource filter content settings changes for metrics
-// collection.
+// collection. It is also contains helpers to get/set content settings.
engedy 2017/04/12 14:02:51 nit: Swap the order. I'd argue that it is now the
Charlie Harrison 2017/04/12 17:53:45 Done.
class SubresourceFilterContentSettingsManager
: public KeyedService,
public content_settings::Observer {
@@ -25,6 +33,25 @@ class SubresourceFilterContentSettingsManager
explicit SubresourceFilterContentSettingsManager(Profile* profile);
~SubresourceFilterContentSettingsManager() override;
+ ContentSetting GetContentSetting(const GURL& url) const;
+ void SetContentSetting(const GURL& url,
+ ContentSetting setting,
+ bool log_metrics);
+ void ClearContentSetting(const GURL& url);
+
+ // Specific logic for more intelligent UI.
+ void OnDidShowUI(const GURL& url);
+ bool ShouldShowUIForSite(const GURL& url) const;
+ bool should_use_smart_ui() const { return should_use_smart_ui_; }
+
+ void set_clock_for_testing(std::unique_ptr<base::Clock> tick_clock) {
+ clock_ = std::move(tick_clock);
+ }
+
+ // Time before showing the UI again on a domain.
+ // TODO(csharrison): Consider setting this via a finch param.
+ static const base::TimeDelta kUIShowThresholdTime;
engedy 2017/04/12 14:02:51 #include "base/time.h"
Charlie Harrison 2017/04/12 17:53:45 Done.
+
private:
// KeyedService:
void Shutdown() override;
@@ -35,8 +62,23 @@ class SubresourceFilterContentSettingsManager
ContentSettingsType content_type,
std::string resource_identifier) override;
+ std::unique_ptr<base::DictionaryValue> GetWebsiteSetting(
+ const GURL& url) const;
+ void SetWebsiteSetting(const GURL& url,
+ std::unique_ptr<base::DictionaryValue> dict);
+
HostContentSettingsMap* settings_map_;
+ // A clock is injected into this class so tests can set arbitrary timestamps
+ // in website settings.
+ std::unique_ptr<base::Clock> clock_;
+
+ // Used internally so the class ignores changes to the settings that are not
+ // user initiated.
+ bool ignore_settings_changes_ = false;
+
+ const bool should_use_smart_ui_ = false;
+
DISALLOW_COPY_AND_ASSIGN(SubresourceFilterContentSettingsManager);
};

Powered by Google App Engine
This is Rietveld 408576698