diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-26 17:18:14 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-26 17:18:14 +0000 |
commit | 5fd9834def74734fe62be06ad9914d0656534837 (patch) | |
tree | 8b0eee1c27c7ba550141b7a7a9b8ca1b7fab54b1 /chrome/browser/renderer_host/resource_dispatcher_host.cc | |
parent | 16f89d074dd62b9850adfc988c02e385da465124 (diff) | |
download | chromium_src-5fd9834def74734fe62be06ad9914d0656534837.zip chromium_src-5fd9834def74734fe62be06ad9914d0656534837.tar.gz chromium_src-5fd9834def74734fe62be06ad9914d0656534837.tar.bz2 |
Re-try r24372 - Delay request loading until all user scripts that request
depends on are ready.
UMR should be fixed after setting new appcache variable.
BUG=no
TEST=no
Review URL: http://codereview.chromium.org/173482
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24459 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/resource_dispatcher_host.cc')
-rw-r--r-- | chrome/browser/renderer_host/resource_dispatcher_host.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc index 0066ad6..b205fd0 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 |