#include "components/safe_browsing/content/browser/client_side_detection_service.h"
#include <optional>
#include "base/path_service.h"
#include "base/test/bind.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.h"
#include "chrome/browser/safe_browsing/client_side_detection_service_factory.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/test/base/chrome_test_utils.h"
#include "chrome/test/base/platform_browser_test.h"
#include "components/prefs/pref_service.h"
#include "components/safe_browsing/content/browser/client_side_phishing_model.h"
#include "components/safe_browsing/content/common/safe_browsing.mojom.h"
#include "components/safe_browsing/core/common/features.h"
#include "components/safe_browsing/core/common/proto/client_model.pb.h"
#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "ipc/ipc_channel_proxy.h"
#include "mojo/public/cpp/base/proto_wrapper.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/ui/android/tab_model/tab_model.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/ui_test_utils.h"
#endif
#if BUILDFLAG(IS_MAC)
#include "base/mac/mac_util.h"
#endif
namespace safe_browsing {
namespace {
class PhishingModelWaiter : public mojom::PhishingModelSetterTestObserver { … };
}
_;
ReturnRef;
StrictMock;
class ClientSideDetectionServiceBrowserTest : public PlatformBrowserTest { … };
#if BUILDFLAG(IS_CHROMEOS) && !defined(NDEBUG)
#define MAYBE_ModelUpdatesPropagated …
#else
#define MAYBE_ModelUpdatesPropagated …
#endif
IN_PROC_BROWSER_TEST_F(ClientSideDetectionServiceBrowserTest,
MAYBE_ModelUpdatesPropagated) { … }
#if BUILDFLAG(IS_CHROMEOS) && !defined(NDEBUG)
#define MAYBE_TfLiteClassification …
#else
#define MAYBE_TfLiteClassification …
#endif
IN_PROC_BROWSER_TEST_F(ClientSideDetectionServiceBrowserTest,
MAYBE_TfLiteClassification) { … }
#if BUILDFLAG(IS_CHROMEOS) && !defined(NDEBUG)
#define MAYBE_TfLiteClassificationAfterTwoModelUploads …
#else
#define MAYBE_TfLiteClassificationAfterTwoModelUploads …
#endif
IN_PROC_BROWSER_TEST_F(ClientSideDetectionServiceBrowserTest,
MAYBE_TfLiteClassificationAfterTwoModelUploads) { … }
}