# 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

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

# 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
-PageLoadMetricsBrowserTest.ReceivedCompleteResources

# 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/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/721403
-ContextMenuBrowserTest.DataSaverOpenOrigImageInNewTab

# 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@.
