| // Copyright 2017 the Chromium Embedded Framework Authors. Portions copyright |
| // 2013 The Chromium Authors. All rights reserved. Use of this source code is |
| // governed by a BSD-style license that can be found in the LICENSE file. |
| |
| #ifndef CEF_LIBCEF_BROWSER_EXTENSIONS_EXTENSION_BACKGROUND_HOST_H_ |
| #define CEF_LIBCEF_BROWSER_EXTENSIONS_EXTENSION_BACKGROUND_HOST_H_ |
| |
| #include <memory> |
| |
| #include "base/callback_forward.h" |
| #include "base/macros.h" |
| #include "extensions/browser/extension_host.h" |
| |
| class CefBrowserHostImpl; |
| |
| namespace content { |
| class WebContents; |
| } // namespace content |
| |
| namespace extensions { |
| |
| // The ExtensionHost for a background page. This is a thin wrapper around the |
| // ExtensionHost base class to support CEF-specific constructor. Object lifespan |
| // is managed by ProcessManager. |
| class CefExtensionBackgroundHost : public ExtensionHost { |
| public: |
| CefExtensionBackgroundHost(CefBrowserHostImpl* browser, |
| base::OnceClosure deleted_callback, |
| const Extension* extension, |
| content::BrowserContext* browser_context, |
| content::WebContents* host_contents, |
| const GURL& url, |
| ViewType host_type); |
| ~CefExtensionBackgroundHost() override; |
| |
| // content::WebContentsDelegate methods: |
| bool ShouldTransferNavigation(bool is_main_frame_navigation) override; |
| |
| private: |
| // Callback that will be executed on host deletion. |
| base::OnceClosure deleted_callback_; |
| |
| DISALLOW_COPY_AND_ASSIGN(CefExtensionBackgroundHost); |
| }; |
| |
| } // namespace extensions |
| |
| #endif // CEF_LIBCEF_BROWSER_EXTENSIONS_EXTENSION_BACKGROUND_HOST_H_ |