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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 1373573002: ABANDONED: OOPIFs: Moving stitching of local paths from renderer to browser process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@page-serialization-recursive-begone
Patch Set: Removed no longer needed WebKit dependency. Created 5 years, 2 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
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index b2e454f4cdece95127e38118fd56c6f05e9fb887..062a5fe6cf1636f4ceb2bfdce3967751cc396ff8 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -624,19 +624,34 @@ void RenderFrameImpl::CreateFrame(
}
// static
-RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) {
+const RenderFrame* RenderFrame::FromWebFrame(const blink::WebFrame* web_frame) {
return RenderFrameImpl::FromWebFrame(web_frame);
}
// static
-RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) {
- FrameMap::iterator iter = g_frame_map.Get().find(web_frame);
+RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) {
+ return const_cast<RenderFrame*>(RenderFrame::FromWebFrame(
+ static_cast<const blink::WebFrame*>(web_frame)));
+}
+
+// static
+const RenderFrameImpl* RenderFrameImpl::FromWebFrame(
+ const blink::WebFrame* web_frame) {
+ const auto& const_frame_map = const_cast<const FrameMap&>(g_frame_map.Get());
+ FrameMap::const_iterator iter =
+ const_frame_map.find(const_cast<blink::WebFrame*>(web_frame));
if (iter != g_frame_map.Get().end())
return iter->second;
return NULL;
}
// static
+RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) {
+ return const_cast<RenderFrameImpl*>(RenderFrameImpl::FromWebFrame(
+ static_cast<const blink::WebFrame*>(web_frame)));
+}
+
+// static
void RenderFrameImpl::InstallCreateHook(
CreateRenderFrameImplFunction create_render_frame_impl) {
CHECK(!g_create_render_frame_impl);
@@ -1866,7 +1881,7 @@ RenderView* RenderFrameImpl::GetRenderView() {
return render_view_.get();
}
-int RenderFrameImpl::GetRoutingID() {
+int RenderFrameImpl::GetRoutingID() const {
return routing_id_;
}
@@ -3894,12 +3909,32 @@ void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) {
DidPause(player);
}
-void RenderFrameImpl::didSerializeDataForFrame(
- const WebURL& frame_url,
- const WebCString& data,
- WebPageSerializerClient::PageSerializationStatus status) {
- Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse(
- routing_id_, frame_url, data.data(), static_cast<int32>(status)));
+void RenderFrameImpl::writeHtmlFragment(const WebCString& data) {
+ Send(new FrameHostMsg_SerializedHtmlFragment(routing_id_, data));
+}
+
+void RenderFrameImpl::writeLocalPathForSubFrame(const WebFrame& subframe) {
+ int subframe_routing_id;
+ if (subframe.isWebRemoteFrame()) {
+ subframe_routing_id =
+ RenderFrameProxy::FromWebFrame(&subframe)->routing_id();
+ } else {
+ DCHECK(subframe.isWebLocalFrame());
+ subframe_routing_id = RenderFrame::FromWebFrame(&subframe)->GetRoutingID();
+ }
+
+ Send(new FrameHostMsg_SerializedLocalPathForSubFrame(routing_id_,
+ subframe_routing_id));
+}
+
+void RenderFrameImpl::writeLocalPathForSavableResource(
+ const WebURL& savable_resource_url) {
+ Send(new FrameHostMsg_SerializedLocalPathForSavableResource(
+ routing_id_, savable_resource_url));
+}
+
+void RenderFrameImpl::endOfFrame() {
+ Send(new FrameHostMsg_SerializedEndOfFrame(routing_id_));
}
void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
@@ -4453,26 +4488,9 @@ void RenderFrameImpl::OnGetSavableResourceLinks() {
routing_id_, frame_->document().url(), resources_list, referrers_list));
}
-void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks(
- std::vector<GURL> original_urls,
- std::vector<base::FilePath> equivalent_local_paths,
- base::FilePath local_directory_path) {
- // Only DCHECK, since the message comes from the trusted browser process.
- DCHECK(original_urls.size() == equivalent_local_paths.size());
-
- // Convert std::vector of GURLs to WebVector<WebURL>
- WebVector<WebURL> weburl_links(original_urls);
-
- // Convert std::vector of base::FilePath to WebVector<WebString>
- WebVector<WebString> webstring_paths(equivalent_local_paths.size());
- for (size_t i = 0; i < equivalent_local_paths.size(); i++)
- webstring_paths[i] = equivalent_local_paths[i].AsUTF16Unsafe();
-
- // Serialize the frame (without recursing into subframes).
+void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks() {
WebPageSerializer::serialize(GetWebFrame(),
- this, // WebPageSerializerClient.
- weburl_links, webstring_paths,
- local_directory_path.AsUTF16Unsafe());
+ this); // WebPageSerializerClient.
}
void RenderFrameImpl::OpenURL(WebFrame* frame,

Powered by Google App Engine
This is Rietveld 408576698