| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CHROME_BROWSER_RENDERER_HOST_CHROME_RESOURCE_DISPATCHER_HOST_OBSERVER_H_ | |
| 6 #define CHROME_BROWSER_RENDERER_HOST_CHROME_RESOURCE_DISPATCHER_HOST_OBSERVER_H_ | |
| 7 #pragma once | |
| 8 | |
| 9 #include "content/browser/renderer_host/resource_dispatcher_host.h" | |
| 10 | |
| 11 class SafeBrowsingService; | |
| 12 | |
| 13 namespace prerender { | |
| 14 class PrerenderTracker; | |
| 15 } | |
| 16 | |
| 17 // Implements ResourceDispatcherHost::Observer. Currently used by the Prerender | |
| 18 // system to abort requests and add to the load flags when a request begins. | |
| 19 class ChromeResourceDispatcherHostObserver | |
| 20 : public ResourceDispatcherHost::Observer { | |
| 21 public: | |
| 22 // This class does not take ownership of the tracker but merely holds a | |
| 23 // reference to it to avoid accessing g_browser_process. | |
| 24 // Both |resource_dispatcher_host| and |prerender_tracker| must outlive | |
| 25 // |this|. | |
| 26 ChromeResourceDispatcherHostObserver( | |
| 27 ResourceDispatcherHost* resource_dispatcher_host, | |
| 28 prerender::PrerenderTracker* prerender_tracker); | |
| 29 virtual ~ChromeResourceDispatcherHostObserver(); | |
| 30 | |
| 31 // ResourceDispatcherHost::Observer implementation. | |
| 32 virtual bool ShouldBeginRequest( | |
| 33 int child_id, int route_id, | |
| 34 const ResourceHostMsg_Request& request_data, | |
| 35 const content::ResourceContext& resource_context, | |
| 36 const GURL& referrer) OVERRIDE; | |
| 37 virtual void RequestBeginning(ResourceHandler** handler, | |
| 38 net::URLRequest* request, | |
| 39 bool is_subresource, | |
| 40 int child_id, | |
| 41 int route_id) OVERRIDE; | |
| 42 virtual void DownloadStarting(ResourceHandler** handler, | |
| 43 int child_id, | |
| 44 int route_id) OVERRIDE; | |
| 45 virtual bool ShouldDeferStart( | |
| 46 net::URLRequest* request, | |
| 47 const content::ResourceContext& resource_context) OVERRIDE; | |
| 48 virtual bool AcceptSSLClientCertificateRequest( | |
| 49 net::URLRequest* request, | |
| 50 net::SSLCertRequestInfo* cert_request_info) OVERRIDE; | |
| 51 virtual bool AcceptAuthRequest(net::URLRequest* request, | |
| 52 net::AuthChallengeInfo* auth_info) OVERRIDE; | |
| 53 | |
| 54 private: | |
| 55 ResourceHandler* CreateSafeBrowsingResourceHandler( | |
| 56 ResourceHandler* handler, int child_id, int route_id, bool subresource); | |
| 57 | |
| 58 ResourceDispatcherHost* resource_dispatcher_host_; | |
| 59 scoped_refptr<SafeBrowsingService> safe_browsing_; | |
| 60 prerender::PrerenderTracker* prerender_tracker_; | |
| 61 | |
| 62 DISALLOW_COPY_AND_ASSIGN(ChromeResourceDispatcherHostObserver); | |
| 63 }; | |
| 64 | |
| 65 #endif // CHROME_BROWSER_RENDERER_HOST_CHROME_RESOURCE_DISPATCHER_HOST_OBSERVER
_H_ | |
| OLD | NEW |