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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1542743002: [RDHI] Refactored blocked_loaders_map_ to key by render frame route id (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nasko nit Created 4 years, 10 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 (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/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <utility> 10 #include <utility>
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 page_scale_factor_is_one_(true), 396 page_scale_factor_is_one_(true),
397 loading_weak_factory_(this) { 397 loading_weak_factory_(this) {
398 frame_tree_.SetFrameRemoveListener( 398 frame_tree_.SetFrameRemoveListener(
399 base::Bind(&WebContentsImpl::OnFrameRemoved, 399 base::Bind(&WebContentsImpl::OnFrameRemoved,
400 base::Unretained(this))); 400 base::Unretained(this)));
401 #if defined(OS_ANDROID) 401 #if defined(OS_ANDROID)
402 media_web_contents_observer_.reset(new MediaWebContentsObserverAndroid(this)); 402 media_web_contents_observer_.reset(new MediaWebContentsObserverAndroid(this));
403 #else 403 #else
404 media_web_contents_observer_.reset(new MediaWebContentsObserver(this)); 404 media_web_contents_observer_.reset(new MediaWebContentsObserver(this));
405 #endif 405 #endif
406 loader_io_thread_notifier_.reset(new LoaderIOThreadNotifier(this));
406 wake_lock_service_context_.reset(new WakeLockServiceContext(this)); 407 wake_lock_service_context_.reset(new WakeLockServiceContext(this));
407 } 408 }
408 409
409 WebContentsImpl::~WebContentsImpl() { 410 WebContentsImpl::~WebContentsImpl() {
410 is_being_destroyed_ = true; 411 is_being_destroyed_ = true;
411 412
412 rwh_input_event_router_.reset(); 413 rwh_input_event_router_.reset();
413 414
414 for (FrameTreeNode* node : frame_tree_.Nodes()) { 415 for (FrameTreeNode* node : frame_tree_.Nodes()) {
415 // Delete all RFHs pending shutdown, which will lead the corresponding RVHs 416 // Delete all RFHs pending shutdown, which will lead the corresponding RVHs
(...skipping 1426 matching lines...) Expand 10 before | Expand all | Expand 10 after
1842 !delegate_->ShouldCreateWebContents( 1843 !delegate_->ShouldCreateWebContents(
1843 this, route_id, main_frame_route_id, main_frame_widget_route_id, 1844 this, route_id, main_frame_route_id, main_frame_widget_route_id,
1844 params.window_container_type, params.frame_name, params.target_url, 1845 params.window_container_type, params.frame_name, params.target_url,
1845 partition_id, session_storage_namespace)) { 1846 partition_id, session_storage_namespace)) {
1846 if (route_id != MSG_ROUTING_NONE && 1847 if (route_id != MSG_ROUTING_NONE &&
1847 !RenderViewHost::FromID(render_process_id, route_id)) { 1848 !RenderViewHost::FromID(render_process_id, route_id)) {
1848 // If the embedder didn't create a WebContents for this route, we need to 1849 // If the embedder didn't create a WebContents for this route, we need to
1849 // delete the RenderView that had already been created. 1850 // delete the RenderView that had already been created.
1850 Send(new ViewMsg_Close(route_id)); 1851 Send(new ViewMsg_Close(route_id));
1851 } 1852 }
1852 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(route_id); 1853 // It's safe to only target the frame because the render process will not
1854 // have a chance to create more frames at this point.
1855 ResourceDispatcherHostImpl::ResumeBlockedRequestsForRouteFromUI(
1856 GlobalFrameRoutingId(render_process_id, main_frame_route_id));
1853 return; 1857 return;
1854 } 1858 }
1855 1859
1856 // Create the new web contents. This will automatically create the new 1860 // Create the new web contents. This will automatically create the new
1857 // WebContentsView. In the future, we may want to create the view separately. 1861 // WebContentsView. In the future, we may want to create the view separately.
1858 CreateParams create_params(GetBrowserContext(), site_instance.get()); 1862 CreateParams create_params(GetBrowserContext(), site_instance.get());
1859 create_params.routing_id = route_id; 1863 create_params.routing_id = route_id;
1860 create_params.main_frame_routing_id = main_frame_route_id; 1864 create_params.main_frame_routing_id = main_frame_route_id;
1861 create_params.main_frame_widget_routing_id = main_frame_widget_route_id; 1865 create_params.main_frame_widget_routing_id = main_frame_widget_route_id;
1862 create_params.main_frame_name = params.frame_name; 1866 create_params.main_frame_name = params.frame_name;
(...skipping 2889 matching lines...) Expand 10 before | Expand all | Expand 10 after
4752 const WebContentsObserver::MediaPlayerId& id) { 4756 const WebContentsObserver::MediaPlayerId& id) {
4753 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id)); 4757 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id));
4754 } 4758 }
4755 4759
4756 void WebContentsImpl::MediaStoppedPlaying( 4760 void WebContentsImpl::MediaStoppedPlaying(
4757 const WebContentsObserver::MediaPlayerId& id) { 4761 const WebContentsObserver::MediaPlayerId& id) {
4758 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id)); 4762 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id));
4759 } 4763 }
4760 4764
4761 } // namespace content 4765 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698