Commit 971ff4bf authored by Daisuke Akatsuka's avatar Daisuke Akatsuka
Browse files

Bug 1776609: Record source and triggeringPlaceId for sponsored tile on newtab....

Bug 1776609: Record source and triggeringPlaceId for sponsored tile on newtab. r=mak,geckoview-reviewers,m_kato

Differential Revision: https://phabricator.services.mozilla.com/D150729
parent 57b53644
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -115,6 +115,12 @@ class ClickHandlerParent extends JSWindowActorParent {
      openerBrowser: browser,
      // The child ensures that untrusted events have a valid user activation.
      hasValidUserGestureActivation: true,
      globalHistoryOptions: {
        triggeringSponsoredURL: browser.getAttribute("triggeringSponsoredURL"),
        triggeringSponsoredURLVisitTimeMS: browser.getAttribute(
          "triggeringSponsoredURLVisitTimeMS"
        ),
      },
    };

    // The new tab/window must use the same userContextId.
+12 −0
Original line number Diff line number Diff line
@@ -1470,6 +1470,7 @@ function _loadURI(browser, uri, params = {}) {
    csp,
    remoteTypeOverride,
    hasValidUserGestureActivation,
    globalHistoryOptions,
  } = params || {};
  let loadFlags =
    params.loadFlags || params.flags || Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
@@ -1509,6 +1510,17 @@ function _loadURI(browser, uri, params = {}) {

  // XXX(nika): Is `browser.isNavigating` necessary anymore?
  browser.isNavigating = true;

  if (globalHistoryOptions?.triggeringSponsoredURL) {
    browser.setAttribute(
      "triggeringSponsoredURL",
      globalHistoryOptions.triggeringSponsoredURL
    );
    const time =
      globalHistoryOptions.triggeringSponsoredURLVisitTimeMS || Date.now();
    browser.setAttribute("triggeringSponsoredURLVisitTimeMS", time);
  }

  let loadURIOptions = {
    triggeringPrincipal,
    csp,
+8 −0
Original line number Diff line number Diff line
@@ -1405,6 +1405,14 @@ class nsContextMenu {
  openLinkInTab(event) {
    let params = {
      userContextId: parseInt(event.target.getAttribute("data-usercontextid")),
      globalHistoryOptions: {
        triggeringSponsoredURL: this.browser.getAttribute(
          "triggeringSponsoredURL"
        ),
        triggeringSponsoredURLVisitTimeMS: this.browser.getAttribute(
          "triggeringSponsoredURLVisitTimeMS"
        ),
      },
    };

    openLinkIn(this.linkURL, "tab", this._openLinkInParameters(params));
+5 −0
Original line number Diff line number Diff line
@@ -1660,6 +1660,7 @@
      var aName;
      var aCsp;
      var aSkipLoad;
      var aGlobalHistoryOptions;
      if (
        arguments.length == 2 &&
        typeof arguments[1] == "object" &&
@@ -1689,6 +1690,7 @@
        aName = params.name;
        aCsp = params.csp;
        aSkipLoad = params.skipLoad;
        aGlobalHistoryOptions = params.globalHistoryOptions;
      }

      // all callers of loadOneTab need to pass a valid triggeringPrincipal.
@@ -1728,6 +1730,7 @@
        name: aName,
        csp: aCsp,
        skipLoad: aSkipLoad,
        globalHistoryOptions: aGlobalHistoryOptions,
      });
      if (!bgLoad) {
        this.selectedTab = tab;
@@ -2585,6 +2588,7 @@
        csp,
        skipLoad,
        batchInsertingTabs,
        globalHistoryOptions,
      } = {}
    ) {
      // all callers of addTab that pass a params object need to pass
@@ -2916,6 +2920,7 @@
              charset,
              postData,
              csp,
              globalHistoryOptions,
            });
          } catch (ex) {
            Cu.reportError(ex);
+3 −0
Original line number Diff line number Diff line
@@ -307,6 +307,7 @@ function openLinkIn(url, where, params) {
  var aResolveOnNewTabCreated = params.resolveOnNewTabCreated;
  // This callback will be called with the content browser once it's created.
  var aResolveOnContentBrowserReady = params.resolveOnContentBrowserCreated;
  var aGlobalHistoryOptions = params.globalHistoryOptions;

  if (!aTriggeringPrincipal) {
    throw new Error("Must load with a triggering Principal");
@@ -608,6 +609,7 @@ function openLinkIn(url, where, params) {
        postData: aPostData,
        userContextId: aUserContextId,
        hasValidUserGestureActivation: params.hasValidUserGestureActivation,
        globalHistoryOptions: aGlobalHistoryOptions,
      });
      if (aResolveOnContentBrowserReady) {
        aResolveOnContentBrowserReady(targetBrowser);
@@ -645,6 +647,7 @@ function openLinkIn(url, where, params) {
        focusUrlBar,
        openerBrowser: params.openerBrowser,
        fromExternal: params.fromExternal,
        globalHistoryOptions: aGlobalHistoryOptions,
      });
      targetBrowser = tabUsedForLoad.linkedBrowser;

Loading