| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |