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

Side by Side Diff: content/browser/renderer_host/render_view_host_impl.cc

Issue 23841002: Create a new RenderFrameHost per child frame when --site-per-process is enabled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: notify observers regardless of flag Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/browser/renderer_host/render_view_host_impl.h" 5 #include "content/browser/renderer_host/render_view_host_impl.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 10 matching lines...) Expand all
21 #include "base/strings/string_util.h" 21 #include "base/strings/string_util.h"
22 #include "base/strings/utf_string_conversions.h" 22 #include "base/strings/utf_string_conversions.h"
23 #include "base/time/time.h" 23 #include "base/time/time.h"
24 #include "base/values.h" 24 #include "base/values.h"
25 #include "content/browser/child_process_security_policy_impl.h" 25 #include "content/browser/child_process_security_policy_impl.h"
26 #include "content/browser/cross_site_request_manager.h" 26 #include "content/browser/cross_site_request_manager.h"
27 #include "content/browser/dom_storage/session_storage_namespace_impl.h" 27 #include "content/browser/dom_storage/session_storage_namespace_impl.h"
28 #include "content/browser/gpu/gpu_surface_tracker.h" 28 #include "content/browser/gpu/gpu_surface_tracker.h"
29 #include "content/browser/host_zoom_map_impl.h" 29 #include "content/browser/host_zoom_map_impl.h"
30 #include "content/browser/renderer_host/dip_util.h" 30 #include "content/browser/renderer_host/dip_util.h"
31 #include "content/browser/renderer_host/frame_tree.h"
31 #include "content/browser/renderer_host/render_process_host_impl.h" 32 #include "content/browser/renderer_host/render_process_host_impl.h"
32 #include "content/browser/renderer_host/render_view_host_delegate.h" 33 #include "content/browser/renderer_host/render_view_host_delegate.h"
33 #include "content/common/accessibility_messages.h" 34 #include "content/common/accessibility_messages.h"
34 #include "content/common/browser_plugin/browser_plugin_messages.h" 35 #include "content/common/browser_plugin/browser_plugin_messages.h"
35 #include "content/common/desktop_notification_messages.h" 36 #include "content/common/desktop_notification_messages.h"
36 #include "content/common/drag_messages.h" 37 #include "content/common/drag_messages.h"
37 #include "content/common/input_messages.h" 38 #include "content/common/input_messages.h"
38 #include "content/common/inter_process_time_ticks_converter.h" 39 #include "content/common/inter_process_time_ticks_converter.h"
39 #include "content/common/speech_recognition_messages.h" 40 #include "content/common/speech_recognition_messages.h"
40 #include "content/common/swapped_out_messages.h" 41 #include "content/common/swapped_out_messages.h"
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 are_javascript_messages_suppressed_(false), 178 are_javascript_messages_suppressed_(false),
178 sudden_termination_allowed_(false), 179 sudden_termination_allowed_(false),
179 render_view_termination_status_(base::TERMINATION_STATUS_STILL_RUNNING) { 180 render_view_termination_status_(base::TERMINATION_STATUS_STILL_RUNNING) {
180 DCHECK(instance_.get()); 181 DCHECK(instance_.get());
181 CHECK(delegate_); // http://crbug.com/82827 182 CHECK(delegate_); // http://crbug.com/82827
182 183
183 if (main_frame_routing_id == MSG_ROUTING_NONE) 184 if (main_frame_routing_id == MSG_ROUTING_NONE)
184 main_frame_routing_id = GetProcess()->GetNextRoutingID(); 185 main_frame_routing_id = GetProcess()->GetNextRoutingID();
185 186
186 main_render_frame_host_.reset( 187 main_render_frame_host_.reset(
187 new RenderFrameHostImpl(this, main_frame_routing_id, is_swapped_out_)); 188 new RenderFrameHostImpl(GetProcess(), delegate_->GetFrameTree(),
189 main_frame_routing_id, is_swapped_out_));
188 190
189 GetProcess()->EnableSendQueue(); 191 GetProcess()->EnableSendQueue();
190 192
191 for (size_t i = 0; i < g_created_callbacks.Get().size(); i++) 193 for (size_t i = 0; i < g_created_callbacks.Get().size(); i++)
192 g_created_callbacks.Get().at(i).Run(this); 194 g_created_callbacks.Get().at(i).Run(this);
193 195
194 if (!swapped_out) 196 if (!swapped_out)
195 instance_->increment_active_view_count(); 197 instance_->increment_active_view_count();
196 198
197 #if defined(OS_ANDROID) 199 #if defined(OS_ANDROID)
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 // page ID it might be asked to render. 250 // page ID it might be asked to render.
249 int32 next_page_id = 1; 251 int32 next_page_id = 1;
250 if (max_page_id > -1) 252 if (max_page_id > -1)
251 next_page_id = max_page_id + 1; 253 next_page_id = max_page_id + 1;
252 254
253 ViewMsg_New_Params params; 255 ViewMsg_New_Params params;
254 params.renderer_preferences = 256 params.renderer_preferences =
255 delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext()); 257 delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext());
256 params.web_preferences = delegate_->GetWebkitPrefs(); 258 params.web_preferences = delegate_->GetWebkitPrefs();
257 params.view_id = GetRoutingID(); 259 params.view_id = GetRoutingID();
258 params.main_frame_routing_id = main_render_frame_host_->routing_id(); 260 params.main_frame_routing_id = main_render_frame_host()->routing_id();
259 params.surface_id = surface_id(); 261 params.surface_id = surface_id();
260 params.session_storage_namespace_id = 262 params.session_storage_namespace_id =
261 delegate_->GetSessionStorageNamespace(instance_)->id(); 263 delegate_->GetSessionStorageNamespace(instance_)->id();
262 params.frame_name = frame_name; 264 params.frame_name = frame_name;
263 // Ensure the RenderView sets its opener correctly. 265 // Ensure the RenderView sets its opener correctly.
264 params.opener_route_id = opener_route_id; 266 params.opener_route_id = opener_route_id;
265 params.swapped_out = is_swapped_out_; 267 params.swapped_out = is_swapped_out_;
266 params.hidden = is_hidden(); 268 params.hidden = is_hidden();
267 params.next_page_id = next_page_id; 269 params.next_page_id = next_page_id;
268 GetWebScreenInfo(&params.screen_info); 270 GetWebScreenInfo(&params.screen_info);
(...skipping 1755 matching lines...) Expand 10 before | Expand all | Expand 10 after
2024 params.item_height, 2026 params.item_height,
2025 params.item_font_size, 2027 params.item_font_size,
2026 params.selected_item, 2028 params.selected_item,
2027 params.popup_items, 2029 params.popup_items,
2028 params.right_aligned, 2030 params.right_aligned,
2029 params.allow_multiple_selection); 2031 params.allow_multiple_selection);
2030 } 2032 }
2031 } 2033 }
2032 #endif 2034 #endif
2033 2035
2034 RenderFrameHostImpl* RenderViewHostImpl::main_render_frame_host() const {
2035 DCHECK_EQ(GetProcess(), main_render_frame_host_->GetProcess());
2036 return main_render_frame_host_.get();
2037 }
2038
2039 void RenderViewHostImpl::SetSwappedOut(bool is_swapped_out) { 2036 void RenderViewHostImpl::SetSwappedOut(bool is_swapped_out) {
2040 // We update the number of RenderViews in a SiteInstance when the 2037 // We update the number of RenderViews in a SiteInstance when the
2041 // swapped out status of this RenderView gets flipped. 2038 // swapped out status of this RenderView gets flipped.
2042 if (is_swapped_out_ && !is_swapped_out) 2039 if (is_swapped_out_ && !is_swapped_out)
2043 instance_->increment_active_view_count(); 2040 instance_->increment_active_view_count();
2044 else if (!is_swapped_out_ && is_swapped_out) 2041 else if (!is_swapped_out_ && is_swapped_out)
2045 instance_->decrement_active_view_count(); 2042 instance_->decrement_active_view_count();
2046 2043
2047 is_swapped_out_ = is_swapped_out; 2044 is_swapped_out_ = is_swapped_out;
2048 2045
(...skipping 12 matching lines...) Expand all
2061 2058
2062 const std::vector<base::FilePath>& file_paths = state.GetReferencedFiles(); 2059 const std::vector<base::FilePath>& file_paths = state.GetReferencedFiles();
2063 for (std::vector<base::FilePath>::const_iterator file = file_paths.begin(); 2060 for (std::vector<base::FilePath>::const_iterator file = file_paths.begin();
2064 file != file_paths.end(); ++file) { 2061 file != file_paths.end(); ++file) {
2065 if (!policy->CanReadFile(GetProcess()->GetID(), *file)) 2062 if (!policy->CanReadFile(GetProcess()->GetID(), *file))
2066 return false; 2063 return false;
2067 } 2064 }
2068 return true; 2065 return true;
2069 } 2066 }
2070 2067
2068 void RenderViewHostImpl::AttachToFrameTree() {
2069 FrameTree* frame_tree = delegate_->GetFrameTree();
2070
2071 frame_tree->SwapMainFrame(main_render_frame_host_.get());
2072 if (main_frame_id() != FrameTreeNode::kInvalidFrameId) {
2073 frame_tree->OnFirstNavigationAfterSwap(main_frame_id());
2074 }
2075 }
2076
2071 } // namespace content 2077 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_view_host_impl.h ('k') | content/browser/site_per_process_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698