diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-06 05:57:17 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-06 05:57:17 +0000 |
commit | b377fe8556b64260c99171c1ed9101bd2d621568 (patch) | |
tree | fa94c4eacc4cafa6d7ec9710bedb178828716d3e /chrome/browser/automation/url_request_automation_job.h | |
parent | dce516200cbac6100f0268c5f036e8dbddf4f8ac (diff) | |
download | chromium_src-b377fe8556b64260c99171c1ed9101bd2d621568.zip chromium_src-b377fe8556b64260c99171c1ed9101bd2d621568.tar.gz chromium_src-b377fe8556b64260c99171c1ed9101bd2d621568.tar.bz2 |
The URLRequestAutomationJob object which needs to route HTTP requests to the host browser for
ChromeFrame's host network stack implementation can register itself as a protocol factory for http/https
instead of using the mechanism to intercept HTTP requests which Gears and the App cache use. This ensures
that Gears works partially with ChromeFrame.
The protocol factory mechanism also has the same limitation as the intercept mechanism, i.e. it does not
support chaining.
Partial fix for http://code.google.com/p/chromium/issues/detail?id=23992
Bug=23992
Review URL: http://codereview.chromium.org/365009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31208 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/url_request_automation_job.h')
-rw-r--r-- | chrome/browser/automation/url_request_automation_job.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/chrome/browser/automation/url_request_automation_job.h b/chrome/browser/automation/url_request_automation_job.h index ff20c15..d4ed0f0 100644 --- a/chrome/browser/automation/url_request_automation_job.h +++ b/chrome/browser/automation/url_request_automation_job.h @@ -8,6 +8,7 @@ #include "chrome/common/ref_counted_util.h" #include "net/http/http_response_headers.h" +#include "net/url_request/url_request.h" #include "net/url_request/url_request_job.h" class AutomationResourceMessageFilter; @@ -24,8 +25,10 @@ class URLRequestAutomationJob : public URLRequestJob { URLRequestAutomationJob( URLRequest* request, int tab, AutomationResourceMessageFilter* filter); - // Register an interceptor for URL requests. - static bool InitializeInterceptor(); + // Register our factory for HTTP/HTTPs requests. + static bool EnsureProtocolFactoryRegistered(); + + static URLRequest::ProtocolFactory Factory; // URLRequestJob methods. virtual void Start(); @@ -75,6 +78,12 @@ class URLRequestAutomationJob : public URLRequestJob { static int instance_count_; + static bool is_protocol_factory_registered_; + // The previous HTTP/HTTPs protocol factories. We pass unhandled + // requests off to these factories + static URLRequest::ProtocolFactory* old_http_factory_; + static URLRequest::ProtocolFactory* old_https_factory_; + DISALLOW_COPY_AND_ASSIGN(URLRequestAutomationJob); }; |