Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: chrome/content/common.js

Issue 29356056: Issue 4223 - Remove more tests migrated to adblockpluscore (Closed) Base URL: https://hg.adblockplus.org/adblockplustests
Patch Set: Created Oct. 6, 2016, 8:20 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/content/index.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/content/common.js
===================================================================
--- a/chrome/content/common.js
+++ b/chrome/content/common.js
@@ -1,20 +1,14 @@
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
const Cu = Components.utils;
-const MILLIS_IN_SECOND = 1000;
-const MILLIS_IN_MINUTE = 60 * MILLIS_IN_SECOND;
-const MILLIS_IN_HOUR = 60 * MILLIS_IN_MINUTE;
-const MILLIS_IN_DAY = 24 * MILLIS_IN_HOUR;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
+const {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
const SDK = Cu.import("resource://gre/modules/commonjs/toolkit/require.js", {});
SDK.require("sdk/tabs");
function require(module)
{
let result = {};
result.wrappedJSObject = result;
@@ -53,22 +47,16 @@ let {CSSRules} = require("cssRules");
let {IO} = require("io");
let {Notification} = require("notification");
let {Prefs} = require("prefs");
let {RequestNotifier} = require("requestNotifier");
let {Synchronizer} = require("synchronizer");
let {UI} = require("ui");
let {Utils} = require("utils");
-let geckoVersion = Services.appinfo.platformVersion;
-function compareGeckoVersion(version)
-{
- return Services.vc.compare(geckoVersion, version);
-}
-
function prepareFilterComponents(keepListeners)
{
let FilterNotifierGlobal = getModuleGlobal("filterNotifier");
this._backup = {
subscriptions: FilterStorage.subscriptions,
storageKnown: FilterStorage.knownSubscriptions,
subscriptionsKnown: Subscription.knownSubscriptions,
@@ -134,311 +122,16 @@ function preparePrefs()
}
function restorePrefs()
{
for (let pref in this._pbackup)
Prefs[pref] = this._pbackup[pref];
}
-function setupVirtualTime(processTimers)
-{
- let currentTime = 100000 * MILLIS_IN_HOUR;
- let startTime = currentTime;
- let scheduledTasks = [];
-
- let modules = Array.prototype.slice.call(arguments, 1);
- this._virtualTimeModules = modules;
-
- for (let module of this._virtualTimeModules)
- {
- let global = Cu.getGlobalForObject(getModuleGlobal(module));
-
- // Replace Date.now() function
- this["_origNow" + module] = global.Date.now;
- global.Date.now = function() currentTime;
- }
-
- // Wrap timers
- if (processTimers)
- {
- processTimers(function wrapTimer(timer)
- {
- let wrapper = Object.create(timer);
- let callback = timer.callback;
- wrapper.handler = function() callback.notify(wrapper);
- wrapper.nextExecution = currentTime + timer.delay;
- scheduledTasks.push(wrapper);
- timer.cancel();
- return wrapper;
- });
- }
-
- // Register observer to track outstanding requests
- this._outstandingRequests = 0;
- this.observe = function(subject, topic, data)
- {
- let orig = this._outstandingRequests;
- if (topic == "http-on-modify-request")
- this._outstandingRequests++;
- else if (topic == "http-on-examine-response")
- this._outstandingRequests--;
- };
- this.QueryInterface = XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]);
- Services.obs.addObserver(this, "http-on-modify-request", true);
- Services.obs.addObserver(this, "http-on-examine-response", true);
-
- this.runScheduledTasks = function(maxHours, initial, skip)
- {
- if (typeof maxHours != "number")
- throw new Error("Numerical parameter expected");
- if (typeof initial != "number")
- initial = 0;
- if (typeof skip != "number")
- skip = 0;
-
- startTime = currentTime;
- if (initial >= 0)
- {
- this._runScheduledTasks(initial);
- maxHours -= initial;
- }
- if (skip)
- {
- this._skipTasks(skip);
- maxHours -= skip;
- }
- this._runScheduledTasks(maxHours);
- }
-
- this._runScheduledTasks = function(maxHours)
- {
- let endTime = currentTime + maxHours * MILLIS_IN_HOUR;
- while (true)
- {
- let nextTask = null;
- for (let task of scheduledTasks)
- {
- if (!nextTask || nextTask.nextExecution > task.nextExecution)
- nextTask = task;
- }
- if (!nextTask || nextTask.nextExecution > endTime)
- break;
-
- currentTime = nextTask.nextExecution;
- nextTask.handler();
-
- // Let all asynchronous actions finish
- let thread = Services.tm.currentThread;
- let loopStartTime = Date.now();
-
- while (this._outstandingRequests > 0 || thread.hasPendingEvents())
- {
- thread.processNextEvent(true);
-
- if (Date.now() - loopStartTime > 5000)
- throw new Error("Test stuck in a download loop");
- }
-
- if (nextTask.type == Components.interfaces.nsITimer.TYPE_ONE_SHOT)
- scheduledTasks = scheduledTasks.filter(function(task) task != nextTask);
- else
- nextTask.nextExecution = currentTime + nextTask.delay;
- }
-
- currentTime = endTime;
- }
-
- this._skipTasks = function(hours)
- {
- let newTasks = [];
- currentTime += hours * MILLIS_IN_HOUR;
- for (let task of scheduledTasks)
- {
- if (task.nextExecution >= currentTime)
- newTasks.push(task);
- else if (task.type != Components.interfaces.nsITimer.TYPE_ONE_SHOT)
- {
- task.nextExecution = currentTime;
- newTasks.push(task);
- }
- }
- scheduledTasks = newTasks;
- }
-
- this.getTimeOffset = function() (currentTime - startTime) / MILLIS_IN_HOUR;
-
- this.__defineGetter__("currentTime", function() currentTime);
-}
-
-function restoreVirtualTime()
-{
- for (let module of this._virtualTimeModules)
- {
- let global = Cu.getGlobalForObject(getModuleGlobal(module));
-
- // Restore Date.now() function
- if ("_origNow" + module in this)
- {
- global.Date.now = this["_origNow" + module];
- delete this["_origNow" + module];
- }
- }
-
- Services.obs.removeObserver(this, "http-on-modify-request", true);
- Services.obs.removeObserver(this, "http-on-examine-response", true);
-}
-
-function setupVirtualXMLHttp()
-{
- let host = "http://example.com";
- let requestHandlers = {};
-
- let XMLHttpRequest = function()
- {
- this._loadHandlers = [];
- this._errorHandlers = [];
- };
- XMLHttpRequest.prototype = {
- _path: null,
- _data: null,
- _queryString: null,
- _loadHandlers: null,
- _errorHandlers: null,
- status: 0,
- readyState: 0,
- responseText: null,
-
- addEventListener: function(eventName, handler, capture)
- {
- let list;
- if (eventName == "load")
- list = this._loadHandlers;
- else if (eventName == "error")
- list = this._errorHandlers;
- else
- throw new Error("Event type " + eventName + " not supported");
-
- if (list.indexOf(handler) < 0)
- list.push(handler);
- },
-
- removeEventListener: function(eventName, handler, capture)
- {
- let list;
- if (eventName == "load")
- list = this._loadHandlers;
- else if (eventName == "error")
- list = this._errorHandlers;
- else
- throw new Error("Event type " + eventName + " not supported");
-
- let index = list.indexOf(handler);
- if (index >= 0)
- list.splice(index, 1);
- },
-
- open: function(method, url, async, user, password)
- {
- if (method != "GET")
- throw new Error("Only GET requests are currently supported");
- if (typeof async != "undefined" && !async)
- throw new Error("Sync requests are not supported");
- if (typeof user != "undefined" || typeof password != "undefined")
- throw new Error("User authentification is not supported");
-
- let match = /^data:[^,]+,/.exec(url);
- if (match)
- {
- this._data = decodeURIComponent(url.substr(match[0].length));
- return;
- }
-
- if (url.substr(0, host.length) != host)
- throw new Error("Unexpected URL: " + url + " (URL starting with " + host + "expected)");
-
- this._path = url.substr(host.length);
-
- let queryIndex = this._path.indexOf("?");
- this._queryString = "";
- if (queryIndex >= 0)
- {
- this._queryString = this._path.substr(queryIndex + 1);
- this._path = this._path.substr(0, queryIndex);
- }
- },
-
- send: function(data)
- {
- if (!this._data && !this._path)
- throw new Error("No request path set");
- if (typeof data != "undefined" && data)
- throw new Error("Sending data to server is not supported");
-
- Utils.runAsync(function()
- {
- let result = [Cr.NS_OK, 404, ""];
- if (this._data)
- result = [Cr.NS_OK, 0, this._data];
- else if (this._path in requestHandlers)
- result = requestHandlers[this._path]({method: "GET", path: this._path, queryString: this._queryString});
- [this.channel.status, this.channel.responseStatus, this.responseText] = result;
- this.status = this.channel.responseStatus;
-
- let eventName = (this.channel.status == Cr.NS_OK ? "load" : "error");
- let event = {type: eventName};
- for (let handler of this["_" + eventName + "Handlers"])
- handler.call(this, event);
- }.bind(this));
- },
-
- overrideMimeType: function(mime)
- {
- },
-
- channel:
- {
- status: -1,
- responseStatus: 0,
- loadFlags: 0,
- INHIBIT_CACHING: 0,
- VALIDATE_ALWAYS: 0,
- QueryInterface: function() this
- }
- }
-
- this.registerHandler = function(path, handler) requestHandlers[path] = handler;
-
- let modules = Array.prototype.slice.call(arguments, 1);
- this._virtualXMLHttpModules = modules;
- for (let module of this._virtualTimeModules)
- {
- let global = getModuleGlobal(module);
-
- // Replace XMLHttpRequest constructor
- this["_origXMLHttpRequest" + module] = global.XMLHttpRequest;
- global.XMLHttpRequest = XMLHttpRequest;
- }
-}
-
-function restoreVirtualXMLHttp()
-{
- for (let module of this._virtualXMLHttpModules)
- {
- let global = getModuleGlobal(module);
-
- // Restore XMLHttpRequest constructor
- if ("_origXMLHttpRequest" + module in this)
- {
- global.XMLHttpRequest = this["_origXMLHttpRequest" + module];
- delete this["_origXMLHttpRequest" + module];
- }
- }
-}
-
function showProfilingData(debuggerService)
{
let scripts = [];
debuggerService.enumerateScripts({
enumerateScript: function(script)
{
scripts.push(script);
}
« no previous file with comments | « no previous file | chrome/content/index.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld