1 // Copyright 2020 The Chromium Embedded Framework Authors. 2 // Portions copyright 2012 The Chromium Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 6 #ifndef CEF_LIBCEF_RENDERER_CHROME_CHROME_CONTENT_RENDERER_CLIENT_CEF_ 7 #define CEF_LIBCEF_RENDERER_CHROME_CHROME_CONTENT_RENDERER_CLIENT_CEF_ 8 9 #include <memory> 10 11 #include "base/macros.h" 12 #include "base/memory/scoped_refptr.h" 13 #include "base/single_thread_task_runner.h" 14 #include "chrome/renderer/chrome_content_renderer_client.h" 15 16 class CefBrowserManager; 17 class CefRenderThreadObserver; 18 19 // CEF override of ChromeContentRendererClient. 20 class ChromeContentRendererClientCef : public ChromeContentRendererClient { 21 public: 22 ChromeContentRendererClientCef(); 23 ~ChromeContentRendererClientCef() override; 24 25 // Render thread task runner. render_task_runner()26 base::SingleThreadTaskRunner* render_task_runner() const { 27 return render_task_runner_.get(); 28 } 29 30 // Returns the task runner for the current thread. Returns NULL if the current 31 // thread is not the main render process thread. 32 scoped_refptr<base::SingleThreadTaskRunner> GetCurrentTaskRunner(); 33 34 // ChromeContentRendererClient overrides. 35 void RenderThreadStarted() override; 36 void RenderThreadConnected() override; 37 void RenderFrameCreated(content::RenderFrame* render_frame) override; 38 void RenderViewCreated(content::RenderView* render_view) override; 39 void DevToolsAgentAttached() override; 40 void DevToolsAgentDetached() override; 41 42 private: 43 std::unique_ptr<CefBrowserManager> browser_manager_; 44 45 scoped_refptr<base::SingleThreadTaskRunner> render_task_runner_; 46 std::unique_ptr<CefRenderThreadObserver> observer_; 47 48 DISALLOW_COPY_AND_ASSIGN(ChromeContentRendererClientCef); 49 }; 50 51 #endif // CEF_LIBCEF_RENDERER_CHROME_CHROME_CONTENT_RENDERER_CLIENT_CEF_ 52