Stack Blame for bp-95fc8b76-e6c7-4f5c-bddf-dc97c2101116

Thread 0 (crashed)

XUL ! _cairo_image_surface_assume_ownership_of_data (gfx/cairo/cairo/src/cairo-image-surface.c:812)

hg@1 807 }
hg@1 808
hg@1 809 void
hg@1 810 _cairo_image_surface_assume_ownership_of_data (cairo_image_surface_t *surface)
hg@1 811 {
joe@26419 812 surface->owns_data = TRUE;
hg@1 813 }
hg@1 814
hg@1 815 static cairo_status_t
hg@1 816 _cairo_image_surface_acquire_source_image (void *abstract_surface,
hg@1 817 cairo_image_surface_t **image_out,

XUL ! _cairo_quartz_surface_finish (gfx/cairo/cairo/src/cairo-quartz-surface.c:1919)

robert@42954 1914 CGImageRelease (surface->bitmapContextImage);
robert@42954 1915 surface->bitmapContextImage = NULL;
robert@42954 1916 }
robert@42954 1917
vladimir@10842 1918 if (surface->imageSurfaceEquiv) {
joe@57346 1919 _cairo_image_surface_assume_ownership_of_data (surface->imageSurfaceEquiv);
vladimir@10842 1920 cairo_surface_destroy (surface->imageSurfaceEquiv);
vladimir@10842 1921 surface->imageSurfaceEquiv = NULL;
joe@57346 1922 } else if (surface->imageData) {
joe@57346 1923 free (surface->imageData);
vladimir@10842 1924 }

XUL ! _moz_cairo_surface_finish (gfx/cairo/cairo/src/cairo-surface.c:649)

vladimir@16122 644
vladimir@16122 645 cairo_surface_flush (surface);
vladimir@16122 646
vladimir@16122 647 /* call finish even if in error mode */
vladimir@16122 648 if (surface->backend->finish) {
vladimir@16122 649 status = surface->backend->finish (surface);
joe@26419 650 if (unlikely (status))
vladimir@16122 651 status = _cairo_surface_set_error (surface, status);
vladimir@16077 652 }
vladimir@16074 653
hg@1 654 surface->finished = TRUE;

XUL ! _moz_cairo_surface_destroy (gfx/cairo/cairo/src/cairo-surface.c:581)

hg@1 576 return;
hg@1 577
jmuizelaar@32473 578 assert (surface->snapshot_of == NULL);
jmuizelaar@32473 579
vladimir@314 580 if (! surface->finished)
vladimir@314 581 cairo_surface_finish (surface);
hg@1 582
hg@1 583 _cairo_user_data_array_fini (&surface->user_data);
joe@26419 584 _cairo_user_data_array_fini (&surface->mime_data);
jmuizelaar@32473 585 _cairo_array_fini (&surface->snapshots);
hg@1 586

XUL ! _moz_cairo_pattern_destroy (gfx/cairo/cairo/src/cairo-pattern.c:899)

hg@1 894
vladimir@8452 895 if (! _cairo_reference_count_dec_and_test (&pattern->ref_count))
hg@1 896 return;
hg@1 897
jmuizelaar@32473 898 type = pattern->type;
hg@1 899 _cairo_pattern_fini (pattern);
vladimir@4133 900
vladimir@4133 901 /* maintain a small cache of freed patterns */
jmuizelaar@32473 902 _freed_pattern_put (&freed_pattern_pool[type], pattern);
hg@1 903 }
hg@1 904 slim_hidden_def (cairo_pattern_destroy);

XUL ! _cairo_gstate_fini (gfx/cairo/cairo/src/cairo-gstate.c:210)

hg@1 205 gstate->parent_target = NULL;
hg@1 206
hg@1 207 cairo_surface_destroy (gstate->original_target);
vladimir@8452 208 gstate->original_target = NULL;
hg@1 209
hg@1 210 cairo_pattern_destroy (gstate->source);
hg@1 211 gstate->source = NULL;
jmuizelaar@32473 212
jmuizelaar@32473 213 VG (VALGRIND_MAKE_MEM_NOACCESS (gstate, sizeof (cairo_gstate_t)));
hg@1 214 }
hg@1 215

