bug 1477409 - Part 2 - Get the marchentBrowser by outerWindowId in PaymentUIService.js. r=MattN

--HG--
extra : histedit_source : 5c4bdcaa35d3ef6451fe05efbbb98e6ac478cabe
This commit is contained in:
Eden Chuang 2018-11-06 05:47:00 +02:00
parent dda4a2c88c
commit cd9a46a8d0

View File

@ -50,7 +50,7 @@ PaymentUIService.prototype = {
showPayment(requestId) {
this.log.debug("showPayment:", requestId);
let request = paymentSrv.getPaymentRequestById(requestId);
let merchantBrowser = this.findBrowserByTabId(request.tabId);
let merchantBrowser = this.findBrowserByOuterWindowId(request.topOuterWindowId);
let chromeWindow = merchantBrowser.ownerGlobal;
let {gBrowser} = chromeWindow;
let browserContainer = gBrowser.getBrowserContainer(merchantBrowser);
@ -200,19 +200,17 @@ PaymentUIService.prototype = {
return {};
},
findBrowserByTabId(tabId) {
findBrowserByOuterWindowId(outerWindowId) {
for (let win of BrowserWindowTracker.orderedWindows) {
for (let browser of win.gBrowser.browsers) {
if (!browser.frameLoader || !browser.frameLoader.tabParent) {
continue;
}
if (browser.frameLoader.tabParent.tabId == tabId) {
return browser;
}
let browser = win.gBrowser.getBrowserForOuterWindowID(outerWindowId);
if (!browser) {
continue;
}
return browser;
}
this.log.error("findBrowserByTabId: No browser found for tabId:", tabId);
this.log.error("findBrowserByOuterWindowId: No browser found for outerWindowId:",
outerWindowId);
return null;
},
};