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

Side by Side Diff: chrome/browser/memory/oom_priority_manager.cc

Issue 1336823003: Move chrome::HostDesktopType to ui::HostDesktopType (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@base_session_service_delegate_impl
Patch Set: Fix build on Mac and CrOS Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/memory/oom_priority_manager.h" 5 #include "chrome/browser/memory/oom_priority_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 DCHECK_CURRENTLY_ON(BrowserThread::UI); 145 DCHECK_CURRENTLY_ON(BrowserThread::UI);
146 TabStatsList stats_list; 146 TabStatsList stats_list;
147 stats_list.reserve(32); // 99% of users have < 30 tabs open 147 stats_list.reserve(32); // 99% of users have < 30 tabs open
148 148
149 // We go through each window to get all the tabs. Depending on the platform, 149 // We go through each window to get all the tabs. Depending on the platform,
150 // windows are either native or ash or both. We want to make sure to go 150 // windows are either native or ash or both. We want to make sure to go
151 // through them all, starting with the active window first (we use 151 // through them all, starting with the active window first (we use
152 // chrome::GetActiveDesktop to get the current used type). 152 // chrome::GetActiveDesktop to get the current used type).
153 AddTabStats(BrowserList::GetInstance(chrome::GetActiveDesktop()), true, 153 AddTabStats(BrowserList::GetInstance(chrome::GetActiveDesktop()), true,
154 &stats_list); 154 &stats_list);
155 if (chrome::GetActiveDesktop() != chrome::HOST_DESKTOP_TYPE_NATIVE) { 155 if (chrome::GetActiveDesktop() != ui::HOST_DESKTOP_TYPE_NATIVE) {
156 AddTabStats(BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_NATIVE), 156 AddTabStats(BrowserList::GetInstance(ui::HOST_DESKTOP_TYPE_NATIVE), false,
157 false, &stats_list); 157 &stats_list);
158 } else if (chrome::GetActiveDesktop() != chrome::HOST_DESKTOP_TYPE_ASH) { 158 } else if (chrome::GetActiveDesktop() != ui::HOST_DESKTOP_TYPE_ASH) {
159 AddTabStats(BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_ASH), false, 159 AddTabStats(BrowserList::GetInstance(ui::HOST_DESKTOP_TYPE_ASH), false,
160 &stats_list); 160 &stats_list);
161 } 161 }
162 162
163 // Sort the data we collected so that least desirable to be 163 // Sort the data we collected so that least desirable to be
164 // killed is first, most desirable is last. 164 // killed is first, most desirable is last.
165 std::sort(stats_list.begin(), stats_list.end(), CompareTabStats); 165 std::sort(stats_list.begin(), stats_list.end(), CompareTabStats);
166 return stats_list; 166 return stats_list;
167 } 167 }
168 168
169 // TODO(jamescook): This should consider tabs with references to other tabs, 169 // TODO(jamescook): This should consider tabs with references to other tabs,
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 } 371 }
372 372
373 // This function is called when |update_timer_| fires. It will adjust the clock 373 // This function is called when |update_timer_| fires. It will adjust the clock
374 // if needed (if we detect that the machine was asleep) and will fire the stats 374 // if needed (if we detect that the machine was asleep) and will fire the stats
375 // updating on ChromeOS via the delegate. 375 // updating on ChromeOS via the delegate.
376 void OomPriorityManager::UpdateTimerCallback() { 376 void OomPriorityManager::UpdateTimerCallback() {
377 // If we shutting down, do not do anything. 377 // If we shutting down, do not do anything.
378 if (g_browser_process->IsShuttingDown()) 378 if (g_browser_process->IsShuttingDown())
379 return; 379 return;
380 380
381 if (BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_ASH)->empty() && 381 if (BrowserList::GetInstance(ui::HOST_DESKTOP_TYPE_ASH)->empty() &&
382 BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_NATIVE)->empty()) 382 BrowserList::GetInstance(ui::HOST_DESKTOP_TYPE_NATIVE)->empty())
383 return; 383 return;
384 384
385 // Check for a discontinuity in time caused by the machine being suspended. 385 // Check for a discontinuity in time caused by the machine being suspended.
386 if (!last_adjust_time_.is_null()) { 386 if (!last_adjust_time_.is_null()) {
387 TimeDelta suspend_time = TimeTicks::Now() - last_adjust_time_; 387 TimeDelta suspend_time = TimeTicks::Now() - last_adjust_time_;
388 if (suspend_time.InSeconds() > kSuspendThresholdSeconds) { 388 if (suspend_time.InSeconds() > kSuspendThresholdSeconds) {
389 // We were probably suspended, move our event timers forward in time so 389 // We were probably suspended, move our event timers forward in time so
390 // when we subtract them out later we are counting "uptime". 390 // when we subtract them out later we are counting "uptime".
391 start_time_ += suspend_time; 391 start_time_ += suspend_time;
392 if (!last_discard_time_.is_null()) 392 if (!last_discard_time_.is_null())
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 // For the moment we only do something when we reach a critical state. 451 // For the moment we only do something when we reach a critical state.
452 if (memory_pressure_level == 452 if (memory_pressure_level ==
453 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) { 453 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) {
454 LogMemoryAndDiscardTab(); 454 LogMemoryAndDiscardTab();
455 } 455 }
456 // TODO(skuhne): If more memory pressure levels are introduced, we might 456 // TODO(skuhne): If more memory pressure levels are introduced, we might
457 // consider to call PurgeBrowserMemory() before CRITICAL is reached. 457 // consider to call PurgeBrowserMemory() before CRITICAL is reached.
458 } 458 }
459 459
460 } // namespace memory 460 } // namespace memory
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698