| 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 public: | 169 public: |
| 170 explicit ForwardingFilter(IPC::Sender* dest, | 170 explicit ForwardingFilter(IPC::Sender* dest, |
| 171 ResourceContext* resource_context) | 171 ResourceContext* resource_context) |
| 172 : ResourceMessageFilter( | 172 : ResourceMessageFilter( |
| 173 ChildProcessHostImpl::GenerateChildProcessUniqueId(), | 173 ChildProcessHostImpl::GenerateChildProcessUniqueId(), |
| 174 PROCESS_TYPE_RENDERER, NULL, NULL, NULL, | 174 PROCESS_TYPE_RENDERER, NULL, NULL, NULL, |
| 175 base::Bind(&ForwardingFilter::GetContexts, | 175 base::Bind(&ForwardingFilter::GetContexts, |
| 176 base::Unretained(this))), | 176 base::Unretained(this))), |
| 177 dest_(dest), | 177 dest_(dest), |
| 178 resource_context_(resource_context) { | 178 resource_context_(resource_context) { |
| 179 OnChannelConnected(base::GetCurrentProcId()); | 179 set_peer_pid_for_testing(base::GetCurrentProcId()); |
| 180 } | 180 } |
| 181 | 181 |
| 182 // ResourceMessageFilter override | 182 // ResourceMessageFilter override |
| 183 virtual bool Send(IPC::Message* msg) OVERRIDE { | 183 virtual bool Send(IPC::Message* msg) OVERRIDE { |
| 184 if (!dest_) | 184 if (!dest_) |
| 185 return false; | 185 return false; |
| 186 return dest_->Send(msg); | 186 return dest_->Send(msg); |
| 187 } | 187 } |
| 188 | 188 |
| 189 ResourceContext* resource_context() { return resource_context_; } | 189 ResourceContext* resource_context() { return resource_context_; } |
| (...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1797 first_request_msg, first_filter.get(), &msg_was_ok); | 1797 first_request_msg, first_filter.get(), &msg_was_ok); |
| 1798 base::MessageLoop::current()->RunUntilIdle(); | 1798 base::MessageLoop::current()->RunUntilIdle(); |
| 1799 } | 1799 } |
| 1800 // The first filter is now deleted, as if the child process died. | 1800 // The first filter is now deleted, as if the child process died. |
| 1801 | 1801 |
| 1802 // Restore. | 1802 // Restore. |
| 1803 SetBrowserClientForTesting(old_client); | 1803 SetBrowserClientForTesting(old_client); |
| 1804 | 1804 |
| 1805 // Make sure we don't hold onto the ResourceMessageFilter after it is deleted. | 1805 // Make sure we don't hold onto the ResourceMessageFilter after it is deleted. |
| 1806 GlobalRequestID first_global_request_id(first_child_id, request_id); | 1806 GlobalRequestID first_global_request_id(first_child_id, request_id); |
| 1807 const ResourceRequestInfoImpl* info = ResourceRequestInfoImpl::ForRequest( | |
| 1808 host_.GetURLRequest(first_global_request_id)); | |
| 1809 EXPECT_FALSE(info->filter()); | |
| 1810 | 1807 |
| 1811 // This second filter is used to emulate a second process. | 1808 // This second filter is used to emulate a second process. |
| 1812 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( | 1809 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( |
| 1813 this, browser_context_->GetResourceContext()); | 1810 this, browser_context_->GetResourceContext()); |
| 1814 | 1811 |
| 1815 int new_render_view_id = 1; | 1812 int new_render_view_id = 1; |
| 1816 int new_request_id = 2; | 1813 int new_request_id = 2; |
| 1817 | 1814 |
| 1818 const std::string kResponseBody = "hello world"; | 1815 const std::string kResponseBody = "hello world"; |
| 1819 SetResponse("HTTP/1.1 200 OK\n" | 1816 SetResponse("HTTP/1.1 200 OK\n" |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2089 } | 2086 } |
| 2090 | 2087 |
| 2091 base::MessageLoop::current()->RunUntilIdle(); | 2088 base::MessageLoop::current()->RunUntilIdle(); |
| 2092 | 2089 |
| 2093 msgs.clear(); | 2090 msgs.clear(); |
| 2094 accum_.GetClassifiedMessages(&msgs); | 2091 accum_.GetClassifiedMessages(&msgs); |
| 2095 } | 2092 } |
| 2096 } | 2093 } |
| 2097 | 2094 |
| 2098 } // namespace content | 2095 } // namespace content |
| OLD | NEW |