XUL ! _cairo_gstate_restore (gfx/cairo/cairo/src/cairo-gstate.c:271)

vladimir@8452 266 if (top->next == NULL)
vladimir@8452 267 return _cairo_error (CAIRO_STATUS_INVALID_RESTORE);
vladimir@4133 268
vladimir@4133 269 *gstate = top->next;
vladimir@4133 270
vladimir@16122 271 _cairo_gstate_fini (top);
jmuizelaar@32473 272 VG (VALGRIND_MAKE_MEM_UNDEFINED (&top->next, sizeof (cairo_gstate_t *)));
vladimir@16122 273 top->next = *freelist;
vladimir@16122 274 *freelist = top;
vladimir@4133 275
vladimir@4133 276 return CAIRO_STATUS_SUCCESS;

XUL ! _moz_cairo_restore (gfx/cairo/cairo/src/cairo.c:481)

vladimir@4133 476 cairo_status_t status;
hg@1 477
jmuizelaar@32473 478 if (unlikely (cr->status))
hg@1 479 return;
hg@1 480
vladimir@16122 481 status = _cairo_gstate_restore (&cr->gstate, &cr->gstate_freelist);
joe@26419 482 if (unlikely (status))
vladimir@4133 483 _cairo_set_error (cr, status);
hg@1 484 }
hg@1 485 slim_hidden_def(cairo_restore);
hg@1 486

XUL ! PresShell::RenderDocument (unknown.file:670)

XUL ! mozilla::imagelib::SVGDrawingCallback::operator() (modules/libpr0n/src/VectorImage.cpp:192)

dholbert@52221 187 renderDocFlags |= nsIPresShell::RENDER_ASYNC_DECODE_IMAGES;
dholbert@52221 188 }
dholbert@52221 189
dholbert@52221 190 presShell->RenderDocument(svgRect, renderDocFlags,
dholbert@52221 191 NS_RGBA(0, 0, 0, 0), // transparent
dholbert@52221 192 aContext);
dholbert@52221 193
dholbert@52221 194 aContext->SetMatrix(savedMatrix);
dholbert@52221 195 aContext->Restore();
dholbert@52221 196
dholbert@52221 197 return PR_TRUE;

XUL ! gfxCallbackDrawable::MakeSurfaceDrawable (gfx/thebes/gfxDrawable.cpp:193)

reportbase@54253 188 gfxPlatform::GetPlatform()->CreateOffscreenSurface(mSize, gfxASurface::CONTENT_COLOR_ALPHA);
mstange@50418 189 if (!surface || surface->CairoStatus() != 0)
mstange@50418 190 return nsnull;
mstange@50418 191
mstange@50418 192 nsRefPtr<gfxContext> ctx = new gfxContext(surface);
mstange@50418 193 Draw(ctx, gfxRect(0, 0, mSize.width, mSize.height), PR_FALSE, aFilter);
mstange@50418 194 nsRefPtr<gfxSurfaceDrawable> drawable = new gfxSurfaceDrawable(surface, mSize);
mstange@50418 195 return drawable.forget();
mstange@50418 196 }
mstange@50418 197
mstange@50418 198 PRBool

XUL ! gfxCallbackDrawable::Draw (gfx/thebes/gfxDrawable.cpp:206)

