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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 498883002: Add/improve tracing in navigation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes based on Charlie's review Created 6 years, 3 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
« no previous file with comments | « content/browser/web_contents/web_contents_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 #elif defined(OS_MACOSX) 792 #elif defined(OS_MACOSX)
793 IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItem, OnSelectPopupMenuItem) 793 IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItem, OnSelectPopupMenuItem)
794 IPC_MESSAGE_HANDLER(InputMsg_CopyToFindPboard, OnCopyToFindPboard) 794 IPC_MESSAGE_HANDLER(InputMsg_CopyToFindPboard, OnCopyToFindPboard)
795 #endif 795 #endif
796 IPC_END_MESSAGE_MAP() 796 IPC_END_MESSAGE_MAP()
797 797
798 return handled; 798 return handled;
799 } 799 }
800 800
801 void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) { 801 void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) {
802 TRACE_EVENT2("navigation", "RenderFrameImpl::OnNavigate",
803 "id", routing_id_, "url", params.url.possibly_invalid_spec());
802 MaybeHandleDebugURL(params.url); 804 MaybeHandleDebugURL(params.url);
803 if (!render_view_->webview()) 805 if (!render_view_->webview())
804 return; 806 return;
805 807
806 FOR_EACH_OBSERVER( 808 FOR_EACH_OBSERVER(
807 RenderViewObserver, render_view_->observers_, Navigate(params.url)); 809 RenderViewObserver, render_view_->observers_, Navigate(params.url));
808 810
809 bool is_reload = RenderViewImpl::IsReload(params); 811 bool is_reload = RenderViewImpl::IsReload(params);
810 WebURLRequest::CachePolicy cache_policy = 812 WebURLRequest::CachePolicy cache_policy =
811 WebURLRequest::UseProtocolCachePolicy; 813 WebURLRequest::UseProtocolCachePolicy;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 // In case LoadRequest failed before DidCreateDataSource was called. 990 // In case LoadRequest failed before DidCreateDataSource was called.
989 render_view_->pending_navigation_params_.reset(); 991 render_view_->pending_navigation_params_.reset();
990 } 992 }
991 993
992 void RenderFrameImpl::BindServiceRegistry( 994 void RenderFrameImpl::BindServiceRegistry(
993 mojo::ScopedMessagePipeHandle service_provider_handle) { 995 mojo::ScopedMessagePipeHandle service_provider_handle) {
994 service_registry_.BindRemoteServiceProvider(service_provider_handle.Pass()); 996 service_registry_.BindRemoteServiceProvider(service_provider_handle.Pass());
995 } 997 }
996 998
997 void RenderFrameImpl::OnBeforeUnload() { 999 void RenderFrameImpl::OnBeforeUnload() {
1000 TRACE_EVENT1("navigation", "RenderFrameImpl::OnBeforeUnload",
1001 "id", routing_id_);
998 // TODO(creis): Right now, this is only called on the main frame. Make the 1002 // TODO(creis): Right now, this is only called on the main frame. Make the
999 // browser process send dispatchBeforeUnloadEvent to every frame that needs 1003 // browser process send dispatchBeforeUnloadEvent to every frame that needs
1000 // it. 1004 // it.
1001 CHECK(!frame_->parent()); 1005 CHECK(!frame_->parent());
1002 1006
1003 base::TimeTicks before_unload_start_time = base::TimeTicks::Now(); 1007 base::TimeTicks before_unload_start_time = base::TimeTicks::Now();
1004 bool proceed = frame_->dispatchBeforeUnloadEvent(); 1008 bool proceed = frame_->dispatchBeforeUnloadEvent();
1005 base::TimeTicks before_unload_end_time = base::TimeTicks::Now(); 1009 base::TimeTicks before_unload_end_time = base::TimeTicks::Now();
1006 Send(new FrameHostMsg_BeforeUnload_ACK(routing_id_, proceed, 1010 Send(new FrameHostMsg_BeforeUnload_ACK(routing_id_, proceed,
1007 before_unload_start_time, 1011 before_unload_start_time,
1008 before_unload_end_time)); 1012 before_unload_end_time));
1009 } 1013 }
1010 1014
1011 void RenderFrameImpl::OnSwapOut(int proxy_routing_id) { 1015 void RenderFrameImpl::OnSwapOut(int proxy_routing_id) {
1016 TRACE_EVENT1("navigation", "RenderFrameImpl::OnSwapOut", "id", routing_id_);
1012 RenderFrameProxy* proxy = NULL; 1017 RenderFrameProxy* proxy = NULL;
1013 bool is_site_per_process = 1018 bool is_site_per_process =
1014 CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess); 1019 CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess);
1015 bool is_main_frame = !frame_->parent(); 1020 bool is_main_frame = !frame_->parent();
1016 1021
1017 // Only run unload if we're not swapped out yet, but send the ack either way. 1022 // Only run unload if we're not swapped out yet, but send the ack either way.
1018 if (!is_swapped_out_ || !render_view_->is_swapped_out_) { 1023 if (!is_swapped_out_ || !render_view_->is_swapped_out_) {
1019 // Swap this RenderFrame out so the frame can navigate to a page rendered by 1024 // Swap this RenderFrame out so the frame can navigate to a page rendered by
1020 // a different process. This involves running the unload handler and 1025 // a different process. This involves running the unload handler and
1021 // clearing the page. We also allow this process to exit if there are no 1026 // clearing the page. We also allow this process to exit if there are no
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
1928 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, 1933 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame,
1929 bool is_transition_navigation) { 1934 bool is_transition_navigation) {
1930 DCHECK(!frame_ || frame_ == frame); 1935 DCHECK(!frame_ || frame_ == frame);
1931 WebDataSource* ds = frame->provisionalDataSource(); 1936 WebDataSource* ds = frame->provisionalDataSource();
1932 1937
1933 // In fast/loader/stop-provisional-loads.html, we abort the load before this 1938 // In fast/loader/stop-provisional-loads.html, we abort the load before this
1934 // callback is invoked. 1939 // callback is invoked.
1935 if (!ds) 1940 if (!ds)
1936 return; 1941 return;
1937 1942
1943 TRACE_EVENT2("navigation", "RenderFrameImpl::didStartProvisionalLoad",
1944 "id", routing_id_, "url", ds->request().url().string().utf8());
1938 DocumentState* document_state = DocumentState::FromDataSource(ds); 1945 DocumentState* document_state = DocumentState::FromDataSource(ds);
1939 1946
1940 // We should only navigate to swappedout:// when is_swapped_out_ is true. 1947 // We should only navigate to swappedout:// when is_swapped_out_ is true.
1941 CHECK((ds->request().url() != GURL(kSwappedOutURL)) || 1948 CHECK((ds->request().url() != GURL(kSwappedOutURL)) ||
1942 is_swapped_out_ || 1949 is_swapped_out_ ||
1943 render_view_->is_swapped_out()) << 1950 render_view_->is_swapped_out()) <<
1944 "Heard swappedout:// when not swapped out."; 1951 "Heard swappedout:// when not swapped out.";
1945 1952
1946 // Update the request time if WebKit has better knowledge of it. 1953 // Update the request time if WebKit has better knowledge of it.
1947 if (document_state->request_time().is_null()) { 1954 if (document_state->request_time().is_null()) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1993 Send(new FrameHostMsg_DidRedirectProvisionalLoad( 2000 Send(new FrameHostMsg_DidRedirectProvisionalLoad(
1994 routing_id_, 2001 routing_id_,
1995 render_view_->page_id_, 2002 render_view_->page_id_,
1996 redirects[redirects.size() - 2], 2003 redirects[redirects.size() - 2],
1997 redirects.back())); 2004 redirects.back()));
1998 } 2005 }
1999 } 2006 }
2000 2007
2001 void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame, 2008 void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame,
2002 const blink::WebURLError& error) { 2009 const blink::WebURLError& error) {
2010 TRACE_EVENT1("navigation", "RenderFrameImpl::didFailProvisionalLoad",
2011 "id", routing_id_);
2003 DCHECK(!frame_ || frame_ == frame); 2012 DCHECK(!frame_ || frame_ == frame);
2004 WebDataSource* ds = frame->provisionalDataSource(); 2013 WebDataSource* ds = frame->provisionalDataSource();
2005 DCHECK(ds); 2014 DCHECK(ds);
2006 2015
2007 const WebURLRequest& failed_request = ds->request(); 2016 const WebURLRequest& failed_request = ds->request();
2008 2017
2009 // Notify the browser that we failed a provisional load with an error. 2018 // Notify the browser that we failed a provisional load with an error.
2010 // 2019 //
2011 // Note: It is important this notification occur before DidStopLoading so the 2020 // Note: It is important this notification occur before DidStopLoading so the
2012 // SSL manager can react to the provisional load failure before being 2021 // SSL manager can react to the provisional load failure before being
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2098 } 2107 }
2099 2108
2100 // Load an error page. 2109 // Load an error page.
2101 LoadNavigationErrorPage(failed_request, error, replace); 2110 LoadNavigationErrorPage(failed_request, error, replace);
2102 } 2111 }
2103 2112
2104 void RenderFrameImpl::didCommitProvisionalLoad( 2113 void RenderFrameImpl::didCommitProvisionalLoad(
2105 blink::WebLocalFrame* frame, 2114 blink::WebLocalFrame* frame,
2106 const blink::WebHistoryItem& item, 2115 const blink::WebHistoryItem& item,
2107 blink::WebHistoryCommitType commit_type) { 2116 blink::WebHistoryCommitType commit_type) {
2117 TRACE_EVENT2("navigation", "RenderFrameImpl::didCommitProvisionalLoad",
2118 "id", routing_id_,
2119 "url", GetLoadingUrl().possibly_invalid_spec());
2108 DCHECK(!frame_ || frame_ == frame); 2120 DCHECK(!frame_ || frame_ == frame);
2109 DocumentState* document_state = 2121 DocumentState* document_state =
2110 DocumentState::FromDataSource(frame->dataSource()); 2122 DocumentState::FromDataSource(frame->dataSource());
2111 NavigationState* navigation_state = document_state->navigation_state(); 2123 NavigationState* navigation_state = document_state->navigation_state();
2112 2124
2113 // When we perform a new navigation, we need to update the last committed 2125 // When we perform a new navigation, we need to update the last committed
2114 // session history entry with state for the page we are leaving. Do this 2126 // session history entry with state for the page we are leaving. Do this
2115 // before updating the HistoryController state. 2127 // before updating the HistoryController state.
2116 render_view_->UpdateSessionHistory(frame); 2128 render_view_->UpdateSessionHistory(frame);
2117 2129
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
2270 } 2282 }
2271 2283
2272 void RenderFrameImpl::didChangeIcon(blink::WebLocalFrame* frame, 2284 void RenderFrameImpl::didChangeIcon(blink::WebLocalFrame* frame,
2273 blink::WebIconURL::Type icon_type) { 2285 blink::WebIconURL::Type icon_type) {
2274 DCHECK(!frame_ || frame_ == frame); 2286 DCHECK(!frame_ || frame_ == frame);
2275 // TODO(nasko): Investigate wheather implementation should move here. 2287 // TODO(nasko): Investigate wheather implementation should move here.
2276 render_view_->didChangeIcon(frame, icon_type); 2288 render_view_->didChangeIcon(frame, icon_type);
2277 } 2289 }
2278 2290
2279 void RenderFrameImpl::didFinishDocumentLoad(blink::WebLocalFrame* frame) { 2291 void RenderFrameImpl::didFinishDocumentLoad(blink::WebLocalFrame* frame) {
2292 TRACE_EVENT1("navigation", "RenderFrameImpl::didFinishDocumentLoad",
2293 "id", routing_id_);
2280 DCHECK(!frame_ || frame_ == frame); 2294 DCHECK(!frame_ || frame_ == frame);
2281 WebDataSource* ds = frame->dataSource(); 2295 WebDataSource* ds = frame->dataSource();
2282 DocumentState* document_state = DocumentState::FromDataSource(ds); 2296 DocumentState* document_state = DocumentState::FromDataSource(ds);
2283 document_state->set_finish_document_load_time(Time::Now()); 2297 document_state->set_finish_document_load_time(Time::Now());
2284 2298
2285 Send(new FrameHostMsg_DidFinishDocumentLoad(routing_id_)); 2299 Send(new FrameHostMsg_DidFinishDocumentLoad(routing_id_));
2286 2300
2287 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), 2301 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
2288 DidFinishDocumentLoad(frame)); 2302 DidFinishDocumentLoad(frame));
2289 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad()); 2303 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad());
2290 2304
2291 // Check whether we have new encoding name. 2305 // Check whether we have new encoding name.
2292 UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 2306 UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
2293 } 2307 }
2294 2308
2295 void RenderFrameImpl::didHandleOnloadEvents(blink::WebLocalFrame* frame) { 2309 void RenderFrameImpl::didHandleOnloadEvents(blink::WebLocalFrame* frame) {
2296 DCHECK(!frame_ || frame_ == frame); 2310 DCHECK(!frame_ || frame_ == frame);
2297 if (!frame->parent()) 2311 if (!frame->parent())
2298 Send(new FrameHostMsg_DocumentOnLoadCompleted(routing_id_)); 2312 Send(new FrameHostMsg_DocumentOnLoadCompleted(routing_id_));
2299 } 2313 }
2300 2314
2301 void RenderFrameImpl::didFailLoad(blink::WebLocalFrame* frame, 2315 void RenderFrameImpl::didFailLoad(blink::WebLocalFrame* frame,
2302 const blink::WebURLError& error) { 2316 const blink::WebURLError& error) {
2317 TRACE_EVENT1("navigation", "RenderFrameImpl::didFailLoad",
2318 "id", routing_id_);
2303 DCHECK(!frame_ || frame_ == frame); 2319 DCHECK(!frame_ || frame_ == frame);
2304 // TODO(nasko): Move implementation here. No state needed. 2320 // TODO(nasko): Move implementation here. No state needed.
2305 WebDataSource* ds = frame->dataSource(); 2321 WebDataSource* ds = frame->dataSource();
2306 DCHECK(ds); 2322 DCHECK(ds);
2307 2323
2308 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), 2324 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
2309 DidFailLoad(frame, error)); 2325 DidFailLoad(frame, error));
2310 2326
2311 const WebURLRequest& failed_request = ds->request(); 2327 const WebURLRequest& failed_request = ds->request();
2312 base::string16 error_description; 2328 base::string16 error_description;
2313 GetContentClient()->renderer()->GetNavigationErrorStrings( 2329 GetContentClient()->renderer()->GetNavigationErrorStrings(
2314 render_view_.get(), 2330 render_view_.get(),
2315 frame, 2331 frame,
2316 failed_request, 2332 failed_request,
2317 error, 2333 error,
2318 NULL, 2334 NULL,
2319 &error_description); 2335 &error_description);
2320 Send(new FrameHostMsg_DidFailLoadWithError(routing_id_, 2336 Send(new FrameHostMsg_DidFailLoadWithError(routing_id_,
2321 failed_request.url(), 2337 failed_request.url(),
2322 error.reason, 2338 error.reason,
2323 error_description)); 2339 error_description));
2324 } 2340 }
2325 2341
2326 void RenderFrameImpl::didFinishLoad(blink::WebLocalFrame* frame) { 2342 void RenderFrameImpl::didFinishLoad(blink::WebLocalFrame* frame) {
2343 TRACE_EVENT1("navigation", "RenderFrameImpl::didFinishLoad",
2344 "id", routing_id_);
2327 DCHECK(!frame_ || frame_ == frame); 2345 DCHECK(!frame_ || frame_ == frame);
2328 WebDataSource* ds = frame->dataSource(); 2346 WebDataSource* ds = frame->dataSource();
2329 DocumentState* document_state = DocumentState::FromDataSource(ds); 2347 DocumentState* document_state = DocumentState::FromDataSource(ds);
2330 if (document_state->finish_load_time().is_null()) { 2348 if (document_state->finish_load_time().is_null()) {
2331 if (!frame->parent()) { 2349 if (!frame->parent()) {
2332 TRACE_EVENT_INSTANT0("WebCore", "LoadFinished", 2350 TRACE_EVENT_INSTANT0("WebCore", "LoadFinished",
2333 TRACE_EVENT_SCOPE_PROCESS); 2351 TRACE_EVENT_SCOPE_PROCESS);
2334 } 2352 }
2335 document_state->set_finish_load_time(Time::Now()); 2353 document_state->set_finish_load_time(Time::Now());
2336 } 2354 }
2337 2355
2338 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), 2356 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
2339 DidFinishLoad(frame)); 2357 DidFinishLoad(frame));
2340 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishLoad()); 2358 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishLoad());
2341 2359
2342 // Don't send this message while the frame is swapped out. 2360 // Don't send this message while the frame is swapped out.
2343 if (is_swapped_out()) 2361 if (is_swapped_out())
2344 return; 2362 return;
2345 2363
2346 Send(new FrameHostMsg_DidFinishLoad(routing_id_, 2364 Send(new FrameHostMsg_DidFinishLoad(routing_id_,
2347 ds->request().url())); 2365 ds->request().url()));
2348 } 2366 }
2349 2367
2350 void RenderFrameImpl::didNavigateWithinPage(blink::WebLocalFrame* frame, 2368 void RenderFrameImpl::didNavigateWithinPage(blink::WebLocalFrame* frame,
2351 const blink::WebHistoryItem& item, 2369 const blink::WebHistoryItem& item,
2352 blink::WebHistoryCommitType commit_type) { 2370 blink::WebHistoryCommitType commit_type) {
2371 TRACE_EVENT1("navigation", "RenderFrameImpl::didNavigateWithinPage",
2372 "id", routing_id_);
2353 DCHECK(!frame_ || frame_ == frame); 2373 DCHECK(!frame_ || frame_ == frame);
2354 // If this was a reference fragment navigation that we initiated, then we 2374 // If this was a reference fragment navigation that we initiated, then we
2355 // could end up having a non-null pending navigation params. We just need to 2375 // could end up having a non-null pending navigation params. We just need to
2356 // update the ExtraData on the datasource so that others who read the 2376 // update the ExtraData on the datasource so that others who read the
2357 // ExtraData will get the new NavigationState. Similarly, if we did not 2377 // ExtraData will get the new NavigationState. Similarly, if we did not
2358 // initiate this navigation, then we need to take care to reset any pre- 2378 // initiate this navigation, then we need to take care to reset any pre-
2359 // existing navigation state to a content-initiated navigation state. 2379 // existing navigation state to a content-initiated navigation state.
2360 // DidCreateDataSource conveniently takes care of this for us. 2380 // DidCreateDataSource conveniently takes care of this for us.
2361 didCreateDataSource(frame, frame->dataSource()); 2381 didCreateDataSource(frame, frame->dataSource());
2362 2382
(...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after
3350 3370
3351 WebElement RenderFrameImpl::GetFocusedElement() { 3371 WebElement RenderFrameImpl::GetFocusedElement() {
3352 WebDocument doc = frame_->document(); 3372 WebDocument doc = frame_->document();
3353 if (!doc.isNull()) 3373 if (!doc.isNull())
3354 return doc.focusedElement(); 3374 return doc.focusedElement();
3355 3375
3356 return WebElement(); 3376 return WebElement();
3357 } 3377 }
3358 3378
3359 void RenderFrameImpl::didStartLoading(bool to_different_document) { 3379 void RenderFrameImpl::didStartLoading(bool to_different_document) {
3380 TRACE_EVENT1("navigation", "RenderFrameImpl::didStartLoading",
3381 "id", routing_id_);
3360 render_view_->FrameDidStartLoading(frame_); 3382 render_view_->FrameDidStartLoading(frame_);
3361 Send(new FrameHostMsg_DidStartLoading(routing_id_, to_different_document)); 3383 Send(new FrameHostMsg_DidStartLoading(routing_id_, to_different_document));
3362 } 3384 }
3363 3385
3364 void RenderFrameImpl::didStopLoading() { 3386 void RenderFrameImpl::didStopLoading() {
3387 TRACE_EVENT1("navigation", "RenderFrameImpl::didStopLoading",
3388 "id", routing_id_);
3365 render_view_->FrameDidStopLoading(frame_); 3389 render_view_->FrameDidStopLoading(frame_);
3366 Send(new FrameHostMsg_DidStopLoading(routing_id_)); 3390 Send(new FrameHostMsg_DidStopLoading(routing_id_));
3367 } 3391 }
3368 3392
3369 void RenderFrameImpl::didChangeLoadProgress(double load_progress) { 3393 void RenderFrameImpl::didChangeLoadProgress(double load_progress) {
3370 Send(new FrameHostMsg_DidChangeLoadProgress(routing_id_, load_progress)); 3394 Send(new FrameHostMsg_DidChangeLoadProgress(routing_id_, load_progress));
3371 } 3395 }
3372 3396
3373 void RenderFrameImpl::HandleWebAccessibilityEvent( 3397 void RenderFrameImpl::HandleWebAccessibilityEvent(
3374 const blink::WebAXObject& obj, blink::WebAXEvent event) { 3398 const blink::WebAXObject& obj, blink::WebAXEvent event) {
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
3820 3844
3821 #if defined(ENABLE_BROWSER_CDMS) 3845 #if defined(ENABLE_BROWSER_CDMS)
3822 RendererCdmManager* RenderFrameImpl::GetCdmManager() { 3846 RendererCdmManager* RenderFrameImpl::GetCdmManager() {
3823 if (!cdm_manager_) 3847 if (!cdm_manager_)
3824 cdm_manager_ = new RendererCdmManager(this); 3848 cdm_manager_ = new RendererCdmManager(this);
3825 return cdm_manager_; 3849 return cdm_manager_;
3826 } 3850 }
3827 #endif // defined(ENABLE_BROWSER_CDMS) 3851 #endif // defined(ENABLE_BROWSER_CDMS)
3828 3852
3829 } // namespace content 3853 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698