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

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: Self-review. 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 607 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 // TODO(kenrb): Observing shouldn't be necessary when we sort out 618 // TODO(kenrb): Observing shouldn't be necessary when we sort out
619 // WasShown and WasHidden, separating page-level visibility from 619 // WasShown and WasHidden, separating page-level visibility from
620 // frame-level visibility. 620 // frame-level visibility.
621 render_frame->render_widget_->RegisterRenderFrame(render_frame); 621 render_frame->render_widget_->RegisterRenderFrame(render_frame);
622 } 622 }
623 623
624 render_frame->Initialize(); 624 render_frame->Initialize();
625 } 625 }
626 626
627 // static 627 // static
628 const RenderFrame* RenderFrame::FromWebFrame(const blink::WebFrame* web_frame) {
629 return RenderFrameImpl::FromWebFrame(web_frame);
630 }
631
632 // static
628 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { 633 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) {
629 return RenderFrameImpl::FromWebFrame(web_frame); 634 return const_cast<RenderFrame*>(RenderFrame::FromWebFrame(
635 static_cast<const blink::WebFrame*>(web_frame)));
630 } 636 }
631 637
632 // static 638 // static
633 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { 639 const RenderFrameImpl* RenderFrameImpl::FromWebFrame(
634 FrameMap::iterator iter = g_frame_map.Get().find(web_frame); 640 const blink::WebFrame* web_frame) {
641 const auto& const_frame_map = const_cast<const FrameMap&>(g_frame_map.Get());
642 FrameMap::const_iterator iter =
643 const_frame_map.find(const_cast<blink::WebFrame*>(web_frame));
635 if (iter != g_frame_map.Get().end()) 644 if (iter != g_frame_map.Get().end())
636 return iter->second; 645 return iter->second;
637 return NULL; 646 return NULL;
638 } 647 }
639 648
640 // static 649 // static
650 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) {
651 return const_cast<RenderFrameImpl*>(RenderFrameImpl::FromWebFrame(
652 static_cast<const blink::WebFrame*>(web_frame)));
653 }
654
655 // static
641 void RenderFrameImpl::InstallCreateHook( 656 void RenderFrameImpl::InstallCreateHook(
642 CreateRenderFrameImplFunction create_render_frame_impl) { 657 CreateRenderFrameImplFunction create_render_frame_impl) {
643 CHECK(!g_create_render_frame_impl); 658 CHECK(!g_create_render_frame_impl);
644 g_create_render_frame_impl = create_render_frame_impl; 659 g_create_render_frame_impl = create_render_frame_impl;
645 } 660 }
646 661
647 // static 662 // static
648 blink::WebFrame* RenderFrameImpl::ResolveOpener(int opener_frame_routing_id, 663 blink::WebFrame* RenderFrameImpl::ResolveOpener(int opener_frame_routing_id,
649 int* opener_view_routing_id) { 664 int* opener_view_routing_id) {
650 if (opener_view_routing_id) 665 if (opener_view_routing_id)
(...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1865 if (BrowserPluginManager::Get()) 1880 if (BrowserPluginManager::Get())
1866 BrowserPluginManager::Get()->DidCommitCompositorFrame(GetRoutingID()); 1881 BrowserPluginManager::Get()->DidCommitCompositorFrame(GetRoutingID());
1867 FOR_EACH_OBSERVER( 1882 FOR_EACH_OBSERVER(
1868 RenderFrameObserver, observers_, DidCommitCompositorFrame()); 1883 RenderFrameObserver, observers_, DidCommitCompositorFrame());
1869 } 1884 }
1870 1885
1871 RenderView* RenderFrameImpl::GetRenderView() { 1886 RenderView* RenderFrameImpl::GetRenderView() {
1872 return render_view_.get(); 1887 return render_view_.get();
1873 } 1888 }
1874 1889
1875 int RenderFrameImpl::GetRoutingID() { 1890 int RenderFrameImpl::GetRoutingID() const {
1876 return routing_id_; 1891 return routing_id_;
1877 } 1892 }
1878 1893
1879 blink::WebLocalFrame* RenderFrameImpl::GetWebFrame() { 1894 blink::WebLocalFrame* RenderFrameImpl::GetWebFrame() {
1880 DCHECK(frame_); 1895 DCHECK(frame_);
1881 return frame_; 1896 return frame_;
1882 } 1897 }
1883 1898
1884 WebElement RenderFrameImpl::GetFocusedElement() const { 1899 WebElement RenderFrameImpl::GetFocusedElement() const {
1885 WebDocument doc = frame_->document(); 1900 WebDocument doc = frame_->document();
(...skipping 2007 matching lines...) Expand 10 before | Expand all | Expand 10 after
3893 3908
3894 void RenderFrameImpl::DidPause(WebMediaPlayer* player) { 3909 void RenderFrameImpl::DidPause(WebMediaPlayer* player) {
3895 Send(new FrameHostMsg_MediaPausedNotification( 3910 Send(new FrameHostMsg_MediaPausedNotification(
3896 routing_id_, reinterpret_cast<int64>(player))); 3911 routing_id_, reinterpret_cast<int64>(player)));
3897 } 3912 }
3898 3913
3899 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) { 3914 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) {
3900 DidPause(player); 3915 DidPause(player);
3901 } 3916 }
3902 3917
3903 void RenderFrameImpl::didSerializeDataForFrame( 3918 void RenderFrameImpl::writeHtmlFragment(const WebCString& data) {
3904 const WebURL& frame_url, 3919 Send(new FrameHostMsg_SerializedHtmlFragment(routing_id_, data));
3905 const WebCString& data, 3920 }
3906 WebPageSerializerClient::PageSerializationStatus status) { 3921
3907 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse( 3922 void RenderFrameImpl::writeLocalPathForSubFrame(const WebFrame& subframe) {
3908 routing_id_, frame_url, data.data(), static_cast<int32>(status))); 3923 int subframe_routing_id;
3924 if (subframe.isWebRemoteFrame()) {
3925 subframe_routing_id =
3926 RenderFrameProxy::FromWebFrame(&subframe)->routing_id();
3927 } else {
3928 DCHECK(subframe.isWebLocalFrame());
3929 subframe_routing_id = RenderFrame::FromWebFrame(&subframe)->GetRoutingID();
3930 }
3931
3932 Send(new FrameHostMsg_SerializedLocalPathForSubFrame(routing_id_,
3933 subframe_routing_id));
3934 }
3935
3936 void RenderFrameImpl::writeLocalPathForSavableResource(
3937 const WebURL& savable_resource_url) {
3938 Send(new FrameHostMsg_SerializedLocalPathForSavableResource(
3939 routing_id_, savable_resource_url));
3940 }
3941
3942 void RenderFrameImpl::endOfFrame() {
3943 Send(new FrameHostMsg_SerializedEndOfFrame(routing_id_));
3909 } 3944 }
3910 3945
3911 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { 3946 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
3912 observers_.AddObserver(observer); 3947 observers_.AddObserver(observer);
3913 } 3948 }
3914 3949
3915 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) { 3950 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
3916 observer->RenderFrameGone(); 3951 observer->RenderFrameGone();
3917 observers_.RemoveObserver(observer); 3952 observers_.RemoveObserver(observer);
3918 } 3953 }
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
4448 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size()); 4483 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size());
4449 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) { 4484 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) {
4450 referrers_list.push_back( 4485 referrers_list.push_back(
4451 Referrer(referrer_urls_list[i], referrer_policies_list[i])); 4486 Referrer(referrer_urls_list[i], referrer_policies_list[i]));
4452 } 4487 }
4453 4488
4454 Send(new FrameHostMsg_SavableResourceLinksResponse( 4489 Send(new FrameHostMsg_SavableResourceLinksResponse(
4455 routing_id_, frame_->document().url(), resources_list, referrers_list)); 4490 routing_id_, frame_->document().url(), resources_list, referrers_list));
4456 } 4491 }
4457 4492
4458 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks( 4493 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks() {
4459 std::vector<GURL> original_urls,
4460 std::vector<base::FilePath> equivalent_local_paths,
4461 base::FilePath local_directory_path) {
4462 // Only DCHECK, since the message comes from the trusted browser process.
4463 DCHECK(original_urls.size() == equivalent_local_paths.size());
4464
4465 // Convert std::vector of GURLs to WebVector<WebURL>
4466 WebVector<WebURL> weburl_links(original_urls);
4467
4468 // Convert std::vector of base::FilePath to WebVector<WebString>
4469 WebVector<WebString> webstring_paths(equivalent_local_paths.size());
4470 for (size_t i = 0; i < equivalent_local_paths.size(); i++)
4471 webstring_paths[i] = equivalent_local_paths[i].AsUTF16Unsafe();
4472
4473 // Serialize the frame (without recursing into subframes).
4474 WebPageSerializer::serialize(GetWebFrame(), 4494 WebPageSerializer::serialize(GetWebFrame(),
4475 this, // WebPageSerializerClient. 4495 this); // WebPageSerializerClient.
4476 weburl_links, webstring_paths,
4477 local_directory_path.AsUTF16Unsafe());
4478 } 4496 }
4479 4497
4480 void RenderFrameImpl::OpenURL(WebFrame* frame, 4498 void RenderFrameImpl::OpenURL(WebFrame* frame,
4481 const GURL& url, 4499 const GURL& url,
4482 const Referrer& referrer, 4500 const Referrer& referrer,
4483 WebNavigationPolicy policy) { 4501 WebNavigationPolicy policy) {
4484 DCHECK_EQ(frame_, frame); 4502 DCHECK_EQ(frame_, frame);
4485 4503
4486 FrameHostMsg_OpenURL_Params params; 4504 FrameHostMsg_OpenURL_Params params;
4487 params.url = url; 4505 params.url = url;
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
5168 mojo::ServiceProviderPtr service_provider; 5186 mojo::ServiceProviderPtr service_provider;
5169 mojo::URLRequestPtr request(mojo::URLRequest::New()); 5187 mojo::URLRequestPtr request(mojo::URLRequest::New());
5170 request->url = mojo::String::From(url); 5188 request->url = mojo::String::From(url);
5171 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), 5189 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider),
5172 nullptr, nullptr, 5190 nullptr, nullptr,
5173 base::Bind(&OnGotContentHandlerID)); 5191 base::Bind(&OnGotContentHandlerID));
5174 return service_provider.Pass(); 5192 return service_provider.Pass();
5175 } 5193 }
5176 5194
5177 } // namespace content 5195 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698