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

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: fix lambda return value Created 4 years, 11 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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 geolocation_service_context_(new GeolocationServiceContext()), 408 geolocation_service_context_(new GeolocationServiceContext()),
409 accessibility_mode_( 409 accessibility_mode_(
410 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()), 410 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()),
411 audio_stream_monitor_(this), 411 audio_stream_monitor_(this),
412 virtual_keyboard_requested_(false), 412 virtual_keyboard_requested_(false),
413 page_scale_factor_is_one_(true), 413 page_scale_factor_is_one_(true),
414 loading_weak_factory_(this) { 414 loading_weak_factory_(this) {
415 frame_tree_.SetFrameRemoveListener( 415 frame_tree_.SetFrameRemoveListener(
416 base::Bind(&WebContentsImpl::OnFrameRemoved, 416 base::Bind(&WebContentsImpl::OnFrameRemoved,
417 base::Unretained(this))); 417 base::Unretained(this)));
418 loader_io_thread_notifier_.reset(new LoaderIOThreadNotifier(this));
418 media_web_contents_observer_.reset(new MediaWebContentsObserver(this)); 419 media_web_contents_observer_.reset(new MediaWebContentsObserver(this));
419 wake_lock_service_context_.reset(new WakeLockServiceContext(this)); 420 wake_lock_service_context_.reset(new WakeLockServiceContext(this));
420 } 421 }
421 422
422 WebContentsImpl::~WebContentsImpl() { 423 WebContentsImpl::~WebContentsImpl() {
423 is_being_destroyed_ = true; 424 is_being_destroyed_ = true;
424 425
425 rwh_input_event_router_.reset(); 426 rwh_input_event_router_.reset();
426 427
427 // Delete all RFH pending shutdown, which will lead the corresponding RVH to 428 // Delete all RFH pending shutdown, which will lead the corresponding RVH to
(...skipping 1400 matching lines...) Expand 10 before | Expand all | Expand 10 after
1828 !delegate_->ShouldCreateWebContents( 1829 !delegate_->ShouldCreateWebContents(
1829 this, route_id, main_frame_route_id, main_frame_widget_route_id, 1830 this, route_id, main_frame_route_id, main_frame_widget_route_id,
1830 params.window_container_type, params.frame_name, params.target_url, 1831 params.window_container_type, params.frame_name, params.target_url,
1831 partition_id, session_storage_namespace)) { 1832 partition_id, session_storage_namespace)) {
1832 if (route_id != MSG_ROUTING_NONE && 1833 if (route_id != MSG_ROUTING_NONE &&
1833 !RenderViewHost::FromID(render_process_id, route_id)) { 1834 !RenderViewHost::FromID(render_process_id, route_id)) {
1834 // If the embedder didn't create a WebContents for this route, we need to 1835 // If the embedder didn't create a WebContents for this route, we need to
1835 // delete the RenderView that had already been created. 1836 // delete the RenderView that had already been created.
1836 Send(new ViewMsg_Close(route_id)); 1837 Send(new ViewMsg_Close(route_id));
1837 } 1838 }
1838 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(route_id); 1839 // It's safe to only target the frame because the view will not have a
1840 // change to create more frames at this point. Additionally, the frame's
1841 // requests will only be blocked if it lives in the same process as the
1842 // source.
Randy Smith (Not in Mondays) 2016/01/20 23:23:19 The second sentence "feels" to me as if it's an im
Charlie Harrison 2016/01/21 18:52:55 Yeah, it's not strictly necessary so I removed it.
1843 if (site_instance == source_site_instance) {
1844 ResourceDispatcherHostImpl::NotifyForRoute(
1845 GlobalFrameRoutingId(render_process_id, main_frame_route_id),
1846 base::Bind(
1847 &ResourceDispatcherHostImpl::ResumeBlockedRequestsForRoute));
1848 }
1839 return; 1849 return;
1840 } 1850 }
1841 1851
1842 // Create the new web contents. This will automatically create the new 1852 // Create the new web contents. This will automatically create the new
1843 // WebContentsView. In the future, we may want to create the view separately. 1853 // WebContentsView. In the future, we may want to create the view separately.
1844 CreateParams create_params(GetBrowserContext(), site_instance.get()); 1854 CreateParams create_params(GetBrowserContext(), site_instance.get());
1845 create_params.routing_id = route_id; 1855 create_params.routing_id = route_id;
1846 create_params.main_frame_routing_id = main_frame_route_id; 1856 create_params.main_frame_routing_id = main_frame_route_id;
1847 create_params.main_frame_widget_routing_id = main_frame_widget_route_id; 1857 create_params.main_frame_widget_routing_id = main_frame_widget_route_id;
1848 create_params.main_frame_name = params.frame_name; 1858 create_params.main_frame_name = params.frame_name;
(...skipping 2890 matching lines...) Expand 10 before | Expand all | Expand 10 after
4739 const WebContentsObserver::MediaPlayerId& id) { 4749 const WebContentsObserver::MediaPlayerId& id) {
4740 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id)); 4750 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id));
4741 } 4751 }
4742 4752
4743 void WebContentsImpl::MediaStoppedPlaying( 4753 void WebContentsImpl::MediaStoppedPlaying(
4744 const WebContentsObserver::MediaPlayerId& id) { 4754 const WebContentsObserver::MediaPlayerId& id) {
4745 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id)); 4755 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id));
4746 } 4756 }
4747 4757
4748 } // namespace content 4758 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698