<div dir="ltr"><div dir="ltr">Hi Richard, this is great!<div>I appreciate all the insights you gave me.</div><div>about the build setup i would definitely go with your suggestion. maybe it would be possible to also use these build scripts inside a docker composer for a reload on demand during development. and about windows,  it is a requirement for my situation , but i just saw some build scripts regarding windows in the tbb repo you mentioned; i would be happy to hear from you about tips and tricks regarding windows!</div><div><div><br></div></div><div>basically what i am about to implement are as below:</div><div><br></div><div><div><div><img src="cid:ii_k2yj0iw05" alt="image.png" width="472" height="212"><br></div></div></div></div><div><br></div><div><div><div><img src="cid:ii_k2yj1i6d6" alt="image.png" width="472" height="282"><br></div></div></div><div><br></div><div><div><img src="cid:ii_k2yigapj4" alt="image.png" width="472" height="258"><br></div></div><div><br></div><div>above screen shots are from the browser extension that i have already implemented and want to integrate with the tbb.</div><div><br></div><div>1) padding is the time period which i send random packets to random destinations for generating fake browsing pattern.</div><div><br></div><div>2) rotation is a fancy name for MaxCircuitDirtiness</div><div><br></div><div>3) idle timeout is a custom clock which will close the tbb automatically in case of no interaction from the user</div><div><br></div><div>4) use proxy & use bridge is already available inside tbb</div><div><br></div><div>5) entry, middle and exit countries will fill the torrc with user selected options</div><div><br></div><div>based on the commit you mentioned for  "about:preferences#tor pane", i believe that commit is the right place i should start coding.</div><div><br></div><div>Best Regards,</div><div>Sarpedon</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 13, 2019 at 9:33 PM Richard Pospesel <<a href="mailto:richard@torproject.org">richard@torproject.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hey Sarpedon,<br>
<br>
The tor-browser-build project (<br>
<a href="https://gitweb.torproject.org/builders/tor-browser-build.git/" rel="noreferrer" target="_blank">https://gitweb.torproject.org/builders/tor-browser-build.git/</a> ) can be<br>
used to build tor-browser for all the various environments, and you can<br>
updated the /projects/firefox/config file to point to your own git repo<br>
and commit for development. Unfortunately this is not particularly fast,<br>
but it's really the only way to go if you need builds for platforms<br>
other than Linux.<br>
<br>
Alternatively, you can just build tor-browser (<br>
<a href="https://gitweb.torproject.org/tor-browser.git/" rel="noreferrer" target="_blank">https://gitweb.torproject.org/tor-browser.git/</a> ), and copy the relevant<br>
bits over an existing tor-browser install. This is the workflow I use<br>
during development on Linux and is generally pretty straight forward to<br>
use once you have scripts setup to do the deploying.<br>
<br>
It's theoretically possible to get this sort of incremental build setup<br>
working for other platforms (ie building windows bins in a linux dev<br>
environment), but it's a pain and would require delving into the<br>
tor-browser-build firefox build and config scripts. I've done it before<br>
for our older windows build target (before we switched to clang and<br>
friends) and can give you some tips on how to do that if necessary.<br>
<br>
The Tor Browser Hacking Guide should be a good resource as well, though<br>
it is a living document so might be out of date:<br>
<br>
<a href="https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Hacking" rel="noreferrer" target="_blank">https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Hacking</a><br>
<br>
If you're interested in updating/improving/adding to the<br>
about:preferences#tor pane, than you can start by looking at this commit<br>
which added the page:<br>
<br>
<a href="https://gitweb.torproject.org/tor-browser.git/commit/?h=tor-browser-68.2.0esr-9.5-1&id=bea7e61c120f207e7e1a65041b44dc1998e3656a" rel="noreferrer" target="_blank">https://gitweb.torproject.org/tor-browser.git/commit/?h=tor-browser-68.2.0esr-9.5-1&id=bea7e61c120f207e7e1a65041b44dc1998e3656a</a><br>
<br>
In general, the relevant things there are in:<br>
<br>
/browser/components/torpreferences/*<br>
/browser/modules/TorProtocolService.jsm<br>
/browser/modules/TorStrings.jsm<br>
<br>
What sort of improvements are you looking to add? If you're interested<br>
in submitting a patch, you should open a ticket that tracks whatever<br>
feature you're looking to add. There we can give you early code and<br>
design/UX feedback to improve the odds of us accepting your patch :)<br>
<br>
best,<br>
-Richard<br>
<br>
<br>
On 11/9/19 4:04 PM, sarpedon montecarlo wrote:<br>
> Hello to the community!<br>
> my first question is that is there a solution for rapid development of<br>
> tbb? i was wondering that each time a contributor wants to change<br>
> something in the tbb or add extra functionality, they have to go through<br>
> the build process which i just guess would be very time consuming. i was<br>
> wondering that is there any containerized environment for this? any<br>
> docker ecosystem available or other solutions that might help?<br>
> my second question is about the changes that i want to implement. i am<br>
> interested into the graphical settings page about bridges and tor<br>
> process that currently tbb is exposing to the end users. if we want to<br>
> add more functionality into this settings page, where should we start to<br>
> change? and is there any possibility that we may have some control over<br>
> the underlying tor process as well, for instance controlling it's<br>
> launching or it's torrc configuration; because as i see, there must be a<br>
> link between the graphical interface of tbb and the underlying tor<br>
> process so that is the way we can control bridges for instance. similar<br>
> to this i was planning to add more graphical options to the interface<br>
> for controlling other configuration aspects of the tor process through<br>
> it's torrc or other workarounds.<br>
> in the past i have achieved this by writing a browser extension that<br>
> benefits from native messaging for communication to the tor process; but<br>
> this is not really performance friendly and an intuitive experience for<br>
> the end users.i am not satisfied with the result. so i was interested on<br>
> mirroring these functionalities inside tbb.<br>
> i really appreciate your insights and thoughts on the matter,<br>
> have a great day,<br>
> Sarpedon.<br>
> <br>
> _______________________________________________<br>
> tor-dev mailing list<br>
> <a href="mailto:tor-dev@lists.torproject.org" target="_blank">tor-dev@lists.torproject.org</a><br>
> <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev" rel="noreferrer" target="_blank">https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev</a><br>
> <br>
<br>
_______________________________________________<br>
tor-dev mailing list<br>
<a href="mailto:tor-dev@lists.torproject.org" target="_blank">tor-dev@lists.torproject.org</a><br>
<a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev" rel="noreferrer" target="_blank">https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev</a><br>
</blockquote></div></div>