OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/site_details.h" | 5 #include "chrome/browser/site_details.h" |
6 | 6 |
7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1128 EXPECT_THAT(details->uma()->GetAllSamples( | 1128 EXPECT_THAT(details->uma()->GetAllSamples( |
1129 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1129 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1130 ElementsAre(Bucket(1, 1))); | 1130 ElementsAre(Bucket(1, 1))); |
1131 } | 1131 } |
1132 | 1132 |
1133 // Load an extension without a background page, which will avoid creating a | 1133 // Load an extension without a background page, which will avoid creating a |
1134 // BrowsingInstance for it. | 1134 // BrowsingInstance for it. |
1135 const Extension* extension1 = CreateExtension("Extension One", false); | 1135 const Extension* extension1 = CreateExtension("Extension One", false); |
1136 | 1136 |
1137 // Navigate the tab's first iframe to a resource of the extension. The | 1137 // Navigate the tab's first iframe to a resource of the extension. The |
1138 // extension iframe will be put in a separate BrowsingInstance (see | 1138 // extension iframe will be put in the same BrowsingInstance as it is part |
1139 // https://crbug.com/522302) unless in the default process model. | 1139 // of the frame tree. |
1140 content::NavigateIframeToURL( | 1140 content::NavigateIframeToURL( |
1141 tab, "child-0", extension1->GetResourceURL("/blank_iframe.html")); | 1141 tab, "child-0", extension1->GetResourceURL("/blank_iframe.html")); |
1142 details = new TestMemoryDetails(); | 1142 details = new TestMemoryDetails(); |
1143 details->StartFetchAndWait(); | 1143 details->StartFetchAndWait(); |
1144 if (content::AreAllSitesIsolatedForTesting()) { | 1144 if (content::AreAllSitesIsolatedForTesting()) { |
1145 EXPECT_THAT(details->uma()->GetAllSamples( | 1145 EXPECT_THAT(details->uma()->GetAllSamples( |
1146 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1146 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1147 ElementsAre(Bucket(1, 1), Bucket(4, 1))); | 1147 ElementsAre(Bucket(5, 1))); |
1148 } else if (extensions::IsIsolateExtensionsEnabled()) { | 1148 } else if (extensions::IsIsolateExtensionsEnabled()) { |
1149 EXPECT_THAT(details->uma()->GetAllSamples( | 1149 EXPECT_THAT(details->uma()->GetAllSamples( |
1150 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1150 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1151 ElementsAre(Bucket(1, 2))); | 1151 ElementsAre(Bucket(1, 2))); |
1152 } else { | 1152 } else { |
1153 EXPECT_THAT(details->uma()->GetAllSamples( | 1153 EXPECT_THAT(details->uma()->GetAllSamples( |
1154 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1154 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1155 ElementsAre(Bucket(1, 1))); | 1155 ElementsAre(Bucket(1, 1))); |
1156 } | 1156 } |
1157 | 1157 |
1158 // Now load an extension with a background page. This will result in a | 1158 // Now load an extension with a background page. This will result in a |
1159 // BrowsingInstance for the background page. | 1159 // BrowsingInstance for the background page. |
1160 const Extension* extension2 = CreateExtension("Extension One", true); | 1160 const Extension* extension2 = CreateExtension("Extension One", true); |
1161 details = new TestMemoryDetails(); | 1161 details = new TestMemoryDetails(); |
1162 details->StartFetchAndWait(); | 1162 details->StartFetchAndWait(); |
1163 if (content::AreAllSitesIsolatedForTesting()) { | 1163 if (content::AreAllSitesIsolatedForTesting()) { |
1164 EXPECT_THAT(details->uma()->GetAllSamples( | 1164 EXPECT_THAT(details->uma()->GetAllSamples( |
1165 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1165 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1166 ElementsAre(Bucket(1, 2), Bucket(4, 1))); | 1166 ElementsAre(Bucket(1, 1), Bucket(5, 1))); |
1167 } else if (extensions::IsIsolateExtensionsEnabled()) { | 1167 } else if (extensions::IsIsolateExtensionsEnabled()) { |
1168 EXPECT_THAT(details->uma()->GetAllSamples( | 1168 EXPECT_THAT(details->uma()->GetAllSamples( |
1169 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1169 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1170 ElementsAre(Bucket(1, 3))); | 1170 ElementsAre(Bucket(1, 3))); |
1171 } else { | 1171 } else { |
1172 EXPECT_THAT(details->uma()->GetAllSamples( | 1172 EXPECT_THAT(details->uma()->GetAllSamples( |
1173 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1173 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1174 ElementsAre(Bucket(1, 2))); | 1174 ElementsAre(Bucket(1, 2))); |
1175 } | 1175 } |
1176 | 1176 |
1177 // Navigate the second iframe of the tab to the second extension. This will | 1177 // Navigate the second iframe of the tab to the second extension. It should |
1178 // create a new BrowsingInstance again due to https://crbug.com/522302 for | 1178 // stay in the same BrowsingInstance as the page. |
1179 // --site-per-process and --isolate-extensions. | |
1180 content::NavigateIframeToURL( | 1179 content::NavigateIframeToURL( |
1181 tab, "child-1", extension2->GetResourceURL("/blank_iframe.html")); | 1180 tab, "child-1", extension2->GetResourceURL("/blank_iframe.html")); |
1182 details = new TestMemoryDetails(); | 1181 details = new TestMemoryDetails(); |
1183 details->StartFetchAndWait(); | 1182 details->StartFetchAndWait(); |
1184 if (content::AreAllSitesIsolatedForTesting()) { | 1183 if (content::AreAllSitesIsolatedForTesting()) { |
1185 EXPECT_THAT(details->uma()->GetAllSamples( | 1184 EXPECT_THAT(details->uma()->GetAllSamples( |
1186 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1185 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1187 ElementsAre(Bucket(1, 3), Bucket(3, 1))); | 1186 ElementsAre(Bucket(1, 1), Bucket(5, 1))); |
1188 } else if (extensions::IsIsolateExtensionsEnabled()) { | 1187 } else if (extensions::IsIsolateExtensionsEnabled()) { |
1189 EXPECT_THAT(details->uma()->GetAllSamples( | 1188 EXPECT_THAT(details->uma()->GetAllSamples( |
1190 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1189 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1191 ElementsAre(Bucket(1, 4))); | 1190 ElementsAre(Bucket(1, 4))); |
1192 } else { | 1191 } else { |
1193 EXPECT_THAT(details->uma()->GetAllSamples( | 1192 EXPECT_THAT(details->uma()->GetAllSamples( |
1194 "SiteIsolation.SiteInstancesPerBrowsingInstance"), | 1193 "SiteIsolation.SiteInstancesPerBrowsingInstance"), |
1195 ElementsAre(Bucket(1, 2))); | 1194 ElementsAre(Bucket(1, 2))); |
1196 } | 1195 } |
1197 } | 1196 } |
OLD | NEW |