Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1128)

Unified Diff: chrome/browser/apps/guest_view/web_view_browsertest.cc

Issue 2799803002: Add a test for webview using a blob URL while at a webview-accessible resource. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/test/data/extensions/platform_apps/web_view/load_webview_accessible_resource/embedder.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/apps/guest_view/web_view_browsertest.cc
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
index 66c916c6174f8a595f88af43df3aeea77ff9f0a7..267416571f25ddcee810370286caac1ae46232b6 100644
--- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -3318,6 +3318,35 @@ IN_PROC_BROWSER_TEST_P(WebViewTest, ReloadWebviewAccessibleResource) {
EXPECT_EQ(webview_url, web_view_contents->GetLastCommittedURL());
}
+// Tests that a WebView can navigate an iframe to a blob URL that it creates
+// while its main frame is at a WebView accessible resource.
+IN_PROC_BROWSER_TEST_P(WebViewTest, BlobInWebviewAccessibleResource) {
+ TestHelper("testBlobInWebviewAccessibleResource",
+ "web_view/load_webview_accessible_resource", NEEDS_TEST_SERVER);
+
+ content::WebContents* embedder_contents = GetEmbedderWebContents();
+ content::WebContents* web_view_contents =
+ GetGuestViewManager()->GetLastGuestCreated();
+ ASSERT_TRUE(embedder_contents);
+ ASSERT_TRUE(web_view_contents);
+
+ GURL embedder_url(embedder_contents->GetLastCommittedURL());
+ GURL webview_url(embedder_url.GetOrigin().spec() + "assets/foo.html");
+
+ EXPECT_EQ(webview_url, web_view_contents->GetLastCommittedURL());
+
+ content::RenderFrameHost* main_frame = web_view_contents->GetMainFrame();
+ content::RenderFrameHost* blob_frame = ChildFrameAt(main_frame, 0);
+ EXPECT_TRUE(blob_frame->GetLastCommittedURL().SchemeIsBlob());
+
+ std::string result;
+ EXPECT_TRUE(ExecuteScriptAndExtractString(
+ blob_frame,
+ "window.domAutomationController.send(document.body.innerText);",
+ &result));
+ EXPECT_EQ("Blob content", result);
+}
+
// Tests that a WebView cannot load a webview-inaccessible resource. See
// https://crbug.com/640072.
IN_PROC_BROWSER_TEST_P(WebViewTest, LoadWebviewInaccessibleResource) {
« no previous file with comments | « no previous file | chrome/test/data/extensions/platform_apps/web_view/load_webview_accessible_resource/embedder.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698