MCPcopy
hub / github.com/ampproject/amphtml / topWindowUrlOrDomain

Function topWindowUrlOrDomain

ads/google/a4a/utils.js:434–460  ·  view source on GitHub ↗

* @param {!Window} win * @return {?string}

(win)

Source from the content-addressed store, hash-verified

432 * @return {?string}
433 */
434function topWindowUrlOrDomain(win) {
435 const {ancestorOrigins} = win.location;
436 if (ancestorOrigins) {
437 const {origin} = win.location;
438 const topOrigin = ancestorOrigins[ancestorOrigins.length - 1];
439 if (origin == topOrigin) {
440 return win.top.location.hostname;
441 }
442 const secondFromTop = secondWindowFromTop(win);
443 if (
444 secondFromTop == win ||
445 origin == ancestorOrigins[ancestorOrigins.length - 2]
446 ) {
447 return extractHost(secondFromTop./*OK*/ document.referrer);
448 }
449 return extractHost(topOrigin);
450 } else {
451 try {
452 return win.top.location.hostname;
453 } catch (e) {}
454 const secondFromTop = secondWindowFromTop(win);
455 try {
456 return extractHost(secondFromTop./*OK*/ document.referrer);
457 } catch (e) {}
458 return null;
459 }
460}
461
462/**
463 * @param {!Window} win

Callers 1

googlePageParametersFunction · 0.70

Calls 2

secondWindowFromTopFunction · 0.70
extractHostFunction · 0.70

Tested by

no test coverage detected