# NOTE: if adding an exclusion for an existing failure (e.g. additional test for
# feature X that is already not working), please add it beside the existing
# failures. Otherwise please reach out to network-service-dev@.

# These tests currently fail when run with --enable-features=NetworkService
# See https://crbug.com/769401

# Uncategorized timeouts or test failures.
-ProxySettingsApiTest.ProxyEventsInvalidProxy
-RegisterProtocolHandlerBrowserTest.CustomHandler
-SubresourceFilterBrowserTest.FailedProvisionalLoadInMainframe

# Domain Reliability has yet to be hookup to the NetworkService.
# https://crbug.com/853251
-DomainReliabilityBrowserTest.Upload

# This test fails flakily. Only enable it once
# SocketExtensionWithDnsLookupFunction::StartDnsLookup uses the Mojo
# HostResolver API.
-SocketApiTest.SocketUDPExtension

# These tests use URLFetchers directly.
# https://crbug.com/853798
-ProfileBrowserTest.SeparateMediaCache
-ProfileBrowserTest.URLFetcherUsingMainContextDuringIncognitoTeardown
-ProfileBrowserTest.URLFetcherUsingMainContextDuringShutdown
-ProfileBrowserTest.URLFetcherUsingMediaContextDuringShutdown
-ProfileWithoutMediaCacheBrowserTest.NoSeparateMediaCache

# about:net-internals should be largely removed before shipping the network
# service.
# https://crbug.com/678391
-NetInternalsTest.netInternalsChromeOSViewStoreDebugLogs
-NetInternalsTest.netInternalsDnsViewAddTwoTwice
-NetInternalsTest.netInternalsDnsViewExpired
-NetInternalsTest.netInternalsDnsViewFail
-NetInternalsTest.netInternalsDnsViewIncognitoClears
-NetInternalsTest.netInternalsDnsViewNetworkChanged
-NetInternalsTest.netInternalsDnsViewSuccess
-NetInternalsTest.netInternalsDomainSecurityPolicyViewAddDelete
-NetInternalsTest.netInternalsDomainSecurityPolicyViewAddError
-NetInternalsTest.netInternalsDomainSecurityPolicyViewAddFail
-NetInternalsTest.netInternalsDomainSecurityPolicyViewAddOverwrite
-NetInternalsTest.netInternalsDomainSecurityPolicyViewAddTwice
-NetInternalsTest.netInternalsDomainSecurityPolicyViewDeleteError
-NetInternalsTest.netInternalsDomainSecurityPolicyViewDeleteNotFound
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTAddDelete
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTAddError
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTAddFail
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTAddOverwrite
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTAddTwice
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTQueryError
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTQueryNotFound
-NetInternalsTest.netInternalsDomainSecurityPolicyViewExpectCTTestReport
-NetInternalsTest.netInternalsDomainSecurityPolicyViewQueryError
-NetInternalsTest.netInternalsDomainSecurityPolicyViewQueryNotFound
-NetInternalsTest.netInternalsEventsViewFilter
-NetInternalsTest.netInternalsLogUtilExportImport
-NetInternalsTest.netInternalsLogUtilImportNetLogFile
-NetInternalsTest.netInternalsLogUtilImportNetLogFileTruncated
-NetInternalsTest.netInternalsLogUtilStopCapturing
-NetInternalsTest.netInternalsLogViewPainterPrintAsText
-NetInternalsTest.netInternalsPrerenderViewFail
-NetInternalsTest.netInternalsPrerenderViewSucceed
-NetInternalsTest.netInternalsSessionBandwidthSucceed
-NetInternalsTest.netInternalsTimelineViewDegenerate
-NetInternalsTest.netInternalsTimelineViewLoadLog
-NetInternalsTest.netInternalsTimelineViewNoEvents
-NetInternalsTest.netInternalsTimelineViewRange
-NetInternalsTest.netInternalsTimelineViewScrollbar
-NetInternalsTest.netInternalsTimelineViewZoomIn
-NetInternalsTest.netInternalsTimelineViewZoomOut
-NetInternalsTest.netInternalsTourTabs

# https://crbug.com/721398
-WebViewTest.ClearDataCache

# https://crbug.com/853256
-ClientHintsBrowserTest.ClientHintsLifetimeNotAttachedCookiesBlocked/0
-ClientHintsBrowserTest.ClientHintsLifetimeNotAttachedCookiesBlocked/1
-ClientHintsBrowserTest.ClientHintsNoLifetimeCookiesNotAllowed/0
-ClientHintsBrowserTest.ClientHintsNoLifetimeCookiesNotAllowed/1

# https://crbug.com/816684 Track Page Load Metrics.
-PageLoadMetricsBrowserTest.LoadingMetricsFailed

# https://crbug.com/810329 DnsProbe browsertests that rely on delaying requests:
-DnsProbeBrowserTest.NxdomainProbeResultWithWorkingSlowCorrections
# Addendum to the above: These three were previously marked as flaky. After
# resolving https://crbug.com/810329, they will need to be monitored to see
# if flake is still an issue.
-DnsProbeBrowserTest.CorrectionsLoadStoppedSlowProbe
-DnsProbeBrowserTest.CorrectionsLoadStopped
-DnsProbeBrowserTest.NoInternetProbeResultWithSlowBrokenCorrections

