Index: chrome/browser/extensions/extension_dom_clipboard_apitest.cc |
diff --git a/chrome/browser/extensions/extension_dom_clipboard_apitest.cc b/chrome/browser/extensions/extension_dom_clipboard_apitest.cc |
index 21c32dc8551d15bd72f90460de3eea3cc3106a5e..b15822e3c92c04150e0d29e07318100f2f39c1a0 100644 |
--- a/chrome/browser/extensions/extension_dom_clipboard_apitest.cc |
+++ b/chrome/browser/extensions/extension_dom_clipboard_apitest.cc |
@@ -21,6 +21,8 @@ class ClipboardApiTest : public ExtensionApiTest { |
const std::string& launch_page); |
bool ExecuteCopyInSelectedTab(bool* result); |
bool ExecutePasteInSelectedTab(bool* result); |
+ bool ExecuteCopyInIframeInSelectedTab(bool* result); |
+ bool ExecutePasteInIframeInSelectedTab(bool* result); |
private: |
bool ExecuteScriptInSelectedTab(const std::string& script, bool* result); |
@@ -67,6 +69,24 @@ bool ClipboardApiTest::ExecutePasteInSelectedTab(bool* result) { |
return ExecuteScriptInSelectedTab(kScript, result); |
} |
+bool ClipboardApiTest::ExecuteCopyInIframeInSelectedTab(bool* result) { |
+ const char kScript[] = |
+ "var ifr = document.createElement('iframe');\n" |
+ "document.body.appendChild(ifr);\n" |
+ "window.domAutomationController.send(" |
+ "ifr.contentDocument.execCommand('copy'));"; |
+ return ExecuteScriptInSelectedTab(kScript, result); |
+} |
+ |
+bool ClipboardApiTest::ExecutePasteInIframeInSelectedTab(bool* result) { |
+ const char kScript[] = |
+ "var ifr = document.createElement('iframe');\n" |
+ "document.body.appendChild(ifr);\n" |
+ "window.domAutomationController.send(" |
+ "ifr.contentDocument.execCommand('paste'));"; |
+ return ExecuteScriptInSelectedTab(kScript, result); |
+} |
+ |
bool ClipboardApiTest::ExecuteScriptInSelectedTab(const std::string& script, |
bool* result) { |
if (!content::ExecuteScriptAndExtractBool( |
@@ -100,6 +120,10 @@ IN_PROC_BROWSER_TEST_F(ClipboardApiTest, HostedApp) { |
EXPECT_TRUE(result); |
ASSERT_TRUE(ExecutePasteInSelectedTab(&result)) << message_; |
EXPECT_TRUE(result); |
+ ASSERT_TRUE(ExecuteCopyInIframeInSelectedTab(&result)) << message_; |
+ EXPECT_TRUE(result); |
+ ASSERT_TRUE(ExecutePasteInIframeInSelectedTab(&result)) << message_; |
+ EXPECT_TRUE(result); |
} |
IN_PROC_BROWSER_TEST_F(ClipboardApiTest, HostedAppNoPermission) { |
@@ -111,5 +135,9 @@ IN_PROC_BROWSER_TEST_F(ClipboardApiTest, HostedAppNoPermission) { |
EXPECT_FALSE(result); |
ASSERT_TRUE(ExecutePasteInSelectedTab(&result)) << message_; |
EXPECT_FALSE(result); |
+ ASSERT_TRUE(ExecuteCopyInIframeInSelectedTab(&result)) << message_; |
+ EXPECT_FALSE(result); |
+ ASSERT_TRUE(ExecutePasteInIframeInSelectedTab(&result)) << message_; |
+ EXPECT_FALSE(result); |
} |