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