# Keep local history longer than 90 days

Index: chromium-128.0.6613.113/chrome/browser/ungoogled_flag_entries.h
===================================================================
--- chromium-128.0.6613.113.orig/chrome/browser/ungoogled_flag_entries.h
+++ chromium-128.0.6613.113/chrome/browser/ungoogled_flag_entries.h
@@ -52,4 +52,8 @@
      "Popups to tabs",
      "Makes popups open in new tabs. ungoogled-chromium flag",
      kOsAll, SINGLE_VALUE_TYPE("popups-to-tabs")},
+    {"keep-old-history",
+     "Keep old history",
+     "Keep history older than 3 months. ungoogled-chromium flag",
+     kOsAll, SINGLE_VALUE_TYPE("keep-old-history")},
 #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
Index: chromium-128.0.6613.113/components/history/core/browser/history_backend.cc
===================================================================
--- chromium-128.0.6613.113.orig/components/history/core/browser/history_backend.cc
+++ chromium-128.0.6613.113/components/history/core/browser/history_backend.cc
@@ -14,6 +14,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/command_line.h"
 #include "base/compiler_specific.h"
 #include "base/containers/flat_set.h"
 #include "base/feature_list.h"
@@ -1320,7 +1321,8 @@ void HistoryBackend::InitImpl(
   db_->GetStartDate(&first_recorded_time_);
 
   // Start expiring old stuff.
-  expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold));
+  if (!base::CommandLine::ForCurrentProcess()->HasSwitch("keep-old-history"))
+    expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold));
 }
 
 void HistoryBackend::OnMemoryPressure(
@@ -1548,6 +1550,8 @@ void HistoryBackend::AddPagesWithDetails
 }
 
 bool HistoryBackend::IsExpiredVisitTime(const base::Time& time) const {
+  if (base::CommandLine::ForCurrentProcess()->HasSwitch("keep-old-history"))
+    return false;
   return time < expirer_.GetCurrentExpirationTime();
 }