Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp

Issue 1991273003: Fire visibilityChange event on out-of-process iframes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 m_layerTreeView->attachCompositorAnimationTimeline(compositorTimeline->a nimationTimeline()); 1064 m_layerTreeView->attachCompositorAnimationTimeline(compositorTimeline->a nimationTimeline());
1065 1065
1066 } 1066 }
1067 1067
1068 void WebFrameWidgetImpl::detachCompositorAnimationTimeline(CompositorAnimationTi meline* compositorTimeline) 1068 void WebFrameWidgetImpl::detachCompositorAnimationTimeline(CompositorAnimationTi meline* compositorTimeline)
1069 { 1069 {
1070 if (m_layerTreeView) 1070 if (m_layerTreeView)
1071 m_layerTreeView->detachCompositorAnimationTimeline(compositorTimeline->a nimationTimeline()); 1071 m_layerTreeView->detachCompositorAnimationTimeline(compositorTimeline->a nimationTimeline());
1072 } 1072 }
1073 1073
1074 void WebFrameWidgetImpl::setVisibilityState(WebPageVisibilityState visibilitySta te, bool isInitialState) 1074 void WebFrameWidgetImpl::setVisibilityState(WebPageVisibilityState visibilitySta te)
1075 { 1075 {
1076 if (!page()) 1076 if (m_layerTreeView)
kenrb 2016/05/24 20:25:18 Why is it okay to remove the call to WebFrameSched
lfg 2016/05/24 23:33:51 This is already done in WebViewSchedulerImpl::setP
kenrb 2016/05/25 20:29:14 Acknowledged. This is fine, although I notice that
lfg 2016/05/31 19:54:01 That's right. However, if we do that here, the cor
1077 return; 1077 m_layerTreeView->setVisible(visibilityState == WebPageVisibilityStateVis ible);
1078
1079 // FIXME: This is not correct, since Show and Hide messages for a frame's Wi dget do not necessarily
1080 // correspond to Page visibility, but is necessary until we properly sort ou t OOPIF visibility.
1081 page()->setVisibilityState(static_cast<PageVisibilityState>(visibilityState) , isInitialState);
1082
1083 m_localRoot->frame()->frameScheduler()->setPageVisible(visibilityState == We bPageVisibilityStateVisible);
1084
1085 if (m_layerTreeView) {
1086 bool visible = visibilityState == WebPageVisibilityStateVisible;
1087 m_layerTreeView->setVisible(visible);
1088 }
1089 } 1078 }
1090 1079
1091 HitTestResult WebFrameWidgetImpl::hitTestResultForRootFramePos(const IntPoint& p osInRootFrame) 1080 HitTestResult WebFrameWidgetImpl::hitTestResultForRootFramePos(const IntPoint& p osInRootFrame)
1092 { 1081 {
1093 IntPoint docPoint(m_localRoot->frame()->view()->rootFrameToContents(posInRoo tFrame)); 1082 IntPoint docPoint(m_localRoot->frame()->view()->rootFrameToContents(posInRoo tFrame));
1094 HitTestResult result = m_localRoot->frame()->eventHandler().hitTestResultAtP oint(docPoint, HitTestRequest::ReadOnly | HitTestRequest::Active); 1083 HitTestResult result = m_localRoot->frame()->eventHandler().hitTestResultAtP oint(docPoint, HitTestRequest::ReadOnly | HitTestRequest::Active);
1095 result.setToShadowHostIfInUserAgentShadowRoot(); 1084 result.setToShadowHostIfInUserAgentShadowRoot();
1096 return result; 1085 return result;
1097 } 1086 }
1098 1087
1099 } // namespace blink 1088 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698