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/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 #include "content/public/browser/color_chooser.h" | 40 #include "content/public/browser/color_chooser.h" |
41 #include "content/public/browser/content_browser_client.h" | 41 #include "content/public/browser/content_browser_client.h" |
42 #include "content/public/browser/devtools_agent_host_registry.h" | 42 #include "content/public/browser/devtools_agent_host_registry.h" |
43 #include "content/public/browser/download_manager.h" | 43 #include "content/public/browser/download_manager.h" |
44 #include "content/public/browser/download_url_parameters.h" | 44 #include "content/public/browser/download_url_parameters.h" |
45 #include "content/public/browser/invalidate_type.h" | 45 #include "content/public/browser/invalidate_type.h" |
46 #include "content/public/browser/javascript_dialogs.h" | 46 #include "content/public/browser/javascript_dialogs.h" |
47 #include "content/public/browser/load_notification_details.h" | 47 #include "content/public/browser/load_notification_details.h" |
48 #include "content/public/browser/navigation_details.h" | 48 #include "content/public/browser/navigation_details.h" |
49 #include "content/public/browser/notification_service.h" | 49 #include "content/public/browser/notification_service.h" |
| 50 #include "content/public/browser/notification_details.h" |
50 #include "content/public/browser/resource_request_details.h" | 51 #include "content/public/browser/resource_request_details.h" |
51 #include "content/public/browser/user_metrics.h" | 52 #include "content/public/browser/user_metrics.h" |
52 #include "content/public/browser/web_contents_delegate.h" | 53 #include "content/public/browser/web_contents_delegate.h" |
53 #include "content/public/browser/web_contents_observer.h" | 54 #include "content/public/browser/web_contents_observer.h" |
54 #include "content/public/browser/web_contents_view.h" | 55 #include "content/public/browser/web_contents_view.h" |
55 #include "content/public/browser/web_ui_controller_factory.h" | 56 #include "content/public/browser/web_ui_controller_factory.h" |
56 #include "content/public/common/bindings_policy.h" | 57 #include "content/public/common/bindings_policy.h" |
57 #include "content/public/common/content_constants.h" | 58 #include "content/public/common/content_constants.h" |
58 #include "content/public/common/content_restriction.h" | 59 #include "content/public/common/content_restriction.h" |
59 #include "content/public/common/content_switches.h" | 60 #include "content/public/common/content_switches.h" |
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
888 // This is because closing the tab calls WebContentsImpl::Destroy(), which | 889 // This is because closing the tab calls WebContentsImpl::Destroy(), which |
889 // removes the |GetRenderViewHost()|; then when we actually destroy the | 890 // removes the |GetRenderViewHost()|; then when we actually destroy the |
890 // window, OnWindowPosChanged() notices and calls HideContents() (which | 891 // window, OnWindowPosChanged() notices and calls HideContents() (which |
891 // calls us). | 892 // calls us). |
892 RenderWidgetHostViewPort* rwhv = | 893 RenderWidgetHostViewPort* rwhv = |
893 RenderWidgetHostViewPort::FromRWHV(GetRenderWidgetHostView()); | 894 RenderWidgetHostViewPort::FromRWHV(GetRenderWidgetHostView()); |
894 if (rwhv) | 895 if (rwhv) |
895 rwhv->WasHidden(); | 896 rwhv->WasHidden(); |
896 } | 897 } |
897 | 898 |
| 899 bool is_visible = false; |
898 content::NotificationService::current()->Notify( | 900 content::NotificationService::current()->Notify( |
899 content::NOTIFICATION_WEB_CONTENTS_HIDDEN, | 901 content::NOTIFICATION_WEB_CONTENTS_VISIBILITY_CHANGED, |
900 content::Source<WebContents>(this), | 902 content::Source<WebContents>(this), |
901 content::NotificationService::NoDetails()); | 903 content::Details<bool>(&is_visible)); |
| 904 } |
| 905 |
| 906 void WebContentsImpl::WasRestored() { |
| 907 bool is_visible = true; |
| 908 content::NotificationService::current()->Notify( |
| 909 content::NOTIFICATION_WEB_CONTENTS_VISIBILITY_CHANGED, |
| 910 content::Source<WebContents>(this), |
| 911 content::Details<bool>(&is_visible)); |
902 } | 912 } |
903 | 913 |
904 void WebContentsImpl::ShowContents() { | 914 void WebContentsImpl::ShowContents() { |
905 RenderWidgetHostViewPort* rwhv = | 915 RenderWidgetHostViewPort* rwhv = |
906 RenderWidgetHostViewPort::FromRWHV(GetRenderWidgetHostView()); | 916 RenderWidgetHostViewPort::FromRWHV(GetRenderWidgetHostView()); |
907 if (rwhv) | 917 if (rwhv) |
908 rwhv->DidBecomeSelected(); | 918 rwhv->DidBecomeSelected(); |
| 919 WasRestored(); |
909 } | 920 } |
910 | 921 |
911 void WebContentsImpl::HideContents() { | 922 void WebContentsImpl::HideContents() { |
912 // TODO(pkasting): http://b/1239839 Right now we purposefully don't call | 923 // TODO(pkasting): http://b/1239839 Right now we purposefully don't call |
913 // our superclass HideContents(), because some callers want to be very picky | 924 // our superclass HideContents(), because some callers want to be very picky |
914 // about the order in which these get called. In addition to making the code | 925 // about the order in which these get called. In addition to making the code |
915 // here practically impossible to understand, this also means we end up | 926 // here practically impossible to understand, this also means we end up |
916 // calling WebContentsImpl::WasHidden() twice if callers call both versions of | 927 // calling WebContentsImpl::WasHidden() twice if callers call both versions of |
917 // HideContents() on a WebContentsImpl. | 928 // HideContents() on a WebContentsImpl. |
918 WasHidden(); | 929 WasHidden(); |
(...skipping 1863 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2782 void WebContentsImpl::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { | 2793 void WebContentsImpl::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { |
2783 RenderWidgetHostView* rwh_view = GetView()->CreateViewForWidget(rvh); | 2794 RenderWidgetHostView* rwh_view = GetView()->CreateViewForWidget(rvh); |
2784 // Can be NULL during tests. | 2795 // Can be NULL during tests. |
2785 if (rwh_view) | 2796 if (rwh_view) |
2786 rwh_view->SetSize(GetView()->GetContainerSize()); | 2797 rwh_view->SetSize(GetView()->GetContainerSize()); |
2787 } | 2798 } |
2788 | 2799 |
2789 RenderViewHostImpl* WebContentsImpl::GetRenderViewHostImpl() { | 2800 RenderViewHostImpl* WebContentsImpl::GetRenderViewHostImpl() { |
2790 return static_cast<RenderViewHostImpl*>(GetRenderViewHost()); | 2801 return static_cast<RenderViewHostImpl*>(GetRenderViewHost()); |
2791 } | 2802 } |
OLD | NEW |