blob: a373cfa136d1feb0ca5a4bfb6c549dd3883d3a82 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_RENDERER_HOST_SHOULD_SWAP_BROWSING_INSTANCE_H_
#define CONTENT_BROWSER_RENDERER_HOST_SHOULD_SWAP_BROWSING_INSTANCE_H_
namespace content {
// This is the enumeration of the reasons why we might not swap the
// BrowsingInstance for navigations.
// This enum is used for histograms and should not be renumbered.
// TODO(crbug.com/1026101): Remove after the investigations are complete.
enum class ShouldSwapBrowsingInstance {
kYes_ForceSwap = 0,
kNo_ProactiveSwapDisabled = 1,
kNo_NotMainFrame = 2,
kNo_HasRelatedActiveContents = 3,
kNo_DoesNotHaveSite = 4,
kNo_SourceURLSchemeIsNotHTTPOrHTTPS = 5,
// 6: kNo_DestinationURLSchemeIsNotHTTPOrHTTPS was removed as the scheme of
// the destination URL should not affect back-forward cache eligibility, so
// we don't need to avoid doing a proactive BrowsingInstance swap due to it.
kNo_SameSiteNavigation = 7,
// 8: kNo_ReloadingErrorPage was removed as the special case that forced
// reusing a SiteInstance for auto-reload was fixed. (see
// https://crbug.com/1045524).
kNo_AlreadyHasMatchingBrowsingInstance = 9,
kNo_RendererDebugURL = 10,
kNo_NotNeededForBackForwardCache = 11,
kYes_CrossSiteProactiveSwap = 12,
kYes_SameSiteProactiveSwap = 13,
kNo_SameDocumentNavigation = 14,
kNo_SameUrlNavigation = 15,
kNo_WillReplaceEntry = 16,
kNo_Reload = 17,
kNo_Guest = 18,
kNo_HasNotComittedAnyNavigation = 19,
// 20: kNo_UnloadHandlerExistsOnSameSiteNavigation was removed as it's not
// triggering BrowsingInstance swap anymore. See
// https://groups.google.com/a/google.com/g/chrome-bfcache/c/L-ZreZDY4n0
kNo_NotPrimaryMainFrame = 21,
kMaxValue = kNo_NotPrimaryMainFrame
};
} // namespace content
#endif // CONTENT_BROWSER_RENDERER_HOST_SHOULD_SWAP_BROWSING_INSTANCE_H_