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

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: 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 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 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 // TODO(kenrb): Observing shouldn't be necessary when we sort out 617 // TODO(kenrb): Observing shouldn't be necessary when we sort out
618 // WasShown and WasHidden, separating page-level visibility from 618 // WasShown and WasHidden, separating page-level visibility from
619 // frame-level visibility. 619 // frame-level visibility.
620 render_frame->render_widget_->RegisterRenderFrame(render_frame); 620 render_frame->render_widget_->RegisterRenderFrame(render_frame);
621 } 621 }
622 622
623 render_frame->Initialize(); 623 render_frame->Initialize();
624 } 624 }
625 625
626 // static 626 // static
627 const RenderFrame* RenderFrame::FromWebFrame(const blink::WebFrame* web_frame) {
628 return RenderFrameImpl::FromWebFrame(web_frame);
629 }
630
631 // static
627 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { 632 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) {
628 return RenderFrameImpl::FromWebFrame(web_frame); 633 return const_cast<RenderFrame*>(RenderFrame::FromWebFrame(
634 static_cast<const blink::WebFrame*>(web_frame)));
629 } 635 }
630 636
631 // static 637 // static
632 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { 638 const RenderFrameImpl* RenderFrameImpl::FromWebFrame(
633 FrameMap::iterator iter = g_frame_map.Get().find(web_frame); 639 const blink::WebFrame* web_frame) {
640 const auto& const_frame_map = const_cast<const FrameMap&>(g_frame_map.Get());
641 FrameMap::const_iterator iter =
642 const_frame_map.find(const_cast<blink::WebFrame*>(web_frame));
634 if (iter != g_frame_map.Get().end()) 643 if (iter != g_frame_map.Get().end())
635 return iter->second; 644 return iter->second;
636 return NULL; 645 return NULL;
637 } 646 }
638 647
639 // static 648 // static
649 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) {
650 return const_cast<RenderFrameImpl*>(RenderFrameImpl::FromWebFrame(
651 static_cast<const blink::WebFrame*>(web_frame)));
652 }
653
654 // static
640 void RenderFrameImpl::InstallCreateHook( 655 void RenderFrameImpl::InstallCreateHook(
641 CreateRenderFrameImplFunction create_render_frame_impl) { 656 CreateRenderFrameImplFunction create_render_frame_impl) {
642 CHECK(!g_create_render_frame_impl); 657 CHECK(!g_create_render_frame_impl);
643 g_create_render_frame_impl = create_render_frame_impl; 658 g_create_render_frame_impl = create_render_frame_impl;
644 } 659 }
645 660
646 // static 661 // static
647 blink::WebFrame* RenderFrameImpl::ResolveOpener(int opener_frame_routing_id, 662 blink::WebFrame* RenderFrameImpl::ResolveOpener(int opener_frame_routing_id,
648 int* opener_view_routing_id) { 663 int* opener_view_routing_id) {
649 if (opener_view_routing_id) 664 if (opener_view_routing_id)
(...skipping 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1859 if (BrowserPluginManager::Get()) 1874 if (BrowserPluginManager::Get())
1860 BrowserPluginManager::Get()->DidCommitCompositorFrame(GetRoutingID()); 1875 BrowserPluginManager::Get()->DidCommitCompositorFrame(GetRoutingID());
1861 FOR_EACH_OBSERVER( 1876 FOR_EACH_OBSERVER(
1862 RenderFrameObserver, observers_, DidCommitCompositorFrame()); 1877 RenderFrameObserver, observers_, DidCommitCompositorFrame());
1863 } 1878 }
1864 1879
1865 RenderView* RenderFrameImpl::GetRenderView() { 1880 RenderView* RenderFrameImpl::GetRenderView() {
1866 return render_view_.get(); 1881 return render_view_.get();
1867 } 1882 }
1868 1883
1869 int RenderFrameImpl::GetRoutingID() { 1884 int RenderFrameImpl::GetRoutingID() const {
1870 return routing_id_; 1885 return routing_id_;
1871 } 1886 }
1872 1887
1873 blink::WebLocalFrame* RenderFrameImpl::GetWebFrame() { 1888 blink::WebLocalFrame* RenderFrameImpl::GetWebFrame() {
1874 DCHECK(frame_); 1889 DCHECK(frame_);
1875 return frame_; 1890 return frame_;
1876 } 1891 }
1877 1892
1878 WebElement RenderFrameImpl::GetFocusedElement() const { 1893 WebElement RenderFrameImpl::GetFocusedElement() const {
1879 WebDocument doc = frame_->document(); 1894 WebDocument doc = frame_->document();
(...skipping 2007 matching lines...) Expand 10 before | Expand all | Expand 10 after
3887 3902
3888 void RenderFrameImpl::DidPause(WebMediaPlayer* player) { 3903 void RenderFrameImpl::DidPause(WebMediaPlayer* player) {
3889 Send(new FrameHostMsg_MediaPausedNotification( 3904 Send(new FrameHostMsg_MediaPausedNotification(
3890 routing_id_, reinterpret_cast<int64>(player))); 3905 routing_id_, reinterpret_cast<int64>(player)));
3891 } 3906 }
3892 3907
3893 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) { 3908 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) {
3894 DidPause(player); 3909 DidPause(player);
3895 } 3910 }
3896 3911
3897 void RenderFrameImpl::didSerializeDataForFrame( 3912 void RenderFrameImpl::writeHtmlFragment(const WebCString& data) {
3898 const WebURL& frame_url, 3913 Send(new FrameHostMsg_SerializedHtmlFragment(routing_id_, data));
3899 const WebCString& data, 3914 }
3900 WebPageSerializerClient::PageSerializationStatus status) { 3915
3901 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse( 3916 void RenderFrameImpl::writeLocalPathForSubFrame(const WebFrame& subframe) {
3902 routing_id_, frame_url, data.data(), static_cast<int32>(status))); 3917 int subframe_routing_id;
3918 if (subframe.isWebRemoteFrame()) {
3919 subframe_routing_id =
3920 RenderFrameProxy::FromWebFrame(&subframe)->routing_id();
3921 } else {
3922 DCHECK(subframe.isWebLocalFrame());
3923 subframe_routing_id = RenderFrame::FromWebFrame(&subframe)->GetRoutingID();
3924 }
3925
3926 Send(new FrameHostMsg_SerializedLocalPathForSubFrame(routing_id_,
3927 subframe_routing_id));
3928 }
3929
3930 void RenderFrameImpl::writeLocalPathForSavableResource(
3931 const WebURL& savable_resource_url) {
3932 Send(new FrameHostMsg_SerializedLocalPathForSavableResource(
3933 routing_id_, savable_resource_url));
3934 }
3935
3936 void RenderFrameImpl::endOfFrame() {
3937 Send(new FrameHostMsg_SerializedEndOfFrame(routing_id_));
3903 } 3938 }
3904 3939
3905 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { 3940 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
3906 observers_.AddObserver(observer); 3941 observers_.AddObserver(observer);
3907 } 3942 }
3908 3943
3909 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) { 3944 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
3910 observer->RenderFrameGone(); 3945 observer->RenderFrameGone();
3911 observers_.RemoveObserver(observer); 3946 observers_.RemoveObserver(observer);
3912 } 3947 }
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
4446 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size()); 4481 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size());
4447 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) { 4482 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) {
4448 referrers_list.push_back( 4483 referrers_list.push_back(
4449 Referrer(referrer_urls_list[i], referrer_policies_list[i])); 4484 Referrer(referrer_urls_list[i], referrer_policies_list[i]));
4450 } 4485 }
4451 4486
4452 Send(new FrameHostMsg_SavableResourceLinksResponse( 4487 Send(new FrameHostMsg_SavableResourceLinksResponse(
4453 routing_id_, frame_->document().url(), resources_list, referrers_list)); 4488 routing_id_, frame_->document().url(), resources_list, referrers_list));
4454 } 4489 }
4455 4490
4456 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks( 4491 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(), 4492 WebPageSerializer::serialize(GetWebFrame(),
4473 this, // WebPageSerializerClient. 4493 this); // WebPageSerializerClient.
4474 weburl_links, webstring_paths,
4475 local_directory_path.AsUTF16Unsafe());
4476 } 4494 }
4477 4495
4478 void RenderFrameImpl::OpenURL(WebFrame* frame, 4496 void RenderFrameImpl::OpenURL(WebFrame* frame,
4479 const GURL& url, 4497 const GURL& url,
4480 const Referrer& referrer, 4498 const Referrer& referrer,
4481 WebNavigationPolicy policy) { 4499 WebNavigationPolicy policy) {
4482 DCHECK_EQ(frame_, frame); 4500 DCHECK_EQ(frame_, frame);
4483 4501
4484 FrameHostMsg_OpenURL_Params params; 4502 FrameHostMsg_OpenURL_Params params;
4485 params.url = url; 4503 params.url = url;
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
5173 mojo::ServiceProviderPtr service_provider; 5191 mojo::ServiceProviderPtr service_provider;
5174 mojo::URLRequestPtr request(mojo::URLRequest::New()); 5192 mojo::URLRequestPtr request(mojo::URLRequest::New());
5175 request->url = mojo::String::From(url); 5193 request->url = mojo::String::From(url);
5176 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), 5194 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider),
5177 nullptr, nullptr, 5195 nullptr, nullptr,
5178 base::Bind(&OnGotContentHandlerID)); 5196 base::Bind(&OnGotContentHandlerID));
5179 return service_provider.Pass(); 5197 return service_provider.Pass();
5180 } 5198 }
5181 5199
5182 } // namespace content 5200 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698