OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
9 #include "content/browser/bad_message.h" | |
9 #include "content/browser/child_process_security_policy_impl.h" | 10 #include "content/browser/child_process_security_policy_impl.h" |
10 #include "content/browser/web_contents/web_contents_impl.h" | 11 #include "content/browser/web_contents/web_contents_impl.h" |
11 #include "content/public/browser/render_process_host.h" | 12 #include "content/public/browser/render_process_host.h" |
12 #include "content/public/common/result_codes.h" | 13 #include "content/public/common/result_codes.h" |
14 #include "content/public/test/browser_test_utils.h" | |
13 #include "content/public/test/content_browser_test.h" | 15 #include "content/public/test/content_browser_test.h" |
14 #include "content/public/test/content_browser_test_utils.h" | 16 #include "content/public/test/content_browser_test_utils.h" |
15 #include "content/shell/browser/shell.h" | 17 #include "content/shell/browser/shell.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
17 | 19 |
18 namespace content { | 20 namespace content { |
19 | 21 |
20 class ChildProcessSecurityPolicyInProcessBrowserTest | 22 class ChildProcessSecurityPolicyInProcessBrowserTest |
21 : public ContentBrowserTest { | 23 : public ContentBrowserTest { |
22 public: | 24 public: |
(...skipping 26 matching lines...) Expand all Loading... | |
49 | 51 |
50 WebContents* web_contents = shell()->web_contents(); | 52 WebContents* web_contents = shell()->web_contents(); |
51 web_contents->GetRenderProcessHost()->Shutdown(RESULT_CODE_KILLED, true); | 53 web_contents->GetRenderProcessHost()->Shutdown(RESULT_CODE_KILLED, true); |
52 | 54 |
53 web_contents->GetController().Reload(ReloadType::NORMAL, true); | 55 web_contents->GetController().Reload(ReloadType::NORMAL, true); |
54 EXPECT_EQ( | 56 EXPECT_EQ( |
55 1U, | 57 1U, |
56 ChildProcessSecurityPolicyImpl::GetInstance()->security_state_.size()); | 58 ChildProcessSecurityPolicyImpl::GetInstance()->security_state_.size()); |
57 } | 59 } |
58 | 60 |
61 IN_PROC_BROWSER_TEST_F(ChildProcessSecurityPolicyInProcessBrowserTest, | |
62 RevokeOnBadMessage) { | |
63 GURL url = GetTestUrl("", "simple_page.html"); | |
64 | |
65 NavigateToURL(shell(), url); | |
66 int child_id = shell()->web_contents()->GetRenderProcessHost()->GetID(); | |
67 base::FilePath file_path = GetTestFilePath("", "simple_page.html"); | |
68 ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile(child_id, | |
69 file_path); | |
70 EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( | |
71 child_id, file_path)); | |
72 | |
73 RenderProcessHostWatcher process_exit_observer( | |
74 shell()->web_contents()->GetRenderProcessHost(), | |
75 RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); | |
76 bad_message::ReceivedBadMessage(child_id, | |
77 bad_message::RFPH_ILLEGAL_UPLOAD_PARAMS); | |
78 process_exit_observer.Wait(); | |
79 EXPECT_FALSE( | |
80 ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile(child_id, | |
Charlie Reis
2017/05/31 17:28:23
This is failing on the bots, but maybe that doesn'
jam
2017/05/31 23:26:15
ok, I'll do this separately since it's a good poin
| |
81 file_path)); | |
82 } | |
83 | |
59 } // namespace content | 84 } // namespace content |
OLD | NEW |