blob: ac86945032aa3184e52ea971b988be80ce8a043c [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/test/storage_partition_test_helpers.h"
#include "content/browser/storage_partition_impl.h"
#include "content/browser/worker_host/shared_worker_service_impl.h"
#include "content/browser/worker_host/test_shared_worker_service_impl.h"
#include "content/public/browser/storage_partition_config.h"
namespace content {
void InjectTestSharedWorkerService(StoragePartition* storage_partition) {
auto* storage_partition_impl =
static_cast<StoragePartitionImpl*>(storage_partition);
storage_partition_impl->OverrideSharedWorkerServiceForTesting(
std::make_unique<TestSharedWorkerServiceImpl>(
storage_partition_impl,
storage_partition_impl->GetServiceWorkerContext()));
}
void TerminateAllSharedWorkers(StoragePartition* storage_partition,
base::OnceClosure callback) {
static_cast<TestSharedWorkerServiceImpl*>(
storage_partition->GetSharedWorkerService())
->TerminateAllWorkers(std::move(callback));
}
StoragePartitionConfig CreateStoragePartitionConfigForTesting(
bool in_memory,
const std::string& partition_domain,
const std::string& partition_name) {
return StoragePartitionConfig(partition_domain, partition_name, in_memory);
}
CustomStoragePartitionForSomeSites::CustomStoragePartitionForSomeSites(
const GURL& site_to_isolate)
: site_to_isolate_(site_to_isolate) {}
StoragePartitionConfig
CustomStoragePartitionForSomeSites::GetStoragePartitionConfigForSite(
BrowserContext* browser_context,
const GURL& site) {
// Override for |site_to_isolate_|.
if (site == site_to_isolate_) {
return StoragePartitionConfig::Create(
browser_context, "blah_isolated_storage", "blah_isolated_storage",
false /* in_memory */);
}
return StoragePartitionConfig::CreateDefault(browser_context);
}
} // namespace content