Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit c34f5ec6 authored by uazo's avatar uazo Committed by GitHub
Browse files

Fix call to StartExpiringOldStuff (#2120)

parent 23fde852
Loading
Loading
Loading
Loading
+31 −24
Original line number Diff line number Diff line
@@ -17,15 +17,15 @@ flag and immediately deletes all the history.
 .../java/res/layout/preference_spinner.xml    |  7 +++
 .../layout/preference_spinner_single_line.xml |  7 +++
 .../settings/SpinnerPreference.java           |  7 +++
 .../core/browser/expire_history_backend.cc    | 21 +++++++
 .../core/browser/expire_history_backend.cc    | 13 +++-
 .../core/browser/expire_history_backend.h     |  2 +
 .../history/core/browser/history_backend.cc   | 14 +++++
 .../history/core/browser/history_backend.cc   | 15 ++++-
 .../history/core/browser/history_backend.h    |  2 +
 .../history/core/browser/history_service.cc   | 33 ++++++++++
 .../history/core/browser/history_service.h    |  8 +++
 components/history/core/common/pref_names.cc  |  4 ++
 components/history/core/common/pref_names.h   |  1 +
 18 files changed, 211 insertions(+), 6 deletions(-)
 18 files changed, 202 insertions(+), 8 deletions(-)

diff --git a/chrome/android/java/res/layout-sw360dp/preference_spinner_single_line.xml b/chrome/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
--- a/chrome/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
@@ -304,29 +304,28 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
diff --git a/components/history/core/browser/expire_history_backend.cc b/components/history/core/browser/expire_history_backend.cc
--- a/components/history/core/browser/expire_history_backend.cc
+++ b/components/history/core/browser/expire_history_backend.cc
@@ -405,6 +405,21 @@ void ExpireHistoryBackend::StartExpiringOldStuff(
@@ -389,7 +389,7 @@ const ExpiringVisitsReader*
 
 void ExpireHistoryBackend::StartExpiringOldStuff(
     base::TimeDelta expiration_threshold) {
-  expiration_threshold_ = expiration_threshold;
+  SetExpireDaysThreshold(expiration_threshold);
 
   // Remove all readers, just in case this was method was called before.
   readers_.clear();
@@ -405,6 +405,11 @@ void ExpireHistoryBackend::StartExpiringOldStuff(
   ScheduleExpire();
 }
 
+bool ExpireHistoryBackend::SetExpireDaysThreshold(
+void ExpireHistoryBackend::SetExpireDaysThreshold(
+    base::TimeDelta expiration_threshold) {
+  // no change
+  if (expiration_threshold_ == expiration_threshold)
+    return false;
+  expiration_threshold_ = expiration_threshold;
+  // do not schedule anything for special cases
+  // (0 - no history, 65535 - keep history forever)
+  if (expiration_threshold_ == base::Days(0) ||
+      expiration_threshold_ == base::Days(0xFFFF))
+    return true;
+  ScheduleExpire();
+  return true;
+}
+
 void ExpireHistoryBackend::DeleteFaviconsIfPossible(DeleteEffects* effects) {
   if (!favicon_db_)
     return;
@@ -606,6 +621,12 @@ void ExpireHistoryBackend::DoExpireIteration() {
@@ -606,6 +611,12 @@ void ExpireHistoryBackend::DoExpireIteration() {
     return;
   }
 
@@ -346,7 +345,7 @@ diff --git a/components/history/core/browser/expire_history_backend.h b/componen
   // will continue until the object is deleted.
   void StartExpiringOldStuff(base::TimeDelta expiration_threshold);
 
+  bool SetExpireDaysThreshold(base::TimeDelta expiration_threshold);
+  void SetExpireDaysThreshold(base::TimeDelta expiration_threshold);
+
   // Deletes everything associated with a URL until `end_time`.
   void DeleteURL(const GURL& url, base::Time end_time);
@@ -354,7 +353,16 @@ diff --git a/components/history/core/browser/expire_history_backend.h b/componen
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -973,6 +973,20 @@ void HistoryBackend::InitImpl(
@@ -148,7 +148,7 @@ const int kMaxRedirectCount = 32;
 
 // The number of days old a history entry can be before it is considered "old"
 // and is deleted.
-const int kExpireDaysThreshold = 90;
+int kExpireDaysThreshold = 90;
 
 // The maximum number of days for which domain visit metrics are computed
 // each time HistoryBackend::GetDomainDiversity() is called.
@@ -973,6 +973,19 @@ void HistoryBackend::InitImpl(
   LOCAL_HISTOGRAM_TIMES("History.InitTime", TimeTicks::Now() - beginning_time);
 }
 
@@ -363,14 +371,13 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
+  // 0 - keep no history
+  // 65535 - keep history forever
+  // they are stored as-is
+  if (expirer_.SetExpireDaysThreshold(base::Days(days))) {
+  kExpireDaysThreshold = days;
+  expirer_.SetExpireDaysThreshold(base::Days(days));
+  if (days == 0) {
+      // erase history only if setting was actually changed
+    task_runner_->PostTask(
+        FROM_HERE, base::BindOnce(&HistoryBackend::DeleteAllHistory, this));
+  }
+}
+}
+
 void HistoryBackend::OnMemoryPressure(
     base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {