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

Unified Diff: third_party/WebKit/Source/platform/plugins/PluginData.cpp

Issue 2901353002: Move blink::PluginData, blink::PluginInfo, blink::MimeTypeInfo to oilpan heap. (Closed)
Patch Set: remove some arguments Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/plugins/PluginData.cpp
diff --git a/third_party/WebKit/Source/platform/plugins/PluginData.cpp b/third_party/WebKit/Source/platform/plugins/PluginData.cpp
index 03618f6a3d96275a59c9644759ac3afacf588068..febb01d9302ea3cb375611afd87c6035eb4bf0e0 100644
--- a/third_party/WebKit/Source/platform/plugins/PluginData.cpp
+++ b/third_party/WebKit/Source/platform/plugins/PluginData.cpp
@@ -30,51 +30,100 @@
namespace blink {
-PluginData::PluginData(SecurityOrigin* main_frame_origin)
- : main_frame_origin_(main_frame_origin) {
+// static
+void PluginData::RefreshBrowserSidePluginCache() {
jbroman 2017/05/25 15:27:24 nit: why did this function move up here, far away
lfg 2017/05/25 21:34:42 Done.
+ PluginListBuilder builder(nullptr);
+ Platform::Current()->GetPluginList(true, WebSecurityOrigin::CreateUnique(),
+ &builder);
+}
+
+DEFINE_TRACE(MimeClassInfo) {
jbroman 2017/05/25 15:27:24 nit: put MimeClassInfo::trace next to the other Mi
lfg 2017/05/25 21:34:42 Done.
+ visitor->Trace(plugin_);
+}
+
+DEFINE_TRACE(PluginInfo) {
+ visitor->Trace(mimes_);
+}
+
+DEFINE_TRACE(PluginData) {
+ visitor->Trace(plugins_);
+ visitor->Trace(mimes_);
+}
+
+MimeClassInfo::MimeClassInfo(const String& type,
+ const String& desc,
+ PluginInfo& plugin)
+ : type_(type), desc_(desc), plugin_(&plugin) {}
+
+PluginInfo::PluginInfo(const String& name,
+ const String& file,
+ const String& desc)
+ : name_(name), file_(file), desc_(desc) {}
+
+void PluginInfo::AddMimeType(MimeClassInfo* info) {
+ mimes_.push_back(info);
+}
+
+const MimeClassInfo* PluginInfo::GetMimeClassInfo(size_t index) const {
+ if (index > mimes_.size())
+ return nullptr;
+ return mimes_[index];
+}
+
+const MimeClassInfo* PluginInfo::GetMimeClassInfo(const String& type) const {
+ for (MimeClassInfo* mime : mimes_) {
+ if (mime->Type() == type)
+ return mime;
+ }
+
+ return nullptr;
+}
+
+size_t PluginInfo::GetMimeClassInfoSize() const {
+ return mimes_.size();
+}
+
+void PluginData::UpdatePluginList(SecurityOrigin* main_frame_origin) {
+ main_frame_origin_ = main_frame_origin;
PluginListBuilder builder(&plugins_);
Platform::Current()->GetPluginList(
false, WebSecurityOrigin(main_frame_origin_), &builder);
- for (unsigned i = 0; i < plugins_.size(); ++i) {
- const PluginInfo& plugin = plugins_[i];
- for (unsigned j = 0; j < plugin.mimes.size(); ++j) {
- mimes_.push_back(plugin.mimes[j]);
- mime_plugin_indices_.push_back(i);
- }
+ for (PluginInfo* plugin_info : plugins_) {
+ for (MimeClassInfo* mime_class_info : plugin_info->mimes_)
+ mimes_.push_back(mime_class_info);
}
}
+void PluginData::ResetPluginData() {
+ plugins_.clear();
+ mimes_.clear();
+ main_frame_origin_ = nullptr;
+}
+
bool PluginData::SupportsMimeType(const String& mime_type) const {
- for (unsigned i = 0; i < mimes_.size(); ++i)
- if (mimes_[i].type == mime_type)
+ for (const MimeClassInfo* info : mimes_) {
+ if (info->type_ == mime_type)
return true;
+ }
+
return false;
}
const PluginInfo* PluginData::PluginInfoForMimeType(
const String& mime_type) const {
- for (unsigned i = 0; i < mimes_.size(); ++i) {
- const MimeClassInfo& info = mimes_[i];
-
- if (info.type == mime_type)
- return &plugins_[mime_plugin_indices_[i]];
+ for (const MimeClassInfo* info : mimes_) {
+ if (info->Type() == mime_type)
+ return info->plugin_;
}
- return 0;
+ return nullptr;
}
String PluginData::PluginNameForMimeType(const String& mime_type) const {
jbroman 2017/05/25 15:27:24 This function seems to be dead code.
lfg 2017/05/25 21:34:42 Done.
if (const PluginInfo* info = PluginInfoForMimeType(mime_type))
- return info->name;
+ return info->Name();
return String();
}
-void PluginData::RefreshBrowserSidePluginCache() {
- Vector<PluginInfo> plugins;
- PluginListBuilder builder(&plugins);
- Platform::Current()->GetPluginList(true, WebSecurityOrigin::CreateUnique(),
- &builder);
-}
-
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698