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

Unified Diff: third_party/WebKit/Source/core/page/PageSerializer.cpp

Issue 1436683002: Making PageSerializer operate on single frames only. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mhtml-removing-unused-code
Patch Set: Rebasing... Created 5 years, 1 month 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/core/page/PageSerializer.cpp
diff --git a/third_party/WebKit/Source/core/page/PageSerializer.cpp b/third_party/WebKit/Source/core/page/PageSerializer.cpp
index ebbf288b0905794522c8bdfb386b9bb048440f2e..027ad0deacbd1777d8f11b428a8cb3a1e6bad793 100644
--- a/third_party/WebKit/Source/core/page/PageSerializer.cpp
+++ b/third_party/WebKit/Source/core/page/PageSerializer.cpp
@@ -190,7 +190,7 @@ void SerializerMarkupAccumulator::appendCustomAttributes(StringBuilder& result,
return;
// We need to give a fake location to blank frames so they can be referenced by the serialized frame.
- url = m_serializer->urlForBlankFrame(toLocalFrame(frame));
+ url = m_serializer->urlForBlankFrame(*toLocalFrame(frame));
appendAttribute(result, element, Attribute(frameOwnerURLAttributeName(frameOwner), AtomicString(url.string())), namespaces);
}
@@ -304,15 +304,10 @@ PageSerializer::PageSerializer(Vector<SerializedResource>* resources, PassOwnPtr
{
}
-void PageSerializer::serialize(Page* page)
+void PageSerializer::serializeFrame(const LocalFrame& frame)
{
- serializeFrame(page->deprecatedLocalMainFrame());
-}
-
-void PageSerializer::serializeFrame(LocalFrame* frame)
-{
- ASSERT(frame->document());
- Document& document = *frame->document();
+ ASSERT(frame.document());
+ Document& document = *frame.document();
KURL url = document.url();
// FIXME: This probably wants isAboutBlankURL? to exclude other about: urls (like about:srcdoc)?
if (!url.isValid() || url.protocolIsAbout()) {
@@ -385,13 +380,6 @@ void PageSerializer::serializeFrame(LocalFrame* frame)
serializeCSSStyleSheet(*sheet, KURL());
}
}
-
- for (Frame* childFrame = frame->tree().firstChild(); childFrame; childFrame = childFrame->tree().nextSibling()) {
- // TODO(lukasza): This causes incomplete MHTML for OOPIFs.
- // (crbug.com/538766)
- if (childFrame->isLocalFrame())
- serializeFrame(toLocalFrame(childFrame));
- }
}
void PageSerializer::serializeCSSStyleSheet(CSSStyleSheet& styleSheet, const KURL& url)
@@ -561,14 +549,14 @@ void PageSerializer::setRewriteURLFolder(const String& rewriteFolder)
m_rewriteFolder = rewriteFolder;
}
-KURL PageSerializer::urlForBlankFrame(LocalFrame* frame)
+KURL PageSerializer::urlForBlankFrame(const LocalFrame& frame)
{
- BlankFrameURLMap::iterator iter = m_blankFrameURLs.find(frame);
+ BlankFrameURLMap::iterator iter = m_blankFrameURLs.find(&frame);
if (iter != m_blankFrameURLs.end())
return iter->value;
String url = "wyciwyg://frame/" + String::number(m_blankFrameCounter++);
KURL fakeURL(ParsedURLString, url);
- m_blankFrameURLs.add(frame, fakeURL);
+ m_blankFrameURLs.add(&frame, fakeURL);
return fakeURL;
}
« no previous file with comments | « third_party/WebKit/Source/core/page/PageSerializer.h ('k') | third_party/WebKit/Source/platform/mhtml/MHTMLArchive.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698