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

Side by Side Diff: athena/resource_manager/resource_manager_impl.cc

Issue 548633005: Adding overview / layer framework to Activities so that unloaded / sleeping activities can be shown… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "athena/resource_manager/public/resource_manager.h" 5 #include "athena/resource_manager/public/resource_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "athena/activity/public/activity.h" 10 #include "athena/activity/public/activity.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 // Remember that the activity order has changed. 168 // Remember that the activity order has changed.
169 activity_order_changed_ = true; 169 activity_order_changed_ = true;
170 } 170 }
171 171
172 void ResourceManagerImpl::OnOverviewModeEnter() { 172 void ResourceManagerImpl::OnOverviewModeEnter() {
173 in_overview_mode_ = true; 173 in_overview_mode_ = true;
174 } 174 }
175 175
176 void ResourceManagerImpl::OnOverviewModeExit() { 176 void ResourceManagerImpl::OnOverviewModeExit() {
177 in_overview_mode_ = false; 177 in_overview_mode_ = false;
178 // Reorder the activities. 178 // Reorder the activities and manage the resources again since an order change
179 // might have caused a visibility change.
179 UpdateActivityOrder(); 180 UpdateActivityOrder();
181 ManageResource();
180 } 182 }
181 183
182 void ResourceManagerImpl::OnSplitViewModeEnter() { 184 void ResourceManagerImpl::OnSplitViewModeEnter() {
183 // Re-apply the memory pressure to make sure enough items are visible. 185 // Re-apply the memory pressure to make sure enough items are visible.
184 in_splitview_mode_ = true; 186 in_splitview_mode_ = true;
185 ManageResource(); 187 ManageResource();
186 } 188 }
187 189
188 190
189 void ResourceManagerImpl::OnSplitViewModeExit() { 191 void ResourceManagerImpl::OnSplitViewModeExit() {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 // The first |kMaxVisibleActivities| entries should be visible, all others 276 // The first |kMaxVisibleActivities| entries should be visible, all others
275 // invisible or at a lower activity state. 277 // invisible or at a lower activity state.
276 if (index < max_activities || 278 if (index < max_activities ||
277 (state == Activity::ACTIVITY_INVISIBLE || 279 (state == Activity::ACTIVITY_INVISIBLE ||
278 state == Activity::ACTIVITY_VISIBLE)) { 280 state == Activity::ACTIVITY_VISIBLE)) {
279 Activity::ActivityState visiblity_state = 281 Activity::ActivityState visiblity_state =
280 index < max_activities ? Activity::ACTIVITY_VISIBLE : 282 index < max_activities ? Activity::ACTIVITY_VISIBLE :
281 Activity::ACTIVITY_INVISIBLE; 283 Activity::ACTIVITY_INVISIBLE;
282 // Only change the state when it changes. Note that when the memory 284 // Only change the state when it changes. Note that when the memory
283 // pressure is critical, only the primary activities (1 or 2) are made 285 // pressure is critical, only the primary activities (1 or 2) are made
284 // visible. Furthermore, in relaxed mode we only want to make visible. 286 // visible. Furthermore, in relaxed mode we only want to turn visible,
287 // never invisible.
285 if (visiblity_state != state && 288 if (visiblity_state != state &&
286 (current_memory_pressure_ != MEMORY_PRESSURE_LOW || 289 (current_memory_pressure_ != MEMORY_PRESSURE_LOW ||
287 visiblity_state == Activity::ACTIVITY_VISIBLE)) 290 visiblity_state == Activity::ACTIVITY_VISIBLE)) {
288 activity->SetCurrentState(visiblity_state); 291 activity->SetCurrentState(visiblity_state);
292 }
289 } 293 }
290 294
291 // See which index we should handle next. 295 // See which index we should handle next.
292 if (activity_order_changed_) { 296 if (activity_order_changed_) {
293 activity_order_changed_ = false; 297 activity_order_changed_ = false;
294 index = 0; 298 index = 0;
295 } else { 299 } else {
296 ++index; 300 ++index;
297 } 301 }
298 } 302 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 } 397 }
394 398
395 ResourceManager::ResourceManager() {} 399 ResourceManager::ResourceManager() {}
396 400
397 ResourceManager::~ResourceManager() { 401 ResourceManager::~ResourceManager() {
398 DCHECK(instance); 402 DCHECK(instance);
399 instance = NULL; 403 instance = NULL;
400 } 404 }
401 405
402 } // namespace athena 406 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698