oom_intervention: Add opt-out logic
Opt-out logic:
- If user declined intervention, don't trigger it until OOM is observed on
the same site.
- If user declined intervention again even after OOM is observed on the site,
never trigger intervention on the site.
- If len(blacklist) > kMaxBlacklistSize, the user is permanently opted out.
We use PerfService as datastore.
Bug: 776665
Change-Id: Ie94ae5360a08f68320a955881017270d2f4f096c
Reviewed-on: https://chromium-review.googlesource.com/807969
Reviewed-by: Martin Šrámek <[email protected]>
Reviewed-by: Dominic Battré <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Commit-Queue: Kenichi Ishibashi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#522703}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index d8e532a..385f6fc 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -174,6 +174,7 @@
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/ntp/content_suggestions_notifier_service.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
+#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
#include "chrome/browser/android/preferences/browser_prefs_android.h"
#include "chrome/browser/geolocation/geolocation_permission_context_android.h"
#include "chrome/browser/ntp_snippets/download_suggestions_provider.h"
@@ -596,6 +597,7 @@
ntp_snippets::RecentTabSuggestionsProvider::RegisterProfilePrefs(registry);
ntp_snippets::SubscriptionManagerImpl::RegisterProfilePrefs(registry);
OmniboxFieldTrial::RegisterProfilePrefs(registry);
+ OomInterventionDecider::RegisterProfilePrefs(registry);
#endif // defined(OS_ANDROID)
#if !defined(OS_ANDROID)