Home | History | Annotate | Download | only in supervised_user
      1 // Copyright 2014 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_SUPERVISED_USER_SUPERVISED_USER_RESOURCE_THROTTLE_H_
      6 #define CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_RESOURCE_THROTTLE_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "base/memory/weak_ptr.h"
     10 #include "chrome/browser/supervised_user/supervised_users.h"
     11 #include "content/public/browser/resource_throttle.h"
     12 
     13 class SupervisedUserURLFilter;
     14 
     15 namespace net {
     16 class URLRequest;
     17 }
     18 
     19 class SupervisedUserResourceThrottle : public content::ResourceThrottle {
     20  public:
     21   SupervisedUserResourceThrottle(const net::URLRequest* request,
     22                                  bool is_main_frame,
     23                                  const SupervisedUserURLFilter* url_filter);
     24   virtual ~SupervisedUserResourceThrottle();
     25 
     26   // content::ResourceThrottle implementation:
     27   virtual void WillStartRequest(bool* defer) OVERRIDE;
     28 
     29   virtual void WillRedirectRequest(const GURL& new_url, bool* defer) OVERRIDE;
     30 
     31   virtual const char* GetNameForLogging() const OVERRIDE;
     32 
     33  private:
     34   void ShowInterstitialIfNeeded(bool is_redirect,
     35                                 const GURL& url,
     36                                 bool* defer);
     37   void OnInterstitialResult(bool continue_request);
     38 
     39   const net::URLRequest* request_;
     40   bool is_main_frame_;
     41   const SupervisedUserURLFilter* url_filter_;
     42   base::WeakPtrFactory<SupervisedUserResourceThrottle> weak_ptr_factory_;
     43 
     44   DISALLOW_COPY_AND_ASSIGN(SupervisedUserResourceThrottle);
     45 };
     46 
     47 #endif  // CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_RESOURCE_THROTTLE_H_
     48