Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2213)

Unified Diff: content/renderer/browser_plugin/browser_plugin_manager.cc

Issue 11416074: Browser Plugin: Simplified BrowserPluginManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed nits Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/browser_plugin/browser_plugin_manager.cc
diff --git a/content/renderer/browser_plugin/browser_plugin_manager.cc b/content/renderer/browser_plugin/browser_plugin_manager.cc
index 35169ec2c8f61b557b653bc49e4f7876a3fe78cd..4cc34267f413379186962e346a1a49a0f68cfe34 100644
--- a/content/renderer/browser_plugin/browser_plugin_manager.cc
+++ b/content/renderer/browser_plugin/browser_plugin_manager.cc
@@ -8,46 +8,41 @@
#include "base/threading/thread_local.h"
#include "content/public/renderer/render_thread.h"
#include "content/renderer/browser_plugin/browser_plugin.h"
+#include "content/renderer/browser_plugin/browser_plugin_manager_factory.h"
#include "content/renderer/browser_plugin/browser_plugin_manager_impl.h"
namespace content {
-static base::LazyInstance<base::ThreadLocalPointer<
- BrowserPluginManager> > lazy_tls = LAZY_INSTANCE_INITIALIZER;
+// static
+BrowserPluginManagerFactory* BrowserPluginManager::factory_ = NULL;
-BrowserPluginManager* BrowserPluginManager::Get() {
- BrowserPluginManager* manager = lazy_tls.Pointer()->Get();
- if (!manager) {
- manager = new BrowserPluginManagerImpl();
- lazy_tls.Pointer()->Set(manager);
- }
- return manager;
+BrowserPluginManager* BrowserPluginManager::Create(
+ RenderViewImpl* render_view) {
+ if (factory_)
+ return factory_->CreateBrowserPluginManager(render_view);
+ return new BrowserPluginManagerImpl(render_view);
}
-BrowserPluginManager::BrowserPluginManager()
- : browser_plugin_counter_(0) {
- lazy_tls.Pointer()->Set(this);
- RenderThread::Get()->AddObserver(this);
+BrowserPluginManager::BrowserPluginManager(RenderViewImpl* render_view)
+ : RenderViewObserver(render_view),
+ render_view_(render_view->AsWeakPtr()),
+ browser_plugin_counter_(0) {
}
BrowserPluginManager::~BrowserPluginManager() {
- lazy_tls.Pointer()->Set(NULL);
}
void BrowserPluginManager::AddBrowserPlugin(
int instance_id,
BrowserPlugin* browser_plugin) {
- DCHECK(CalledOnValidThread());
instances_.AddWithID(browser_plugin, instance_id);
}
void BrowserPluginManager::RemoveBrowserPlugin(int instance_id) {
- DCHECK(CalledOnValidThread());
instances_.Remove(instance_id);
}
BrowserPlugin* BrowserPluginManager::GetBrowserPlugin(int instance_id) const {
- DCHECK(CalledOnValidThread());
return instances_.Lookup(instance_id);
}

Powered by Google App Engine
This is Rietveld 408576698