1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "extensions/shell/test/extensions_render_view_test.h"
#include "base/base_paths.h"
#include "base/files/file_path.h"
#include "base/path_service.h"
#include "extensions/renderer/api/core_extensions_renderer_api_provider.h"
#include "extensions/shell/browser/shell_content_browser_client.h"
#include "extensions/shell/common/shell_content_client.h"
#include "extensions/shell/common/shell_extensions_client.h"
#include "extensions/shell/renderer/api/shell_extensions_renderer_api_provider.h"
#include "extensions/shell/renderer/shell_content_renderer_client.h"
#include "extensions/shell/renderer/shell_extensions_renderer_client.h"
#include "ui/base/resource/resource_bundle.h"
namespace extensions {
ExtensionsRenderViewTest::ExtensionsRenderViewTest() = default;
ExtensionsRenderViewTest::~ExtensionsRenderViewTest() = default;
void ExtensionsRenderViewTest::SetUp() {
base::FilePath extensions_shell_and_test_pak_path;
CHECK(base::PathService::Get(base::DIR_ASSETS,
&extensions_shell_and_test_pak_path));
ui::ResourceBundle::InitSharedInstanceWithPakPath(
extensions_shell_and_test_pak_path.AppendASCII(
"extensions_shell_and_test.pak"));
content::RenderViewTest::SetUp();
}
void ExtensionsRenderViewTest::TearDown() {
content::RenderViewTest::TearDown();
ui::ResourceBundle::CleanupSharedInstance();
}
content::ContentClient* ExtensionsRenderViewTest::CreateContentClient() {
return new ShellContentClient();
}
content::ContentBrowserClient*
ExtensionsRenderViewTest::CreateContentBrowserClient() {
// Our base class does not create a BrowserMainParts, so we don't create the
// delegate.
return new ShellContentBrowserClient(/*browser_main_delegate=*/nullptr);
}
content::ContentRendererClient*
ExtensionsRenderViewTest::CreateContentRendererClient() {
ShellContentRendererClient* client = new ShellContentRendererClient();
auto extensions_client = std::make_unique<ShellExtensionsRendererClient>();
extensions_client->AddAPIProvider(
std::make_unique<CoreExtensionsRendererAPIProvider>());
extensions_client->AddAPIProvider(
std::make_unique<ShellExtensionsRendererAPIProvider>());
extensions_client->RenderThreadStarted();
// Note that creation order is important here. The Dispatcher needs to be
// created after our base class creates the fake RenderThread, but before it
// creates the test frame. Since `client` would not have observed
// RenderThreadStarted, we create the extensions clients here.
client->SetClientsForTesting(std::make_unique<ShellExtensionsClient>(),
std::move(extensions_client));
return client;
}
} // namespace extensions
|