mstange@50418 201 PRBool aRepeat,
mstange@50418 202 const gfxPattern::GraphicsFilter& aFilter,
mstange@50418 203 const gfxMatrix& aTransform)
mstange@50418 204 {
mstange@50418 205 if (aRepeat && !mSurfaceDrawable) {
mstange@50418 206 mSurfaceDrawable = MakeSurfaceDrawable(aFilter);
mstange@50418 207 }
mstange@50418 208
mstange@50418 209 if (mSurfaceDrawable)
mstange@50418 210 return mSurfaceDrawable->Draw(aContext, aFillRect, aRepeat, aFilter,
mstange@50418 211 aTransform);

XUL ! gfxUtils::DrawPixelSnapped (gfx/thebes/gfxUtils.cpp:276)

mstange@50417 271 return nsnull;
mstange@50417 272
mstange@55854 273 nsRefPtr<gfxContext> tmpCtx = new gfxContext(temp);
mstange@55854 274 tmpCtx->SetOperator(OptimalFillOperator());
mstange@55854 275 aDrawable->Draw(tmpCtx, needed - needed.pos, PR_TRUE,
mstange@50419 276 gfxPattern::FILTER_FAST, gfxMatrix().Translate(needed.pos));
mstange@50417 277
mstange@50417 278 nsRefPtr<gfxPattern> resultPattern = new gfxPattern(temp);
mstange@50417 279 if (!resultPattern)
mstange@50417 280 return nsnull;
mstange@50417 281

XUL ! mozilla::imagelib::VectorImage::Draw (modules/libpr0n/src/VectorImage.cpp:555)

dholbert@52221 550 nsRefPtr<gfxDrawable> drawable = new gfxCallbackDrawable(cb, imageSizeGfx);
dholbert@52221 551
dholbert@52221 552 gfxUtils::DrawPixelSnapped(aContext, drawable,
dholbert@52221 553 aUserSpaceToImageSpace,
dholbert@52221 554 subimage, sourceRect, imageRect, aFill,
dholbert@52221 555 gfxASurface::ImageFormatARGB32, aFilter);
dholbert@52221 556
dholbert@52221 557 return NS_OK;
dholbert@52216 558 }
dholbert@52216 559
dholbert@52216 560 //******************************************************************************

XUL ! DrawImageInternal (layout/base/nsLayoutUtils.cpp:3081)

robert@21323 3076 ctx->IdentityMatrix();
robert@21323 3077 }
robert@21323 3078
mstange@46989 3079 aImage->Draw(ctx, aGraphicsFilter, drawingParams.mUserSpaceToImageSpace,
dholbert@52215 3080 drawingParams.mFillRect, drawingParams.mSubimage, aImageSize,
dholbert@52215 3081 aImageFlags);
zweinberg@24452 3082 return NS_OK;
zweinberg@24452 3083 }
zweinberg@24452 3084
mstange@50420 3085 /* static */ void
mstange@50420 3086 nsLayoutUtils::DrawPixelSnapped(nsIRenderingContext* aRenderingContext,

XUL ! nsLayoutUtils::DrawImage (layout/base/nsLayoutUtils.cpp:3270)

dholbert@52215 3265 imageSize.height = nsPresContext::AppUnitsToIntCSSPixels(aFill.height);
dholbert@52215 3266 }
rkawaguchi@30759 3267
rkawaguchi@30759 3268 return DrawImageInternal(aRenderingContext, aImage, aGraphicsFilter,
rkawaguchi@30759 3269 aDest, aFill, aAnchor, aDirty,
bobbyholley@32424 3270 imageSize, aImageFlags);
zweinberg@24452 3271 }
zweinberg@24452 3272
robert@21323 3273 /* static */ nsRect
robert@21323 3274 nsLayoutUtils::GetWholeImageDestination(const nsIntSize& aWholeImageSize,
robert@21323 3275 const nsRect& aImageSourceArea,

XUL ! ImageRenderer::Draw (layout/base/nsCSSRendering.cpp:3809)

bobbyholley@32425 3804 PRUint32 drawFlags = (mFlags & FLAG_SYNC_DECODE_IMAGES)
bobbyholley@32425 3805 ? (PRUint32) imgIContainer::FLAG_SYNC_DECODE
bobbyholley@32425 3806 : (PRUint32) imgIContainer::FLAG_NONE;
rkawaguchi@31749 3807 nsLayoutUtils::DrawImage(&aRenderingContext, mImageContainer,
mstange@50427 3808 graphicsFilter,
bobbyholley@32425 3809 aDest, aFill, aAnchor, aDirty, drawFlags);
rkawaguchi@31749 3810 break;
bobbyholley@32425 3811 }
rkawaguchi@31749 3812 case eStyleImageType_Gradient:
rkawaguchi@31749 3813 nsCSSRendering::PaintGradient(aPresContext, aRenderingContext,
roc@34476 3814 mGradientData, aDirty, aDest, aFill);

