#include <ostream>
#include <string>
#include <utility>
#include "base/base64.h"
#include "base/command_line.h"
#include "base/containers/span.h"
#include "base/feature_list.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/strings/pattern.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
#include "content/browser/site_instance_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/content_browser_test.h"
#include "content/public/test/content_browser_test_utils.h"
#include "content/public/test/content_mock_cert_verifier.h"
#include "content/public/test/test_navigation_observer.h"
#include "content/public/test/test_utils.h"
#include "content/public/test/url_loader_interceptor.h"
#include "content/shell/browser/shell.h"
#include "content/test/test_content_browser_client.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/controllable_http_response.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/network_switches.h"
#include "services/network/test/test_url_loader_client.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/web_preferences/web_preferences.h"
#include "third_party/blink/public/mojom/loader/resource_load_info.mojom-shared.h"
namespace content {
Not;
HasSubstr;
namespace {
enum OrbExpectations { … };
constexpr OrbExpectations BlockAsError(const OrbExpectations expectations) { … }
std::string GetTestFileContents(const char* dir, const char* file) { … }
class RequestInterceptor { … };
}
class CrossSiteDocumentBlockingTestBase : public ContentBrowserTest { … };
struct ImgTestParams { … };
class CrossSiteDocumentBlockingImgElementTest
: public CrossSiteDocumentBlockingTestBase,
public testing::WithParamInterface<ImgTestParams> { … };
IN_PROC_BROWSER_TEST_P(CrossSiteDocumentBlockingImgElementTest, Test) { … }
#define IMG_TEST(tag, resource, expectations) …
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IMG_TEST(…)
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
CrossOriginResourcePolicy) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
FledgeAuctionOnlySignalsNotReadableFromFetch) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
FledgeAuctionOnlySignalsNotReadableFromFetchNewName) { … }
IN_PROC_BROWSER_TEST_F(
CrossSiteDocumentBlockingTestBase,
FledgeAuctionOnlySignalsNotReadableFromFetchBothNewAndOldNames) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase, AllowCorsFetches) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
AllowSameOriginFetchFromLoadDataWithBaseUrl) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase, BackToAboutBlank) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
BlockForVariousTargets) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
BlockRequestFromErrorPage) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
HeadersBlockedInResponseBlockedByCorb) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
HeadersSanitizedInCrossOriginResponseAllowedByCorb) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
HeadersSanitizedInSameOriginResponseAllowedByCorb) { … }
#if !BUILDFLAG(IS_ANDROID)
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase, SharedWorker) { … }
#endif
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingTestBase,
DISABLED_PrefetchIsNotImpacted) { … }
class CrossSiteDocumentBlockingServiceWorkerTest : public ContentBrowserTest { … };
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingServiceWorkerTest,
NetworkToServiceWorkerResponse) { … }
class CrossSiteDocumentBlockingDisableWebSecurityTest
: public CrossSiteDocumentBlockingTestBase { … };
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingDisableWebSecurityTest,
DisableBlocking) { … }
class CrossSiteDocumentBlockingSandboxedIframeTest
: public CrossSiteDocumentBlockingTestBase,
public ::testing::WithParamInterface<bool> { … };
IN_PROC_BROWSER_TEST_P(CrossSiteDocumentBlockingSandboxedIframeTest,
BlockDocumentsFromOpaqueOriginInSameOriginEmbedder) { … }
INSTANTIATE_TEST_SUITE_P(…);
class CrossSiteDocumentBlockingIsolatedOriginTest
: public CrossSiteDocumentBlockingTestBase { … };
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingIsolatedOriginTest,
BlockDocumentsFromIsolatedOrigin) { … }
IN_PROC_BROWSER_TEST_F(ContentBrowserTest, CorpVsBrowserInitiatedRequest) { … }
class CrossSiteDocumentBlockingWebBundleTest : public ContentBrowserTest { … };
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingWebBundleTest,
CrossOriginWebBundleSubresoruceJson) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingWebBundleTest,
CrossOriginWebBundleSubresorucePng) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingWebBundleTest,
SameOriginWebBundleSubresoruceJson) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingWebBundleTest,
SameOriginWebBundleSubresorucePng) { … }
IN_PROC_BROWSER_TEST_F(CrossSiteDocumentBlockingWebBundleTest,
FledgeAuctionOnlySignalsNotReadableFromFetchWebBundle) { … }
IN_PROC_BROWSER_TEST_F(
CrossSiteDocumentBlockingWebBundleTest,
FledgeAuctionOnlySignalsNotReadableFromFetchWebBundleNewName) { … }
IN_PROC_BROWSER_TEST_F(
CrossSiteDocumentBlockingWebBundleTest,
FledgeAuctionOnlySignalsNotReadableFromFetchWebBundleBothNewAndOldNames) { … }
}