mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 01:35:35 +00:00
bdc3b68d5c
This refactoring allows us to re-use the same load algorithm for each command which could trigger a page load. It also takes remoteness changes into account, and waits until the load has been done. With this change we no longer check for readyState only, but observe the necessary DOM events as fired for page unloads and loads. This will help us to implement the page loading strategy later. By observing the DOM events, I also expect a small increase of performance for any kind of page load, given that we now return immediately and do not have a delay of 100ms at maximum. MozReview-Commit-ID: IVtO6KgJFES --HG-- extra : rebase_source : 40f90e3b9d1bf0a2f9123271cd08513769616e41
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
|
|
|
Cu.importGlobalProperties(["URL"]);
|
|
|
|
this.EXPORTED_SYMBOLS = ["navigate"];
|
|
|
|
this.navigate = {};
|
|
|
|
/**
|
|
* Determines if we expect to get a DOM load event (DOMContentLoaded)
|
|
* on navigating to the |url|.
|
|
*
|
|
* @param {string} url
|
|
* Destination URL
|
|
*
|
|
* @return {boolean}
|
|
* Full page load would be expected if url gets loaded.
|
|
*
|
|
* @throws TypeError
|
|
* If |url| is an invalid URL.
|
|
*/
|
|
navigate.isLoadEventExpected = function (url) {
|
|
// assume we will go somewhere exciting
|
|
if (typeof url == "undefined") {
|
|
throw TypeError("Expected destination URL");
|
|
}
|
|
|
|
switch (new URL(url).protocol) {
|
|
// assume javascript:<whatever> will modify current document
|
|
// but this is not an entirely safe assumption to make,
|
|
// considering it could be used to set window.location
|
|
case "javascript:":
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
};
|