• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Embedded Framework Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be found
3 // in the LICENSE file.
4 
5 #ifndef LIBCEF_RENDERER_RENDER_FRAME_OBSERVER_H_
6 #define LIBCEF_RENDERER_RENDER_FRAME_OBSERVER_H_
7 
8 #include "content/public/renderer/render_frame_observer.h"
9 
10 namespace content {
11 class RenderFrame;
12 class RenderView;
13 }  // namespace content
14 
15 class CefFrameImpl;
16 
17 class CefRenderFrameObserver : public content::RenderFrameObserver {
18  public:
19   explicit CefRenderFrameObserver(content::RenderFrame* render_frame);
20   ~CefRenderFrameObserver() override;
21 
22   // RenderFrameObserver methods:
23   void DidCommitProvisionalLoad(ui::PageTransition transition) override;
24   void DidFailProvisionalLoad() override;
25   void DidFinishLoad() override;
26   void WillDetach() override;
27   void FocusedElementChanged(const blink::WebElement& element) override;
28   void DraggableRegionsChanged() override;
29   void DidCreateScriptContext(v8::Handle<v8::Context> context,
30                               int world_id) override;
31   void WillReleaseScriptContext(v8::Handle<v8::Context> context,
32                                 int world_id) override;
33   void OnDestruct() override;
34   bool OnMessageReceived(const IPC::Message& message) override;
35 
36   void AttachFrame(CefFrameImpl* frame);
37 
38  private:
39   void OnLoadStart();
40   void OnLoadError();
41 
42   CefFrameImpl* frame_ = nullptr;
43 
44   DISALLOW_COPY_AND_ASSIGN(CefRenderFrameObserver);
45 };
46 
47 #endif  // LIBCEF_RENDERER_RENDER_FRAME_OBSERVER_H_
48