| OLD | NEW | 
|     1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2011 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/file_path.h" |     7 #include "base/file_path.h" | 
|     8 #include "base/message_loop.h" |     8 #include "base/message_loop.h" | 
|     9 #include "base/process_util.h" |     9 #include "base/process_util.h" | 
|    10 #include "chrome/common/render_messages.h" |    10 #include "chrome/common/render_messages.h" | 
|    11 #include "content/browser/browser_thread.h" |    11 #include "content/browser/browser_thread.h" | 
|    12 #include "content/browser/child_process_security_policy.h" |    12 #include "content/browser/child_process_security_policy.h" | 
 |    13 #include "content/browser/mock_resource_context.h" | 
|    13 #include "content/browser/renderer_host/resource_dispatcher_host.h" |    14 #include "content/browser/renderer_host/resource_dispatcher_host.h" | 
|    14 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h" |    15 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h" | 
|    15 #include "content/browser/renderer_host/resource_handler.h" |    16 #include "content/browser/renderer_host/resource_handler.h" | 
|    16 #include "content/browser/renderer_host/resource_message_filter.h" |    17 #include "content/browser/renderer_host/resource_message_filter.h" | 
|    17 #include "content/common/resource_messages.h" |    18 #include "content/common/resource_messages.h" | 
|    18 #include "content/common/resource_response.h" |    19 #include "content/common/resource_response.h" | 
|    19 #include "net/base/net_errors.h" |    20 #include "net/base/net_errors.h" | 
|    20 #include "net/base/upload_data.h" |    21 #include "net/base/upload_data.h" | 
|    21 #include "net/http/http_util.h" |    22 #include "net/http/http_util.h" | 
|    22 #include "net/url_request/url_request.h" |    23 #include "net/url_request/url_request.h" | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   123  |   124  | 
|   124 // This class forwards the incoming messages to the ResourceDispatcherHostTest. |   125 // This class forwards the incoming messages to the ResourceDispatcherHostTest. | 
|   125 // This is used to emulate different sub-processes, since this filter will |   126 // This is used to emulate different sub-processes, since this filter will | 
|   126 // have a different ID than the original. For the test, we want all the incoming |   127 // have a different ID than the original. For the test, we want all the incoming | 
|   127 // messages to go to the same place, which is why this forwards. |   128 // messages to go to the same place, which is why this forwards. | 
|   128 class ForwardingFilter : public ResourceMessageFilter { |   129 class ForwardingFilter : public ResourceMessageFilter { | 
|   129  public: |   130  public: | 
|   130   explicit ForwardingFilter(IPC::Message::Sender* dest) |   131   explicit ForwardingFilter(IPC::Message::Sender* dest) | 
|   131     : ResourceMessageFilter(ChildProcessInfo::GenerateChildProcessUniqueId(), |   132     : ResourceMessageFilter(ChildProcessInfo::GenerateChildProcessUniqueId(), | 
|   132                             ChildProcessInfo::RENDER_PROCESS, |   133                             ChildProcessInfo::RENDER_PROCESS, | 
 |   134                             content::MockResourceContext::GetInstance(), | 
|   133                             NULL), |   135                             NULL), | 
|   134       dest_(dest) { |   136       dest_(dest) { | 
|   135     OnChannelConnected(base::GetCurrentProcId()); |   137     OnChannelConnected(base::GetCurrentProcId()); | 
|   136   } |   138   } | 
|   137  |   139  | 
|   138   // ResourceMessageFilter override |   140   // ResourceMessageFilter override | 
|   139   virtual bool Send(IPC::Message* msg) { |   141   virtual bool Send(IPC::Message* msg) { | 
|   140     if (!dest_) |   142     if (!dest_) | 
|   141       return false; |   143       return false; | 
|   142     return dest_->Send(msg); |   144     return dest_->Send(msg); | 
|   143   } |   145   } | 
|   144  |   146  | 
|   145  private: |   147  private: | 
|   146   IPC::Message::Sender* dest_; |   148   IPC::Message::Sender* dest_; | 
|   147  |   149  | 
|   148   DISALLOW_COPY_AND_ASSIGN(ForwardingFilter); |   150   DISALLOW_COPY_AND_ASSIGN(ForwardingFilter); | 
|   149 }; |   151 }; | 
|   150  |   152  | 
|   151 class ResourceDispatcherHostTest : public testing::Test, |   153 class ResourceDispatcherHostTest : public testing::Test, | 
|   152                                    public IPC::Message::Sender { |   154                                    public IPC::Message::Sender { | 
|   153  public: |   155  public: | 
|   154   ResourceDispatcherHostTest() |   156   ResourceDispatcherHostTest() | 
|   155       : ALLOW_THIS_IN_INITIALIZER_LIST(filter_(new ForwardingFilter(this))), |   157       : ui_thread_(BrowserThread::UI, &message_loop_), | 
|   156         ui_thread_(BrowserThread::UI, &message_loop_), |  | 
|   157         io_thread_(BrowserThread::IO, &message_loop_), |   158         io_thread_(BrowserThread::IO, &message_loop_), | 
 |   159         ALLOW_THIS_IN_INITIALIZER_LIST(filter_(new ForwardingFilter(this))), | 
|   158         host_(ResourceQueue::DelegateSet()), |   160         host_(ResourceQueue::DelegateSet()), | 
|   159         old_factory_(NULL), |   161         old_factory_(NULL), | 
|   160         resource_type_(ResourceType::SUB_RESOURCE) { |   162         resource_type_(ResourceType::SUB_RESOURCE) { | 
|   161   } |   163   } | 
|   162   // IPC::Message::Sender implementation |   164   // IPC::Message::Sender implementation | 
|   163   virtual bool Send(IPC::Message* msg) { |   165   virtual bool Send(IPC::Message* msg) { | 
|   164     accum_.AddMessage(*msg); |   166     accum_.AddMessage(*msg); | 
|   165     delete msg; |   167     delete msg; | 
|   166     return true; |   168     return true; | 
|   167   } |   169   } | 
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   245     if (test_fixture_->response_headers_.empty()) { |   247     if (test_fixture_->response_headers_.empty()) { | 
|   246       return new net::URLRequestTestJob(request); |   248       return new net::URLRequestTestJob(request); | 
|   247     } else { |   249     } else { | 
|   248       return new net::URLRequestTestJob(request, |   250       return new net::URLRequestTestJob(request, | 
|   249                                         test_fixture_->response_headers_, |   251                                         test_fixture_->response_headers_, | 
|   250                                         test_fixture_->response_data_, |   252                                         test_fixture_->response_data_, | 
|   251                                         false); |   253                                         false); | 
|   252     } |   254     } | 
|   253   } |   255   } | 
|   254  |   256  | 
|   255   scoped_refptr<ForwardingFilter> filter_; |  | 
|   256   MessageLoopForIO message_loop_; |   257   MessageLoopForIO message_loop_; | 
|   257   BrowserThread ui_thread_; |   258   BrowserThread ui_thread_; | 
|   258   BrowserThread io_thread_; |   259   BrowserThread io_thread_; | 
 |   260   scoped_refptr<ForwardingFilter> filter_; | 
