OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/web_contents/web_contents_impl.h" | 5 #include "content/browser/web_contents/web_contents_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 controller_(this, browser_context), | 321 controller_(this, browser_context), |
322 render_view_host_delegate_view_(NULL), | 322 render_view_host_delegate_view_(NULL), |
323 opener_(opener), | 323 opener_(opener), |
324 created_with_opener_(!!opener), | 324 created_with_opener_(!!opener), |
325 #if defined(OS_WIN) | 325 #if defined(OS_WIN) |
326 accessible_parent_(NULL), | 326 accessible_parent_(NULL), |
327 #endif | 327 #endif |
328 frame_tree_(new NavigatorImpl(&controller_, this), | 328 frame_tree_(new NavigatorImpl(&controller_, this), |
329 this, this, this, this), | 329 this, this, this, this), |
330 is_loading_(false), | 330 is_loading_(false), |
| 331 is_document_loaded_in_main_frame_(false), |
331 crashed_status_(base::TERMINATION_STATUS_STILL_RUNNING), | 332 crashed_status_(base::TERMINATION_STATUS_STILL_RUNNING), |
332 crashed_error_code_(0), | 333 crashed_error_code_(0), |
333 waiting_for_response_(false), | 334 waiting_for_response_(false), |
334 load_state_(net::LOAD_STATE_IDLE, base::string16()), | 335 load_state_(net::LOAD_STATE_IDLE, base::string16()), |
335 upload_size_(0), | 336 upload_size_(0), |
336 upload_position_(0), | 337 upload_position_(0), |
337 displayed_insecure_content_(false), | 338 displayed_insecure_content_(false), |
338 has_accessed_initial_document_(false), | 339 has_accessed_initial_document_(false), |
339 capturer_count_(0), | 340 capturer_count_(0), |
340 should_normally_be_visible_(true), | 341 should_normally_be_visible_(true), |
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 RenderViewHost* dest_rvh = GetRenderManager()->pending_render_view_host() ? | 843 RenderViewHost* dest_rvh = GetRenderManager()->pending_render_view_host() ? |
843 GetRenderManager()->pending_render_view_host() : | 844 GetRenderManager()->pending_render_view_host() : |
844 GetRenderManager()->current_host(); | 845 GetRenderManager()->current_host(); |
845 return dest_rvh->GetSiteInstance(); | 846 return dest_rvh->GetSiteInstance(); |
846 } | 847 } |
847 | 848 |
848 bool WebContentsImpl::IsLoading() const { | 849 bool WebContentsImpl::IsLoading() const { |
849 return is_loading_; | 850 return is_loading_; |
850 } | 851 } |
851 | 852 |
| 853 bool WebContentsImpl::IsDocumentLoadedInMainFrame() const { |
| 854 return is_document_loaded_in_main_frame_; |
| 855 } |
| 856 |
852 bool WebContentsImpl::IsWaitingForResponse() const { | 857 bool WebContentsImpl::IsWaitingForResponse() const { |
853 return waiting_for_response_; | 858 return waiting_for_response_; |
854 } | 859 } |
855 | 860 |
856 const net::LoadStateWithParam& WebContentsImpl::GetLoadState() const { | 861 const net::LoadStateWithParam& WebContentsImpl::GetLoadState() const { |
857 return load_state_; | 862 return load_state_; |
858 } | 863 } |
859 | 864 |
860 const base::string16& WebContentsImpl::GetLoadStateHost() const { | 865 const base::string16& WebContentsImpl::GetLoadStateHost() const { |
861 return load_state_host_; | 866 return load_state_host_; |
(...skipping 1421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2283 delegate_->SetFocusToLocationBar(select_all); | 2288 delegate_->SetFocusToLocationBar(select_all); |
2284 } | 2289 } |
2285 | 2290 |
2286 void WebContentsImpl::DidStartProvisionalLoad( | 2291 void WebContentsImpl::DidStartProvisionalLoad( |
2287 RenderFrameHostImpl* render_frame_host, | 2292 RenderFrameHostImpl* render_frame_host, |
2288 int parent_routing_id, | 2293 int parent_routing_id, |
2289 const GURL& validated_url, | 2294 const GURL& validated_url, |
2290 bool is_error_page, | 2295 bool is_error_page, |
2291 bool is_iframe_srcdoc) { | 2296 bool is_iframe_srcdoc) { |
2292 bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame(); | 2297 bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame(); |
2293 if (is_main_frame) | 2298 if (is_main_frame) { |
2294 DidChangeLoadProgress(0); | 2299 DidChangeLoadProgress(0); |
| 2300 is_document_loaded_in_main_frame_ = false; |
| 2301 } |
2295 | 2302 |
2296 // Notify observers about the start of the provisional load. | 2303 // Notify observers about the start of the provisional load. |
2297 int render_frame_id = render_frame_host->GetRoutingID(); | 2304 int render_frame_id = render_frame_host->GetRoutingID(); |
2298 RenderViewHost* render_view_host = render_frame_host->render_view_host(); | 2305 RenderViewHost* render_view_host = render_frame_host->render_view_host(); |
2299 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 2306 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
2300 DidStartProvisionalLoadForFrame( | 2307 DidStartProvisionalLoadForFrame( |
2301 render_frame_id, parent_routing_id, is_main_frame, | 2308 render_frame_id, parent_routing_id, is_main_frame, |
2302 validated_url, is_error_page, is_iframe_srcdoc, | 2309 validated_url, is_error_page, is_iframe_srcdoc, |
2303 render_view_host)); | 2310 render_view_host)); |
2304 | 2311 |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2561 } | 2568 } |
2562 | 2569 |
2563 void WebContentsImpl::OnDocumentLoadedInFrame() { | 2570 void WebContentsImpl::OnDocumentLoadedInFrame() { |
2564 CHECK(render_frame_message_source_); | 2571 CHECK(render_frame_message_source_); |
2565 CHECK(!render_view_message_source_); | 2572 CHECK(!render_view_message_source_); |
2566 RenderFrameHostImpl* rfh = | 2573 RenderFrameHostImpl* rfh = |
2567 static_cast<RenderFrameHostImpl*>(render_frame_message_source_); | 2574 static_cast<RenderFrameHostImpl*>(render_frame_message_source_); |
2568 | 2575 |
2569 int render_frame_id = rfh->GetRoutingID(); | 2576 int render_frame_id = rfh->GetRoutingID(); |
2570 RenderViewHost* render_view_host = rfh->render_view_host(); | 2577 RenderViewHost* render_view_host = rfh->render_view_host(); |
| 2578 if (render_frame_id == GetMainFrame()->GetRoutingID()) { |
| 2579 is_document_loaded_in_main_frame_ = true; |
| 2580 } |
2571 FOR_EACH_OBSERVER(WebContentsObserver, | 2581 FOR_EACH_OBSERVER(WebContentsObserver, |
2572 observers_, | 2582 observers_, |
2573 DocumentLoadedInFrame(render_frame_id, render_view_host)); | 2583 DocumentLoadedInFrame(render_frame_id, render_view_host)); |
2574 } | 2584 } |
2575 | 2585 |
2576 void WebContentsImpl::OnDidFinishLoad( | 2586 void WebContentsImpl::OnDidFinishLoad( |
2577 const GURL& url) { | 2587 const GURL& url) { |
2578 if (!render_frame_message_source_) { | 2588 if (!render_frame_message_source_) { |
2579 RecordAction(base::UserMetricsAction("BadMessageTerminate_RVD2")); | 2589 RecordAction(base::UserMetricsAction("BadMessageTerminate_RVD2")); |
2580 GetRenderProcessHost()->ReceivedBadMessage(); | 2590 GetRenderProcessHost()->ReceivedBadMessage(); |
(...skipping 1343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3924 | 3934 |
3925 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { | 3935 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { |
3926 if (!delegate_) | 3936 if (!delegate_) |
3927 return; | 3937 return; |
3928 const gfx::Size new_size = GetPreferredSize(); | 3938 const gfx::Size new_size = GetPreferredSize(); |
3929 if (new_size != old_size) | 3939 if (new_size != old_size) |
3930 delegate_->UpdatePreferredSize(this, new_size); | 3940 delegate_->UpdatePreferredSize(this, new_size); |
3931 } | 3941 } |
3932 | 3942 |
3933 } // namespace content | 3943 } // namespace content |
OLD | NEW |