Home | History | Annotate | Download | only in renderer
      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_RENDERER_FRAME_SNIFFER_H_
      6 #define CHROME_RENDERER_FRAME_SNIFFER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "content/public/renderer/render_view_observer.h"
     11 
     12 // Class which observes events from the frame with specific name and sends IPC
     13 // messages to be handled by RenderViewHostObserver.
     14 class FrameSniffer : public content::RenderViewObserver {
     15  public:
     16   FrameSniffer(content::RenderView* render_view,
     17                const string16 &unique_frame_name);
     18   virtual ~FrameSniffer();
     19 
     20   // Implements RenderViewObserver.
     21   virtual void DidFailProvisionalLoad(
     22       WebKit::WebFrame* frame, const WebKit::WebURLError& error) OVERRIDE;
     23   virtual void DidCommitProvisionalLoad(WebKit::WebFrame* frame,
     24                                         bool is_new_navigation) OVERRIDE;
     25 
     26  private:
     27   bool ShouldSniffFrame(WebKit::WebFrame* frame);
     28 
     29   // Name of the frame to be monitored.
     30   string16 unique_frame_name_;
     31 
     32   DISALLOW_COPY_AND_ASSIGN(FrameSniffer);
     33 };
     34 
     35 #endif  // CHROME_RENDERER_FRAME_SNIFFER_H_
     36