blob: 5e83da0b47cdfe7ae6be3d36c27e34137d6fc933 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SAFE_BROWSING_CHROME_CLIENT_SIDE_DETECTION_HOST_DELEGATE_H_
#define CHROME_BROWSER_SAFE_BROWSING_CHROME_CLIENT_SIDE_DETECTION_HOST_DELEGATE_H_
#include "components/safe_browsing/content/browser/client_side_detection_host.h"
#include "components/safe_browsing/content/browser/safe_browsing_navigation_observer_manager.h"
namespace safe_browsing {
// Delegate class which implements chrome specific bits for configuring
// the ClientSideDetectionHost class.
class ChromeClientSideDetectionHostDelegate
: public ClientSideDetectionHost::Delegate {
public:
static std::unique_ptr<ClientSideDetectionHost> CreateHost(
content::WebContents* tab);
explicit ChromeClientSideDetectionHostDelegate(
content::WebContents* web_contents);
ChromeClientSideDetectionHostDelegate(
const ChromeClientSideDetectionHostDelegate&) = delete;
ChromeClientSideDetectionHostDelegate& operator=(
const ChromeClientSideDetectionHostDelegate&) = delete;
~ChromeClientSideDetectionHostDelegate() override;
// ClientSideDetectionHost::Delegate implementation.
bool HasSafeBrowsingUserInteractionObserver() override;
PrefService* GetPrefs() override;
scoped_refptr<SafeBrowsingDatabaseManager> GetSafeBrowsingDBManager()
override;
scoped_refptr<BaseUIManager> GetSafeBrowsingUIManager() override;
ClientSideDetectionService* GetClientSideDetectionService() override;
void AddReferrerChain(ClientPhishingRequest* verdict,
GURL current_url) override;
void SetNavigationObserverManagerForTesting(
SafeBrowsingNavigationObserverManager* navigation_observer_manager) {
observer_manager_for_testing_ = navigation_observer_manager;
}
protected:
SafeBrowsingNavigationObserverManager*
GetSafeBrowsingNavigationObserverManager();
size_t CountOfRecentNavigationsToAppend(
SafeBrowsingNavigationObserverManager::AttributionResult result);
private:
content::WebContents* web_contents_;
SafeBrowsingNavigationObserverManager* observer_manager_for_testing_ =
nullptr;
};
} // namespace safe_browsing
#endif // CHROME_BROWSER_SAFE_BROWSING_CHROME_CLIENT_SIDE_DETECTION_HOST_DELEGATE_H_