Backout 385c05262943 for android robocop failures.

--HG--
extra : rebase_source : f315f7b4cd3b998baa4ffb5546bec914409092e9
This commit is contained in:
Scott Johnson 2013-05-10 15:26:27 -05:00
Родитель 3edace2ef7
Коммит 2a8d1f06df
3 изменённых файлов: 12 добавлений и 92 удалений

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

@ -97,7 +97,7 @@
<!ENTITY pref_plugins_tap_to_play "Tap to play">
<!ENTITY pref_plugins_disabled "Disabled">
<!ENTITY pref_text_size "Text size">
<!ENTITY pref_reflow_on_zoom3 "Double tap to reflow text">
<!ENTITY pref_reflow_on_zoom2 "Pinch to reflow text">
<!ENTITY pref_font_size_tiny "Tiny">
<!ENTITY pref_font_size_small "Small">
<!ENTITY pref_font_size_medium "Medium">

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

@ -115,7 +115,7 @@
<string name="pref_font_size_set">&pref_font_size_set;</string>
<string name="pref_font_size_adjust_char">&pref_font_size_adjust_char;</string>
<string name="pref_font_size_preview_text">&pref_font_size_preview_text;</string>
<string name="pref_reflow_on_zoom">&pref_reflow_on_zoom3;</string>
<string name="pref_reflow_on_zoom">&pref_reflow_on_zoom2;</string>
<string name="pref_show_product_announcements">&pref_show_product_announcements;</string>
<string name="pref_sync">&pref_sync;</string>
<string name="pref_search_suggestions">&pref_search_suggestions;</string>

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

