| Index: chrome/browser/extensions/service_worker_apitest.cc
|
| diff --git a/chrome/browser/extensions/service_worker_apitest.cc b/chrome/browser/extensions/service_worker_apitest.cc
|
| index 0110014783c050aafa00603de7c472dd5ad53b7c..68c6e0a9789a47525be737054d08d074f4a80182 100644
|
| --- a/chrome/browser/extensions/service_worker_apitest.cc
|
| +++ b/chrome/browser/extensions/service_worker_apitest.cc
|
| @@ -593,6 +593,29 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, WebAccessibleResourcesFetch) {
|
| "service_worker/web_accessible_resources/fetch/", "page.html"));
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, TabsCreate) {
|
| + // Extensions APIs from SW are only enabled on trunk.
|
| + ScopedCurrentChannel current_channel_override(version_info::Channel::UNKNOWN);
|
| + const Extension* extension = LoadExtensionWithFlags(
|
| + test_data_dir_.AppendASCII("service_worker/tabs_create"), kFlagNone);
|
| + ASSERT_TRUE(extension);
|
| + ui_test_utils::NavigateToURL(browser(),
|
| + extension->GetResourceURL("page.html"));
|
| + content::WebContents* web_contents =
|
| + browser()->tab_strip_model()->GetActiveWebContents();
|
| +
|
| + int starting_tab_count = browser()->tab_strip_model()->count();
|
| + std::string result;
|
| + ASSERT_TRUE(content::ExecuteScriptAndExtractString(
|
| + web_contents, "window.runServiceWorker()", &result));
|
| + ASSERT_EQ("chrome.tabs.create callback", result);
|
| + EXPECT_EQ(starting_tab_count + 1, browser()->tab_strip_model()->count());
|
| +
|
| + // Check extension shutdown path.
|
| + UnloadExtension(extension->id());
|
| + EXPECT_EQ(starting_tab_count, browser()->tab_strip_model()->count());
|
| +}
|
| +
|
| // This test loads a web page that has an iframe pointing to a
|
| // chrome-extension:// URL. The URL is listed in the extension's
|
| // web_accessible_resources. Initially the iframe is served from the extension's
|
|
|