blob: 2804e53dc2fb752d28feba32465c2ab9f1049920 [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_WEB_TEST_BROWSER_WEB_TEST_BROWSER_CONTEXT_H_
#define CONTENT_WEB_TEST_BROWSER_WEB_TEST_BROWSER_CONTEXT_H_
#include "content/shell/browser/shell_browser_context.h"
namespace device {
class ScopedGeolocationOverrider;
} // namespace device
namespace content {
class BackgroundSyncController;
class DownloadManagerDelegate;
class PermissionControllerDelegate;
class PushMessagingService;
class WebTestBackgroundFetchDelegate;
class WebTestPermissionManager;
class WebTestPushMessagingService;
class WebTestStorageAccessManager;
class MockPlatformNotificationService;
class WebTestBrowserContext final : public ShellBrowserContext {
public:
explicit WebTestBrowserContext(bool off_the_record);
WebTestBrowserContext(const WebTestBrowserContext&) = delete;
WebTestBrowserContext& operator=(const WebTestBrowserContext&) = delete;
~WebTestBrowserContext() override;
// ShellBrowserContext overrides.
DownloadManagerDelegate* GetDownloadManagerDelegate() override;
PlatformNotificationService* GetPlatformNotificationService() override;
PushMessagingService* GetPushMessagingService() override;
PermissionControllerDelegate* GetPermissionControllerDelegate() override;
BackgroundFetchDelegate* GetBackgroundFetchDelegate() override;
BackgroundSyncController* GetBackgroundSyncController() override;
ClientHintsControllerDelegate* GetClientHintsControllerDelegate() override;
ReduceAcceptLanguageControllerDelegate*
GetReduceAcceptLanguageControllerDelegate() override;
WebTestPermissionManager* GetWebTestPermissionManager();
WebTestStorageAccessManager* GetWebTestStorageAccessManager();
private:
std::unique_ptr<MockPlatformNotificationService>
platform_notification_service_;
std::unique_ptr<WebTestPushMessagingService> push_messaging_service_;
std::unique_ptr<PermissionControllerDelegate> permission_manager_;
std::unique_ptr<WebTestBackgroundFetchDelegate> background_fetch_delegate_;
std::unique_ptr<BackgroundSyncController> background_sync_controller_;
std::unique_ptr<device::ScopedGeolocationOverrider> geolocation_overrider_;
std::unique_ptr<ClientHintsControllerDelegate>
client_hints_controller_delegate_;
std::unique_ptr<WebTestStorageAccessManager> storage_access_;
std::unique_ptr<ReduceAcceptLanguageControllerDelegate>
reduce_accept_language_delegate_;
};
} // namespace content
#endif // CONTENT_WEB_TEST_BROWSER_WEB_TEST_BROWSER_CONTEXT_H_