mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Bug 1204983 - Deprecate NewTabURL and forward calls to AboutNewTabService (r=florian,olivier)
--HG-- rename : browser/components/newtab/tests/xpcshell/test_NewTabURL.js => browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js
This commit is contained in:
parent
63983a5737
commit
eee83aa5d8
@ -1653,7 +1653,7 @@
|
||||
// and the URL is "about:newtab". We do not support preloading for
|
||||
// custom newtab URLs.
|
||||
return Services.prefs.getBoolPref("browser.newtab.preload") &&
|
||||
!NewTabURL.overridden;
|
||||
!aboutNewTabService.overridden;
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
@ -6,6 +6,9 @@
|
||||
function test() {
|
||||
// initialization
|
||||
waitForExplicitFinish();
|
||||
let aboutNewTabService = Components.classes["@mozilla.org/browser/aboutnewtab-service;1"]
|
||||
.getService(Components.interfaces.nsIAboutNewTabService);
|
||||
|
||||
let windowsToClose = [];
|
||||
let newTab;
|
||||
let newTabURL;
|
||||
@ -18,7 +21,7 @@ function test() {
|
||||
newTabURL = "about:privatebrowsing";
|
||||
} else {
|
||||
mode = "normal";
|
||||
newTabURL = NewTabURL.get();
|
||||
newTabURL = aboutNewTabService.newTabURL;
|
||||
}
|
||||
|
||||
is(aWindow.gBrowser.currentURI.spec, newTabURL,
|
||||
|
@ -5,6 +5,8 @@
|
||||
function test() {
|
||||
//initialization
|
||||
waitForExplicitFinish();
|
||||
let aboutNewTabService = Components.classes["@mozilla.org/browser/aboutnewtab-service;1"]
|
||||
.getService(Components.interfaces.nsIAboutNewTabService);
|
||||
let newTabURL;
|
||||
let testURL = "http://example.com/";
|
||||
let mode;
|
||||
@ -16,15 +18,15 @@ function test() {
|
||||
newTabURL = "about:privatebrowsing";
|
||||
} else {
|
||||
mode = "normal";
|
||||
newTabURL = NewTabURL.get();
|
||||
newTabURL = aboutNewTabService.newTabURL;
|
||||
}
|
||||
|
||||
// Check the new tab opened while in normal/private mode
|
||||
is(aWindow.gBrowser.selectedBrowser.currentURI.spec, newTabURL,
|
||||
"URL of NewTab should be " + newTabURL + " in " + mode + " mode");
|
||||
// Set the custom newtab url
|
||||
NewTabURL.override(testURL);
|
||||
is(NewTabURL.get(), testURL, "Custom newtab url is set");
|
||||
aboutNewTabService.newTabURL = testURL;
|
||||
is(aboutNewTabService.newTabURL, testURL, "Custom newtab url is set");
|
||||
|
||||
// Open a newtab after setting the custom newtab url
|
||||
openNewTab(aWindow, function () {
|
||||
@ -32,8 +34,8 @@ function test() {
|
||||
"URL of NewTab should be the custom url");
|
||||
|
||||
// Clear the custom url.
|
||||
NewTabURL.reset();
|
||||
is(NewTabURL.get(), "about:newtab", "No custom newtab url is set");
|
||||
aboutNewTabService.resetNewTabURL();
|
||||
is(aboutNewTabService.newTabURL, "about:newtab", "No custom newtab url is set");
|
||||
|
||||
aWindow.gBrowser.removeTab(aWindow.gBrowser.selectedTab);
|
||||
aWindow.gBrowser.removeTab(aWindow.gBrowser.selectedTab);
|
||||
@ -50,7 +52,7 @@ function test() {
|
||||
}
|
||||
|
||||
// check whether any custom new tab url has been configured
|
||||
ok(!NewTabURL.overridden, "No custom newtab url is set");
|
||||
ok(!aboutNewTabService.overridden, "No custom newtab url is set");
|
||||
|
||||
// test normal mode
|
||||
testOnWindow(false, function(aWindow) {
|
||||
|
@ -9,16 +9,17 @@ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
|
||||
Components.utils.import("resource:///modules/RecentWindow.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "NewTabURL",
|
||||
"resource:///modules/NewTabURL.jsm");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
|
||||
"@mozilla.org/browser/aboutnewtab-service;1",
|
||||
"nsIAboutNewTabService");
|
||||
|
||||
this.__defineGetter__("BROWSER_NEW_TAB_URL", () => {
|
||||
if (PrivateBrowsingUtils.isWindowPrivate(window) &&
|
||||
!PrivateBrowsingUtils.permanentPrivateBrowsing &&
|
||||
!NewTabURL.overridden) {
|
||||
!aboutNewTabService.overridden) {
|
||||
return "about:privatebrowsing";
|
||||
}
|
||||
return NewTabURL.get();
|
||||
return aboutNewTabService.newTabURL;
|
||||
});
|
||||
|
||||
var TAB_DROP_TYPE = "application/x-moz-tabbrowser-tab";
|
||||
|
@ -1,5 +1,6 @@
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "NewTabURL",
|
||||
"resource:///modules/NewTabURL.jsm");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
|
||||
"@mozilla.org/browser/aboutnewtab-service;1",
|
||||
"nsIAboutNewTabService");
|
||||
|
||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||
var {
|
||||
@ -246,7 +247,7 @@ extensions.registerAPI((extension, context) => {
|
||||
createProperties = {};
|
||||
}
|
||||
|
||||
let url = createProperties.url || NewTabURL.get();
|
||||
let url = createProperties.url || aboutNewTabService.newTabURL;
|
||||
url = extension.baseURI.resolve(url);
|
||||
|
||||
function createInWindow(window) {
|
||||
|
@ -1,5 +1,6 @@
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "NewTabURL",
|
||||
"resource:///modules/NewTabURL.jsm");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
|
||||
"@mozilla.org/browser/aboutnewtab-service;1",
|
||||
"nsIAboutNewTabService");
|
||||
|
||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||
var {
|
||||
@ -95,7 +96,7 @@ extensions.registerAPI((extension, context) => {
|
||||
args.AppendElement(mkstr(createData.url));
|
||||
}
|
||||
} else {
|
||||
args.AppendElement(mkstr(NewTabURL.get()));
|
||||
args.AppendElement(mkstr(aboutNewTabService.newTabURL));
|
||||
}
|
||||
|
||||
let extraFeatures = "";
|
||||
|
@ -10,34 +10,34 @@ var Cu = Components.utils;
|
||||
|
||||
this.EXPORTED_SYMBOLS = [ "NewTabURL" ];
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
|
||||
"@mozilla.org/browser/aboutnewtab-service;1",
|
||||
"nsIAboutNewTabService");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Deprecated",
|
||||
"resource://gre/modules/Deprecated.jsm");
|
||||
|
||||
const DepecationURL = "https://bugzilla.mozilla.org/show_bug.cgi?id=1204983#c89";
|
||||
|
||||
this.NewTabURL = {
|
||||
_url: "about:newtab",
|
||||
_remoteUrl: "about:remote-newtab",
|
||||
_overridden: false,
|
||||
|
||||
get: function() {
|
||||
let output = this._url;
|
||||
if (Services.prefs.getBoolPref("browser.newtabpage.remote")) {
|
||||
output = this._remoteUrl;
|
||||
}
|
||||
return output;
|
||||
Deprecated.warning("NewTabURL.get is deprecated, please query aboutNewTabService.newTabURL", DepecationURL);
|
||||
return aboutNewTabService.newTabURL;
|
||||
},
|
||||
|
||||
get overridden() {
|
||||
return this._overridden;
|
||||
Deprecated.warning("NewTabURL.overridden is deprecated, please query aboutNewTabService.overridden", DepecationURL);
|
||||
return aboutNewTabService.overridden;
|
||||
},
|
||||
|
||||
override: function(newURL) {
|
||||
this._url = newURL;
|
||||
this._overridden = true;
|
||||
Services.obs.notifyObservers(null, "newtab-url-changed", this._url);
|
||||
Deprecated.warning("NewTabURL.override is deprecated, please set aboutNewTabService.newTabURL", DepecationURL);
|
||||
aboutNewTabService.newTabURL = newURL;
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this._url = "about:newtab";
|
||||
this._overridden = false;
|
||||
Services.obs.notifyObservers(null, "newtab-url-changed", this._url);
|
||||
Deprecated.warning("NewTabURL.reset is deprecated, please use aboutNewTabService.resetNewTabURL()", DepecationURL);
|
||||
aboutNewTabService.resetNewTabURL();
|
||||
}
|
||||
};
|
||||
|
@ -0,0 +1,39 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
let aboutNewTabService = Components.classes["@mozilla.org/browser/aboutnewtab-service;1"]
|
||||
.getService(Components.interfaces.nsIAboutNewTabService);
|
||||
|
||||
add_task(function* () {
|
||||
Assert.equal(aboutNewTabService.newTabURL, "about:newtab", "Default newtab URL should be about:newtab");
|
||||
let url = "http://example.com/";
|
||||
let notificationPromise = promiseNewtabURLNotification(url);
|
||||
aboutNewTabService.newTabURL = url;
|
||||
yield notificationPromise;
|
||||
Assert.ok(aboutNewTabService.overridden, "Newtab URL should be overridden");
|
||||
Assert.equal(aboutNewTabService.newTabURL, url, "Newtab URL should be the custom URL");
|
||||
|
||||
notificationPromise = promiseNewtabURLNotification("about:newtab");
|
||||
aboutNewTabService.resetNewTabURL();
|
||||
yield notificationPromise;
|
||||
Assert.ok(!aboutNewTabService.overridden, "Newtab URL should not be overridden");
|
||||
Assert.equal(aboutNewTabService.newTabURL, "about:newtab", "Newtab URL should be the about:newtab");
|
||||
|
||||
// change newtab page to remote
|
||||
Services.prefs.setBoolPref("browser.newtabpage.remote", true);
|
||||
Assert.equal(aboutNewTabService.newTabURL, "about:remote-newtab", "Newtab URL should be the about:remote-newtab");
|
||||
Assert.ok(!aboutNewTabService.overridden, "Newtab URL should not be overridden");
|
||||
});
|
||||
|
||||
function promiseNewtabURLNotification(aNewURL) {
|
||||
return new Promise(resolve => {
|
||||
Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
|
||||
Services.obs.removeObserver(observer, aTopic);
|
||||
Assert.equal(aData, aNewURL, "Data for newtab-url-changed notification should be new URL.");
|
||||
resolve();
|
||||
}, "newtab-url-changed", false);
|
||||
});
|
||||
}
|
@ -4,6 +4,7 @@ tail =
|
||||
firefox-appdir = browser
|
||||
skip-if = toolkit == 'android' || toolkit == 'gonk'
|
||||
|
||||
[test_AboutNewTabService.js]
|
||||
[test_NewTabURL.js]
|
||||
[test_PlacesProvider.js]
|
||||
[test_RemoteDirectoryLinksProvider.js]
|
||||
|
@ -2492,6 +2492,9 @@ AboutNewTabService.prototype = {
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutNewTabService]),
|
||||
|
||||
get newTabURL() {
|
||||
if (Services.prefs.getBoolPref("browser.newtabpage.remote")) {
|
||||
return "about:remote-newtab";
|
||||
}
|
||||
return this._newTabURL;
|
||||
},
|
||||
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
"use strict";
|
||||
Components.utils.import("resource://gre/modules/Promise.jsm", this);
|
||||
let aboutNewTabService = Components.classes["@mozilla.org/browser/aboutnewtab-service;1"]
|
||||
.getService(Components.interfaces.nsIAboutNewTabService);
|
||||
|
||||
function checkUrlbarFocus(win) {
|
||||
let urlbar = win.gURLBar;
|
||||
@ -28,14 +30,14 @@ add_task(function* () {
|
||||
});
|
||||
|
||||
add_task(function* () {
|
||||
NewTabURL.override("about:blank");
|
||||
aboutNewTabService.newTabURL = "about:blank";
|
||||
registerCleanupFunction(() => {
|
||||
NewTabURL.reset();
|
||||
aboutNewTabService.resetNewTabURL();
|
||||
});
|
||||
|
||||
let win = yield openNewPrivateWindow();
|
||||
checkUrlbarFocus(win);
|
||||
win.close();
|
||||
|
||||
NewTabURL.reset();
|
||||
aboutNewTabService.resetNewTabURL();
|
||||
});
|
||||
|
@ -2,18 +2,20 @@
|
||||
// -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*-
|
||||
|
||||
var { classes: Cc, interfaces: Ci, utils: Cu } = Components;
|
||||
Cu.import("resource:///modules/NewTabURL.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/Promise.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
let aboutNewTabService = Cc["@mozilla.org/browser/aboutnewtab-service;1"]
|
||||
.getService(Ci.nsIAboutNewTabService);
|
||||
|
||||
var aboutBlankTab = null;
|
||||
var Profiler = null;
|
||||
|
||||
var windowListener = {
|
||||
onOpenWindow: function(aWindow) {
|
||||
// Ensure we don't get tiles which contact the network
|
||||
NewTabURL.override("about:blank")
|
||||
aboutNewTabService.newTabURL = "about:blank";
|
||||
|
||||
// Wait for the window to finish loading
|
||||
let window = aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowInternal || Ci.nsIDOMWindow);
|
||||
@ -25,7 +27,7 @@ var windowListener = {
|
||||
},
|
||||
|
||||
onCloseWindow: function(aWindow) {
|
||||
NewTabURL.reset()
|
||||
aboutNewTabService.resetNewTabURL();
|
||||
},
|
||||
|
||||
onWindowTitleChange: function(aWindow, aTitle) {
|
||||
|
@ -3,7 +3,6 @@
|
||||
<script>
|
||||
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource:///modules/NewTabURL.jsm");
|
||||
function do_test(override) {
|
||||
if (override || document.location.hash.indexOf("#auto") == 0) {
|
||||
var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
|
@ -27,6 +27,9 @@
|
||||
// X - tab drag
|
||||
// X - tab remove from the middle
|
||||
// X - Without add-tab button -> can be hidden while testing manually. in talos always with the button
|
||||
let aboutNewTabService = Components.classes["@mozilla.org/browser/aboutnewtab-service;1"]
|
||||
.getService(Components.interfaces.nsIAboutNewTabService);
|
||||
|
||||
function Tart() {
|
||||
}
|
||||
|
||||
@ -471,7 +474,7 @@ Tart.prototype = {
|
||||
|
||||
var subtests = {
|
||||
init: [ // This is called before each subtest, so it's safe to assume the following prefs:
|
||||
function(){NewTabURL.override("about:blank");
|
||||
function(){aboutNewTabService.newTabURL = "about:blank";
|
||||
Services.prefs.setBoolPref("browser.newtabpage.enabled", true); // preview images if using about:newtab
|
||||
Services.prefs.setBoolPref("browser.newtab.preload", false);
|
||||
//Services.prefs.setCharPref("layout.css.devPixelsPerPx", "-1");
|
||||
@ -483,7 +486,7 @@ Tart.prototype = {
|
||||
|
||||
restore: [
|
||||
// Restore prefs which were modified during the test
|
||||
function(){NewTabURL.reset();
|
||||
function(){aboutNewTabService.resetNewTabURL();
|
||||
Services.prefs.setBoolPref("browser.newtabpage.enabled", origNewtabEnabled);
|
||||
Services.prefs.setBoolPref("browser.newtab.preload", origPreload);
|
||||
Services.prefs.setCharPref("layout.css.devPixelsPerPx", origDpi);
|
||||
@ -504,7 +507,7 @@ Tart.prototype = {
|
||||
|
||||
iconDpi1: [
|
||||
function(){Services.prefs.setCharPref("layout.css.devPixelsPerPx", "1"); next();},
|
||||
function(){NewTabURL.override("chrome://tart/content/blank.icon.html"); next();},
|
||||
function(){aboutNewTabService.newTabURL = "chrome://tart/content/blank.icon.html"; next();},
|
||||
|
||||
function(){animate(0, addTab, next);},
|
||||
function(){animate(0, closeCurrentTab, next);},
|
||||
@ -514,7 +517,7 @@ Tart.prototype = {
|
||||
|
||||
iconDpi2: [
|
||||
function(){Services.prefs.setCharPref("layout.css.devPixelsPerPx", "2"); next();},
|
||||
function(){NewTabURL.override("chrome://tart/content/blank.icon.html"); next();},
|
||||
function(){aboutNewTabService.newTabURL = "chrome://tart/content/blank.icon.html"; next();},
|
||||
|
||||
function(){animate(0, addTab, next);},
|
||||
function(){animate(0, closeCurrentTab, next);},
|
||||
@ -523,7 +526,7 @@ Tart.prototype = {
|
||||
],
|
||||
|
||||
newtabNoPreload: [
|
||||
function(){NewTabURL.override("about:newtab");
|
||||
function(){aboutNewTabService.newTabURL = "about:newtab";
|
||||
Services.prefs.setCharPref("layout.css.devPixelsPerPx", "-1");
|
||||
Services.prefs.setBoolPref("browser.newtab.preload", false);
|
||||
next();
|
||||
@ -535,7 +538,7 @@ Tart.prototype = {
|
||||
],
|
||||
|
||||
newtabYesPreload: [
|
||||
function(){NewTabURL.override("about:newtab");
|
||||
function(){aboutNewTabService.newTabURL = "about:newtab";
|
||||
Services.prefs.setCharPref("layout.css.devPixelsPerPx", "-1");
|
||||
Services.prefs.setBoolPref("browser.newtab.preload", true);
|
||||
next();
|
||||
@ -561,7 +564,7 @@ Tart.prototype = {
|
||||
|
||||
multi: [
|
||||
function(){Services.prefs.setCharPref("layout.css.devPixelsPerPx", "1.0"); next();},
|
||||
function(){NewTabURL.override("chrome://tart/content/blank.icon.html"); next();},
|
||||
function(){aboutNewTabService.newTabURL = "chrome://tart/content/blank.icon.html"; next();},
|
||||
|
||||
function(){animate(0, addTab, next);},
|
||||
function(){animate(0, addTab, next);},
|
||||
@ -590,7 +593,7 @@ Tart.prototype = {
|
||||
],
|
||||
|
||||
simpleFadeDpiCurrent: [
|
||||
function(){NewTabURL.override("about:blank"); next();},
|
||||
function(){aboutNewTabService.newTabURL = "about:blank"; next();},
|
||||
|
||||
function(){animate(0, addTab, next);},
|
||||
function(){animate(rest, fadeout, next, true, "simpleFade-close-DPIcurrent", tabRefDuration);},
|
||||
@ -599,7 +602,7 @@ Tart.prototype = {
|
||||
],
|
||||
|
||||
iconFadeDpiCurrent: [
|
||||
function(){NewTabURL.override("chrome://tart/content/blank.icon.html"); next();},
|
||||
function(){aboutNewTabService.newTabURL = "chrome://tart/content/blank.icon.html"; next();},
|
||||
|
||||
function(){animate(0, addTab, next);},
|
||||
function(){animate(rest, fadeout, next, true, "iconFade-close-DPIcurrent", tabRefDuration);},
|
||||
@ -609,7 +612,7 @@ Tart.prototype = {
|
||||
|
||||
iconFadeDpi2: [
|
||||
function(){Services.prefs.setCharPref("layout.css.devPixelsPerPx", "2"); next();},
|
||||
function(){NewTabURL.override("chrome://tart/content/blank.icon.html"); next();},
|
||||
function(){aboutNewTabService.newTabURL = "chrome://tart/content/blank.icon.html"; next();},
|
||||
|
||||
function(){animate(0, addTab, next);},
|
||||
function(){animate(rest, fadeout, next, true, "iconFade-close-DPI2", tabRefDuration);},
|
||||
|
Loading…
Reference in New Issue
Block a user