Backing out fix for bug 546071 due to test failures

This commit is contained in:
Robert O'Callahan 2010-03-05 20:06:04 +13:00
Родитель 8c36e49335 c8e9db9062
Коммит 47197a502e
7 изменённых файлов: 10 добавлений и 33 удалений

Просмотреть файл

@ -1208,11 +1208,6 @@ nsObjectFrame::ComputeWidgetGeometry(const nsRegion& aRegion,
nsRect bounds = GetContentRect() + GetParent()->GetOffsetTo(rootFrame); nsRect bounds = GetContentRect() + GetParent()->GetOffsetTo(rootFrame);
configuration->mBounds = bounds.ToNearestPixels(appUnitsPerDevPixel); configuration->mBounds = bounds.ToNearestPixels(appUnitsPerDevPixel);
// This should produce basically the same rectangle (but not relative
// to the root frame). We only call this here for the side-effect of
// setting mViewToWidgetOffset on the view.
mInnerView->CalcWidgetBounds(eWindowType_plugin);
nsRegionRectIterator iter(aRegion); nsRegionRectIterator iter(aRegion);
nsIntPoint pluginOrigin = aPluginOrigin.ToNearestPixels(appUnitsPerDevPixel); nsIntPoint pluginOrigin = aPluginOrigin.ToNearestPixels(appUnitsPerDevPixel);
for (const nsRect* r = iter.Next(); r; r = iter.Next()) { for (const nsRect* r = iter.Next(); r; r = iter.Next()) {

Просмотреть файл

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html>
<body>
<div style="width:200px; border:2px solid black; overflow:hidden;">
<embed style="padding-left:1px;" type="application/x-test"></embed>
</div>
</body>
</html>

Просмотреть файл

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html>
<body>
<div style="width:200px; border:2px solid black; overflow:hidden;">
<embed style="padding-left:0.5px;" type="application/x-test"></embed>
</div>
</body>
</html>

Просмотреть файл

@ -1393,4 +1393,3 @@ fails HTTP(..) == 518172-2b.html 518172-b-ref.html # bug 518172
== 541382-1.html 541382-1-ref.html == 541382-1.html 541382-1-ref.html
== 541406-1.html 541406-1-ref.html == 541406-1.html 541406-1-ref.html
== 546033-1.html 546033-1-ref.html == 546033-1.html 546033-1-ref.html
== 546071-1.html 546071-1-ref.html

Просмотреть файл

@ -63,8 +63,8 @@ enum nsViewVisibility {
// IID for the nsIView interface // IID for the nsIView interface
#define NS_IVIEW_IID \ #define NS_IVIEW_IID \
{ 0xe981334b, 0x756e, 0x417a, \ { 0x4435167c, 0xb627, 0x4073, \
{ 0xbf, 0x18, 0x47, 0x4a, 0x2d, 0xfe, 0xc3, 0x87 } } { 0x9c, 0x92, 0xbc, 0x34, 0x39, 0xd9, 0xf8, 0xd2 } }
// Public view flags are defined in this file // Public view flags are defined in this file
#define NS_VIEW_FLAGS_PUBLIC 0x00FF #define NS_VIEW_FLAGS_PUBLIC 0x00FF
@ -334,11 +334,6 @@ public:
virtual PRBool ExternalIsRoot() const; virtual PRBool ExternalIsRoot() const;
void SetDeletionObserver(nsWeakView* aDeletionObserver); void SetDeletionObserver(nsWeakView* aDeletionObserver);
nsIntRect CalcWidgetBounds(nsWindowType aType);
PRBool IsEffectivelyVisible();
protected: protected:
friend class nsWeakView; friend class nsWeakView;
nsViewManager *mViewManager; nsViewManager *mViewManager;
@ -351,7 +346,6 @@ protected:
nsViewVisibility mVis; nsViewVisibility mVis;
nscoord mPosX, mPosY; nscoord mPosX, mPosY;
nsRect mDimBounds; // relative to parent nsRect mDimBounds; // relative to parent
nsPoint mViewToWidgetOffset;
float mOpacity; float mOpacity;
PRUint32 mVFlags; PRUint32 mVFlags;
nsWeakView* mDeletionObserver; nsWeakView* mDeletionObserver;

Просмотреть файл

@ -328,16 +328,16 @@ void nsView::ResetWidgetBounds(PRBool aRecurse, PRBool aMoveOnly,
} }
} }
PRBool nsIView::IsEffectivelyVisible() PRBool nsView::IsEffectivelyVisible()
{ {
for (nsIView* v = this; v; v = v->mParent) { for (nsView* v = this; v; v = v->mParent) {
if (v->GetVisibility() == nsViewVisibility_kHide) if (v->GetVisibility() == nsViewVisibility_kHide)
return PR_FALSE; return PR_FALSE;
} }
return PR_TRUE; return PR_TRUE;
} }
nsIntRect nsIView::CalcWidgetBounds(nsWindowType aType) nsIntRect nsView::CalcWidgetBounds(nsWindowType aType)
{ {
nsCOMPtr<nsIDeviceContext> dx; nsCOMPtr<nsIDeviceContext> dx;
mViewManager->GetDeviceContext(*getter_AddRefs(dx)); mViewManager->GetDeviceContext(*getter_AddRefs(dx));

Просмотреть файл

@ -195,12 +195,17 @@ public:
return mViewToWidgetOffset; return mViewToWidgetOffset;
} }
nsIntRect CalcWidgetBounds(nsWindowType aType);
PRBool IsEffectivelyVisible();
protected: protected:
// Do the actual work of ResetWidgetBounds, unconditionally. Don't // Do the actual work of ResetWidgetBounds, unconditionally. Don't
// call this method if we have no widget. // call this method if we have no widget.
void DoResetWidgetBounds(PRBool aMoveOnly, PRBool aInvalidateChangedSize); void DoResetWidgetBounds(PRBool aMoveOnly, PRBool aInvalidateChangedSize);
nsRegion* mDirtyRegion; nsRegion* mDirtyRegion;
nsPoint mViewToWidgetOffset;
}; };
#endif #endif