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

Side by Side Diff: content/browser/plugin_service_impl.cc

Issue 23828007: Check whether the Pepper CDM is available before adding the key system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase only Created 7 years, 3 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 ComputePepperPluginList(&ppapi_plugins_); 651 ComputePepperPluginList(&ppapi_plugins_);
652 for (size_t i = 0; i < ppapi_plugins_.size(); ++i) { 652 for (size_t i = 0; i < ppapi_plugins_.size(); ++i) {
653 RegisterInternalPlugin(ppapi_plugins_[i].ToWebPluginInfo(), true); 653 RegisterInternalPlugin(ppapi_plugins_[i].ToWebPluginInfo(), true);
654 } 654 }
655 } 655 }
656 656
657 // There should generally be very few plugins so a brute-force search is fine. 657 // There should generally be very few plugins so a brute-force search is fine.
658 PepperPluginInfo* PluginServiceImpl::GetRegisteredPpapiPluginInfo( 658 PepperPluginInfo* PluginServiceImpl::GetRegisteredPpapiPluginInfo(
659 const base::FilePath& plugin_path) { 659 const base::FilePath& plugin_path) {
660 PepperPluginInfo* info = NULL; 660 PepperPluginInfo* info = NULL;
661 for (size_t i = 0; i < ppapi_plugins_.size(); i++) { 661 for (size_t i = 0; i < ppapi_plugins_.size(); ++i) {
662 if (ppapi_plugins_[i].path == plugin_path) { 662 if (ppapi_plugins_[i].path == plugin_path) {
663 info = &ppapi_plugins_[i]; 663 info = &ppapi_plugins_[i];
664 break; 664 break;
665 } 665 }
666 } 666 }
667 if (info) 667 if (info)
668 return info; 668 return info;
669 // We did not find the plugin in our list. But wait! the plugin can also 669 // We did not find the plugin in our list. But wait! the plugin can also
670 // be a latecomer, as it happens with pepper flash. This information 670 // be a latecomer, as it happens with pepper flash. This information
671 // can be obtained from the PluginList singleton and we can use it to 671 // can be obtained from the PluginList singleton and we can use it to
672 // construct it and add it to the list. This same deal needs to be done 672 // construct it and add it to the list. This same deal needs to be done
673 // in the renderer side in PepperPluginRegistry. 673 // in the renderer side in PepperPluginRegistry.
674 WebPluginInfo webplugin_info; 674 WebPluginInfo webplugin_info;
675 if (!GetPluginInfoByPath(plugin_path, &webplugin_info)) 675 if (!GetPluginInfoByPath(plugin_path, &webplugin_info))
676 return NULL; 676 return NULL;
677 PepperPluginInfo new_pepper_info; 677 PepperPluginInfo new_pepper_info;
678 if (!MakePepperPluginInfo(webplugin_info, &new_pepper_info)) 678 if (!MakePepperPluginInfo(webplugin_info, &new_pepper_info))
679 return NULL; 679 return NULL;
680 ppapi_plugins_.push_back(new_pepper_info); 680 ppapi_plugins_.push_back(new_pepper_info);
681 return &ppapi_plugins_[ppapi_plugins_.size() - 1]; 681 return &ppapi_plugins_[ppapi_plugins_.size() - 1];
682 } 682 }
683 683
684 bool PluginServiceImpl::IsPepperPluginRegisteredForMimeType(
685 const std::string& mime_type) {
686 for (size_t i = 0; i < ppapi_plugins_.size(); ++i) {
687 const std::vector<WebPluginMimeType>& mime_types =
688 ppapi_plugins_[i].mime_types;
689 for (size_t j = 0; j < mime_types.size(); ++j) {
690 if (mime_types[j].mime_type == mime_type)
691 return true;
692 }
693 }
694
695 return false;
696 }
697
684 #if defined(OS_POSIX) && !defined(OS_OPENBSD) && !defined(OS_ANDROID) 698 #if defined(OS_POSIX) && !defined(OS_OPENBSD) && !defined(OS_ANDROID)
685 // static 699 // static
686 void PluginServiceImpl::RegisterFilePathWatcher(FilePathWatcher* watcher, 700 void PluginServiceImpl::RegisterFilePathWatcher(FilePathWatcher* watcher,
687 const base::FilePath& path) { 701 const base::FilePath& path) {
688 bool result = watcher->Watch(path, false, 702 bool result = watcher->Watch(path, false,
689 base::Bind(&NotifyPluginDirChanged)); 703 base::Bind(&NotifyPluginDirChanged));
690 DCHECK(result); 704 DCHECK(result);
691 } 705 }
692 #endif 706 #endif
693 707
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 window, kPluginVersionAtomProperty, plugin_version); 849 window, kPluginVersionAtomProperty, plugin_version);
836 return true; 850 return true;
837 } 851 }
838 852
839 bool PluginServiceImpl::IsPluginWindow(HWND window) { 853 bool PluginServiceImpl::IsPluginWindow(HWND window) {
840 return gfx::GetClassName(window) == base::string16(kNativeWindowClassName); 854 return gfx::GetClassName(window) == base::string16(kNativeWindowClassName);
841 } 855 }
842 #endif 856 #endif
843 857
844 } // namespace content 858 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698