DescriptionOOPIFs: Transitioning MHTML generation from view-oriented to frame-oriented.
IPC Messages
============
This CL replaces the following view-oriented IPC messages:
IPC_MESSAGE_ROUTED2(ViewMsg_SavePageAsMHTML,
int /* job_id */,
IPC::PlatformFileForTransit /* file handle */)
IPC_MESSAGE_CONTROL2(ViewHostMsg_SavedPageAsMHTML,
int /* job_id */,
int64 /* size of the MHTML file, -1 if error */)
with the following frame-oriented IPC messages:
IPC_MESSAGE_ROUTED5(FrameMsg_SerializeAsMHTML,
int /* job_id (used to match responses to requests) */,
IPC::PlatformFileForTransit /* destination file */,
std::string /* mhtml boundary marker */,
FrameRoutingIdToContentIdMap,
bool /* is last frame */)
IPC_MESSAGE_ROUTED3(FrameHostMsg_SerializeAsMHTMLResponse,
int /* job_id (used to match responses to requests) */,
bool /* true if success, false if error */,
std::string /* mhtml boundary marker that was used */)
This allows MHTML generation to work, even when some frames are in separate
processes.
Supporting changes
==================
This CL builds on top of recent CLs below:
crrev.com/1436683002 - Making PageSerializer operate on single frames only.
crrev.com/1441553002 - Generating CIDs in Blink during MHTML serialization.
crrev.com/1415463007 - Exposing more granular methods from MHTMLArchive.
crrev.com/1380963006 - MHTMLGenerator preparation for per-frame serialization.
Handling of renderer IPC messages was moved from MHTMLGenerator into
RenderFrameImpl. Handling of browser IPC responses was moved from
RenderProcessHostImpl into RenderFrameHostImpl.
MHTMLGenerationManager now handles walking over all the frames and
asking the renderer process to serialize them into MHTML (sequentially -
one frame at a time). MHTMLGenerationManager also handles generating
ContentIDs for all frames.
BUG=538766
Committed: https://crrev.com/70b79c8c617e3e73e4df9e7e548ff675a9886a6b
Cr-Commit-Position: refs/heads/master@{#365082}
Patch Set 1 : #Patch Set 2 : Still just a draft... #Patch Set 3 : Still not ready... #Patch Set 4 : Rebasing... #Patch Set 5 : Rebasing... #Patch Set 6 : Rebasing... #Patch Set 7 : Rebasing... #Patch Set 8 : Rebasing... #
Total comments: 7
Patch Set 9 : Addressed first part of CR feedback from Nick. #Patch Set 10 : Moved MHTML boundary marker generation into the browser. #
Total comments: 17
Patch Set 11 : Addressed CR feedback from dcheng@. #
Total comments: 12
Patch Set 12 : Addressed 2nd round of CR feedback from dcheng@. #Patch Set 13 : Removing remaining references to the removed generateMHTMLBoundary method. #Patch Set 14 : Rebasing... #
Total comments: 24
Patch Set 15 : Addressed feedback from Randy. #Patch Set 16 : Rebasing... #Patch Set 17 : Removing base::File::FLAG_APPEND. #Patch Set 18 : Moving "using" declaration under a singly-included section of frame_messges.h #Dependent Patchsets: Messages
Total messages: 38 (15 generated)
|