XUL ! PaintBackgroundLayer (layout/base/nsCSSRendering.cpp:2579)

robert@36902 2574 fillArea.height = bgClipRect.height;
hg@1 2575 }
robert@36902 2576 fillArea.IntersectRect(fillArea, bgClipRect);
hg@1 2577
rkawaguchi@31749 2578 imageRenderer.Draw(aPresContext, aRenderingContext, destArea, fillArea,
roc@34476 2579 anchor + aBorderArea.TopLeft(), aDirtyRect);
hg@1 2580 }
hg@1 2581
zweinberg@19707 2582 static void
zweinberg@25017 2583 DrawBorderImage(nsPresContext* aPresContext,
zweinberg@19707 2584 nsIRenderingContext& aRenderingContext,

XUL ! nsCSSRendering::PaintBackgroundWithSC (layout/base/nsCSSRendering.cpp:2301)

dbaron@25276 2296 }
dbaron@25276 2297 }
dbaron@25276 2298 if (!dirtyRectGfx.IsEmpty()) {
bobbyholley@32425 2299 PaintBackgroundLayer(aPresContext, aRenderingContext, aForFrame, aFlags,
dbaron@40177 2300 dirtyRect, aBorderArea, bgClipArea, *bg,
robert@30509 2301 layer);
dbaron@25276 2302 }
dbaron@25276 2303 }
dbaron@25276 2304 }
dbaron@25276 2305 }
dbaron@25276 2306

XUL ! nsCSSRendering::PaintBackground (layout/base/nsCSSRendering.cpp:1467)

