mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1202372 - remove the UITour dead code related to the old searchbar UI, r=MattN.
This commit is contained in:
parent
e6743e5288
commit
696f2789fb
@ -220,12 +220,6 @@ this.UITour = {
|
||||
query: "#searchbar",
|
||||
widgetName: "search-container",
|
||||
}],
|
||||
["searchProvider", {
|
||||
query: (aDocument) => {
|
||||
return null;
|
||||
},
|
||||
widgetName: "search-container",
|
||||
}],
|
||||
["searchIcon", {
|
||||
query: (aDocument) => {
|
||||
let searchbar = aDocument.getElementById("searchbar");
|
||||
@ -987,11 +981,6 @@ this.UITour = {
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
if (aTargetName.startsWith(TARGET_SEARCHENGINE_PREFIX)) {
|
||||
let engineID = aTargetName.slice(TARGET_SEARCHENGINE_PREFIX.length);
|
||||
return this.getSearchEngineTarget(aWindow, engineID);
|
||||
}
|
||||
|
||||
let targetObject = this.targets.get(aTargetName);
|
||||
if (!targetObject) {
|
||||
log.warn("getTarget: The specified target name is not in the allowed set");
|
||||
@ -1331,18 +1320,6 @@ this.UITour = {
|
||||
*/
|
||||
showHighlight: function(aChromeWindow, aTarget, aEffect = "none") {
|
||||
function showHighlightPanel() {
|
||||
if (aTarget.targetName.startsWith(TARGET_SEARCHENGINE_PREFIX)) {
|
||||
// This won't affect normal higlights done via the panel, so we need to
|
||||
// manually hide those.
|
||||
this.hideHighlight(aChromeWindow);
|
||||
aTarget.node.setAttribute("_moz-menuactive", true);
|
||||
return;
|
||||
}
|
||||
|
||||
// Conversely, highlights for search engines are highlighted via CSS
|
||||
// rather than a panel, so need to be manually removed.
|
||||
this._hideSearchEngineHighlight(aChromeWindow);
|
||||
|
||||
let highlighter = aChromeWindow.document.getElementById("UITourHighlight");
|
||||
|
||||
let effect = aEffect;
|
||||
@ -1419,24 +1396,6 @@ this.UITour = {
|
||||
highlighter.removeAttribute("active");
|
||||
|
||||
this._setAppMenuStateForAnnotation(aWindow, "highlight", false);
|
||||
this._hideSearchEngineHighlight(aWindow);
|
||||
},
|
||||
|
||||
_hideSearchEngineHighlight: function(aWindow) {
|
||||
// We special case highlighting items in the search engines dropdown,
|
||||
// so just blindly remove any highlight there.
|
||||
let searchMenuBtn = null;
|
||||
try {
|
||||
searchMenuBtn = this.targets.get("searchProvider").query(aWindow.document);
|
||||
} catch (e) { /* This is ok to fail. */ }
|
||||
if (searchMenuBtn) {
|
||||
let searchPopup = aWindow.document
|
||||
.getAnonymousElementByAttribute(searchMenuBtn,
|
||||
"anonid",
|
||||
"searchbar-popup");
|
||||
for (let menuItem of searchPopup.children)
|
||||
menuItem.removeAttribute("_moz-menuactive");
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@ -1558,11 +1517,6 @@ this.UITour = {
|
||||
return;
|
||||
}
|
||||
|
||||
// Due to a platform limitation, we can't anchor a panel to an element in a
|
||||
// <menupopup>. So we can't support showing info panels for search engines.
|
||||
if (aAnchor.targetName.startsWith(TARGET_SEARCHENGINE_PREFIX))
|
||||
return;
|
||||
|
||||
this._setAppMenuStateForAnnotation(aChromeWindow, "info",
|
||||
this.targetIsInAppMenu(aAnchor),
|
||||
showInfoPanel.bind(this, this._correctAnchor(aAnchor.node)));
|
||||
@ -1670,10 +1624,6 @@ this.UITour = {
|
||||
});
|
||||
panel.addEventListener("popuphidden", this.onPanelHidden);
|
||||
panel.addEventListener("popuphiding", this.hideLoopPanelAnnotations);
|
||||
} else if (aMenuName == "searchEngines") {
|
||||
this.getTarget(aWindow, "searchProvider").then(target => {
|
||||
openMenuButton(target.node);
|
||||
}).catch(log.error);
|
||||
} else if (aMenuName == "pocket") {
|
||||
this.getTarget(aWindow, "pocket").then(Task.async(function* onPocketTarget(target) {
|
||||
let widgetGroupWrapper = CustomizableUI.getWidget(target.widgetName);
|
||||
@ -1735,9 +1685,6 @@ this.UITour = {
|
||||
} else if (aMenuName == "loop") {
|
||||
let panel = aWindow.document.getElementById("loop-notification-panel");
|
||||
panel.hidePopup();
|
||||
} else if (aMenuName == "searchEngines") {
|
||||
let menuBtn = this.targets.get("searchProvider").query(aWindow.document);
|
||||
closeMenuButton(menuBtn);
|
||||
}
|
||||
},
|
||||
|
||||
@ -1882,17 +1829,22 @@ this.UITour = {
|
||||
gettingStartedSeen: Services.prefs.getBoolPref("loop.gettingStarted.seen"),
|
||||
});
|
||||
break;
|
||||
case "search":
|
||||
case "selectedSearchEngine":
|
||||
Services.search.init(rv => {
|
||||
let engine;
|
||||
let data;
|
||||
if (Components.isSuccessCode(rv)) {
|
||||
engine = Services.search.defaultEngine;
|
||||
let engines = Services.search.getVisibleEngines();
|
||||
data = {
|
||||
searchEngineIdentifier: Services.search.defaultEngine.identifier,
|
||||
engines: [TARGET_SEARCHENGINE_PREFIX + engine.identifier
|
||||
for (engine of engines)
|
||||
if (engine.identifier)]
|
||||
};
|
||||
} else {
|
||||
engine = { identifier: "" };
|
||||
data = {engines: [], searchEngineIdentifier: ""};
|
||||
}
|
||||
this.sendPageCallback(aMessageManager, aCallbackID, {
|
||||
searchEngineIdentifier: engine.identifier
|
||||
});
|
||||
this.sendPageCallback(aMessageManager, aCallbackID, data);
|
||||
});
|
||||
break;
|
||||
case "sync":
|
||||
@ -1950,10 +1902,6 @@ this.UITour = {
|
||||
targetNames.push(targetObject.targetName);
|
||||
}
|
||||
|
||||
targetNames = targetNames.concat(
|
||||
yield this.getAvailableSearchEngineTargets(window)
|
||||
);
|
||||
|
||||
data = {
|
||||
targets: targetNames,
|
||||
};
|
||||
@ -2060,55 +2008,6 @@ this.UITour = {
|
||||
});
|
||||
},
|
||||
|
||||
getAvailableSearchEngineTargets(aWindow) {
|
||||
return new Promise(resolve => {
|
||||
this.getTarget(aWindow, "search").then(searchTarget => {
|
||||
if (!searchTarget.node || this.targetIsInAppMenu(searchTarget))
|
||||
return resolve([]);
|
||||
|
||||
Services.search.init(() => {
|
||||
let engines = Services.search.getVisibleEngines();
|
||||
resolve([TARGET_SEARCHENGINE_PREFIX + engine.identifier
|
||||
for (engine of engines)
|
||||
if (engine.identifier)]);
|
||||
});
|
||||
}).catch(() => resolve([]));
|
||||
});
|
||||
},
|
||||
|
||||
// We only allow matching based on a search engine's identifier - this gives
|
||||
// us a non-changing ID and guarentees we only match against app-provided
|
||||
// engines.
|
||||
getSearchEngineTarget(aWindow, aIdentifier) {
|
||||
return new Promise((resolve, reject) => {
|
||||
Task.spawn(function*() {
|
||||
let searchTarget = yield this.getTarget(aWindow, "search");
|
||||
// We're not supporting having the searchbar in the app-menu, because
|
||||
// popups within popups gets crazy. This restriction should be lifted
|
||||
// once bug 988151 is implemented, as the page can then be responsible
|
||||
// for opening each menu when appropriate.
|
||||
if (!searchTarget.node || this.targetIsInAppMenu(searchTarget))
|
||||
return reject("Search engine not available");
|
||||
|
||||
yield Services.search.init();
|
||||
|
||||
let searchPopup = searchTarget.node._popup;
|
||||
for (let engineNode of searchPopup.children) {
|
||||
let engine = engineNode.engine;
|
||||
if (engine && engine.identifier == aIdentifier) {
|
||||
return resolve({
|
||||
targetName: TARGET_SEARCHENGINE_PREFIX + engine.identifier,
|
||||
node: engineNode,
|
||||
});
|
||||
}
|
||||
}
|
||||
reject("Search engine not available");
|
||||
}.bind(this)).catch(() => {
|
||||
reject("Search engine not available");
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
notify(eventName, params) {
|
||||
let winEnum = Services.wm.getEnumerator("navigator:browser");
|
||||
while (winEnum.hasMoreElements()) {
|
||||
|
@ -216,56 +216,6 @@ var tests = [
|
||||
gContentAPI.showHighlight("urlbar");
|
||||
waitForElementToBeVisible(highlight, checkDefaultEffect, "Highlight should be shown after showHighlight()");
|
||||
},
|
||||
function test_highlight_search_engine(done) {
|
||||
let highlight = document.getElementById("UITourHighlight");
|
||||
gContentAPI.showHighlight("urlbar");
|
||||
waitForElementToBeVisible(highlight, () => {
|
||||
|
||||
let searchbar = document.getElementById("searchbar");
|
||||
done();
|
||||
return; // The oneoffui removes the menu that's being tested here.
|
||||
|
||||
gContentAPI.showMenu("searchEngines", function() {
|
||||
isnot(searchbar, null, "Should have found searchbar");
|
||||
let searchPopup = document.getAnonymousElementByAttribute(searchbar,
|
||||
"anonid",
|
||||
"searchbar-popup");
|
||||
isnot(searchPopup, null, "Should have found search popup");
|
||||
|
||||
function getEngineNode(identifier) {
|
||||
let engineNode = null;
|
||||
for (let node of searchPopup.children) {
|
||||
if (node.engine.identifier == identifier) {
|
||||
engineNode = node;
|
||||
break;
|
||||
}
|
||||
}
|
||||
isnot(engineNode, null, "Should have found search engine node in popup");
|
||||
return engineNode;
|
||||
}
|
||||
let googleEngineNode = getEngineNode("google");
|
||||
let bingEngineNode = getEngineNode("bing");
|
||||
|
||||
gContentAPI.showHighlight("searchEngine-google");
|
||||
waitForCondition(() => googleEngineNode.getAttribute("_moz-menuactive") == "true", function() {
|
||||
is_element_hidden(highlight, "Highlight panel should be hidden by highlighting search engine");
|
||||
|
||||
gContentAPI.showHighlight("searchEngine-bing");
|
||||
waitForCondition(() => bingEngineNode.getAttribute("_moz-menuactive") == "true", function() {
|
||||
isnot(googleEngineNode.getAttribute("_moz-menuactive"), "true", "Previous engine should no longer be highlighted");
|
||||
|
||||
gContentAPI.hideHighlight();
|
||||
waitForCondition(() => bingEngineNode.getAttribute("_moz-menuactive") != "true", function() {
|
||||
gContentAPI.hideMenu("searchEngines");
|
||||
waitForCondition(() => searchPopup.state == "closed", function() {
|
||||
done();
|
||||
}, "Search dropdown should close");
|
||||
}, "Menu item should get attribute removed");
|
||||
}, "Menu item should get attribute to make it look active");
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
function test_highlight_effect_unsupported(done) {
|
||||
function checkUnsupportedEffect() {
|
||||
is(highlight.getAttribute("active"), "none", "No effect should be used when an unsupported effect is requested");
|
||||
@ -367,7 +317,7 @@ var tests = [
|
||||
});
|
||||
});
|
||||
},
|
||||
function test_select_search_engine(done) {
|
||||
function test_search(done) {
|
||||
Services.search.init(rv => {
|
||||
if (!Components.isSuccessCode(rv)) {
|
||||
ok(false, "search service init failed: " + rv);
|
||||
@ -375,9 +325,21 @@ var tests = [
|
||||
return;
|
||||
}
|
||||
let defaultEngine = Services.search.defaultEngine;
|
||||
gContentAPI.getConfiguration("availableTargets", data => {
|
||||
let searchEngines = data.targets.filter(t => t.startsWith("searchEngine-"));
|
||||
let someOtherEngineID = searchEngines.filter(t => t != "searchEngine-" + defaultEngine.identifier)[0];
|
||||
gContentAPI.getConfiguration("search", data => {
|
||||
let visibleEngines = Services.search.getVisibleEngines();
|
||||
let expectedEngines = ["searchEngine-" + engine.identifier
|
||||
for (engine of visibleEngines)
|
||||
if (engine.identifier)];
|
||||
|
||||
let engines = data.engines;
|
||||
ok(Array.isArray(engines), "data.engines should be an array");
|
||||
is(engines.sort().toString(), expectedEngines.sort().toString(),
|
||||
"Engines should be as expected");
|
||||
|
||||
is(data.searchEngineIdentifier, defaultEngine.identifier,
|
||||
"the searchEngineIdentifier property should contain the defaultEngine's identifier");
|
||||
|
||||
let someOtherEngineID = data.engines.filter(t => t != "searchEngine-" + defaultEngine.identifier)[0];
|
||||
someOtherEngineID = someOtherEngineID.replace(/^searchEngine-/, "");
|
||||
|
||||
let observe = function (subject, topic, verb) {
|
||||
|
@ -34,13 +34,6 @@ function test() {
|
||||
UITourTest();
|
||||
}
|
||||
|
||||
function searchEngineTargets() {
|
||||
let engines = Services.search.getVisibleEngines();
|
||||
return ["searchEngine-" + engine.identifier
|
||||
for (engine of engines)
|
||||
if (engine.identifier)];
|
||||
}
|
||||
|
||||
var tests = [
|
||||
function test_availableTargets(done) {
|
||||
gContentAPI.getConfiguration("availableTargets", (data) => {
|
||||
@ -63,7 +56,6 @@ var tests = [
|
||||
"searchIcon",
|
||||
"trackingProtection",
|
||||
"urlbar",
|
||||
...searchEngineTargets(),
|
||||
...(hasWebIDE ? ["webide"] : [])
|
||||
]);
|
||||
|
||||
@ -96,7 +88,6 @@ var tests = [
|
||||
"searchIcon",
|
||||
"trackingProtection",
|
||||
"urlbar",
|
||||
...searchEngineTargets(),
|
||||
...(hasWebIDE ? ["webide"] : [])
|
||||
]);
|
||||
|
||||
@ -114,7 +105,7 @@ var tests = [
|
||||
// Make sure the callback still fires with the other available targets.
|
||||
CustomizableUI.removeWidgetFromArea("search-container");
|
||||
gContentAPI.getConfiguration("availableTargets", (data) => {
|
||||
// Default minus "search" and "searchProvider" and "searchIcon"
|
||||
// Default minus "search" and "searchIcon"
|
||||
ok_targets(data, [
|
||||
"accountStatus",
|
||||
"addons",
|
||||
|
Loading…
Reference in New Issue
Block a user