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

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: 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.h
diff --git a/third_party/WebKit/Source/platform/plugins/PluginData.h b/third_party/WebKit/Source/platform/plugins/PluginData.h
index cdf3381cedecdba263e42de1ff6766fb4864ec1e..400e7c6cbf93e4bd7fbe5dd374e6a8e37fe076e2 100644
--- a/third_party/WebKit/Source/platform/plugins/PluginData.h
+++ b/third_party/WebKit/Source/platform/plugins/PluginData.h
@@ -21,47 +21,85 @@
#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& Desc() const { return desc_; }
+ const Vector<String>& Extensions() const { return extensions_; }
+ const PluginInfo* Plugin() const { return plugin_; }
+
+ bool operator==(const MimeClassInfo& info) {
jbroman 2017/05/25 15:27:24 Is this operator== needed anymore? It seems like y
lfg 2017/05/25 21:34:42 Removed.
+ return type_ == info.type_ && desc_ == info.desc_ &&
+ extensions_ == info.extensions_;
+ }
+
+ private:
+ friend class PluginData;
+ friend class PluginListBuilder;
+
+ String type_;
+ String desc_;
+ 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();
-struct PluginInfo {
- String name;
- String file;
- String desc;
- Vector<MimeClassInfo> mimes;
+ PluginInfo(const String& name, const String& file, 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& File() const { return file_; }
+ const String& Desc() const { return desc_; }
jbroman 2017/05/25 15:27:24 super-nit: while you're touching this, possible to
lfg 2017/05/25 21:34:42 Done.
+
+ private:
+ friend class MimeClassInfo;
+ friend class PluginData;
+ friend class PluginListBuilder;
+
+ String name_;
+ String file_;
+ String desc_;
+ 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));
- }
+ DECLARE_TRACE();
- const Vector<PluginInfo>& Plugins() const { return plugins_; }
- const Vector<MimeClassInfo>& Mimes() const { return mimes_; }
- const Vector<size_t>& MimePluginIndices() const {
- return mime_plugin_indices_;
- }
+ 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 +109,11 @@ class PLATFORM_EXPORT PluginData : public RefCounted<PluginData> {
static void RefreshBrowserSidePluginCache();
private:
- explicit PluginData(SecurityOrigin* main_frame_origin);
+ PluginData() {}
const PluginInfo* PluginInfoForMimeType(const String& mime_type) const;
- 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_;
tkent 2017/05/25 03:17:30 This member is removable.
lfg 2017/05/25 21:34:42 This is still set in UpdatePluginList, since the p
};

Powered by Google App Engine
This is Rietveld 408576698