Home | History | Annotate | Download | only in renderer
      1 // Copyright (c) 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_RENDERER_PREFETCH_HELPER_H_
      6 #define CHROME_RENDERER_PREFETCH_HELPER_H_
      7 
      8 #include <set>
      9 
     10 #include "content/public/renderer/render_frame_observer.h"
     11 #include "third_party/WebKit/public/platform/WebURLLoader.h"
     12 #include "third_party/WebKit/public/platform/WebURLLoaderClient.h"
     13 #include "url/gurl.h"
     14 
     15 namespace prefetch {
     16 
     17 // Helper class initiating prefetches on behalf of a RenderFrame.
     18 class PrefetchHelper : public content::RenderFrameObserver,
     19                        public blink::WebURLLoaderClient {
     20  public:
     21   explicit PrefetchHelper(content::RenderFrame* render_frame);
     22   virtual ~PrefetchHelper();
     23 
     24   // blink::WebURLLoaderClient implementation
     25   virtual void didFinishLoading(blink::WebURLLoader* loader,
     26                                 double finishTime,
     27                                 int64_t totalEncodedDataLength) OVERRIDE;
     28   virtual void didFail(blink::WebURLLoader* loader,
     29                        const blink::WebURLError& error) OVERRIDE;
     30 
     31  private:
     32   // RenderViewObserver implementation
     33   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
     34 
     35   void OnPrefetch(const GURL& url);
     36 
     37   std::set<blink::WebURLLoader*> loader_set_;
     38 
     39   DISALLOW_COPY_AND_ASSIGN(PrefetchHelper);
     40 };
     41 
     42 }  // namespace prefetch
     43 
     44 #endif  // CHROME_RENDERER_PREFETCH_HELPER_H_
     45