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

Side by Side Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2857263003: Task Manager should listen to WebContentsObserver::RenderFrameCreated. (Closed)
Patch Set: Tweaked the comments as suggested in the CR feedback Created 3 years, 7 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/browser/frame_host/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 accessibility_reset_token_ = g_next_accessibility_reset_token++; 928 accessibility_reset_token_ = g_next_accessibility_reset_token++;
929 Send(new AccessibilityMsg_Reset(routing_id_, accessibility_reset_token_)); 929 Send(new AccessibilityMsg_Reset(routing_id_, accessibility_reset_token_));
930 } 930 }
931 } 931 }
932 932
933 gfx::AcceleratedWidget 933 gfx::AcceleratedWidget
934 RenderFrameHostImpl::AccessibilityGetAcceleratedWidget() { 934 RenderFrameHostImpl::AccessibilityGetAcceleratedWidget() {
935 // Only the main frame's current frame host is connected to the native 935 // Only the main frame's current frame host is connected to the native
936 // widget tree for accessibility, so return null if this is queried on 936 // widget tree for accessibility, so return null if this is queried on
937 // any other frame. 937 // any other frame.
938 if (frame_tree_node()->parent() || 938 if (frame_tree_node()->parent() || !IsCurrent())
939 frame_tree_node()->current_frame_host() != this) {
940 return gfx::kNullAcceleratedWidget; 939 return gfx::kNullAcceleratedWidget;
941 }
942 940
943 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( 941 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
944 render_view_host_->GetWidget()->GetView()); 942 render_view_host_->GetWidget()->GetView());
945 if (view) 943 if (view)
946 return view->AccessibilityGetAcceleratedWidget(); 944 return view->AccessibilityGetAcceleratedWidget();
947 return gfx::kNullAcceleratedWidget; 945 return gfx::kNullAcceleratedWidget;
948 } 946 }
949 947
950 gfx::NativeViewAccessible 948 gfx::NativeViewAccessible
951 RenderFrameHostImpl::AccessibilityGetNativeViewAccessible() { 949 RenderFrameHostImpl::AccessibilityGetNativeViewAccessible() {
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 blink::WebSandboxFlags sandbox_flags, 1143 blink::WebSandboxFlags sandbox_flags,
1146 const ParsedFeaturePolicyHeader& container_policy, 1144 const ParsedFeaturePolicyHeader& container_policy,
1147 const FrameOwnerProperties& frame_owner_properties) { 1145 const FrameOwnerProperties& frame_owner_properties) {
1148 // TODO(lukasza): Call ReceivedBadMessage when |frame_unique_name| is empty. 1146 // TODO(lukasza): Call ReceivedBadMessage when |frame_unique_name| is empty.
1149 DCHECK(!frame_unique_name.empty()); 1147 DCHECK(!frame_unique_name.empty());
1150 1148
1151 // The RenderFrame corresponding to this host sent an IPC message to create a 1149 // The RenderFrame corresponding to this host sent an IPC message to create a
1152 // child, but by the time we get here, it's possible for the host to have been 1150 // child, but by the time we get here, it's possible for the host to have been
1153 // swapped out, or for its process to have disconnected (maybe due to browser 1151 // swapped out, or for its process to have disconnected (maybe due to browser
1154 // shutdown). Ignore such messages. 1152 // shutdown). Ignore such messages.
1155 if (!is_active() || frame_tree_node_->current_frame_host() != this || 1153 if (!is_active() || !IsCurrent() || !render_frame_created_)
1156 !render_frame_created_)
1157 return; 1154 return;
1158 1155
1159 frame_tree_->AddFrame(frame_tree_node_, GetProcess()->GetID(), new_routing_id, 1156 frame_tree_->AddFrame(frame_tree_node_, GetProcess()->GetID(), new_routing_id,
1160 scope, frame_name, frame_unique_name, sandbox_flags, 1157 scope, frame_name, frame_unique_name, sandbox_flags,
1161 container_policy, frame_owner_properties); 1158 container_policy, frame_owner_properties);
1162 } 1159 }
1163 1160
1164 void RenderFrameHostImpl::SetLastCommittedOrigin(const url::Origin& origin) { 1161 void RenderFrameHostImpl::SetLastCommittedOrigin(const url::Origin& origin) {
1165 last_committed_origin_ = origin; 1162 last_committed_origin_ = origin;
1166 CSPContext::SetSelf(origin); 1163 CSPContext::SetSelf(origin);
(...skipping 1372 matching lines...) Expand 10 before | Expand all | Expand 10 after
2539 "frame_tree_node", frame_tree_node_->frame_tree_node_id(), "url", 2536 "frame_tree_node", frame_tree_node_->frame_tree_node_id(), "url",
2540 params->target_url.possibly_invalid_spec()); 2537 params->target_url.possibly_invalid_spec());
2541 2538
2542 bool no_javascript_access = false; 2539 bool no_javascript_access = false;
2543 2540
2544 // Filter out URLs that this process cannot request. 2541 // Filter out URLs that this process cannot request.
2545 GetProcess()->FilterURL(false, &params->target_url); 2542 GetProcess()->FilterURL(false, &params->target_url);
2546 2543
2547 // Ignore creation when sent from a frame that's not current or created. 2544 // Ignore creation when sent from a frame that's not current or created.
2548 bool can_create_window = 2545 bool can_create_window =
2549 frame_tree_node_->current_frame_host() == this && render_frame_created_ && 2546 IsCurrent() && render_frame_created_ &&
2550 GetContentClient()->browser()->CanCreateWindow( 2547 GetContentClient()->browser()->CanCreateWindow(
2551 this, last_committed_url(), 2548 this, last_committed_url(),
2552 frame_tree_node_->frame_tree()->GetMainFrame()->last_committed_url(), 2549 frame_tree_node_->frame_tree()->GetMainFrame()->last_committed_url(),
2553 last_committed_origin_.GetURL(), params->window_container_type, 2550 last_committed_origin_.GetURL(), params->window_container_type,
2554 params->target_url, params->referrer, params->frame_name, 2551 params->target_url, params->referrer, params->frame_name,
2555 params->disposition, *params->features, params->user_gesture, 2552 params->disposition, *params->features, params->user_gesture,
2556 params->opener_suppressed, &no_javascript_access); 2553 params->opener_suppressed, &no_javascript_access);
2557 2554
2558 mojom::CreateNewWindowReplyPtr reply = mojom::CreateNewWindowReply::New(); 2555 mojom::CreateNewWindowReplyPtr reply = mojom::CreateNewWindowReply::New();
2559 if (!can_create_window) { 2556 if (!can_create_window) {
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
3031 FrameMsg_Navigate_Type::IsSameDocument(common_params.navigation_type) || 3028 FrameMsg_Navigate_Type::IsSameDocument(common_params.navigation_type) ||
3032 IsRendererDebugURL(common_params.url)); 3029 IsRendererDebugURL(common_params.url));
3033 UpdatePermissionsForNavigation(common_params, request_params); 3030 UpdatePermissionsForNavigation(common_params, request_params);
3034 3031
3035 // Get back to a clean state, in case we start a new navigation without 3032 // Get back to a clean state, in case we start a new navigation without
3036 // completing an unload handler. 3033 // completing an unload handler.
3037 ResetWaitingState(); 3034 ResetWaitingState();
3038 3035
3039 // The renderer can exit view source mode when any error or cancellation 3036 // The renderer can exit view source mode when any error or cancellation
3040 // happen. When reusing the same renderer, overwrite to recover the mode. 3037 // happen. When reusing the same renderer, overwrite to recover the mode.
3041 if (is_view_source && 3038 if (is_view_source && IsCurrent()) {
3042 this == frame_tree_node_->render_manager()->current_frame_host()) {
3043 DCHECK(!GetParent()); 3039 DCHECK(!GetParent());
3044 render_view_host()->Send(new FrameMsg_EnableViewSourceMode(routing_id_)); 3040 render_view_host()->Send(new FrameMsg_EnableViewSourceMode(routing_id_));
3045 } 3041 }
3046 3042
3047 const GURL body_url = body.get() ? body->GetURL() : GURL(); 3043 const GURL body_url = body.get() ? body->GetURL() : GURL();
3048 const ResourceResponseHead head = response ? 3044 const ResourceResponseHead head = response ?
3049 response->head : ResourceResponseHead(); 3045 response->head : ResourceResponseHead();
3050 FrameMsg_CommitDataNetworkService_Params commit_data; 3046 FrameMsg_CommitDataNetworkService_Params commit_data;
3051 commit_data.handle = handle.release(); 3047 commit_data.handle = handle.release();
3052 // TODO(scottmg): Pass a factory for SW, etc. once we have one. 3048 // TODO(scottmg): Pass a factory for SW, etc. once we have one.
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
3378 3374
3379 bool RenderFrameHostImpl::IsRenderFrameLive() { 3375 bool RenderFrameHostImpl::IsRenderFrameLive() {
3380 bool is_live = GetProcess()->HasConnection() && render_frame_created_; 3376 bool is_live = GetProcess()->HasConnection() && render_frame_created_;
3381 3377
3382 // Sanity check: the RenderView should always be live if the RenderFrame is. 3378 // Sanity check: the RenderView should always be live if the RenderFrame is.
3383 DCHECK(!is_live || render_view_host_->IsRenderViewLive()); 3379 DCHECK(!is_live || render_view_host_->IsRenderViewLive());
3384 3380
3385 return is_live; 3381 return is_live;
3386 } 3382 }
3387 3383
3384 bool RenderFrameHostImpl::IsCurrent() {
3385 return this == frame_tree_node_->current_frame_host();
3386 }
3387
3388 int RenderFrameHostImpl::GetProxyCount() { 3388 int RenderFrameHostImpl::GetProxyCount() {
3389 if (this != frame_tree_node_->current_frame_host()) 3389 if (!IsCurrent())
3390 return 0; 3390 return 0;
3391 return frame_tree_node_->render_manager()->GetProxyCount(); 3391 return frame_tree_node_->render_manager()->GetProxyCount();
3392 } 3392 }
3393 3393
3394 void RenderFrameHostImpl::FilesSelectedInChooser( 3394 void RenderFrameHostImpl::FilesSelectedInChooser(
3395 const std::vector<content::FileChooserFileInfo>& files, 3395 const std::vector<content::FileChooserFileInfo>& files,
3396 FileChooserParams::Mode permissions) { 3396 FileChooserParams::Mode permissions) {
3397 storage::FileSystemContext* const file_system_context = 3397 storage::FileSystemContext* const file_system_context =
3398 BrowserContext::GetStoragePartition(GetProcess()->GetBrowserContext(), 3398 BrowserContext::GetStoragePartition(GetProcess()->GetBrowserContext(),
3399 GetSiteInstance()) 3399 GetSiteInstance())
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
3913 } 3913 }
3914 3914
3915 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( 3915 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame(
3916 const std::string& interface_name, 3916 const std::string& interface_name,
3917 mojo::ScopedMessagePipeHandle pipe) { 3917 mojo::ScopedMessagePipeHandle pipe) {
3918 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); 3918 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe));
3919 } 3919 }
3920 #endif 3920 #endif
3921 3921
3922 } // namespace content 3922 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698