[tor-bugs] #9531 [Tor Browser]: More Torbutton hangs on New Identity control port access

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Sep 22 14:40:05 UTC 2014


#9531: More Torbutton hangs on New Identity control port access
-------------------------+-------------------------------------------------
     Reporter:           |      Owner:  gk
  mikeperry              |     Status:  closed
         Type:  defect   |  Milestone:
     Priority:  major    |    Version:
    Component:  Tor      |   Keywords:  tbb-usability, tbb-newnym,
  Browser                |  TorBrowserTeam201408, tbb-torbutton,
   Resolution:  fixed    |  MikePerry201408R
Actual Points:           |  Parent ID:
       Points:           |
-------------------------+-------------------------------------------------

Comment (by cypherpunks):

 > There a blank Tor Launcher window is visible for a short amount of time
 until the usual messages appear giving a weird user experience.

 Tor Launcher could to finish every stuff for progress document before
 starting socket transport operations.
 This specially crafted workaround reducing negative user experience.
 {{{
 diff --git a/src/components/tl-process.js b/src/components/tl-process.js
 index cc5d654..31d4e45 100644
 --- a/src/components/tl-process.js
 +++ b/src/components/tl-process.js
 @@ -91,6 +91,7 @@ TorProcessService.prototype =
      if ("profile-after-change" == aTopic)
      {
        this.mObsSvc.addObserver(this, "quit-application-granted", false);
 +      this.mObsSvc.addObserver(this, "document-shown", false);
        this.mObsSvc.addObserver(this, kOpenNetworkSettingsTopic, false);
        this.mObsSvc.addObserver(this, kUserQuitTopic, false);
        this.mObsSvc.addObserver(this, kBootstrapStatusTopic, false);
 @@ -169,6 +170,17 @@ TorProcessService.prototype =
          }
        }
      }
 +    else if ("document-shown" == aTopic)
 +    {
 +     if (aSubject.getElementById("progressMeter"))
 +       ++this.mDocumentProgressShown;
 +     else
 +        this.mDocumentProgressShown = 0;
 +     if (!this.mDocumentProgressShown || this.mDocumentProgressShown ==
 3) {
 +       this._monitorTorProcessStartup();
 +       this.mObsSvc.removeObserver(this, "document-shown");
 +     }
 +    }
      else if ("timer-callback" == aTopic)
      {
        if (aSubject == this.mControlConnTimer)
 @@ -296,6 +308,7 @@ TorProcessService.prototype =
    mRestartWithQuit: false,
    mLastTorWarningPhase: null,
    mLastTorWarningReason: null,
 +  mDocumentProgressShown: 0,


    // Private Methods
 /////////////////////////////////////////////////////////
 @@ -426,7 +439,6 @@ TorProcessService.prototype =
    {
      try
      {
 -      this._monitorTorProcessStartup();

        var bridgeConfigIsBad = (this._defaultBridgesStatus ==
                                 this.kDefaultBridgesStatus_BadConfig);
 }}}
 With more knowledge it could be less kludgy fix.

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


More information about the tor-bugs mailing list