Bug 1171708 - Use localName when detecting <xul:browsers> for XULFrameLoaderCreated. r=billm

We were using tagName before, which is fine for the dynamically created browsers
in new tabs, but not fine for the initial browser tab, which has a tagName of
"xul:browser" instead of "browser". Using localName makes sure that we don't
get the XML namespace included with the node name. We check the XUL namespace
separately be checking the namespaceURI.
This commit is contained in:
Mike Conley 2015-11-06 13:59:47 -05:00
parent 45a99da2a2
commit bc1ee60091

View File

@ -126,6 +126,8 @@ const TAB_EVENTS = [
"TabUnpinned"
];
const NS_XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
Cu.import("resource://gre/modules/Services.jsm", this);
Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
Cu.import("resource://gre/modules/TelemetryTimestamps.jsm", this);
@ -877,7 +879,10 @@ var SessionStoreInternal = {
this.onBrowserCrashed(win, target);
break;
case "XULFrameLoaderCreated":
if (target.tagName == "browser" && target.frameLoader && target.permanentKey) {
if (target.namespaceURI == NS_XUL &&
target.localName == "browser" &&
target.frameLoader &&
target.permanentKey) {
this._lastKnownFrameLoader.set(target.permanentKey, target.frameLoader);
this.resetEpoch(target);
}