Commit 07baf835 authored by arthursonzogni's avatar arthursonzogni Committed by Commit Bot

Add tests about MHTML vs sandbox flags.

Make sure MHTML document works correctly regarding sandbox flags.

Bug: 1041376
Change-Id: I6bc12e7ab5861f51f39af44005f715c603c78e3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2450152
Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: default avatarŁukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: default avatarAlex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814589}
parent 7a21e215
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "mojo/public/cpp/system/simple_watcher.h" #include "mojo/public/cpp/system/simple_watcher.h"
#include "net/base/filename_util.h" #include "net/base/filename_util.h"
#include "net/dns/mock_host_resolver.h" #include "net/dns/mock_host_resolver.h"
#include "services/network/public/cpp/web_sandbox_flags.h"
#include "url/gurl.h" #include "url/gurl.h"
#include "url/url_constants.h" #include "url/url_constants.h"
...@@ -612,4 +613,33 @@ IN_PROC_BROWSER_TEST_F(NavigationMhtmlBrowserTest, ...@@ -612,4 +613,33 @@ IN_PROC_BROWSER_TEST_F(NavigationMhtmlBrowserTest,
EXPECT_TRUE(main_frame_host()->is_mhtml_document()); EXPECT_TRUE(main_frame_host()->is_mhtml_document());
} }
IN_PROC_BROWSER_TEST_F(NavigationMhtmlBrowserTest, SandboxedIframe) {
MhtmlArchive mhtml_archive;
mhtml_archive.AddHtmlDocument(GURL("http://a.com"), "", R"(
<iframe src="http://a.com/unsandboxed.html" ></iframe>
<iframe src="http://a.com/sandboxed.html" sandbox></iframe>
)");
mhtml_archive.AddHtmlDocument(GURL("http://a.com/sandboxed.html"), "");
mhtml_archive.AddHtmlDocument(GURL("http://a.com/unsandboxed.html"), "");
GURL mhtml_url = mhtml_archive.Write("index.mhtml");
EXPECT_TRUE(NavigateToURL(shell(), mhtml_url));
RenderFrameHostImpl* rfh_main = main_frame_host();
ASSERT_EQ(2u, rfh_main->child_count());
RenderFrameHostImpl* rfh_unsandboxed =
rfh_main->child_at(0)->current_frame_host();
RenderFrameHostImpl* rfh_sandboxed =
rfh_main->child_at(1)->current_frame_host();
auto strict_sandbox = network::mojom::WebSandboxFlags::kAll;
auto default_mhtml_sandbox =
~network::mojom::WebSandboxFlags::kPopups &
~network::mojom::WebSandboxFlags::kPropagatesToAuxiliaryBrowsingContexts;
EXPECT_EQ(default_mhtml_sandbox, rfh_main->active_sandbox_flags());
EXPECT_EQ(default_mhtml_sandbox, rfh_unsandboxed->active_sandbox_flags());
EXPECT_EQ(strict_sandbox, rfh_sandboxed->active_sandbox_flags());
}
} // namespace content } // namespace content
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment