| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/memory/memory_coordinator_impl.h" | 5 #include "content/browser/memory/memory_coordinator_impl.h" |
| 6 | 6 |
| 7 #include "base/memory/memory_coordinator_client_registry.h" | 7 #include "base/memory/memory_coordinator_client_registry.h" |
| 8 #include "base/memory/memory_coordinator_proxy.h" | 8 #include "base/memory/memory_coordinator_proxy.h" |
| 9 #include "base/memory/memory_pressure_monitor.h" | 9 #include "base/memory/memory_pressure_monitor.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 | 466 |
| 467 // Also make sure that the state is updated based on free avaiable memory. | 467 // Also make sure that the state is updated based on free avaiable memory. |
| 468 // Since the global state has changed in the previous task, we have to wait | 468 // Since the global state has changed in the previous task, we have to wait |
| 469 // for |minimum_transition|. | 469 // for |minimum_transition|. |
| 470 GetMockMemoryMonitor()->SetFreeMemoryUntilCriticalMB(40); | 470 GetMockMemoryMonitor()->SetFreeMemoryUntilCriticalMB(40); |
| 471 task_runner_->FastForwardBy(minimum_transition); | 471 task_runner_->FastForwardBy(minimum_transition); |
| 472 task_runner_->RunUntilIdle(); | 472 task_runner_->RunUntilIdle(); |
| 473 EXPECT_EQ(base::MemoryState::THROTTLED, coordinator_->GetGlobalMemoryState()); | 473 EXPECT_EQ(base::MemoryState::THROTTLED, coordinator_->GetGlobalMemoryState()); |
| 474 } | 474 } |
| 475 | 475 |
| 476 TEST_F(MemoryCoordinatorImplTest, GetStateForProcess) { | 476 |
| 477 #if defined(OS_ANDROID) |
| 478 // TODO(jcivelli): Broken on Android. http://crbug.com/678665 |
| 479 #define MAYBE_GetStateForProcess DISABLED_GetStateForProcess |
| 480 #else |
| 481 #define MAYBE_GetStateForProcess GetStateForProcess |
| 482 #endif |
| 483 TEST_F(MemoryCoordinatorImplTest, MAYBE_GetStateForProcess) { |
| 477 EXPECT_EQ(base::MemoryState::UNKNOWN, | 484 EXPECT_EQ(base::MemoryState::UNKNOWN, |
| 478 coordinator_->GetStateForProcess(base::kNullProcessHandle)); | 485 coordinator_->GetStateForProcess(base::kNullProcessHandle)); |
| 479 EXPECT_EQ(base::MemoryState::NORMAL, | 486 EXPECT_EQ(base::MemoryState::NORMAL, |
| 480 coordinator_->GetStateForProcess(base::GetCurrentProcessHandle())); | 487 coordinator_->GetStateForProcess(base::GetCurrentProcessHandle())); |
| 481 | 488 |
| 482 coordinator_->CreateChildMemoryCoordinator(1); | 489 coordinator_->CreateChildMemoryCoordinator(1); |
| 483 coordinator_->CreateChildMemoryCoordinator(2); | 490 coordinator_->CreateChildMemoryCoordinator(2); |
| 484 base::Process process1 = SpawnChild("process1"); | 491 base::Process process1 = SpawnChild("process1"); |
| 485 base::Process process2 = SpawnChild("process2"); | 492 base::Process process2 = SpawnChild("process2"); |
| 486 coordinator_->GetMockRenderProcessHost(1)->SetProcessHandle( | 493 coordinator_->GetMockRenderProcessHost(1)->SetProcessHandle( |
| 487 base::MakeUnique<base::ProcessHandle>(process1.Handle())); | 494 base::MakeUnique<base::ProcessHandle>(process1.Handle())); |
| 488 coordinator_->GetMockRenderProcessHost(2)->SetProcessHandle( | 495 coordinator_->GetMockRenderProcessHost(2)->SetProcessHandle( |
| 489 base::MakeUnique<base::ProcessHandle>(process2.Handle())); | 496 base::MakeUnique<base::ProcessHandle>(process2.Handle())); |
| 490 | 497 |
| 491 EXPECT_EQ(base::MemoryState::NORMAL, | 498 EXPECT_EQ(base::MemoryState::NORMAL, |
| 492 coordinator_->GetStateForProcess(process1.Handle())); | 499 coordinator_->GetStateForProcess(process1.Handle())); |
| 493 EXPECT_EQ(base::MemoryState::NORMAL, | 500 EXPECT_EQ(base::MemoryState::NORMAL, |
| 494 coordinator_->GetStateForProcess(process2.Handle())); | 501 coordinator_->GetStateForProcess(process2.Handle())); |
| 495 | 502 |
| 496 EXPECT_TRUE( | 503 EXPECT_TRUE( |
| 497 coordinator_->SetChildMemoryState(1, MemoryState::THROTTLED)); | 504 coordinator_->SetChildMemoryState(1, MemoryState::THROTTLED)); |
| 498 EXPECT_EQ(base::MemoryState::THROTTLED, | 505 EXPECT_EQ(base::MemoryState::THROTTLED, |
| 499 coordinator_->GetStateForProcess(process1.Handle())); | 506 coordinator_->GetStateForProcess(process1.Handle())); |
| 500 EXPECT_EQ(base::MemoryState::NORMAL, | 507 EXPECT_EQ(base::MemoryState::NORMAL, |
| 501 coordinator_->GetStateForProcess(process2.Handle())); | 508 coordinator_->GetStateForProcess(process2.Handle())); |
| 502 } | 509 } |
| 503 | 510 |
| 504 } // namespace content | 511 } // namespace content |
| OLD | NEW |