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

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

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.h
diff --git a/third_party/WebKit/Source/platform/plugins/PluginData.h b/third_party/WebKit/Source/platform/plugins/PluginData.h
index cdf3381cedecdba263e42de1ff6766fb4864ec1e..6cb520cd5810e3be81def57e2f7fac2b99675b1e 100644
--- a/third_party/WebKit/Source/platform/plugins/PluginData.h
+++ b/third_party/WebKit/Source/platform/plugins/PluginData.h
@@ -21,47 +21,80 @@
#define PluginData_h
#include "platform/PlatformExport.h"
+#include "platform/heap/Handle.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "platform/wtf/Noncopyable.h"
-#include "platform/wtf/RefCounted.h"
#include "platform/wtf/Vector.h"
#include "platform/wtf/text/WTFString.h"
namespace blink {
-struct PluginInfo;
+class PluginInfo;
-struct MimeClassInfo {
- String type;
- String desc;
- Vector<String> extensions;
+class PLATFORM_EXPORT MimeClassInfo final
+ : public GarbageCollectedFinalized<MimeClassInfo> {
+ public:
+ DECLARE_TRACE();
+
+ MimeClassInfo(const String& type, const String& desc, PluginInfo&);
+
+ const String& Type() const { return type_; }
+ const String& Description() const { return description_; }
+ const Vector<String>& Extensions() const { return extensions_; }
+ const PluginInfo* Plugin() const { return plugin_; }
+
+ private:
+ friend class PluginData;
+ friend class PluginListBuilder;
+
+ String type_;
+ String description_;
+ Vector<String> extensions_;
+ Member<PluginInfo> plugin_;
};
-inline bool operator==(const MimeClassInfo& a, const MimeClassInfo& b) {
- return a.type == b.type && a.desc == b.desc && a.extensions == b.extensions;
-}
+class PLATFORM_EXPORT PluginInfo final
+ : public GarbageCollectedFinalized<PluginInfo> {
+ public:
+ DECLARE_TRACE();
+
+ PluginInfo(const String& name, const String& filename, const String& desc);
+
+ void AddMimeType(MimeClassInfo*);
+
+ const MimeClassInfo* GetMimeClassInfo(size_t index) const;
+ const MimeClassInfo* GetMimeClassInfo(const String& type) const;
+ size_t GetMimeClassInfoSize() const;
+
+ const String& Name() const { return name_; }
+ const String& Filename() const { return filename_; }
+ const String& Description() const { return description_; }
-struct PluginInfo {
- String name;
- String file;
- String desc;
- Vector<MimeClassInfo> mimes;
+ private:
+ friend class MimeClassInfo;
+ friend class PluginData;
+ friend class PluginListBuilder;
+
+ String name_;
+ String filename_;
+ String description_;
+ HeapVector<Member<MimeClassInfo>> mimes_;
};
-class PLATFORM_EXPORT PluginData : public RefCounted<PluginData> {
+class PLATFORM_EXPORT PluginData final
+ : public GarbageCollectedFinalized<PluginData> {
WTF_MAKE_NONCOPYABLE(PluginData);
public:
- static PassRefPtr<PluginData> Create(SecurityOrigin* main_frame_origin) {
- return AdoptRef(new PluginData(main_frame_origin));
- }
-
- const Vector<PluginInfo>& Plugins() const { return plugins_; }
- const Vector<MimeClassInfo>& Mimes() const { return mimes_; }
- const Vector<size_t>& MimePluginIndices() const {
- return mime_plugin_indices_;
- }
+ DECLARE_TRACE();
+
+ static PluginData* Create() { return new PluginData(); }
+
+ const HeapVector<Member<PluginInfo>>& Plugins() const { return plugins_; }
+ const HeapVector<Member<MimeClassInfo>>& Mimes() const { return mimes_; }
const SecurityOrigin* Origin() const { return main_frame_origin_.Get(); }
+ void UpdatePluginList(SecurityOrigin* main_frame_origin);
+ void ResetPluginData();
bool SupportsMimeType(const String& mime_type) const;
String PluginNameForMimeType(const String& mime_type) const;
@@ -71,12 +104,10 @@ class PLATFORM_EXPORT PluginData : public RefCounted<PluginData> {
static void RefreshBrowserSidePluginCache();
private:
- explicit PluginData(SecurityOrigin* main_frame_origin);
- const PluginInfo* PluginInfoForMimeType(const String& mime_type) const;
+ PluginData() {}
- Vector<PluginInfo> plugins_;
- Vector<MimeClassInfo> mimes_;
- Vector<size_t> mime_plugin_indices_;
+ HeapVector<Member<PluginInfo>> plugins_;
+ HeapVector<Member<MimeClassInfo>> mimes_;
RefPtr<SecurityOrigin> main_frame_origin_;
};

Powered by Google App Engine
This is Rietveld 408576698