# 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.
-ExtensionDisabledGlobalErrorTest.HigherPermissionsFromSync
-ExtensionDisabledGlobalErrorTest.RemoteInstall
-ExtensionStorageMonitorTest.HostedAppTemporaryFilesystem
-ExtensionUnloadBrowserTest.UnloadWithContentScripts
-ProcessManagerBrowserTest.NestedURLNavigationsToExtensionAllowed
-ProxySettingsApiTest.ProxyEventsInvalidProxy
-RegisterProtocolHandlerBrowserTest.CustomHandler
-SSLUITest.TestBadHTTPSDownload/0
-SSLUITest.TestBadHTTPSDownload/1
-SubresourceFilterBrowserTest.FailedProvisionalLoadInMainframe
-WebstoreInstallerBrowserTest.SimultaneousInstall
-WebViewTest.WebViewInBackgroundPage

# A large number of Cloud Print files use URLFetchers.
# A few of the bugs:
# https://crbug.com/844950
# https://crbug.com/844951
# https://crbug.com/844952
-ComponentCloudPolicyTest.FetchExtensionPolicy
-ComponentCloudPolicyTest.InstallNewExtension
-ComponentCloudPolicyTest.SignOutAndBackIn
-ComponentCloudPolicyTest.UpdateExtensionPolicy
-KeyRotationComponentCloudPolicyTest.Basic

# These tests uses net::URLRequestFilter (through TestRequestInterceptor) to
# mock out network responses. Unclear if the code being tested uses
# SimpleURLLoader or URLFetcher.
-ComponentUpdaterPolicyTest.EnabledComponentUpdates
-PolicyTest.ExtensionInstallBlacklistSharedModules
-PolicyTest.ExtensionInstallForcelist
-PolicyTest.ExtensionInstallForcelist_DefaultedUpdateUrl
-PolicyTest.ExtensionMinimumVersionForceInstalled
-PolicyTest.ExtensionMinimumVersionRequired
-PolicyTest.ExtensionMinimumVersionRequiredAlt
-PolicyTest.ExtensionRecommendedInstallationMode
-PolicyUpdateServiceTest.Backoff
-PolicyUpdateServiceTest.FailedUpdateRetries
-PolicyUpdateServiceTest.PolicyCorruptedOnStartup

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

# extensions/browser/updater/extension_downloader.cc still uses URLFetcher.
# https://crbug.com/844928
-ExtensionManagementTest.AutoUpdate
-ExtensionManagementTest.AutoUpdateDisabledExtensions
-ExtensionManagementTest.ExternalPolicyRefresh
-ExtensionManagementTest.ExternalUrlUpdate
-ExtensionManagementTest.PolicyOverridesUserInstall

