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 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
790 IPC_MESSAGE_HANDLER(FrameMsg_SetupTransitionView, OnSetupTransitionView) | 790 IPC_MESSAGE_HANDLER(FrameMsg_SetupTransitionView, OnSetupTransitionView) |
791 IPC_MESSAGE_HANDLER(FrameMsg_BeginExitTransition, OnBeginExitTransition) | 791 IPC_MESSAGE_HANDLER(FrameMsg_BeginExitTransition, OnBeginExitTransition) |
792 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload) | 792 IPC_MESSAGE_HANDLER(FrameMsg_Reload, OnReload) |
793 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest, | 793 IPC_MESSAGE_HANDLER(FrameMsg_TextSurroundingSelectionRequest, |
794 OnTextSurroundingSelectionRequest) | 794 OnTextSurroundingSelectionRequest) |
795 IPC_MESSAGE_HANDLER(FrameMsg_AddStyleSheetByURL, | 795 IPC_MESSAGE_HANDLER(FrameMsg_AddStyleSheetByURL, |
796 OnAddStyleSheetByURL) | 796 OnAddStyleSheetByURL) |
797 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, | 797 IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, |
798 OnSetAccessibilityMode) | 798 OnSetAccessibilityMode) |
799 IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener) | 799 IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener) |
| 800 IPC_MESSAGE_HANDLER(FrameMsg_CommitNavigation, OnCommitNavigation) |
800 #if defined(OS_ANDROID) | 801 #if defined(OS_ANDROID) |
801 IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItems, OnSelectPopupMenuItems) | 802 IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItems, OnSelectPopupMenuItems) |
802 #elif defined(OS_MACOSX) | 803 #elif defined(OS_MACOSX) |
803 IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItem, OnSelectPopupMenuItem) | 804 IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItem, OnSelectPopupMenuItem) |
804 IPC_MESSAGE_HANDLER(InputMsg_CopyToFindPboard, OnCopyToFindPboard) | 805 IPC_MESSAGE_HANDLER(InputMsg_CopyToFindPboard, OnCopyToFindPboard) |
805 #endif | 806 #endif |
806 IPC_END_MESSAGE_MAP() | 807 IPC_END_MESSAGE_MAP() |
807 | 808 |
808 return handled; | 809 return handled; |
809 } | 810 } |
810 | 811 |
811 void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) { | 812 void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) { |
812 TRACE_EVENT2("navigation", "RenderFrameImpl::OnNavigate", | 813 TRACE_EVENT2("navigation", "RenderFrameImpl::OnNavigate", |
813 "id", routing_id_, "url", params.url.possibly_invalid_spec()); | 814 "id", routing_id_, |
814 MaybeHandleDebugURL(params.url); | 815 "url", params.common_params.url.possibly_invalid_spec()); |
| 816 MaybeHandleDebugURL(params.common_params.url); |
815 if (!render_view_->webview()) | 817 if (!render_view_->webview()) |
816 return; | 818 return; |
817 | 819 |
818 FOR_EACH_OBSERVER( | 820 FOR_EACH_OBSERVER(RenderViewObserver, |
819 RenderViewObserver, render_view_->observers_, Navigate(params.url)); | 821 render_view_->observers_, |
| 822 Navigate(params.common_params.url)); |
820 | 823 |
821 bool is_reload = RenderViewImpl::IsReload(params); | 824 bool is_reload = |
| 825 RenderViewImpl::IsReload(params.common_params.navigation_type); |
822 WebURLRequest::CachePolicy cache_policy = | 826 WebURLRequest::CachePolicy cache_policy = |
823 WebURLRequest::UseProtocolCachePolicy; | 827 WebURLRequest::UseProtocolCachePolicy; |
824 | 828 |
825 // If this is a stale back/forward (due to a recent navigation the browser | 829 // If this is a stale back/forward (due to a recent navigation the browser |
826 // didn't know about), ignore it. | 830 // didn't know about), ignore it. |
827 if (render_view_->IsBackForwardToStaleEntry(params, is_reload)) | 831 if (render_view_->IsBackForwardToStaleEntry(params, is_reload)) |
828 return; | 832 return; |
829 | 833 |
830 // Swap this renderer back in if necessary. | 834 // Swap this renderer back in if necessary. |
831 if (render_view_->is_swapped_out_ && | 835 if (render_view_->is_swapped_out_ && |
(...skipping 12 matching lines...) Expand all Loading... |
844 | 848 |
845 // We refresh timezone when a view is swapped in since timezone | 849 // We refresh timezone when a view is swapped in since timezone |
846 // can get out of sync when the system timezone is updated while | 850 // can get out of sync when the system timezone is updated while |
847 // the view is swapped out. | 851 // the view is swapped out. |
848 RenderThreadImpl::NotifyTimezoneChange(); | 852 RenderThreadImpl::NotifyTimezoneChange(); |
849 | 853 |
850 render_view_->SetSwappedOut(false); | 854 render_view_->SetSwappedOut(false); |
851 is_swapped_out_ = false; | 855 is_swapped_out_ = false; |
852 } | 856 } |
853 | 857 |
| 858 int pending_history_list_offset = params.pending_history_list_offset; |
| 859 int current_history_list_offset = params.current_history_list_offset; |
| 860 int current_history_list_length = params.current_history_list_length; |
854 if (params.should_clear_history_list) { | 861 if (params.should_clear_history_list) { |
855 CHECK_EQ(params.pending_history_list_offset, -1); | 862 CHECK_EQ(pending_history_list_offset, -1); |
856 CHECK_EQ(params.current_history_list_offset, -1); | 863 CHECK_EQ(current_history_list_offset, -1); |
857 CHECK_EQ(params.current_history_list_length, 0); | 864 CHECK_EQ(current_history_list_length, 0); |
858 } | 865 } |
859 render_view_->history_list_offset_ = params.current_history_list_offset; | 866 render_view_->history_list_offset_ = current_history_list_offset; |
860 render_view_->history_list_length_ = params.current_history_list_length; | 867 render_view_->history_list_length_ = current_history_list_length; |
861 if (render_view_->history_list_length_ >= 0) { | 868 if (render_view_->history_list_length_ >= 0) { |
862 render_view_->history_page_ids_.resize( | 869 render_view_->history_page_ids_.resize( |
863 render_view_->history_list_length_, -1); | 870 render_view_->history_list_length_, -1); |
864 } | 871 } |
865 if (params.pending_history_list_offset >= 0 && | 872 if (pending_history_list_offset >= 0 && |
866 params.pending_history_list_offset < render_view_->history_list_length_) { | 873 pending_history_list_offset < render_view_->history_list_length_) { |
867 render_view_->history_page_ids_[params.pending_history_list_offset] = | 874 render_view_->history_page_ids_[pending_history_list_offset] = |
868 params.page_id; | 875 params.page_id; |
869 } | 876 } |
870 | 877 |
871 GetContentClient()->SetActiveURL(params.url); | 878 GetContentClient()->SetActiveURL(params.common_params.url); |
872 | 879 |
873 WebFrame* frame = frame_; | 880 WebFrame* frame = frame_; |
874 if (!params.frame_to_navigate.empty()) { | 881 if (!params.frame_to_navigate.empty()) { |
875 // TODO(nasko): Move this lookup to the browser process. | 882 // TODO(nasko): Move this lookup to the browser process. |
876 frame = render_view_->webview()->findFrameByName( | 883 frame = render_view_->webview()->findFrameByName( |
877 WebString::fromUTF8(params.frame_to_navigate)); | 884 WebString::fromUTF8(params.frame_to_navigate)); |
878 CHECK(frame) << "Invalid frame name passed: " << params.frame_to_navigate; | 885 CHECK(frame) << "Invalid frame name passed: " << params.frame_to_navigate; |
879 } | 886 } |
880 | 887 |
881 if (is_reload && !render_view_->history_controller()->GetCurrentEntry()) { | 888 if (is_reload && !render_view_->history_controller()->GetCurrentEntry()) { |
882 // We cannot reload if we do not have any history state. This happens, for | 889 // We cannot reload if we do not have any history state. This happens, for |
883 // example, when recovering from a crash. | 890 // example, when recovering from a crash. |
884 is_reload = false; | 891 is_reload = false; |
885 cache_policy = WebURLRequest::ReloadIgnoringCacheData; | 892 cache_policy = WebURLRequest::ReloadIgnoringCacheData; |
886 } | 893 } |
887 | 894 |
888 render_view_->pending_navigation_params_.reset( | 895 render_view_->pending_navigation_params_.reset( |
889 new FrameMsg_Navigate_Params(params)); | 896 new FrameMsg_Navigate_Params(params)); |
890 | 897 |
891 // If we are reloading, then WebKit will use the history state of the current | 898 // If we are reloading, then WebKit will use the history state of the current |
892 // page, so we should just ignore any given history state. Otherwise, if we | 899 // page, so we should just ignore any given history state. Otherwise, if we |
893 // have history state, then we need to navigate to it, which corresponds to a | 900 // have history state, then we need to navigate to it, which corresponds to a |
894 // back/forward navigation event. | 901 // back/forward navigation event. |
895 if (is_reload) { | 902 if (is_reload) { |
896 bool reload_original_url = | 903 bool reload_original_url = |
897 (params.navigation_type == | 904 (params.common_params.navigation_type == |
898 FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL); | 905 FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL); |
899 bool ignore_cache = (params.navigation_type == | 906 bool ignore_cache = (params.common_params.navigation_type == |
900 FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE); | 907 FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE); |
901 | 908 |
902 if (reload_original_url) | 909 if (reload_original_url) |
903 frame->reloadWithOverrideURL(params.url, true); | 910 frame->reloadWithOverrideURL(params.common_params.url, true); |
904 else | 911 else |
905 frame->reload(ignore_cache); | 912 frame->reload(ignore_cache); |
906 } else if (params.page_state.IsValid()) { | 913 } else if (params.commit_params.page_state.IsValid()) { |
907 // We must know the page ID of the page we are navigating back to. | 914 // We must know the page ID of the page we are navigating back to. |
908 DCHECK_NE(params.page_id, -1); | 915 DCHECK_NE(params.page_id, -1); |
909 scoped_ptr<HistoryEntry> entry = | 916 scoped_ptr<HistoryEntry> entry = |
910 PageStateToHistoryEntry(params.page_state); | 917 PageStateToHistoryEntry(params.commit_params.page_state); |
911 if (entry) { | 918 if (entry) { |
912 // Ensure we didn't save the swapped out URL in UpdateState, since the | 919 // Ensure we didn't save the swapped out URL in UpdateState, since the |
913 // browser should never be telling us to navigate to swappedout://. | 920 // browser should never be telling us to navigate to swappedout://. |
914 CHECK(entry->root().urlString() != WebString::fromUTF8(kSwappedOutURL)); | 921 CHECK(entry->root().urlString() != WebString::fromUTF8(kSwappedOutURL)); |
915 render_view_->history_controller()->GoToEntry(entry.Pass(), cache_policy); | 922 render_view_->history_controller()->GoToEntry(entry.Pass(), cache_policy); |
916 } | 923 } |
917 } else if (!params.base_url_for_data_url.is_empty()) { | 924 } else if (!params.base_url_for_data_url.is_empty()) { |
918 // A loadData request with a specified base URL. | 925 // A loadData request with a specified base URL. |
919 std::string mime_type, charset, data; | 926 std::string mime_type, charset, data; |
920 if (net::DataURL::Parse(params.url, &mime_type, &charset, &data)) { | 927 if (net::DataURL::Parse( |
| 928 params.common_params.url, &mime_type, &charset, &data)) { |
921 frame->loadData( | 929 frame->loadData( |
922 WebData(data.c_str(), data.length()), | 930 WebData(data.c_str(), data.length()), |
923 WebString::fromUTF8(mime_type), | 931 WebString::fromUTF8(mime_type), |
924 WebString::fromUTF8(charset), | 932 WebString::fromUTF8(charset), |
925 params.base_url_for_data_url, | 933 params.base_url_for_data_url, |
926 params.history_url_for_data_url, | 934 params.history_url_for_data_url, |
927 false); | 935 false); |
928 } else { | 936 } else { |
929 CHECK(false) << | 937 CHECK(false) << "Invalid URL passed: " |
930 "Invalid URL passed: " << params.url.possibly_invalid_spec(); | 938 << params.common_params.url.possibly_invalid_spec(); |
931 } | 939 } |
932 } else { | 940 } else { |
933 // Navigate to the given URL. | 941 // Navigate to the given URL. |
934 WebURLRequest request(params.url); | 942 WebURLRequest request(params.common_params.url); |
935 | 943 |
936 // A session history navigation should have been accompanied by state. | 944 // A session history navigation should have been accompanied by state. |
937 CHECK_EQ(params.page_id, -1); | 945 CHECK_EQ(params.page_id, -1); |
938 | 946 |
939 if (frame->isViewSourceModeEnabled()) | 947 if (frame->isViewSourceModeEnabled()) |
940 request.setCachePolicy(WebURLRequest::ReturnCacheDataElseLoad); | 948 request.setCachePolicy(WebURLRequest::ReturnCacheDataElseLoad); |
941 | 949 |
942 if (params.referrer.url.is_valid()) { | 950 if (params.common_params.referrer.url.is_valid()) { |
943 WebString referrer = WebSecurityPolicy::generateReferrerHeader( | 951 WebString referrer = WebSecurityPolicy::generateReferrerHeader( |
944 params.referrer.policy, | 952 params.common_params.referrer.policy, |
945 params.url, | 953 params.common_params.url, |
946 WebString::fromUTF8(params.referrer.url.spec())); | 954 WebString::fromUTF8(params.common_params.referrer.url.spec())); |
947 if (!referrer.isEmpty()) | 955 if (!referrer.isEmpty()) |
948 request.setHTTPReferrer(referrer, params.referrer.policy); | 956 request.setHTTPReferrer(referrer, params.common_params.referrer.policy); |
949 } | 957 } |
950 | 958 |
951 if (!params.extra_headers.empty()) { | 959 if (!params.request_params.extra_headers.empty()) { |
952 for (net::HttpUtil::HeadersIterator i(params.extra_headers.begin(), | 960 for (net::HttpUtil::HeadersIterator i( |
953 params.extra_headers.end(), "\n"); | 961 params.request_params.extra_headers.begin(), |
954 i.GetNext(); ) { | 962 params.request_params.extra_headers.end(), |
| 963 "\n"); |
| 964 i.GetNext();) { |
955 request.addHTTPHeaderField(WebString::fromUTF8(i.name()), | 965 request.addHTTPHeaderField(WebString::fromUTF8(i.name()), |
956 WebString::fromUTF8(i.values())); | 966 WebString::fromUTF8(i.values())); |
957 } | 967 } |
958 } | 968 } |
959 | 969 |
960 if (params.is_post) { | 970 if (params.request_params.is_post) { |
961 request.setHTTPMethod(WebString::fromUTF8("POST")); | 971 request.setHTTPMethod(WebString::fromUTF8("POST")); |
962 | 972 |
963 // Set post data. | 973 // Set post data. |
964 WebHTTPBody http_body; | 974 WebHTTPBody http_body; |
965 http_body.initialize(); | 975 http_body.initialize(); |
966 const char* data = NULL; | 976 const char* data = NULL; |
967 if (params.browser_initiated_post_data.size()) { | 977 if (params.request_params.browser_initiated_post_data.size()) { |
968 data = reinterpret_cast<const char*>( | 978 data = reinterpret_cast<const char*>( |
969 ¶ms.browser_initiated_post_data.front()); | 979 ¶ms.request_params.browser_initiated_post_data.front()); |
970 } | 980 } |
971 http_body.appendData( | 981 http_body.appendData(WebData( |
972 WebData(data, params.browser_initiated_post_data.size())); | 982 data, params.request_params.browser_initiated_post_data.size())); |
973 request.setHTTPBody(http_body); | 983 request.setHTTPBody(http_body); |
974 } | 984 } |
975 | 985 |
976 // Record this before starting the load, we need a lower bound of this time | 986 // Record this before starting the load, we need a lower bound of this time |
977 // to sanitize the navigationStart override set below. | 987 // to sanitize the navigationStart override set below. |
978 base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); | 988 base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); |
979 frame->loadRequest(request); | 989 frame->loadRequest(request); |
980 | 990 |
981 // The browser provides the navigation_start time to bootstrap the | 991 // The browser provides the navigation_start time to bootstrap the |
982 // Navigation Timing information for the browser-initiated navigations. In | 992 // Navigation Timing information for the browser-initiated navigations. In |
983 // case of cross-process navigations, this carries over the time of | 993 // case of cross-process navigations, this carries over the time of |
984 // finishing the onbeforeunload handler of the previous page. | 994 // finishing the onbeforeunload handler of the previous page. |
985 DCHECK(!params.browser_navigation_start.is_null()); | 995 DCHECK(!params.commit_params.browser_navigation_start.is_null()); |
986 if (frame->provisionalDataSource()) { | 996 if (frame->provisionalDataSource()) { |
987 // |browser_navigation_start| is likely before this process existed, so we | 997 // |browser_navigation_start| is likely before this process existed, so we |
988 // can't use InterProcessTimeTicksConverter. We need at least to ensure | 998 // can't use InterProcessTimeTicksConverter. We need at least to ensure |
989 // that the browser-side navigation start we set is not later than the one | 999 // that the browser-side navigation start we set is not later than the one |
990 // on the renderer side. | 1000 // on the renderer side. |
991 base::TimeTicks navigation_start = std::min( | 1001 base::TimeTicks navigation_start = |
992 params.browser_navigation_start, renderer_navigation_start); | 1002 std::min(params.commit_params.browser_navigation_start, |
| 1003 renderer_navigation_start); |
993 double navigation_start_seconds = | 1004 double navigation_start_seconds = |
994 (navigation_start - base::TimeTicks()).InSecondsF(); | 1005 (navigation_start - base::TimeTicks()).InSecondsF(); |
995 frame->provisionalDataSource()->setNavigationStartTime( | 1006 frame->provisionalDataSource()->setNavigationStartTime( |
996 navigation_start_seconds); | 1007 navigation_start_seconds); |
997 } | 1008 } |
998 } | 1009 } |
999 | 1010 |
1000 // In case LoadRequest failed before DidCreateDataSource was called. | 1011 // In case LoadRequest failed before DidCreateDataSource was called. |
1001 render_view_->pending_navigation_params_.reset(); | 1012 render_view_->pending_navigation_params_.reset(); |
1002 } | 1013 } |
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2130 // page load is regarded as the same browser initiated request. | 2141 // page load is regarded as the same browser initiated request. |
2131 if (!navigation_state->is_content_initiated()) { | 2142 if (!navigation_state->is_content_initiated()) { |
2132 render_view_->pending_navigation_params_.reset( | 2143 render_view_->pending_navigation_params_.reset( |
2133 new FrameMsg_Navigate_Params); | 2144 new FrameMsg_Navigate_Params); |
2134 render_view_->pending_navigation_params_->page_id = | 2145 render_view_->pending_navigation_params_->page_id = |
2135 navigation_state->pending_page_id(); | 2146 navigation_state->pending_page_id(); |
2136 render_view_->pending_navigation_params_->pending_history_list_offset = | 2147 render_view_->pending_navigation_params_->pending_history_list_offset = |
2137 navigation_state->pending_history_list_offset(); | 2148 navigation_state->pending_history_list_offset(); |
2138 render_view_->pending_navigation_params_->should_clear_history_list = | 2149 render_view_->pending_navigation_params_->should_clear_history_list = |
2139 navigation_state->history_list_was_cleared(); | 2150 navigation_state->history_list_was_cleared(); |
2140 render_view_->pending_navigation_params_->transition = | 2151 render_view_->pending_navigation_params_->common_params.transition = |
2141 navigation_state->transition_type(); | 2152 navigation_state->transition_type(); |
2142 render_view_->pending_navigation_params_->request_time = | 2153 render_view_->pending_navigation_params_->request_time = |
2143 document_state->request_time(); | 2154 document_state->request_time(); |
2144 render_view_->pending_navigation_params_->should_replace_current_entry = | 2155 render_view_->pending_navigation_params_->should_replace_current_entry = |
2145 replace; | 2156 replace; |
2146 } | 2157 } |
2147 | 2158 |
2148 // Load an error page. | 2159 // Load an error page. |
2149 LoadNavigationErrorPage(failed_request, error, replace); | 2160 LoadNavigationErrorPage(failed_request, error, replace); |
2150 } | 2161 } |
(...skipping 1311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3462 const blink::WebAXObject& obj, blink::WebAXEvent event) { | 3473 const blink::WebAXObject& obj, blink::WebAXEvent event) { |
3463 if (renderer_accessibility_) | 3474 if (renderer_accessibility_) |
3464 renderer_accessibility_->HandleWebAccessibilityEvent(obj, event); | 3475 renderer_accessibility_->HandleWebAccessibilityEvent(obj, event); |
3465 } | 3476 } |
3466 | 3477 |
3467 void RenderFrameImpl::FocusedNodeChanged(const WebNode& node) { | 3478 void RenderFrameImpl::FocusedNodeChanged(const WebNode& node) { |
3468 if (renderer_accessibility_) | 3479 if (renderer_accessibility_) |
3469 renderer_accessibility_->FocusedNodeChanged(node); | 3480 renderer_accessibility_->FocusedNodeChanged(node); |
3470 } | 3481 } |
3471 | 3482 |
| 3483 // PlzNavigate |
| 3484 void RenderFrameImpl::OnCommitNavigation( |
| 3485 const GURL& stream_url, |
| 3486 const CommonNavigationParams& common_params, |
| 3487 const CommitNavigationParams& commit_params) { |
| 3488 NOTIMPLEMENTED(); |
| 3489 } |
| 3490 |
3472 WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( | 3491 WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( |
3473 RenderFrame* render_frame, | 3492 RenderFrame* render_frame, |
3474 const NavigationPolicyInfo& info) { | 3493 const NavigationPolicyInfo& info) { |
3475 #ifdef OS_ANDROID | 3494 #ifdef OS_ANDROID |
3476 // The handlenavigation API is deprecated and will be removed once | 3495 // The handlenavigation API is deprecated and will be removed once |
3477 // crbug.com/325351 is resolved. | 3496 // crbug.com/325351 is resolved. |
3478 if (info.urlRequest.url() != GURL(kSwappedOutURL) && | 3497 if (info.urlRequest.url() != GURL(kSwappedOutURL) && |
3479 GetContentClient()->renderer()->HandleNavigation( | 3498 GetContentClient()->renderer()->HandleNavigation( |
3480 render_frame, | 3499 render_frame, |
3481 static_cast<DocumentState*>(info.extraData), | 3500 static_cast<DocumentState*>(info.extraData), |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3906 | 3925 |
3907 #if defined(ENABLE_BROWSER_CDMS) | 3926 #if defined(ENABLE_BROWSER_CDMS) |
3908 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 3927 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
3909 if (!cdm_manager_) | 3928 if (!cdm_manager_) |
3910 cdm_manager_ = new RendererCdmManager(this); | 3929 cdm_manager_ = new RendererCdmManager(this); |
3911 return cdm_manager_; | 3930 return cdm_manager_; |
3912 } | 3931 } |
3913 #endif // defined(ENABLE_BROWSER_CDMS) | 3932 #endif // defined(ENABLE_BROWSER_CDMS) |
3914 | 3933 |
3915 } // namespace content | 3934 } // namespace content |
OLD | NEW |