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