hg@1 1462 }
zweinberg@23854 1463
hg@1 1464 PaintBackgroundWithSC(aPresContext, aRenderingContext, aForFrame,
dbaron@40177 1465 aDirtyRect, aBorderArea, sc,
robert@28800 1466 *aForFrame->GetStyleBorder(), aFlags,
robert@28800 1467 aBGClipRect);
hg@1 1468 }
hg@1 1469
robert@16605 1470 static PRBool
timeless@41419 1471 IsOpaqueBorderEdge(const nsStyleBorder& aBorder, mozilla::css::Side aSide)
robert@16605 1472 {

XUL ! nsDisplayCanvasBackground::Paint (layout/generic/nsCanvasFrame.cpp:271)

hg@1 266
robert@47741 267 nsCSSRendering::PaintBackground(mFrame->PresContext(), *aCtx, mFrame,
robert@47741 268 mVisibleRect,
robert@47741 269 nsRect(offset, mFrame->GetSize()),
robert@47741 270 aBuilder->GetBackgroundPaintFlags(),
robert@47741 271 &bgClipRect);
robert@47741 272 }
hg@1 273
hg@1 274 /**
hg@1 275 * A display item to paint the focus ring for the document.
hg@1 276 *

XUL ! mozilla::FrameLayerBuilder::DrawThebesLayer (layout/base/FrameLayerBuilder.cpp:1678)

robert@47751 1673 // This item has an inactive layer. Render it to the ThebesLayer
robert@47751 1674 // using the temporary BasicLayerManager.
robert@47751 1675 cdi->mTempLayerManager->BeginTransactionWithTarget(aContext);
robert@47751 1676 cdi->mTempLayerManager->EndTransaction(DrawThebesLayer, builder);
robert@47751 1677 } else {
robert@47751 1678 cdi->mItem->Paint(builder, rc);
robert@42593 1679 }
roc@54261 1680
roc@54261 1681 if (builder->LayerBuilder()->CheckDOMModified())
roc@54261 1682 break;
robert@42593 1683 }

XUL ! mozilla::layers::ThebesLayerOGL::RenderLayer (gfx/layers/opengl/ThebesLayerOGL.cpp:557)

vladimir@47946 552
jones@48092 553 LayerManager::DrawThebesLayerCallback callback =
jones@48092 554 mOGLManager->GetThebesLayerCallback();
jones@48092 555 void* callbackData = mOGLManager->GetThebesLayerCallbackData();
jones@48092 556 callback(this, state.mContext, state.mRegionToDraw,
jones@48092 557 state.mRegionToInvalidate, callbackData);
jones@48092 558 mValidRegion.Or(mValidRegion, state.mRegionToDraw);
romaxa@46143 559 }
robert@42593 560
vladimir@54505 561 DEBUG_GL_ERROR_CHECK(gl());
vladimir@54505 562

XUL ! mozilla::layers::ContainerLayerOGL::RenderLayer (gfx/layers/opengl/ContainerLayerOGL.cpp:209)

mattwoodrow@57096 204 cachedScissor.y,
mattwoodrow@57096 205 cachedScissor.width,
mattwoodrow@57096 206 cachedScissor.height);
mattwoodrow@57096 207 }
jones@55456 208
robert@57097 209 layerToRender->RenderLayer(frameBuffer, childOffset);
jones@55456 210
jones@55456 211 Layer *nextSibling = layerToRender->GetLayer()->GetNextSibling();
jones@55456 212 layerToRender = nextSibling ? static_cast<LayerOGL*>(nextSibling->
jones@55456 213 ImplData())
jones@55456 214 : nsnull;

XUL ! mozilla::layers::ContainerLayerOGL::RenderLayer (gfx/layers/opengl/ContainerLayerOGL.cpp:209)

mattwoodrow@57096 204 cachedScissor.y,
mattwoodrow@57096 205 cachedScissor.width,
mattwoodrow@57096 206 cachedScissor.height);
mattwoodrow@57096 207 }
jones@55456 208
robert@57097 209 layerToRender->RenderLayer(frameBuffer, childOffset);
jones@55456 210
jones@55456 211 Layer *nextSibling = layerToRender->GetLayer()->GetNextSibling();
jones@55456 212 layerToRender = nextSibling ? static_cast<LayerOGL*>(nextSibling->
jones@55456 213 ImplData())
jones@55456 214 : nsnull;

XUL ! mozilla::layers::LayerManagerOGL::Render (gfx/layers/opengl/LayerManagerOGL.cpp:598)

vladimir@53683 593 mGLContext->fClearColor(0.0, 0.0, 0.0, 0.0);
vladimir@53683 594 mGLContext->fClear(LOCAL_GL_COLOR_BUFFER_BIT | LOCAL_GL_DEPTH_BUFFER_BIT);
vladimir@53683 595
vladimir@42791 596 // Render our layers.
mstange@57545 597 RootLayer()->RenderLayer(mGLContext->IsDoubleBuffered() && !mTarget ? 0 : mBackBufferFBO,
robert@57097 598 nsIntPoint(0, 0));
vladimir@42791 599
vladimir@42791 600 DEBUG_GL_ERROR_CHECK(mGLContext);
vladimir@42791 601
bschouten@39997 602 if (mTarget) {
bschouten@39997 603 CopyToTarget();

XUL ! mozilla::layers::LayerManagerOGL::EndTransaction (gfx/layers/opengl/LayerManagerOGL.cpp:416)

vladimir@42791 411 mThebesLayerCallback = aCallback;
vladimir@42791 412 mThebesLayerCallbackData = aCallbackData;
vladimir@42791 413
romaxa@56993 414 // NULL callback means "non-painting transaction"
romaxa@56993 415 if (aCallback) {
romaxa@56993 416 Render();
romaxa@56993 417 }
vladimir@42791 418
vladimir@42791 419 mThebesLayerCallback = nsnull;
vladimir@42791 420 mThebesLayerCallbackData = nsnull;
vladimir@42791 421

XUL ! nsDisplayList::PaintForFrame (layout/base/nsDisplayList.cpp:476)

jones@54083 471 }
jones@54083 472
robert@38803 473 layerManager->SetRoot(root);
robert@47771 474 aBuilder->LayerBuilder()->WillEndTransaction(layerManager);
robert@42593 475 layerManager->EndTransaction(FrameLayerBuilder::DrawThebesLayer,
robert@42593 476 aBuilder);
robert@47736 477 aBuilder->LayerBuilder()->DidEndTransaction(layerManager);
robert@38803 478
robert@47739 479 if (aFlags & PAINT_FLUSH_LAYERS) {
robert@47739 480 FrameLayerBuilder::InvalidateAllLayers(layerManager);
robert@47739 481 }

XUL ! nsLayoutUtils::PaintFrame (layout/base/nsLayoutUtils.cpp:1442)

robert@47739 1437 // covers the entire window
robert@47739 1438 widget->UpdatePossiblyTransparentRegion(dirtyWindowRegion, visibleWindowRegion);
robert@47739 1439 }
robert@38805 1440 }
robert@47738 1441
robert@42246 1442 list.PaintRoot(&builder, aRenderingContext, flags);
robert@47738 1443
robert@47738 1444 #ifdef DEBUG
robert@47738 1445 if (gDumpPaintList) {
robert@47738 1446 fprintf(stderr, "Painting --- retained layer tree:\n");
robert@47738 1447 builder.LayerBuilder()->DumpRetainedLayerTree();

XUL ! PresShell::Paint (layout/base/nsPresShell.cpp:6090)

robert@38805 6085 // We can paint directly into the widget using its layer manager.
robert@38805 6086 // When we get rid of child widgets, this will be the only path we
robert@38805 6087 // need. (aPaintDefaultBackground will never be needed since the
robert@38805 6088 // chrome can always paint a default background.)
robert@38805 6089 nsLayoutUtils::PaintFrame(nsnull, frame, aDirtyRegion, bgcolor,
robert@38805 6090 nsLayoutUtils::PAINT_WIDGET_LAYERS);
robert@47735 6091
robert@47735 6092 frame->EndDeferringInvalidatesForDisplayRoot();
robert@38805 6093 return NS_OK;
robert@38805 6094 }
robert@38805 6095

XUL ! nsViewManager::RenderViews (view/src/nsViewManager.cpp:447)

robert@38805 442 }
tnikkel@26953 443
hg@1 444 if (mObserver) {
tnikkel@47899 445 nsRegion region = ConvertRegionBetweenViews(aRegion, aView, displayRoot);
tnikkel@47899 446 mObserver->Paint(displayRoot, aView, aWidget, region, aIntRegion,
tnikkel@47899 447 aPaintDefaultBackground, aWillSendDidPaint);
hg@1 448 }
hg@1 449 }
hg@1 450
hg@1 451 void nsViewManager::ProcessPendingUpdates(nsView* aView, PRBool aDoInvalidate)
hg@1 452 {

XUL ! nsViewManager::Refresh (view/src/nsViewManager.cpp:413)

hg@1 408
jonas@13098 409 {
robert@34893 410 nsAutoScriptBlocker scriptBlocker;
jonas@13098 411 SetPainting(PR_TRUE);
hg@1 412
tnikkel@47899 413 RenderViews(aView, aWidget, damageRegion, aRegion, PR_FALSE, PR_FALSE);
hg@1 414
jonas@13098 415 SetPainting(PR_FALSE);
jonas@13098 416 }
hg@1 417
hg@1 418 if (RootViewManager()->mRecursiveRefreshPending) {

XUL ! nsViewManager::DispatchEvent (view/src/nsViewManager.cpp:912)

hg@1 907 rootVM->ProcessPendingUpdates(mRootView, PR_FALSE);
hg@1 908 }
mats@919 909
mstange@34856 910 if (view && aEvent->message == NS_PAINT) {
robert@38805 911 Refresh(view, event->widget,
robert@38805 912 event->region, NS_VMREFRESH_DOUBLE_BUFFER);
mats@919 913 }
hg@1 914 }
mstange@34856 915 } else if (aEvent->message == NS_PAINT) {
hg@1 916 // since we got an NS_PAINT event, we need to
zweinberg@25385 917 // draw something so we don't get blank areas,

XUL ! HandleEvent (view/src/nsView.cpp:161)

jmathies@46193 156 nsView *view = nsView::GetViewFor(aEvent->widget);
jmathies@46193 157
jmathies@46193 158 if (view)
jmathies@46193 159 {
jmathies@46193 160 nsCOMPtr<nsIViewManager> vm = view->GetViewManager();
jmathies@46193 161 vm->DispatchEvent(aEvent, view, &result);
jmathies@46193 162 }
jmathies@46193 163
jmathies@46193 164 return result;
jmathies@46193 165 }
jmathies@46193 166

XUL ! nsChildView::DispatchEvent (widget/src/cocoa/nsChildView.mm:1786)

joshmoz@6133 1781
b56girard@50639 1782 PRBool restoreIsDispatchPaint = mIsDispatchPaint;
b56girard@50639 1783 mIsDispatchPaint = mIsDispatchPaint || event->eventStructType == NS_PAINT_EVENT;
b56girard@50639 1784
hg@1 1785 if (mEventCallback)
hg@1 1786 aStatus = (*mEventCallback)(event);
joshmoz@6133 1787
b56girard@50639 1788 mIsDispatchPaint = restoreIsDispatchPaint;
b56girard@50639 1789
hg@1 1790 return NS_OK;
hg@1 1791 }

XUL ! nsChildView::DispatchWindowEvent (widget/src/cocoa/nsChildView.mm:1796)

hg@1 1791 }
hg@1 1792
hg@1 1793 PRBool nsChildView::DispatchWindowEvent(nsGUIEvent &event)
hg@1 1794 {
hg@1 1795 nsEventStatus status;
hg@1 1796 DispatchEvent(&event, status);
hg@1 1797 return ConvertStatus(status);
hg@1 1798 }
hg@1 1799
hg@1 1800 #pragma mark -
hg@1 1801

XUL ! -[ChildView drawRect:inContext:] (widget/src/cocoa/nsChildView.mm:2730)

mwoodrow@41434 2725 manager->SetClippingRegion(paintEvent.region);
robert@43776 2726 if (!mGLContext) {
robert@43776 2727 mGLContext = (NSOpenGLContext *)manager->gl()->GetNativeData(mozilla::gl::GLContext::NativeGLContext);
robert@43776 2728 [mGLContext retain];
mwoodrow@41434 2729 }
mwoodrow@41434 2730 mGeckoChild->DispatchWindowEvent(paintEvent);
mwoodrow@41434 2731 return;
mwoodrow@41434 2732 }
mwoodrow@41434 2733
mwoodrow@41434 2734 // Create Cairo objects.
mwoodrow@41434 2735 NSSize bufferSize = [self bounds].size;

XUL ! -[ChildView drawRect:] (widget/src/cocoa/nsChildView.mm:2637)

hg@1 2632 - (void)drawRect:(NSRect)aRect
hg@1 2633 {
joe@54779 2634 float oldHeight = [self beginMaybeResetUnifiedToolbar];
joe@54779 2635
mstange@34054 2636 CGContextRef cgContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
mstange@34054 2637 [self drawRect:aRect inContext:cgContext];
mstange@34054 2638
mstange@35620 2639 // If we're a transparent window and our contents have changed, we need
mstange@34054 2640 // to make sure the shadow is updated to the new contents.
mstange@35620 2641 if ([[self window] isKindOfClass:[BaseWindow class]]) {
mstange@35620 2642 [(BaseWindow*)[self window] deferredInvalidateShadow];

AppKit ! (unknown repo)

AppKit ! (unknown repo)

AppKit ! (unknown repo)

AppKit ! (unknown repo)

Foundation ! (unknown repo)

AppKit ! (unknown repo)

AppKit ! (unknown repo)

libSystem.B.dylib ! (unknown repo)

libSystem.B.dylib ! (unknown repo)

AppKit ! (unknown repo)

AppKit ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)

Foundation ! (unknown repo)

AppKit ! (unknown repo)

libSystem.B.dylib ! (unknown repo)

AppKit ! (unknown repo)

AppKit ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)

CoreFoundation ! (unknown repo)