Bug 763570 - Part 2 - Add a scrollframe from frameset documents on Fennec, so that they work with async pan/zoom and touch events. r=bz

This commit is contained in:
Kartikaya Gupta 2012-06-15 17:49:53 -04:00
parent 5ace9309ab
commit 51a77b21ba

View File

@ -2545,7 +2545,8 @@ nsCSSFrameConstructor::SetUpDocElementContainingBlock(nsIContent* aDocElement)
/*
how the root frame hierarchy should look
Galley presentation, non-XUL, with scrolling (i.e. not a frameset):
Galley presentation, non-XUL, with scrolling (i.e. not a frameset,
or framesets with async pan/zoom like on Fennec):
ViewportFrame [fixed-cb]
nsHTMLScrollFrame
@ -2553,7 +2554,8 @@ nsCSSFrameConstructor::SetUpDocElementContainingBlock(nsIContent* aDocElement)
root element frame (nsBlockFrame, nsSVGOuterSVGFrame,
nsTableOuterFrame, nsPlaceholderFrame)
Galley presentation, non-XUL, without scrolling (i.e. a frameset):
Galley presentation, non-XUL, without scrolling (i.e. a frameset,
except when async pan/zoom is enabled):
ViewportFrame [fixed-cb]
nsCanvasFrame [abs-cb]
@ -2670,12 +2672,15 @@ nsCSSFrameConstructor::SetUpDocElementContainingBlock(nsIContent* aDocElement)
// Never create scrollbars for XUL documents
bool isScrollable = !isXUL;
// Never create scrollbars for frameset documents.
#ifndef MOZ_WIDGET_ANDROID
// Never create scrollbars for frameset documents, except on android
// where we have async pan/zoom and need a scrollable root frame.
if (isHTML) {
nsCOMPtr<nsIHTMLDocument> htmlDoc = do_QueryInterface(mDocument);
if (htmlDoc && htmlDoc->GetIsFrameset())
isScrollable = false;
}
#endif
if (isPaginated) {
isScrollable = presContext->HasPaginatedScrolling();