Commit 94389d26 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions Cleanup] Remove ExtensionHostDelegate::GetExtensionHostQueue()

All implementations of ExtensionHostDelegate::GetExtensionHostQueue()
returned a singleton instance of an ExtensionHostQueue. Instead of this
piping, introduce ExtensionHostQueue::GetInstance(), which does the same
thing without needing to be implemented by the embedder.

TBR=atwilson@chromium.org (trivial background_contents.cc change)

Bug: 1028334
Change-Id: I339267c2a8193c27bd782b63a8f8cc5e15957be4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1935489
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: default avatarKaran Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#719395}
parent 4ecdf213
...@@ -84,7 +84,7 @@ BackgroundContents::~BackgroundContents() { ...@@ -84,7 +84,7 @@ BackgroundContents::~BackgroundContents() {
for (auto& observer : deferred_start_render_host_observer_list_) for (auto& observer : deferred_start_render_host_observer_list_)
observer.OnDeferredStartRenderHostDestroyed(this); observer.OnDeferredStartRenderHostDestroyed(this);
extension_host_delegate_->GetExtensionHostQueue()->Remove(this); extensions::ExtensionHostQueue::GetInstance().Remove(this);
} }
const GURL& BackgroundContents::GetURL() const { const GURL& BackgroundContents::GetURL() const {
...@@ -93,7 +93,7 @@ const GURL& BackgroundContents::GetURL() const { ...@@ -93,7 +93,7 @@ const GURL& BackgroundContents::GetURL() const {
void BackgroundContents::CreateRenderViewSoon(const GURL& url) { void BackgroundContents::CreateRenderViewSoon(const GURL& url) {
initial_url_ = url; initial_url_ = url;
extension_host_delegate_->GetExtensionHostQueue()->Add(this); extensions::ExtensionHostQueue::GetInstance().Add(this);
} }
void BackgroundContents::CloseContents(WebContents* source) { void BackgroundContents::CloseContents(WebContents* source) {
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <memory> #include <memory>
#include <string> #include <string>
#include "base/no_destructor.h"
#include "chrome/browser/apps/platform_apps/audio_focus_web_contents_observer.h" #include "chrome/browser/apps/platform_apps/audio_focus_web_contents_observer.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
...@@ -20,7 +19,6 @@ ...@@ -20,7 +19,6 @@
#include "components/performance_manager/performance_manager_tab_helper.h" #include "components/performance_manager/performance_manager_tab_helper.h"
#include "components/performance_manager/public/performance_manager.h" #include "components/performance_manager/public/performance_manager.h"
#include "extensions/browser/extension_host.h" #include "extensions/browser/extension_host.h"
#include "extensions/browser/extension_host_queue.h"
#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_system.h"
namespace extensions { namespace extensions {
...@@ -89,11 +87,6 @@ bool ChromeExtensionHostDelegate::CheckMediaAccessPermission( ...@@ -89,11 +87,6 @@ bool ChromeExtensionHostDelegate::CheckMediaAccessPermission(
extension); extension);
} }
ExtensionHostQueue* ChromeExtensionHostDelegate::GetExtensionHostQueue() const {
static base::NoDestructor<ExtensionHostQueue> queue;
return queue.get();
}
content::PictureInPictureResult content::PictureInPictureResult
ChromeExtensionHostDelegate::EnterPictureInPicture( ChromeExtensionHostDelegate::EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
......
...@@ -32,7 +32,6 @@ class ChromeExtensionHostDelegate : public ExtensionHostDelegate { ...@@ -32,7 +32,6 @@ class ChromeExtensionHostDelegate : public ExtensionHostDelegate {
const GURL& security_origin, const GURL& security_origin,
blink::mojom::MediaStreamType type, blink::mojom::MediaStreamType type,
const Extension* extension) override; const Extension* extension) override;
ExtensionHostQueue* GetExtensionHostQueue() const override;
content::PictureInPictureResult EnterPictureInPicture( content::PictureInPictureResult EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
const viz::SurfaceId& surface_id, const viz::SurfaceId& surface_id,
......
...@@ -5,10 +5,8 @@ ...@@ -5,10 +5,8 @@
#include "chromecast/browser/extensions/cast_extension_host_delegate.h" #include "chromecast/browser/extensions/cast_extension_host_delegate.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/no_destructor.h"
#include "chromecast/browser/extensions/cast_extension_web_contents_observer.h" #include "chromecast/browser/extensions/cast_extension_web_contents_observer.h"
#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_delegate.h"
#include "extensions/browser/extension_host_queue.h"
#include "extensions/browser/media_capture_util.h" #include "extensions/browser/media_capture_util.h"
namespace extensions { namespace extensions {
...@@ -58,11 +56,6 @@ bool CastExtensionHostDelegate::CheckMediaAccessPermission( ...@@ -58,11 +56,6 @@ bool CastExtensionHostDelegate::CheckMediaAccessPermission(
return media_capture_util::CheckMediaAccessPermission(type, extension); return media_capture_util::CheckMediaAccessPermission(type, extension);
} }
ExtensionHostQueue* CastExtensionHostDelegate::GetExtensionHostQueue() const {
static base::NoDestructor<ExtensionHostQueue> queue;
return queue.get();
}
content::PictureInPictureResult content::PictureInPictureResult
CastExtensionHostDelegate::EnterPictureInPicture( CastExtensionHostDelegate::EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
......
...@@ -33,7 +33,6 @@ class CastExtensionHostDelegate : public ExtensionHostDelegate { ...@@ -33,7 +33,6 @@ class CastExtensionHostDelegate : public ExtensionHostDelegate {
const GURL& security_origin, const GURL& security_origin,
blink::mojom::MediaStreamType type, blink::mojom::MediaStreamType type,
const Extension* extension) override; const Extension* extension) override;
ExtensionHostQueue* GetExtensionHostQueue() const override;
content::PictureInPictureResult EnterPictureInPicture( content::PictureInPictureResult EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
const viz::SurfaceId& surface_id, const viz::SurfaceId& surface_id,
......
...@@ -108,7 +108,7 @@ ExtensionHost::~ExtensionHost() { ...@@ -108,7 +108,7 @@ ExtensionHost::~ExtensionHost() {
// Remove ourselves from the queue as late as possible (before effectively // Remove ourselves from the queue as late as possible (before effectively
// destroying self, but after everything else) so that queues that are // destroying self, but after everything else) so that queues that are
// monitoring lifetime get a chance to see stop-loading events. // monitoring lifetime get a chance to see stop-loading events.
delegate_->GetExtensionHostQueue()->Remove(this); ExtensionHostQueue::GetInstance().Remove(this);
// Deliberately stop observing |host_contents_| because its destruction // Deliberately stop observing |host_contents_| because its destruction
// events (like DidStopLoading, it turns out) can call back into // events (like DidStopLoading, it turns out) can call back into
...@@ -138,7 +138,7 @@ void ExtensionHost::CreateRenderViewSoon() { ...@@ -138,7 +138,7 @@ void ExtensionHost::CreateRenderViewSoon() {
// to defer. // to defer.
CreateRenderViewNow(); CreateRenderViewNow();
} else { } else {
delegate_->GetExtensionHostQueue()->Add(this); ExtensionHostQueue::GetInstance().Add(this);
} }
} }
......
...@@ -30,7 +30,6 @@ class SurfaceId; ...@@ -30,7 +30,6 @@ class SurfaceId;
namespace extensions { namespace extensions {
class Extension; class Extension;
class ExtensionHost; class ExtensionHost;
class ExtensionHostQueue;
// A delegate to support functionality that cannot exist in the extensions // A delegate to support functionality that cannot exist in the extensions
// module. This is not an inner class of ExtensionHost to allow it to be forward // module. This is not an inner class of ExtensionHost to allow it to be forward
...@@ -75,10 +74,6 @@ class ExtensionHostDelegate { ...@@ -75,10 +74,6 @@ class ExtensionHostDelegate {
blink::mojom::MediaStreamType type, blink::mojom::MediaStreamType type,
const Extension* extension) = 0; const Extension* extension) = 0;
// Returns the ExtensionHostQueue implementation to use for creating
// ExtensionHost renderers.
virtual ExtensionHostQueue* GetExtensionHostQueue() const = 0;
// Notifies the Picture-in-Picture controller that there is a new player // Notifies the Picture-in-Picture controller that there is a new player
// entering Picture-in-Picture. // entering Picture-in-Picture.
// Returns the result of the enter request. // Returns the result of the enter request.
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/location.h" #include "base/location.h"
#include "base/no_destructor.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
...@@ -20,6 +21,12 @@ ExtensionHostQueue::ExtensionHostQueue() : pending_create_(false) {} ...@@ -20,6 +21,12 @@ ExtensionHostQueue::ExtensionHostQueue() : pending_create_(false) {}
ExtensionHostQueue::~ExtensionHostQueue() = default; ExtensionHostQueue::~ExtensionHostQueue() = default;
// static
ExtensionHostQueue& ExtensionHostQueue::GetInstance() {
static base::NoDestructor<ExtensionHostQueue> queue;
return *queue;
}
void ExtensionHostQueue::Add(DeferredStartRenderHost* host) { void ExtensionHostQueue::Add(DeferredStartRenderHost* host) {
queue_.push_back(host); queue_.push_back(host);
PostTask(); PostTask();
......
...@@ -24,6 +24,9 @@ class ExtensionHostQueue { ...@@ -24,6 +24,9 @@ class ExtensionHostQueue {
ExtensionHostQueue(const ExtensionHostQueue& queue) = delete; ExtensionHostQueue(const ExtensionHostQueue& queue) = delete;
ExtensionHostQueue& operator=(const ExtensionHostQueue& queue) = delete; ExtensionHostQueue& operator=(const ExtensionHostQueue& queue) = delete;
// Returns the single global instance of the ExtensionHostQueue.
static ExtensionHostQueue& GetInstance();
// Adds a host to the queue for RenderView creation. // Adds a host to the queue for RenderView creation.
void Add(DeferredStartRenderHost* host); void Add(DeferredStartRenderHost* host);
......
...@@ -4,10 +4,8 @@ ...@@ -4,10 +4,8 @@
#include "extensions/shell/browser/shell_extension_host_delegate.h" #include "extensions/shell/browser/shell_extension_host_delegate.h"
#include "base/lazy_instance.h"
#include "base/logging.h" #include "base/logging.h"
#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_delegate.h"
#include "extensions/browser/extension_host_queue.h"
#include "extensions/browser/media_capture_util.h" #include "extensions/browser/media_capture_util.h"
#include "extensions/shell/browser/shell_extension_web_contents_observer.h" #include "extensions/shell/browser/shell_extension_web_contents_observer.h"
...@@ -65,13 +63,6 @@ bool ShellExtensionHostDelegate::CheckMediaAccessPermission( ...@@ -65,13 +63,6 @@ bool ShellExtensionHostDelegate::CheckMediaAccessPermission(
return true; return true;
} }
static base::LazyInstance<ExtensionHostQueue>::DestructorAtExit g_queue =
LAZY_INSTANCE_INITIALIZER;
ExtensionHostQueue* ShellExtensionHostDelegate::GetExtensionHostQueue() const {
return g_queue.Pointer();
}
content::PictureInPictureResult content::PictureInPictureResult
ShellExtensionHostDelegate::EnterPictureInPicture( ShellExtensionHostDelegate::EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
......
...@@ -33,7 +33,6 @@ class ShellExtensionHostDelegate : public ExtensionHostDelegate { ...@@ -33,7 +33,6 @@ class ShellExtensionHostDelegate : public ExtensionHostDelegate {
const GURL& security_origin, const GURL& security_origin,
blink::mojom::MediaStreamType type, blink::mojom::MediaStreamType type,
const Extension* extension) override; const Extension* extension) override;
ExtensionHostQueue* GetExtensionHostQueue() const override;
content::PictureInPictureResult EnterPictureInPicture( content::PictureInPictureResult EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
const viz::SurfaceId& surface_id, const viz::SurfaceId& surface_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment