Index: chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
index c8bb5cb846996d71e1a2f3b9874a97b00a88bb7e..0a3633f6cb50e2b6f4a827ae6c1bb20ff326eb35 100644 |
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
@@ -256,4 +256,29 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_FullscreenEvents) { |
EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
} |
+// Make sure tabCapture API can be granted for Chrome:// pages. |
+IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, GrantForChromePages) { |
+ ExtensionTestMessageListener before_open_tab("ready1", true); |
+ ASSERT_TRUE(RunExtensionSubtest("tab_capture/experimental", |
+ "active_tab_chrome_pages.html")) << message_; |
+ EXPECT_TRUE(before_open_tab.WaitUntilSatisfied()); |
+ |
+ // Open a tab on a chrome:// page and make sure we can capture. |
+ content::OpenURLParams params(GURL("chrome://version"), content::Referrer(), |
+ NEW_FOREGROUND_TAB, |
+ content::PAGE_TRANSITION_LINK, false); |
+ content::WebContents* web_contents = browser()->OpenURL(params); |
+ ExtensionService* extension_service = |
+ Profile::FromBrowserContext(web_contents->GetBrowserContext()) |
+ ->GetExtensionService(); |
+ extensions::TabHelper::FromWebContents(web_contents) |
+ ->active_tab_permission_granter()->GrantIfRequested( |
+ extension_service->GetExtensionById(kExtensionId, false)); |
+ before_open_tab.Reply(""); |
+ |
+ ResultCatcher catcher; |
+ catcher.RestrictToProfile(browser()->profile()); |
+ EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
+} |
+ |
} // namespace chrome |