# https://crbug.com/789670
-DiceBrowserTest.Reauth
-DiceBrowserTest.Signin
-DiceBrowserTest.SignoutAllAccounts
-DiceBrowserTest.SignoutMainAccount
-DiceBrowserTest.SignoutSecondaryAccount
-DiceFixAuthErrorsBrowserTest.ReauthFixAuthError
-DiceFixAuthErrorsBrowserTest.SigninAccountMismatch
-DicePrepareMigrationBrowserTest.EnableSyncAfterToken
-DicePrepareMigrationBrowserTest.EnableSyncBeforeToken
-DicePrepareMigrationBrowserTest.Signout
-ChromeResourceDispatcherHostDelegateMirrorBrowserTest.MirrorRequestHeader

# https://crbug.com/778793
# Started failing in r514649.
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabled
# Added in r519342.
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabledHttpRedirectToHttps
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabledButNoTransformDirective
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelisted
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelistedRedirectToHttps
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelistedNoTransform
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttp
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsNoWhitelisted

# https://crbug.com/851609
# Extension listeners for "chrome.proxy.onProxyError" are not called for errors
# in PAC scripts.
-ProxySettingsApiTest.ProxyEventsParseError

# https://crbug.com/827582
# Editing response cookies through headers with webRequest is not supported with
# the network service.
-ExtensionWebRequestApiTest.WebRequestBlockingSetCookieHeader

# https://crbug.com/870588
# Flaky on Win with network service.
-ExtensionWebRequestApiTest.WebRequestTestOSDD

# https://crbug.com/809583
# Switch Predictor from using ResourceThrottle and ResourceDispatcherHost to
# using WebContentsObserver and NavigationHandle.
-PredictorBrowserTest.CrossSiteNoReferrerNoPredictionAfterOneNavigation
-PredictorBrowserTest.CrossSiteRedirectNoPredictionWithPath
-PredictorBrowserTest.CrossSiteRedirectPredictionWithNoPath
-PredictorBrowserTest.CrossSiteRedirectPredictionWithNoPathDifferentHostName
-PredictorBrowserTest.CrossSiteSimplePredictionAfterOneNavigation
-PredictorBrowserTest.CrossSiteSimplePredictionAfterOneNavigationNoInterceptor
-PredictorBrowserTest.CrossSiteSimplePredictionAfterTwoNavigations
-PredictorBrowserTest.CrossSiteSimplePredictionAfterTwoNavigations2
-PredictorBrowserTest.CrossSiteTwoRedirectsPredictionWithNoPath
-PredictorBrowserTest.CrossSiteUseOneSocket
-PredictorBrowserTest.CrossSiteUseThreeSockets
-PredictorBrowserTest.DoNotEvictRecentlyUsed
-PredictorBrowserTest.DontPredictBasedOnSubresources
-PredictorBrowserTest.ForgetBadPrediction
-PredictorBrowserTest.PreconnectAndFetchCORS
-PredictorBrowserTest.PreconnectAndFetchNonCORS
-PredictorBrowserTest.PredictBasedOnSubframeRedirect
-PredictorBrowserTest.RendererInitiatedNavigationPreconnect
-PredictorBrowserTest.SubframeCrossSitePrediction
-PredictorBrowserTest.SubframeInitiatesPreconnects
-PredictorBrowserTest.SubframeLearning

# https://crbug.com/773295
# Remove this test when there are no more clients left that use URLFetcher.
-VariationsHttpHeadersBrowserTest.TestStrippingHeadersFromInternalRequest

# Tests check state of NQE in the browser process, but need to be updated to
# watch NQE in the renderer process.
# https://crbug.com/819244
-IOThreadEctCommandLineBrowserTest.ForceECTFromCommandLine
-IOThreadEctFieldTrialAndCommandLineBrowserTest.ECTFromCommandLineOverridesFieldTrial
-IOThreadEctFieldTrialBrowserTest.ForceECTUsingFieldTrial


# Channel ID is not hooked up to the network service yet.
# https://crbug.com/840412
-JavaScriptBindings/ExternallyConnectableMessagingTest.WebConnectableWithNonEmptyTlsChannelId/0
-JavaScriptBindings/MessagingApiTest.DifferentStoragePartitionTLSChannelID/0
-NativeBindings/ExternallyConnectableMessagingTest.WebConnectableWithNonEmptyTlsChannelId/0
-NativeBindings/MessagingApiTest.DifferentStoragePartitionTLSChannelID/0

# https://crbug.com/845559
# Reporting needs to check BACKGROUND_SYNC permission before uploading reports
# about an origin.
-ReportingBrowserTest.TestReportingHeadersProcessed

# https://crbug.com/862176
# Requires checking Origin headers on requests made after extension unload.
-ExtensionUnloadBrowserTest.UnloadWithContentScripts

# NOTE: if adding an exclusion for an existing failure (e.g. additional test for
# feature X that is already not working), please add it beside the existing
# failures. Otherwise please reach out to network-service-dev@.
