Mitmproxy changed the way it stores headers to use
netlib.odict.ODictCaseless. This type has a string representation of a
list of lists that must be eval()'ed to parse the headers. Instead,
let's use json serialization in combination with the save/load functions
provided by the ODictCaseless class. This fixes the bug that would cause
http cookie tables to be empty with newer versions of mitmproxy.
1. Added in success logging for profile untaring
2. Made compression optional when dumping/loading profile
3. Removed "slim profile" option, since the full profile isn't much bigger
Logging via MPLogger has been added to the profile commands, including
flash loading and saving. dump_profile has also been altered to require
cookies, history, and localStorage. If these don't exist the function
will now throw an error.
support of #19
Rather than having multiple threads managing the same browser, each
thread will simply set a flag if the browser needs to be restarted.
Then, the main thread managing the browser will restart if necessary.
This fixes a bunch of race conditions caused by managing the process in
two separate threads. Also bumped the failure threshold as it was too
low for instances with a low number of browsers.
This also includes the start of a refactor of the code to launch
Firefox. The goal of this is to simply deploy_firefox.py and separate
the configuration options into logical pieces.
The 32 bit hash is likely to have at least a few collisions
over 1 million sites. To avoid this we use the fast murmur3_x64_128
hash from pyhash and mask it to 64 bits. This requires a few
additional dependencies, which are included in the install script.
The goal of this change is to provide a better way of passing
per-crawl parameters. Since the browser_params dictionary is meant for
per-browser settings, adding in any additional parameters (like
logger_address) would require adding the address to all copies of the
dictionary. With manager_params, a single additional dictionary is
passed around to hold the crawl-wide configuration settings. This
includes things like the location of the crawl database and the log
file.