FrameFilter can just be an std::function instead
[WebKit-https.git] / Source / WebCore / loader / archive / cf / LegacyWebArchive.h
index 80e43b9..f670c66 100644 (file)
@@ -30,6 +30,7 @@
 #define LegacyWebArchive_h
 
 #include "Archive.h"
+#include <functional>
 
 namespace WebCore {
 
@@ -37,19 +38,13 @@ class Frame;
 class Node;
 class Range;
 
-class FrameFilter {
-public:
-    virtual ~FrameFilter() { }
-    virtual bool shouldIncludeSubframe(Frame*) const = 0;
-};
-
 class LegacyWebArchive : public Archive {
 public:
     static PassRefPtr<LegacyWebArchive> create();
     static PassRefPtr<LegacyWebArchive> create(SharedBuffer*);
     static PassRefPtr<LegacyWebArchive> create(const URL&, SharedBuffer*);
     static PassRefPtr<LegacyWebArchive> create(PassRefPtr<ArchiveResource> mainResource, Vector<PassRefPtr<ArchiveResource>>& subresources, Vector<PassRefPtr<LegacyWebArchive>>& subframeArchives);
-    static PassRefPtr<LegacyWebArchive> create(Node*, FrameFilter* = 0);
+    static PassRefPtr<LegacyWebArchive> create(Node*, std::function<bool (Frame&)> frameFilter = nullptr);
     static PassRefPtr<LegacyWebArchive> create(Frame*);
     static PassRefPtr<LegacyWebArchive> createFromSelection(Frame*);
     static PassRefPtr<LegacyWebArchive> create(Range*);
@@ -63,7 +58,7 @@ private:
 
     enum MainResourceStatus { Subresource, MainResource };
 
-    static PassRefPtr<LegacyWebArchive> create(const String& markupString, Frame*, const Vector<Node*>& nodes, FrameFilter*);
+    static PassRefPtr<LegacyWebArchive> create(const String& markupString, Frame*, const Vector<Node*>& nodes, std::function<bool (Frame&)> frameFilter);
     static PassRefPtr<ArchiveResource> createResource(CFDictionaryRef);
     static ResourceResponse createResourceResponseFromMacArchivedData(CFDataRef);
     static ResourceResponse createResourceResponseFromPropertyListData(CFDataRef, CFStringRef responseDataType);