Closed Bug 374762 Opened 17 years ago Closed 11 months ago

page is blanked for an instant by resizing the view

Categories

(Core :: Web Painting, defect)

defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: hsaito54, Unassigned)

References

Details

(Keywords: testcase)

Attachments

(2 files)

After the page was loaded using reload button or back button, if the scroll bar is moved to the bottom and the window is resized vertically or moved to the right edge and the window is resized horizontally, the page is blanked first for an instant.

This problem is caused by calling |::UpdateWindow(mWnd)| at nsWindow::Scroll(), although mRefreshEnabled is not true on viewmanagers. I think that the following patch can fix this problem.

If already fixed, I am sorry this report is spam.

diff -p8 -Naur view/src/nsScrollPortView.cpp.org view/src/nsScrollPortView.cpp
--- view/src/nsScrollPortView.cpp.org	Sat Feb 17 22:10:48 2007
+++ view/src/nsScrollPortView.cpp	Wed Mar 21 21:08:39 2007
@@ -579,18 +579,20 @@ void nsScrollPortView::Scroll(nsView *aS
       AdjustChildWidgets(aScrolledView,
                          GetPosition() - topLeft, aP2A, PR_FALSE);
       // We should call this after fixing up the widget positions to be
       // consistent with the view hierarchy.
       mViewManager->UpdateView(this, 0);
     } else { // if we can blit and have a scrollwidget then scroll.
       // Scroll the contents of the widget by the specified amount, and scroll
       // the child widgets
-      scrollWidget->Scroll(aPixDelta.x, aPixDelta.y, nsnull);
-      mViewManager->UpdateViewAfterScroll(this, updateRegion);
+      if (mViewManager->IsRefreshEnabled()) {
+        scrollWidget->Scroll(aPixDelta.x, aPixDelta.y, nsnull);
+        mViewManager->UpdateViewAfterScroll(this, updateRegion);
+      }
     }
   }
 }
 
 NS_IMETHODIMP nsScrollPortView::ScrollToImpl(nscoord aX, nscoord aY, PRUint32 aUpdateFlags)
 {
   PRInt32           dxPx = 0, dyPx = 0;
I can also see this problem on own build of trunc-20070324/ppclinux.
OS: Windows XP → All
Hardware: PC → All
Attached patch patchSplinter Review
Summary: page is blanked by resizing the view → page is blanked for an instant by resizing the view
Comment on attachment 261091 [details] [diff] [review]
patch

roc, could you review this patch?

While resize reflow, mViewManager->BeginUpdateViewBatch() is called from PresShell::ResizeReflow(), mRefreshEnabled is then false, meanwhile, I think that the refreshment should be restrained.
Attachment #261091 - Flags: review?(roc)
We can't not scroll just because mRefreshEnabled is false. We have to scroll the widget at some point. The basic problem here is that scrolling is synchronous and breaks suppression; fixing that requires compositor. I don't think we can fix it for 1.9.
Depends on: compositor
Attachment #261091 - Flags: review?(roc)
Hmm, I can't reproduce, but would it be sufficient to just set canBitBlt to false when refresh is disabled?  I think that would have the right effect, although it would be a perf hit if we're in this situation frequently.
I can't reproduce. Can you test it with the latest trunk?

Anyway, is this bug related to Bug 422659?
(In reply to comment #7)
> I can't reproduce. Can you test it with the latest trunk?
> 
> Anyway, is this bug related to Bug 422659?
> 

I can see it yet. I think that Bug 422659 is other bug because this bug is in the scrolling issues.
Can you post a link where you can see that bug and your build identifier?
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008061418 Minefield/3.0pre

For reproducing, in the any page which has vertical scrollbar,
1. put down the var on the bottom of the window,
2. reload the page and 
3. spread the window downward.
Attached file Minimal testcase
I found why I can't reproduce the bug in past. This bug happens when you have not disabled the option to see the content of the page when resized (In Windows: My Computer -> properties -> Advanced -> Performance settings -> show window content when you move it) (or something similar...)

Anyway what I notice is only a little flickering, the page was not blanked. So I don't confirm the bug for now, I wait for a third confirmation.
QA Contact: ian → layout.view-rendering
Component: Layout: View Rendering → Layout: Web Painting
Severity: normal → S3

Unable to reproduce.

Status: NEW → RESOLVED
Closed: 11 months ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: