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

Unified Diff: content/browser/memory/memory_coordinator_default_policy.cc

Issue 2943283002: Update default policy for memory coordinator (Closed)
Patch Set: Created 3 years, 6 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: content/browser/memory/memory_coordinator_default_policy.cc
diff --git a/content/browser/memory/memory_coordinator_default_policy.cc b/content/browser/memory/memory_coordinator_default_policy.cc
index 826a74dd0dbff151ae7ab8a0d57ef27294c10e30..0808dc0040b4bfc2007d9a1c258006b1bd48174c 100644
--- a/content/browser/memory/memory_coordinator_default_policy.cc
+++ b/content/browser/memory/memory_coordinator_default_policy.cc
@@ -6,18 +6,6 @@
namespace content {
-namespace {
-
-const int kDefaultBackgroundChildPurgeCandidatePeriodSeconds = 30;
-
-MemoryState CalculateMemoryStateForProcess(MemoryCondition condition) {
- if (condition == MemoryCondition::CRITICAL)
- return MemoryState::THROTTLED;
- return MemoryState::NORMAL;
-}
-
-} // namespace
-
MemoryCoordinatorDefaultPolicy::MemoryCoordinatorDefaultPolicy(
MemoryCoordinatorImpl* coordinator)
: coordinator_(coordinator) {
@@ -27,69 +15,15 @@ MemoryCoordinatorDefaultPolicy::MemoryCoordinatorDefaultPolicy(
MemoryCoordinatorDefaultPolicy::~MemoryCoordinatorDefaultPolicy() {}
void MemoryCoordinatorDefaultPolicy::OnCriticalCondition() {
+ // Just trigger tab discarding for now.
coordinator_->DiscardTab();
-
- // Prefer to purge memory from child processes than browser process because
- // we prioritize the brower process.
- if (TryToPurgeMemoryFromChildren(PurgeTarget::ALL))
- return;
-
- coordinator_->TryToPurgeMemoryFromBrowser();
}
void MemoryCoordinatorDefaultPolicy::OnConditionChanged(MemoryCondition prev,
- MemoryCondition next) {
- DCHECK(prev != next);
- if (next == MemoryCondition::NORMAL) {
- // Set NORMAL state to all clients/processes.
- coordinator_->SetBrowserMemoryState(MemoryState::NORMAL);
- SetMemoryStateToAllChildren(MemoryState::NORMAL);
- } else if (next == MemoryCondition::CRITICAL) {
- // Set THROTTLED state to all clients/processes.
- coordinator_->SetBrowserMemoryState(MemoryState::THROTTLED);
- SetMemoryStateToAllChildren(MemoryState::THROTTLED);
- }
-}
+ MemoryCondition next) {}
void MemoryCoordinatorDefaultPolicy::OnChildVisibilityChanged(
int render_process_id,
- bool is_visible) {
- auto iter = coordinator_->children().find(render_process_id);
- if (iter == coordinator_->children().end())
- return;
-
- iter->second.is_visible = is_visible;
- if (!is_visible) {
- // A backgrounded process becomes a candidate for purging memory when
- // the process remains backgrounded for a certian period of time.
- iter->second.can_purge_after =
- coordinator_->NowTicks() +
- base::TimeDelta::FromSeconds(
- kDefaultBackgroundChildPurgeCandidatePeriodSeconds);
- }
- MemoryState new_state =
- CalculateMemoryStateForProcess(coordinator_->GetMemoryCondition());
- coordinator_->SetChildMemoryState(render_process_id, new_state);
-}
-
-void MemoryCoordinatorDefaultPolicy::SetMemoryStateToAllChildren(
- MemoryState state) {
- // It's OK to call SetChildMemoryState() unconditionally because it checks
- // whether this state transition is valid.
- for (auto& iter : coordinator_->children())
- coordinator_->SetChildMemoryState(iter.first, state);
-}
-
-bool MemoryCoordinatorDefaultPolicy::TryToPurgeMemoryFromChildren(
- PurgeTarget target) {
- // TODO(bashi): Better to sort child processes based on their priorities.
- for (auto& iter : coordinator_->children()) {
- if (iter.second.is_visible && target == PurgeTarget::BACKGROUNDED)
- continue;
- if (coordinator_->TryToPurgeMemoryFromChild(iter.first))
- return true;
- }
- return false;
-}
+ bool is_visible) {}
} // namespace content
« no previous file with comments | « content/browser/memory/memory_coordinator_default_policy.h ('k') | content/browser/memory/memory_coordinator_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698