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.
5 #ifndef CHROME_RENDERER_FRAME_SNIFFER_H_
6 #define CHROME_RENDERER_FRAME_SNIFFER_H_
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "content/public/renderer/render_view_observer.h"
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
{
16 FrameSniffer(content::RenderView
* render_view
,
17 const string16
&unique_frame_name
);
18 virtual ~FrameSniffer();
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
;
27 bool ShouldSniffFrame(WebKit::WebFrame
* frame
);
29 // Name of the frame to be monitored.
30 string16 unique_frame_name_
;
32 DISALLOW_COPY_AND_ASSIGN(FrameSniffer
);
35 #endif // CHROME_RENDERER_FRAME_SNIFFER_H_