| Index: lib/contentPolicy.js | 
| =================================================================== | 
| --- a/lib/contentPolicy.js | 
| +++ b/lib/contentPolicy.js | 
| @@ -476,22 +476,25 @@ var PolicyImplementation = | 
| if (!Policy.processNode(subject.opener, subject.opener.document, Policy.type.POPUP, uri, false)) | 
| { | 
| subject.stop(); | 
| Utils.runAsync(() => subject.close()); | 
| } | 
| else if (uri.spec == "about:blank") | 
| { | 
| // An about:blank pop-up most likely means that a load will be | 
| -          // initiated synchronously. Set a flag for our "http-on-opening-request" | 
| -          // handler. | 
| -          this.expectingPopupLoad = true; | 
| -          Utils.runAsync(function() | 
| +          // initiated asynchronously. Wait for that. | 
| +          Utils.runAsync(() => | 
| { | 
| -            this.expectingPopupLoad = false; | 
| +            let channel = subject.QueryInterface(Ci.nsIInterfaceRequestor) | 
| +                                 .getInterface(Ci.nsIDocShell) | 
| +                                 .QueryInterface(Ci.nsIDocumentLoader) | 
| +                                 .documentChannel; | 
| +            if (channel) | 
| +              this.observe(subject, topic, data, channel.URI); | 
| }); | 
| } | 
| break; | 
| } | 
| case "http-on-opening-request": | 
| case "http-on-modify-request": | 
| { | 
| if (!(subject instanceof Ci.nsIHttpChannel)) | 
| @@ -500,28 +503,16 @@ var PolicyImplementation = | 
| if (this.previousRequest && subject.URI == this.previousRequest[0] && | 
| subject instanceof Ci.nsIWritablePropertyBag) | 
| { | 
| // We just handled a content policy call for this request - associate | 
| // the data with the channel so that we can find it in case of a redirect. | 
| subject.setProperty("abpRequestType", this.previousRequest[1]); | 
| this.previousRequest = null; | 
| } | 
| - | 
| -        if (this.expectingPopupLoad) | 
| -        { | 
| -          let wnd = Utils.getRequestWindow(subject); | 
| -          if (wnd && wnd.opener && wnd.location.href == "about:blank") | 
| -          { | 
| -            this.observe(wnd, "content-document-global-created", null, subject.URI); | 
| -            if (subject instanceof Ci.nsIWritablePropertyBag) | 
| -              subject.setProperty("abpRequestType", Policy.type.POPUP); | 
| -          } | 
| -        } | 
| - | 
| break; | 
| } | 
| } | 
| }, | 
|  | 
| // | 
| // nsIChannelEventSink interface implementation | 
| // | 
|  |