preloaded_isolated_origins.cc 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/site_isolation/preloaded_isolated_origins.h"
  5. #include "components/site_isolation/buildflags.h"
  6. #include "content/public/browser/site_isolation_policy.h"
  7. #include "url/gurl.h"
  8. #if BUILDFLAG(USE_INTERNAL_ISOLATED_ORIGINS)
  9. #include "components/site_isolation/internal/google_chrome_isolated_origins.h"
  10. #endif
  11. namespace site_isolation {
  12. std::vector<url::Origin> GetBrowserSpecificBuiltInIsolatedOrigins() {
  13. std::vector<url::Origin> list;
  14. #if BUILDFLAG(USE_INTERNAL_ISOLATED_ORIGINS)
  15. // Only apply preloaded isolated origins when allowed by site isolation
  16. // policy (e.g., when memory requirements are satisfied, and when not using
  17. // full site isolation).
  18. if (content::SiteIsolationPolicy::ArePreloadedIsolatedOriginsEnabled()) {
  19. list.reserve(kNumberOfBuiltInIsolatedOrigins);
  20. for (size_t i = 0; i < kNumberOfBuiltInIsolatedOrigins; i++)
  21. list.push_back(url::Origin::Create(GURL(kBuiltInIsolatedOrigins[i])));
  22. }
  23. #endif
  24. return list;
  25. }
  26. } // namespace site_isolation