Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 483773002: PlzNavigate: implement CommitNavigation on the browser side (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + fix compilation error Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 &params.browser_initiated_post_data.front()); 979 &params.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
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
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
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
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698