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

Side by Side 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: Rebasing... 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 // Returns the routing ID of the RenderFrameImpl or RenderFrameProxy 516 // Returns the routing ID of the RenderFrameImpl or RenderFrameProxy
517 // associated with |web_frame|. 517 // associated with |web_frame|.
518 int GetRoutingIdForFrameOrProxy(WebFrame* web_frame) { 518 int GetRoutingIdForFrameOrProxy(WebFrame* web_frame) {
519 if (!web_frame) 519 if (!web_frame)
520 return MSG_ROUTING_NONE; 520 return MSG_ROUTING_NONE;
521 if (web_frame->isWebRemoteFrame()) 521 if (web_frame->isWebRemoteFrame())
522 return RenderFrameProxy::FromWebFrame(web_frame)->routing_id(); 522 return RenderFrameProxy::FromWebFrame(web_frame)->routing_id();
523 return RenderFrameImpl::FromWebFrame(web_frame)->GetRoutingID(); 523 return RenderFrameImpl::FromWebFrame(web_frame)->GetRoutingID();
524 } 524 }
525 525
526 int GetRoutingIdForFrameOrProxy(const WebFrame* web_frame) {
527 // Const-cast is ok, because we only use |web_frame| to get the frame's
528 // routing id (and this doesn't modify the |web_frame|).
529 return GetRoutingIdForFrameOrProxy(const_cast<WebFrame*>(web_frame));
530 }
531
526 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = 532 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl =
527 nullptr; 533 nullptr;
528 534
529 void OnGotContentHandlerID(uint32_t content_handler_id) {} 535 void OnGotContentHandlerID(uint32_t content_handler_id) {}
530 536
531 } // namespace 537 } // namespace
532 538
533 // static 539 // static
534 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, 540 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view,
535 int32 routing_id) { 541 int32 routing_id) {
(...skipping 3339 matching lines...) Expand 10 before | Expand all | Expand 10 after
3875 3881
3876 void RenderFrameImpl::DidPause(WebMediaPlayer* player) { 3882 void RenderFrameImpl::DidPause(WebMediaPlayer* player) {
3877 Send(new FrameHostMsg_MediaPausedNotification( 3883 Send(new FrameHostMsg_MediaPausedNotification(
3878 routing_id_, reinterpret_cast<int64>(player))); 3884 routing_id_, reinterpret_cast<int64>(player)));
3879 } 3885 }
3880 3886
3881 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) { 3887 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) {
3882 DidPause(player); 3888 DidPause(player);
3883 } 3889 }
3884 3890
3885 void RenderFrameImpl::didSerializeDataForFrame( 3891 void RenderFrameImpl::writeHtmlFragment(const WebCString& data) {
3886 const WebURL& frame_url, 3892 Send(new FrameHostMsg_SerializedHtmlFragment(routing_id_, data));
3887 const WebCString& data, 3893 }
3888 WebPageSerializerClient::PageSerializationStatus status) { 3894
3889 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse( 3895 void RenderFrameImpl::writeLocalPathForSubframe(const WebFrame& subframe) {
3890 routing_id_, frame_url, data.data(), static_cast<int32>(status))); 3896 Send(new FrameHostMsg_SerializedLocalPathForChildFrame(
3897 routing_id_, GetRoutingIdForFrameOrProxy(&subframe)));
3898 }
3899
3900 void RenderFrameImpl::writeLocalPathForSavableResource(
3901 const WebURL& savable_resource_url) {
3902 Send(new FrameHostMsg_SerializedLocalPathForSavableResource(
3903 routing_id_, savable_resource_url));
3904 }
3905
3906 void RenderFrameImpl::endOfFrame() {
3907 Send(new FrameHostMsg_SerializedEndOfFrame(routing_id_));
3891 } 3908 }
3892 3909
3893 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { 3910 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
3894 observers_.AddObserver(observer); 3911 observers_.AddObserver(observer);
3895 } 3912 }
3896 3913
3897 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) { 3914 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
3898 observer->RenderFrameGone(); 3915 observer->RenderFrameGone();
3899 observers_.RemoveObserver(observer); 3916 observers_.RemoveObserver(observer);
3900 } 3917 }
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
4446 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size()); 4463 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size());
4447 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) { 4464 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) {
4448 referrers_list.push_back( 4465 referrers_list.push_back(
4449 Referrer(referrer_urls_list[i], referrer_policies_list[i])); 4466 Referrer(referrer_urls_list[i], referrer_policies_list[i]));
4450 } 4467 }
4451 4468
4452 Send(new FrameHostMsg_SavableResourceLinksResponse( 4469 Send(new FrameHostMsg_SavableResourceLinksResponse(
4453 routing_id_, frame_->document().url(), resources_list, referrers_list)); 4470 routing_id_, frame_->document().url(), resources_list, referrers_list));
4454 } 4471 }
4455 4472
4456 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks( 4473 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks() {
4457 std::vector<GURL> original_urls,
4458 std::vector<base::FilePath> equivalent_local_paths,
4459 base::FilePath local_directory_path) {
4460 // Only DCHECK, since the message comes from the trusted browser process.
4461 DCHECK(original_urls.size() == equivalent_local_paths.size());
4462
4463 // Convert std::vector of GURLs to WebVector<WebURL>
4464 WebVector<WebURL> weburl_links(original_urls);
4465
4466 // Convert std::vector of base::FilePath to WebVector<WebString>
4467 WebVector<WebString> webstring_paths(equivalent_local_paths.size());
4468 for (size_t i = 0; i < equivalent_local_paths.size(); i++)
4469 webstring_paths[i] = equivalent_local_paths[i].AsUTF16Unsafe();
4470
4471 // Serialize the frame (without recursing into subframes).
4472 WebPageSerializer::serialize(GetWebFrame(), 4474 WebPageSerializer::serialize(GetWebFrame(),
4473 this, // WebPageSerializerClient. 4475 this); // WebPageSerializerClient.
4474 weburl_links, webstring_paths,
4475 local_directory_path.AsUTF16Unsafe());
4476 } 4476 }
4477 4477
4478 void RenderFrameImpl::OpenURL(WebFrame* frame, 4478 void RenderFrameImpl::OpenURL(WebFrame* frame,
4479 const GURL& url, 4479 const GURL& url,
4480 const Referrer& referrer, 4480 const Referrer& referrer,
4481 WebNavigationPolicy policy) { 4481 WebNavigationPolicy policy) {
4482 DCHECK_EQ(frame_, frame); 4482 DCHECK_EQ(frame_, frame);
4483 4483
4484 FrameHostMsg_OpenURL_Params params; 4484 FrameHostMsg_OpenURL_Params params;
4485 params.url = url; 4485 params.url = url;
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after
5191 mojo::ServiceProviderPtr service_provider(21); 5191 mojo::ServiceProviderPtr service_provider(21);
5192 mojo::URLRequestPtr request(mojo::URLRequest::New()); 5192 mojo::URLRequestPtr request(mojo::URLRequest::New());
5193 request->url = mojo::String::From(url); 5193 request->url = mojo::String::From(url);
5194 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), 5194 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider),
5195 nullptr, nullptr, 5195 nullptr, nullptr,
5196 base::Bind(&OnGotContentHandlerID)); 5196 base::Bind(&OnGotContentHandlerID));
5197 return service_provider.Pass(); 5197 return service_provider.Pass();
5198 } 5198 }
5199 5199
5200 } // namespace content 5200 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698