OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_view.h" | 5 #include "content/renderer/render_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 3870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3881 void RenderView::DidHandleMouseEvent(const WebKit::WebMouseEvent& event) { | 3881 void RenderView::DidHandleMouseEvent(const WebKit::WebMouseEvent& event) { |
3882 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidHandleMouseEvent(event)); | 3882 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidHandleMouseEvent(event)); |
3883 } | 3883 } |
3884 | 3884 |
3885 void RenderView::OnWasHidden() { | 3885 void RenderView::OnWasHidden() { |
3886 RenderWidget::OnWasHidden(); | 3886 RenderWidget::OnWasHidden(); |
3887 | 3887 |
3888 if (webview()) { | 3888 if (webview()) { |
3889 webview()->settings()->setMinimumTimerInterval( | 3889 webview()->settings()->setMinimumTimerInterval( |
3890 webkit_glue::kBackgroundTabTimerInterval); | 3890 webkit_glue::kBackgroundTabTimerInterval); |
| 3891 webview()->setVisibilityState(WebKit::WebPageVisibilityStateHidden, false); |
3891 } | 3892 } |
3892 | 3893 |
3893 #if defined(OS_MACOSX) | 3894 #if defined(OS_MACOSX) |
3894 // Inform plugins that their container is no longer visible. | 3895 // Inform plugins that their container is no longer visible. |
3895 std::set<WebPluginDelegateProxy*>::iterator plugin_it; | 3896 std::set<WebPluginDelegateProxy*>::iterator plugin_it; |
3896 for (plugin_it = plugin_delegates_.begin(); | 3897 for (plugin_it = plugin_delegates_.begin(); |
3897 plugin_it != plugin_delegates_.end(); ++plugin_it) { | 3898 plugin_it != plugin_delegates_.end(); ++plugin_it) { |
3898 (*plugin_it)->SetContainerVisibility(false); | 3899 (*plugin_it)->SetContainerVisibility(false); |
3899 } | 3900 } |
3900 #endif // OS_MACOSX | 3901 #endif // OS_MACOSX |
3901 } | 3902 } |
3902 | 3903 |
3903 void RenderView::OnWasRestored(bool needs_repainting) { | 3904 void RenderView::OnWasRestored(bool needs_repainting) { |
3904 RenderWidget::OnWasRestored(needs_repainting); | 3905 RenderWidget::OnWasRestored(needs_repainting); |
3905 | 3906 |
3906 if (webview()) { | 3907 if (webview()) { |
3907 webview()->settings()->setMinimumTimerInterval( | 3908 webview()->settings()->setMinimumTimerInterval( |
3908 webkit_glue::kForegroundTabTimerInterval); | 3909 webkit_glue::kForegroundTabTimerInterval); |
| 3910 webview()->setVisibilityState(WebKit::WebPageVisibilityStateVisible, false); |
3909 } | 3911 } |
3910 | 3912 |
3911 #if defined(OS_MACOSX) | 3913 #if defined(OS_MACOSX) |
3912 // Inform plugins that their container is now visible. | 3914 // Inform plugins that their container is now visible. |
3913 std::set<WebPluginDelegateProxy*>::iterator plugin_it; | 3915 std::set<WebPluginDelegateProxy*>::iterator plugin_it; |
3914 for (plugin_it = plugin_delegates_.begin(); | 3916 for (plugin_it = plugin_delegates_.begin(); |
3915 plugin_it != plugin_delegates_.end(); ++plugin_it) { | 3917 plugin_it != plugin_delegates_.end(); ++plugin_it) { |
3916 (*plugin_it)->SetContainerVisibility(true); | 3918 (*plugin_it)->SetContainerVisibility(true); |
3917 } | 3919 } |
3918 #endif // OS_MACOSX | 3920 #endif // OS_MACOSX |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4099 if (base.GetOrigin() != absolute_url.GetOrigin()) { | 4101 if (base.GetOrigin() != absolute_url.GetOrigin()) { |
4100 return; | 4102 return; |
4101 } | 4103 } |
4102 RenderThread::current()->Send( | 4104 RenderThread::current()->Send( |
4103 new ViewHostMsg_RegisterProtocolHandler(routing_id_, | 4105 new ViewHostMsg_RegisterProtocolHandler(routing_id_, |
4104 UTF16ToUTF8(scheme), | 4106 UTF16ToUTF8(scheme), |
4105 absolute_url, | 4107 absolute_url, |
4106 title)); | 4108 title)); |
4107 } | 4109 } |
4108 | 4110 |
| 4111 WebKit::WebPageVisibilityState RenderView::visibilityState() const { |
| 4112 if (is_hidden()) |
| 4113 return WebKit::WebPageVisibilityStateHidden; |
| 4114 else |
| 4115 return WebKit::WebPageVisibilityStateVisible; |
| 4116 } |
| 4117 |
4109 bool RenderView::IsNonLocalTopLevelNavigation( | 4118 bool RenderView::IsNonLocalTopLevelNavigation( |
4110 const GURL& url, WebKit::WebFrame* frame, WebKit::WebNavigationType type) { | 4119 const GURL& url, WebKit::WebFrame* frame, WebKit::WebNavigationType type) { |
4111 // Must be a top level frame. | 4120 // Must be a top level frame. |
4112 if (frame->parent() != NULL) | 4121 if (frame->parent() != NULL) |
4113 return false; | 4122 return false; |
4114 | 4123 |
4115 // Navigations initiated within Webkit are not sent out to the external host | 4124 // Navigations initiated within Webkit are not sent out to the external host |
4116 // in the following cases. | 4125 // in the following cases. |
4117 // 1. The url scheme is not http/https | 4126 // 1. The url scheme is not http/https |
4118 // 2. The origin of the url and the opener is the same in which case the | 4127 // 2. The origin of the url and the opener is the same in which case the |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4192 const webkit_glue::CustomContextMenuContext& custom_context) { | 4201 const webkit_glue::CustomContextMenuContext& custom_context) { |
4193 if (custom_context.is_pepper_menu) | 4202 if (custom_context.is_pepper_menu) |
4194 pepper_delegate_.OnContextMenuClosed(custom_context); | 4203 pepper_delegate_.OnContextMenuClosed(custom_context); |
4195 else | 4204 else |
4196 context_menu_node_.reset(); | 4205 context_menu_node_.reset(); |
4197 } | 4206 } |
4198 | 4207 |
4199 void RenderView::OnNetworkStateChanged(bool online) { | 4208 void RenderView::OnNetworkStateChanged(bool online) { |
4200 WebNetworkStateNotifier::setOnLine(online); | 4209 WebNetworkStateNotifier::setOnLine(online); |
4201 } | 4210 } |
OLD | NEW |