Bug 1367450 - Don't trigger captive portal check until delayed startup has completed. r=florian

MozReview-Commit-ID: LCinITjTlK7

--HG--
extra : rebase_source : 2067e081a653cc10b1f8fcad7e03b8909bcef0d5
This commit is contained in:
Nihanth Subramanya 2017-06-01 06:23:10 +05:30
parent dc171a57f8
commit 381bae6ec2

View File

@ -62,9 +62,12 @@ var CaptivePortalWatcher = {
if (windows.getNext() == window && !windows.hasMoreElements()) {
this.ensureCaptivePortalTab();
}
} else if (cps.state == cps.UNKNOWN) {
// We trigger a portal check after delayed startup to avoid doing a network
// request before first paint.
this._delayedRecheckPending = true;
Services.obs.addObserver(this, "browser-delayed-startup-finished");
}
cps.recheckCaptivePortal();
},
uninit() {
@ -72,6 +75,9 @@ var CaptivePortalWatcher = {
Services.obs.removeObserver(this, "captive-portal-login-abort");
Services.obs.removeObserver(this, "captive-portal-login-success");
if (this._delayedRecheckPending) {
Services.obs.removeObserver(this, "browser-delayed-startup-finished");
}
if (this._delayedCaptivePortalDetectedInProgress) {
Services.obs.removeObserver(this, "xul-window-visible");
@ -80,6 +86,11 @@ var CaptivePortalWatcher = {
observe(aSubject, aTopic, aData) {
switch (aTopic) {
case "browser-delayed-startup-finished":
Services.obs.removeObserver(this, "browser-delayed-startup-finished");
delete this._delayedRecheckPending;
cps.recheckCaptivePortal();
break;
case "captive-portal-login":
this._captivePortalDetected();
break;