| 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 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 | 554 |
| 555 // Returns false unless this is a top-level navigation. | 555 // Returns false unless this is a top-level navigation. |
| 556 bool IsTopLevelNavigation(WebFrame* frame) { | 556 bool IsTopLevelNavigation(WebFrame* frame) { |
| 557 return frame->parent() == NULL; | 557 return frame->parent() == NULL; |
| 558 } | 558 } |
| 559 | 559 |
| 560 WebURLRequest CreateURLRequestForNavigation( | 560 WebURLRequest CreateURLRequestForNavigation( |
| 561 const CommonNavigationParams& common_params, | 561 const CommonNavigationParams& common_params, |
| 562 std::unique_ptr<StreamOverrideParameters> stream_override, | 562 std::unique_ptr<StreamOverrideParameters> stream_override, |
| 563 bool is_view_source_mode_enabled, | 563 bool is_view_source_mode_enabled, |
| 564 bool is_same_document_navigation, |
| 564 int nav_entry_id) { | 565 int nav_entry_id) { |
| 565 WebURLRequest request(common_params.url); | 566 WebURLRequest request(common_params.url); |
| 566 if (is_view_source_mode_enabled) | 567 if (is_view_source_mode_enabled) |
| 567 request.setCachePolicy(WebCachePolicy::ReturnCacheDataElseLoad); | 568 request.setCachePolicy(WebCachePolicy::ReturnCacheDataElseLoad); |
| 568 | 569 |
| 569 request.setHTTPMethod(WebString::fromUTF8(common_params.method)); | 570 request.setHTTPMethod(WebString::fromUTF8(common_params.method)); |
| 570 if (common_params.referrer.url.is_valid()) { | 571 if (common_params.referrer.url.is_valid()) { |
| 571 WebString web_referrer = WebSecurityPolicy::generateReferrerHeader( | 572 WebString web_referrer = WebSecurityPolicy::generateReferrerHeader( |
| 572 common_params.referrer.policy, | 573 common_params.referrer.policy, common_params.url, |
| 573 common_params.url, | |
| 574 WebString::fromUTF8(common_params.referrer.url.spec())); | 574 WebString::fromUTF8(common_params.referrer.url.spec())); |
| 575 if (!web_referrer.isEmpty()) { | 575 if (!web_referrer.isEmpty()) { |
| 576 request.setHTTPReferrer(web_referrer, common_params.referrer.policy); | 576 request.setHTTPReferrer(web_referrer, common_params.referrer.policy); |
| 577 request.addHTTPOriginIfNeeded( | 577 request.addHTTPOriginIfNeeded( |
| 578 WebSecurityOrigin(url::Origin(common_params.referrer.url))); | 578 WebSecurityOrigin(url::Origin(common_params.referrer.url))); |
| 579 } | 579 } |
| 580 } | 580 } |
| 581 | 581 |
| 582 request.setIsSameDocumentNavigation(is_same_document_navigation); |
| 582 request.setPreviewsState( | 583 request.setPreviewsState( |
| 583 static_cast<WebURLRequest::PreviewsState>(common_params.previews_state)); | 584 static_cast<WebURLRequest::PreviewsState>(common_params.previews_state)); |
| 584 | 585 |
| 585 RequestExtraData* extra_data = new RequestExtraData(); | 586 RequestExtraData* extra_data = new RequestExtraData(); |
| 586 extra_data->set_stream_override(std::move(stream_override)); | 587 extra_data->set_stream_override(std::move(stream_override)); |
| 587 extra_data->set_navigation_initiated_by_renderer(nav_entry_id == 0); | 588 extra_data->set_navigation_initiated_by_renderer(nav_entry_id == 0); |
| 588 request.setExtraData(extra_data); | 589 request.setExtraData(extra_data); |
| 589 | 590 |
| 590 // Set the ui timestamp for this navigation. Currently the timestamp here is | 591 // Set the ui timestamp for this navigation. Currently the timestamp here is |
| 591 // only non empty when the navigation was triggered by an Android intent. The | 592 // only non empty when the navigation was triggered by an Android intent. The |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 // version supported by blink. It will be passed back to the renderer in the | 632 // version supported by blink. It will be passed back to the renderer in the |
| 632 // CommitNavigation IPC, and then back to the browser again in the | 633 // CommitNavigation IPC, and then back to the browser again in the |
| 633 // DidCommitProvisionalLoad and the DocumentLoadComplete IPCs. | 634 // DidCommitProvisionalLoad and the DocumentLoadComplete IPCs. |
| 634 base::TimeTicks ui_timestamp = | 635 base::TimeTicks ui_timestamp = |
| 635 base::TimeTicks() + | 636 base::TimeTicks() + |
| 636 base::TimeDelta::FromSecondsD(info.urlRequest.uiStartTime()); | 637 base::TimeDelta::FromSecondsD(info.urlRequest.uiStartTime()); |
| 637 FrameMsg_UILoadMetricsReportType::Value report_type = | 638 FrameMsg_UILoadMetricsReportType::Value report_type = |
| 638 static_cast<FrameMsg_UILoadMetricsReportType::Value>( | 639 static_cast<FrameMsg_UILoadMetricsReportType::Value>( |
| 639 info.urlRequest.inputPerfMetricReportPolicy()); | 640 info.urlRequest.inputPerfMetricReportPolicy()); |
| 640 | 641 |
| 641 // Determine the navigation type. | 642 // No history-navigation is expected to happen. |
| 643 DCHECK(info.navigationType != blink::WebNavigationTypeBackForward); |
| 644 |
| 645 // Determine the navigation type. No same-document navigation is expected |
| 646 // because it is loaded immediately by the FrameLoader. |
| 642 FrameMsg_Navigate_Type::Value navigation_type = | 647 FrameMsg_Navigate_Type::Value navigation_type = |
| 643 FrameMsg_Navigate_Type::NORMAL; | 648 FrameMsg_Navigate_Type::DIFFERENT_DOCUMENT; |
| 644 if (info.navigationType == blink::WebNavigationTypeReload) { | 649 if (info.navigationType == blink::WebNavigationTypeReload) { |
| 645 if (load_flags & net::LOAD_BYPASS_CACHE) | 650 if (load_flags & net::LOAD_BYPASS_CACHE) |
| 646 navigation_type = FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE; | 651 navigation_type = FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE; |
| 647 else | 652 else |
| 648 navigation_type = FrameMsg_Navigate_Type::RELOAD; | 653 navigation_type = FrameMsg_Navigate_Type::RELOAD; |
| 649 } | 654 } |
| 650 | 655 |
| 651 const RequestExtraData* extra_data = | 656 const RequestExtraData* extra_data = |
| 652 static_cast<RequestExtraData*>(info.urlRequest.getExtraData()); | 657 static_cast<RequestExtraData*>(info.urlRequest.getExtraData()); |
| 653 DCHECK(extra_data); | 658 DCHECK(extra_data); |
| 654 return CommonNavigationParams( | 659 return CommonNavigationParams( |
| 655 info.urlRequest.url(), referrer, extra_data->transition_type(), | 660 info.urlRequest.url(), referrer, extra_data->transition_type(), |
| 656 navigation_type, true, info.replacesCurrentHistoryItem, ui_timestamp, | 661 navigation_type, true, info.replacesCurrentHistoryItem, ui_timestamp, |
| 657 report_type, GURL(), GURL(), | 662 report_type, GURL(), GURL(), |
| 658 static_cast<PreviewsState>(info.urlRequest.getPreviewsState()), | 663 static_cast<PreviewsState>(info.urlRequest.getPreviewsState()), |
| 659 base::TimeTicks::Now(), info.urlRequest.httpMethod().latin1(), | 664 base::TimeTicks::Now(), info.urlRequest.httpMethod().latin1(), |
| 660 GetRequestBodyForWebURLRequest(info.urlRequest)); | 665 GetRequestBodyForWebURLRequest(info.urlRequest)); |
| 661 } | 666 } |
| 662 | 667 |
| 663 media::Context3D GetSharedMainThreadContext3D( | 668 media::Context3D GetSharedMainThreadContext3D( |
| 664 scoped_refptr<ui::ContextProviderCommandBuffer> provider) { | 669 scoped_refptr<ui::ContextProviderCommandBuffer> provider) { |
| 665 if (!provider) | 670 if (!provider) |
| 666 return media::Context3D(); | 671 return media::Context3D(); |
| 667 return media::Context3D(provider->ContextGL(), provider->GrContext()); | 672 return media::Context3D(provider->ContextGL(), provider->GrContext()); |
| 668 } | 673 } |
| 669 | 674 |
| 670 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { | |
| 671 switch (navigation_type) { | |
| 672 case FrameMsg_Navigate_Type::RELOAD: | |
| 673 case FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE: | |
| 674 case FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL: | |
| 675 return true; | |
| 676 case FrameMsg_Navigate_Type::RESTORE: | |
| 677 case FrameMsg_Navigate_Type::RESTORE_WITH_POST: | |
| 678 case FrameMsg_Navigate_Type::NORMAL: | |
| 679 return false; | |
| 680 } | |
| 681 NOTREACHED(); | |
| 682 return false; | |
| 683 } | |
| 684 | |
| 685 WebFrameLoadType ReloadFrameLoadTypeFor( | 675 WebFrameLoadType ReloadFrameLoadTypeFor( |
| 686 FrameMsg_Navigate_Type::Value navigation_type) { | 676 FrameMsg_Navigate_Type::Value navigation_type) { |
| 687 switch (navigation_type) { | 677 switch (navigation_type) { |
| 688 case FrameMsg_Navigate_Type::RELOAD: | 678 case FrameMsg_Navigate_Type::RELOAD: |
| 689 case FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL: | 679 case FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL: |
| 690 return WebFrameLoadType::ReloadMainResource; | 680 return WebFrameLoadType::ReloadMainResource; |
| 681 |
| 691 case FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE: | 682 case FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE: |
| 692 return WebFrameLoadType::ReloadBypassingCache; | 683 return WebFrameLoadType::ReloadBypassingCache; |
| 693 case FrameMsg_Navigate_Type::RESTORE: | 684 |
| 694 case FrameMsg_Navigate_Type::RESTORE_WITH_POST: | 685 default: |
| 695 case FrameMsg_Navigate_Type::NORMAL: | |
| 696 NOTREACHED(); | 686 NOTREACHED(); |
| 697 return WebFrameLoadType::Standard; | 687 return WebFrameLoadType::Standard; |
| 698 } | 688 } |
| 699 NOTREACHED(); | |
| 700 return WebFrameLoadType::Standard; | |
| 701 } | 689 } |
| 702 | 690 |
| 703 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = | 691 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = |
| 704 nullptr; | 692 nullptr; |
| 705 | 693 |
| 706 WebString ConvertRelativePathToHtmlAttribute(const base::FilePath& path) { | 694 WebString ConvertRelativePathToHtmlAttribute(const base::FilePath& path) { |
| 707 DCHECK(!path.IsAbsolute()); | 695 DCHECK(!path.IsAbsolute()); |
| 708 return WebString::fromUTF8( | 696 return WebString::fromUTF8( |
| 709 std::string("./") + | 697 std::string("./") + |
| 710 path.NormalizePathSeparatorsTo(FILE_PATH_LITERAL('/')).AsUTF8Unsafe()); | 698 path.NormalizePathSeparatorsTo(FILE_PATH_LITERAL('/')).AsUTF8Unsafe()); |
| (...skipping 4463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5174 // RenderFrameImpl. | 5162 // RenderFrameImpl. |
| 5175 } | 5163 } |
| 5176 | 5164 |
| 5177 // PlzNavigate | 5165 // PlzNavigate |
| 5178 void RenderFrameImpl::OnFailedNavigation( | 5166 void RenderFrameImpl::OnFailedNavigation( |
| 5179 const CommonNavigationParams& common_params, | 5167 const CommonNavigationParams& common_params, |
| 5180 const RequestNavigationParams& request_params, | 5168 const RequestNavigationParams& request_params, |
| 5181 bool has_stale_copy_in_cache, | 5169 bool has_stale_copy_in_cache, |
| 5182 int error_code) { | 5170 int error_code) { |
| 5183 DCHECK(IsBrowserSideNavigationEnabled()); | 5171 DCHECK(IsBrowserSideNavigationEnabled()); |
| 5184 bool is_reload = IsReload(common_params.navigation_type); | 5172 bool is_reload = |
| 5173 FrameMsg_Navigate_Type::IsReload(common_params.navigation_type); |
| 5185 RenderFrameImpl::PrepareRenderViewForNavigation( | 5174 RenderFrameImpl::PrepareRenderViewForNavigation( |
| 5186 common_params.url, request_params); | 5175 common_params.url, request_params); |
| 5187 | 5176 |
| 5188 GetContentClient()->SetActiveURL(common_params.url); | 5177 GetContentClient()->SetActiveURL(common_params.url); |
| 5189 | 5178 |
| 5190 // If this frame isn't in the same process as the main frame, it may naively | 5179 // If this frame isn't in the same process as the main frame, it may naively |
| 5191 // assume that this is the first navigation in the iframe, but this may not | 5180 // assume that this is the first navigation in the iframe, but this may not |
| 5192 // actually be the case. Inform the frame's state machine if this frame has | 5181 // actually be the case. Inform the frame's state machine if this frame has |
| 5193 // already committed other loads. | 5182 // already committed other loads. |
| 5194 if (request_params.has_committed_real_load && frame_->parent()) | 5183 if (request_params.has_committed_real_load && frame_->parent()) |
| 5195 frame_->setCommittedFirstRealLoad(); | 5184 frame_->setCommittedFirstRealLoad(); |
| 5196 | 5185 |
| 5197 pending_navigation_params_.reset(new NavigationParams( | 5186 pending_navigation_params_.reset(new NavigationParams( |
| 5198 common_params, StartNavigationParams(), request_params)); | 5187 common_params, StartNavigationParams(), request_params)); |
| 5199 | 5188 |
| 5200 // Send the provisional load failure. | 5189 // Send the provisional load failure. |
| 5201 blink::WebURLError error = | 5190 blink::WebURLError error = |
| 5202 CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); | 5191 CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); |
| 5203 WebURLRequest failed_request = CreateURLRequestForNavigation( | 5192 WebURLRequest failed_request = CreateURLRequestForNavigation( |
| 5204 common_params, std::unique_ptr<StreamOverrideParameters>(), | 5193 common_params, std::unique_ptr<StreamOverrideParameters>(), |
| 5205 frame_->isViewSourceModeEnabled(), request_params.nav_entry_id); | 5194 frame_->isViewSourceModeEnabled(), |
| 5195 false, // is_same_document_navigation |
| 5196 request_params.nav_entry_id); |
| 5206 | 5197 |
| 5207 if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { | 5198 if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { |
| 5208 // The browser expects this frame to be loading an error page. Inform it | 5199 // The browser expects this frame to be loading an error page. Inform it |
| 5209 // that the load stopped. | 5200 // that the load stopped. |
| 5210 Send(new FrameHostMsg_DidStopLoading(routing_id_)); | 5201 Send(new FrameHostMsg_DidStopLoading(routing_id_)); |
| 5211 browser_side_navigation_pending_ = false; | 5202 browser_side_navigation_pending_ = false; |
| 5212 return; | 5203 return; |
| 5213 } | 5204 } |
| 5214 | 5205 |
| 5215 // On load failure, a frame can ask its owner to render fallback content. | 5206 // On load failure, a frame can ask its owner to render fallback content. |
| (...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5822 | 5813 |
| 5823 void RenderFrameImpl::NavigateInternal( | 5814 void RenderFrameImpl::NavigateInternal( |
| 5824 const CommonNavigationParams& common_params, | 5815 const CommonNavigationParams& common_params, |
| 5825 const StartNavigationParams& start_params, | 5816 const StartNavigationParams& start_params, |
| 5826 const RequestNavigationParams& request_params, | 5817 const RequestNavigationParams& request_params, |
| 5827 std::unique_ptr<StreamOverrideParameters> stream_params) { | 5818 std::unique_ptr<StreamOverrideParameters> stream_params) { |
| 5828 bool browser_side_navigation = IsBrowserSideNavigationEnabled(); | 5819 bool browser_side_navigation = IsBrowserSideNavigationEnabled(); |
| 5829 | 5820 |
| 5830 // Lower bound for browser initiated navigation start time. | 5821 // Lower bound for browser initiated navigation start time. |
| 5831 base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); | 5822 base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); |
| 5832 bool is_reload = IsReload(common_params.navigation_type); | 5823 bool is_reload = |
| 5824 FrameMsg_Navigate_Type::IsReload(common_params.navigation_type); |
| 5833 bool is_history_navigation = request_params.page_state.IsValid(); | 5825 bool is_history_navigation = request_params.page_state.IsValid(); |
| 5834 WebCachePolicy cache_policy = WebCachePolicy::UseProtocolCachePolicy; | 5826 WebCachePolicy cache_policy = WebCachePolicy::UseProtocolCachePolicy; |
| 5835 RenderFrameImpl::PrepareRenderViewForNavigation( | 5827 RenderFrameImpl::PrepareRenderViewForNavigation( |
| 5836 common_params.url, request_params); | 5828 common_params.url, request_params); |
| 5837 | 5829 |
| 5838 GetContentClient()->SetActiveURL(common_params.url); | 5830 GetContentClient()->SetActiveURL(common_params.url); |
| 5839 | 5831 |
| 5840 // If this frame isn't in the same process as the main frame, it may naively | 5832 // If this frame isn't in the same process as the main frame, it may naively |
| 5841 // assume that this is the first navigation in the iframe, but this may not | 5833 // assume that this is the first navigation in the iframe, but this may not |
| 5842 // actually be the case. Inform the frame's state machine if this frame has | 5834 // actually be the case. Inform the frame's state machine if this frame has |
| (...skipping 25 matching lines...) Expand all Loading... |
| 5868 // Create parameters for a standard navigation, indicating whether it should | 5860 // Create parameters for a standard navigation, indicating whether it should |
| 5869 // replace the current NavigationEntry. | 5861 // replace the current NavigationEntry. |
| 5870 blink::WebFrameLoadType load_type = | 5862 blink::WebFrameLoadType load_type = |
| 5871 common_params.should_replace_current_entry | 5863 common_params.should_replace_current_entry |
| 5872 ? blink::WebFrameLoadType::ReplaceCurrentItem | 5864 ? blink::WebFrameLoadType::ReplaceCurrentItem |
| 5873 : blink::WebFrameLoadType::Standard; | 5865 : blink::WebFrameLoadType::Standard; |
| 5874 blink::WebHistoryLoadType history_load_type = | 5866 blink::WebHistoryLoadType history_load_type = |
| 5875 blink::WebHistoryDifferentDocumentLoad; | 5867 blink::WebHistoryDifferentDocumentLoad; |
| 5876 bool should_load_request = false; | 5868 bool should_load_request = false; |
| 5877 WebHistoryItem item_for_history_navigation; | 5869 WebHistoryItem item_for_history_navigation; |
| 5878 WebURLRequest request = | 5870 |
| 5879 CreateURLRequestForNavigation(common_params, std::move(stream_params), | 5871 // Enforce same-document navigation from the browser only if |
| 5880 frame_->isViewSourceModeEnabled(), | 5872 // browser-side-navigation is enabled. |
| 5881 request_params.nav_entry_id); | 5873 bool is_same_document = |
| 5874 IsBrowserSideNavigationEnabled() && |
| 5875 FrameMsg_Navigate_Type::IsSameDocument(common_params.navigation_type); |
| 5876 |
| 5877 WebURLRequest request = CreateURLRequestForNavigation( |
| 5878 common_params, std::move(stream_params), |
| 5879 frame_->isViewSourceModeEnabled(), is_same_document, |
| 5880 request_params.nav_entry_id); |
| 5882 request.setFrameType(IsTopLevelNavigation(frame_) | 5881 request.setFrameType(IsTopLevelNavigation(frame_) |
| 5883 ? blink::WebURLRequest::FrameTypeTopLevel | 5882 ? blink::WebURLRequest::FrameTypeTopLevel |
| 5884 : blink::WebURLRequest::FrameTypeNested); | 5883 : blink::WebURLRequest::FrameTypeNested); |
| 5885 | 5884 |
| 5886 if (IsBrowserSideNavigationEnabled() && common_params.post_data) | 5885 if (IsBrowserSideNavigationEnabled() && common_params.post_data) |
| 5887 request.setHTTPBody(GetWebHTTPBodyForRequestBody(common_params.post_data)); | 5886 request.setHTTPBody(GetWebHTTPBodyForRequestBody(common_params.post_data)); |
| 5888 | 5887 |
| 5889 // Used to determine whether this frame is actually loading a request as part | 5888 // Used to determine whether this frame is actually loading a request as part |
| 5890 // of a history navigation. | 5889 // of a history navigation. |
| 5891 bool has_history_navigation_in_frame = false; | 5890 bool has_history_navigation_in_frame = false; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5925 // browser. | 5924 // browser. |
| 5926 DCHECK_NE(0, request_params.nav_entry_id); | 5925 DCHECK_NE(0, request_params.nav_entry_id); |
| 5927 std::unique_ptr<HistoryEntry> entry = | 5926 std::unique_ptr<HistoryEntry> entry = |
| 5928 PageStateToHistoryEntry(request_params.page_state); | 5927 PageStateToHistoryEntry(request_params.page_state); |
| 5929 if (entry) { | 5928 if (entry) { |
| 5930 // The browser process sends a single WebHistoryItem for this frame. | 5929 // The browser process sends a single WebHistoryItem for this frame. |
| 5931 // TODO(creis): Change PageState to FrameState. In the meantime, we | 5930 // TODO(creis): Change PageState to FrameState. In the meantime, we |
| 5932 // store the relevant frame's WebHistoryItem in the root of the | 5931 // store the relevant frame's WebHistoryItem in the root of the |
| 5933 // PageState. | 5932 // PageState. |
| 5934 item_for_history_navigation = entry->root(); | 5933 item_for_history_navigation = entry->root(); |
| 5935 history_load_type = request_params.is_same_document_history_load | 5934 switch (common_params.navigation_type) { |
| 5936 ? blink::WebHistorySameDocumentLoad | 5935 case FrameMsg_Navigate_Type::RELOAD: |
| 5937 : blink::WebHistoryDifferentDocumentLoad; | 5936 case FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE: |
| 5937 case FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL: |
| 5938 case FrameMsg_Navigate_Type::RESTORE: |
| 5939 case FrameMsg_Navigate_Type::RESTORE_WITH_POST: |
| 5940 case FrameMsg_Navigate_Type::HISTORY_DIFFERENT_DOCUMENT: |
| 5941 history_load_type = blink::WebHistoryDifferentDocumentLoad; |
| 5942 break; |
| 5943 case FrameMsg_Navigate_Type::HISTORY_SAME_DOCUMENT: |
| 5944 history_load_type = blink::WebHistorySameDocumentLoad; |
| 5945 break; |
| 5946 default: |
| 5947 NOTREACHED(); |
| 5948 history_load_type = blink::WebHistoryDifferentDocumentLoad; |
| 5949 } |
| 5938 load_type = request_params.is_history_navigation_in_new_child | 5950 load_type = request_params.is_history_navigation_in_new_child |
| 5939 ? blink::WebFrameLoadType::InitialHistoryLoad | 5951 ? blink::WebFrameLoadType::InitialHistoryLoad |
| 5940 : blink::WebFrameLoadType::BackForward; | 5952 : blink::WebFrameLoadType::BackForward; |
| 5941 should_load_request = true; | 5953 should_load_request = true; |
| 5942 | 5954 |
| 5943 // Keep track of which subframes the browser process has history items | 5955 // Keep track of which subframes the browser process has history items |
| 5944 // for during a history navigation. | 5956 // for during a history navigation. |
| 5945 history_subframe_unique_names_ = request_params.subframe_unique_names; | 5957 history_subframe_unique_names_ = request_params.subframe_unique_names; |
| 5946 | 5958 |
| 5947 if (history_load_type == blink::WebHistorySameDocumentLoad) { | 5959 if (history_load_type == blink::WebHistorySameDocumentLoad) { |
| (...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6826 // event target. Potentially a Pepper plugin will receive the event. | 6838 // event target. Potentially a Pepper plugin will receive the event. |
| 6827 // In order to tell whether a plugin gets the last mouse event and which it | 6839 // In order to tell whether a plugin gets the last mouse event and which it |
| 6828 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6840 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
| 6829 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6841 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
| 6830 // |pepper_last_mouse_event_target_|. | 6842 // |pepper_last_mouse_event_target_|. |
| 6831 pepper_last_mouse_event_target_ = nullptr; | 6843 pepper_last_mouse_event_target_ = nullptr; |
| 6832 #endif | 6844 #endif |
| 6833 } | 6845 } |
| 6834 | 6846 |
| 6835 } // namespace content | 6847 } // namespace content |
| OLD | NEW |