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

Unified Diff: third_party/WebKit/public/web/WebFrameSerializer.h

Issue 1502563004: Save-Page-As-Complete-Html: Each frame links to a distinct local file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no-url-deduping-for-frame-and-adding-save-item-id
Patch Set: Rebasing... Created 4 years, 11 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
« no previous file with comments | « third_party/WebKit/Source/web/tests/WebFrameSerializerTest.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/public/web/WebFrameSerializer.h
diff --git a/third_party/WebKit/public/web/WebFrameSerializer.h b/third_party/WebKit/public/web/WebFrameSerializer.h
index 7776d2c0dc53729eda3326116c5333c69d863238..3bba668ebe81349db0e3bcfc40205763e0c198d6 100644
--- a/third_party/WebKit/public/web/WebFrameSerializer.h
+++ b/third_party/WebKit/public/web/WebFrameSerializer.h
@@ -38,8 +38,6 @@
#include "../platform/WebURL.h"
#include "../platform/WebVector.h"
-#include <utility>
-
namespace blink {
class WebFrameSerializerClient;
@@ -74,7 +72,7 @@ public:
// Format note - the returned string should be of the form "<foo@bar.com>"
// (i.e. the strings should include the angle brackets). The method
// should return null WebString if the frame doesn't have a content-id.
- virtual WebString getContentID(const WebFrame&) = 0;
+ virtual WebString getContentID(WebFrame*) = 0;
};
// Generates and returns MHTML parts for the given frame and the
@@ -98,23 +96,41 @@ public:
// The API below is an older implementation of frame serialization that
// will be removed soon.
+ class LinkRewritingDelegate {
+ public:
+ // Method allowing the delegate control which URLs are written into the
+ // generated html document.
+ //
+ // When URL of the given frame needs to be rewritten, this method should
+ // return true and populate |rewrittenLink| with a desired value of the
+ // html attribute value to be used in place of the original link (i.e.
+ // in place of the original iframe.src or object.data attribute value).
+ //
+ // If no link rewriting is desired, this method should return false.
+ virtual bool rewriteFrameSource(WebFrame*, WebString* rewrittenLink) = 0;
+
+ // Method allowing the delegate control which URLs are written into the
+ // generated html document.
+ //
+ // When the given URL needs to be rewritten, this method should
+ // return true and populate |rewrittenLink| with a desired value of the
+ // html attribute value to be used in place of the original link (i.e.
+ // in place of the original img.src or blockquote.cite attribute value).
+ //
+ // If no link rewriting is desired, this method should return false.
+ virtual bool rewriteLink(const WebURL&, WebString* rewrittenLink) = 0;
+ };
+
// This function will serialize the specified frame to HTML data.
// We have a data buffer to temporary saving generated html data. We will
// sequentially call WebFrameSerializerClient once the data buffer is full.
//
- // Return false means if no data has been serialized (i.e. because
+ // False is returned if no data has been serialized (i.e. because
// the target frame didn't have a valid url).
- //
- // The parameter frame specifies which frame need to be serialized.
- // The parameter client specifies the pointer of interface
- // WebFrameSerializerClient providing a sink interface to receive the
- // individual chunks of data to be saved.
- // The parameter urlsToLocalPaths contains a mapping between original URLs
- // of saved resources and corresponding local file paths.
BLINK_EXPORT static bool serialize(
WebLocalFrame*,
WebFrameSerializerClient*,
- const WebVector<std::pair<WebURL, WebString>>& urlsToLocalPaths);
+ LinkRewritingDelegate*);
// FIXME: The following are here for unit testing purposes. Consider
// changing the unit tests instead.
« no previous file with comments | « third_party/WebKit/Source/web/tests/WebFrameSerializerTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698