| Index: content/common/host_discardable_shared_memory_manager.cc
|
| diff --git a/content/common/host_discardable_shared_memory_manager.cc b/content/common/host_discardable_shared_memory_manager.cc
|
| index 539136179e3affa9d0b61f74a7945311cd9476dc..2ea9821314f9a1a696b4350ef201b9f184e65b0e 100644
|
| --- a/content/common/host_discardable_shared_memory_manager.cc
|
| +++ b/content/common/host_discardable_shared_memory_manager.cc
|
| @@ -123,9 +123,17 @@ HostDiscardableSharedMemoryManager::HostDiscardableSharedMemoryManager()
|
| memory_pressure_listener_(new base::MemoryPressureListener(
|
| base::Bind(&HostDiscardableSharedMemoryManager::OnMemoryPressure,
|
| base::Unretained(this)))),
|
| + // Current thread might not have a task runner in tests.
|
| + enforce_memory_policy_task_runner_(
|
| + base::ThreadTaskRunnerHandle::IsSet()
|
| + ? base::ThreadTaskRunnerHandle::Get()
|
| + : nullptr),
|
| enforce_memory_policy_pending_(false),
|
| weak_ptr_factory_(this) {
|
| DCHECK_NE(memory_limit_, 0u);
|
| + enforce_memory_policy_callback_ =
|
| + base::Bind(&HostDiscardableSharedMemoryManager::EnforceMemoryPolicy,
|
| + weak_ptr_factory_.GetWeakPtr());
|
| base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
|
| this);
|
| }
|
| @@ -486,10 +494,9 @@ void HostDiscardableSharedMemoryManager::ScheduleEnforceMemoryPolicy() {
|
| return;
|
|
|
| enforce_memory_policy_pending_ = true;
|
| - base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&HostDiscardableSharedMemoryManager::EnforceMemoryPolicy,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| + DCHECK(enforce_memory_policy_task_runner_);
|
| + enforce_memory_policy_task_runner_->PostDelayedTask(
|
| + FROM_HERE, enforce_memory_policy_callback_,
|
| base::TimeDelta::FromMilliseconds(kEnforceMemoryPolicyDelayMs));
|
| }
|
|
|
|
|