diff --git a/mobile/chrome/content/BrowserView.js b/mobile/chrome/content/BrowserView.js index 37fac2ce5ad2..73f7d2450430 100644 --- a/mobile/chrome/content/BrowserView.js +++ b/mobile/chrome/content/BrowserView.js @@ -245,25 +245,6 @@ BrowserView.prototype = { try { cacheSize = gPrefService.getIntPref("tile.cache.size"); } catch(e) {} - - if (cacheSize == -1) { - let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2); - let device = sysInfo.get("device"); - switch (device) { -#ifdef MOZ_PLATFORM_HILDON - case "Nokia N900": - cacheSize = 26; - break; - case "Nokia N8xx": - // N8xx has half the memory of N900 and crashes with higher numbers - cacheSize = 10; - break; -#endif - default: - // Use a minimum number of tiles sice we don't know the device - cacheSize = 6; - } - } this._tileManager = new TileManager(this._appendTile, this._removeTile, this, cacheSize); this._visibleRectFactory = visibleRectFactory; diff --git a/mobile/chrome/content/browser.js b/mobile/chrome/content/browser.js index 5571e45ec114..d836abab2e86 100644 --- a/mobile/chrome/content/browser.js +++ b/mobile/chrome/content/browser.js @@ -345,6 +345,10 @@ var Browser = { startup: function() { var self = this; + let needOverride = Util.needHomepageOverride(); + if (needOverride == "new profile") + this.initNewProfile(); + let container = document.getElementById("tile-container"); let bv = this._browserView = new BrowserView(container, Browser.getVisibleRect); @@ -499,7 +503,7 @@ var Browser = { // Command line arguments/initial homepage let whereURI = "about:blank"; - switch (Util.needHomepageOverride()) { + switch (needOverride) { case "new profile": whereURI = "about:firstrun"; break; @@ -630,6 +634,44 @@ var Browser = { } }, + initNewProfile: function initNewProfile() { + let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2); + let device = sysInfo.get("device"); + +#ifdef MOZ_PLATFORM_HILDON + // The flash plugin on the n8xx doesn't support the image expose fast + // drawing we are doing. Disable all plugins by default. Users can override + // in prefs + if (device == "Nokia N8xx") { + gPrefService.setBoolPref("plugins.enabled", false); + this.setPluginState(true); + } +#endif + // set up the cache size + let cacheSize = -1; + try { + cacheSize = gPrefService.getIntPref("tile.cache.size"); + } catch(e) {} + + if (cacheSize == -1) { + switch (device) { +#ifdef MOZ_PLATFORM_HILDON + case "Nokia N900": + cacheSize = 26; + break; + case "Nokia N8xx": + // N8xx has half the memory of N900 and crashes with higher numbers + cacheSize = 10; + break; +#endif + default: + // Use a minimum number of tiles sice we don't know the device + cacheSize = 6; + } + gPrefService.setIntPref("tile.cache.size", cacheSize); + } + }, + get browsers() { return this._tabs.map(function(tab) { return tab.browser; }); },