FrameFilter can just be an std::function instead
[WebKit-https.git] / Source / WebKit / mac / DOM / WebDOMOperations.mm
index 74c8d99..9e3ece7 100644 (file)
@@ -75,34 +75,6 @@ using namespace JSC;
 
 @end
 
-class WebFrameFilter : public WebCore::FrameFilter {
-public:
-    WebFrameFilter(WebArchiveSubframeFilter filterBlock);
-    ~WebFrameFilter();
-private:
-    virtual bool shouldIncludeSubframe(Frame*) const OVERRIDE;
-
-    WebArchiveSubframeFilter m_filterBlock;
-};
-
-WebFrameFilter::WebFrameFilter(WebArchiveSubframeFilter filterBlock)
-    : m_filterBlock(Block_copy(filterBlock))
-{
-}
-
-WebFrameFilter::~WebFrameFilter()
-{
-    Block_release(m_filterBlock);
-}
-
-bool WebFrameFilter::shouldIncludeSubframe(Frame* frame) const
-{
-    if (!m_filterBlock)
-        return true;
-
-    return m_filterBlock(kit(frame));
-}
-
 @implementation DOMNode (WebDOMNodeOperations)
 
 - (WebArchive *)webArchive
@@ -112,8 +84,11 @@ bool WebFrameFilter::shouldIncludeSubframe(Frame* frame) const
 
 - (WebArchive *)webArchiveByFilteringSubframes:(WebArchiveSubframeFilter)webArchiveSubframeFilter
 {
-    WebFrameFilter filter(webArchiveSubframeFilter);
-    return [[[WebArchive alloc] _initWithCoreLegacyWebArchive:LegacyWebArchive::create(core(self), &filter)] autorelease];
+    WebArchive *webArchive = [[WebArchive alloc] _initWithCoreLegacyWebArchive:LegacyWebArchive::create(core(self), [webArchiveSubframeFilter](Frame& subframe) -> bool {
+        return webArchiveSubframeFilter(kit(&subframe));
+    })];
+
+    return [webArchive autorelease];
 }
 
 @end