@ -179,14 +179,6 @@ function fuzzyEquals(a, b) {
return (Math.abs(a - b) < 1e-6);
}
/**
* Convert a font size from CSS pixels (px) to twenteiths-of-a-point
* (twips).
*/
function convertFromPxToTwips(aSize) {
return (20.0 * 12.0 * (aSize/16.0));
}
#ifdef MOZ_CRASHREPORTER
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyServiceGetter(this, "CrashReporter",
@ -2557,45 +2549,16 @@ Tab.prototype = {
}
},
/**
* Retrieves the font size in twips for a given element.
*/
getFontSizeInTwipsFor: function(aElement) {
// GetComputedStyle should always give us CSS pixels for a font size.
let fontSizeStr = this.window.getComputedStyle(aElement)['fontSize'];
let fontSize = fontSizeStr.slice(0, -2);
// This is in px, so we want to convert it to points then to twips.
return convertFromPxToTwips(fontSize);
},
/**
* This returns the zoom necessary to match the font size of an element to
* the minimum font size specified by the browser.zoom.reflowOnZoom.minFontSizeTwips
* preference.
*/
getZoomToMinFontSize: function(aElement) {
let currentZoom = this._zoom;
let minFontSize = Services.prefs.getIntPref("browser.zoom.reflowZoom.minFontSizeTwips");
let curFontSize = this.getFontSizeInTwipsFor(aElement);
if (!fuzzyEquals(curFontSize*(currentZoom), minFontSize)) {
return 1.0 + minFontSize / curFontSize;
}
return 1.0;
},
performReflowOnZoom: function(aViewport) {
let zoom = this._drawZoom ? this._drawZoom : aViewport.zoom;
let viewportWidth = gScreenWidth / zoom;
let viewportWidth = gScreenWidth / aViewport.zoom;
let reflozTimeout = Services.prefs.getIntPref("browser.zoom.reflowZoom.reflowTimeout");
if (gReflowPending) {
clearTimeout(gReflowPending);
}
// We add in a bit of fudge just so that the end characters
// don't accidentally get clipped. 15px is an arbitrary choice.
// We add in a bit of fudge just so that the end characters don't accidentally
// get clipped. 15px is an arbitrary choice.
gReflowPending = setTimeout(doChangeMaxLineBoxWidth,
reflozTimeout,
viewportWidth - 15);
@ -2950,21 +2913,7 @@ Tab.prototype = {
// Adjust the max line box width to be no more than the viewport width, but
// only if the reflow-on-zoom preference is enabled.
let isZooming = !fuzzyEquals(aViewport.zoom, this._zoom);
if (BrowserApp.selectedTab.reflozPinchSeen &&
isZooming && aViewport.zoom < 1.0) {
// In this case, we want to restore the max line box width,
// because we are pinch-zooming to zoom out.
BrowserEventHandler.resetMaxLineBoxWidth();
BrowserApp.selectedTab.reflozPinchSeen = false;
} else if (BrowserApp.selectedTab.reflozPinchSeen &&
isZooming) {
// In this case, the user pinch-zoomed in, so we don't want to
// preserve position as we would with reflow-on-zoom.
BrowserApp.selectedTab.probablyNeedRefloz = false;
BrowserApp.selectedTab._mReflozPoint = null;
}
let isZooming = Math.abs(aViewport.zoom - this._zoom) >= 1e-6;
if (isZooming &&
BrowserEventHandler.mReflozPref &&
BrowserApp.selectedTab._mReflozPoint &&
@ -3863,15 +3812,10 @@ var BrowserEventHandler = {
},
resetMaxLineBoxWidth: function() {
BrowserApp.selectedTab.probablyNeedRefloz = false;
if (gReflowPending) {
clearTimeout(gReflowPending);
}
let reflozTimeout = Services.prefs.getIntPref("browser.zoom.reflowZoom.reflowTimeout");
gReflowPending = setTimeout(doChangeMaxLineBoxWidth,
reflozTimeout, 0);
let webNav = window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebNavigation);
let docShell = webNav.QueryInterface(Ci.nsIDocShell);
let docViewer = docShell.contentViewer.QueryInterface(Ci.nsIMarkupDocumentViewer);
docViewer.changeMaxLineBoxWidth(0);
},
updateReflozPref: function() {
@ -4102,18 +4046,6 @@ var BrowserEventHandler = {
onDoubleTap: function(aData) {
let data = JSON.parse(aData);
// We only want to do this if reflow-on-zoom is enabled.
if (BrowserEventHandler.mReflozPref &&
!BrowserApp.selectedTab._mReflozPoint) {
let data = JSON.parse(aData);
let zoomPointX = data.x;
let zoomPointY = data.y;
BrowserApp.selectedTab._mReflozPoint = { x: zoomPointX, y: zoomPointY,
range: BrowserApp.selectedBrowser.contentDocument.caretPositionFromPoint(zoomPointX, zoomPointY) };
BrowserApp.selectedTab.probablyNeedRefloz = true;
}
let zoom = BrowserApp.selectedTab._zoom;
let element = ElementTouchHelper.anyElementFromPoint(data.x, data.y);
if (!element) {
@ -4136,10 +4068,6 @@ var BrowserEventHandler = {
*/
_zoomToElement: function(aElement, aClickY = -1, aCanZoomOut = true, aCanScrollHorizontally = true) {
const margin = 15;
// This is really only used for reflow-on-zoom.
let zoomFactor = BrowserApp.selectedTab.getZoomToMinFontSize(aElement);
let rect = ElementTouchHelper.getBoundingContentRect(aElement);
let viewport = BrowserApp.selectedTab.getViewport();
@ -4149,20 +4077,12 @@ var BrowserEventHandler = {
rect.h);
// constrict the rect to the screen's right edge
bRect.width = Math.min(bRect.width, viewport.cssPageRight - bRect.x);
if (BrowserEventHandler.mReflozPref) {
bRect.width = zoomFactor == 1.0 ? bRect.width : gScreenWidth / zoomFactor;
bRect.height = zoomFactor == 1.0 ? bRect.height : bRect.height / zoomFactor;
}
// if the rect is already taking up most of the visible area and is stretching the
// width of the page, then we want to zoom out instead.
if ((BrowserEventHandler.mReflozPref && zoomFactor == 1.0) ||
this._isRectZoomedIn(bRect, viewport)) {
if (aCanZoomOut) {
if (this._isRectZoomedIn(bRect, viewport)) {
if (aCanZoomOut)
this._zoomOut();
}
return;
}