| Index: chrome/browser/renderer_host/resource_dispatcher_host.cc
|
| diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc
|
| index 0066ad67f8d7dbca7d2c907261b751fea2213feb..b205fd0ddfe8917690365cad0e37d3167f7f0f30 100644
|
| --- a/chrome/browser/renderer_host/resource_dispatcher_host.cc
|
| +++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc
|
| @@ -21,6 +21,7 @@
|
| #include "chrome/browser/download/download_manager.h"
|
| #include "chrome/browser/download/download_request_manager.h"
|
| #include "chrome/browser/download/save_file_manager.h"
|
| +#include "chrome/browser/extensions/user_script_listener.h"
|
| #include "chrome/browser/external_protocol_handler.h"
|
| #include "chrome/browser/in_process_webkit/webkit_thread.h"
|
| #include "chrome/browser/login_prompt.h"
|
| @@ -252,6 +253,8 @@ ResourceDispatcherHost::ResourceDispatcherHost(MessageLoop* io_loop)
|
| download_request_manager_(new DownloadRequestManager(io_loop, ui_loop_)),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(
|
| save_file_manager_(new SaveFileManager(ui_loop_, io_loop, this))),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(user_script_listener_(
|
| + new UserScriptListener(ui_loop_, io_loop, this))),
|
| safe_browsing_(new SafeBrowsingService),
|
| webkit_thread_(new WebKitThread),
|
| request_id_(-1),
|
| @@ -282,6 +285,8 @@ ResourceDispatcherHost::~ResourceDispatcherHost() {
|
| iter != ids.end(); ++iter) {
|
| CancelBlockedRequestsForRoute(iter->first, iter->second);
|
| }
|
| +
|
| + user_script_listener_->OnResourceDispatcherHostGone();
|
| }
|
|
|
| void ResourceDispatcherHost::Initialize() {
|
| @@ -1247,6 +1252,11 @@ void ResourceDispatcherHost::BeginRequestInternal(URLRequest* request) {
|
| // its content should be filtered) and start it itself.
|
| return;
|
| }
|
| + if (!user_script_listener_->ShouldStartRequest(request)) {
|
| + // This request depends on some user scripts that haven't loaded yet. The
|
| + // UserScriptListener will resume the request when they're ready.
|
| + return;
|
| + }
|
| request->Start();
|
|
|
| // Make sure we have the load state monitor running
|
|
|