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/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 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
450 // passed back to the browser in the DidCommitProvisionalLoad and the | 450 // passed back to the browser in the DidCommitProvisionalLoad and the |
451 // DocumentLoadComplete IPCs. | 451 // DocumentLoadComplete IPCs. |
452 base::TimeDelta ui_timestamp = common_params.ui_timestamp - base::TimeTicks(); | 452 base::TimeDelta ui_timestamp = common_params.ui_timestamp - base::TimeTicks(); |
453 request.setUiStartTime(ui_timestamp.InSecondsF()); | 453 request.setUiStartTime(ui_timestamp.InSecondsF()); |
454 request.setInputPerfMetricReportPolicy( | 454 request.setInputPerfMetricReportPolicy( |
455 static_cast<WebURLRequest::InputToLoadPerfMetricReportPolicy>( | 455 static_cast<WebURLRequest::InputToLoadPerfMetricReportPolicy>( |
456 common_params.report_type)); | 456 common_params.report_type)); |
457 return request; | 457 return request; |
458 } | 458 } |
459 | 459 |
460 void UpdateFrameNavigationTiming(WebFrame* frame, | 460 base::TimeTicks SanitizeNavigationTiming( |
461 base::TimeTicks browser_navigation_start, | 461 blink::WebFrameLoadType load_type, |
462 base::TimeTicks renderer_navigation_start) { | 462 const base::TimeTicks& browser_navigation_start, |
463 const base::TimeTicks& renderer_navigation_start) { | |
464 if (load_type != blink::WebFrameLoadType::Standard) | |
465 return base::TimeTicks(); | |
463 // The browser provides the navigation_start time to bootstrap the | 466 // The browser provides the navigation_start time to bootstrap the |
clamy
2015/11/04 13:33:44
Can you move the comment above the function (and m
Charlie Harrison
2015/11/04 14:13:49
Done.
| |
464 // Navigation Timing information for the browser-initiated navigations. In | 467 // Navigation Timing information for the browser-initiated navigations. In |
465 // case of cross-process navigations, this carries over the time of | 468 // case of cross-process navigations, this carries over the time of |
466 // finishing the onbeforeunload handler of the previous page. | 469 // finishing the onbeforeunload handler of the previous page. |
470 // |browser_navigation_start| is likely before this process existed, so we | |
471 // can't use InterProcessTimeTicksConverter. We need at least to ensure | |
clamy
2015/11/04 13:33:44
nit: we prefer to avoid "we" in comments.
Charlie Harrison
2015/11/04 14:13:49
Done.
| |
472 // that the browser-side navigation start we set is not later than the one | |
473 // on the renderer side. | |
467 DCHECK(!browser_navigation_start.is_null()); | 474 DCHECK(!browser_navigation_start.is_null()); |
468 if (frame->provisionalDataSource()) { | 475 base::TimeTicks navigation_start = |
469 // |browser_navigation_start| is likely before this process existed, so we | 476 std::min(browser_navigation_start, renderer_navigation_start); |
470 // can't use InterProcessTimeTicksConverter. We need at least to ensure | 477 // TODO(clamy) We need to provide additional timing values for the Navigation |
clamy
2015/11/04 13:33:44
This TODO should be moved where we actually set th
Charlie Harrison
2015/11/04 14:13:49
Done.
| |
471 // that the browser-side navigation start we set is not later than the one | 478 // Timing API to work with browser-side navigations. |
472 // on the renderer side. | 479 // TODO(csharrison) UMA log: |
473 base::TimeTicks navigation_start = std::min( | 480 // |renderer_navigation_start - browser_navigation_start| |
474 browser_navigation_start, renderer_navigation_start); | 481 return navigation_start; |
475 double navigation_start_seconds = | |
476 (navigation_start - base::TimeTicks()).InSecondsF(); | |
477 frame->provisionalDataSource()->setNavigationStartTime( | |
478 navigation_start_seconds); | |
479 // TODO(clamy): We need to provide additional timing values for the | |
480 // Navigation Timing API to work with browser-side navigations. | |
481 } | |
482 } | 482 } |
483 | 483 |
484 // PlzNavigate | 484 // PlzNavigate |
485 CommonNavigationParams MakeCommonNavigationParams( | 485 CommonNavigationParams MakeCommonNavigationParams( |
486 blink::WebURLRequest* request, | 486 blink::WebURLRequest* request, |
487 bool should_replace_current_entry) { | 487 bool should_replace_current_entry) { |
488 const RequestExtraData kEmptyData; | 488 const RequestExtraData kEmptyData; |
489 const RequestExtraData* extra_data = | 489 const RequestExtraData* extra_data = |
490 static_cast<RequestExtraData*>(request->extraData()); | 490 static_cast<RequestExtraData*>(request->extraData()); |
491 if (!extra_data) | 491 if (!extra_data) |
(...skipping 2091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2583 InternalDocumentStateData::FromDocumentState(document_state); | 2583 InternalDocumentStateData::FromDocumentState(document_state); |
2584 InternalDocumentStateData* old_internal_data = | 2584 InternalDocumentStateData* old_internal_data = |
2585 InternalDocumentStateData::FromDocumentState(old_document_state); | 2585 InternalDocumentStateData::FromDocumentState(old_document_state); |
2586 internal_data->set_is_overriding_user_agent( | 2586 internal_data->set_is_overriding_user_agent( |
2587 old_internal_data->is_overriding_user_agent()); | 2587 old_internal_data->is_overriding_user_agent()); |
2588 } | 2588 } |
2589 } | 2589 } |
2590 | 2590 |
2591 // The rest of RenderView assumes that a WebDataSource will always have a | 2591 // The rest of RenderView assumes that a WebDataSource will always have a |
2592 // non-null NavigationState. | 2592 // non-null NavigationState. |
2593 if (content_initiated) { | 2593 UpdateNavigationState(document_state); |
2594 document_state->set_navigation_state( | |
2595 NavigationStateImpl::CreateContentInitiated()); | |
2596 } else { | |
2597 document_state->set_navigation_state(CreateNavigationStateFromPending()); | |
2598 pending_navigation_params_.reset(); | |
2599 } | |
2600 | 2594 |
2601 // DocumentState::referred_by_prefetcher_ is true if we are | 2595 // DocumentState::referred_by_prefetcher_ is true if we are |
2602 // navigating from a page that used prefetching using a link on that | 2596 // navigating from a page that used prefetching using a link on that |
2603 // page. We are early enough in the request process here that we | 2597 // page. We are early enough in the request process here that we |
2604 // can still see the DocumentState of the previous page and set | 2598 // can still see the DocumentState of the previous page and set |
2605 // this value appropriately. | 2599 // this value appropriately. |
2606 // TODO(gavinp): catch the important case of navigation in a new | 2600 // TODO(gavinp): catch the important case of navigation in a new |
2607 // renderer process. | 2601 // renderer process. |
2608 if (webview) { | 2602 if (webview) { |
2609 if (WebFrame* old_frame = webview->mainFrame()) { | 2603 if (WebFrame* old_frame = webview->mainFrame()) { |
(...skipping 29 matching lines...) Expand all Loading... | |
2639 document_state->set_load_type(DocumentState::LINK_LOAD_CACHE_STALE_OK); | 2633 document_state->set_load_type(DocumentState::LINK_LOAD_CACHE_STALE_OK); |
2640 break; | 2634 break; |
2641 case WebURLRequest::ReturnCacheDataDontLoad: // Don't re-post. | 2635 case WebURLRequest::ReturnCacheDataDontLoad: // Don't re-post. |
2642 document_state->set_load_type(DocumentState::LINK_LOAD_CACHE_ONLY); | 2636 document_state->set_load_type(DocumentState::LINK_LOAD_CACHE_ONLY); |
2643 break; | 2637 break; |
2644 default: | 2638 default: |
2645 NOTREACHED(); | 2639 NOTREACHED(); |
2646 } | 2640 } |
2647 } | 2641 } |
2648 | 2642 |
2643 NavigationStateImpl* navigation_state = static_cast<NavigationStateImpl*>( | |
2644 document_state->navigation_state()); | |
2645 | |
2646 // Set the navigation start time in blink. | |
2647 base::TimeTicks navigation_start = | |
2648 navigation_state->common_params().navigation_start; | |
2649 datasource->setNavigationStartTime( | |
2650 (navigation_start - base::TimeTicks()).InSecondsF()); | |
2651 | |
2649 // Create the serviceworker's per-document network observing object if it | 2652 // Create the serviceworker's per-document network observing object if it |
2650 // does not exist (When navigation happens within a page, the provider already | 2653 // does not exist (When navigation happens within a page, the provider already |
2651 // exists). | 2654 // exists). |
2652 if (ServiceWorkerNetworkProvider::FromDocumentState( | 2655 if (ServiceWorkerNetworkProvider::FromDocumentState( |
2653 DocumentState::FromDataSource(datasource))) | 2656 DocumentState::FromDataSource(datasource))) |
2654 return; | 2657 return; |
2655 | 2658 |
2656 NavigationStateImpl* navigation_state = static_cast<NavigationStateImpl*>( | |
2657 DocumentState::FromDataSource(datasource)->navigation_state()); | |
2658 | |
2659 ServiceWorkerNetworkProvider::AttachToDocumentState( | 2659 ServiceWorkerNetworkProvider::AttachToDocumentState( |
2660 DocumentState::FromDataSource(datasource), | 2660 DocumentState::FromDataSource(datasource), |
2661 ServiceWorkerNetworkProvider::CreateForNavigation( | 2661 ServiceWorkerNetworkProvider::CreateForNavigation( |
2662 routing_id_, navigation_state->request_params(), | 2662 routing_id_, navigation_state->request_params(), |
2663 frame->effectiveSandboxFlags(), content_initiated)); | 2663 frame->effectiveSandboxFlags(), content_initiated)); |
2664 } | 2664 } |
2665 | 2665 |
2666 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, | 2666 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
2667 double triggering_event_time) { | 2667 double triggering_event_time) { |
2668 DCHECK(!frame_ || frame_ == frame); | 2668 DCHECK(!frame_ || frame_ == frame); |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3124 blink::WebHistoryCommitType commit_type) { | 3124 blink::WebHistoryCommitType commit_type) { |
3125 TRACE_EVENT1("navigation", "RenderFrameImpl::didNavigateWithinPage", | 3125 TRACE_EVENT1("navigation", "RenderFrameImpl::didNavigateWithinPage", |
3126 "id", routing_id_); | 3126 "id", routing_id_); |
3127 DCHECK(!frame_ || frame_ == frame); | 3127 DCHECK(!frame_ || frame_ == frame); |
3128 // If this was a reference fragment navigation that we initiated, then we | 3128 // If this was a reference fragment navigation that we initiated, then we |
3129 // could end up having a non-null pending navigation params. We just need to | 3129 // could end up having a non-null pending navigation params. We just need to |
3130 // update the ExtraData on the datasource so that others who read the | 3130 // update the ExtraData on the datasource so that others who read the |
3131 // ExtraData will get the new NavigationState. Similarly, if we did not | 3131 // ExtraData will get the new NavigationState. Similarly, if we did not |
3132 // initiate this navigation, then we need to take care to reset any pre- | 3132 // initiate this navigation, then we need to take care to reset any pre- |
3133 // existing navigation state to a content-initiated navigation state. | 3133 // existing navigation state to a content-initiated navigation state. |
3134 // didCreateDataSource conveniently takes care of this for us. | 3134 // UpdateNavigationState conveniently takes care of this for us. |
3135 didCreateDataSource(frame, frame->dataSource()); | |
3136 | |
3137 DocumentState* document_state = | 3135 DocumentState* document_state = |
3138 DocumentState::FromDataSource(frame->dataSource()); | 3136 DocumentState::FromDataSource(frame->dataSource()); |
3137 UpdateNavigationState(document_state); | |
3139 static_cast<NavigationStateImpl*>(document_state->navigation_state()) | 3138 static_cast<NavigationStateImpl*>(document_state->navigation_state()) |
3140 ->set_was_within_same_page(true); | 3139 ->set_was_within_same_page(true); |
3141 | 3140 |
3142 didCommitProvisionalLoad(frame, item, commit_type); | 3141 didCommitProvisionalLoad(frame, item, commit_type); |
3143 } | 3142 } |
3144 | 3143 |
3145 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame) { | 3144 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame) { |
3146 DCHECK(!frame_ || frame_ == frame); | 3145 DCHECK(!frame_ || frame_ == frame); |
3147 // TODO(nasko): Move implementation here. Needed methods: | 3146 // TODO(nasko): Move implementation here. Needed methods: |
3148 // * StartNavStateSyncTimerIfNecessary | 3147 // * StartNavStateSyncTimerIfNecessary |
(...skipping 1466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4615 } | 4614 } |
4616 | 4615 |
4617 void RenderFrameImpl::NavigateInternal( | 4616 void RenderFrameImpl::NavigateInternal( |
4618 const CommonNavigationParams& common_params, | 4617 const CommonNavigationParams& common_params, |
4619 const StartNavigationParams& start_params, | 4618 const StartNavigationParams& start_params, |
4620 const RequestNavigationParams& request_params, | 4619 const RequestNavigationParams& request_params, |
4621 scoped_ptr<StreamOverrideParameters> stream_params) { | 4620 scoped_ptr<StreamOverrideParameters> stream_params) { |
4622 bool browser_side_navigation = | 4621 bool browser_side_navigation = |
4623 base::CommandLine::ForCurrentProcess()->HasSwitch( | 4622 base::CommandLine::ForCurrentProcess()->HasSwitch( |
4624 switches::kEnableBrowserSideNavigation); | 4623 switches::kEnableBrowserSideNavigation); |
4624 // Lower bound for browser initiated navigation start time. | |
clamy
2015/11/04 13:33:44
nit: empty line before comment.
Charlie Harrison
2015/11/04 14:13:49
Done.
| |
4625 base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); | |
4625 bool is_reload = IsReload(common_params.navigation_type); | 4626 bool is_reload = IsReload(common_params.navigation_type); |
4626 bool is_history_navigation = request_params.page_state.IsValid(); | 4627 bool is_history_navigation = request_params.page_state.IsValid(); |
4627 WebURLRequest::CachePolicy cache_policy = | 4628 WebURLRequest::CachePolicy cache_policy = |
4628 WebURLRequest::UseProtocolCachePolicy; | 4629 WebURLRequest::UseProtocolCachePolicy; |
4629 RenderFrameImpl::PrepareRenderViewForNavigation( | 4630 RenderFrameImpl::PrepareRenderViewForNavigation( |
4630 common_params.url, request_params, &is_reload, &cache_policy); | 4631 common_params.url, request_params, &is_reload, &cache_policy); |
4631 | 4632 |
4632 GetContentClient()->SetActiveURL(common_params.url); | 4633 GetContentClient()->SetActiveURL(common_params.url); |
4633 | 4634 |
4634 // If this frame isn't in the same process as the main frame, it may naively | 4635 // If this frame isn't in the same process as the main frame, it may naively |
4635 // assume that this is the first navigation in the iframe, but this may not | 4636 // assume that this is the first navigation in the iframe, but this may not |
4636 // actually be the case. Inform the frame's state machine if this frame has | 4637 // actually be the case. Inform the frame's state machine if this frame has |
4637 // already committed other loads. | 4638 // already committed other loads. |
4638 if (request_params.has_committed_real_load && frame_->parent()) | 4639 if (request_params.has_committed_real_load && frame_->parent()) |
4639 frame_->setCommittedFirstRealLoad(); | 4640 frame_->setCommittedFirstRealLoad(); |
4640 | 4641 |
4641 if (is_reload && !render_view_->history_controller()->GetCurrentEntry()) { | 4642 if (is_reload && !render_view_->history_controller()->GetCurrentEntry()) { |
4642 // We cannot reload if we do not have any history state. This happens, for | 4643 // We cannot reload if we do not have any history state. This happens, for |
4643 // example, when recovering from a crash. | 4644 // example, when recovering from a crash. |
4644 is_reload = false; | 4645 is_reload = false; |
4645 cache_policy = WebURLRequest::ReloadIgnoringCacheData; | 4646 cache_policy = WebURLRequest::ReloadIgnoringCacheData; |
4646 } | 4647 } |
4647 | 4648 |
4648 pending_navigation_params_.reset( | 4649 pending_navigation_params_.reset( |
4649 new NavigationParams(common_params, start_params, request_params)); | 4650 new NavigationParams(common_params, start_params, request_params)); |
4651 // We don't know for sure that this load type is WebFrameLoadType::Standard. | |
clamy
2015/11/04 13:33:44
nit: empty line before comment. Also see if you ca
Charlie Harrison
2015/11/04 14:13:49
Done.
| |
4652 // For now, set this to null, and update it when we are sure of the right | |
4653 // value. | |
4654 // TODO(csharrison) See if we can always use the browser timestamp. | |
4655 pending_navigation_params_->common_params.navigation_start = | |
4656 base::TimeTicks(); | |
4650 | 4657 |
4651 // Create parameters for a standard navigation. | 4658 // Create parameters for a standard navigation. |
4652 blink::WebFrameLoadType load_type = blink::WebFrameLoadType::Standard; | 4659 blink::WebFrameLoadType load_type = blink::WebFrameLoadType::Standard; |
4653 bool should_load_request = false; | 4660 bool should_load_request = false; |
4654 WebHistoryItem item_for_history_navigation; | 4661 WebHistoryItem item_for_history_navigation; |
4655 WebURLRequest request = CreateURLRequestForNavigation( | 4662 WebURLRequest request = CreateURLRequestForNavigation( |
4656 common_params, stream_params.Pass(), frame_->isViewSourceModeEnabled()); | 4663 common_params, stream_params.Pass(), frame_->isViewSourceModeEnabled()); |
4657 #if defined(OS_ANDROID) | 4664 #if defined(OS_ANDROID) |
4658 request.setHasUserGesture(start_params.has_user_gesture); | 4665 request.setHasUserGesture(start_params.has_user_gesture); |
4659 #endif | 4666 #endif |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4771 request.setHTTPBody(http_body); | 4778 request.setHTTPBody(http_body); |
4772 } | 4779 } |
4773 | 4780 |
4774 // A session history navigation should have been accompanied by state. | 4781 // A session history navigation should have been accompanied by state. |
4775 CHECK_EQ(request_params.page_id, -1); | 4782 CHECK_EQ(request_params.page_id, -1); |
4776 | 4783 |
4777 should_load_request = true; | 4784 should_load_request = true; |
4778 } | 4785 } |
4779 | 4786 |
4780 if (should_load_request) { | 4787 if (should_load_request) { |
4781 // Record this before starting the load. We need a lower bound of this | 4788 // Sanitize navigation start now that we know the load_type. |
4782 // time to sanitize the navigationStart override set below. | 4789 pending_navigation_params_->common_params.navigation_start = |
4783 base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); | 4790 SanitizeNavigationTiming(load_type, common_params.navigation_start, |
4784 | 4791 renderer_navigation_start); |
4785 // Perform a navigation to a data url if needed. | 4792 // Perform a navigation to a data url if needed. |
4786 if (!common_params.base_url_for_data_url.is_empty() || | 4793 if (!common_params.base_url_for_data_url.is_empty() || |
4787 (browser_side_navigation && | 4794 (browser_side_navigation && |
4788 common_params.url.SchemeIs(url::kDataScheme))) { | 4795 common_params.url.SchemeIs(url::kDataScheme))) { |
4789 LoadDataURL(common_params, frame_); | 4796 LoadDataURL(common_params, frame_); |
4790 } else { | 4797 } else { |
4791 // Load the request. | 4798 // Load the request. |
4792 frame_->toWebLocalFrame()->load(request, load_type, | 4799 frame_->toWebLocalFrame()->load(request, load_type, |
4793 item_for_history_navigation); | 4800 item_for_history_navigation); |
4794 } | 4801 } |
4795 | |
4796 if (load_type == blink::WebFrameLoadType::Standard) { | |
4797 UpdateFrameNavigationTiming(frame_, | |
4798 common_params.navigation_start, | |
4799 renderer_navigation_start); | |
4800 } | |
4801 } | 4802 } |
4802 | 4803 |
4803 // In case LoadRequest failed before didCreateDataSource was called. | 4804 // In case LoadRequest failed before didCreateDataSource was called. |
4804 pending_navigation_params_.reset(); | 4805 pending_navigation_params_.reset(); |
4805 } | 4806 } |
4806 | 4807 |
4807 void RenderFrameImpl::UpdateEncoding(WebFrame* frame, | 4808 void RenderFrameImpl::UpdateEncoding(WebFrame* frame, |
4808 const std::string& encoding_name) { | 4809 const std::string& encoding_name) { |
4809 // Only update main frame's encoding_name. | 4810 // Only update main frame's encoding_name. |
4810 if (!frame->parent()) | 4811 if (!frame->parent()) |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5151 NavigationState* RenderFrameImpl::CreateNavigationStateFromPending() { | 5152 NavigationState* RenderFrameImpl::CreateNavigationStateFromPending() { |
5152 if (IsBrowserInitiated(pending_navigation_params_.get())) { | 5153 if (IsBrowserInitiated(pending_navigation_params_.get())) { |
5153 return NavigationStateImpl::CreateBrowserInitiated( | 5154 return NavigationStateImpl::CreateBrowserInitiated( |
5154 pending_navigation_params_->common_params, | 5155 pending_navigation_params_->common_params, |
5155 pending_navigation_params_->start_params, | 5156 pending_navigation_params_->start_params, |
5156 pending_navigation_params_->request_params); | 5157 pending_navigation_params_->request_params); |
5157 } | 5158 } |
5158 return NavigationStateImpl::CreateContentInitiated(); | 5159 return NavigationStateImpl::CreateContentInitiated(); |
5159 } | 5160 } |
5160 | 5161 |
5162 void RenderFrameImpl::UpdateNavigationState(DocumentState* document_state) { | |
5163 if (pending_navigation_params_) { | |
5164 // If this is a browser-initiated load that we didn't want to override | |
clamy
2015/11/04 13:33:44
nit: rephrase "...that doesn't override the naviga
Charlie Harrison
2015/11/04 14:13:49
Done.
| |
5165 // navigation_start, set it here. | |
5166 if (pending_navigation_params_->common_params.navigation_start.is_null()) { | |
5167 pending_navigation_params_->common_params.navigation_start = | |
5168 base::TimeTicks::Now(); | |
5169 } | |
5170 document_state->set_navigation_state(CreateNavigationStateFromPending()); | |
5171 pending_navigation_params_.reset(); | |
5172 } else { | |
5173 document_state->set_navigation_state( | |
5174 NavigationStateImpl::CreateContentInitiated()); | |
5175 } | |
5176 } | |
5177 | |
5161 #if defined(OS_ANDROID) | 5178 #if defined(OS_ANDROID) |
5162 WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer( | 5179 WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer( |
5163 WebMediaPlayerClient* client, | 5180 WebMediaPlayerClient* client, |
5164 WebMediaPlayerEncryptedMediaClient* encrypted_client, | 5181 WebMediaPlayerEncryptedMediaClient* encrypted_client, |
5165 const media::WebMediaPlayerParams& params) { | 5182 const media::WebMediaPlayerParams& params) { |
5166 scoped_refptr<StreamTextureFactory> stream_texture_factory; | 5183 scoped_refptr<StreamTextureFactory> stream_texture_factory; |
5167 if (SynchronousCompositorFactory* factory = | 5184 if (SynchronousCompositorFactory* factory = |
5168 SynchronousCompositorFactory::GetInstance()) { | 5185 SynchronousCompositorFactory::GetInstance()) { |
5169 stream_texture_factory = factory->CreateStreamTextureFactory(routing_id_); | 5186 stream_texture_factory = factory->CreateStreamTextureFactory(routing_id_); |
5170 } else { | 5187 } else { |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5288 mojo::ServiceProviderPtr service_provider; | 5305 mojo::ServiceProviderPtr service_provider; |
5289 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 5306 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
5290 request->url = mojo::String::From(url); | 5307 request->url = mojo::String::From(url); |
5291 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | 5308 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
5292 nullptr, nullptr, | 5309 nullptr, nullptr, |
5293 base::Bind(&OnGotContentHandlerID)); | 5310 base::Bind(&OnGotContentHandlerID)); |
5294 return service_provider.Pass(); | 5311 return service_provider.Pass(); |
5295 } | 5312 } |
5296 | 5313 |
5297 } // namespace content | 5314 } // namespace content |
OLD | NEW |