mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
156803bb8c
--HG-- extra : rebase_source : 80f5830b5d6efcc2e6ec21495709f847d53aac7b
112 lines
3.0 KiB
JavaScript
112 lines
3.0 KiB
JavaScript
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et: */
|
|
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
Components.utils.import("resource://gre/modules/NetUtil.jsm");
|
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
|
|
const XULAPPINFO_CONTRACTID = "@mozilla.org/xre/app-info;1";
|
|
const XULAPPINFO_CID = Components.ID("{c763b610-9d49-455a-bbd2-ede71682a1ac}");
|
|
|
|
var gXULAppInfo = null;
|
|
|
|
/**
|
|
* Creates an nsIXULAppInfo
|
|
* @param id
|
|
* The ID of the test application
|
|
* @param name
|
|
* A name for the test application
|
|
* @param version
|
|
* The version of the application
|
|
* @param platformVersion
|
|
* The gecko version of the application
|
|
*/
|
|
function createAppInfo(id, name, version, platformVersion)
|
|
{
|
|
gXULAppInfo = {
|
|
vendor: "Mozilla",
|
|
name: name,
|
|
ID: id,
|
|
version: version,
|
|
appBuildID: "2007010101",
|
|
platformVersion: platformVersion,
|
|
platformBuildID: "2007010101",
|
|
inSafeMode: false,
|
|
logConsoleErrors: true,
|
|
OS: "XPCShell",
|
|
XPCOMABI: "noarch-spidermonkey",
|
|
invalidateCachesOnRestart: function invalidateCachesOnRestart() {},
|
|
|
|
QueryInterface: function QueryInterface(iid) {
|
|
if (iid.equals(Components.interfaces.nsIXULAppInfo)
|
|
|| iid.equals(Components.interfaces.nsIXULRuntime)
|
|
|| iid.equals(Components.interfaces.nsISupports))
|
|
return this;
|
|
|
|
throw Components.results.NS_ERROR_NO_INTERFACE;
|
|
}
|
|
};
|
|
|
|
var XULAppInfoFactory = {
|
|
createInstance: function (outer, iid) {
|
|
if (outer != null)
|
|
throw Components.results.NS_ERROR_NO_AGGREGATION;
|
|
return gXULAppInfo.QueryInterface(iid);
|
|
}
|
|
};
|
|
var registrar = Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar);
|
|
registrar.registerFactory(XULAPPINFO_CID, "XULAppInfo",
|
|
XULAPPINFO_CONTRACTID, XULAppInfoFactory);
|
|
}
|
|
|
|
// Need to create and register a profile folder.
|
|
var gProfD = do_get_profile();
|
|
|
|
function dumpn(text)
|
|
{
|
|
dump(text+"\n");
|
|
}
|
|
|
|
/**
|
|
* Clean the profile of any metadata files left from a previous run.
|
|
*/
|
|
function removeMetadata()
|
|
{
|
|
let file = gProfD.clone();
|
|
file.append("search-metadata.json");
|
|
if (file.exists()) {
|
|
file.remove(false);
|
|
}
|
|
|
|
file = gProfD.clone();
|
|
file.append("search.sqlite");
|
|
if (file.exists()) {
|
|
file.remove(false);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Run some callback once metadata has been committed to disk.
|
|
*/
|
|
function afterCommit(callback)
|
|
{
|
|
let obs = function(result, topic, verb) {
|
|
if (verb == "write-metadata-to-disk-complete") {
|
|
callback(result);
|
|
} else {
|
|
dump("TOPIC: " + topic+ "\n");
|
|
}
|
|
}
|
|
Services.obs.addObserver(obs, "browser-search-service", false);
|
|
}
|
|
|
|
function parseJsonFromStream(aInputStream) {
|
|
const json = Cc["@mozilla.org/dom/json;1"].createInstance(Components.interfaces.nsIJSON);
|
|
const data = json.decodeFromStream(aInputStream, aInputStream.available());
|
|
return data;
|
|
}
|
|
|
|
Services.prefs.setBoolPref("browser.search.log", true);
|
|
//Otherwise, error logs contain no useful data
|