|   259   ResourceDispatcherHost host_; |   261   ResourceDispatcherHost host_; | 
|   260   ResourceIPCAccumulator accum_; |   262   ResourceIPCAccumulator accum_; | 
|   261   std::string response_headers_; |   263   std::string response_headers_; | 
|   262   std::string response_data_; |   264   std::string response_data_; | 
|   263   std::string scheme_; |   265   std::string scheme_; | 
|   264   net::URLRequest::ProtocolFactory* old_factory_; |   266   net::URLRequest::ProtocolFactory* old_factory_; | 
|   265   ResourceType::Type resource_type_; |   267   ResourceType::Type resource_type_; | 
|   266   static ResourceDispatcherHostTest* test_fixture_; |   268   static ResourceDispatcherHostTest* test_fixture_; | 
|   267 }; |   269 }; | 
|   268 // Static. |   270 // Static. | 
| (...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1004     const net::URLRequestStatus& status, |  1006     const net::URLRequestStatus& status, | 
|  1005     const std::string& info) { |  1007     const std::string& info) { | 
|  1006     return true; |  1008     return true; | 
|  1007   } |  1009   } | 
|  1008  |  1010  | 
|  1009   void OnRequestClosed() {} |  1011   void OnRequestClosed() {} | 
|  1010  |  1012  | 
|  1011  private: |  1013  private: | 
|  1012   DISALLOW_COPY_AND_ASSIGN(DummyResourceHandler); |  1014   DISALLOW_COPY_AND_ASSIGN(DummyResourceHandler); | 
|  1013 }; |  1015 }; | 
| OLD | NEW |