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 2020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2031 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); | 2031 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); |
2032 | 2032 |
2033 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( | 2033 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( |
2034 routing_id_, ds->request().url(), is_transition_navigation)); | 2034 routing_id_, ds->request().url(), is_transition_navigation)); |
2035 } | 2035 } |
2036 | 2036 |
2037 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( | 2037 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( |
2038 blink::WebLocalFrame* frame) { | 2038 blink::WebLocalFrame* frame) { |
2039 DCHECK(!frame_ || frame_ == frame); | 2039 DCHECK(!frame_ || frame_ == frame); |
2040 render_view_->history_controller()->RemoveChildrenForRedirect(this); | 2040 render_view_->history_controller()->RemoveChildrenForRedirect(this); |
2041 if (frame->parent()) | |
2042 return; | |
2043 // Received a redirect on the main frame. | |
2044 WebDataSource* data_source = frame->provisionalDataSource(); | |
2045 if (!data_source) { | |
2046 // Should only be invoked when we have a data source. | |
2047 NOTREACHED(); | |
2048 return; | |
2049 } | |
2050 std::vector<GURL> redirects; | |
2051 GetRedirectChain(data_source, &redirects); | |
2052 if (redirects.size() >= 2) { | |
2053 Send(new FrameHostMsg_DidRedirectProvisionalLoad( | |
2054 routing_id_, | |
2055 render_view_->page_id_, | |
2056 redirects[redirects.size() - 2], | |
2057 redirects.back())); | |
2058 } | |
2059 } | 2041 } |
2060 | 2042 |
2061 void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame, | 2043 void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame, |
2062 const blink::WebURLError& error) { | 2044 const blink::WebURLError& error) { |
2063 TRACE_EVENT1("navigation", "RenderFrameImpl::didFailProvisionalLoad", | 2045 TRACE_EVENT1("navigation", "RenderFrameImpl::didFailProvisionalLoad", |
2064 "id", routing_id_); | 2046 "id", routing_id_); |
2065 DCHECK(!frame_ || frame_ == frame); | 2047 DCHECK(!frame_ || frame_ == frame); |
2066 WebDataSource* ds = frame->provisionalDataSource(); | 2048 WebDataSource* ds = frame->provisionalDataSource(); |
2067 DCHECK(ds); | 2049 DCHECK(ds); |
2068 | 2050 |
(...skipping 1854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3923 | 3905 |
3924 #if defined(ENABLE_BROWSER_CDMS) | 3906 #if defined(ENABLE_BROWSER_CDMS) |
3925 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 3907 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
3926 if (!cdm_manager_) | 3908 if (!cdm_manager_) |
3927 cdm_manager_ = new RendererCdmManager(this); | 3909 cdm_manager_ = new RendererCdmManager(this); |
3928 return cdm_manager_; | 3910 return cdm_manager_; |
3929 } | 3911 } |
3930 #endif // defined(ENABLE_BROWSER_CDMS) | 3912 #endif // defined(ENABLE_BROWSER_CDMS) |
3931 | 3913 |
3932 } // namespace content | 3914 } // namespace content |
OLD | NEW |