• 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/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