# These try to resolve host names using ResourceContext, using the old
# in-process HostResolver API. Neither works when the network service is
# enabled, so they'll need to be moved over to a new API. See
# pepper_host_resolver_message_filter.cc.
# https://crubug.com/821021
-OutOfProcessPPAPITest.TCPServerSocketPrivate
-OutOfProcessPPAPITest.TCPSocket
-OutOfProcessPPAPITest.TCPSocketPrivate
-OutOfProcessPPAPITest.TCPSocketPrivateTrusted
-PPAPINaClNewlibTest.TCPServerSocketPrivate
-PPAPINaClNewlibTest.TCPSocket
-PPAPINaClNewlibTest.TCPSocketPrivate
-PPAPINaClPNaClNonSfiTest.TCPServerSocketPrivate
-PPAPINaClPNaClNonSfiTest.TCPSocket
-PPAPINaClPNaClNonSfiTest.TCPSocketPrivate
-OutOfProcessPPAPITest.HostResolver
-OutOfProcessPPAPITest.HostResolverPrivate_Resolve
-OutOfProcessPPAPITest.HostResolverPrivate_ResolveIPv4
-OutOfProcessPPAPITest.UDPSocket_Broadcast
-OutOfProcessPPAPITest.UDPSocket_Multicast
-OutOfProcessPPAPITest.UDPSocket_ParallelSend
-OutOfProcessPPAPITest.UDPSocket_ReadWrite
-OutOfProcessPPAPITest.UDPSocket_SetOption
-OutOfProcessPPAPITest.UDPSocket_SetOption_1_0
-OutOfProcessPPAPITest.UDPSocket_SetOption_1_1
-OutOfProcessPPAPITest.UDPSocketPrivate_Connect
-PPAPINaClGLibcTest.UDPSocket_Broadcast
-PPAPINaClGLibcTest.UDPSocket_Multicast
-PPAPINaClGLibcTest.UDPSocket_ParallelSend
-PPAPINaClGLibcTest.UDPSocket_ReadWrite
-PPAPINaClGLibcTest.UDPSocket_SetOption
-PPAPINaClGLibcTest.UDPSocket_SetOption_1_0
-PPAPINaClGLibcTest.UDPSocket_SetOption_1_1
-PPAPINaClNewlibTest.HostResolver
-PPAPINaClNewlibTest.HostResolverPrivate_Resolve
-PPAPINaClNewlibTest.HostResolverPrivate_ResolveIPv4
-PPAPINaClNewlibTest.NetAddressPrivate
-PPAPINaClNewlibTest.UDPSocket_Broadcast
-PPAPINaClNewlibTest.UDPSocket_Multicast
-PPAPINaClNewlibTest.UDPSocket_ParallelSend
-PPAPINaClNewlibTest.UDPSocket_ReadWrite
-PPAPINaClNewlibTest.UDPSocket_SetOption
-PPAPINaClNewlibTest.UDPSocket_SetOption_1_0
-PPAPINaClNewlibTest.UDPSocket_SetOption_1_1
-PPAPINaClNewlibTest.UDPSocketPrivate_Connect
-PPAPINaClPNaClNonSfiTest.HostResolver
-PPAPINaClPNaClNonSfiTest.HostResolverPrivate_Resolve
-PPAPINaClPNaClNonSfiTest.HostResolverPrivate_ResolveIPv4
-PPAPINaClPNaClNonSfiTest.NetAddressPrivate
-PPAPINaClPNaClNonSfiTest.UDPSocket_Broadcast
-PPAPINaClPNaClNonSfiTest.UDPSocket_Multicast
-PPAPINaClPNaClNonSfiTest.UDPSocket_ParallelSend
-PPAPINaClPNaClNonSfiTest.UDPSocket_ReadWrite
-PPAPINaClPNaClNonSfiTest.UDPSocket_SetOption
-PPAPINaClPNaClNonSfiTest.UDPSocket_SetOption_1_0
-PPAPINaClPNaClNonSfiTest.UDPSocket_SetOption_1_1
-PPAPINaClPNaClNonSfiTest.UDPSocketPrivate_Connect
# 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

# components/update_client/ still uses URLFetcher.
# https://crbug.com/844973
-UpdateServiceTest.NoUpdate
-UpdateServiceTest.PolicyCorrupted
-UpdateServiceTest.SuccessfulUpdate
-UpdateServiceTest.TwoUpdateCheckErrors
-UpdateServiceTest.UpdateCheckError

# 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

# Need a test interface API that allows us to check on the CT status.
# Then in ssl_browsertest.cc we can use that instead of the direct
# call to the transport_security_state()
-SSLUITest.CertificateTransparencyEnforcementDisabledForUrls/0
-SSLUITest.CertificateTransparencyEnforcementDisabledForUrls/1

# Redirects to chrome-extension:// should be blocked unless the resource is
# webaccessible.  https://crbug.com/821586
-ProcessManagerBrowserTest.ServerRedirectToNonWebAccessibleResource
-ProcessManagerBrowserTest.CrossExtensionEmbeddingOfWebAccessibleResources

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

# http://crbug.com/816684 Track Page Load Metrics.
-AdsPageLoadMetricsObserverBrowserTest.OriginStatusMetricEmbedded
-AdsPageLoadMetricsObserverBrowserTest.OriginStatusMetricEmbeddedEmpty
-AdsPageLoadMetricsObserverBrowserTest.OriginStatusMetricSame
-AdsPageLoadMetricsObserverBrowserTest.OriginStatusMetricCross
-AdsPageLoadMetricsObserverBrowserTest.DocOverwritesNavigation
-AdsPageLoadMetricsObserverBrowserTest.SubresourceFilter
-PageLoadMetricsBrowserTest.LoadingMetrics
-PageLoadMetricsBrowserTest.LoadingMetricsFailed
-PageLoadMetricsBrowserTest.PayloadSize
-PageLoadMetricsBrowserTest.PayloadSizeChildFrame

# 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

# crbug.com/776589 Intercepting requests with net::URLRequestFilter.
-DownloadExtensionTest.DownloadExtensionTest_Download_FileSystemURL
-PolicyTest.CertificateTransparencyEnforcementDisabledForUrls/0
-PolicyTest.CertificateTransparencyEnforcementDisabledForUrls/1
-PolicyTest.ExtensionInstallSources
-PolicyTest.ForceGoogleSafeSearch

