#include "components/site_isolation/site_isolation_policy.h"
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/json/values_util.h"
#include "base/metrics/field_trial_params.h"
#include "base/metrics/histogram_functions.h"
#include "base/system/sys_info.h"
#include "build/build_config.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "components/site_isolation/features.h"
#include "components/site_isolation/pref_names.h"
#include "components/user_prefs/user_prefs.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/site_isolation_mode.h"
#include "content/public/browser/site_isolation_policy.h"
#include "content/public/common/content_features.h"
namespace site_isolation {
namespace {
IsolatedOriginSource;
bool g_disallow_memory_threshold_caching_for_testing = …;
struct IsolationDisableDecisions { … };
bool ShouldDisableSiteIsolationDueToMemorySlow(
content::SiteIsolationMode site_isolation_mode) { … }
IsolationDisableDecisions MakeBothDecisions() { … }
bool CachedDisableSiteIsolation(
content::SiteIsolationMode site_isolation_mode) { … }
}
bool SiteIsolationPolicy::IsIsolationForPasswordSitesEnabled() { … }
bool SiteIsolationPolicy::IsIsolationForOAuthSitesEnabled() { … }
bool SiteIsolationPolicy::IsEnterprisePolicyApplicable() { … }
bool SiteIsolationPolicy::ShouldDisableSiteIsolationDueToMemoryThreshold(
content::SiteIsolationMode site_isolation_mode) { … }
void SiteIsolationPolicy::PersistIsolatedOrigin(
content::BrowserContext* context,
const url::Origin& origin,
IsolatedOriginSource source) { … }
void SiteIsolationPolicy::PersistUserTriggeredIsolatedOrigin(
content::BrowserContext* context,
const url::Origin& origin) { … }
void SiteIsolationPolicy::PersistWebTriggeredIsolatedOrigin(
content::BrowserContext* context,
const url::Origin& origin) { … }
void SiteIsolationPolicy::ApplyPersistedIsolatedOrigins(
content::BrowserContext* browser_context) { … }
void SiteIsolationPolicy::IsolateStoredOAuthSites(
content::BrowserContext* browser_context,
const std::vector<url::Origin>& logged_in_sites) { … }
void SiteIsolationPolicy::IsolateNewOAuthURL(
content::BrowserContext* browser_context,
const GURL& signed_in_url) { … }
bool SiteIsolationPolicy::ShouldPdfCompositorBeEnabledForOopifs() { … }
void SiteIsolationPolicy::SetDisallowMemoryThresholdCachingForTesting(
bool disallow_caching) { … }
}