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 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1052 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest, | 1052 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequest, |
1053 OnJavaScriptExecuteRequest) | 1053 OnJavaScriptExecuteRequest) |
1054 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestForTests, | 1054 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestForTests, |
1055 OnJavaScriptExecuteRequestForTests) | 1055 OnJavaScriptExecuteRequestForTests) |
1056 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestInIsolatedWorld, | 1056 IPC_MESSAGE_HANDLER(FrameMsg_JavaScriptExecuteRequestInIsolatedWorld, |
1057 OnJavaScriptExecuteRequestInIsolatedWorld) | 1057 OnJavaScriptExecuteRequestInIsolatedWorld) |
1058 IPC_MESSAGE_HANDLER(FrameMsg_VisualStateRequest, | 1058 IPC_MESSAGE_HANDLER(FrameMsg_VisualStateRequest, |
1059 OnVisualStateRequest) | 1059 OnVisualStateRequest) |
1060 IPC_MESSAGE_HANDLER(FrameMsg_SetEditableSelectionOffsets, | 1060 IPC_MESSAGE_HANDLER(FrameMsg_SetEditableSelectionOffsets, |
1061 OnSetEditableSelectionOffsets) | 1061 OnSetEditableSelectionOffsets) |
1062 IPC_MESSAGE_HANDLER(FrameMsg_SetupTransitionView, OnSetupTransitionView) | |
1063 IPC_MESSAGE_HANDLER(FrameMsg_BeginExitTransition, OnBeginExitTransition) | |
1064 IPC_MESSAGE_HANDLER(FrameMsg_RevertExitTransition, OnRevertExitTransition) | |
1065 IPC_MESSAGE_HANDLER(FrameMsg_HideTransitionElements, | |
1066 OnHideTransitionElements) | |
1067 IPC_MESSAGE_HANDLER(FrameMsg_ShowTransitionElements, | |
1068 OnShowTransitionElements) | |
1069 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload) | 1062 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload) |
1070 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest, | 1063 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest, |
1071 OnTextSurroundingSelectionRequest) | 1064 OnTextSurroundingSelectionRequest) |
1072 IPC_MESSAGE_HANDLER(FrameMsg_AddStyleSheetByURL, | |
1073 OnAddStyleSheetByURL) | |
1074 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, | 1065 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, |
1075 OnSetAccessibilityMode) | 1066 OnSetAccessibilityMode) |
1076 IPC_MESSAGE_HANDLER(AccessibilityMsg_SnapshotTree, | 1067 IPC_MESSAGE_HANDLER(AccessibilityMsg_SnapshotTree, |
1077 OnSnapshotAccessibilityTree) | 1068 OnSnapshotAccessibilityTree) |
1078 IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener) | 1069 IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener) |
1079 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation) | 1070 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation) |
1080 IPC_MESSAGE_HANDLER(FrameMsg_DidUpdateSandboxFlags, OnDidUpdateSandboxFlags) | 1071 IPC_MESSAGE_HANDLER(FrameMsg_DidUpdateSandboxFlags, OnDidUpdateSandboxFlags) |
1081 IPC_MESSAGE_HANDLER(FrameMsg_SetTextTrackSettings, | 1072 IPC_MESSAGE_HANDLER(FrameMsg_SetTextTrackSettings, |
1082 OnTextTrackSettingsChanged) | 1073 OnTextTrackSettingsChanged) |
1083 IPC_MESSAGE_HANDLER(FrameMsg_PostMessageEvent, OnPostMessageEvent) | 1074 IPC_MESSAGE_HANDLER(FrameMsg_PostMessageEvent, OnPostMessageEvent) |
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1732 return; | 1723 return; |
1733 } | 1724 } |
1734 | 1725 |
1735 Send(new FrameHostMsg_TextSurroundingSelectionResponse( | 1726 Send(new FrameHostMsg_TextSurroundingSelectionResponse( |
1736 routing_id_, | 1727 routing_id_, |
1737 surroundingText.textContent(), | 1728 surroundingText.textContent(), |
1738 surroundingText.startOffsetInTextContent(), | 1729 surroundingText.startOffsetInTextContent(), |
1739 surroundingText.endOffsetInTextContent())); | 1730 surroundingText.endOffsetInTextContent())); |
1740 } | 1731 } |
1741 | 1732 |
1742 void RenderFrameImpl::OnAddStyleSheetByURL(const std::string& url) { | |
1743 frame_->addStyleSheetByURL(WebString::fromUTF8(url)); | |
1744 } | |
1745 | |
1746 void RenderFrameImpl::OnSetupTransitionView(const std::string& markup) { | |
1747 frame_->document().setIsTransitionDocument(true); | |
1748 frame_->navigateToSandboxedMarkup(WebData(markup.data(), markup.length())); | |
1749 } | |
1750 | |
1751 void RenderFrameImpl::OnBeginExitTransition(const std::string& css_selector, | |
1752 bool exit_to_native_app) { | |
1753 frame_->document().setIsTransitionDocument(true); | |
1754 frame_->document().beginExitTransition(WebString::fromUTF8(css_selector), | |
1755 exit_to_native_app); | |
1756 } | |
1757 | |
1758 void RenderFrameImpl::OnRevertExitTransition() { | |
1759 frame_->document().setIsTransitionDocument(false); | |
1760 frame_->document().revertExitTransition(); | |
1761 } | |
1762 | |
1763 void RenderFrameImpl::OnHideTransitionElements( | |
1764 const std::string& css_selector) { | |
1765 frame_->document().hideTransitionElements(WebString::fromUTF8(css_selector)); | |
1766 } | |
1767 | |
1768 void RenderFrameImpl::OnShowTransitionElements( | |
1769 const std::string& css_selector) { | |
1770 frame_->document().showTransitionElements(WebString::fromUTF8(css_selector)); | |
1771 } | |
1772 | |
1773 bool RenderFrameImpl::RunJavaScriptMessage(JavaScriptMessageType type, | 1733 bool RenderFrameImpl::RunJavaScriptMessage(JavaScriptMessageType type, |
1774 const base::string16& message, | 1734 const base::string16& message, |
1775 const base::string16& default_value, | 1735 const base::string16& default_value, |
1776 const GURL& frame_url, | 1736 const GURL& frame_url, |
1777 base::string16* result) { | 1737 base::string16* result) { |
1778 // Don't allow further dialogs if we are waiting to swap out, since the | 1738 // Don't allow further dialogs if we are waiting to swap out, since the |
1779 // PageGroupLoadDeferrer in our stack prevents it. | 1739 // PageGroupLoadDeferrer in our stack prevents it. |
1780 if (render_view()->suppress_dialogs_until_swap_out_) | 1740 if (render_view()->suppress_dialogs_until_swap_out_) |
1781 return false; | 1741 return false; |
1782 | 1742 |
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2516 SERVICE_WORKER_PROVIDER_FOR_WINDOW)); | 2476 SERVICE_WORKER_PROVIDER_FOR_WINDOW)); |
2517 ServiceWorkerNetworkProvider::AttachToDocumentState( | 2477 ServiceWorkerNetworkProvider::AttachToDocumentState( |
2518 DocumentState::FromDataSource(datasource), | 2478 DocumentState::FromDataSource(datasource), |
2519 network_provider.Pass()); | 2479 network_provider.Pass()); |
2520 } | 2480 } |
2521 } | 2481 } |
2522 | 2482 |
2523 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, | 2483 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
2524 bool is_transition_navigation, | 2484 bool is_transition_navigation, |
2525 double triggering_event_time) { | 2485 double triggering_event_time) { |
| 2486 didStartProvisionalLoad(frame, triggering_event_time); |
| 2487 } |
| 2488 |
| 2489 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
| 2490 double triggering_event_time) { |
2526 DCHECK(!frame_ || frame_ == frame); | 2491 DCHECK(!frame_ || frame_ == frame); |
2527 WebDataSource* ds = frame->provisionalDataSource(); | 2492 WebDataSource* ds = frame->provisionalDataSource(); |
2528 | 2493 |
2529 // In fast/loader/stop-provisional-loads.html, we abort the load before this | 2494 // In fast/loader/stop-provisional-loads.html, we abort the load before this |
2530 // callback is invoked. | 2495 // callback is invoked. |
2531 if (!ds) | 2496 if (!ds) |
2532 return; | 2497 return; |
2533 | 2498 |
2534 TRACE_EVENT2("navigation", "RenderFrameImpl::didStartProvisionalLoad", | 2499 TRACE_EVENT2("navigation", "RenderFrameImpl::didStartProvisionalLoad", |
2535 "id", routing_id_, "url", ds->request().url().string().utf8()); | 2500 "id", routing_id_, "url", ds->request().url().string().utf8()); |
(...skipping 24 matching lines...) Expand all Loading... |
2560 // handle loading of error pages. | 2525 // handle loading of error pages. |
2561 static_cast<NavigationStateImpl*>(document_state->navigation_state()) | 2526 static_cast<NavigationStateImpl*>(document_state->navigation_state()) |
2562 ->set_transition_type(ui::PAGE_TRANSITION_AUTO_SUBFRAME); | 2527 ->set_transition_type(ui::PAGE_TRANSITION_AUTO_SUBFRAME); |
2563 } | 2528 } |
2564 | 2529 |
2565 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), | 2530 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), |
2566 DidStartProvisionalLoad(frame)); | 2531 DidStartProvisionalLoad(frame)); |
2567 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); | 2532 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); |
2568 | 2533 |
2569 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( | 2534 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( |
2570 routing_id_, ds->request().url(), is_transition_navigation)); | 2535 routing_id_, ds->request().url())); |
2571 } | 2536 } |
2572 | 2537 |
2573 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( | 2538 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( |
2574 blink::WebLocalFrame* frame) { | 2539 blink::WebLocalFrame* frame) { |
2575 DCHECK(!frame_ || frame_ == frame); | 2540 DCHECK(!frame_ || frame_ == frame); |
2576 render_view_->history_controller()->RemoveChildrenForRedirect(this); | 2541 render_view_->history_controller()->RemoveChildrenForRedirect(this); |
2577 } | 2542 } |
2578 | 2543 |
2579 void RenderFrameImpl::didFailProvisionalLoad( | 2544 void RenderFrameImpl::didFailProvisionalLoad( |
2580 blink::WebLocalFrame* frame, | 2545 blink::WebLocalFrame* frame, |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2946 didCommitProvisionalLoad(frame, item, commit_type); | 2911 didCommitProvisionalLoad(frame, item, commit_type); |
2947 } | 2912 } |
2948 | 2913 |
2949 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame) { | 2914 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame) { |
2950 DCHECK(!frame_ || frame_ == frame); | 2915 DCHECK(!frame_ || frame_ == frame); |
2951 // TODO(nasko): Move implementation here. Needed methods: | 2916 // TODO(nasko): Move implementation here. Needed methods: |
2952 // * StartNavStateSyncTimerIfNecessary | 2917 // * StartNavStateSyncTimerIfNecessary |
2953 render_view_->didUpdateCurrentHistoryItem(frame); | 2918 render_view_->didUpdateCurrentHistoryItem(frame); |
2954 } | 2919 } |
2955 | 2920 |
2956 void RenderFrameImpl::addNavigationTransitionData( | |
2957 const blink::WebTransitionElementData& data) { | |
2958 FrameHostMsg_AddNavigationTransitionData_Params params; | |
2959 params.render_frame_id = routing_id_; | |
2960 params.allowed_destination_host_pattern = | |
2961 data.scope.utf8(); | |
2962 params.selector = data.selector.utf8(); | |
2963 params.markup = data.markup.utf8(); | |
2964 params.elements.resize(data.elements.size()); | |
2965 for (size_t i = 0; i < data.elements.size(); i++) { | |
2966 params.elements[i].id = data.elements[i].id.utf8(); | |
2967 params.elements[i].rect = gfx::Rect(data.elements[i].rect); | |
2968 } | |
2969 | |
2970 Send(new FrameHostMsg_AddNavigationTransitionData(params)); | |
2971 } | |
2972 | |
2973 void RenderFrameImpl::didChangeThemeColor() { | 2921 void RenderFrameImpl::didChangeThemeColor() { |
2974 if (frame_->parent()) | 2922 if (frame_->parent()) |
2975 return; | 2923 return; |
2976 | 2924 |
2977 Send(new FrameHostMsg_DidChangeThemeColor( | 2925 Send(new FrameHostMsg_DidChangeThemeColor( |
2978 routing_id_, frame_->document().themeColor())); | 2926 routing_id_, frame_->document().themeColor())); |
2979 } | 2927 } |
2980 | 2928 |
2981 void RenderFrameImpl::dispatchLoad() { | 2929 void RenderFrameImpl::dispatchLoad() { |
2982 Send(new FrameHostMsg_DispatchLoad(routing_id_)); | 2930 Send(new FrameHostMsg_DispatchLoad(routing_id_)); |
(...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4122 return; | 4070 return; |
4123 } | 4071 } |
4124 | 4072 |
4125 GetContentClient()->SetActiveURL(common_params.url); | 4073 GetContentClient()->SetActiveURL(common_params.url); |
4126 | 4074 |
4127 pending_navigation_params_.reset(new NavigationParams( | 4075 pending_navigation_params_.reset(new NavigationParams( |
4128 common_params, StartNavigationParams(), request_params)); | 4076 common_params, StartNavigationParams(), request_params)); |
4129 | 4077 |
4130 // Inform the browser of the start of the provisional load. This is needed so | 4078 // Inform the browser of the start of the provisional load. This is needed so |
4131 // that the load is properly tracked by the WebNavigation API. | 4079 // that the load is properly tracked by the WebNavigation API. |
4132 // TODO(clamy): Properly set is_transition_navigation. | |
4133 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( | 4080 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( |
4134 routing_id_, common_params.url, false)); | 4081 routing_id_, common_params.url)); |
4135 | 4082 |
4136 // Send the provisional load failure. | 4083 // Send the provisional load failure. |
4137 blink::WebURLError error = | 4084 blink::WebURLError error = |
4138 CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); | 4085 CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); |
4139 WebURLRequest failed_request = CreateURLRequestForNavigation( | 4086 WebURLRequest failed_request = CreateURLRequestForNavigation( |
4140 common_params, scoped_ptr<StreamOverrideParameters>(), | 4087 common_params, scoped_ptr<StreamOverrideParameters>(), |
4141 frame_->isViewSourceModeEnabled()); | 4088 frame_->isViewSourceModeEnabled()); |
4142 SendFailedProvisionalLoad(failed_request, error, frame_); | 4089 SendFailedProvisionalLoad(failed_request, error, frame_); |
4143 | 4090 |
4144 if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { | 4091 if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { |
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4966 #elif defined(ENABLE_BROWSER_CDMS) | 4913 #elif defined(ENABLE_BROWSER_CDMS) |
4967 cdm_manager_, | 4914 cdm_manager_, |
4968 #endif | 4915 #endif |
4969 this); | 4916 this); |
4970 } | 4917 } |
4971 | 4918 |
4972 return cdm_factory_; | 4919 return cdm_factory_; |
4973 } | 4920 } |
4974 | 4921 |
4975 } // namespace content | 4922 } // namespace content |
OLD | NEW |