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 2720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2731 const LoadCommittedDetails& load_details) { | 2731 const LoadCommittedDetails& load_details) { |
2732 FOR_EACH_OBSERVER( | 2732 FOR_EACH_OBSERVER( |
2733 WebContentsObserver, observers_, NavigationEntryCommitted(load_details)); | 2733 WebContentsObserver, observers_, NavigationEntryCommitted(load_details)); |
2734 } | 2734 } |
2735 | 2735 |
2736 bool WebContentsImpl::OnMessageReceived(RenderFrameHost* render_frame_host, | 2736 bool WebContentsImpl::OnMessageReceived(RenderFrameHost* render_frame_host, |
2737 const IPC::Message& message) { | 2737 const IPC::Message& message) { |
2738 return OnMessageReceived(NULL, render_frame_host, message); | 2738 return OnMessageReceived(NULL, render_frame_host, message); |
2739 } | 2739 } |
2740 | 2740 |
| 2741 void WebContentsImpl::RenderFrameCreated(RenderFrameHost* render_frame_host) { |
| 2742 // Note this is only for subframes, the notification for the main frame |
| 2743 // happens in RenderViewCreated. |
| 2744 FOR_EACH_OBSERVER(WebContentsObserver, |
| 2745 observers_, |
| 2746 RenderFrameCreated(render_frame_host)); |
| 2747 } |
| 2748 |
| 2749 void WebContentsImpl::RenderFrameDeleted(RenderFrameHost* render_frame_host) { |
| 2750 FOR_EACH_OBSERVER(WebContentsObserver, |
| 2751 observers_, |
| 2752 RenderFrameDeleted(render_frame_host)); |
| 2753 } |
| 2754 |
2741 RenderViewHostDelegateView* WebContentsImpl::GetDelegateView() { | 2755 RenderViewHostDelegateView* WebContentsImpl::GetDelegateView() { |
2742 return render_view_host_delegate_view_; | 2756 return render_view_host_delegate_view_; |
2743 } | 2757 } |
2744 | 2758 |
2745 RenderViewHostDelegate::RendererManagement* | 2759 RenderViewHostDelegate::RendererManagement* |
2746 WebContentsImpl::GetRendererManagementDelegate() { | 2760 WebContentsImpl::GetRendererManagementDelegate() { |
2747 return GetRenderManager(); | 2761 return GetRenderManager(); |
2748 } | 2762 } |
2749 | 2763 |
2750 RendererPreferences WebContentsImpl::GetRendererPrefs( | 2764 RendererPreferences WebContentsImpl::GetRendererPrefs( |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2791 if (entry && entry->IsViewSourceMode()) { | 2805 if (entry && entry->IsViewSourceMode()) { |
2792 // Put the renderer in view source mode. | 2806 // Put the renderer in view source mode. |
2793 render_view_host->Send( | 2807 render_view_host->Send( |
2794 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); | 2808 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); |
2795 } | 2809 } |
2796 | 2810 |
2797 view_->RenderViewCreated(render_view_host); | 2811 view_->RenderViewCreated(render_view_host); |
2798 | 2812 |
2799 FOR_EACH_OBSERVER( | 2813 FOR_EACH_OBSERVER( |
2800 WebContentsObserver, observers_, RenderViewCreated(render_view_host)); | 2814 WebContentsObserver, observers_, RenderViewCreated(render_view_host)); |
| 2815 |
| 2816 // We tell the observers now instead of when the main RenderFrameHostImpl is |
| 2817 // constructed because otherwise it would be too early (i.e. IPCs sent to the |
| 2818 // frame would be dropped because it's not created yet). |
| 2819 RenderFrameHost* main_frame = GetMainFrame(); |
| 2820 FOR_EACH_OBSERVER( |
| 2821 WebContentsObserver, observers_, RenderFrameCreated(main_frame)); |
2801 } | 2822 } |
2802 | 2823 |
2803 void WebContentsImpl::RenderViewReady(RenderViewHost* rvh) { | 2824 void WebContentsImpl::RenderViewReady(RenderViewHost* rvh) { |
2804 if (rvh != GetRenderViewHost()) { | 2825 if (rvh != GetRenderViewHost()) { |
2805 // Don't notify the world, since this came from a renderer in the | 2826 // Don't notify the world, since this came from a renderer in the |
2806 // background. | 2827 // background. |
2807 return; | 2828 return; |
2808 } | 2829 } |
2809 | 2830 |
2810 notify_disconnection_ = true; | 2831 notify_disconnection_ = true; |
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3738 } | 3759 } |
3739 | 3760 |
3740 void WebContentsImpl::OnFrameRemoved( | 3761 void WebContentsImpl::OnFrameRemoved( |
3741 RenderViewHostImpl* render_view_host, | 3762 RenderViewHostImpl* render_view_host, |
3742 int64 frame_id) { | 3763 int64 frame_id) { |
3743 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 3764 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
3744 FrameDetached(render_view_host, frame_id)); | 3765 FrameDetached(render_view_host, frame_id)); |
3745 } | 3766 } |
3746 | 3767 |
3747 } // namespace content | 3768 } // namespace content |
OLD | NEW |