[tbb-bugs] #13198 [Tor Browser]: clean up torbutton use of Mozilla services

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Sep 30 05:46:09 UTC 2014

#13198: clean up torbutton use of Mozilla services
     Reporter:  arthuredelstein  |      Owner:  tbb-team
         Type:  defect           |     Status:  needs_review
     Priority:  normal           |  Milestone:
    Component:  Tor Browser      |    Version:
   Resolution:                   |   Keywords:  MikePerry201409R
Actual Points:                   |  Parent ID:
       Points:                   |

Comment (by arthuredelstein):

 Replying to [comment:2 mikeperry]:
 > Hrmm. I'm a little worried about the scoping here for the changes in
 src/chrome/content/torbutton.js. This block at the top in particular:
 > {{{
 > let { getBoolPref, setBoolPref, getCharPref, setCharPref,
 >       getIntPref, setIntPref, clearUserPref, prefHasUserValue
 >       addObserver : addPrefObserver , removeObserver :
 removePrefObserver } = Services.prefs;
 > }}}
 > I know 'let' uses block scoping, but in this case, we're at the top
 level of the torbutton.js file and not technically in a block. This is the
 browser XUL tag's 'window' scope, and is shared with all other browser
 scripts and extension bindings. Does 'let' also make this scope local to
 torbutton.js, considering torbutton.js to be a block (even though it's not
 explicitly one)? Because if it ends up in 'window' scope, then we're
 risking collisions with other addons variable names in 'window'.

 Good point. We could enclose the whole torbutton.js file in a scope like:
 /* api methods */ = (function() {
   /* torbutton.js code */
   return api_methods;
 which would help avoid any collisions. But for now I'll just leave out
 that `let` statement at the top and instead use `m_tb_prefs` as an alias
 for `Services.prefs` (which reduces the number of changes in the patch).

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

More information about the tbb-bugs mailing list