# https://crbug.com/828031

# Suites implicated in window_server deaths.
-ConstrainedWebDialogBrowserTest.*
-SSLClientCertificateSelectorCocoaTest.*

# Investigation, round 2.
-All/PasswordManagerBrowserTestWithViewsFeature.*
-AllForms/FormStructureBrowserTest.*
-AppApiTest.*
-AppBackgroundPageApiTest.*
-AppBannerManagerBrowserTest.*
-AppWindowAPITest.*
-AppWindowApiTest.*
-AutocompleteBrowserTest.*
-AutofillRendererTest.*
-AutomationApiTest.*
-AutoplayPolicyTest.*
-BluetoothChooserBrowserTest.*
-BluetoothPrivateApiTest.*
-BookmarkAppNavigationThrottleCommonFormSubmissionBrowserTest.*
-BookmarkAppNavigationThrottleCommonLinkBrowserTest.*
-BookmarkAppNavigationThrottleExperimentalBrowserTest.*
-BookmarkAppNavigationThrottleExperimentalLinkBrowserTest.*
-BookmarkFolderAppleScriptTest.*
-BrowserActionApiTest.*
-BrowserActionsBarBrowserTest.*
-BrowserCloseManagerBrowserTest/BrowserCloseManagerBrowserTest.*
-BrowserNavigatorTest.*
-BrowserTabRestoreTest.*
-BrowserTest.*
-BrowserUiTest.*
-BrowsingDataRemoverBrowserTestP.*
-CDM_11/ECKEncryptedMediaTest.*
-CDM_9/ECKEncryptedMediaTest.*
-CaptivePortalBlockingPageTest.*
-CaptivePortalBrowserTest.*
-CardUnmaskPromptViewBrowserTest.*
-ChromeLocatorTest.*
-ChromeSSLHostStateDelegateTest.*
-ChromeSitePerProcessTest.*
-CommandServiceTest.*
-ConnectionHelpTabHelperTest.*
-ConstrainedWebDialogBrowserTest.*
-ContentCapabilitiesTest.*
-ContentFaviconDriverTest.*
-ContentScriptApiTest.*
-ContentSettingBubbleDialogTest.*
-ContentSettingBubbleModelMixedScriptTest.*
-ContentSettingFramebustBlockBubbleModelTest.*
-ContentSettingsObserverBrowserTest.*
-ContextMenuBrowserTest.*
-ContinueWhereILeftOffTest.*
-CookieSettingsTest.*
-CrExtensionsA11yTest.*
-CrExtensionsA11yTestWithMultipleExensions.*
-CrExtensionsErrorConsoleA11yTest.*
-CrExtensionsItemsTest.*
-CrExtensionsShortcutA11yTestWithExtensions.*
-CrExtensionsShortcutA11yTestWithNoExtensions.*
-DNSErrorPageTest.*
-DeclarativeApiTest.*
-DeclarativeContentApiTest.*
-DeclarativeNetRequestBrowserTest.*
-DeclarativeNetRequestHostPermissionsBrowserTest.*
-DevToolsExtensionTest.*
-DevToolsSanityTest.*
-DeviceManagementServiceIntegrationTestInstance/DeviceManagementServiceIntegrationTest.*
-DiceBrowserTest.*
-DomDistillerViewerSourceBrowserTest.*
-DownloadDangerPromptBrowserTest.*
-DownloadExtensionTest.*
-DownloadInterruptReasonEnumsSynced.*
-DownloadTest.*
-EncodingAliases/BrowserEncodingTest.*
-ExecuteScriptApiTest.*
-ExecuteScriptApiTest/DestructiveScriptTest.*
-ExtensionApiTabTest.*
-ExtensionApiTest.*
-ExtensionBrowserTest.*
-ExtensionCrxInstallerTest.*
-ExtensionInstallDialogViewInteractiveBrowserTest.*
-ExtensionManagementApiTest.*
-ExtensionMessageBubbleBrowserTestMac.*
-ExtensionTabsTest.*
-ExtensionWebRequestApiTest.*
-ExtensionWebstorePrivateApiTest.*
-ExternalProtocolDialogBrowserTest.*
-FetchBehaviorTests/ContentVerifierHashTest.*
-FileSystemApiTest.*
-FindInPageControllerTest.*
-FlashEmbeds/ChromeContentRendererClientBrowserTest.*
-FlashPermissionBrowserTest.*
-FormAutocompleteTest.*
-FormAutofillTest.*
-FormClassifierTest.*
-FormControlClickDetectionTest.*
-FullscreenControllerTest.*
-GcmApiTest.*
-GeolocationBrowserTest.*
-GetAuthTokenFunctionTest.*
-HistoryBrowserTest.*
-HostedAppPWAOnlyTest.*
-HostedAppTest.*
-HttpsEngagementPageLoadMetricsBrowserTest.*
-IncognitoProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.*
-InfoBarUiTest.*
-InlineLoginHelperBrowserTest.*
-InlineLoginUIBrowserTest.*
-InspectUITest.*
-InstallableManagerBrowserTest.*
-InstantThemeTest.*
-InterstitialUITest.*
-InterventionsInternalsUITest.*
-JavaScript/ExtensionBindingsApiTest.*
-JavaScriptBindings/ExternallyConnectableMessagingTest.*
-LocalNTPDoodleTest.*
-LocalNTPOneGoogleBarSmokeTest.*
-LocalNTPVoiceSearchSmokeTest.*
-LoginPromptBrowserTest.*
-MSE_ClearKey/EncryptedMediaTest.*
-MSE_ExternalClearKey/EncryptedMediaTest.*
-ManifestVerifierBrowserTest.*
-MediaEngagementAutoplayBrowserTest.*
-MediaEngagementBrowserTest.*
-MediaGalleriesPlatformAppBrowserTest.*
-MediaRouterElementsBrowserTest.*
-MediaRouterIntegrationBrowserTest.*
-MediaStreamDevicesControllerTest.*
-Memlog/MemlogBrowserTest.*
-MimeHandlerViewTests/MimeHandlerViewTest.*
-NaClBrowserTestGLibc.*
-NaClBrowserTestNewlib.*
-NaClBrowserTestPnacl.*
-Native/ExtensionBindingsApiTest.*
-NativeAppWindowCocoaBrowserTest.*
-NativeBindings/ExternallyConnectableMessagingTest.*
-NavigationEntryRemoverTest.*
-NetInternalsTest.*
-NetworkingPrivateApiTest.*
-NetworkingPrivateApiTestFail.*
-NewTabPageNavigationThrottleTest.*
-NewTabUIBrowserTest.*
-NoSessionRestoreTest.*
-NoStatePrefetchBrowserTest.*
-OnSignInChangedEventTest.*
-OutOfProcessPPAPITest.*
-PDFExtensionTest.*
-PPAPIFileChooserTest.*
-PPAPINaClNewlibTest.*
-PPAPINaClPNaClTest.*
-PageInfoBubbleViewBrowserTest.*
-PageLoadMetricsBrowserTest.*
-PagePasswordsAnalyserTest.*
-PasswordAutofillAgentTest.*
-PasswordDialogViewTest.*
-PasswordGenerationAgentTest.*
-PasswordsPrivateApiTest.*
-PaymentManifestParserTest.*
-PaymentRequestCanMakePaymentMetricsTest.*
-PaymentRequestCompletionStatusMetricsTest.*
-PaymentRequestCreditCardEditorTest.*
-PaymentRequestModifiersTest.*
-PaymentRequestNoShippingTest.*
-PaymentRequestPaymentAppTest.*
-PaymentRequestShippingAddressEditorTest.*
-PermissionRequestManagerBrowserTest.*
-PhishingDOMFeatureExtractorTest.*
-PlatformAppBrowserTest.*
-PlatformAppWithFileBrowserTest.*
-PluginPowerSaverBrowserTest.*
-PolicyTest.*
-PolicyToolUITest.*
-PrefsFunctionalTest.*
-PrefsTabHelperBrowserTest.*
-PrerenderBrowserTest.*
-PrintBrowserTest.*
-PrintPreviewDialogControllerBrowserTest.*
-PrintPreviewSettingsSectionsTest.*
-PrintPreviewUIBrowserTest.*
-ProcessManagerBrowserTest.*
-ProfileChooserViewExtensionsTest.*
-ProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.*
-ProfileSigninConfirmationHelperBrowserTest.*
-PushMessagingBrowserTest.*
-RedirectTest.*
-ReferrerPolicyTest.*
-SBNavigationObserverBrowserTest.*
-SRC_ExternalClearKey/EncryptedMediaTest.*
-SSLUIMITMSoftwareEnabledTest.*
-SSLUITest.*
-SSLUITestWithExtendedReporting.*
-SSLUIWorkerFetchTest.*
-SafeBrowsingBlockingPageBrowserTestWithThreatTypeAndIsolationSetting/SafeBrowsingBlockingPageBrowserTest.*
-SafeBrowsingNetworkContext/NetworkContextConfigurationBrowserTest.*
-SafeBrowsingServiceJsRequestNoInterstitialTest.*
-SafeBrowsingServiceTest.*
-SaveCardBubbleViewsFullFormBrowserTest.*
-SavePageBrowserTest.*
-SaveType/SavePageOriginalVsSavedComparisonTest.*
-SearchEngineTabHelperBrowserTest.*
-SecurityStateTabHelperTest.*
-ServiceWorkerTestWithJSBindings/ServiceWorkerTest.*
-ServiceWorkerTestWithNativeBindings/ServiceWorkerTest.*
-SessionRestorePageLoadMetricsBrowserTest.*
-SessionRestoreTest.*
-SettingsA11yManagePasswords.*
-SettingsA11ySignOut.*
-SettingsAccessibilityTest.*
-StartupBrowserCreatorFirstRunTest.*
-SubresourceFilterBrowserTest.*
-SubresourceFilterPopupBrowserTest.*
-SuperfishSSLUITest.*
-SyncFileSystemApiTest.*
-SystemNetworkContext/NetworkContextConfigurationBrowserTest.*
-TabManagerTestWithTwoTabs.*
-TabRestoreTest.*
-TaskManagerBrowserTest.*
-TestStatsDictionaryTest.*
-ThreatDOMDetailsTest.*
-TranslateHelperBrowserTest.*
-TranslateScriptBrowserTest.*
-UkmBrowserTest.*
-UnloadTest.*
-UpdateRecommendedDialogTest.*
-UsbChooserBrowserTest.*
-ViewSourceTest.*
-WebNavigationApiTest.*
-WebRtcBrowserTest.*
-WebUIBrowserAsyncGenTest.*
-WebUIBrowserAsyncTest.*
-WebUIResourceBrowserTest.*
-WebViewTest.*
-WebrtcLoggingPrivateApiTest.*
-WindowAppleScriptTest.*
-WindowOpenApiTest.*

# Potential 10.13 killers.
-DisableExtensionsExceptBrowserTest.*
-ExtensionActionRunnerBrowserTest.*
-ExtensionFetchTest.*
-ExtensionTabUtilBrowserTest.*
-NativeBindingsApiTest.*
-PasswordManagerBrowserTest.*
-UpdateServiceTest.*
