[tor-bugs] #22536 [Applications/Tor Browser]: On New Identitythe new window opens at a different location before the old one gets closed

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jun 8 08:49:19 UTC 2017


#22536: On New Identitythe new window opens at a different location before the old
one gets closed
-------------------------------------+-------------------------------------
     Reporter:  gk                   |      Owner:  tbb-team
         Type:  defect               |     Status:  new
     Priority:  Medium               |  Milestone:
    Component:  Applications/Tor     |    Version:
  Browser                            |   Keywords:  tbb-7.0-issues, tbb-
     Severity:  Normal               |  regression, tbb-newnym
Actual Points:                       |  Parent ID:
       Points:                       |   Reviewer:
      Sponsor:                       |
-------------------------------------+-------------------------------------
 In some circumstances, after hitting New Identity the new browser window
 will open at a different location on the screen before the old one is
 gone. We are currently doing:
 {{{
   OpenBrowserWindow();

   torbutton_log(3, "New identity successful");

   // Run garbage collection and cycle collection after window is gone.
   // This ensures that blob URIs are forgotten.
   window.addEventListener("unload", function (event) {
     torbutton_log(3, "Initiating New Identity GC pass");
     // Clear out potential pending sInterSliceGCTimer:
     m_tb_domWindowUtils.runNextCollectorTimer();

     // Clear out potential pending sICCTimer:
     m_tb_domWindowUtils.runNextCollectorTimer();

     // Schedule a garbage collection in 4000-1000ms...
     m_tb_domWindowUtils.garbageCollect();

     // To ensure the GC runs immediately instead of 4-10s from now, we
 need
     // to poke it at least 11 times.
     // We need 5 pokes for GC, 1 poke for the interSliceGC, and 5 pokes
 for CC.
     // See nsJSContext::RunNextCollectorTimer() in
     // https://mxr.mozilla.org/mozilla-
 central/source/dom/base/nsJSEnvironment.cpp#1970.
     // XXX: We might want to make our own method for immediate full GC...
     for (let poke = 0; poke < 11; poke++) {
        m_tb_domWindowUtils.runNextCollectorTimer();
     }

     // And now, since the GC probably actually ran *after* the CC last
 time,
     // run the whole thing again.
     m_tb_domWindowUtils.garbageCollect();
     for (let poke = 0; poke < 11; poke++) {
        m_tb_domWindowUtils.runNextCollectorTimer();
     }

     torbutton_log(3, "Completed New Identity GC pass");
   });

   // Close the current window for added safety
   window.close();
 }}}
 So, this issue can show up if the garbage collection takes quite some time
 for some reason. We might want to think about whether we can improve
 things for this use case while not making New Identity much slower.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/22536>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list