browser/components/places/tests/chrome/head.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /**
     2  * Asynchronously adds visits to a page, invoking a callback function when done.
     3  *
     4  * @param aPlaceInfo
     5  *        Can be an nsIURI, in such a case a single LINK visit will be added.
     6  *        Otherwise can be an object describing the visit to add, or an array
     7  *        of these objects:
     8  *          { uri: nsIURI of the page,
     9  *            transition: one of the TRANSITION_* from nsINavHistoryService,
    10  *            [optional] title: title of the page,
    11  *            [optional] visitDate: visit date in microseconds from the epoch
    12  *            [optional] referrer: nsIURI of the referrer for this visit
    13  *          }
    14  * @param [optional] aCallback
    15  *        Function to be invoked on completion.
    16  */
    17 function addVisits(aPlaceInfo, aCallback) {
    18   let places = [];
    19   if (aPlaceInfo instanceof Ci.nsIURI) {
    20     places.push({ uri: aPlaceInfo });
    21   }
    22   else if (Array.isArray(aPlaceInfo)) {
    23     places = places.concat(aPlaceInfo);
    24   } else {
    25     places.push(aPlaceInfo)
    26   }
    28   // Create mozIVisitInfo for each entry.
    29   let now = Date.now();
    30   for (let i = 0; i < places.length; i++) {
    31     if (!places[i].title) {
    32       places[i].title = "test visit for " + places[i].uri.spec;
    33     }
    34     places[i].visits = [{
    35       transitionType: places[i].transition === undefined ? PlacesUtils.history.TRANSITION_LINK
    36                                                          : places[i].transition,
    37       visitDate: places[i].visitDate || (now++) * 1000,
    38       referrerURI: places[i].referrer
    39     }];
    40   }
    42   PlacesUtils.asyncHistory.updatePlaces(
    43     places,
    44     {
    45       handleError: function AAV_handleError() {
    46         throw("Unexpected error in adding visit.");
    47       },
    48       handleResult: function () {},
    49       handleCompletion: function UP_handleCompletion() {
    50         if (aCallback)
    51           aCallback();
    52       }
    53     }
    54   );
    55 }
    57 /**
    58  * Clears history invoking callback when done.
    59  */
    60 function waitForClearHistory(aCallback) {
    61   const TOPIC_EXPIRATION_FINISHED = "places-expiration-finished";
    62   Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
    63     Services.obs.removeObserver(observer, TOPIC_EXPIRATION_FINISHED);
    64     aCallback();
    65   }, TOPIC_EXPIRATION_FINISHED, false);
    66   Cc["@mozilla.org/browser/nav-history-service;1"]
    67     .getService(Ci.nsINavHistoryService)
    68     .QueryInterface(Ci.nsIBrowserHistory).removeAllPages();
    69 }

mercurial