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

Unified Diff: chrome/browser/storage/durable_storage_permission_context.cc

Issue 2393103002: [Durable] Updated Durable heuristic to use 'important sites' (Closed)
Patch Set: windows test fix Created 4 years, 2 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/storage/durable_storage_permission_context.cc
diff --git a/chrome/browser/storage/durable_storage_permission_context.cc b/chrome/browser/storage/durable_storage_permission_context.cc
index 5d3c29e74d1ac0da56e045225348616f6594fa6f..5ea22bf0ac1d2e45cfda3fbd4580faa56c3396fc 100644
--- a/chrome/browser/storage/durable_storage_permission_context.cc
+++ b/chrome/browser/storage/durable_storage_permission_context.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/content_settings/cookie_settings_factory.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
+#include "chrome/browser/engagement/important_sites_util.h"
#include "chrome/browser/permissions/permission_request_id.h"
#include "chrome/browser/profiles/profile.h"
#include "components/bookmarks/browser/bookmark_model.h"
@@ -21,6 +22,7 @@
#include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/permission_type.h"
#include "content/public/common/origin_util.h"
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "url/gurl.h"
using bookmarks::BookmarkModel;
@@ -62,13 +64,20 @@ void DurableStoragePermissionContext::DecidePermission(
return;
}
- // TODO(dmurph): Remove bookmarks check in favor of important sites.
- BookmarkModel* model =
- BookmarkModelFactory::GetForBrowserContextIfExists(profile());
- if (model) {
- std::vector<bookmarks::BookmarkModel::URLAndTitle> bookmarks;
- model->GetBookmarks(&bookmarks);
- if (IsOriginBookmarked(bookmarks, requesting_origin)) {
+ const size_t kMaxImportantResults = 10;
+ std::vector<ImportantSitesUtil::ImportantDomainInfo> important_sites =
+ ImportantSitesUtil::GetImportantRegisterableDomains(profile(),
+ kMaxImportantResults);
+
+ std::string registerable_domain =
+ net::registry_controlled_domains::GetDomainAndRegistry(
+ requesting_origin,
+ net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+ if (registerable_domain.empty() && requesting_origin.HostIsIPAddress())
+ registerable_domain = requesting_origin.host();
+
+ for (const auto& important_site : important_sites) {
+ if (important_site.registerable_domain == registerable_domain) {
NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
true /* persist */, CONTENT_SETTING_ALLOW);
return;
@@ -97,15 +106,3 @@ void DurableStoragePermissionContext::UpdateContentSetting(
bool DurableStoragePermissionContext::IsRestrictedToSecureOrigins() const {
return true;
}
-
-bool DurableStoragePermissionContext::IsOriginBookmarked(
- const std::vector<bookmarks::BookmarkModel::URLAndTitle>& bookmarks,
- const GURL& origin) {
- BookmarkModel::URLAndTitle looking_for;
- looking_for.url = origin;
- return std::binary_search(bookmarks.begin(), bookmarks.end(), looking_for,
- [](const BookmarkModel::URLAndTitle& a,
- const BookmarkModel::URLAndTitle& b) {
- return a.url.GetOrigin() < b.url.GetOrigin();
- });
-}

Powered by Google App Engine
This is Rietveld 408576698