| 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 2703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2714 | 2714 |
| 2715 // Update the request time if WebKit has better knowledge of it. | 2715 // Update the request time if WebKit has better knowledge of it. |
| 2716 if (document_state->request_time().is_null() && | 2716 if (document_state->request_time().is_null() && |
| 2717 triggering_event_time != 0.0) { | 2717 triggering_event_time != 0.0) { |
| 2718 document_state->set_request_time(Time::FromDoubleT(triggering_event_time)); | 2718 document_state->set_request_time(Time::FromDoubleT(triggering_event_time)); |
| 2719 } | 2719 } |
| 2720 | 2720 |
| 2721 // Start time is only set after request time. | 2721 // Start time is only set after request time. |
| 2722 document_state->set_start_load_time(Time::Now()); | 2722 document_state->set_start_load_time(Time::Now()); |
| 2723 | 2723 |
| 2724 NavigationStateImpl* navigation_state = static_cast<NavigationStateImpl*>( |
| 2725 document_state->navigation_state()); |
| 2724 bool is_top_most = !frame->parent(); | 2726 bool is_top_most = !frame->parent(); |
| 2725 if (is_top_most) { | 2727 if (is_top_most) { |
| 2726 render_view_->set_navigation_gesture( | 2728 render_view_->set_navigation_gesture( |
| 2727 WebUserGestureIndicator::isProcessingUserGesture() ? | 2729 WebUserGestureIndicator::isProcessingUserGesture() ? |
| 2728 NavigationGestureUser : NavigationGestureAuto); | 2730 NavigationGestureUser : NavigationGestureAuto); |
| 2729 } else if (ds->replacesCurrentHistoryItem()) { | 2731 } else if (ds->replacesCurrentHistoryItem()) { |
| 2730 // Subframe navigations that don't add session history items must be | 2732 // Subframe navigations that don't add session history items must be |
| 2731 // marked with AUTO_SUBFRAME. See also didFailProvisionalLoad for how we | 2733 // marked with AUTO_SUBFRAME. See also didFailProvisionalLoad for how we |
| 2732 // handle loading of error pages. | 2734 // handle loading of error pages. |
| 2733 static_cast<NavigationStateImpl*>(document_state->navigation_state()) | 2735 navigation_state->set_transition_type(ui::PAGE_TRANSITION_AUTO_SUBFRAME); |
| 2734 ->set_transition_type(ui::PAGE_TRANSITION_AUTO_SUBFRAME); | |
| 2735 } | 2736 } |
| 2736 | 2737 |
| 2738 base::TimeTicks navigation_start = |
| 2739 navigation_state->common_params().navigation_start; |
| 2740 DCHECK(!navigation_start.is_null()); |
| 2741 |
| 2737 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), | 2742 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), |
| 2738 DidStartProvisionalLoad(frame)); | 2743 DidStartProvisionalLoad(frame)); |
| 2739 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); | 2744 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); |
| 2740 | 2745 |
| 2741 Send(new FrameHostMsg_DidStartProvisionalLoad(routing_id_, | 2746 Send(new FrameHostMsg_DidStartProvisionalLoad( |
| 2742 ds->request().url())); | 2747 routing_id_, ds->request().url(), navigation_start)); |
| 2743 } | 2748 } |
| 2744 | 2749 |
| 2745 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( | 2750 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( |
| 2746 blink::WebLocalFrame* frame) { | 2751 blink::WebLocalFrame* frame) { |
| 2747 DCHECK(!frame_ || frame_ == frame); | 2752 DCHECK(!frame_ || frame_ == frame); |
| 2748 | 2753 |
| 2749 // We don't use HistoryController in OOPIF enabled modes. | 2754 // We don't use HistoryController in OOPIF enabled modes. |
| 2750 if (SiteIsolationPolicy::UseSubframeNavigationEntries()) | 2755 if (SiteIsolationPolicy::UseSubframeNavigationEntries()) |
| 2751 return; | 2756 return; |
| 2752 | 2757 |
| (...skipping 1590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4343 RenderFrameImpl::PrepareRenderViewForNavigation( | 4348 RenderFrameImpl::PrepareRenderViewForNavigation( |
| 4344 common_params.url, request_params, &is_reload, &cache_policy); | 4349 common_params.url, request_params, &is_reload, &cache_policy); |
| 4345 | 4350 |
| 4346 GetContentClient()->SetActiveURL(common_params.url); | 4351 GetContentClient()->SetActiveURL(common_params.url); |
| 4347 | 4352 |
| 4348 pending_navigation_params_.reset(new NavigationParams( | 4353 pending_navigation_params_.reset(new NavigationParams( |
| 4349 common_params, StartNavigationParams(), request_params)); | 4354 common_params, StartNavigationParams(), request_params)); |
| 4350 | 4355 |
| 4351 // Inform the browser of the start of the provisional load. This is needed so | 4356 // Inform the browser of the start of the provisional load. This is needed so |
| 4352 // that the load is properly tracked by the WebNavigation API. | 4357 // that the load is properly tracked by the WebNavigation API. |
| 4353 Send( | 4358 Send(new FrameHostMsg_DidStartProvisionalLoad( |
| 4354 new FrameHostMsg_DidStartProvisionalLoad(routing_id_, common_params.url)); | 4359 routing_id_, common_params.url, common_params.navigation_start)); |
| 4355 | 4360 |
| 4356 // Send the provisional load failure. | 4361 // Send the provisional load failure. |
| 4357 blink::WebURLError error = | 4362 blink::WebURLError error = |
| 4358 CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); | 4363 CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); |
| 4359 WebURLRequest failed_request = CreateURLRequestForNavigation( | 4364 WebURLRequest failed_request = CreateURLRequestForNavigation( |
| 4360 common_params, scoped_ptr<StreamOverrideParameters>(), | 4365 common_params, scoped_ptr<StreamOverrideParameters>(), |
| 4361 frame_->isViewSourceModeEnabled()); | 4366 frame_->isViewSourceModeEnabled()); |
| 4362 SendFailedProvisionalLoad(failed_request, error, frame_); | 4367 SendFailedProvisionalLoad(failed_request, error, frame_); |
| 4363 | 4368 |
| 4364 if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { | 4369 if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4678 new NavigationParams(common_params, start_params, request_params)); | 4683 new NavigationParams(common_params, start_params, request_params)); |
| 4679 | 4684 |
| 4680 // Unless the load is a WebFrameLoadType::Standard, this should remain | 4685 // Unless the load is a WebFrameLoadType::Standard, this should remain |
| 4681 // uninitialized. It will be updated when the load type is determined to be | 4686 // uninitialized. It will be updated when the load type is determined to be |
| 4682 // Standard, or after the previous document's unload handler has been | 4687 // Standard, or after the previous document's unload handler has been |
| 4683 // triggered. This occurs in UpdateNavigationState. | 4688 // triggered. This occurs in UpdateNavigationState. |
| 4684 // TODO(csharrison) See if we can always use the browser timestamp. | 4689 // TODO(csharrison) See if we can always use the browser timestamp. |
| 4685 pending_navigation_params_->common_params.navigation_start = | 4690 pending_navigation_params_->common_params.navigation_start = |
| 4686 base::TimeTicks(); | 4691 base::TimeTicks(); |
| 4687 | 4692 |
| 4693 // Unless the load is a WebFrameLoadType::Standard, this should remain |
| 4694 // uninitialized. It will be updated when the load type is determined to be |
| 4695 // Standard, or after the previous document's unload handler has been |
| 4696 // triggered. This occurs in UpdateNavigationState. |
| 4697 // TODO(csharrison) See if we can always use the browser timestamp. |
| 4698 pending_navigation_params_->common_params.navigation_start = |
| 4699 base::TimeTicks(); |
| 4700 |
| 4688 // Create parameters for a standard navigation. | 4701 // Create parameters for a standard navigation. |
| 4689 blink::WebFrameLoadType load_type = blink::WebFrameLoadType::Standard; | 4702 blink::WebFrameLoadType load_type = blink::WebFrameLoadType::Standard; |
| 4690 bool should_load_request = false; | 4703 bool should_load_request = false; |
| 4691 WebHistoryItem item_for_history_navigation; | 4704 WebHistoryItem item_for_history_navigation; |
| 4692 WebURLRequest request = CreateURLRequestForNavigation( | 4705 WebURLRequest request = CreateURLRequestForNavigation( |
| 4693 common_params, stream_params.Pass(), frame_->isViewSourceModeEnabled()); | 4706 common_params, stream_params.Pass(), frame_->isViewSourceModeEnabled()); |
| 4694 #if defined(OS_ANDROID) | 4707 #if defined(OS_ANDROID) |
| 4695 request.setHasUserGesture(start_params.has_user_gesture); | 4708 request.setHasUserGesture(start_params.has_user_gesture); |
| 4696 #endif | 4709 #endif |
| 4697 | 4710 |
| (...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5360 media::ConvertToSwitchOutputDeviceCB(web_callbacks); | 5373 media::ConvertToSwitchOutputDeviceCB(web_callbacks); |
| 5361 scoped_refptr<media::AudioOutputDevice> device = | 5374 scoped_refptr<media::AudioOutputDevice> device = |
| 5362 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), | 5375 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), |
| 5363 security_origin); | 5376 security_origin); |
| 5364 media::OutputDeviceStatus status = device->GetDeviceStatus(); | 5377 media::OutputDeviceStatus status = device->GetDeviceStatus(); |
| 5365 device->Stop(); | 5378 device->Stop(); |
| 5366 callback.Run(status); | 5379 callback.Run(status); |
| 5367 } | 5380 } |
| 5368 | 5381 |
| 5369 } // namespace content | 5382 } // namespace content |
| OLD | NEW |