| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/plugin_service_impl.h" | 5 #include "content/browser/plugin_service_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 | 596 |
| 597 void PluginServiceImpl::GetPlugins(const GetPluginsCallback& callback) { | 597 void PluginServiceImpl::GetPlugins(const GetPluginsCallback& callback) { |
| 598 scoped_refptr<base::SingleThreadTaskRunner> target_task_runner( | 598 scoped_refptr<base::SingleThreadTaskRunner> target_task_runner( |
| 599 base::ThreadTaskRunnerHandle::Get()); | 599 base::ThreadTaskRunnerHandle::Get()); |
| 600 | 600 |
| 601 if (LoadPluginListInProcess()) { | 601 if (LoadPluginListInProcess()) { |
| 602 BrowserThread::GetBlockingPool() | 602 BrowserThread::GetBlockingPool() |
| 603 ->PostSequencedWorkerTaskWithShutdownBehavior( | 603 ->PostSequencedWorkerTaskWithShutdownBehavior( |
| 604 plugin_list_token_, FROM_HERE, | 604 plugin_list_token_, FROM_HERE, |
| 605 base::Bind(&PluginServiceImpl::GetPluginsInternal, | 605 base::Bind(&PluginServiceImpl::GetPluginsInternal, |
| 606 base::Unretained(this), target_task_runner, callback), | 606 base::Unretained(this), |
| 607 base::RetainedRef(target_task_runner), callback), |
| 607 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); | 608 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
| 608 return; | 609 return; |
| 609 } | 610 } |
| 610 #if defined(OS_POSIX) | 611 #if defined(OS_POSIX) |
| 611 BrowserThread::PostTask( | 612 BrowserThread::PostTask( |
| 612 BrowserThread::IO, FROM_HERE, | 613 BrowserThread::IO, FROM_HERE, |
| 613 base::Bind(&PluginServiceImpl::GetPluginsOnIOThread, | 614 base::Bind(&PluginServiceImpl::GetPluginsOnIOThread, |
| 614 base::Unretained(this), target_task_runner, callback)); | 615 base::Unretained(this), base::RetainedRef(target_task_runner), |
| 616 callback)); |
| 615 #else | 617 #else |
| 616 NOTREACHED(); | 618 NOTREACHED(); |
| 617 #endif | 619 #endif |
| 618 } | 620 } |
| 619 | 621 |
| 620 void PluginServiceImpl::GetPluginsInternal( | 622 void PluginServiceImpl::GetPluginsInternal( |
| 621 base::SingleThreadTaskRunner* target_task_runner, | 623 base::SingleThreadTaskRunner* target_task_runner, |
| 622 const PluginService::GetPluginsCallback& callback) { | 624 const PluginService::GetPluginsCallback& callback) { |
| 623 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( | 625 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( |
| 624 plugin_list_token_)); | 626 plugin_list_token_)); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 635 const GetPluginsCallback& callback) { | 637 const GetPluginsCallback& callback) { |
| 636 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 638 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 637 | 639 |
| 638 // If we switch back to loading plugins in process, then we need to make | 640 // If we switch back to loading plugins in process, then we need to make |
| 639 // sure g_thread_init() gets called since plugins may call glib at load. | 641 // sure g_thread_init() gets called since plugins may call glib at load. |
| 640 | 642 |
| 641 if (!plugin_loader_.get()) | 643 if (!plugin_loader_.get()) |
| 642 plugin_loader_ = new PluginLoaderPosix; | 644 plugin_loader_ = new PluginLoaderPosix; |
| 643 | 645 |
| 644 plugin_loader_->GetPlugins(base::Bind( | 646 plugin_loader_->GetPlugins(base::Bind( |
| 645 &ForwardCallback, make_scoped_refptr(target_task_runner), callback)); | 647 &ForwardCallback, base::RetainedRef(target_task_runner), callback)); |
| 646 } | 648 } |
| 647 #endif | 649 #endif |
| 648 | 650 |
| 649 #if defined(OS_WIN) | 651 #if defined(OS_WIN) |
| 650 void PluginServiceImpl::OnKeyChanged(base::win::RegKey* key) { | 652 void PluginServiceImpl::OnKeyChanged(base::win::RegKey* key) { |
| 651 key->StartWatching(base::Bind(&PluginServiceImpl::OnKeyChanged, | 653 key->StartWatching(base::Bind(&PluginServiceImpl::OnKeyChanged, |
| 652 base::Unretained(this), | 654 base::Unretained(this), |
| 653 base::Unretained(key))); | 655 base::Unretained(key))); |
| 654 | 656 |
| 655 PluginList::Singleton()->RefreshPlugins(); | 657 PluginList::Singleton()->RefreshPlugins(); |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 869 #endif | 871 #endif |
| 870 | 872 |
| 871 bool PluginServiceImpl::PpapiDevChannelSupported( | 873 bool PluginServiceImpl::PpapiDevChannelSupported( |
| 872 BrowserContext* browser_context, | 874 BrowserContext* browser_context, |
| 873 const GURL& document_url) { | 875 const GURL& document_url) { |
| 874 return GetContentClient()->browser()->IsPluginAllowedToUseDevChannelAPIs( | 876 return GetContentClient()->browser()->IsPluginAllowedToUseDevChannelAPIs( |
| 875 browser_context, document_url); | 877 browser_context, document_url); |
| 876 } | 878 } |
| 877 | 879 |
| 878 } // namespace content | 880 } // namespace content |
| OLD | NEW |