My favorites | Sign in
Logo
             
New issue | Search
for
| Advanced search | Search tips
Issue 20138: Renderer crashes when you open a background tab containing <video>
2 people starred this issue and may be notified of changes. Back to list
 
Reported by scherkus@chromium.org, Aug 24, 2009
What steps will reproduce the problem?
1. Go to http://www.corp.google.com/~scherkus/no_crawl/ChromeVideoDemo/
2. Middle click on any video_*.html file, opening in a new background tab
3. Switch to that tab

What is the expected output? What do you see instead?
It should switch to the new tab without taking down the renderer.

Debug output looks like this:
ASSERTION FAILED: !paintingDisabled()
(third_party/WebKit/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp:234
PlatformGraphicsContext* WebCore::GraphicsContext::platformContext() const)
[15467:15467:427111307567:ERROR:./chrome/common/temp_scaffolding_stubs.h(71)]
Not implemented reached in bool
printing::PrintViewManager::OnRenderViewGone(RenderViewHost*)
[15467:15467:427111311644:ERROR:./chrome/common/temp_scaffolding_stubs.h(71)]
Not implemented reached in bool
printing::PrintViewManager::OnRenderViewGone(RenderViewHost*)

Comment 1 by scherkus@chromium.org, Aug 26, 2009
Initial investigation has me curious.. the stack trace looks largely identical to
windows (go go skia) so I'm tracking down where the difference lies.  Perhaps this
happens on windows but doesn't due to difference in threading.
Status: Started
Comment 2 by scherkus@chromium.org, Aug 26, 2009
Hrmm.. so it looks like we're rendering our video during updateControlTints(), which
isables painting.

I'll see if Windows is doing the same.

#0  0x08e14b16 in WebCore::GraphicsContext::platformContext (this=0xf44546d8) at
third_party/WebKit/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp:234
#1  0x08770877 in WebKit::WebMediaPlayerClientImpl::paint (this=0xf17b8cf8,
context=0xf44546d8, rect=@0xf4453c24) at webkit/api/src/WebMediaPlayerClientImpl.cpp:335
#2  0x08e133c2 in WebCore::MediaPlayer::paint (this=0xf17c1270, p=0xf44546d8,
r=@0xf4453c24) at third_party/WebKit/WebCore/platform/graphics/MediaPlayer.cpp:450
#3  0x08f6acab in WebCore::RenderVideo::paintReplaced (this=0xf17b6ac4,
paintInfo=@0xf4453ecc, tx=0, ty=89) at
third_party/WebKit/WebCore/rendering/RenderVideo.cpp:123
#4  0x08f3eddb in WebCore::RenderReplaced::paint (this=0xf17b6ac4,
paintInfo=@0xf4453ecc, tx=0, ty=89) at
third_party/WebKit/WebCore/rendering/RenderReplaced.cpp:145
#5  0x08f13182 in WebCore::RenderLayer::paintLayer (this=0xf17b6bf4,
rootLayer=0xf174256c, p=0xf44546d8, paintDirtyRect=@0xf445467c,
paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0,
overlapTestRequests=0xf4454544, paintFlags=0) at
third_party/WebKit/WebCore/rendering/RenderLayer.cpp:2198
#6  0x08f133aa in WebCore::RenderLayer::paintLayer (this=0xf17bfa4c,
rootLayer=0xf174256c, p=0xf44546d8, paintDirtyRect=@0xf445467c,
paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0,
overlapTestRequests=0xf4454544, paintFlags=0) at
third_party/WebKit/WebCore/rendering/RenderLayer.cpp:2223
#7  0x08f133aa in WebCore::RenderLayer::paintLayer (this=0xf174256c,
rootLayer=0xf174256c, p=0xf44546d8, paintDirtyRect=@0xf445467c,
paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0,
overlapTestRequests=0xf4454544, paintFlags=0) at
third_party/WebKit/WebCore/rendering/RenderLayer.cpp:2223
#8  0x08f1359e in WebCore::RenderLayer::paint (this=0xf174256c, p=0xf44546d8,
damageRect=@0xf445467c, paintRestriction=WebCore::PaintRestrictionNone,
paintingRoot=0x0) at third_party/WebKit/WebCore/rendering/RenderLayer.cpp:2000
#9  0x08dea1c7 in WebCore::FrameView::paintContents (this=0xf17f2e00, p=0xf44546d8,
rect=@0xf445467c) at third_party/WebKit/WebCore/page/FrameView.cpp:1585
#10 0x08e764c2 in WebCore::ScrollView::paint (this=0xf17f2e00, context=0xf44546d8,
rect=@0xf44546b8) at third_party/WebKit/WebCore/platform/ScrollView.cpp:773
#11 0x08dec0dc in WebCore::FrameView::updateControlTints (this=0xf17f2e00) at
third_party/WebKit/WebCore/page/FrameView.cpp:1513
#12 0x08dda0da in WebCore::FocusController::setActive (this=0xf175d5f0, active=true)
at third_party/WebKit/WebCore/page/FocusController.cpp:337
#13 0x0897c199 in WebViewImpl::setFocus (this=0xf3218800, enable=true) at
webkit/glue/webview_impl.cc:1078
#14 0x09391871 in RenderWidget::OnSetFocus (this=0xf17c4fe0, enable=true) at
chrome/renderer/render_widget.cc:327


Comment 3 by hc...@chromium.org, Aug 27, 2009
 Issue 19916  has been merged into this issue.
Comment 4 by bugdroid1@chromium.org, Sep 01, 2009
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=25125 

------------------------------------------------------------------------
r25125 | scherkus@chromium.org | 2009-09-01 17:11:38 -0700 (Tue, 01 Sep 2009) | 9 lines
Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/api/src/WebMediaPlayerClientImpl.cpp?r1=25125&r2=25124

Fixes crash when switching to new tabs containing audio/video elements.

Cause was we're calling platformContext(), one of the few GraphicsContext operations that asserts if painting is disabled.

BUG=19677,20138
TEST=open a video in a new background tab, wait a bit, then switch to it -- shouldn't crash

Review URL: http://codereview.chromium.org/183038

------------------------------------------------------------------------

Comment 5 by scherkus@chromium.org, Sep 01, 2009
(No comment was entered for this change.)
Status: Fixed
Comment 6 by bugdroid1@chromium.org, Sep 01, 2009
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=25136 

------------------------------------------------------------------------
r25136 | laforge@chromium.org | 2009-09-01 17:56:56 -0700 (Tue, 01 Sep 2009) | 13 lines
Changed paths:
   M http://src.chromium.org/viewvc/chrome/branches/195/src/webkit/api/src/WebMediaPlayerClientImpl.cpp?r1=25136&r2=25135

Merge 25125 - Fixes crash when switching to new tabs containing audio/video elements.

Cause was we're calling platformContext(), one of the few GraphicsContext operations that asserts if painting is disabled.

BUG=19677,20138
TEST=open a video in a new background tab, wait a bit, then switch to it  shouldn't crash

Review URL: http://codereview.chromium.org/183038


TBR=scherkus@chromium.org

Review URL: http://codereview.chromium.org/172095
------------------------------------------------------------------------

Comment 7 by mal.chromium, Dec 18, 2009
(No comment was entered for this change.)
Labels: -Area-BrowserBackend Area-Internals
Comment 8 by mal.chromium, Dec 18, 2009
(No comment was entered for this change.)
Labels: Internals-Video
Sign in to add a comment

Powered by Google Project Hosting