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

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: nits, remove dead code 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..2511cddc67fd1eb1713bc9653d80a6e3accc0191 100644
--- a/third_party/WebKit/Source/platform/plugins/PluginData.cpp
+++ b/third_party/WebKit/Source/platform/plugins/PluginData.cpp
@@ -30,51 +30,84 @@
namespace blink {
-PluginData::PluginData(SecurityOrigin* main_frame_origin)
- : main_frame_origin_(main_frame_origin) {
- PluginListBuilder builder(&plugins_);
- Platform::Current()->GetPluginList(
- false, WebSecurityOrigin(main_frame_origin_), &builder);
+DEFINE_TRACE(MimeClassInfo) {
+ visitor->Trace(plugin_);
+}
- 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);
- }
- }
+MimeClassInfo::MimeClassInfo(const String& type,
+ const String& description,
+ PluginInfo& plugin)
+ : type_(type), description_(description), plugin_(&plugin) {}
+
+DEFINE_TRACE(PluginInfo) {
+ visitor->Trace(mimes_);
}
-bool PluginData::SupportsMimeType(const String& mime_type) const {
- for (unsigned i = 0; i < mimes_.size(); ++i)
- if (mimes_[i].type == mime_type)
- return true;
- return false;
+PluginInfo::PluginInfo(const String& name,
+ const String& filename,
+ const String& description)
+ : name_(name), filename_(filename), description_(description) {}
+
+void PluginInfo::AddMimeType(MimeClassInfo* info) {
+ mimes_.push_back(info);
}
-const PluginInfo* PluginData::PluginInfoForMimeType(
- const String& mime_type) const {
- for (unsigned i = 0; i < mimes_.size(); ++i) {
- const MimeClassInfo& info = mimes_[i];
+const MimeClassInfo* PluginInfo::GetMimeClassInfo(size_t index) const {
+ if (index > mimes_.size())
+ return nullptr;
+ return mimes_[index];
+}
- if (info.type == mime_type)
- return &plugins_[mime_plugin_indices_[i]];
+const MimeClassInfo* PluginInfo::GetMimeClassInfo(const String& type) const {
+ for (MimeClassInfo* mime : mimes_) {
+ if (mime->Type() == type)
+ return mime;
}
- return 0;
+ return nullptr;
}
-String PluginData::PluginNameForMimeType(const String& mime_type) const {
- if (const PluginInfo* info = PluginInfoForMimeType(mime_type))
- return info->name;
- return String();
+size_t PluginInfo::GetMimeClassInfoSize() const {
+ return mimes_.size();
}
+DEFINE_TRACE(PluginData) {
+ visitor->Trace(plugins_);
+ visitor->Trace(mimes_);
+}
+
+// static
void PluginData::RefreshBrowserSidePluginCache() {
- Vector<PluginInfo> plugins;
- PluginListBuilder builder(&plugins);
+ PluginListBuilder builder(nullptr);
Platform::Current()->GetPluginList(true, WebSecurityOrigin::CreateUnique(),
&builder);
}
+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 (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 (const MimeClassInfo* info : mimes_) {
+ if (info->type_ == mime_type)
+ return true;
+ }
+
+ return false;
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698