New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 658252 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Randomly able or not able to scroll in extension popup pages.

Project Member Reported by m...@opera.com, Oct 21 2016

Issue description

Version: All
OS: Win 10 (should be pretty much ubiquitous though)

What steps will reproduce the problem?
(1) Have an extension that allows one to scroll its contents. Can use the one attached.
(2) Try to scroll using mouse wheel, scrollbar knobs.

What is the expected output?

Not scrollin'

What do you see instead?

Scrollin'


 

Comment 1 by m...@opera.com, Oct 21 2016

gfx::ScrollOffset ScrollTree::ClampScrollOffsetToLimits(
Clamps the offset to 0 in the faulty situation, looks like either a wrong scroll node is selected or the computation goes awry.

This happens when the layer tree is somehow incorrectly constructed, and it points to a node that is clipped to the viewport for element that gets animated.
LayerTreeHostImpl:3947

As it turns out, two layers get the same element id, and depending on the scheduler, the layer tree impl may get either the wrong or the correct layer id for scrolling.
Stacks for these two 'conflicting' layers:
============================
>	cc.dll!cc::Layer::SetElementId(cc::ElementId id) Line 1844	C++ 
cc_blink.dll!cc_blink::WebLayerImpl::setElementId(const cc::ElementId & id) Line 433	C++ 
blink_platform.dll!blink::GraphicsLayer::setElementId(const cc::ElementId & id) Line 1157	C++ 
blink_core.dll!blink::PaintLayerCompositor::ensureRootLayer() Line 1155	C++ 
blink_core.dll!blink::PaintLayerCompositor::setCompositingModeEnabled(bool enable) Line 114	C++ 
blink_core.dll!blink::PaintLayerCompositor::enableCompositingModeIfNeeded() Line 139	C++ 
blink_core.dll!blink::PaintLayerCompositor::updateIfNeededRecursiveInternal() Line 241	C++ 
blink_core.dll!blink::PaintLayerCompositor::updateIfNeededRecursive() Line 207	C++ 
blink_core.dll!blink::FrameView::updateLifecyclePhasesInternal(blink::DocumentLifecycle::LifecycleState targetState) Line 2701	C++ 
blink_core.dll!blink::FrameView::updateAllLifecyclePhases() Line 2578	C++ 
blink_core.dll!blink::PageAnimator::updateAllLifecyclePhases(blink::LocalFrame & rootFrame) Line 86	C++ 
blink_web.dll!blink::PageWidgetDelegate::updateAllLifecyclePhases(blink::Page & page, blink::LocalFrame & root) Line 60	C++ 
blink_web.dll!blink::WebViewImpl::updateAllLifecyclePhases() Line 2111	C++ 
blink_web.dll!blink::WebViewFrameWidget::updateAllLifecyclePhases() Line 65	C++ 
content.dll!content::RenderWidget::UpdateVisualState() Line 846	C++ 
content.dll!content::RenderWidgetCompositor::UpdateLayerTreeHost() Line 998	C++ 
cc.dll!cc::LayerTreeHostInProcess::RequestMainFrameUpdate() Line 420	C++ 
cc.dll!cc::ProxyMain::BeginMainFrame(std::unique_ptr<cc::BeginMainFrameAndCommitState,std::default_delete<cc::BeginMainFrameAndCommitState> > begin_main_frame_state) Line 186	C++
============================
>	cc.dll!cc::Layer::SetElementId(cc::ElementId id) Line 1835	C++ 
cc_blink.dll!cc_blink::WebLayerImpl::setElementId(const cc::ElementId & id) Line 433	C++ 
blink_platform.dll!blink::GraphicsLayer::setElementId(const cc::ElementId & id) Line 1157	C++ 
blink_core.dll!blink::VisualViewport::attachToLayerTree(blink::GraphicsLayer * currentLayerTreeRoot) Line 402	C++ 
blink_web.dll!blink::WebViewImpl::setRootGraphicsLayer(blink::GraphicsLayer * graphicsLayer) Line 4429	C++ 
blink_web.dll!blink::WebViewFrameWidget::setRootGraphicsLayer(blink::GraphicsLayer * layer) Line 248	C++ 
blink_web.dll!blink::ChromeClientImpl::attachRootGraphicsLayer(blink::GraphicsLayer * rootLayer, blink::LocalFrame * localFrame) Line 824	C++ 
blink_core.dll!blink::PaintLayerCompositor::attachRootLayer(blink::PaintLayerCompositor::RootLayerAttachment attachment) Line 1233	C++ 
blink_core.dll!blink::PaintLayerCompositor::ensureRootLayer() Line 1170	C++ 
blink_core.dll!blink::PaintLayerCompositor::setCompositingModeEnabled(bool enable) Line 114	C++ 
blink_core.dll!blink::PaintLayerCompositor::enableCompositingModeIfNeeded() Line 139	C++ 
blink_core.dll!blink::PaintLayerCompositor::updateIfNeededRecursiveInternal() Line 241	C++ 
blink_core.dll!blink::PaintLayerCompositor::updateIfNeededRecursive() Line 207	C++ 
blink_core.dll!blink::FrameView::updateLifecyclePhasesInternal(blink::DocumentLifecycle::LifecycleState targetState) Line 2701	C++ 
blink_core.dll!blink::FrameView::updateAllLifecyclePhases() Line 2578	C++ 
blink_core.dll!blink::PageAnimator::updateAllLifecyclePhases(blink::LocalFrame & rootFrame) Line 86	C++ 
blink_web.dll!blink::PageWidgetDelegate::updateAllLifecyclePhases(blink::Page & page, blink::LocalFrame & root) Line 60	C++ 
blink_web.dll!blink::WebViewImpl::updateAllLifecyclePhases() Line 2111	C++ 
blink_web.dll!blink::WebViewFrameWidget::updateAllLifecyclePhases() Line 65	C++ 
content.dll!content::RenderWidget::UpdateVisualState() Line 846	C++ 
content.dll!content::RenderWidgetCompositor::UpdateLayerTreeHost() Line 998	C++ 
cc.dll!cc::LayerTreeHostInProcess::RequestMainFrameUpdate() Line 420	C++ 
cc.dll!cc::ProxyMain::BeginMainFrame(std::unique_ptr<cc::BeginMainFrameAndCommitState,std::default_delete<cc::BeginMainFrameAndCommitState> > begin_main_frame_state) Line 186	C++

See also

void LayerTreeImpl::AddToElementMap(LayerImpl* layer) {

when committing the element ids for these two layers. If you use my extension, the offending layer should get the id 9 and the 'good' one, 4.

Comment 2 by m...@opera.com, Oct 21 2016

And the extension. Mind that you have to try a few times before this reproduces.

scroller.zip
585 KB Download
Labels: -Pri-3 Pri-2
Owner: vollick@chromium.org
Status: Assigned (was: Untriaged)
It looks like we need a different "sub element id" for the viewport. I mistakenly labeled more than one thing "scroll" for the document.
 Issue 660860  has been merged into this issue.
Components: Blink>Scroll
Owner: skobes@chromium.org
Steve, could you please take a look?

Comment 7 by endli...@gmail.com, Nov 2 2016

This issue still in Version 54.0.2840.87 m (64-bit)

Please Fix It.
Status: Verified (was: Assigned)
Verified r426928 addresses symptoms here and in Google Translate extension as reported by  issue 660860 .

This fix will roll out in Chrome 56, which is currently in dev and canary channels.

Sign in to add a comment