| 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/browser/frame_host/render_frame_host_impl.h" | 5 #include "content/browser/frame_host/render_frame_host_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/containers/hash_tables.h" | 9 #include "base/containers/hash_tables.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 | 558 |
| 559 BrowserAccessibilityManager* manager = | 559 BrowserAccessibilityManager* manager = |
| 560 parent_frame->browser_accessibility_manager(); | 560 parent_frame->browser_accessibility_manager(); |
| 561 if (!manager) | 561 if (!manager) |
| 562 return NULL; | 562 return NULL; |
| 563 | 563 |
| 564 return manager->GetFromID(parent_node_id); | 564 return manager->GetFromID(parent_node_id); |
| 565 } | 565 } |
| 566 | 566 |
| 567 bool RenderFrameHostImpl::CreateRenderFrame(int parent_routing_id, | 567 bool RenderFrameHostImpl::CreateRenderFrame(int parent_routing_id, |
| 568 int previous_sibling_routing_id, |
| 568 int proxy_routing_id) { | 569 int proxy_routing_id) { |
| 569 TRACE_EVENT0("navigation", "RenderFrameHostImpl::CreateRenderFrame"); | 570 TRACE_EVENT0("navigation", "RenderFrameHostImpl::CreateRenderFrame"); |
| 570 DCHECK(!IsRenderFrameLive()) << "Creating frame twice"; | 571 DCHECK(!IsRenderFrameLive()) << "Creating frame twice"; |
| 571 | 572 |
| 572 // The process may (if we're sharing a process with another host that already | 573 // The process may (if we're sharing a process with another host that already |
| 573 // initialized it) or may not (we have our own process or the old process | 574 // initialized it) or may not (we have our own process or the old process |
| 574 // crashed) have been initialized. Calling Init multiple times will be | 575 // crashed) have been initialized. Calling Init multiple times will be |
| 575 // ignored, so this is safe. | 576 // ignored, so this is safe. |
| 576 if (!GetProcess()->Init()) | 577 if (!GetProcess()->Init()) |
| 577 return false; | 578 return false; |
| 578 | 579 |
| 579 DCHECK(GetProcess()->HasConnection()); | 580 DCHECK(GetProcess()->HasConnection()); |
| 580 | 581 |
| 581 FrameMsg_NewFrame_WidgetParams widget_params; | 582 FrameMsg_NewFrame_Params params; |
| 583 params.routing_id = routing_id_; |
| 584 params.parent_routing_id = parent_routing_id; |
| 585 params.proxy_routing_id = proxy_routing_id; |
| 586 params.previous_sibling_routing_id = previous_sibling_routing_id; |
| 587 params.replication_state = frame_tree_node()->current_replication_state(); |
| 588 |
| 582 if (render_widget_host_) { | 589 if (render_widget_host_) { |
| 583 widget_params.routing_id = render_widget_host_->GetRoutingID(); | 590 params.widget_params.routing_id = render_widget_host_->GetRoutingID(); |
| 584 widget_params.surface_id = render_widget_host_->surface_id(); | 591 params.widget_params.surface_id = render_widget_host_->surface_id(); |
| 585 widget_params.hidden = render_widget_host_->is_hidden(); | 592 params.widget_params.hidden = render_widget_host_->is_hidden(); |
| 586 } else { | 593 } else { |
| 587 // MSG_ROUTING_NONE will prevent a new RenderWidget from being created in | 594 // MSG_ROUTING_NONE will prevent a new RenderWidget from being created in |
| 588 // the renderer process. | 595 // the renderer process. |
| 589 widget_params.routing_id = MSG_ROUTING_NONE; | 596 params.widget_params.routing_id = MSG_ROUTING_NONE; |
| 590 widget_params.surface_id = 0; | 597 params.widget_params.surface_id = 0; |
| 591 widget_params.hidden = true; | 598 params.widget_params.hidden = true; |
| 592 } | 599 } |
| 593 | 600 |
| 594 Send(new FrameMsg_NewFrame(routing_id_, parent_routing_id, proxy_routing_id, | 601 Send(new FrameMsg_NewFrame(params)); |
| 595 frame_tree_node()->current_replication_state(), | |
| 596 widget_params)); | |
| 597 | 602 |
| 598 // The RenderWidgetHost takes ownership of its view. It is tied to the | 603 // The RenderWidgetHost takes ownership of its view. It is tied to the |
| 599 // lifetime of the current RenderProcessHost for this RenderFrameHost. | 604 // lifetime of the current RenderProcessHost for this RenderFrameHost. |
| 600 if (render_widget_host_) { | 605 if (render_widget_host_) { |
| 601 RenderWidgetHostView* rwhv = | 606 RenderWidgetHostView* rwhv = |
| 602 new RenderWidgetHostViewChildFrame(render_widget_host_); | 607 new RenderWidgetHostViewChildFrame(render_widget_host_); |
| 603 rwhv->Hide(); | 608 rwhv->Hide(); |
| 604 } | 609 } |
| 605 | 610 |
| 606 if (proxy_routing_id != MSG_ROUTING_NONE) { | 611 if (proxy_routing_id != MSG_ROUTING_NONE) { |
| (...skipping 1462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2069 // We may be returning to an existing NavigationEntry that had been granted | 2074 // We may be returning to an existing NavigationEntry that had been granted |
| 2070 // file access. If this is a different process, we will need to grant the | 2075 // file access. If this is a different process, we will need to grant the |
| 2071 // access again. The files listed in the page state are validated when they | 2076 // access again. The files listed in the page state are validated when they |
| 2072 // are received from the renderer to prevent abuse. | 2077 // are received from the renderer to prevent abuse. |
| 2073 if (request_params.page_state.IsValid()) { | 2078 if (request_params.page_state.IsValid()) { |
| 2074 render_view_host_->GrantFileAccessFromPageState(request_params.page_state); | 2079 render_view_host_->GrantFileAccessFromPageState(request_params.page_state); |
| 2075 } | 2080 } |
| 2076 } | 2081 } |
| 2077 | 2082 |
| 2078 } // namespace content | 2083 } // namespace content |
| OLD | NEW |