# https://bugs.chromium.org/p/chromium/issues/detail?id=789670
-DiceBrowserTest.Reauth
-DiceBrowserTest.Signin
-DiceBrowserTest.SignoutAllAccounts
-DiceBrowserTest.SignoutMainAccount
-DiceBrowserTest.SignoutSecondaryAccount
-DiceFixAuthErrorsBrowserTest.ReauthFixAuthError
-DiceFixAuthErrorsBrowserTest.SigninAccountMismatch
-DicePrepareMigrationBrowserTest.EnableSyncAfterToken
-DicePrepareMigrationBrowserTest.EnableSyncBeforeToken
-DicePrepareMigrationBrowserTest.Signout
-ChromeResourceDispatcherHostDelegateMirrorBrowserTest.MirrorRequestHeader

# crbug.com/778793
# Started failing in r514649.
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabled
# Added in r519342.
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabledHttpRedirectToHttps
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabledButNoTransformDirective

# crbug.com/778860 SecurityStyleExplanations::info_explanations is empty.
-BrowserTestNonsecureURLRequest.DidChangeVisibleSecurityStateObserverObsoleteTLSSettings

# These rely on proxy configuration and PAC execution being configured on the
# legacy in-process URLRequestContext. They should be removed or updated to
# use Mojo APIs instead.
-HangingPacRequestProxyScriptBrowserTest.Shutdown
-IOThreadBrowserTestWithHangingPacRequest.Shutdown
-ProxySettingsApiTest.ProxyEventsParseError

# http://crbug.com/721414
# TODO(rockot): add support for webRequest API.
-ExtensionWebRequestApiTest.WebRequestBlocking
-ExtensionWebRequestApiTest.WebRequestDeclarative2
-ExtensionWebRequestApiTest.WebRequestDiceHeaderProtection
-ExtensionWebRequestApiTest.WebRequestTypes
-ExtensionWebRequestApiTest.WebRequestTestOSDD
# Note WebRequestUnloadImmediately is disabled on Linux
-ExtensionWebRequestApiTest.WebRequestUnloadImmediately
# http://crbug.com/853118 Flaky with serivicified network stack.
-LocalNTPInterceptionWebRequestAPITest.OneGoogleBarRequestsHidden

# WebRequest implementation needs to handle extension
# installation/uninstallation events.
# http://crbug.com/857577
-BackgroundXhrTest.HttpAuth
-BackgroundXhrTest.TlsClientAuth

# http://crbug.com/853733
-DeclarativeNetRequestBrowserTest.PageAllowingAPI_BrowserRequests/0

# http://crbug.com/705114
# Remove streams concept from code and replace with data pipe passing.
-MimeHandlerViewTests/MimeHandlerViewTest.Abort/0
-MimeHandlerViewTests/MimeHandlerViewTest.Abort/1

# http://crbug.com/784576
# Convert ExtensionRequestLimitingThrottle into a URLLoaderThrottle.
-ExtensionRequestLimitingThrottleBrowserTest.DoNotThrottleCachedResponse
-ExtensionRequestLimitingThrottleBrowserTest.DoNotThrottleCachedResponse_NonRedirectCached
-ExtensionRequestLimitingThrottleBrowserTest.DoNotThrottleCachedResponse_Redirect
-ExtensionRequestLimitingThrottleBrowserTest.ThrottleRequest
-ExtensionRequestLimitingThrottleBrowserTest.ThrottleRequest_Redirect
-ExtensionRequestLimitingThrottleBrowserTest.ThrottleRequest_RedirectCached
-ExtensionRequestLimitingThrottleCommandLineBrowserTest.ThrottleRequestDisabled

# Switch test from using a custom net::URLRequestFileJob to using a test
# URLLoaderFactory via SetNetworkFactoryForTesting.
-ErrorPageSniffTest.SniffSmallHttpErrorResponseAsDownload

# http://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

# Variations appending not working when network service is enabled.
# http://crbug.com/857165
-VariationsHttpHeadersBrowserTest.TestStrippingHeadersFromSubresourceRequest

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

# Fails because of missing support to navigate to filesystem: URLs.
# https://crbug.com/797292
-ProcessManagerBrowserTest.NestedURLDownloadsToExtensionAllowed

# 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

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