• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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