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/memory/scoped_refptr.h" 12 #include "base/task/single_thread_task_runner.h" 13 #include "chrome/renderer/chrome_content_renderer_client.h" 14 15 class CefRenderManager; 16 17 // CEF override of ChromeContentRendererClient. 18 class ChromeContentRendererClientCef : public ChromeContentRendererClient { 19 public: 20 ChromeContentRendererClientCef(); 21 22 ChromeContentRendererClientCef(const ChromeContentRendererClientCef&) = 23 delete; 24 ChromeContentRendererClientCef& operator=( 25 const ChromeContentRendererClientCef&) = delete; 26 27 ~ChromeContentRendererClientCef() override; 28 29 // Render thread task runner. render_task_runner()30 base::SingleThreadTaskRunner* render_task_runner() const { 31 return render_task_runner_.get(); 32 } 33 34 // Returns the task runner for the current thread. Returns NULL if the current 35 // thread is not the main render process thread. 36 scoped_refptr<base::SingleThreadTaskRunner> GetCurrentTaskRunner(); 37 38 // ChromeContentRendererClient overrides. 39 void RenderThreadStarted() override; 40 void RenderThreadConnected() override; 41 void RenderFrameCreated(content::RenderFrame* render_frame) override; 42 void WebViewCreated(blink::WebView* web_view) override; 43 void DevToolsAgentAttached() override; 44 void DevToolsAgentDetached() override; 45 void ExposeInterfacesToBrowser(mojo::BinderMap* binders) override; 46 47 private: 48 std::unique_ptr<CefRenderManager> render_manager_; 49 50 scoped_refptr<base::SingleThreadTaskRunner> render_task_runner_; 51 }; 52 53 #endif // CEF_LIBCEF_RENDERER_CHROME_CHROME_CONTENT_RENDERER_CLIENT_CEF_ 54