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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 1422473004: Vector-of-structs (instead of struct-of-vectors) in "savable resources" IPC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@page-serialization-original-url-yay
Patch Set: Created 5 years, 1 month 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 23 matching lines...) Expand all
34 #include "content/child/web_url_request_util.h" 34 #include "content/child/web_url_request_util.h"
35 #include "content/child/webmessageportchannel_impl.h" 35 #include "content/child/webmessageportchannel_impl.h"
36 #include "content/child/websocket_bridge.h" 36 #include "content/child/websocket_bridge.h"
37 #include "content/child/weburlresponse_extradata_impl.h" 37 #include "content/child/weburlresponse_extradata_impl.h"
38 #include "content/common/accessibility_messages.h" 38 #include "content/common/accessibility_messages.h"
39 #include "content/common/clipboard_messages.h" 39 #include "content/common/clipboard_messages.h"
40 #include "content/common/frame_messages.h" 40 #include "content/common/frame_messages.h"
41 #include "content/common/frame_replication_state.h" 41 #include "content/common/frame_replication_state.h"
42 #include "content/common/input_messages.h" 42 #include "content/common/input_messages.h"
43 #include "content/common/navigation_params.h" 43 #include "content/common/navigation_params.h"
44 #include "content/common/savable_subframe.h"
44 #include "content/common/service_worker/service_worker_types.h" 45 #include "content/common/service_worker/service_worker_types.h"
45 #include "content/common/site_isolation_policy.h" 46 #include "content/common/site_isolation_policy.h"
46 #include "content/common/swapped_out_messages.h" 47 #include "content/common/swapped_out_messages.h"
47 #include "content/common/view_messages.h" 48 #include "content/common/view_messages.h"
48 #include "content/public/common/bindings_policy.h" 49 #include "content/public/common/bindings_policy.h"
49 #include "content/public/common/content_constants.h" 50 #include "content/public/common/content_constants.h"
50 #include "content/public/common/content_switches.h" 51 #include "content/public/common/content_switches.h"
51 #include "content/public/common/context_menu_params.h" 52 #include "content/public/common/context_menu_params.h"
52 #include "content/public/common/isolated_world_ids.h" 53 #include "content/public/common/isolated_world_ids.h"
53 #include "content/public/common/page_state.h" 54 #include "content/public/common/page_state.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 #include "content/renderer/render_thread_impl.h" 102 #include "content/renderer/render_thread_impl.h"
102 #include "content/renderer/render_view_impl.h" 103 #include "content/renderer/render_view_impl.h"
103 #include "content/renderer/render_widget_fullscreen_pepper.h" 104 #include "content/renderer/render_widget_fullscreen_pepper.h"
104 #include "content/renderer/renderer_webapplicationcachehost_impl.h" 105 #include "content/renderer/renderer_webapplicationcachehost_impl.h"
105 #include "content/renderer/renderer_webcolorchooser_impl.h" 106 #include "content/renderer/renderer_webcolorchooser_impl.h"
106 #include "content/renderer/savable_resources.h" 107 #include "content/renderer/savable_resources.h"
107 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" 108 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h"
108 #include "content/renderer/shared_worker_repository.h" 109 #include "content/renderer/shared_worker_repository.h"
109 #include "content/renderer/skia_benchmarking_extension.h" 110 #include "content/renderer/skia_benchmarking_extension.h"
110 #include "content/renderer/stats_collection_controller.h" 111 #include "content/renderer/stats_collection_controller.h"
112 #include "content/renderer/web_frame_utils.h"
111 #include "content/renderer/web_ui_extension.h" 113 #include "content/renderer/web_ui_extension.h"
112 #include "content/renderer/websharedworker_proxy.h" 114 #include "content/renderer/websharedworker_proxy.h"
113 #include "gin/modules/module_registry.h" 115 #include "gin/modules/module_registry.h"
114 #include "media/base/audio_renderer_mixer_input.h" 116 #include "media/base/audio_renderer_mixer_input.h"
115 #include "media/base/media_log.h" 117 #include "media/base/media_log.h"
116 #include "media/blink/webencryptedmediaclient_impl.h" 118 #include "media/blink/webencryptedmediaclient_impl.h"
117 #include "media/blink/webmediaplayer_impl.h" 119 #include "media/blink/webmediaplayer_impl.h"
118 #include "media/renderers/gpu_video_accelerator_factories.h" 120 #include "media/renderers/gpu_video_accelerator_factories.h"
119 #include "mojo/common/url_type_converters.h" 121 #include "mojo/common/url_type_converters.h"
120 #include "net/base/data_url.h" 122 #include "net/base/data_url.h"
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 return media::Context3D(provider->ContextGL(), provider->GrContext()); 521 return media::Context3D(provider->ContextGL(), provider->GrContext());
520 } 522 }
521 #endif 523 #endif
522 524
523 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { 525 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) {
524 return navigation_type == FrameMsg_Navigate_Type::RELOAD || 526 return navigation_type == FrameMsg_Navigate_Type::RELOAD ||
525 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || 527 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE ||
526 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; 528 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL;
527 } 529 }
528 530
529 // Returns the routing ID of the RenderFrameImpl or RenderFrameProxy
530 // associated with |web_frame|.
531 int GetRoutingIdForFrameOrProxy(WebFrame* web_frame) {
532 if (!web_frame)
533 return MSG_ROUTING_NONE;
534 if (web_frame->isWebRemoteFrame())
535 return RenderFrameProxy::FromWebFrame(web_frame)->routing_id();
536 return RenderFrameImpl::FromWebFrame(web_frame)->GetRoutingID();
537 }
538
539 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = 531 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl =
540 nullptr; 532 nullptr;
541 533
542 void OnGotContentHandlerID(uint32_t content_handler_id) {} 534 void OnGotContentHandlerID(uint32_t content_handler_id) {}
543 535
544 } // namespace 536 } // namespace
545 537
546 // static 538 // static
547 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, 539 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view,
548 int32 routing_id) { 540 int32 routing_id) {
(...skipping 3956 matching lines...) Expand 10 before | Expand all | Expand 10 after
4505 return blink::WebNavigationPolicyIgnore; 4497 return blink::WebNavigationPolicyIgnore;
4506 } 4498 }
4507 4499
4508 return info.defaultPolicy; 4500 return info.defaultPolicy;
4509 } 4501 }
4510 4502
4511 void RenderFrameImpl::OnGetSavableResourceLinks() { 4503 void RenderFrameImpl::OnGetSavableResourceLinks() {
4512 std::vector<GURL> resources_list; 4504 std::vector<GURL> resources_list;
4513 std::vector<GURL> referrer_urls_list; 4505 std::vector<GURL> referrer_urls_list;
4514 std::vector<blink::WebReferrerPolicy> referrer_policies_list; 4506 std::vector<blink::WebReferrerPolicy> referrer_policies_list;
4515 std::vector<GURL> subframe_original_urls; 4507 std::vector<SavableSubframe> subframes;
4516 std::vector<blink::WebFrame*> subframes;
4517 SavableResourcesResult result(&resources_list, &referrer_urls_list, 4508 SavableResourcesResult result(&resources_list, &referrer_urls_list,
4518 &referrer_policies_list, 4509 &referrer_policies_list, &subframes);
4519 &subframe_original_urls, &subframes);
4520 4510
4521 if (!GetSavableResourceLinksForFrame( 4511 if (!GetSavableResourceLinksForFrame(
4522 frame_, &result, const_cast<const char**>(GetSavableSchemes()))) { 4512 frame_, &result, const_cast<const char**>(GetSavableSchemes()))) {
4523 Send(new FrameHostMsg_SavableResourceLinksError(routing_id_)); 4513 Send(new FrameHostMsg_SavableResourceLinksError(routing_id_));
4524 return; 4514 return;
4525 } 4515 }
4526 4516
4527 std::vector<Referrer> referrers_list; 4517 std::vector<Referrer> referrers_list;
4528 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size()); 4518 CHECK_EQ(referrer_urls_list.size(), referrer_policies_list.size());
4529 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) { 4519 for (unsigned i = 0; i < referrer_urls_list.size(); ++i) {
4530 referrers_list.push_back( 4520 referrers_list.push_back(
4531 Referrer(referrer_urls_list[i], referrer_policies_list[i])); 4521 Referrer(referrer_urls_list[i], referrer_policies_list[i]));
4532 } 4522 }
4533 4523
4534 std::vector<int> subframe_routing_ids;
4535 for (WebFrame* subframe : subframes) {
4536 subframe_routing_ids.push_back(GetRoutingIdForFrameOrProxy(subframe));
4537 }
4538
4539 DCHECK_EQ(resources_list.size(), referrers_list.size()); 4524 DCHECK_EQ(resources_list.size(), referrers_list.size());
4540 DCHECK_EQ(subframe_original_urls.size(), subframe_routing_ids.size());
4541 Send(new FrameHostMsg_SavableResourceLinksResponse( 4525 Send(new FrameHostMsg_SavableResourceLinksResponse(
4542 routing_id_, resources_list, referrers_list, subframe_original_urls, 4526 routing_id_, resources_list, referrers_list, subframes));
4543 subframe_routing_ids));
4544 } 4527 }
4545 4528
4546 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks( 4529 void RenderFrameImpl::OnGetSerializedHtmlWithLocalLinks(
4547 std::vector<GURL> original_urls, 4530 std::vector<GURL> original_urls,
4548 std::vector<base::FilePath> equivalent_local_paths, 4531 std::vector<base::FilePath> equivalent_local_paths,
4549 base::FilePath local_directory_path) { 4532 base::FilePath local_directory_path) {
4550 // Only DCHECK, since the message comes from the trusted browser process. 4533 // Only DCHECK, since the message comes from the trusted browser process.
4551 DCHECK(original_urls.size() == equivalent_local_paths.size()); 4534 DCHECK(original_urls.size() == equivalent_local_paths.size());
4552 4535
4553 // Convert std::vector of GURLs to WebVector<WebURL> 4536 // Convert std::vector of GURLs to WebVector<WebURL>
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after
5271 mojo::ServiceProviderPtr service_provider; 5254 mojo::ServiceProviderPtr service_provider;
5272 mojo::URLRequestPtr request(mojo::URLRequest::New()); 5255 mojo::URLRequestPtr request(mojo::URLRequest::New());
5273 request->url = mojo::String::From(url); 5256 request->url = mojo::String::From(url);
5274 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), 5257 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider),
5275 nullptr, nullptr, 5258 nullptr, nullptr,
5276 base::Bind(&OnGotContentHandlerID)); 5259 base::Bind(&OnGotContentHandlerID));
5277 return service_provider.Pass(); 5260 return service_provider.Pass();
5278 } 5261 }
5279 5262
5280 } // namespace content 5263 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698